summaryrefslogtreecommitdiff
path: root/src/tools/c/GFCC/Par.y
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-06-25 16:43:48 +0000
committeraarne <aarne@cs.chalmers.se>2008-06-25 16:43:48 +0000
commitb96b36f43de3e2f8b58d5f539daa6f6d47f25870 (patch)
tree0992334be13cec6538a1dea22fbbf26ad6bdf224 /src/tools/c/GFCC/Par.y
parentfe367412e0aeb4ad5c02de68e6eca382e0f96984 (diff)
removed src for 2.9
Diffstat (limited to 'src/tools/c/GFCC/Par.y')
-rw-r--r--src/tools/c/GFCC/Par.y204
1 files changed, 0 insertions, 204 deletions
diff --git a/src/tools/c/GFCC/Par.y b/src/tools/c/GFCC/Par.y
deleted file mode 100644
index fa30981cb..000000000
--- a/src/tools/c/GFCC/Par.y
+++ /dev/null
@@ -1,204 +0,0 @@
--- This Happy file was machine-generated by the BNF converter
-{
-{-# OPTIONS -fno-warn-incomplete-patterns -fno-warn-overlapping-patterns #-}
-module GFCC.Par where
-import GFCC.Abs
-import GFCC.Lex
-import GFCC.ErrM
-}
-
-%name pGrammar Grammar
-%name pHeader Header
-%name pAbstract Abstract
-%name pConcrete Concrete
-%name pAbsDef AbsDef
-%name pCncDef CncDef
-%name pType Type
-%name pExp Exp
-%name pAtom Atom
-%name pTerm Term
-%name pTokn Tokn
-%name pVariant Variant
-%name pListConcrete ListConcrete
-%name pListAbsDef ListAbsDef
-%name pListCncDef ListCncDef
-%name pListCId ListCId
-%name pListTerm ListTerm
-%name pListExp ListExp
-%name pListString ListString
-%name pListVariant ListVariant
-
--- no lexer declaration
-%monad { Err } { thenM } { returnM }
-%tokentype { Token }
-
-%token
- ';' { PT _ (TS ";") }
- '(' { PT _ (TS "(") }
- ')' { PT _ (TS ")") }
- '{' { PT _ (TS "{") }
- '}' { PT _ (TS "}") }
- ':' { PT _ (TS ":") }
- '=' { PT _ (TS "=") }
- '->' { PT _ (TS "->") }
- '?' { PT _ (TS "?") }
- '[' { PT _ (TS "[") }
- ']' { PT _ (TS "]") }
- '!' { PT _ (TS "!") }
- '$' { PT _ (TS "$") }
- '[|' { PT _ (TS "[|") }
- '|]' { PT _ (TS "|]") }
- '+' { PT _ (TS "+") }
- '@' { PT _ (TS "@") }
- '#' { PT _ (TS "#") }
- '/' { PT _ (TS "/") }
- ',' { PT _ (TS ",") }
- 'abstract' { PT _ (TS "abstract") }
- 'concrete' { PT _ (TS "concrete") }
- 'grammar' { PT _ (TS "grammar") }
- 'pre' { PT _ (TS "pre") }
-
-L_quoted { PT _ (TL $$) }
-L_integ { PT _ (TI $$) }
-L_doubl { PT _ (TD $$) }
-L_CId { PT _ (T_CId $$) }
-L_err { _ }
-
-
-%%
-
-String :: { String } : L_quoted { $1 }
-Integer :: { Integer } : L_integ { (read $1) :: Integer }
-Double :: { Double } : L_doubl { (read $1) :: Double }
-CId :: { CId} : L_CId { CId ($1)}
-
-Grammar :: { Grammar }
-Grammar : Header ';' Abstract ';' ListConcrete { Grm $1 $3 (reverse $5) }
-
-
-Header :: { Header }
-Header : 'grammar' CId '(' ListCId ')' { Hdr $2 $4 }
-
-
-Abstract :: { Abstract }
-Abstract : 'abstract' '{' ListAbsDef '}' { Abs (reverse $3) }
-
-
-Concrete :: { Concrete }
-Concrete : 'concrete' CId '{' ListCncDef '}' { Cnc $2 (reverse $4) }
-
-
-AbsDef :: { AbsDef }
-AbsDef : CId ':' Type '=' Exp { Fun $1 $3 $5 }
-
-
-CncDef :: { CncDef }
-CncDef : CId '=' Term { Lin $1 $3 }
-
-
-Type :: { Type }
-Type : ListCId '->' CId { Typ $1 $3 }
-
-
-Exp :: { Exp }
-Exp : '(' Atom ListExp ')' { Tr $2 (reverse $3) }
- | Atom { trA_ $1 }
-
-
-Atom :: { Atom }
-Atom : CId { AC $1 }
- | String { AS $1 }
- | Integer { AI $1 }
- | Double { AF $1 }
- | '?' { AM }
-
-
-Term :: { Term }
-Term : '[' ListTerm ']' { R $2 }
- | '(' Term '!' Term ')' { P $2 $4 }
- | '(' ListTerm ')' { S $2 }
- | Tokn { K $1 }
- | '$' Integer { V $2 }
- | Integer { C $1 }
- | CId { F $1 }
- | '[|' ListTerm '|]' { FV $2 }
- | '(' String '+' Term ')' { W $2 $4 }
- | '(' Term '@' Term ')' { RP $2 $4 }
- | '?' { TM }
- | '(' CId '->' Term ')' { L $2 $4 }
- | '#' CId { BV $2 }
-
-
-Tokn :: { Tokn }
-Tokn : String { KS $1 }
- | '[' 'pre' ListString '[' ListVariant ']' ']' { KP (reverse $3) $5 }
-
-
-Variant :: { Variant }
-Variant : ListString '/' ListString { Var (reverse $1) (reverse $3) }
-
-
-ListConcrete :: { [Concrete] }
-ListConcrete : {- empty -} { [] }
- | ListConcrete Concrete ';' { flip (:) $1 $2 }
-
-
-ListAbsDef :: { [AbsDef] }
-ListAbsDef : {- empty -} { [] }
- | ListAbsDef AbsDef ';' { flip (:) $1 $2 }
-
-
-ListCncDef :: { [CncDef] }
-ListCncDef : {- empty -} { [] }
- | ListCncDef CncDef ';' { flip (:) $1 $2 }
-
-
-ListCId :: { [CId] }
-ListCId : {- empty -} { [] }
- | CId { (:[]) $1 }
- | CId ',' ListCId { (:) $1 $3 }
-
-
-ListTerm :: { [Term] }
-ListTerm : {- empty -} { [] }
- | Term { (:[]) $1 }
- | Term ',' ListTerm { (:) $1 $3 }
-
-
-ListExp :: { [Exp] }
-ListExp : {- empty -} { [] }
- | ListExp Exp { flip (:) $1 $2 }
-
-
-ListString :: { [String] }
-ListString : {- empty -} { [] }
- | ListString String { flip (:) $1 $2 }
-
-
-ListVariant :: { [Variant] }
-ListVariant : {- empty -} { [] }
- | Variant { (:[]) $1 }
- | Variant ',' ListVariant { (:) $1 $3 }
-
-
-
-{
-
-returnM :: a -> Err a
-returnM = return
-
-thenM :: Err a -> (a -> Err b) -> Err b
-thenM = (>>=)
-
-happyError :: [Token] -> Err a
-happyError ts =
- Bad $ "syntax error at " ++ tokenPos ts ++
- case ts of
- [] -> []
- [Err _] -> " due to lexer error"
- _ -> " before " ++ unwords (map prToken (take 4 ts))
-
-myLexer = tokens
-trA_ a_ = Tr a_ []
-}
-