X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=lex.icl;h=6966cde7acf7095d0627c7e18108c5818f87fc02;hb=e82c306fc0f6401a09d3d180e20070664935a390;hp=0b6272ced499dfc247406c05823354a78feec4a5;hpb=e3f049be4fb2ed9b7f675f06a9a525c81af9946c;p=cc1516.git diff --git a/lex.icl b/lex.icl index 0b6272c..6966cde 100644 --- a/lex.icl +++ b/lex.icl @@ -8,8 +8,6 @@ import StdString import StdBool import StdList import StdChar -import StdFile -import System.CommandLine import qualified Text SingleCharTokens :: Map Char Token @@ -34,11 +32,9 @@ lexer x = case lex x of lex :: [Char] -> (Either String Token, [Char]) lex [] = (Right EndOfFileToken, []) -//Comments lex ['/':'/':x:rest] = if (x == '\n') (lex rest) (lex ['/':'/':rest]) lex ['/':'*':x1:x2:rest] = if (x1 == '*' && x2 == '/') (lex rest) (lex ['/':'*':rest]) -//Keyword tokens lex ['v':'a':'r':rest] = (Right VarToken, rest) lex ['V':'o':'i':'d':rest] = (Right VoidToken, rest) lex ['r':'e':'t':'u':'r':'n':rest] = (Right ReturnToken, rest) @@ -50,7 +46,6 @@ lex ['F':'a':'l':'s':'e':rest] = (Right FalseToken, rest) lex ['I':'n':'t':rest] = (Right IntTypeToken, rest) lex ['C':'h':'a':'r':rest] = (Right CharTypeToken, rest) lex ['B':'o':'o':'l':rest] = (Right BoolTypeToken, rest) -//Two character tokens lex [':':':':rest] = (Right DoubleColonToken, rest) lex ['!':'=':rest] = (Right NotEqualToken, rest) lex ['<':'=':rest] = (Right LesserEqToken, rest) @@ -59,8 +54,6 @@ lex ['=':'=':rest] = (Right EqualsToken, rest) lex ['&':'&':rest] = (Right AmpersandsToken, rest) lex ['|':'|':rest] = (Right PipesToken, rest) lex ['-':'>':rest] = (Right ArrowToken, rest) -//One character tokens -//Value tokens lex ['\'':x:'\'':rest] = (Right (CharToken x), rest) lex ['\'':'\\':x:'\'':rest] = case get x EscapeMap of Just t = (Right (CharToken t), rest)