<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>t014parser</title> <!-- ANTLR includes --> <script type="text/javascript" src="../../lib/antlr3-all.js"></script> <script type="text/javascript" src="t014parserLexer.js"></script> <script type="text/javascript" src="t014parserParser.js"></script> <!-- JsUnit include --> <script type="text/javascript" src="../jsunit/app/jsUnitCore.js"></script> <!-- Test Code --> <script type="text/javascript"> function testValid() { var cstream = new org.antlr.runtime.ANTLRStringStream("var foobar; gnarz(); var blupp; flupp ( ) ;"), lexer = new t014parserLexer(cstream), tstream = new org.antlr.runtime.CommonTokenStream(lexer), parser = new t014parserParser(tstream), i, expected = [ ["decl", "foobar"], ["call", "gnarz"], ["decl", "blupp"], ["call", "flupp"] ]; parser.document(); assertEquals(0, parser.reportedErrors.length); for (i=0; i<parser.events.length; i++) { assertEquals(parser.events[i][0], expected[i][0]); assertEquals(parser.events[i][1], expected[i][1]); } } function testMalformedInput1() { var cstream = new org.antlr.runtime.ANTLRStringStream("var; foo();"), lexer = new t014parserLexer(cstream), tstream = new org.antlr.runtime.CommonTokenStream(lexer), parser = new t014parserParser(tstream); parser.document(); assertEquals(parser.reportedErrors.length, 1); assertEquals(parser.reportedErrors[0].indexOf("line 1:3"), 0); assertEquals(parser.events.length, 0); } function testMalformedInput2() { var cstream = new org.antlr.runtime.ANTLRStringStream("var foobar(); gnarz();"), lexer = new t014parserLexer(cstream), tstream = new org.antlr.runtime.CommonTokenStream(lexer), parser = new t014parserParser(tstream), expected = [["call", "gnarz"]]; parser.document(); assertEquals(parser.reportedErrors.length, 1); assertEquals(parser.reportedErrors[0].indexOf("line 1:10"), 0); var i; assertEquals(parser.events.length, expected.length); for (i=0; i<expected.length; i++) { assertEquals(parser.events[i][0], expected[i][0]); assertEquals(parser.events[i][1], expected[i][1]); } } function testMalformedInput3() { var cstream = new org.antlr.runtime.ANTLRStringStream("gnarz(; flupp();"), lexer = new t014parserLexer(cstream), tstream = new org.antlr.runtime.CommonTokenStream(lexer), parser = new t014parserParser(tstream), expected = [["call","gnarz"],["call","flupp"]]; parser.document(); assertEquals(parser.reportedErrors.length, 1); assertEquals(parser.reportedErrors[0].indexOf("line 1:6"), 0); var i; assertEquals(parser.events.length, expected.length); for (i=0; i<expected.length; i++) { assertEquals(parser.events[i][0], expected[i][0]); assertEquals(parser.events[i][1], expected[i][1]); } } </script> </head> <body> <h1>t014parser</h1> </body>