Mjapp
This commit is contained in:
parent
50fae9f452
commit
b79b7e8bc7
1
.gitignore
vendored
1
.gitignore
vendored
@ -25,3 +25,4 @@ cabal.project.local~
|
|||||||
|
|
||||||
.direnv/
|
.direnv/
|
||||||
.envrc
|
.envrc
|
||||||
|
src/Serene/
|
||||||
|
42
src/Makefile
Normal file
42
src/Makefile
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
## File generated by the BNF Converter (bnfc 2.9.5).
|
||||||
|
|
||||||
|
# Makefile for building the parser and test program.
|
||||||
|
|
||||||
|
GHC = ghc
|
||||||
|
HAPPY = happy
|
||||||
|
HAPPY_OPTS = --array --info --ghc --coerce
|
||||||
|
ALEX = alex
|
||||||
|
ALEX_OPTS = --ghc
|
||||||
|
|
||||||
|
# List of goals not corresponding to file names.
|
||||||
|
|
||||||
|
.PHONY : all clean distclean
|
||||||
|
|
||||||
|
# Default goal.
|
||||||
|
|
||||||
|
all : Serene/Test
|
||||||
|
|
||||||
|
# Rules for building the parser.
|
||||||
|
|
||||||
|
Serene/Abs.hs Serene/Lex.x Serene/Par.y Serene/Print.hs Serene/Test.hs : Serene.cf
|
||||||
|
bnfc --haskell -d Serene.cf
|
||||||
|
|
||||||
|
%.hs : %.y
|
||||||
|
${HAPPY} ${HAPPY_OPTS} $<
|
||||||
|
|
||||||
|
%.hs : %.x
|
||||||
|
${ALEX} ${ALEX_OPTS} $<
|
||||||
|
|
||||||
|
Serene/Test : Serene/Abs.hs Serene/Lex.hs Serene/Par.hs Serene/Print.hs Serene/Test.hs
|
||||||
|
${GHC} ${GHC_OPTS} $@
|
||||||
|
|
||||||
|
# Rules for cleaning generated files.
|
||||||
|
|
||||||
|
clean :
|
||||||
|
-rm -f Serene/*.hi Serene/*.o Serene/*.log Serene/*.aux Serene/*.dvi
|
||||||
|
|
||||||
|
distclean : clean
|
||||||
|
-rm -f Serene/Abs.hs Serene/Abs.hs.bak Serene/ComposOp.hs Serene/ComposOp.hs.bak Serene/Doc.txt Serene/Doc.txt.bak Serene/ErrM.hs Serene/ErrM.hs.bak Serene/Layout.hs Serene/Layout.hs.bak Serene/Lex.x Serene/Lex.x.bak Serene/Par.y Serene/Par.y.bak Serene/Print.hs Serene/Print.hs.bak Serene/Skel.hs Serene/Skel.hs.bak Serene/Test.hs Serene/Test.hs.bak Serene/XML.hs Serene/XML.hs.bak Serene/AST.agda Serene/AST.agda.bak Serene/Parser.agda Serene/Parser.agda.bak Serene/IOLib.agda Serene/IOLib.agda.bak Serene/Main.agda Serene/Main.agda.bak Serene/Serene.dtd Serene/Serene.dtd.bak Serene/Test Serene/Lex.hs Serene/Par.hs Serene/Par.info Serene/ParData.hs Makefile
|
||||||
|
-rmdir -p Serene/
|
||||||
|
|
||||||
|
# EOF
|
@ -0,0 +1,25 @@
|
|||||||
|
Prog. Program ::= [Def];
|
||||||
|
|
||||||
|
DTyp. Def ::= Ident ":" [Type];
|
||||||
|
DDef. Def ::= Ident "=" Exp;
|
||||||
|
|
||||||
|
terminator Def "";
|
||||||
|
separator Type "->";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EVar. Exp4 ::= Ident;
|
||||||
|
EInt. Exp4 ::= Integer;
|
||||||
|
EDouble. Exp4 ::= Double;
|
||||||
|
EApp. Exp3 ::= Exp3 Exp4;
|
||||||
|
EAdd. Exp2 ::= Exp1 "+" Exp2;
|
||||||
|
ESub. Exp2 ::= Exp1 "-" Exp2;
|
||||||
|
EIf. Exp ::= Exp "?" Exp ":" Exp;
|
||||||
|
EAbs. Exp ::= "\\" Ident "->" Exp;
|
||||||
|
|
||||||
|
coercions Exp 4;
|
||||||
|
|
||||||
|
comment "#";
|
||||||
|
|
||||||
|
TInt. Type ::= "Integer";
|
||||||
|
TDouble. Type ::= "Double";
|
Loading…
Reference in New Issue
Block a user