Spaces:
Configuration error
Configuration error
import { | |
WhiteSpace, | |
Comment, | |
Ident, | |
Function, | |
Colon, | |
LeftParenthesis | |
} from '../../tokenizer/index.js'; | |
function consumeRaw() { | |
return this.createSingleNodeList( | |
this.Raw(this.tokenIndex, null, false) | |
); | |
} | |
function parentheses() { | |
this.skipSC(); | |
if (this.tokenType === Ident && | |
this.lookupNonWSType(1) === Colon) { | |
return this.createSingleNodeList( | |
this.Declaration() | |
); | |
} | |
return readSequence.call(this); | |
} | |
function readSequence() { | |
const children = this.createList(); | |
let child; | |
this.skipSC(); | |
scan: | |
while (!this.eof) { | |
switch (this.tokenType) { | |
case Comment: | |
case WhiteSpace: | |
this.next(); | |
continue; | |
case Function: | |
child = this.Function(consumeRaw, this.scope.AtrulePrelude); | |
break; | |
case Ident: | |
child = this.Identifier(); | |
break; | |
case LeftParenthesis: | |
child = this.Parentheses(parentheses, this.scope.AtrulePrelude); | |
break; | |
default: | |
break scan; | |
} | |
children.push(child); | |
} | |
return children; | |
} | |
export default { | |
parse: { | |
prelude() { | |
const children = readSequence.call(this); | |
if (this.getFirstListNode(children) === null) { | |
this.error('Condition is expected'); | |
} | |
return children; | |
}, | |
block(isStyleBlock = false) { | |
return this.Block(isStyleBlock); | |
} | |
} | |
}; | |