public TinyToken(int line, int collumn, char value, TinyGrammar grammar) { Line = line; Collumn = collumn; Value = value.ToString(); Grammar = grammar; }
private void Handle(char character, TinyGrammar grammar) { var c = LastToken != null && LastToken.Line == Line ? LastToken.Collumn + LastToken.Value.Length : 1; if (LastToken == null || LastToken.Grammar != grammar) { Tokens.Add(new TinyToken(Line, c, character, grammar)); } else if (LastToken.Grammar == grammar) { LastToken.ConcatValue(character); } }
private void Eat(TinyGrammar c) { if (Peek == null) { throw new ExpectedException("c", "null", Peek.Line); } if (c != Peek.Grammar) { throw new ExpectedException(c.ToString(), Peek.Grammar.ToString(), Peek.Line); } //Console.WriteLine($"++++++ EAT - {c} ++++++"); LexicalAnalyze.GetNextToken(); }
public void ChangeGrammar(TinyGrammar newGrammarType) => Grammar = newGrammarType;