1*16467b97STreehugger Robot<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2*16467b97STreehugger Robot<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 3*16467b97STreehugger Robot<head> 4*16467b97STreehugger Robot<meta http-equiv="content-type" content="text/html;charset=utf-8" /> 5*16467b97STreehugger Robot<title>t018llstar</title> 6*16467b97STreehugger Robot 7*16467b97STreehugger Robot<!-- ANTLR includes --> 8*16467b97STreehugger Robot<script type="text/javascript" src="../../lib/antlr3-all.js"></script> 9*16467b97STreehugger Robot<script type="text/javascript" src="t018llstarLexer.js"></script> 10*16467b97STreehugger Robot<script type="text/javascript" src="t018llstarParser.js"></script> 11*16467b97STreehugger Robot 12*16467b97STreehugger Robot 13*16467b97STreehugger Robot<!-- JsUnit include --> 14*16467b97STreehugger Robot<script type="text/javascript" src="../jsunit/app/jsUnitCore.js"></script> 15*16467b97STreehugger Robot 16*16467b97STreehugger Robot<!-- Test Code --> 17*16467b97STreehugger Robot<script type="text/javascript"> 18*16467b97STreehugger Robot TestParser = function() { 19*16467b97STreehugger Robot TestParser.superclass.constructor.apply(this, arguments); 20*16467b97STreehugger Robot this.reportedErrors = []; 21*16467b97STreehugger Robot }; 22*16467b97STreehugger Robot org.antlr.lang.extend(TestParser, t018llstarParser, { 23*16467b97STreehugger Robot emitErrorMessage: function(msg) { 24*16467b97STreehugger Robot this.reportedErrors.push(msg); 25*16467b97STreehugger Robot } 26*16467b97STreehugger Robot }); 27*16467b97STreehugger Robot 28*16467b97STreehugger Robot function testValid() { 29*16467b97STreehugger Robot var xinput = [ 30*16467b97STreehugger Robot "char c;", 31*16467b97STreehugger Robot "int x;", 32*16467b97STreehugger Robot "", 33*16467b97STreehugger Robot "void bar(int x);", 34*16467b97STreehugger Robot "", 35*16467b97STreehugger Robot "int foo(int y, char d) {", 36*16467b97STreehugger Robot " int i;", 37*16467b97STreehugger Robot " for (i=0; i<3; i=i+1) {", 38*16467b97STreehugger Robot " x=3;", 39*16467b97STreehugger Robot " y=5;", 40*16467b97STreehugger Robot " }", 41*16467b97STreehugger Robot "}" 42*16467b97STreehugger Robot ].join("\n"), 43*16467b97STreehugger Robot xoutput = [ 44*16467b97STreehugger Robot "bar is a declaration", 45*16467b97STreehugger Robot "foo is a definition" 46*16467b97STreehugger Robot ].join("\n"); 47*16467b97STreehugger Robot var cstream = new org.antlr.runtime.ANTLRStringStream(xinput), 48*16467b97STreehugger Robot lexer = new t018llstarLexer(cstream), 49*16467b97STreehugger Robot tstream = new org.antlr.runtime.CommonTokenStream(lexer), 50*16467b97STreehugger Robot parser = new TestParser(tstream); 51*16467b97STreehugger Robot 52*16467b97STreehugger Robot parser.program(); 53*16467b97STreehugger Robot assertEquals(xoutput, parser.olog.join("\n")); 54*16467b97STreehugger Robot } 55*16467b97STreehugger Robot</script> 56*16467b97STreehugger Robot 57*16467b97STreehugger Robot</head> 58*16467b97STreehugger Robot<body> 59*16467b97STreehugger Robot <h1>t018llstar</h1> 60*16467b97STreehugger Robot</body> 61*16467b97STreehugger Robot</html> 62