summaryrefslogtreecommitdiff
path: root/src-3.0/GF/JavaScript/ParJS.y
diff options
context:
space:
mode:
Diffstat (limited to 'src-3.0/GF/JavaScript/ParJS.y')
-rw-r--r--src-3.0/GF/JavaScript/ParJS.y225
1 files changed, 0 insertions, 225 deletions
diff --git a/src-3.0/GF/JavaScript/ParJS.y b/src-3.0/GF/JavaScript/ParJS.y
deleted file mode 100644
index bf0614757..000000000
--- a/src-3.0/GF/JavaScript/ParJS.y
+++ /dev/null
@@ -1,225 +0,0 @@
--- This Happy file was machine-generated by the BNF converter
-{
-{-# OPTIONS -fno-warn-incomplete-patterns -fno-warn-overlapping-patterns #-}
-module GF.JavaScript.ParJS where
-import GF.JavaScript.AbsJS
-import GF.JavaScript.LexJS
-import GF.Data.ErrM
-}
-
-%name pProgram Program
-
--- 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 ":") }
- 'false' { PT _ (TS "false") }
- 'function' { PT _ (TS "function") }
- 'new' { PT _ (TS "new") }
- 'null' { PT _ (TS "null") }
- 'return' { PT _ (TS "return") }
- 'this' { PT _ (TS "this") }
- 'true' { PT _ (TS "true") }
- 'var' { PT _ (TS "var") }
-
-L_ident { PT _ (TV $$) }
-L_integ { PT _ (TI $$) }
-L_doubl { PT _ (TD $$) }
-L_quoted { PT _ (TL $$) }
-L_err { _ }
-
-
-%%
-
-Ident :: { Ident } : L_ident { Ident $1 }
-Integer :: { Integer } : L_integ { (read $1) :: Integer }
-Double :: { Double } : L_doubl { (read $1) :: Double }
-String :: { String } : L_quoted { $1 }
-
-Program :: { Program }
-Program : ListElement { Program (reverse $1) }
-
-
-Element :: { Element }
-Element : 'function' Ident '(' ListIdent ')' '{' ListStmt '}' { FunDef $2 $4 (reverse $7) }
- | Stmt { ElStmt $1 }
-
-
-ListElement :: { [Element] }
-ListElement : {- empty -} { [] }
- | ListElement Element { flip (:) $1 $2 }
-
-
-ListIdent :: { [Ident] }
-ListIdent : {- empty -} { [] }
- | Ident { (:[]) $1 }
- | Ident ',' ListIdent { (:) $1 $3 }
-
-
-Stmt :: { Stmt }
-Stmt : '{' ListStmt '}' { SCompound (reverse $2) }
- | 'return' ';' { SReturnVoid }
- | 'return' Expr ';' { SReturn $2 }
- | DeclOrExpr ';' { SDeclOrExpr $1 }
-
-
-ListStmt :: { [Stmt] }
-ListStmt : {- empty -} { [] }
- | ListStmt Stmt { flip (:) $1 $2 }
-
-
-DeclOrExpr :: { DeclOrExpr }
-DeclOrExpr : 'var' ListDeclVar { Decl $2 }
- | Expr1 { DExpr $1 }
-
-
-DeclVar :: { DeclVar }
-DeclVar : Ident { DVar $1 }
- | Ident '=' Expr { DInit $1 $3 }
-
-
-ListDeclVar :: { [DeclVar] }
-ListDeclVar : {- empty -} { [] }
- | DeclVar { (:[]) $1 }
- | DeclVar ',' ListDeclVar { (:) $1 $3 }
-
-
-Expr13 :: { Expr }
-Expr13 : Expr14 '=' Expr13 { EAssign $1 $3 }
- | Expr14 { $1 }
-
-
-Expr14 :: { Expr }
-Expr14 : 'new' Ident '(' ListExpr ')' { ENew $2 $4 }
- | Expr15 { $1 }
-
-
-Expr15 :: { Expr }
-Expr15 : Expr15 '.' Ident { EMember $1 $3 }
- | Expr15 '[' Expr ']' { EIndex $1 $3 }
- | Expr15 '(' ListExpr ')' { ECall $1 $3 }
- | Expr16 { $1 }
-
-
-Expr16 :: { Expr }
-Expr16 : Ident { EVar $1 }
- | Integer { EInt $1 }
- | Double { EDbl $1 }
- | String { EStr $1 }
- | 'true' { ETrue }
- | 'false' { EFalse }
- | 'null' { ENull }
- | 'this' { EThis }
- | 'function' '(' ListIdent ')' '{' ListStmt '}' { EFun $3 (reverse $6) }
- | '[' ListExpr ']' { EArray $2 }
- | '{' ListProperty '}' { EObj $2 }
- | '(' Expr ',' ListExpr ')' { eseq1_ $2 $4 }
- | '(' Expr ')' { $2 }
-
-
-ListExpr :: { [Expr] }
-ListExpr : {- empty -} { [] }
- | Expr { (:[]) $1 }
- | Expr ',' ListExpr { (:) $1 $3 }
-
-
-Expr :: { Expr }
-Expr : Expr1 { $1 }
-
-
-Expr1 :: { Expr }
-Expr1 : Expr2 { $1 }
-
-
-Expr2 :: { Expr }
-Expr2 : Expr3 { $1 }
-
-
-Expr3 :: { Expr }
-Expr3 : Expr4 { $1 }
-
-
-Expr4 :: { Expr }
-Expr4 : Expr5 { $1 }
-
-
-Expr5 :: { Expr }
-Expr5 : Expr6 { $1 }
-
-
-Expr6 :: { Expr }
-Expr6 : Expr7 { $1 }
-
-
-Expr7 :: { Expr }
-Expr7 : Expr8 { $1 }
-
-
-Expr8 :: { Expr }
-Expr8 : Expr9 { $1 }
-
-
-Expr9 :: { Expr }
-Expr9 : Expr10 { $1 }
-
-
-Expr10 :: { Expr }
-Expr10 : Expr11 { $1 }
-
-
-Expr11 :: { Expr }
-Expr11 : Expr12 { $1 }
-
-
-Expr12 :: { Expr }
-Expr12 : Expr13 { $1 }
-
-
-Property :: { Property }
-Property : PropertyName ':' Expr { Prop $1 $3 }
-
-
-ListProperty :: { [Property] }
-ListProperty : {- empty -} { [] }
- | Property { (:[]) $1 }
- | Property ',' ListProperty { (:) $1 $3 }
-
-
-PropertyName :: { PropertyName }
-PropertyName : Ident { IdentPropName $1 }
- | String { StringPropName $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 ++
- case ts of
- [] -> []
- [Err _] -> " due to lexer error"
- _ -> " before " ++ unwords (map prToken (take 4 ts))
-
-myLexer = tokens
-eseq1_ x_ xs_ = ESeq (x_ : xs_)
-}
-