public Parser(string value) { parseCheck = true; tokenList = new List<Token> (); TokenStream ts = new TokenStream (value); Token t; currentPosition = 0; while(!ts.end()){ t = ts.get (); if (t.getType() != TokenType.UNKNOWN && (t.getType() != TokenType.BTW || t.getType() != TokenType.OBTW)) { tokenList.Add (t); } } initializeParser(); }
public Interpreter(string input) { actionMap = new Dictionary<Statement_Types, lolAction> (); tokenList = new List<Token> (); TokenStream ts = new TokenStream (input); Token t; currentPosition = 0; variableTable = new SymbolTable (); functionTable = new FunctionTable(); lolIt = new LolIt (LOLType.NOOB, "", variableTable); variableTable.createVar ("IT", lolIt); errorFlag = false; while(!ts.end()){ t = ts.get (); MainClass.win.addLexemes (t.getValue (), t.getType ().ToString ()); if (t.getType () == TokenType.UNKNOWN) { MainClass.win.displayTextToConsole ("Unknown token: " + t.getValue ()); tokenList.Add (t); } else if ((t.getType () != TokenType.BTW && t.getType () != TokenType.OBTW)) { tokenList.Add (t); } } Parser p = new Parser (tokenList); if (!p.parse ()) { setError ("Error in parser"); }; tokToLolType = new Dictionary<TokenType, LOLType> (); tokToLolType.Add (TokenType.NUMBR_LITERAL, LOLType.NUMBR); tokToLolType.Add (TokenType.NUMBAR_LITERAL, LOLType.NUMBAR); tokToLolType.Add (TokenType.TROOF_LITERAL, LOLType.TROOF); tokToLolType.Add (TokenType.YARN_LITERAL, LOLType.YARN); addActionDefinitions (); actionList = p.getActionOrder (); }