From 265c0ef4ffea4742f58a32ab55245e315be19ad6 Mon Sep 17 00:00:00 2001 From: helly Date: Wed, 21 Feb 2007 21:19:24 +0000 Subject: [PATCH] - Split labels from code --- re2c/code.cc | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/re2c/code.cc b/re2c/code.cc index eb424abc..8bb0402b 100644 --- a/re2c/code.cc +++ b/re2c/code.cc @@ -1697,13 +1697,18 @@ void Scanner::config(const Str& cfg, int num) } } -static std::set mapDefineKeys; static std::set mapCodeKeys; +static std::set mapDefineKeys; +static std::set mapLabelKeys; void Scanner::config(const Str& cfg, const Str& val) { if (mapDefineKeys.empty()) { + mapCodeKeys.insert("code:yyaccept"); + mapCodeKeys.insert("code:yybm"); + mapCodeKeys.insert("code:yych"); + mapCodeKeys.insert("code:yytarget"); mapDefineKeys.insert("define:YYCTXMARKER"); mapDefineKeys.insert("define:YYCTYPE"); mapDefineKeys.insert("define:YYCURSOR"); @@ -1713,12 +1718,8 @@ void Scanner::config(const Str& cfg, const Str& val) mapDefineKeys.insert("define:YYLIMIT"); mapDefineKeys.insert("define:YYMARKER"); mapDefineKeys.insert("define:YYSETSTATE"); - mapCodeKeys.insert("code:yyFillLabel"); - mapCodeKeys.insert("code:yyNext"); - mapCodeKeys.insert("code:yyaccept"); - mapCodeKeys.insert("code:yybm"); - mapCodeKeys.insert("code:yych"); - mapCodeKeys.insert("code:yytarget"); + mapLabelKeys.insert("label:yyFillLabel"); + mapLabelKeys.insert("label:yyNext"); } std::string strVal; @@ -1747,13 +1748,17 @@ void Scanner::config(const Str& cfg, const Str& val) { labelPrefix = strVal; } + else if (mapCodeKeys.find(cfg.to_string()) != mapCodeKeys.end()) + { + mapCodeName[cfg.to_string().c_str() + sizeof("code:") - 1] = strVal; + } else if (mapDefineKeys.find(cfg.to_string()) != mapDefineKeys.end()) { mapCodeName[cfg.to_string().c_str() + sizeof("define:") - 1] = strVal; } - else if (mapCodeKeys.find(cfg.to_string()) != mapCodeKeys.end()) + else if (mapLabelKeys.find(cfg.to_string()) != mapLabelKeys.end()) { - mapCodeName[cfg.to_string().c_str() + sizeof("code:") - 1] = strVal; + mapCodeName[cfg.to_string().c_str() + sizeof("label:") - 1] = strVal; } else { -- 2.50.1