Browse Source

split export space is optional

master
zelaven 4 years ago
parent
commit
e8d81f4c28
1 changed files with 12 additions and 3 deletions
  1. +12
    -3
      meta_src/scanner.l

+ 12
- 3
meta_src/scanner.l View File

@ -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
%%
<INITIAL>. p(code_common);
<INITIAL>\n p(code_common);
<INITIAL>"$export_common " BEGIN(LEX_STATE_EXPORT_COMMON);
<INITIAL>"$$export_split " BEGIN(LEX_STATE_EXPORT_SPLIT);
<INITIAL>"$export_common " BEGIN(LEX_STATE_EXPORT_COMMON);
<INITIAL>"$$export_split " BEGIN(LEX_STATE_EXPORT_SPLIT);
<INITIAL>"$$export_split" BEGIN(LEX_STATE_EXPORT_SPLIT);
<INITIAL>"$export_option " printf("Exporting an option.\n"); BEGIN(LEX_STATE_EXPORT_OPTION);
<LEX_STATE_EXPORT_COMMON>. p(code_common); p(interface_common);
<LEX_STATE_EXPORT_COMMON>\n p(code_common); p(interface_common); BEGIN(INITIAL);
@ -35,7 +39,7 @@ FILE* interface_g = NULL;
<LEX_STATE_EXPORT_SPLIT>"function" p(code_g); p(code_w); p(interface_g); p(interface_w); BEGIN(LEX_STATE_EXPORT_SPLIT_FUNCTION);
<LEX_STATE_EXPORT_SPLIT>"@" ps(code_g,"g"); ps(code_w,"w"); ps(interface_g,"g"); ps(interface_w,"w");
<LEX_STATE_EXPORT_SPLIT>"$$" BEGIN(INITIAL);
<LEX_STATE_EXPORT_SPLIT>. p(code_g); p(code_w); p(interface_g); p(interface_w);
<LEX_STATE_EXPORT_SPLIT>(.|\n) p(code_g); p(code_w); p(interface_g); p(interface_w);
<LEX_STATE_EXPORT_SPLIT_FUNCTION>"{" p(code_g); p(code_w); ps(interface_g, "{return 0;}"); ps(interface_w, "{return 0;}"); BEGIN(LEX_STATE_EXPORT_SPLIT_FUNCTION_BODY);
<LEX_STATE_EXPORT_SPLIT_FUNCTION>"@" ps(code_g,"g"); ps(code_w,"w"); ps(interface_g,"g"); ps(interface_w,"w");
@ -44,6 +48,11 @@ FILE* interface_g = NULL;
<LEX_STATE_EXPORT_SPLIT_FUNCTION_BODY>"$$" BEGIN(INITIAL);
<LEX_STATE_EXPORT_SPLIT_FUNCTION_BODY>(.|\n) p(code_g); p(code_w);
<LEX_STATE_EXPORT_OPTION>"$" BEGIN(LEX_STATE_EXPORT_OPTION_2);
<LEX_STATE_EXPORT_OPTION>(.|\n) p(code_g); p(interface_g);
<LEX_STATE_EXPORT_OPTION_2>"$" BEGIN(INITIAL);
<LEX_STATE_EXPORT_OPTION_2>(.|\n) p(code_w); p(interface_w);
%%

Loading…
Cancel
Save