stub voor parsen gemaakt
authorMart Lubbers <mart@martlubbers.net>
Fri, 19 Feb 2016 19:51:56 +0000 (20:51 +0100)
committerMart Lubbers <mart@martlubbers.net>
Fri, 19 Feb 2016 19:51:56 +0000 (20:51 +0100)
main.icl
main.prj
parse.dcl [new file with mode: 0644]
parse.icl [new file with mode: 0644]

index 90624e8..ced5b0a 100644 (file)
--- a/main.icl
+++ b/main.icl
@@ -4,13 +4,14 @@ import StdFile
 import StdBool
 
 import lex
+import parse
 
-Start :: *World -> (LexerOutput, *World)
+Start :: *World -> (ParserOutput, *World)
 Start w
 # (out, w) = stdio w
 # (toparse, out) = readEntireFile out
 # (_, w) = fclose out w
-= (lexer toparse, w)
+= (parse (lexer toparse), w)
 
 readEntireFile :: *File -> *([Char], *File)
 readEntireFile f
index c86f61c..5f00e02 100644 (file)
--- a/main.prj
+++ b/main.prj
@@ -69,6 +69,20 @@ OtherModules
                        ReadableABC:    False
                        ReuseUniqueNodes:       True
                        Fusion: False
+       Module
+               Name:   parse
+               Dir:    {Project}
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
        Module
                Name:   StdArray
                Dir:    {Application}/lib/StdEnv
diff --git a/parse.dcl b/parse.dcl
new file mode 100644 (file)
index 0000000..c7d177c
--- /dev/null
+++ b/parse.dcl
@@ -0,0 +1,8 @@
+definition module parse
+
+import lex
+
+:: ParserOutput :== Either String AST
+:: AST = If | While //stub
+
+parse :: LexerOutput -> ParserOutput
diff --git a/parse.icl b/parse.icl
new file mode 100644 (file)
index 0000000..3344e27
--- /dev/null
+++ b/parse.icl
@@ -0,0 +1,9 @@
+implementation module parse
+
+import StdString
+
+import lex
+
+parse :: LexerOutput -> ParserOutput
+parse (Left e) = Left ("Lexer error: " +++ e)
+parse (Right r) = Left "Parser not yet implemented"