".syntax version_directive;\n"
"version_directive\n"
"	version_directive_1 .and .loop version_directive_2;\n"
"version_directive_1\n"
"	prior_optional_spaces .and optional_version_directive .and .true .emit $;\n"
"version_directive_2\n"
"	prior_optional_spaces .and version_directive_body .and .true .emit $;\n"
"optional_version_directive\n"
"	version_directive_body .or .true .emit 10 .emit 1;\n"
"version_directive_body\n"
"	'#' .and optional_space .and \"version\" .and space .and version_number .and optional_space .and\n"
"	new_line;\n"
"version_number\n"
"	version_number_110;\n"
"version_number_110\n"
"	leading_zeroes .and \"110\" .emit 10 .emit 1;\n"
"leading_zeroes\n"
"	.loop zero;\n"
"zero\n"
"	'0';\n"
"space\n"
" single_space .and .loop single_space;\n"
"optional_space\n"
" .loop single_space;\n"
"single_space\n"
" ' ' .or '\\t';\n"
"prior_optional_spaces\n"
"	.loop prior_space;\n"
"prior_space\n"
"	c_style_comment_block .or cpp_style_comment_block .or space .or new_line;\n"
"c_style_comment_block\n"
" '/' .and '*' .and c_style_comment_rest;\n"
"c_style_comment_rest\n"
" .loop c_style_comment_char_no_star .and c_style_comment_rest_1;\n"
"c_style_comment_rest_1\n"
" c_style_comment_end .or c_style_comment_rest_2;\n"
"c_style_comment_rest_2\n"
" '*' .and c_style_comment_rest;\n"
"c_style_comment_char_no_star\n"
" '\\x2B'-'\\xFF' .or '\\x01'-'\\x29';\n"
"c_style_comment_end\n"
" '*' .and '/';\n"
"cpp_style_comment_block\n"
" '/' .and '/' .and cpp_style_comment_block_1;\n"
"cpp_style_comment_block_1\n"
" cpp_style_comment_block_2 .or cpp_style_comment_block_3;\n"
"cpp_style_comment_block_2\n"
" .loop cpp_style_comment_char .and new_line;\n"
"cpp_style_comment_block_3\n"
" .loop cpp_style_comment_char;\n"
"cpp_style_comment_char\n"
" '\\x0E'-'\\xFF' .or '\\x01'-'\\x09' .or '\\x0B'-'\\x0C';\n"
"new_line\n"
" cr_lf .or lf_cr .or '\\n' .or '\\r';\n"
"cr_lf\n"
" '\\r' .and '\\n';\n"
"lf_cr\n"
"	'\\n' .and '\\r';\n"
".string __string_filter;\n"
"__string_filter\n"
" .loop __identifier_char;\n"
"__identifier_char\n"
" 'a'-'z' .or 'A'-'Z' .or '_' .or '0'-'9';\n"
""