| var TYPE = require('../../tokenizer').TYPE; |
| |
| var IDENTIFIER = TYPE.Identifier; |
| var NUMBER = TYPE.Number; |
| var NUMBERSIGN = TYPE.NumberSign; |
| var LEFTSQUAREBRACKET = TYPE.LeftSquareBracket; |
| var PLUSSIGN = TYPE.PlusSign; |
| var SOLIDUS = TYPE.Solidus; |
| var ASTERISK = TYPE.Asterisk; |
| var FULLSTOP = TYPE.FullStop; |
| var COLON = TYPE.Colon; |
| var GREATERTHANSIGN = TYPE.GreaterThanSign; |
| var VERTICALLINE = TYPE.VerticalLine; |
| var TILDE = TYPE.Tilde; |
| |
| function getNode(context) { |
| switch (this.scanner.tokenType) { |
| case PLUSSIGN: |
| case GREATERTHANSIGN: |
| case TILDE: |
| context.space = null; |
| context.ignoreWSAfter = true; |
| return this.Combinator(); |
| |
| case SOLIDUS: // /deep/ |
| return this.Combinator(); |
| |
| case FULLSTOP: |
| return this.ClassSelector(); |
| |
| case LEFTSQUAREBRACKET: |
| return this.AttributeSelector(); |
| |
| case NUMBERSIGN: |
| return this.IdSelector(); |
| |
| case COLON: |
| if (this.scanner.lookupType(1) === COLON) { |
| return this.PseudoElementSelector(); |
| } else { |
| return this.PseudoClassSelector(); |
| } |
| |
| case IDENTIFIER: |
| case ASTERISK: |
| case VERTICALLINE: |
| return this.TypeSelector(); |
| |
| case NUMBER: |
| return this.Percentage(); |
| } |
| }; |
| |
| module.exports = { |
| getNode: getNode |
| }; |