root/as3/HaskellHackathon/src/HaskellHackathon.as

リビジョン 260, 1.1 kB (コミッタ: yossy, コミット時期: 10 ヶ月 前)

Added as3/HaskellHackathon

Line 
1 package
2 {
3         import flash.display.Sprite;
4        
5         import org.libspark.haskell.parser.IParser;
6         import org.libspark.haskell.parser.kmyacc.KmyaccParser;
7         import org.libspark.haskell.parser.nodes.EvaluteContext;
8         import org.libspark.haskell.parser.nodes.INode;
9
10         public class HaskellHackathon extends Sprite
11         {
12                 public function HaskellHackathon()
13                 {
14                         var parser:IParser = new KmyaccParser();
15                        
16                         var source:String =
17                         /**
18                         'foo x y = x + y;' +
19                         'trace = foo 3 4'
20                         /**/
21                         'foo x y = x + y;' +
22                         'hoge z = foo 4 z;' +
23                         'fuga i k = i + hoge k;' +
24                         'trace = fuga 1 2'
25                         /**
26                         'main = trace (1 + 2 * 3 + 4 * 5 * 6);' +
27                         'foo x y = x + y;' +
28                         'hoge    = 2'
29                         /**
30                         'factA 0 = 1;' +
31                         'factA n = n * factA (n-1);'
32                         /**
33                         'factB n | n==0      = 1' +
34                         '         | otherwise = n * factB (n-1);'
35                         /**
36                         ' factC n = if n==0' +
37                         '               then 1' +
38                         '               else n * factC (n-1);' +
39                         ' factD n = case n of' +
40                         '              0 -> 1' +
41                         '              _ -> n * factD (n-1);'
42                         /**/
43                        
44                         var node:INode = parser.parse(source);
45                        
46                         node.evalute(new EvaluteContext());
47                 }
48         }
49 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。