From e8d81f4c28db93f3517a1228803f155fb9498e39 Mon Sep 17 00:00:00 2001 From: zelaven Date: Sun, 2 Feb 2020 10:42:31 +0100 Subject: [PATCH] split export space is optional --- meta_src/scanner.l | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/meta_src/scanner.l b/meta_src/scanner.l index 72a66e2..4706891 100644 --- a/meta_src/scanner.l +++ b/meta_src/scanner.l @@ -20,14 +20,18 @@ FILE* interface_g = NULL; %x LEX_STATE_EXPORT_SPLIT %x LEX_STATE_EXPORT_SPLIT_FUNCTION %x LEX_STATE_EXPORT_SPLIT_FUNCTION_BODY +%x LEX_STATE_EXPORT_OPTION +%x LEX_STATE_EXPORT_OPTION_2 %% . p(code_common); \n p(code_common); -"$export_common " BEGIN(LEX_STATE_EXPORT_COMMON); -"$$export_split " BEGIN(LEX_STATE_EXPORT_SPLIT); +"$export_common " BEGIN(LEX_STATE_EXPORT_COMMON); +"$$export_split " BEGIN(LEX_STATE_EXPORT_SPLIT); +"$$export_split" BEGIN(LEX_STATE_EXPORT_SPLIT); +"$export_option " printf("Exporting an option.\n"); BEGIN(LEX_STATE_EXPORT_OPTION); . p(code_common); p(interface_common); \n p(code_common); p(interface_common); BEGIN(INITIAL); @@ -35,7 +39,7 @@ FILE* interface_g = NULL; "function" p(code_g); p(code_w); p(interface_g); p(interface_w); BEGIN(LEX_STATE_EXPORT_SPLIT_FUNCTION); "@" ps(code_g,"g"); ps(code_w,"w"); ps(interface_g,"g"); ps(interface_w,"w"); "$$" BEGIN(INITIAL); -. p(code_g); p(code_w); p(interface_g); p(interface_w); +(.|\n) p(code_g); p(code_w); p(interface_g); p(interface_w); "{" p(code_g); p(code_w); ps(interface_g, "{return 0;}"); ps(interface_w, "{return 0;}"); BEGIN(LEX_STATE_EXPORT_SPLIT_FUNCTION_BODY); "@" ps(code_g,"g"); ps(code_w,"w"); ps(interface_g,"g"); ps(interface_w,"w"); @@ -44,6 +48,11 @@ FILE* interface_g = NULL; "$$" BEGIN(INITIAL); (.|\n) p(code_g); p(code_w); +"$" BEGIN(LEX_STATE_EXPORT_OPTION_2); +(.|\n) p(code_g); p(interface_g); +"$" BEGIN(INITIAL); +(.|\n) p(code_w); p(interface_w); + %%