| <!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> |