public void Visit(StringLiteralNode node) { throw new NotImplementedException(); }
private Node LeafExpression() { Node result; switch (lex.Token) { case Token.Identifier: { string identifier = lex.Lexeme; lex.Next(false); result = IdentifierRest(identifier, false); break; } case Token.IntLiteral: { int value = int.Parse(lex.Lexeme); lex.Next(false); result = new IntLiteralNode { Value = value }; break; } case Token.FloatLiteral: { double value = double.Parse(lex.Lexeme); lex.Next(false); result = new FloatLiteralNode { Value = value }; break; } case Token.CharLiteral: { char value = char.Parse(lex.Lexeme); lex.Next(false); result = new CharLiteralNode { Value = value }; break; } case Token.StringLiteral: { string value = lex.Lexeme; lex.Next(false); result = new StringLiteralNode { Value = value }; break; } case Token.OpenParentheses: lex.Next(); result = Expression(); if (lex.Token != Token.ClosedParentheses) { throw CreateErrorExpectedToken(Token.ClosedParentheses); } lex.Next(); break; default: throw CreateErrorUnexpectedToken(lex.Token, lex.Lexeme); } return result; }
public void Visit(StringLiteralNode node) { Debug.WriteLine("Visiting " + node.GetType().Name); }
public void Visit(StringLiteralNode node) { valueStack.Push(node.Value); }