summaryrefslogtreecommitdiff
path: root/src/GF/FCFG/AbsFCFG.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2006-09-19 12:59:33 +0000
committeraarne <aarne@cs.chalmers.se>2006-09-19 12:59:33 +0000
commit7ea135378f9b6b70288ac174e2f165f469efcf58 (patch)
tree73afa1bbf88acc95fcc2f3b97464a14bbd5c5aec /src/GF/FCFG/AbsFCFG.hs
parent1242b8cc91f2ba3b9860cf34b36d0a5bbcea1b1a (diff)
FCFG format in BNFC
Diffstat (limited to 'src/GF/FCFG/AbsFCFG.hs')
-rw-r--r--src/GF/FCFG/AbsFCFG.hs82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/GF/FCFG/AbsFCFG.hs b/src/GF/FCFG/AbsFCFG.hs
new file mode 100644
index 000000000..c7b2c4057
--- /dev/null
+++ b/src/GF/FCFG/AbsFCFG.hs
@@ -0,0 +1,82 @@
+module GF.FCFG.AbsFCFG where
+
+-- Haskell module generated by the BNF converter
+
+newtype Ident = Ident String deriving (Eq,Ord,Show)
+data FGrammar =
+ FGr [FRule]
+ deriving (Eq,Ord,Show)
+
+data FRule =
+ FR Abstract [[FSymbol]]
+ deriving (Eq,Ord,Show)
+
+data Abstract =
+ Abs FCat [FCat] Name
+ deriving (Eq,Ord,Show)
+
+data FSymbol =
+ FSymCat FCat Integer Integer
+ | FSymTok String
+ deriving (Eq,Ord,Show)
+
+data FCat =
+ FC Integer Ident [[PathEl]] [PathTerm]
+ deriving (Eq,Ord,Show)
+
+data PathEl =
+ PLabel Label
+ | PTerm Term
+ deriving (Eq,Ord,Show)
+
+data PathTerm =
+ PtT [PathEl] Term
+ deriving (Eq,Ord,Show)
+
+data Name =
+ Nm Ident [Profile]
+ deriving (Eq,Ord,Show)
+
+data Profile =
+ Unify [Integer]
+ | Const Forest
+ deriving (Eq,Ord,Show)
+
+data Forest =
+ FMeta
+ | FNode Ident [[Forest]]
+ | FString String
+ | FInt Integer
+ | FFloat Double
+ deriving (Eq,Ord,Show)
+
+data Term =
+ Arg Integer Ident [PathEl]
+ | Constr CIdent [Term]
+ | Rec [Assoc]
+ | Proj Term Label
+ | Tbl [Case]
+ | Select Term Term
+ | Vars [Term]
+ | Concat Term Term
+ | Tok String
+ | Empty
+ deriving (Eq,Ord,Show)
+
+data Case =
+ Cas Term Term
+ deriving (Eq,Ord,Show)
+
+data Assoc =
+ Ass Label Term
+ deriving (Eq,Ord,Show)
+
+data Label =
+ L Ident
+ | LV Integer
+ deriving (Eq,Ord,Show)
+
+data CIdent =
+ CIQ Ident Ident
+ deriving (Eq,Ord,Show)
+