tools/PascalPreprocessor.hs
changeset 6453 11c578d30bd3
parent 6425 1ef4192aa80d
child 6891 ab9843957664
equal deleted inserted replaced
6452:7c6f9b6672dc 6453:11c578d30bd3
    56     switch = do
    56     switch = do
    57         try $ string "{$"
    57         try $ string "{$"
    58         s <- choice [
    58         s <- choice [
    59             include
    59             include
    60             , ifdef
    60             , ifdef
       
    61             , if'
    61             , elseSwitch
    62             , elseSwitch
    62             , endIf
    63             , endIf
    63             , define
    64             , define
    64             , unknown
    65             , unknown
    65             ]
    66             ]
    87         spaces
    88         spaces
    88         char '}'
    89         char '}'
    89         
    90         
    90         updateState $ \(m, b) ->
    91         updateState $ \(m, b) ->
    91             (m, (f $ d `Map.member` m) : b)
    92             (m, (f $ d `Map.member` m) : b)
    92         
       
    93       
    93       
    94         return ""
    94         return ""
       
    95 
       
    96     if' = do
       
    97         s <- try (string "IF" >> notFollowedBy alphaNum)
    95         
    98         
       
    99         manyTill anyChar (char '}')
       
   100         --char '}'
       
   101         
       
   102         updateState $ \(m, b) ->
       
   103             (m, False : b)
       
   104       
       
   105         return ""
       
   106 
    96     elseSwitch = do
   107     elseSwitch = do
    97         try $ string "ELSE}"
   108         try $ string "ELSE}"
    98         updateState $ \(m, b:bs) -> (m, (not b):bs)
   109         updateState $ \(m, b:bs) -> (m, (not b):bs)
    99         return ""
   110         return ""
   100     endIf = do
   111     endIf = do