diff options
| author | mitchell <unknown> | 2020-04-25 16:26:31 -0400 |
|---|---|---|
| committer | mitchell <unknown> | 2020-04-25 16:26:31 -0400 |
| commit | fad15f79b1230b3076be515d6894c8919562809b (patch) | |
| tree | 72c848ef02c3331de5ca54eff7adaea3a9a6fb88 /lexlua/vcard.lua | |
| parent | 1fd02a367dec125c0b49dd9246a0928433866b96 (diff) | |
| download | scintilla-mirror-fad15f79b1230b3076be515d6894c8919562809b.tar.gz | |
Reformatted Lua LPeg lexers and added new convenience functions and pattern.
`lexer.range()` replaces `lexer.delimited_range()` and `lexer.nested_pair()`.
`lexer.to_eol()` replaces `patt * lexer.nonnewline^0` constructs.
`lexer.number` replaces `lexer.float + lexer.integer`.
Also added unit tests for lexer functions.
Diffstat (limited to 'lexlua/vcard.lua')
| -rw-r--r-- | lexlua/vcard.lua | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/lexlua/vcard.lua b/lexlua/vcard.lua index 52ca4035a..0ea39b284 100644 --- a/lexlua/vcard.lua +++ b/lexlua/vcard.lua @@ -44,35 +44,30 @@ local identifier = lexer.alpha^1 * lexer.digit^0 * (P('-') * lexer.alnum^1)^0 -- Extension. local extension = token(lexer.TYPE, lexer.starts_line(S('xX') * P('-') * - identifier * #S(':;'))) + identifier * #S(':;'))) -- Parameter. local parameter = token(lexer.IDENTIFIER, - lexer.starts_line(identifier * #S(':='))) + - token(lexer.STRING, identifier) * #S(':=') + lexer.starts_line(identifier * #S(':='))) + token(lexer.STRING, identifier) * + #S(':=') -- Operators. local operator = token(lexer.OPERATOR, S('.:;=')) -- Group and property. local group_sequence = token(lexer.CONSTANT, lexer.starts_line(identifier)) * - token(lexer.OPERATOR, P('.')) * - (required_property + supported_property + - lexer.token(lexer.TYPE, S('xX') * P('-') * identifier) * - #S(':;')) + token(lexer.OPERATOR, P('.')) * (required_property + supported_property + + lexer.token(lexer.TYPE, S('xX') * P('-') * identifier) * #S(':;')) -- Begin vCard, end vCard. local begin_sequence = token(lexer.KEYWORD, P('BEGIN')) * - token(lexer.OPERATOR, P(':')) * - token(lexer.COMMENT, P('VCARD')) + token(lexer.OPERATOR, P(':')) * token(lexer.COMMENT, P('VCARD')) local end_sequence = token(lexer.KEYWORD, P('END')) * - token(lexer.OPERATOR, P(':')) * - token(lexer.COMMENT, P('VCARD')) + token(lexer.OPERATOR, P(':')) * token(lexer.COMMENT, P('VCARD')) -- vCard version (in v3.0 and v4.0 must appear immediately after BEGIN:VCARD). local version_sequence = token(lexer.KEYWORD, P('VERSION')) * - token(lexer.OPERATOR, P(':')) * - token(lexer.CONSTANT, lexer.digit^1 * - (P('.') * lexer.digit^1)^-1) + token(lexer.OPERATOR, P(':')) * + token(lexer.CONSTANT, lexer.digit^1 * (P('.') * lexer.digit^1)^-1) -- Data. local data = token(lexer.IDENTIFIER, lexer.any) |
