Module: vkd3d Branch: master Commit: 741c33265895e03457b8b9f651f3c6592a1104cd URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=741c33265895e03457b8b9f6...
Author: Zebediah Figura zfigura@codeweavers.com Date: Mon Dec 7 12:56:31 2020 -0600
vkd3d-shader: Parse comments in the preprocessor.
Signed-off-by: Zebediah Figura zfigura@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
libs/vkd3d-shader/preproc.l | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/libs/vkd3d-shader/preproc.l b/libs/vkd3d-shader/preproc.l index 656ad67..89a4f60 100644 --- a/libs/vkd3d-shader/preproc.l +++ b/libs/vkd3d-shader/preproc.l @@ -36,16 +36,33 @@ %option never-interactive %option noinput %option nounput +%option noyy_top_state %option noyywrap %option prefix="preproc_yy" %option reentrant +%option stack + + /* Because these can both be terminated by EOF, we need states for them. */ +%s C_COMMENT +%s CXX_COMMENT
WS [ \t]
%%
-{WS}+ {} -. {return T_TEXT;} +<INITIAL>"//" {yy_push_state(CXX_COMMENT, yyscanner);} +<INITIAL>"/*" {yy_push_state(C_COMMENT, yyscanner);} +<CXX_COMMENT>\\r?\n {} +<CXX_COMMENT>\n { + yy_pop_state(yyscanner); + return T_TEXT; + } +<C_COMMENT>"*/" {yy_pop_state(yyscanner);} +<C_COMMENT,CXX_COMMENT><<EOF>> {yy_pop_state(yyscanner);} +<C_COMMENT,CXX_COMMENT>. {} + +<INITIAL>{WS}+ {} +<INITIAL>. {return T_TEXT;}
%%