projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
administrative: rm unused file
[m6w6/ext-psi]
/
src
/
parser.re
diff --git
a/src/parser.re
b/src/parser.re
index 2cdb1e84bf0dbcc59b5b0f7eabe86376dbca024b..d5d10787c1a1a42d8e71b66e65b0f14f531d019a 100644
(file)
--- a/
src/parser.re
+++ b/
src/parser.re
@@
-455,19
+455,40
@@
struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input
character: ;
/*!re2c
character: ;
/*!re2c
- "'" { if (escaped) goto character; cur -= 1; NEWTOKEN(PSI_T_QUOTED_CHAR); cur += 1; token->flags = char_width; goto start; }
EOL { NEWLINE(); goto character; }
"\\" { escaped = !escaped; }
EOL { NEWLINE(); goto character; }
"\\" { escaped = !escaped; }
- * { goto character; }
+ "'" {
+ if (escaped) {
+ escaped = false;
+ goto character;
+ }
+ cur -= 1;
+ NEWTOKEN(PSI_T_QUOTED_CHAR);
+ cur += 1;
+ token->flags = char_width;
+ goto start;
+ }
+ * { escaped = false; goto character; }
*/
*/
+
string: ;
/*!re2c
string: ;
/*!re2c
- "\"" { if (escaped) goto string; cur -= 1; NEWTOKEN(PSI_T_QUOTED_STRING); cur += 1; token->flags = char_width; goto start; }
EOL { NEWLINE(); goto string; }
"\\" { escaped = !escaped; goto string; }
EOL { NEWLINE(); goto string; }
"\\" { escaped = !escaped; goto string; }
- * { goto string; }
+ "\"" {
+ if (escaped) {
+ escaped = false;
+ goto string;
+ }
+ cur -= 1;
+ NEWTOKEN(PSI_T_QUOTED_STRING);
+ cur += 1;
+ token->flags = char_width;
+ goto start;
+ }
+ * { escaped = false; goto string; }
*/
*/