public Parser (char[] Input, IdentifierTable IDTable, bool ECMA3Mode) { this.ECMA3Mode = ECMA3Mode; lexer = new Tokenizer (Input, IDTable); diagnostics = new List<Diagnostic> (); Next (); // innit on first token }
public void init () { idtable = new IdentifierTable (); maptable = new IdentifierMappingTable (); gen = new RowanGenerator (maptable, idtable.InsertIdentifier ("this"), idtable.InsertIdentifier ("_"), idtable.InsertIdentifier ("arguments"), idtable.InsertIdentifier ("eval")); }
public Tokenizer (char[] Input, IdentifierTable IDTable) { this.source = Input; this.IDTable = IDTable; this.position = 0; this.row = 1; this.lineStartPosition = 0; this.comments = new List<Comment> (); // move that to static ctor? InitKeywords(); }
public Tokenizer(char[] Input, IdentifierTable IDTable) { this.source = Input; this.IDTable = IDTable; this.position = 0; this.row = 1; this.lineStartPosition = 0; this.comments = new List <Comment> (); // move that to static ctor? InitKeywords(); }
public SLE.LambdaExpression CompileExpression (char[] Input, ref List<Diagnostic> Diagnostics) { IdentifierMappingTable idmtable = new IdentifierMappingTable (); IdentifierTable idtable = new IdentifierTable (); Parser parser = new Parser (Input, idtable, true); List<Comment> comments = null; BindingInfo bindinginfo = null; Expression expr = parser.ParseExpression (ref comments, ref bindinginfo); Diagnostics = parser.Diagnostics; RowanGenerator gen = new RowanGenerator (idmtable, idtable.InsertIdentifier("this"), idtable.InsertIdentifier("arguments")); return gen.BindAndTransform (expr, bindinginfo); }
public SLE.LambdaExpression CompileProgram (char[] Input, ref List<Diagnostic> Diagnostics, ref bool IncompleteInput, bool PrintExpressions) { IdentifierMappingTable idmtable = new IdentifierMappingTable (); IdentifierTable idtable = new IdentifierTable (); Parser parser = new Parser (Input, new IdentifierTable (), true);//tode get ecma from somewhere List<Comment> comments = null; BindingInfo bindinginfo = null; DList<Statement, BlockStatement> list = parser.ParseProgram (ref comments, ref bindinginfo); Diagnostics = parser.Diagnostics; IncompleteInput = parser.SyntaxIncomplete(); RowanGenerator gen = new RowanGenerator (idmtable, idtable.InsertIdentifier ("this"), idtable.InsertIdentifier ("arguments")); return gen.BindAndTransform (list, bindinginfo, PrintExpressions); }
public SLE.LambdaExpression CompileExpression(char[] Input, ref List <Diagnostic> Diagnostics) { IdentifierMappingTable idmtable = new IdentifierMappingTable(); IdentifierTable idtable = new IdentifierTable(); Parser parser = new Parser(Input, idtable, true); List <Comment> comments = null; BindingInfo bindinginfo = null; Expression expr = parser.ParseExpression(ref comments, ref bindinginfo); Diagnostics = parser.Diagnostics; RowanGenerator gen = new RowanGenerator(idmtable, idtable.InsertIdentifier("this"), idtable.InsertIdentifier("arguments")); return(gen.BindAndTransform(expr, bindinginfo)); }
public SLE.LambdaExpression CompileProgram(char[] Input, ref List <Diagnostic> Diagnostics, ref bool IncompleteInput, bool PrintExpressions) { IdentifierMappingTable idmtable = new IdentifierMappingTable(); IdentifierTable idtable = new IdentifierTable(); Parser parser = new Parser(Input, new IdentifierTable(), true);//tode get ecma from somewhere List <Comment> comments = null; BindingInfo bindinginfo = null; DList <Statement, BlockStatement> list = parser.ParseProgram(ref comments, ref bindinginfo); Diagnostics = parser.Diagnostics; IncompleteInput = parser.SyntaxIncomplete(); RowanGenerator gen = new RowanGenerator(idmtable, idtable.InsertIdentifier("this"), idtable.InsertIdentifier("arguments")); return(gen.BindAndTransform(list, bindinginfo, PrintExpressions)); }
public Identifier(string Spelling, Token.Type KeywordValue, IdentifierTable IDTable) { this.Spelling = Spelling; this.KeywordValue = KeywordValue; identifierID = IDTable.NextIdentifierID; }
public Identifier(string Spelling, IdentifierTable IDTable) : this(Spelling, Token.Type.Identifier, IDTable) { }