92 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			HTML
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			HTML
		
	
	
		
			Executable File
		
	
	
| <!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>
 |