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 ();
        }