s->m_token = SL_PP_IDENTIFIER;
} else if (!strcmp(s->m_string, "@NUM")) {
s->m_token = SL_PP_NUMBER;
+ } else if (!strcmp(s->m_string, "@EOF")) {
+ s->m_token = SL_PP_EOF;
} else {
spec_destroy(&s);
return 1;
*/
translation_unit
.true .emit REVISION .and external_declaration .error INVALID_EXTERNAL_DECLARATION .and
- .loop external_declaration .and '\0' .error INVALID_EXTERNAL_DECLARATION .emit EXTERNAL_NULL;
+ .loop external_declaration .and "@EOF" .error INVALID_EXTERNAL_DECLARATION .emit EXTERNAL_NULL;
/*
" variable_identifier .and dot .and field_selection .emit OP_FIELD;\n"
"translation_unit\n"
" .true .emit REVISION .and external_declaration .error INVALID_EXTERNAL_DECLARATION .and\n"
-" .loop external_declaration .and '\\0' .error INVALID_EXTERNAL_DECLARATION .emit EXTERNAL_NULL;\n"
+" .loop external_declaration .and \"@EOF\" .error INVALID_EXTERNAL_DECLARATION .emit EXTERNAL_NULL;\n"
"external_declaration\n"
" precision_stmt .emit DEFAULT_PRECISION .or\n"
" function_definition .emit EXTERNAL_FUNCTION_DEFINITION .or\n"