private static BodySyntax ParseBlockStatement(string source, ReadOnlyArray<string> parameters) { if (String.IsNullOrEmpty(source)) return null; var lexer = new EcmaScriptLexer(new ANTLRStringStream(source)); var parser = new EcmaScriptParser(new CommonTokenStream(lexer), source); var block = parser.ExecuteBlockStatements(parameters); if (parser.Errors != null && parser.Errors.Count > 0) throw new JintException(String.Join(Environment.NewLine, parser.Errors.ToArray())); return block; }
internal static ProgramSyntax ParseProgram(string source) { if (String.IsNullOrEmpty(source)) return null; var lexer = new EcmaScriptLexer(new ANTLRStringStream(source)); var parser = new EcmaScriptParser(new CommonTokenStream(lexer), source); var program = parser.Execute(); if (parser.Errors != null && parser.Errors.Count > 0) throw new JintException(String.Join(Environment.NewLine, parser.Errors.ToArray())); return program; }