12345678910111213141516171819202122232425262728293031323334353637383940 |
- var TYPE = require('../../tokenizer').TYPE;
- var IDENTIFIER = TYPE.Identifier;
- var COMMA = TYPE.Comma;
- var SEMICOLON = TYPE.Semicolon;
- var HYPHENMINUS = TYPE.HyphenMinus;
- var EXCLAMATIONMARK = TYPE.ExclamationMark;
- // var '(' ident (',' <value>? )? ')'
- module.exports = function() {
- var children = this.createList();
- this.scanner.skipSC();
- var identStart = this.scanner.tokenStart;
- this.scanner.eat(HYPHENMINUS);
- if (this.scanner.source.charCodeAt(this.scanner.tokenStart) !== HYPHENMINUS) {
- this.scanner.error('HyphenMinus is expected');
- }
- this.scanner.eat(IDENTIFIER);
- children.push({
- type: 'Identifier',
- loc: this.getLocation(identStart, this.scanner.tokenStart),
- name: this.scanner.substrToCursor(identStart)
- });
- this.scanner.skipSC();
- if (this.scanner.tokenType === COMMA) {
- children.push(this.Operator());
- children.push(this.parseCustomProperty
- ? this.Value(null)
- : this.Raw(this.scanner.currentToken, EXCLAMATIONMARK, SEMICOLON, false, false)
- );
- }
- return children;
- };
|