diff options
author | George Kiagiadakis <george.kiagiadakis@collabora.co.uk> | 2010-12-13 20:25:52 +0200 |
---|---|---|
committer | George Kiagiadakis <george.kiagiadakis@collabora.co.uk> | 2010-12-13 20:25:52 +0200 |
commit | cce3089b8d9eba9597d3237c28788f2b095a2492 (patch) | |
tree | 48712af77a3bc7817393a2b375bf048c67da90a9 /codegen | |
parent | 4f51c0c761caf5adebccf71cabbbd179ae17fe33 (diff) |
Catch C++ keywords only if they have space before.
This is to make value.h, which is using boost::is_enum<T>,
to work with codegen.
Diffstat (limited to 'codegen')
-rw-r--r-- | codegen/analyzer.l | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/codegen/analyzer.l b/codegen/analyzer.l index 89bfe4c..de4b869 100644 --- a/codegen/analyzer.l +++ b/codegen/analyzer.l @@ -51,7 +51,7 @@ QGLIB_REGISTER_TYPE\( { yy_push_state(REGISTER_TYPE); return REGISTER_TYPE_BE . { yyerror(codegen, "Syntax error in QGLIB_REGISTER_TYPE"); } } -enum { yy_push_state(ENUM); return ENUM_KEYWORD; } +[[:space:]]enum { yy_push_state(ENUM); return ENUM_KEYWORD; } <ENUM>{ \{ { return LEFT_BRACE; } \} { return RIGHT_BRACE; } @@ -91,14 +91,14 @@ enum { yy_push_state(ENUM); return ENUM_KEYWORD; } . } -namespace { yy_push_state(NAMESPACE); } +[[:space:]]namespace { yy_push_state(NAMESPACE); } <NAMESPACE>{ {id} { codegen->setCurrentNameSpace(yytext); yy_pop_state(); } [[:space:]]* . { yyerror(codegen, "Expected identifier after namespace keyword"); } } -class { yy_push_state(CLASS); } +[[:space:]]class { yy_push_state(CLASS); } <CLASS>{ {id} { codegen->setCurrentClass(yytext); yy_pop_state(); } [[:space:]]* |