Changeset 3250
- Timestamp:
- 05/15/05 12:23:34 (4 years ago)
- svk:copy_cache_prev:
- 4802
- Files:
-
- 1 modified
-
src/Pugs/Parser.hs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Parser.hs
r3247 r3250 1056 1056 hasEqual <- option False $ do { char '='; whiteSpace; return True } 1057 1057 name <- do { str <- ruleSubName; return $ colon str } 1058 (invs,args) <- parens $ parseNoParenParamList False 1058 (invs,args) <- between (symbol "(") (char ')') $ do 1059 parseNoParenParamList False 1059 1060 -- XXX we just append the adverbial block onto the end of the arg list 1060 1061 -- it really goes into the *& slot if there is one. -lp … … 1065 1066 ruleArraySubscript :: RuleParser (Exp -> Exp) 1066 1067 ruleArraySubscript = tryVerbatimRule "array subscript" $ do 1067 symbol "[" 1068 p <- option id $ do exp <- ruleExpression; return $ \x -> Syn "[]" [x, exp] 1069 char ']' 1070 return p 1068 between (symbol "[") (char ']') $ option id $ do 1069 exp <- ruleExpression; return $ \x -> Syn "[]" [x, exp] 1071 1070 1072 1071 ruleHashSubscript :: RuleParser (Exp -> Exp) … … 1076 1075 ruleHashSubscriptBraces :: RuleParser (Exp -> Exp) 1077 1076 ruleHashSubscriptBraces = do 1078 symbol "{" 1079 p <- option id $ do exp <- ruleExpression; return $ \x -> Syn "{}" [x, exp] 1080 char '}' 1081 return p 1077 between (symbol "{") (char '}') $ option id $ do 1078 exp <- ruleExpression; return $ \x -> Syn "{}" [x, exp] 1082 1079 1083 1080 ruleHashSubscriptQW :: RuleParser (Exp -> Exp) … … 1087 1084 1088 1085 ruleCodeSubscript :: RuleParser (Exp -> Exp) 1089 ruleCodeSubscript = try Rule "code subscript" $ do1086 ruleCodeSubscript = tryVerbatimRule "code subscript" $ do 1090 1087 (invs,args) <- parens $ parseParamList 1091 1088 return $ \x -> App x invs args
