Home | History | Annotate | Download | only in functional
      1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
      3 <head>
      4 <meta http-equiv="content-type" content="text/html;charset=utf-8" />
      5 <title>t022scopes</title>
      6 
      7 <!-- ANTLR includes -->
      8 <script type="text/javascript" src="../../lib/antlr3-all.js"></script>
      9 <script type="text/javascript" src="t022scopesLexer.js"></script>
     10 <script type="text/javascript" src="t022scopesParser.js"></script>
     11 
     12 
     13 <!-- JsUnit include -->
     14 <script type="text/javascript" src="../jsunit/app/jsUnitCore.js"></script>
     15 
     16 <!-- Test Code -->
     17 <script type="text/javascript">
     18     var TParser = function() {
     19         TParser.superclass.constructor.apply(this, arguments);
     20     }
     21     org.antlr.lang.extend(TParser, t022scopesParser, {
     22         emitErrorMessage: function(msg) {},
     23         reportError: function(e) { throw e; }
     24     });
     25 
     26 
     27     function testa1() {
     28         var cstream = new org.antlr.runtime.ANTLRStringStream("foobar"),
     29             lexer = new t022scopesLexer(cstream),
     30             tstream = new org.antlr.runtime.CommonTokenStream(lexer),
     31             parser = new TParser(tstream);
     32 
     33         // just make sure we don't get any errors
     34         parser.a();
     35     }
     36 
     37     function testb1() {
     38         var cstream = new org.antlr.runtime.ANTLRStringStream("foobar"),
     39             lexer = new t022scopesLexer(cstream),
     40             tstream = new org.antlr.runtime.CommonTokenStream(lexer),
     41             parser = new TParser(tstream);
     42 
     43         try {
     44             parser.b(false);
     45             fail("above should have throw error");
     46         } catch(e) {
     47             assert(org.antlr.lang.isValue(e));
     48         }
     49     }
     50 
     51     function testb2() {
     52         var cstream = new org.antlr.runtime.ANTLRStringStream("foobar"),
     53             lexer = new t022scopesLexer(cstream),
     54             tstream = new org.antlr.runtime.CommonTokenStream(lexer),
     55             parser = new TParser(tstream);
     56 
     57         parser.b(true);
     58     }
     59 
     60     function testc1() {
     61         var xinput = [
     62             "{",
     63             "   int i;",
     64             "   int j;",
     65             "   i = 0;",
     66             "}"
     67         ].join("\n");
     68 
     69         var cstream = new org.antlr.runtime.ANTLRStringStream(xinput),
     70             lexer = new t022scopesLexer(cstream),
     71             tstream = new org.antlr.runtime.CommonTokenStream(lexer),
     72             parser = new TParser(tstream),
     73             i;
     74 
     75         var symbols = parser.c();
     76         assert(symbols.i);
     77         assert(symbols.j);
     78     }
     79 
     80     function testc2() {
     81         var xinput = [
     82             "{",
     83             "   int i;",
     84             "   int j;",
     85             "   i = 0;",
     86             "   x = 4;",
     87             "}"
     88         ].join("\n");
     89 
     90         var cstream = new org.antlr.runtime.ANTLRStringStream(xinput),
     91             lexer = new t022scopesLexer(cstream),
     92             tstream = new org.antlr.runtime.CommonTokenStream(lexer),
     93             parser = new TParser(tstream),
     94             i;
     95 
     96         try {
     97             parser.c();
     98             fail("shouldn't get here");
     99         } catch(e) {
    100             assertEquals(e.message, "x");
    101         }
    102     }
    103 
    104     function testd1() {
    105         var xinput = [
    106             "{",
    107             "   int i;",
    108             "   int j;",
    109             "   i = 0;",
    110             "   {",
    111             "       int i;",
    112             "       int x;",
    113             "       x = 5;",
    114             "   }",
    115             "}"
    116         ].join("\n");
    117 
    118         var cstream = new org.antlr.runtime.ANTLRStringStream(xinput),
    119             lexer = new t022scopesLexer(cstream),
    120             tstream = new org.antlr.runtime.CommonTokenStream(lexer),
    121             parser = new TParser(tstream),
    122             i;
    123 
    124         var symbols = parser.d();
    125         assert(symbols.i);
    126         assert(symbols.j);
    127     }
    128 
    129     function teste1() {
    130         var xinput = "{ { { { 12 } } } }";
    131         var cstream = new org.antlr.runtime.ANTLRStringStream(xinput),
    132             lexer = new t022scopesLexer(cstream),
    133             tstream = new org.antlr.runtime.CommonTokenStream(lexer),
    134             parser = new TParser(tstream);
    135 
    136         var res = parser.e();
    137         assertEquals(res, 12);
    138     }
    139 
    140     function testf1() {
    141         var xinput = "{ { { { 12 } } } }";
    142         var cstream = new org.antlr.runtime.ANTLRStringStream(xinput),
    143             lexer = new t022scopesLexer(cstream),
    144             tstream = new org.antlr.runtime.CommonTokenStream(lexer),
    145             parser = new TParser(tstream);
    146 
    147         var res = parser.f();
    148         assertUndefined(res);
    149     }
    150 
    151     function testf2() {
    152         var xinput = "{ { 12 } }";
    153         var cstream = new org.antlr.runtime.ANTLRStringStream(xinput),
    154             lexer = new t022scopesLexer(cstream),
    155             tstream = new org.antlr.runtime.CommonTokenStream(lexer),
    156             parser = new TParser(tstream);
    157 
    158         var res = parser.f();
    159         assertUndefined(res);
    160     }
    161 </script>
    162 
    163 </head>
    164 <body>
    165     <h1>t022scopes</h1>
    166 </body>
    167 </html>
    168