Changeset 6392 for src/Pugs/Lexer.hs
- Timestamp:
- 08/21/05 12:05:16 (3 years ago)
- svk:copy_cache_prev:
- 8581
- Files:
-
- 1 modified
-
src/Pugs/Lexer.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Lexer.hs
r6359 r6392 16 16 braces, brackets, angles, balanced, balancedDelim, decimal, 17 17 18 rule QualifiedIdentifier, ruleWhiteSpaceLine,18 ruleDelimitedIdentifier, ruleQualifiedIdentifier, ruleWhiteSpaceLine, 19 19 20 20 symbol, interpolatingStringLiteral, escapeCode, … … 83 83 decimal = P.decimal perl6Lexer 84 84 85 {-| 86 Match one or more identifiers, separated internally by the given delimiter 87 (with an optional leading delimiter). 88 89 Returns a list of the identifiers matched, discarding the delimiters. You 90 can always recreate them using \"@concat $ intersperse delim@\" if you want, 91 or else use 'ruleQualifiedIdentifier'. 92 -} 93 ruleDelimitedIdentifier :: String -- ^ Delimiter (e.g. \'@::@\') 94 -> GenParser Char st [String] 95 ruleDelimitedIdentifier delim = verbatimRule "delimited identifier" $ do 96 option "" (try $ string delim) -- leading delimiter 97 ruleVerbatimIdentifier `sepBy1` (try $ string delim) 98 85 99 ruleQualifiedIdentifier :: GenParser Char st String 86 100 ruleQualifiedIdentifier = verbatimRule "qualified identifier" $ do 87 chunks <- ruleVerbatimIdentifier `sepBy1` (try $ string "::")101 chunks <- ruleDelimitedIdentifier "::" 88 102 return $ concat (intersperse "::" chunks) 89 103
