UNPKG

unnestcss

Version:
3 lines (2 loc) 2.81 kB
"use strict";var e=require(`./enum.cjs`),t=require(`./utility.cjs`);const n=t=>{switch(t){case e.NULL_CHARACTER:case e.HORIZONTAL_TAB:case e.LINE_FEED:case e.CARRIAGE_RETURN:case e.SPACE:return 5;case e.EXCLAMATION:case e.PLUS:case e.COMMA:case e.SOLIDUS:case e.GREATER_THAN:case e.AT:case e.TILDE:case e.SEMICOLON:case e.LEFT_CURLY_BRACKET:case e.RIGHT_CURLY_BRACKET:return 4;case e.COLON:return 3;case e.DOUBLE_QUOTE:case e.SINGLE_QUOTE:case e.LEFT_PARENTHESIS:case e.LEFT_SQUARE_BRACKET:return 2;case e.RIGHT_PARENTHESIS:case e.RIGHT_SQUARE_BRACKET:return 1}return 0};class r{constructor(e){this.line=1,this.column=1,this.length=0,this.position=0,this.characters=e,this.length=this.characters.length}prev(){return this.position>0?(this.position--,this.character=this.characters[this.position]):this.character=e.NULL_CHARACTER,this.column--,this.character===e.LINE_FEED&&(this.column=1,this.line--),this.character}next(){return this.position<this.length?(this.character=this.characters[this.position],this.position++):this.character=e.NULL_CHARACTER,this.column++,this.character===e.LINE_FEED&&(this.column=1,this.line++),this.character}peek(){return this.characters[this.position]||e.NULL_CHARACTER}slice(e,t){return this.characters.slice(e,t)}delimit(t){return this.slice(this.position-1,this._delimiter(t===e.LEFT_SQUARE_BRACKET?e.RIGHT_SQUARE_BRACKET:t===e.LEFT_PARENTHESIS?e.RIGHT_PARENTHESIS:t)).trim()}tokenize(){return this._tokenizer([])}whitespace(r){for(this.character=this.peek();this.character!==e.NULL_CHARACTER&&(this.character=this.peek(),t.charCodeAt(this.character)<33);)this.next();return n(r)>2||n(this.character)>3?``:e.SPACE}_tokenizer(t){for(;this.next()!==e.NULL_CHARACTER;)switch(n(this.character)){case 0:t.push(this.identifier(this.position-1));break;case 2:t.push(this.delimit(this.character));break;default:t.push(this.character)}return t}escaping(n,r){for(r--;r&&this.next()!==e.NULL_CHARACTER&&(r--,t.isHexChar(this.character)););return this.slice(n,this.position+ +(r<6&&this.peek()===e.SPACE&&this.next()===e.SPACE))}_delimiter(t){for(;this.next()!==e.NULL_CHARACTER;)switch(this.character){case t:return this.position;case e.DOUBLE_QUOTE:case e.SINGLE_QUOTE:t!==e.DOUBLE_QUOTE&&t!==e.SINGLE_QUOTE&&this._delimiter(this.character);break;case e.LEFT_PARENTHESIS:t===e.RIGHT_PARENTHESIS&&this._delimiter(t);break;case e.REVERSE_SOLIDUS:this.next();break}return this.position}commenter(t,n){for(;this.next()!==e.NULL_CHARACTER&&!(t===e.SOLIDUS&&this.character===e.LINE_FEED||t===e.ASTERISK&&this.character===e.ASTERISK&&this.peek()===e.SOLIDUS););return`/*${this.slice(n,this.position-1)}*${t===e.SOLIDUS?t:this.next()}`}identifier(e){for(;!n(this.peek());)this.next();return this.slice(e,this.position)}}exports.Tokenizer=r,exports.token=n; //# sourceMappingURL=tokenizer.cjs.map