projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
flush
[m6w6/ext-psi]
/
src
/
parser.re
diff --git
a/src/parser.re
b/src/parser.re
index 50d15aadd86d0b9ae7dfb35a1b445277afdbf554..5b7e80e83c24d81a36892167a51bbd6094704351 100644
(file)
--- a/
src/parser.re
+++ b/
src/parser.re
@@
-209,10
+209,10
@@
void PSI_ParserFree(PSI_Parser **P)
#define ADDCOLS \
P->col += P->cur - P->tok
#define ADDCOLS \
P->col += P->cur - P->tok
-#define NEWLINE \
+#define NEWLINE
(label)
\
P->col = 1; \
++P->line; \
P->col = 1; \
++P->line; \
- goto
nextline
+ goto
label
token_t PSI_ParserScan(PSI_Parser *P)
{
token_t PSI_ParserScan(PSI_Parser *P)
{
@@
-236,7
+236,8
@@
token_t PSI_ParserScan(PSI_Parser *P)
QUOTED_STRING = "\"" ([^\"])+ "\"";
NUMBER = [+-]? [0-9]* "."? [0-9]+ ([eE] [+-]? [0-9]+)?;
QUOTED_STRING = "\"" ([^\"])+ "\"";
NUMBER = [+-]? [0-9]* "."? [0-9]+ ([eE] [+-]? [0-9]+)?;
- ("#"|"//") .* "\n" { NEWLINE; }
+ "/*" { goto comment; }
+ ("#"|"//") .* "\n" { NEWLINE(nextline); }
"(" {RETURN(PSI_T_LPAREN);}
")" {RETURN(PSI_T_RPAREN);}
";" {RETURN(PSI_T_EOS);}
"(" {RETURN(PSI_T_LPAREN);}
")" {RETURN(PSI_T_RPAREN);}
";" {RETURN(PSI_T_EOS);}
@@
-254,7
+255,7
@@
token_t PSI_ParserScan(PSI_Parser *P)
"-" {RETURN(PSI_T_MINUS);}
"/" {RETURN(PSI_T_SLASH);}
"..." {RETURN(PSI_T_ELLIPSIS);}
"-" {RETURN(PSI_T_MINUS);}
"/" {RETURN(PSI_T_SLASH);}
"..." {RETURN(PSI_T_ELLIPSIS);}
- [\r\n] { NEWLINE; }
+ [\r\n] { NEWLINE
(nextline)
; }
[\t ]+ { continue; }
'TRUE' {RETURN(PSI_T_TRUE);}
'FALSE' {RETURN(PSI_T_FALSE);}
[\t ]+ { continue; }
'TRUE' {RETURN(PSI_T_TRUE);}
'FALSE' {RETURN(PSI_T_FALSE);}
@@
-284,6
+285,7
@@
token_t PSI_ParserScan(PSI_Parser *P)
'FUNCTION' {RETURN(PSI_T_FUNCTION);}
'TYPEDEF' {RETURN(PSI_T_TYPEDEF);}
'STRUCT' {RETURN(PSI_T_STRUCT);}
'FUNCTION' {RETURN(PSI_T_FUNCTION);}
'TYPEDEF' {RETURN(PSI_T_TYPEDEF);}
'STRUCT' {RETURN(PSI_T_STRUCT);}
+ 'UNION' {RETURN(PSI_T_UNION);}
'ENUM' {RETURN(PSI_T_ENUM);}
'CONST' {RETURN(PSI_T_CONST);}
'LIB' {RETURN(PSI_T_LIB);}
'ENUM' {RETURN(PSI_T_ENUM);}
'CONST' {RETURN(PSI_T_CONST);}
'LIB' {RETURN(PSI_T_LIB);}
@@
-313,6
+315,14
@@
token_t PSI_ParserScan(PSI_Parser *P)
QUOTED_STRING {RETURN(PSI_T_QUOTED_STRING);}
[^] {break;}
*/
QUOTED_STRING {RETURN(PSI_T_QUOTED_STRING);}
[^] {break;}
*/
+
+ comment:
+ P->tok = P->cur;
+ /*!re2c
+ "\n" { NEWLINE(comment); }
+ "*" "/" { continue; }
+ [^] { goto comment; }
+ */
}
return -1;
}
}
return -1;
}