]> granicus.if.org Git - re2c/commitdiff
- Try to clearify code
authorhelly <helly@642ea486-5414-0410-9d7f-a0204ed87703>
Thu, 22 Feb 2007 01:19:58 +0000 (01:19 +0000)
committerhelly <helly@642ea486-5414-0410-9d7f-a0204ed87703>
Thu, 22 Feb 2007 01:19:58 +0000 (01:19 +0000)
re2c/code.cc
re2c/globals.h
re2c/main.cc

index 9af34cdb1d556d3fed54cbdf8ed29cefe2fdff6c..9381e66eb4cdfc9e4e779a978798273386690431 100644 (file)
@@ -1750,24 +1750,27 @@ void Scanner::config(const Str& cfg, const Str& val)
        }
        else if (mapCodeKeys.find(cfg.to_string()) != mapCodeKeys.end())
     {
-       if ((bSinglePass || !bLastPass) 
-       && !mapCodeName.insert(std::make_pair(cfg.to_string().substr(sizeof("code:") - 1), strVal)).second)
+       if (bFirstPass && !mapCodeName.insert(
+                       std::make_pair(cfg.to_string().substr(sizeof("code:") - 1), strVal)
+                       ).second)
        {
                        fatal("variable already being used and cannot be changed");
        }
     }
        else if (mapDefineKeys.find(cfg.to_string()) != mapDefineKeys.end())
     {
-       if ((bSinglePass || !bLastPass) 
-       && !mapCodeName.insert(std::make_pair(cfg.to_string().substr(sizeof("define:") - 1), strVal)).second)
+       if (bFirstPass && !mapCodeName.insert(
+                       std::make_pair(cfg.to_string().substr(sizeof("define:") - 1), strVal)
+                       ).second)
        {
                        fatal("define already being used and cannot be changed");
                }
     }
        else if (mapLabelKeys.find(cfg.to_string()) != mapLabelKeys.end())
     {
-       if ((bSinglePass || !bLastPass) 
-       && !mapCodeName.insert(std::make_pair(cfg.to_string().substr(sizeof("label:") - 1), strVal)).second)
+       if (bFirstPass && !mapCodeName.insert(
+                       std::make_pair(cfg.to_string().substr(sizeof("label:") - 1), strVal)
+                       ).second)
        {
                        fatal("label already being used and cannot be changed");
        }
index adcdd4a2db4cf87fadcaab2b589be17d9169832b..e4f527c6b7c5205cfb118616baec61d981d61699 100644 (file)
@@ -26,6 +26,7 @@ extern bool uFlag;
 extern bool wFlag;
 
 extern bool bSinglePass;
+extern bool bFirstPass;
 extern bool bLastPass;
 
 extern bool bUsedYYAccept;
index 7f3f6dd69180adc0e7335ebe06740e0b39330382..29548ea35332e8461715d0fa0eaff4578b7e5deb 100644 (file)
@@ -32,6 +32,7 @@ bool uFlag = false;
 bool wFlag = false;
 
 bool bSinglePass = false;
+bool bFirstPass  = true;
 bool bLastPass   = false;
 
 bool bUsedYYAccept  = false;
@@ -327,6 +328,7 @@ int main(int argc, char *argv[])
                next_fill_index = 0;
                bWroteGetState = false;
                bUsedYYMaxFill = false;
+               bFirstPass = false;
        }
 
        bLastPass = true;