Clean up some duplication
[factor/jcg.git] / extra / peg / javascript / parser / parser-tests.factor
bloba2c50952be18acb3c0c69015ebdc97431e00303a
1 ! Copyright (C) 2008 Chris Double.
2 ! See http://factorcode.org/license.txt for BSD license.
4 USING: kernel tools.test peg peg.javascript.ast peg.javascript.parser 
5        accessors multiline sequences math peg.ebnf ;
6 IN: peg.javascript.parser.tests
8 \ javascript must-infer
11   T{
12       ast-begin
13       f
14       V{
15           T{ ast-number f 123 }
16           T{ ast-string f "hello" }
17           T{
18               ast-call
19               f
20               T{ ast-get f "foo" }
21               V{ T{ ast-get f "x" } }
22           }
23       }
24   }
25 } [
26   "123; 'hello'; foo(x);" javascript
27 ] unit-test
29 { t } [ 
31 var x=5
32 var y=10
33 "> main \ javascript rule (parse) remaining>> length zero?
34 ] unit-test
37 { t } [ 
39 function foldl(f, initial, seq) {
40    for(var i=0; i< seq.length; ++i)
41      initial = f(initial, seq[i]);
42    return initial;
43 }"> main \ javascript rule (parse) remaining>> length zero?
44 ] unit-test
46 { t } [ 
48 ParseState.prototype.from = function(index) {
49     var r = new ParseState(this.input, this.index + index);
50     r.cache = this.cache;
51     r.length = this.length - index;
52     return r;
53 }"> main \ javascript rule (parse) remaining>> length zero?
54 ] unit-test