Changeset 15218 for src/Pugs/Parser

Show
Ignore:
Timestamp:
02/09/07 00:16:22 (22 months ago)
Author:
audreyt
Message:

Pugs.Parser.Literal - Factor out regularAdverbPair for
generalized "is" parsing.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Parser/Literal.hs

    r15092 r15218  
    8383pairAdverb = try $ do 
    8484    char ':' 
    85     negatedPair <|> shortcutPair <|> regularPair 
     85    negatedPair <|> shortcutPair <|> regularAdverbPair 
    8686    where 
    8787    negatedPair = do 
     
    9898            , foldr appCast varExp ss 
    9999            ] 
    100     regularPair = do 
    101         key <- many1 wordAny 
    102         lvl <- gets s_bracketLevel 
    103         val <- lexeme ((optional ruleDot >> valueExp lvl) <|> return (Val $ VBool True)) 
    104         return $ if (all isDigit key) 
    105             then App (_Var "&Pugs::Internals::base") Nothing [Val (VStr key), val] 
    106             else App (_Var "&infix:=>") Nothing [Val (VStr key), val] 
     100 
     101regularAdverbPair :: RuleParser Exp 
     102regularAdverbPair = do 
     103    key <- many1 wordAny 
     104    lvl <- gets s_bracketLevel 
     105    val <- lexeme ((optional ruleDot >> valueExp lvl) <|> return (Val $ VBool True)) 
     106    return $ if (all isDigit key) 
     107        then App (_Var "&Pugs::Internals::base") Nothing [Val (VStr key), val] 
     108        else App (_Var "&infix:=>") Nothing [Val (VStr key), val] 
     109    where 
    107110    valueExp lvl = do 
    108111        let blk | ConditionalBracket <- lvl = id