Changeset 277 for trunk/enki/EnkiParser.d
- Timestamp:
- 04/15/07 19:13:59 (2 years ago)
- Files:
-
- trunk/enki/EnkiParser.d (modified) (82 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/enki/EnkiParser.d
r276 r277 1930 1930 String 1931 1931 = String text 1932 ::= "\"" { AnyChar}:text "\"";1932 ::= ( "\"" | "\'"):~delim { AnyChar}:text.delim; 1933 1933 1934 1934 */ … … 1938 1938 String bind_text; 1939 1939 1940 String bind_delim; 1940 1941 1941 1942 {//Expression 1942 1943 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)); 1945 1956 } 1946 1957 {//ZeroOrMoreExpr 1947 uint start1 49= position;1948 uint termPos15 0;1958 uint start151 = position; 1959 uint termPos152; 1949 1960 loop159: 1950 termPos15 0= position;1951 if(terminal( "\"").success){1961 termPos152 = position; 1962 if(terminal(convert!(String,String)(bind_delim)).success){ 1952 1963 goto loopend160; 1953 1964 }else{ … … 1956 1967 exprStart161: 1957 1968 {//Expression 1958 uint start15 1= position;1969 uint start153 = position; 1959 1970 if((parse_AnyChar().success)){ 1960 1971 clearErrors(); … … 1962 1973 }else{ 1963 1974 setError("Expected AnyChar."); 1964 position = start15 1;1975 position = start153; 1965 1976 goto loopend160; 1966 1977 } 1967 1978 } 1968 1979 loopend160: 1969 smartAssign!(String,String)(bind_text,sliceData(start1 49,termPos150));1980 smartAssign!(String,String)(bind_text,sliceData(start151,termPos152)); 1970 1981 {/*do nothing*/} 1971 1982 } … … 1996 2007 public ResultT!(String) parse_HexExpr(){ 1997 2008 debug writefln("parse_HexExpr()"); 1998 uint start15 2= position;2009 uint start154 = position; 1999 2010 String bind_text; 2000 2011 2001 2012 2002 2013 {//Expression 2003 uint start15 3= position;2014 uint start155 = position; 2004 2015 if(!(terminal("#").success)){ 2005 2016 goto mismatch165; 2006 2017 } 2007 2018 {//GroupExpr 2008 uint start15 4= position;2009 {//Expression 2010 uint start15 5= position;2019 uint start156 = position; 2020 {//Expression 2021 uint start157 = position; 2011 2022 if(!(parse_hexdigit().success)){ 2012 2023 goto mismatch167; … … 2017 2028 {//OptionalExpr 2018 2029 {//Expression 2019 uint start15 7= position;2030 uint start159 = position; 2020 2031 if(!(parse_hexdigit().success)){ 2021 2032 goto mismatch169; … … 2026 2037 {//OptionalExpr 2027 2038 {//Expression 2028 uint start1 59= position;2039 uint start161 = position; 2029 2040 if(!(parse_hexdigit().success)){ 2030 2041 goto mismatch171; … … 2041 2052 {//OptionalExpr 2042 2053 {//Expression 2043 uint start16 1= position;2054 uint start163 = position; 2044 2055 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)){ 2045 2056 clearErrors(); 2046 2057 }else{ 2047 position = start16 1;2058 position = start163; 2048 2059 } 2049 2060 } … … 2052 2063 mismatch171: 2053 2064 {/*do nothing*/} 2054 position = start1 59;2065 position = start161; 2055 2066 {/*do nothing*/} 2056 2067 match170: … … 2062 2073 mismatch169: 2063 2074 {/*do nothing*/} 2064 position = start15 7;2075 position = start159; 2065 2076 {/*do nothing*/} 2066 2077 match168: … … 2072 2083 mismatch167: 2073 2084 setError("Expected hexdigit."); 2074 position = start15 5;2085 position = start157; 2075 2086 goto mismatch165; 2076 2087 match166: … … 2078 2089 {/*do nothing*/} 2079 2090 } 2080 smartAssign!(String,String)(bind_text,sliceData(start15 4,position));2091 smartAssign!(String,String)(bind_text,sliceData(start156,position)); 2081 2092 } 2082 2093 goto match164; 2083 2094 mismatch165: 2084 2095 {/*do nothing*/} 2085 position = start15 3;2096 position = start155; 2086 2097 goto mismatch163; 2087 2098 match164: … … 2093 2104 return ResultT!(String)(bind_text); 2094 2105 mismatch163: 2095 position = start15 2;2106 position = start154; 2096 2107 return ResultT!(String)(); 2097 2108 } … … 2106 2117 public ResultT!(String) parse_AnyChar(){ 2107 2118 debug writefln("parse_AnyChar()"); 2108 uint start16 2= position;2119 uint start164 = position; 2109 2120 String bind_value; 2110 2121 2111 2122 2112 2123 {//Expression 2113 uint start16 3= position;2124 uint start165 = position; 2114 2125 {//OptionalExpr 2115 2126 {//Expression 2116 uint start16 5= position;2127 uint start167 = position; 2117 2128 if((terminal("\\").assignCat!(String)(bind_value))){ 2118 2129 clearErrors(); 2119 2130 }else{ 2120 position = start16 5;2131 position = start167; 2121 2132 } 2122 2133 } … … 2128 2139 mismatch175: 2129 2140 {/*do nothing*/} 2130 position = start16 3;2141 position = start165; 2131 2142 goto mismatch173; 2132 2143 match174: … … 2138 2149 return ResultT!(String)(bind_value); 2139 2150 mismatch173: 2140 position = start16 2;2151 position = start164; 2141 2152 return ResultT!(String)(); 2142 2153 } … … 2151 2162 public ResultT!(Comment) parse_Comment(){ 2152 2163 debug writefln("parse_Comment()"); 2153 uint start16 6= position;2164 uint start168 = position; 2154 2165 String bind_text; 2155 2166 2156 2167 2157 2168 {//Expression 2158 uint start16 7= position;2169 uint start169 = position; 2159 2170 if((parse_PoundComment().assign!(String)(bind_text)) || (parse_SlashSlashComment().assign!(String)(bind_text)) || (parse_SlashStarComment().assign!(String)(bind_text))){ 2160 2171 clearErrors(); … … 2162 2173 }else{ 2163 2174 setError("Expected PoundComment, SlashSlashComment or SlashStarComment."); 2164 position = start16 7;2175 position = start169; 2165 2176 goto mismatch177; 2166 2177 } … … 2171 2182 return passed; 2172 2183 mismatch177: 2173 position = start16 6;2184 position = start168; 2174 2185 ResultT!(Comment) failed = ResultT!(Comment)(); 2175 2186 return failed; … … 2185 2196 public ResultT!(String) parse_PoundComment(){ 2186 2197 debug writefln("parse_PoundComment()"); 2187 uint start1 68= position;2198 uint start170 = position; 2188 2199 String bind_text; 2189 2200 2190 2201 2191 2202 {//Expression 2192 uint start1 69= position;2203 uint start171 = position; 2193 2204 if(!(terminal("#").success)){ 2194 2205 goto mismatch181; 2195 2206 } 2196 2207 {//ZeroOrMoreExpr 2197 uint start17 0= position;2198 uint termPos17 1;2208 uint start172 = position; 2209 uint termPos173; 2199 2210 loop182: 2200 termPos17 1= position;2211 termPos173 = position; 2201 2212 if(parse_eol().success){ 2202 2213 goto loopend183; … … 2206 2217 exprStart184: 2207 2218 {//Expression 2208 uint start17 2= position;2219 uint start174 = position; 2209 2220 if((parse_any().success)){ 2210 2221 clearErrors(); … … 2212 2223 }else{ 2213 2224 setError("Expected any."); 2214 position = start17 2;2225 position = start174; 2215 2226 goto loopend183; 2216 2227 } 2217 2228 } 2218 2229 loopend183: 2219 smartAssign!(String,String)(bind_text,sliceData(start17 0,termPos171));2230 smartAssign!(String,String)(bind_text,sliceData(start172,termPos173)); 2220 2231 {/*do nothing*/} 2221 2232 } … … 2223 2234 mismatch181: 2224 2235 {/*do nothing*/} 2225 position = start1 69;2236 position = start171; 2226 2237 goto mismatch179; 2227 2238 match180: … … 2233 2244 return ResultT!(String)(bind_text); 2234 2245 mismatch179: 2235 position = start1 68;2246 position = start170; 2236 2247 return ResultT!(String)(); 2237 2248 } … … 2246 2257 public ResultT!(String) parse_SlashSlashComment(){ 2247 2258 debug writefln("parse_SlashSlashComment()"); 2248 uint start17 3= position;2259 uint start175 = position; 2249 2260 String bind_text; 2250 2261 2251 2262 2252 2263 {//Expression 2253 uint start17 4= position;2264 uint start176 = position; 2254 2265 if(!(terminal("\x2F\x2F").success)){ 2255 2266 goto mismatch188; 2256 2267 } 2257 2268 {//ZeroOrMoreExpr 2258 uint start17 5= position;2259 uint termPos17 6;2269 uint start177 = position; 2270 uint termPos178; 2260 2271 loop189: 2261 termPos17 6= position;2272 termPos178 = position; 2262 2273 if(parse_eol().success){ 2263 2274 goto loopend190; … … 2267 2278 exprStart191: 2268 2279 {//Expression 2269 uint start17 7= position;2280 uint start179 = position; 2270 2281 if((parse_any().success)){ 2271 2282 clearErrors(); … … 2273 2284 }else{ 2274 2285 setError("Expected any."); 2275 position = start17 7;2286 position = start179; 2276 2287 goto loopend190; 2277 2288 } 2278 2289 } 2279 2290 loopend190: 2280 smartAssign!(String,String)(bind_text,sliceData(start17 5,termPos176));2291 smartAssign!(String,String)(bind_text,sliceData(start177,termPos178)); 2281 2292 {/*do nothing*/} 2282 2293 } … … 2284 2295 mismatch188: 2285 2296 {/*do nothing*/} 2286 position = start17 4;2297 position = start176; 2287 2298 goto mismatch186; 2288 2299 match187: … … 2294 2305 return ResultT!(String)(bind_text); 2295 2306 mismatch186: 2296 position = start17 3;2307 position = start175; 2297 2308 return ResultT!(String)(); 2298 2309 } … … 2307 2318 public ResultT!(String) parse_SlashStarComment(){ 2308 2319 debug writefln("parse_SlashStarComment()"); 2309 uint start1 78= position;2320 uint start180 = position; 2310 2321 String bind_text; 2311 2322 2312 2323 2313 2324 {//Expression 2314 uint start1 79= position;2325 uint start181 = position; 2315 2326 if(!(terminal("\x2F\x2A").success)){ 2316 2327 goto mismatch195; 2317 2328 } 2318 2329 {//ZeroOrMoreExpr 2319 uint start18 0= position;2320 uint termPos18 1;2330 uint start182 = position; 2331 uint termPos183; 2321 2332 loop196: 2322 termPos18 1= position;2333 termPos183 = position; 2323 2334 if(terminal("\x2A\x2F").success){ 2324 2335 goto loopend197; … … 2328 2339 exprStart198: 2329 2340 {//Expression 2330 uint start18 2= position;2341 uint start184 = position; 2331 2342 if((parse_any().success)){ 2332 2343 clearErrors(); … … 2334 2345 }else{ 2335 2346 setError("Expected any."); 2336 position = start18 2;2347 position = start184; 2337 2348 goto loopend197; 2338 2349 } 2339 2350 } 2340 2351 loopend197: 2341 smartAssign!(String,String)(bind_text,sliceData(start18 0,termPos181));2352 smartAssign!(String,String)(bind_text,sliceData(start182,termPos183)); 2342 2353 {/*do nothing*/} 2343 2354 } … … 2345 2356 mismatch195: 2346 2357 {/*do nothing*/} 2347 position = start1 79;2358 position = start181; 2348 2359 goto mismatch193; 2349 2360 match194: … … 2355 2366 return ResultT!(String)(bind_text); 2356 2367 mismatch193: 2357 position = start1 78;2368 position = start180; 2358 2369 return ResultT!(String)(); 2359 2370 } … … 2368 2379 public ResultT!(Directive) parse_Directive(){ 2369 2380 debug writefln("parse_Directive()"); 2370 uint start18 3= position;2381 uint start185 = position; 2371 2382 Directive bind_dir; 2372 2383 2373 2384 2374 2385 {//Expression 2375 uint start18 4= position;2386 uint start186 = position; 2376 2387 if(!(terminal(".").success)){ 2377 2388 goto mismatch202; 2378 2389 } 2379 2390 {//Expression 2380 uint start18 5= position;2391 uint start187 = position; 2381 2392 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))){ 2382 2393 clearErrors(); 2383 2394 }else{ 2384 2395 setError("Expected ImportDirective, BaseClassDirective, ClassnameDirective, DefineDirective, IncludeDirective, AliasDirective, ModuleDirective, CodeDirective, TypelibDirective, ParseTypeDirective, BoilerplateDirective, HeaderDirective or UTFDirective."); 2385 position = start18 5;2396 position = start187; 2386 2397 goto mismatch202; 2387 2398 } … … 2390 2401 mismatch202: 2391 2402 {/*do nothing*/} 2392 position = start18 4;2403 position = start186; 2393 2404 goto mismatch200; 2394 2405 match201: … … 2400 2411 return ResultT!(Directive)(bind_dir); 2401 2412 mismatch200: 2402 position = start18 3;2413 position = start185; 2403 2414 return ResultT!(Directive)(); 2404 2415 } … … 2413 2424 public ResultT!(ImportDirective) parse_ImportDirective(){ 2414 2425 debug writefln("parse_ImportDirective()"); 2415 uint start18 6= position;2426 uint start188 = position; 2416 2427 String bind_imp; 2417 2428 2418 2429 2419 2430 {//Expression 2420 uint start18 7= position;2431 uint start189 = position; 2421 2432 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)){ 2422 2433 clearErrors(); 2423 2434 goto match203; 2424 2435 }else{ 2425 position = start18 7;2436 position = start189; 2426 2437 goto mismatch204; 2427 2438 } … … 2432 2443 return passed; 2433 2444 mismatch204: 2434 position = start18 6;2445 position = start188; 2435 2446 ResultT!(ImportDirective) failed = ResultT!(ImportDirective)(); 2436 2447 return failed; … … 2446 2457 public ResultT!(BaseClassDirective) parse_BaseClassDirective(){ 2447 2458 debug writefln("parse_BaseClassDirective()"); 2448 uint start1 88= position;2459 uint start190 = position; 2449 2460 String bind_name; 2450 2461 2451 2462 2452 2463 {//Expression 2453 uint start1 89= position;2464 uint start191 = position; 2454 2465 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)){ 2455 2466 clearErrors(); 2456 2467 goto match205; 2457 2468 }else{ 2458 position = start1 89;2469 position = start191; 2459 2470 goto mismatch206; 2460 2471 } … … 2465 2476 return passed; 2466 2477 mismatch206: 2467 position = start1 88;2478 position = start190; 2468 2479 ResultT!(BaseClassDirective) failed = ResultT!(BaseClassDirective)(); 2469 2480 return failed; … … 2479 2490 public ResultT!(ClassnameDirective) parse_ClassnameDirective(){ 2480 2491 debug writefln("parse_ClassnameDirective()"); 2481 uint start19 0= position;2492 uint start192 = position; 2482 2493 String bind_name; 2483 2494 2484 2495 2485 2496 {//Expression 2486 uint start19 1= position;2497 uint start193 = position; 2487 2498 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)){ 2488 2499 clearErrors(); 2489 2500 goto match207; 2490 2501 }else{ 2491 position = start19 1;2502 position = start193; 2492 2503 goto mismatch208; 2493 2504 } … … 2498 2509 return passed; 2499 2510 mismatch208: 2500 position = start19 0;2511 position = start192; 2501 2512 ResultT!(ClassnameDirective) failed = ResultT!(ClassnameDirective)(); 2502 2513 return failed; … … 2512 2523 public ResultT!(DefineDirective) parse_DefineDirective(){ 2513 2524 debug writefln("parse_DefineDirective()"); 2514 uint start19 2= position;2525 uint start194 = position; 2515 2526 String bind_returnType; 2516 2527 String bind_name; … … 2520 2531 2521 2532 {//Expression 2522 uint start19 3= position;2533 uint start195 = position; 2523 2534 if(!(terminal("define").success)){ 2524 2535 goto mismatch212; … … 2565 2576 {//OptionalExpr 2566 2577 {//Expression 2567 uint start19 5= position;2578 uint start197 = position; 2568 2579 if((terminal(",").success && parse_WS().success && parse_DirectiveArg().assign!(String)(bind_description) && parse_WS().success)){ 2569 2580 clearErrors(); 2570 2581 }else{ 2571 position = start19 5;2582 position = start197; 2572 2583 } 2573 2584 } … … 2585 2596 mismatch212: 2586 2597 {/*do nothing*/} 2587 position = start19 3;2598 position = start195; 2588 2599 goto mismatch210; 2589 2600 match211: … … 2596 2607 return passed; 2597 2608 mismatch210: 2598 position = start19 2;2609 position = start194; 2599 2610 ResultT!(DefineDirective) failed = ResultT!(DefineDirective)(); 2600 2611 return failed; … … 2610 2621 public ResultT!(IncludeDirective) parse_IncludeDirective(){ 2611 2622 debug writefln("parse_IncludeDirective()"); 2612 uint start19 6= position;2623 uint start198 = position; 2613 2624 String bind_filename; 2614 2625 2615 2626 2616 2627 {//Expression 2617 uint start19 7= position;2628 uint start199 = position; 2618 2629 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)){ 2619 2630 clearErrors(); 2620 2631 goto match213; 2621 2632 }else{ 2622 position = start19 7;2633 position = start199; 2623 2634 goto mismatch214; 2624 2635 } … … 2629 2640 return passed; 2630 2641 mismatch214: 2631 position = start19 6;2642 position = start198; 2632 2643 ResultT!(IncludeDirective) failed = ResultT!(IncludeDirective)(); 2633 2644 return failed; … … 2643 2654 public ResultT!(AliasDirective) parse_AliasDirective(){ 2644 2655 debug writefln("parse_AliasDirective()"); 2645 uint start 198= position;2656 uint start200 = position; 2646 2657 String bind_rule; 2647 2658 String bind_ruleAlias; … … 2649 2660 2650 2661 {//Expression 2651 uint start 199= position;2662 uint start201 = position; 2652 2663 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)){ 2653 2664 clearErrors(); 2654 2665 goto match215; 2655 2666 }else{ 2656 position = start 199;2667 position = start201; 2657 2668 goto mismatch216; 2658 2669 } … … 2663 2674 return passed; 2664 2675 mismatch216: 2665 position = start 198;2676 position = start200; 2666 2677 ResultT!(AliasDirective) failed = ResultT!(AliasDirective)(); 2667 2678 return failed; … … 2677 2688 public ResultT!(ModuleDirective) parse_ModuleDirective(){ 2678 2689 debug writefln("parse_ModuleDirective()"); 2679 uint start20 0= position;2690 uint start202 = position; 2680 2691 String bind_moduleName; 2681 2692 2682 2693 2683 2694 {//Expression 2684 uint start20 1= position;2695 uint start203 = position; 2685 2696 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)){ 2686 2697 clearErrors(); 2687 2698 goto match217; 2688 2699 }else{ 2689 position = start20 1;2700 position = start203; 2690 2701 goto mismatch218; 2691 2702 } … … 2696 2707 return passed; 2697 2708 mismatch218: 2698 position = start20 0;2709 position = start202; 2699 2710 ResultT!(ModuleDirective) failed = ResultT!(ModuleDirective)(); 2700 2711 return failed; … … 2710 2721 public ResultT!(CodeDirective) parse_CodeDirective(){ 2711 2722 debug writefln("parse_CodeDirective()"); 2712 uint start20 2= position;2723 uint start204 = position; 2713 2724 String bind_code; 2714 2725 2715 2726 2716 2727 {//Expression 2717 uint start20 3= position;2728 uint start205 = position; 2718 2729 if(!(terminal("code").success)){ 2719 2730 goto mismatch222; … … 2726 2737 } 2727 2738 {//ZeroOrMoreExpr 2728 uint start20 4= position;2729 uint termPos20 5;2739 uint start206 = position; 2740 uint termPos207; 2730 2741 loop223: 2731 termPos20 5= position;2742 termPos207 = position; 2732 2743 if(terminal("}}}").success){ 2733 2744 goto loopend224; … … 2737 2748 exprStart225: 2738 2749 {//Expression 2739 uint start20 6= position;2750 uint start208 = position; 2740 2751 if((parse_any().success)){ 2741 2752 clearErrors(); … … 2743 2754 }else{ 2744 2755 setError("Expected any."); 2745 position = start20 6;2756 position = start208; 2746 2757 goto loopend224; 2747 2758 } 2748 2759 } 2749 2760 loopend224: 2750 smartAssign!(String,String)(bind_code,sliceData(start20 4,termPos205));2761 smartAssign!(String,String)(bind_code,sliceData(start206,termPos207)); 2751 2762 {/*do nothing*/} 2752 2763 } … … 2754 2765 mismatch222: 2755 2766 {/*do nothing*/} 2756 position = start20 3;2767 position = start205; 2757 2768 goto mismatch220; 2758 2769 match221: … … 2765 2776 return passed; 2766 2777 mismatch220: 2767 position = start20 2;2778 position = start204; 2768 2779 ResultT!(CodeDirective) failed = ResultT!(CodeDirective)(); 2769 2780 return failed; … … 2779 2790 public ResultT!(TypelibDirective) parse_TypelibDirective(){ 2780 2791 debug writefln("parse_TypelibDirective()"); 2781 uint start20 7= position;2792 uint start209 = position; 2782 2793 String bind_importName; 2783 2794 2784 2795 2785 2796 {//Expression 2786 uint start2 08= position;2797 uint start210 = position; 2787 2798 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)){ 2788 2799 clearErrors(); 2789 2800 goto match226; 2790 2801 }else{ 2791 position = start2 08;2802 position = start210; 2792 2803 goto mismatch227; 2793 2804 } … … 2798 2809 return passed; 2799 2810 mismatch227: 2800 position = start20 7;2811 position = start209; 2801 2812 ResultT!(TypelibDirective) failed = ResultT!(TypelibDirective)(); 2802 2813 return failed; … … 2812 2823 public ResultT!(ParseTypeDirective) parse_ParseTypeDirective(){ 2813 2824 debug writefln("parse_ParseTypeDirective()"); 2814 uint start2 09= position;2825 uint start211 = position; 2815 2826 String bind_typeName; 2816 2827 2817 2828 2818 2829 {//Expression 2819 uint start21 0= position;2830 uint start212 = position; 2820 2831 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)){ 2821 2832 clearErrors(); 2822 2833 goto match228; 2823 2834 }else{ 2824 position = start21 0;2835 position = start212; 2825 2836 goto mismatch229; 2826 2837 } … … 2831 2842 return passed; 2832 2843 mismatch229: 2833 position = start2 09;2844 position = start211; 2834 2845 ResultT!(ParseTypeDirective) failed = ResultT!(ParseTypeDirective)(); 2835 2846 return failed; … … 2845 2856 public ResultT!(BoilerplateDirective) parse_BoilerplateDirective(){ 2846 2857 debug writefln("parse_BoilerplateDirective()"); 2847 uint start21 1= position;2858 uint start213 = position; 2848 2859 String bind_code; 2849 2860 2850 2861 2851 2862 {//Expression 2852 uint start21 2= position;2863 uint start214 = position; 2853 2864 if(!(terminal("boilerplate").success)){ 2854 2865 goto mismatch233; … … 2861 2872 } 2862 2873 {//ZeroOrMoreExpr 2863 uint start21 3= position;2864 uint termPos21 4;2874 uint start215 = position; 2875 uint termPos216; 2865 2876 loop234: 2866 termPos21 4= position;2877 termPos216 = position; 2867 2878 if(terminal("}}}").success){ 2868 2879 goto loopend235; … … 2872 2883 exprStart236: 2873 2884 {//Expression 2874 uint start21 5= position;2885 uint start217 = position; 2875 2886 if((parse_any().success)){ 2876 2887 clearErrors(); … … 2878 2889 }else{ 2879 2890 setError("Expected any."); 2880 position = start21 5;2891 position = start217; 2881 2892 goto loopend235; 2882 2893 } 2883 2894 } 2884 2895 loopend235: 2885 smartAssign!(String,String)(bind_code,sliceData(start21 3,termPos214));2896 smartAssign!(String,String)(bind_code,sliceData(start215,termPos216)); 2886 2897 {/*do nothing*/} 2887 2898 } … … 2889 2900 mismatch233: 2890 2901 {/*do nothing*/} 2891 position = start21 2;2902 position = start214; 2892 2903 goto mismatch231; 2893 2904 match232: … … 2900 2911 return passed; 2901 2912 mismatch231: 2902 position = start21 1;2913 position = start213; 2903 2914 ResultT!(BoilerplateDirective) failed = ResultT!(BoilerplateDirective)(); 2904 2915 return failed; … … 2914 2925 public ResultT!(HeaderDirective) parse_HeaderDirective(){ 2915 2926 debug writefln("parse_HeaderDirective()"); 2916 uint start21 6= position;2927 uint start218 = position; 2917 2928 String bind_code; 2918 2929 2919 2930 &
