summaryrefslogtreecommitdiff
path: root/src/GF/Canon
diff options
context:
space:
mode:
authorbringert <bringert@cs.chalmers.se>2006-12-08 19:53:06 +0000
committerbringert <bringert@cs.chalmers.se>2006-12-08 19:53:06 +0000
commitc038db9d7cc39de613ece4edcfbc5820d53317dc (patch)
tree3f8f9f1c573a9ad13b99ef878ee5b8cca50611f4 /src/GF/Canon
parent6645233be01fd8c7b2259340baa45f732435c9aa (diff)
JavaScript generation: compile all concrete syntaxes, not just the first.
Diffstat (limited to 'src/GF/Canon')
-rw-r--r--src/GF/Canon/CanonToJS.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/GF/Canon/CanonToJS.hs b/src/GF/Canon/CanonToJS.hs
index 18071ce80..8260557a6 100644
--- a/src/GF/Canon/CanonToJS.hs
+++ b/src/GF/Canon/CanonToJS.hs
@@ -11,12 +11,12 @@ prCanon2js :: CanonGrammar -> String
prCanon2js gr = gfcc2js $ mkCanon2gfcc gr
gfcc2js :: C.Grammar -> String
-gfcc2js (C.Grm _ _ cs) = JS.printTree (concrete2js (head cs)) -- FIXME
+gfcc2js (C.Grm _ _ cs) = JS.printTree $ JS.Program $ concatMap concrete2js cs
-concrete2js :: C.Concrete -> JS.Program
+concrete2js :: C.Concrete -> [JS.Element]
concrete2js (C.Cnc (C.CId c) ds) =
- JS.Program ([JS.ElStmt $ JS.SDeclOrExpr $ JS.Decl [JS.DInit l (new "Linearizer" [])]]
- ++ concatMap (cncdef2js l) ds)
+ [JS.ElStmt $ JS.SDeclOrExpr $ JS.Decl [JS.DInit l (new "Linearizer" [])]]
+ ++ concatMap (cncdef2js l) ds
where l = JS.Ident c
cncdef2js :: JS.Ident -> C.CncDef -> [JS.Element]