public LexicalModeContext(LexicalMode start) { modes = new Stack <LexicalMode>(3); this.Current = start; modes.Push(start); }
public void Leave(LexicalMode mode, CssTokenizer tokenizer = null) { if (current != mode) throw new UnexpectedModeChange(current, mode, (tokenizer == null) ? 0 : tokenizer.Current.Position); modes.Pop(); current = modes.Peek(); }
public CssToken Consume(TokenKind expect, LexicalMode mode) { if (Current.Kind != expect) { throw new UnexpectedTokenException(mode, expect, Current); } return(Consume()); }
public CssToken Read(TokenKind expect, LexicalMode mode) { if (current.Kind != expect) { throw new UnexpectedTokenException(mode, expect, current); } return Read(); }
public CssTokenizer(SourceReader reader, LexicalMode mode = LexicalMode.Selector) { this.reader = reader; this.reader.Next(); // Start the reader this.mode = new LexicalModeContext(mode); this.Next(); // Load the first token }
public void Leave(LexicalMode mode, int position = 0) { if (Current != mode) { throw new UnexpectedModeChange(Current, mode, position); } modes.Pop(); Current = modes.Peek(); }
public CssTokenizer(SourceReader reader, LexicalMode mode = LexicalMode.Selector) { this.reader = reader; this.reader.Next(); // Start the reader this.mode = new LexicalModeContext(mode); this.stack = new Stack <CssToken>(3); current = default; isEnd = false; this.Next(); // Load the first token }
public void Enter(LexicalMode mode) { modes.Push(mode); Current = mode; }
public UnexpectedTokenException(LexicalMode mode, CssToken token) : base($"Unexpected token reading {mode}. Was '{token.Kind}'.") { Token = token; }
public UnexpectedTokenException(LexicalMode mode, TokenKind expectedKind, CssToken token) : base($"Unexpected token at {token.Position} reading {mode}. Expected '{expectedKind}'. Was '{token.Kind}'.", token.Position) { Token = token; }
// "Current mode is:" + current + ". Leaving " + mode + "." public UnexpectedModeChange(LexicalMode currentMode, LexicalMode leavingMode, int position) : base($"Unexpected mode change. Expected '{leavingMode}'. Was {currentMode}.", position) { }
public UnexpectedTokenException(LexicalMode mode, CssToken token) : base($"Unexpected token reading {mode}. Was '{token.Kind}'.") { this.token = token; }
// "Current mode is:" + current + ". Leaving " + mode + "." public UnbalancedBlock(LexicalMode currentMode, CssToken startToken) : base("The block is unclosed, '}' expected", startToken.Position) { }
public UnexpectedTokenException(LexicalMode mode, TokenKind expectedKind, CssToken token) : base($"Unexpected token at {token.Position} reading {mode}. Expected '{expectedKind}'. Was '{token.Kind}'.", token.Position) { this.token = token; }
public void Enter(LexicalMode mode) { modes.Push(mode); current = mode; }
public LexicalModeContext(LexicalMode start) { this.current = start; modes.Push(start); }
public UnexpectedModeChange(LexicalMode currentMode, LexicalMode leavingMode, int position) : base($"Unexpected mode change. Expected {currentMode}. Was {leavingMode}.") { this.position = position; }