diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:43:48 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:43:48 +0000 |
| commit | b96b36f43de3e2f8b58d5f539daa6f6d47f25870 (patch) | |
| tree | 0992334be13cec6538a1dea22fbbf26ad6bdf224 /src/tools/c/GFCC/Par.y | |
| parent | fe367412e0aeb4ad5c02de68e6eca382e0f96984 (diff) | |
removed src for 2.9
Diffstat (limited to 'src/tools/c/GFCC/Par.y')
| -rw-r--r-- | src/tools/c/GFCC/Par.y | 204 |
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_ [] -} - |
