mirror of
https://github.com/Instadapp/Swap-Aggregator-Subgraph.git
synced 2024-07-29 21:57:12 +00:00
59 lines
1.2 KiB
JavaScript
59 lines
1.2 KiB
JavaScript
"use strict";
|
|
|
|
exports.Directive = void 0;
|
|
|
|
var _constants = require("../constants");
|
|
|
|
var _Node = require("./Node");
|
|
|
|
var _Range = require("./Range");
|
|
|
|
class Directive extends _Node.Node {
|
|
constructor() {
|
|
super(_constants.Type.DIRECTIVE);
|
|
this.name = null;
|
|
}
|
|
|
|
get parameters() {
|
|
const raw = this.rawValue;
|
|
return raw ? raw.trim().split(/[ \t]+/) : [];
|
|
}
|
|
|
|
parseName(start) {
|
|
const {
|
|
src
|
|
} = this.context;
|
|
let offset = start;
|
|
let ch = src[offset];
|
|
|
|
while (ch && ch !== '\n' && ch !== '\t' && ch !== ' ') ch = src[offset += 1];
|
|
|
|
this.name = src.slice(start, offset);
|
|
return offset;
|
|
}
|
|
|
|
parseParameters(start) {
|
|
const {
|
|
src
|
|
} = this.context;
|
|
let offset = start;
|
|
let ch = src[offset];
|
|
|
|
while (ch && ch !== '\n' && ch !== '#') ch = src[offset += 1];
|
|
|
|
this.valueRange = new _Range.Range(start, offset);
|
|
return offset;
|
|
}
|
|
|
|
parse(context, start) {
|
|
this.context = context;
|
|
let offset = this.parseName(start + 1);
|
|
offset = this.parseParameters(offset);
|
|
offset = this.parseComment(offset);
|
|
this.range = new _Range.Range(start, offset);
|
|
return offset;
|
|
}
|
|
|
|
}
|
|
|
|
exports.Directive = Directive; |