fixed mac envs
[cc1516.git] / lex.dcl
diff --git a/lex.dcl b/lex.dcl
index d1daf7c..e78d495 100644 (file)
--- a/lex.dcl
+++ b/lex.dcl
@@ -1,11 +1,16 @@
 definition module lex
 
-import Data.Either
+from Data.Either import :: Either
+from yard import :: Error
 
-:: Token
+:: Token = {
+       line :: Int,
+       column :: Int,
+       token :: TokenValue}
+:: TokenValue
        //Value tokens
-       = IdentToken [Char] // Identifier
-       | NumberToken [Char]// Integer
+       = IdentToken String // Identifier
+       | NumberToken Int   // Integer
        | CharToken Char    // Character literal
        //Keyword tokens
        | VarToken          // var keyword
@@ -28,6 +33,7 @@ import Data.Either
        | AmpersandsToken   // &&
        | PipesToken        // ||
     | ArrowToken        // ->
+       | EmptyListToken        // []
        //One character tokens
        | BraceOpenToken    // (
        | BraceCloseToken   // )
@@ -51,8 +57,6 @@ import Data.Either
        //Special tokens
        | EndOfFileToken    // EOF
 
-:: LexerOutput :== Either String [Token]
-
-instance toString LexerOutput
+:: LexerOutput :== Either Error [Token]
 
 lexer :: [Char] -> LexerOutput