示例#1
0
 public TinyToken(int line, int collumn, char value, TinyGrammar grammar)
 {
     Line    = line;
     Collumn = collumn;
     Value   = value.ToString();
     Grammar = grammar;
 }
示例#2
0
        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);
            }
        }
示例#3
0
        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();
        }
示例#4
0
 public void ChangeGrammar(TinyGrammar newGrammarType)
 => Grammar = newGrammarType;