summaryrefslogtreecommitdiff
path: root/src/Transfer/Core/Par.y
diff options
context:
space:
mode:
Diffstat (limited to 'src/Transfer/Core/Par.y')
-rw-r--r--src/Transfer/Core/Par.y203
1 files changed, 0 insertions, 203 deletions
diff --git a/src/Transfer/Core/Par.y b/src/Transfer/Core/Par.y
deleted file mode 100644
index ceeaa313f..000000000
--- a/src/Transfer/Core/Par.y
+++ /dev/null
@@ -1,203 +0,0 @@
--- This Happy file was machine-generated by the BNF converter
-{
-{-# OPTIONS -fno-warn-incomplete-patterns -fno-warn-overlapping-patterns #-}
-module Transfer.Core.Par where
-import Transfer.Core.Abs
-import Transfer.Core.Lex
-import Transfer.ErrM
-}
-
-%name pModule Module
-%name pExp Exp
-
--- 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 ".") }
- 'Type' { PT _ (TS "Type") }
- 'case' { PT _ (TS "case") }
- 'data' { PT _ (TS "data") }
- 'in' { PT _ (TS "in") }
- 'let' { PT _ (TS "let") }
- 'of' { PT _ (TS "of") }
- 'rec' { PT _ (TS "rec") }
- 'sig' { PT _ (TS "sig") }
- 'where' { PT _ (TS "where") }
-
-L_quoted { PT _ (TL $$) }
-L_integ { PT _ (TI $$) }
-L_doubl { PT _ (TD $$) }
-L_TMeta { PT _ (T_TMeta $$) }
-L_CIdent { PT _ (T_CIdent $$) }
-L_err { _ }
-
-
-%%
-
-String :: { String } : L_quoted { $1 }
-Integer :: { Integer } : L_integ { (read $1) :: Integer }
-Double :: { Double } : L_doubl { (read $1) :: Double }
-TMeta :: { TMeta} : L_TMeta { TMeta ($1)}
-CIdent :: { CIdent} : L_CIdent { CIdent ($1)}
-
-Module :: { Module }
-Module : ListDecl { Module $1 }
-
-
-ListDecl :: { [Decl] }
-ListDecl : {- empty -} { [] }
- | Decl { (:[]) $1 }
- | Decl ';' ListDecl { (:) $1 $3 }
-
-
-Decl :: { Decl }
-Decl : 'data' CIdent ':' Exp 'where' '{' ListConsDecl '}' { DataDecl $2 $4 $7 }
- | CIdent ':' Exp { TypeDecl $1 $3 }
- | CIdent '=' Exp { ValueDecl $1 $3 }
-
-
-ConsDecl :: { ConsDecl }
-ConsDecl : CIdent ':' Exp { ConsDecl $1 $3 }
-
-
-ListConsDecl :: { [ConsDecl] }
-ListConsDecl : {- empty -} { [] }
- | ConsDecl { (:[]) $1 }
- | ConsDecl ';' ListConsDecl { (:) $1 $3 }
-
-
-ListPattern :: { [Pattern] }
-ListPattern : {- empty -} { [] }
- | ListPattern Pattern { flip (:) $1 $2 }
-
-
-Pattern :: { Pattern }
-Pattern : '(' CIdent ListPattern ')' { PCons $2 (reverse $3) }
- | PatternVariable { PVar $1 }
- | 'rec' '{' ListFieldPattern '}' { PRec $3 }
- | String { PStr $1 }
- | Integer { PInt $1 }
-
-
-FieldPattern :: { FieldPattern }
-FieldPattern : CIdent '=' Pattern { FieldPattern $1 $3 }
-
-
-ListFieldPattern :: { [FieldPattern] }
-ListFieldPattern : {- empty -} { [] }
- | FieldPattern { (:[]) $1 }
- | FieldPattern ';' ListFieldPattern { (:) $1 $3 }
-
-
-PatternVariable :: { PatternVariable }
-PatternVariable : CIdent { PVVar $1 }
- | '_' { PVWild }
-
-
-Exp :: { Exp }
-Exp : 'let' '{' ListLetDef '}' 'in' Exp { ELet $3 $6 }
- | 'case' Exp 'of' '{' ListCase '}' { ECase $2 $5 }
- | Exp1 { $1 }
-
-
-LetDef :: { LetDef }
-LetDef : CIdent '=' Exp { LetDef $1 $3 }
-
-
-ListLetDef :: { [LetDef] }
-ListLetDef : {- empty -} { [] }
- | LetDef { (:[]) $1 }
- | LetDef ';' ListLetDef { (:) $1 $3 }
-
-
-Case :: { Case }
-Case : Pattern '|' Exp '->' Exp { Case $1 $3 $5 }
-
-
-ListCase :: { [Case] }
-ListCase : {- empty -} { [] }
- | Case { (:[]) $1 }
- | Case ';' ListCase { (:) $1 $3 }
-
-
-Exp1 :: { Exp }
-Exp1 : '\\' PatternVariable '->' Exp { EAbs $2 $4 }
- | '(' PatternVariable ':' Exp ')' '->' Exp { EPi $2 $4 $7 }
- | Exp2 { $1 }
-
-
-Exp3 :: { Exp }
-Exp3 : Exp3 Exp4 { EApp $1 $2 }
- | Exp4 { $1 }
-
-
-Exp4 :: { Exp }
-Exp4 : Exp4 '.' CIdent { EProj $1 $3 }
- | Exp5 { $1 }
-
-
-Exp5 :: { Exp }
-Exp5 : 'sig' '{' ListFieldType '}' { ERecType $3 }
- | 'rec' '{' ListFieldValue '}' { ERec $3 }
- | CIdent { EVar $1 }
- | 'Type' { EType }
- | String { EStr $1 }
- | Integer { EInteger $1 }
- | Double { EDouble $1 }
- | TMeta { EMeta $1 }
- | '(' Exp ')' { $2 }
-
-
-FieldType :: { FieldType }
-FieldType : CIdent ':' Exp { FieldType $1 $3 }
-
-
-ListFieldType :: { [FieldType] }
-ListFieldType : {- empty -} { [] }
- | FieldType { (:[]) $1 }
- | FieldType ';' ListFieldType { (:) $1 $3 }
-
-
-FieldValue :: { FieldValue }
-FieldValue : CIdent '=' Exp { FieldValue $1 $3 }
-
-
-ListFieldValue :: { [FieldValue] }
-ListFieldValue : {- empty -} { [] }
- | FieldValue { (:[]) $1 }
- | FieldValue ';' ListFieldValue { (:) $1 $3 }
-
-
-Exp2 :: { Exp }
-Exp2 : Exp3 { $1 }
-
-
-
-{
-
-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 ++ if null ts then [] else (" before " ++ unwords (map prToken (take 4 ts)))
-
-myLexer = tokens
-}
-