Show
Ignore:
Timestamp:
04/15/07 19:13:59 (2 years ago)
Author:
pragma
Message:

OLD code commit in preparation for the next phase...

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/enki/EnkiParser.d

    r276 r277  
    19301930String 
    19311931    = String text 
    1932     ::= "\"" {  AnyChar}:text "\""
     1932    ::= (  "\"" |  "\'"):~delim  {  AnyChar}:text.delim
    19331933 
    19341934    */ 
     
    19381938        String bind_text; 
    19391939         
     1940        String bind_delim; 
    19401941         
    19411942        {//Expression 
    19421943            uint start148 = position; 
    1943             if(!(terminal("\"").success)){ 
    1944                 goto mismatch158; 
     1944            {//GroupExpr 
     1945                uint start149 = position; 
     1946                {//Expression 
     1947                    uint start150 = position; 
     1948                    if((terminal("\"").success) || (terminal("\'").success)){ 
     1949                        clearErrors(); 
     1950                    }else{ 
     1951                        position = start150; 
     1952                        goto mismatch158; 
     1953                    } 
     1954                } 
     1955                smartAssignCat!(String,String)(bind_delim,sliceData(start149,position)); 
    19451956            } 
    19461957            {//ZeroOrMoreExpr 
    1947                 uint start149 = position; 
    1948                 uint termPos150
     1958                uint start151 = position; 
     1959                uint termPos152
    19491960            loop159: 
    1950                 termPos150 = position; 
    1951                 if(terminal("\"").success){ 
     1961                termPos152 = position; 
     1962                if(terminal(convert!(String,String)(bind_delim)).success){ 
    19521963                    goto loopend160; 
    19531964                }else{ 
     
    19561967            exprStart161: 
    19571968                {//Expression 
    1958                     uint start151 = position; 
     1969                    uint start153 = position; 
    19591970                    if((parse_AnyChar().success)){ 
    19601971                        clearErrors(); 
     
    19621973                    }else{ 
    19631974                        setError("Expected AnyChar."); 
    1964                         position = start151
     1975                        position = start153
    19651976                        goto loopend160; 
    19661977                    } 
    19671978                } 
    19681979            loopend160: 
    1969                 smartAssign!(String,String)(bind_text,sliceData(start149,termPos150)); 
     1980                smartAssign!(String,String)(bind_text,sliceData(start151,termPos152)); 
    19701981                {/*do nothing*/} 
    19711982            } 
     
    19962007    public ResultT!(String) parse_HexExpr(){ 
    19972008        debug writefln("parse_HexExpr()"); 
    1998         uint start152 = position; 
     2009        uint start154 = position; 
    19992010        String bind_text; 
    20002011         
    20012012         
    20022013        {//Expression 
    2003             uint start153 = position; 
     2014            uint start155 = position; 
    20042015            if(!(terminal("#").success)){ 
    20052016                goto mismatch165; 
    20062017            } 
    20072018            {//GroupExpr 
    2008                 uint start154 = position; 
    2009                 {//Expression 
    2010                     uint start155 = position; 
     2019                uint start156 = position; 
     2020                {//Expression 
     2021                    uint start157 = position; 
    20112022                    if(!(parse_hexdigit().success)){ 
    20122023                        goto mismatch167; 
     
    20172028                    {//OptionalExpr 
    20182029                        {//Expression 
    2019                             uint start157 = position; 
     2030                            uint start159 = position; 
    20202031                            if(!(parse_hexdigit().success)){ 
    20212032                                goto mismatch169; 
     
    20262037                            {//OptionalExpr 
    20272038                                {//Expression 
    2028                                     uint start159 = position; 
     2039                                    uint start161 = position; 
    20292040                                    if(!(parse_hexdigit().success)){ 
    20302041                                        goto mismatch171; 
     
    20412052                                    {//OptionalExpr 
    20422053                                        {//Expression 
    2043                                             uint start161 = position; 
     2054                                            uint start163 = position; 
    20442055                                            if((parse_hexdigit().success && parse_hexdigit().success && parse_hexdigit().success && parse_hexdigit().success && parse_hexdigit().success && parse_hexdigit().success && parse_hexdigit().success && parse_hexdigit().success)){ 
    20452056                                                clearErrors(); 
    20462057                                            }else{ 
    2047                                                 position = start161
     2058                                                position = start163
    20482059                                            } 
    20492060                                        } 
     
    20522063                                mismatch171: 
    20532064                                    {/*do nothing*/} 
    2054                                     position = start159
     2065                                    position = start161
    20552066                                    {/*do nothing*/} 
    20562067                                match170: 
     
    20622073                        mismatch169: 
    20632074                            {/*do nothing*/} 
    2064                             position = start157
     2075                            position = start159
    20652076                            {/*do nothing*/} 
    20662077                        match168: 
     
    20722083                mismatch167: 
    20732084                    setError("Expected hexdigit."); 
    2074                     position = start155
     2085                    position = start157
    20752086                    goto mismatch165; 
    20762087                match166: 
     
    20782089                    {/*do nothing*/} 
    20792090                } 
    2080                 smartAssign!(String,String)(bind_text,sliceData(start154,position)); 
     2091                smartAssign!(String,String)(bind_text,sliceData(start156,position)); 
    20812092            } 
    20822093            goto match164; 
    20832094        mismatch165: 
    20842095            {/*do nothing*/} 
    2085             position = start153
     2096            position = start155
    20862097            goto mismatch163; 
    20872098        match164: 
     
    20932104        return ResultT!(String)(bind_text); 
    20942105    mismatch163: 
    2095         position = start152
     2106        position = start154
    20962107        return ResultT!(String)(); 
    20972108    } 
     
    21062117    public ResultT!(String) parse_AnyChar(){ 
    21072118        debug writefln("parse_AnyChar()"); 
    2108         uint start162 = position; 
     2119        uint start164 = position; 
    21092120        String bind_value; 
    21102121         
    21112122         
    21122123        {//Expression 
    2113             uint start163 = position; 
     2124            uint start165 = position; 
    21142125            {//OptionalExpr 
    21152126                {//Expression 
    2116                     uint start165 = position; 
     2127                    uint start167 = position; 
    21172128                    if((terminal("\\").assignCat!(String)(bind_value))){ 
    21182129                        clearErrors(); 
    21192130                    }else{ 
    2120                         position = start165
     2131                        position = start167
    21212132                    } 
    21222133                } 
     
    21282139        mismatch175: 
    21292140            {/*do nothing*/} 
    2130             position = start163
     2141            position = start165
    21312142            goto mismatch173; 
    21322143        match174: 
     
    21382149        return ResultT!(String)(bind_value); 
    21392150    mismatch173: 
    2140         position = start162
     2151        position = start164
    21412152        return ResultT!(String)(); 
    21422153    } 
     
    21512162    public ResultT!(Comment) parse_Comment(){ 
    21522163        debug writefln("parse_Comment()"); 
    2153         uint start166 = position; 
     2164        uint start168 = position; 
    21542165        String bind_text; 
    21552166         
    21562167         
    21572168        {//Expression 
    2158             uint start167 = position; 
     2169            uint start169 = position; 
    21592170            if((parse_PoundComment().assign!(String)(bind_text)) || (parse_SlashSlashComment().assign!(String)(bind_text)) || (parse_SlashStarComment().assign!(String)(bind_text))){ 
    21602171                clearErrors(); 
     
    21622173            }else{ 
    21632174                setError("Expected PoundComment, SlashSlashComment or SlashStarComment."); 
    2164                 position = start167
     2175                position = start169
    21652176                goto mismatch177; 
    21662177            } 
     
    21712182        return passed; 
    21722183    mismatch177: 
    2173         position = start166
     2184        position = start168
    21742185        ResultT!(Comment) failed = ResultT!(Comment)(); 
    21752186        return failed; 
     
    21852196    public ResultT!(String) parse_PoundComment(){ 
    21862197        debug writefln("parse_PoundComment()"); 
    2187         uint start168 = position; 
     2198        uint start170 = position; 
    21882199        String bind_text; 
    21892200         
    21902201         
    21912202        {//Expression 
    2192             uint start169 = position; 
     2203            uint start171 = position; 
    21932204            if(!(terminal("#").success)){ 
    21942205                goto mismatch181; 
    21952206            } 
    21962207            {//ZeroOrMoreExpr 
    2197                 uint start170 = position; 
    2198                 uint termPos171
     2208                uint start172 = position; 
     2209                uint termPos173
    21992210            loop182: 
    2200                 termPos171 = position; 
     2211                termPos173 = position; 
    22012212                if(parse_eol().success){ 
    22022213                    goto loopend183; 
     
    22062217            exprStart184: 
    22072218                {//Expression 
    2208                     uint start172 = position; 
     2219                    uint start174 = position; 
    22092220                    if((parse_any().success)){ 
    22102221                        clearErrors(); 
     
    22122223                    }else{ 
    22132224                        setError("Expected any."); 
    2214                         position = start172
     2225                        position = start174
    22152226                        goto loopend183; 
    22162227                    } 
    22172228                } 
    22182229            loopend183: 
    2219                 smartAssign!(String,String)(bind_text,sliceData(start170,termPos171)); 
     2230                smartAssign!(String,String)(bind_text,sliceData(start172,termPos173)); 
    22202231                {/*do nothing*/} 
    22212232            } 
     
    22232234        mismatch181: 
    22242235            {/*do nothing*/} 
    2225             position = start169
     2236            position = start171
    22262237            goto mismatch179; 
    22272238        match180: 
     
    22332244        return ResultT!(String)(bind_text); 
    22342245    mismatch179: 
    2235         position = start168
     2246        position = start170
    22362247        return ResultT!(String)(); 
    22372248    } 
     
    22462257    public ResultT!(String) parse_SlashSlashComment(){ 
    22472258        debug writefln("parse_SlashSlashComment()"); 
    2248         uint start173 = position; 
     2259        uint start175 = position; 
    22492260        String bind_text; 
    22502261         
    22512262         
    22522263        {//Expression 
    2253             uint start174 = position; 
     2264            uint start176 = position; 
    22542265            if(!(terminal("\x2F\x2F").success)){ 
    22552266                goto mismatch188; 
    22562267            } 
    22572268            {//ZeroOrMoreExpr 
    2258                 uint start175 = position; 
    2259                 uint termPos176
     2269                uint start177 = position; 
     2270                uint termPos178
    22602271            loop189: 
    2261                 termPos176 = position; 
     2272                termPos178 = position; 
    22622273                if(parse_eol().success){ 
    22632274                    goto loopend190; 
     
    22672278            exprStart191: 
    22682279                {//Expression 
    2269                     uint start177 = position; 
     2280                    uint start179 = position; 
    22702281                    if((parse_any().success)){ 
    22712282                        clearErrors(); 
     
    22732284                    }else{ 
    22742285                        setError("Expected any."); 
    2275                         position = start177
     2286                        position = start179
    22762287                        goto loopend190; 
    22772288                    } 
    22782289                } 
    22792290            loopend190: 
    2280                 smartAssign!(String,String)(bind_text,sliceData(start175,termPos176)); 
     2291                smartAssign!(String,String)(bind_text,sliceData(start177,termPos178)); 
    22812292                {/*do nothing*/} 
    22822293            } 
     
    22842295        mismatch188: 
    22852296            {/*do nothing*/} 
    2286             position = start174
     2297            position = start176
    22872298            goto mismatch186; 
    22882299        match187: 
     
    22942305        return ResultT!(String)(bind_text); 
    22952306    mismatch186: 
    2296         position = start173
     2307        position = start175
    22972308        return ResultT!(String)(); 
    22982309    } 
     
    23072318    public ResultT!(String) parse_SlashStarComment(){ 
    23082319        debug writefln("parse_SlashStarComment()"); 
    2309         uint start178 = position; 
     2320        uint start180 = position; 
    23102321        String bind_text; 
    23112322         
    23122323         
    23132324        {//Expression 
    2314             uint start179 = position; 
     2325            uint start181 = position; 
    23152326            if(!(terminal("\x2F\x2A").success)){ 
    23162327                goto mismatch195; 
    23172328            } 
    23182329            {//ZeroOrMoreExpr 
    2319                 uint start180 = position; 
    2320                 uint termPos181
     2330                uint start182 = position; 
     2331                uint termPos183
    23212332            loop196: 
    2322                 termPos181 = position; 
     2333                termPos183 = position; 
    23232334                if(terminal("\x2A\x2F").success){ 
    23242335                    goto loopend197; 
     
    23282339            exprStart198: 
    23292340                {//Expression 
    2330                     uint start182 = position; 
     2341                    uint start184 = position; 
    23312342                    if((parse_any().success)){ 
    23322343                        clearErrors(); 
     
    23342345                    }else{ 
    23352346                        setError("Expected any."); 
    2336                         position = start182
     2347                        position = start184
    23372348                        goto loopend197; 
    23382349                    } 
    23392350                } 
    23402351            loopend197: 
    2341                 smartAssign!(String,String)(bind_text,sliceData(start180,termPos181)); 
     2352                smartAssign!(String,String)(bind_text,sliceData(start182,termPos183)); 
    23422353                {/*do nothing*/} 
    23432354            } 
     
    23452356        mismatch195: 
    23462357            {/*do nothing*/} 
    2347             position = start179
     2358            position = start181
    23482359            goto mismatch193; 
    23492360        match194: 
     
    23552366        return ResultT!(String)(bind_text); 
    23562367    mismatch193: 
    2357         position = start178
     2368        position = start180
    23582369        return ResultT!(String)(); 
    23592370    } 
     
    23682379    public ResultT!(Directive) parse_Directive(){ 
    23692380        debug writefln("parse_Directive()"); 
    2370         uint start183 = position; 
     2381        uint start185 = position; 
    23712382        Directive bind_dir; 
    23722383         
    23732384         
    23742385        {//Expression 
    2375             uint start184 = position; 
     2386            uint start186 = position; 
    23762387            if(!(terminal(".").success)){ 
    23772388                goto mismatch202; 
    23782389            } 
    23792390            {//Expression 
    2380                 uint start185 = position; 
     2391                uint start187 = position; 
    23812392                if((parse_ImportDirective().assignCat!(Directive)(bind_dir)) || (parse_BaseClassDirective().assignCat!(Directive)(bind_dir)) || (parse_ClassnameDirective().assignCat!(Directive)(bind_dir)) || (parse_DefineDirective().assignCat!(Directive)(bind_dir)) || (parse_IncludeDirective().assignCat!(Directive)(bind_dir)) || (parse_AliasDirective().assignCat!(Directive)(bind_dir)) || (parse_ModuleDirective().assignCat!(Directive)(bind_dir)) || (parse_CodeDirective().assignCat!(Directive)(bind_dir)) || (parse_TypelibDirective().assignCat!(Directive)(bind_dir)) || (parse_ParseTypeDirective().assignCat!(Directive)(bind_dir)) || (parse_BoilerplateDirective().assignCat!(Directive)(bind_dir)) || (parse_HeaderDirective().assignCat!(Directive)(bind_dir)) || (parse_UTFDirective().assignCat!(Directive)(bind_dir))){ 
    23822393                    clearErrors(); 
    23832394                }else{ 
    23842395                    setError("Expected ImportDirective, BaseClassDirective, ClassnameDirective, DefineDirective, IncludeDirective, AliasDirective, ModuleDirective, CodeDirective, TypelibDirective, ParseTypeDirective, BoilerplateDirective, HeaderDirective or UTFDirective."); 
    2385                     position = start185
     2396                    position = start187
    23862397                    goto mismatch202; 
    23872398                } 
     
    23902401        mismatch202: 
    23912402            {/*do nothing*/} 
    2392             position = start184
     2403            position = start186
    23932404            goto mismatch200; 
    23942405        match201: 
     
    24002411        return ResultT!(Directive)(bind_dir); 
    24012412    mismatch200: 
    2402         position = start183
     2413        position = start185
    24032414        return ResultT!(Directive)(); 
    24042415    } 
     
    24132424    public ResultT!(ImportDirective) parse_ImportDirective(){ 
    24142425        debug writefln("parse_ImportDirective()"); 
    2415         uint start186 = position; 
     2426        uint start188 = position; 
    24162427        String bind_imp; 
    24172428         
    24182429         
    24192430        {//Expression 
    2420             uint start187 = position; 
     2431            uint start189 = position; 
    24212432            if((terminal("import").success && parse_WS().success && terminal("(").success && parse_WS().success && parse_DirectiveArg().assign!(String)(bind_imp) && parse_WS().success && terminal(")").success && parse_WS().success && terminal(";").success)){ 
    24222433                clearErrors(); 
    24232434                goto match203; 
    24242435            }else{ 
    2425                 position = start187
     2436                position = start189
    24262437                goto mismatch204; 
    24272438            } 
     
    24322443        return passed; 
    24332444    mismatch204: 
    2434         position = start186
     2445        position = start188
    24352446        ResultT!(ImportDirective) failed = ResultT!(ImportDirective)(); 
    24362447        return failed; 
     
    24462457    public ResultT!(BaseClassDirective) parse_BaseClassDirective(){ 
    24472458        debug writefln("parse_BaseClassDirective()"); 
    2448         uint start188 = position; 
     2459        uint start190 = position; 
    24492460        String bind_name; 
    24502461         
    24512462         
    24522463        {//Expression 
    2453             uint start189 = position; 
     2464            uint start191 = position; 
    24542465            if((terminal("baseclass").success && parse_WS().success && terminal("(").success && parse_WS().success && parse_DirectiveArg().assign!(String)(bind_name) && parse_WS().success && terminal(")").success && parse_WS().success && terminal(";").success)){ 
    24552466                clearErrors(); 
    24562467                goto match205; 
    24572468            }else{ 
    2458                 position = start189
     2469                position = start191
    24592470                goto mismatch206; 
    24602471            } 
     
    24652476        return passed; 
    24662477    mismatch206: 
    2467         position = start188
     2478        position = start190
    24682479        ResultT!(BaseClassDirective) failed = ResultT!(BaseClassDirective)(); 
    24692480        return failed; 
     
    24792490    public ResultT!(ClassnameDirective) parse_ClassnameDirective(){ 
    24802491        debug writefln("parse_ClassnameDirective()"); 
    2481         uint start190 = position; 
     2492        uint start192 = position; 
    24822493        String bind_name; 
    24832494         
    24842495         
    24852496        {//Expression 
    2486             uint start191 = position; 
     2497            uint start193 = position; 
    24872498            if((terminal("classname").success && parse_WS().success && terminal("(").success && parse_WS().success && parse_DirectiveArg().assign!(String)(bind_name) && parse_WS().success && terminal(")").success && parse_WS().success && terminal(";").success)){ 
    24882499                clearErrors(); 
    24892500                goto match207; 
    24902501            }else{ 
    2491                 position = start191
     2502                position = start193
    24922503                goto mismatch208; 
    24932504            } 
     
    24982509        return passed; 
    24992510    mismatch208: 
    2500         position = start190
     2511        position = start192
    25012512        ResultT!(ClassnameDirective) failed = ResultT!(ClassnameDirective)(); 
    25022513        return failed; 
     
    25122523    public ResultT!(DefineDirective) parse_DefineDirective(){ 
    25132524        debug writefln("parse_DefineDirective()"); 
    2514         uint start192 = position; 
     2525        uint start194 = position; 
    25152526        String bind_returnType; 
    25162527        String bind_name; 
     
    25202531         
    25212532        {//Expression 
    2522             uint start193 = position; 
     2533            uint start195 = position; 
    25232534            if(!(terminal("define").success)){ 
    25242535                goto mismatch212; 
     
    25652576            {//OptionalExpr 
    25662577                {//Expression 
    2567                     uint start195 = position; 
     2578                    uint start197 = position; 
    25682579                    if((terminal(",").success && parse_WS().success && parse_DirectiveArg().assign!(String)(bind_description) && parse_WS().success)){ 
    25692580                        clearErrors(); 
    25702581                    }else{ 
    2571                         position = start195
     2582                        position = start197
    25722583                    } 
    25732584                } 
     
    25852596        mismatch212: 
    25862597            {/*do nothing*/} 
    2587             position = start193
     2598            position = start195
    25882599            goto mismatch210; 
    25892600        match211: 
     
    25962607        return passed; 
    25972608    mismatch210: 
    2598         position = start192
     2609        position = start194
    25992610        ResultT!(DefineDirective) failed = ResultT!(DefineDirective)(); 
    26002611        return failed; 
     
    26102621    public ResultT!(IncludeDirective) parse_IncludeDirective(){ 
    26112622        debug writefln("parse_IncludeDirective()"); 
    2612         uint start196 = position; 
     2623        uint start198 = position; 
    26132624        String bind_filename; 
    26142625         
    26152626         
    26162627        {//Expression 
    2617             uint start197 = position; 
     2628            uint start199 = position; 
    26182629            if((terminal("include").success && parse_WS().success && terminal("(").success && parse_WS().success && parse_String().assign!(String)(bind_filename) && parse_WS().success && terminal(")").success && parse_WS().success && terminal(";").success)){ 
    26192630                clearErrors(); 
    26202631                goto match213; 
    26212632            }else{ 
    2622                 position = start197
     2633                position = start199
    26232634                goto mismatch214; 
    26242635            } 
     
    26292640        return passed; 
    26302641    mismatch214: 
    2631         position = start196
     2642        position = start198
    26322643        ResultT!(IncludeDirective) failed = ResultT!(IncludeDirective)(); 
    26332644        return failed; 
     
    26432654    public ResultT!(AliasDirective) parse_AliasDirective(){ 
    26442655        debug writefln("parse_AliasDirective()"); 
    2645         uint start198 = position; 
     2656        uint start200 = position; 
    26462657        String bind_rule; 
    26472658        String bind_ruleAlias; 
     
    26492660         
    26502661        {//Expression 
    2651             uint start199 = position; 
     2662            uint start201 = position; 
    26522663            if((terminal("alias").success && parse_WS().success && terminal("(").success && parse_WS().success && parse_DirectiveArg().assign!(String)(bind_rule) && parse_WS().success && terminal(",").success && parse_WS().success && parse_DirectiveArg().assign!(String)(bind_ruleAlias) && parse_WS().success && terminal(")").success && parse_WS().success && terminal(";").success)){ 
    26532664                clearErrors(); 
    26542665                goto match215; 
    26552666            }else{ 
    2656                 position = start199
     2667                position = start201
    26572668                goto mismatch216; 
    26582669            } 
     
    26632674        return passed; 
    26642675    mismatch216: 
    2665         position = start198
     2676        position = start200
    26662677        ResultT!(AliasDirective) failed = ResultT!(AliasDirective)(); 
    26672678        return failed; 
     
    26772688    public ResultT!(ModuleDirective) parse_ModuleDirective(){ 
    26782689        debug writefln("parse_ModuleDirective()"); 
    2679         uint start200 = position; 
     2690        uint start202 = position; 
    26802691        String bind_moduleName; 
    26812692         
    26822693         
    26832694        {//Expression 
    2684             uint start201 = position; 
     2695            uint start203 = position; 
    26852696            if((terminal("module").success && parse_WS().success && terminal("(").success && parse_WS().success && parse_DirectiveArg().assign!(String)(bind_moduleName) && parse_WS().success && terminal(")").success && parse_WS().success && terminal(";").success)){ 
    26862697                clearErrors(); 
    26872698                goto match217; 
    26882699            }else{ 
    2689                 position = start201
     2700                position = start203
    26902701                goto mismatch218; 
    26912702            } 
     
    26962707        return passed; 
    26972708    mismatch218: 
    2698         position = start200
     2709        position = start202
    26992710        ResultT!(ModuleDirective) failed = ResultT!(ModuleDirective)(); 
    27002711        return failed; 
     
    27102721    public ResultT!(CodeDirective) parse_CodeDirective(){ 
    27112722        debug writefln("parse_CodeDirective()"); 
    2712         uint start202 = position; 
     2723        uint start204 = position; 
    27132724        String bind_code; 
    27142725         
    27152726         
    27162727        {//Expression 
    2717             uint start203 = position; 
     2728            uint start205 = position; 
    27182729            if(!(terminal("code").success)){ 
    27192730                goto mismatch222; 
     
    27262737            } 
    27272738            {//ZeroOrMoreExpr 
    2728                 uint start204 = position; 
    2729                 uint termPos205
     2739                uint start206 = position; 
     2740                uint termPos207
    27302741            loop223: 
    2731                 termPos205 = position; 
     2742                termPos207 = position; 
    27322743                if(terminal("}}}").success){ 
    27332744                    goto loopend224; 
     
    27372748            exprStart225: 
    27382749                {//Expression 
    2739                     uint start206 = position; 
     2750                    uint start208 = position; 
    27402751                    if((parse_any().success)){ 
    27412752                        clearErrors(); 
     
    27432754                    }else{ 
    27442755                        setError("Expected any."); 
    2745                         position = start206
     2756                        position = start208
    27462757                        goto loopend224; 
    27472758                    } 
    27482759                } 
    27492760            loopend224: 
    2750                 smartAssign!(String,String)(bind_code,sliceData(start204,termPos205)); 
     2761                smartAssign!(String,String)(bind_code,sliceData(start206,termPos207)); 
    27512762                {/*do nothing*/} 
    27522763            } 
     
    27542765        mismatch222: 
    27552766            {/*do nothing*/} 
    2756             position = start203
     2767            position = start205
    27572768            goto mismatch220; 
    27582769        match221: 
     
    27652776        return passed; 
    27662777    mismatch220: 
    2767         position = start202
     2778        position = start204
    27682779        ResultT!(CodeDirective) failed = ResultT!(CodeDirective)(); 
    27692780        return failed; 
     
    27792790    public ResultT!(TypelibDirective) parse_TypelibDirective(){ 
    27802791        debug writefln("parse_TypelibDirective()"); 
    2781         uint start207 = position; 
     2792        uint start209 = position; 
    27822793        String bind_importName; 
    27832794         
    27842795         
    27852796        {//Expression 
    2786             uint start208 = position; 
     2797            uint start210 = position; 
    27872798            if((terminal("typelib").success && parse_WS().success && terminal("(").success && parse_WS().success && parse_DirectiveArg().assign!(String)(bind_importName) && parse_WS().success && terminal(")").success && parse_WS().success && terminal(";").success)){ 
    27882799                clearErrors(); 
    27892800                goto match226; 
    27902801            }else{ 
    2791                 position = start208
     2802                position = start210
    27922803                goto mismatch227; 
    27932804            } 
     
    27982809        return passed; 
    27992810    mismatch227: 
    2800         position = start207
     2811        position = start209
    28012812        ResultT!(TypelibDirective) failed = ResultT!(TypelibDirective)(); 
    28022813        return failed; 
     
    28122823    public ResultT!(ParseTypeDirective) parse_ParseTypeDirective(){ 
    28132824        debug writefln("parse_ParseTypeDirective()"); 
    2814         uint start209 = position; 
     2825        uint start211 = position; 
    28152826        String bind_typeName; 
    28162827         
    28172828         
    28182829        {//Expression 
    2819             uint start210 = position; 
     2830            uint start212 = position; 
    28202831            if((terminal("parsetype").success && parse_WS().success && terminal("(").success && parse_WS().success && parse_DirectiveArg().assign!(String)(bind_typeName) && parse_WS().success && terminal(")").success && parse_WS().success && terminal(";").success)){ 
    28212832                clearErrors(); 
    28222833                goto match228; 
    28232834            }else{ 
    2824                 position = start210
     2835                position = start212
    28252836                goto mismatch229; 
    28262837            } 
     
    28312842        return passed; 
    28322843    mismatch229: 
    2833         position = start209
     2844        position = start211
    28342845        ResultT!(ParseTypeDirective) failed = ResultT!(ParseTypeDirective)(); 
    28352846        return failed; 
     
    28452856    public ResultT!(BoilerplateDirective) parse_BoilerplateDirective(){ 
    28462857        debug writefln("parse_BoilerplateDirective()"); 
    2847         uint start211 = position; 
     2858        uint start213 = position; 
    28482859        String bind_code; 
    28492860         
    28502861         
    28512862        {//Expression 
    2852             uint start212 = position; 
     2863            uint start214 = position; 
    28532864            if(!(terminal("boilerplate").success)){ 
    28542865                goto mismatch233; 
     
    28612872            } 
    28622873            {//ZeroOrMoreExpr 
    2863                 uint start213 = position; 
    2864                 uint termPos214
     2874                uint start215 = position; 
     2875                uint termPos216
    28652876            loop234: 
    2866                 termPos214 = position; 
     2877                termPos216 = position; 
    28672878                if(terminal("}}}").success){ 
    28682879                    goto loopend235; 
     
    28722883            exprStart236: 
    28732884                {//Expression 
    2874                     uint start215 = position; 
     2885                    uint start217 = position; 
    28752886                    if((parse_any().success)){ 
    28762887                        clearErrors(); 
     
    28782889                    }else{ 
    28792890                        setError("Expected any."); 
    2880                         position = start215
     2891                        position = start217
    28812892                        goto loopend235; 
    28822893                    } 
    28832894                } 
    28842895            loopend235: 
    2885                 smartAssign!(String,String)(bind_code,sliceData(start213,termPos214)); 
     2896                smartAssign!(String,String)(bind_code,sliceData(start215,termPos216)); 
    28862897                {/*do nothing*/} 
    28872898            } 
     
    28892900        mismatch233: 
    28902901            {/*do nothing*/} 
    2891             position = start212
     2902            position = start214
    28922903            goto mismatch231; 
    28932904        match232: 
     
    29002911        return passed; 
    29012912    mismatch231: 
    2902         position = start211
     2913        position = start213
    29032914        ResultT!(BoilerplateDirective) failed = ResultT!(BoilerplateDirective)(); 
    29042915        return failed; 
     
    29142925    public ResultT!(HeaderDirective) parse_HeaderDirective(){ 
    29152926        debug writefln("parse_HeaderDirective()"); 
    2916         uint start216 = position; 
     2927        uint start218 = position; 
    29172928        String bind_code; 
    29182929         
    29192930  &