Changeset 1140

Show
Ignore:
Timestamp:
04/30/08 15:48:08 (6 months ago)
Author:
asterite
Message:

Removed a System.arrayCopy from lexer to improve memory performance. Avoided some arrays creations for storing line ends.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/descent.core/src/descent/core/dom/ASTParser.java

    r1105 r1140  
    873873                            this.compilerOptions, 
    874874                            this.workingCopyOwner, 
     875                            true, 
    875876                            this.statementsRecovery, 
    876877                            monitor); 
     
    880881                            sourceUnit, 
    881882                            this.compilerOptions, 
     883                            true, 
    882884                            this.statementsRecovery, 
    883885                            false); 
     
    890892                            sourceUnit, 
    891893                            this.compilerOptions, 
     894                            true, 
    892895                            this.statementsRecovery, 
    893896                            false); 
     
    954957                for(Statement statement : ((Block) result).statements()) { 
    955958                    statement.accept(new GenericVisitor() { 
     959                        @Override 
    956960                        protected boolean visitNode(ASTNode node) { 
    957961                            node.setSourceRange(node.getStartPosition() - 1, node.getLength()); 
  • trunk/descent.core/src/descent/core/dom/CompilationUnitResolver.java

    r1136 r1140  
    1414import java.util.Map; 
    1515 
    16 import org.eclipse.core.resources.ResourcesPlugin; 
    1716import org.eclipse.core.runtime.IProgressMonitor; 
    1817 
    1918import descent.core.ICompilationUnit; 
    20 import descent.core.IJavaModel; 
    2119import descent.core.IJavaProject; 
    2220import descent.core.IPackageFragmentRoot; 
     
    113111            descent.internal.compiler.env.ICompilationUnit sourceUnit, 
    114112            Map options,  
     113            boolean recordLineSeparator, 
    115114            boolean statementsRecovery, 
    116115            boolean diet) { 
    117116         
    118         return parse(apiLevel, sourceUnit.getContents(), sourceUnit.getFileName(), options, statementsRecovery, diet); 
     117        return parse(apiLevel, sourceUnit.getContents(), sourceUnit.getFileName(), options, recordLineSeparator, statementsRecovery, diet); 
    119118    } 
    120119     
     
    122121            char[] source, 
    123122            char[] filename,  
    124             Map options,  
     123            Map options, 
     124            boolean recordLineSeparator, 
    125125            boolean statementsRecovery, 
    126126            boolean diet) { 
     
    160160            Map options, 
    161161            WorkingCopyOwner owner, 
     162            boolean recordLineSeparator, 
    162163            boolean statementsRecovery, 
    163164            IProgressMonitor monitor) throws JavaModelException { 
    164165         
    165         ParseResult result = parse(apiLevel, sourceUnit, options, statementsRecovery, false); 
     166        ParseResult result = parse(apiLevel, sourceUnit, options, recordLineSeparator, statementsRecovery, false); 
    166167        result.module.moduleName = sourceUnit.getFullyQualifiedName(); 
    167168        result.context = resolve(result.module, javaProject, owner); 
  • trunk/descent.core/src/descent/internal/codeassist/EvaluationEngine.java

    r1091 r1140  
    6565         
    6666        try { 
    67             ParseResult parseResult = CompilationUnitResolver.resolve(Util.getApiLevel(this.compilerOptions.getMap()), sourceUnit, javaProject, settings, owner, true, null); 
     67            ParseResult parseResult = CompilationUnitResolver.resolve(Util.getApiLevel(this.compilerOptions.getMap()), sourceUnit, javaProject, settings, owner, false, true, null); 
    6868             
    6969            context = parseResult.context; 
     
    8282        if (result == null) { 
    8383            if (node.isConst() && isInRange(node.ident)) {  
    84                 evalInit((Initializer) node.init); 
    85             } else if (isInRange((Initializer) node.sourceInit)) { 
     84                evalInit(node.init); 
     85            } else if (isInRange(node.sourceInit)) { 
    8686                node.sourceInit.accept(this); 
    8787            } 
     
    126126        } else if (init.isExpInitializer() != null) { 
    127127            ExpInitializer expInit = (ExpInitializer) init; 
    128             evalExp((Expression) expInit.exp); 
     128            evalExp(expInit.exp); 
    129129        } 
    130130    } 
     
    195195     
    196196    private void evalReal(RealExp exp) { 
    197         real_t value = ((RealExp) exp).value; 
     197        real_t value = (exp).value; 
    198198        switch(exp.type.ty) { 
    199199        case Tfloat32: 
  • trunk/descent.core/src/descent/internal/compiler/SourceElementParser.java

    r1128 r1140  
    5151    public ISourceElementRequestor requestor; 
    5252    protected Module module; 
    53     private CompilerOptions options; 
    54     private NaiveASTFlattener flattener; 
    55     private Stack< Stack<AttribDeclaration> > attribDeclarationStack; 
    56     private ASTNodeEncoder astNodeEncoder; 
     53    private final CompilerOptions options; 
     54    private final NaiveASTFlattener flattener; 
     55    private final Stack< Stack<AttribDeclaration> > attribDeclarationStack; 
     56    private final ASTNodeEncoder astNodeEncoder; 
    5757    private char[] source; 
    5858     
    5959    public boolean diet = true; 
     60    public boolean recordLineSeparator = false; 
    6061 
    6162    /** 
     
    9596        source = unit.getContents(); 
    9697         
    97         module = CompilationUnitResolver.parse(getASTlevel(), unit, options.getMap(), true, diet).module; 
     98        module = CompilationUnitResolver.parse(getASTlevel(), unit, options.getMap(), recordLineSeparator, true, diet).module; 
    9899         
    99100        module.moduleName = unit.getFullyQualifiedName(); 
     
    360361    } 
    361362     
     363    @Override 
    362364    public boolean visit(ClassDeclaration node) { 
    363365        if (node.templated) { 
     
    370372    } 
    371373     
     374    @Override 
    372375    public boolean visit(InterfaceDeclaration node) { 
    373376        if (node.templated) { 
     
    380383    } 
    381384     
     385    @Override 
    382386    public boolean visit(ModuleDeclaration node) { 
    383387        requestor.acceptPackage(startOfDeclaration(node), endOfDeclaration(node), node.getFQN()); 
     
    386390    } 
    387391     
     392    @Override 
    388393    public boolean visit(StructDeclaration node) { 
    389394        if (node.templated) { 
     
    396401    } 
    397402     
     403    @Override 
    398404    public boolean visit(UnionDeclaration node) { 
    399405        if (node.templated) { 
     
    406412    } 
    407413     
     414    @Override 
    408415    public boolean visit(TemplateDeclaration node) { 
    409416        // TODO Java -> D 
    410417        if (node.wrapper) { 
    411             Dsymbol wrappedSymbol = (Dsymbol) node.members.get(0); // SEMANTIC 
     418            Dsymbol wrappedSymbol = node.members.get(0); // SEMANTIC 
    412419            if (wrappedSymbol.getNodeType() == ASTDmdNode.FUNC_DECLARATION) { 
    413420                visit((FuncDeclaration) wrappedSymbol, node); 
     
    476483    } 
    477484 
     485    @Override 
    478486    public boolean visit(FuncDeclaration node) { 
    479487        if (!node.templated) { 
     
    512520    } 
    513521     
     522    @Override 
    514523    public boolean visit(CtorDeclaration node) { 
    515524        visit(node, Flags.AccConstructor, node.arguments, Id.ctor); 
     
    518527    } 
    519528     
     529    @Override 
    520530    public boolean visit(DtorDeclaration node) { 
    521531        visit(node, Flags.AccDestructor, null, Id.dtor); 
     
    524534    } 
    525535     
     536    @Override 
    526537    public boolean visit(NewDeclaration node) { 
    527538        visit(node, Flags.AccNew, node.arguments, Id.classNew); 
     
    530541    } 
    531542     
     543    @Override 
    532544    public boolean visit(DeleteDeclaration node) { 
    533545        visit(node, Flags.AccDelete, node.arguments, Id.classDelete); 
     
    536548    } 
    537549     
     550    @Override 
    538551    public boolean visit(StaticCtorDeclaration node) { 
    539552        requestor.enterInitializer(startOfDeclaration(node), getFlags(node, node.modifiers), CharOperation.NO_CHAR); 
     
    542555    } 
    543556     
     557    @Override 
    544558    public boolean visit(StaticDtorDeclaration node) { 
    545559        requestor.enterInitializer(startOfDeclaration(node), getFlags(node, node.modifiers) | Flags.AccStaticDestructor, CharOperation.NO_CHAR); 
     
    548562    } 
    549563     
     564    @Override 
    550565    public boolean visit(InvariantDeclaration node) { 
    551566        requestor.enterInitializer(startOfDeclaration(node), getFlags(node, node.modifiers) | Flags.AccInvariant, CharOperation.NO_CHAR); 
     
    554569    } 
    555570     
     571    @Override 
    556572    public boolean visit(UnitTestDeclaration node) { 
    557573        requestor.enterInitializer(startOfDeclaration(node), getFlags(node, node.modifiers) | Flags.AccUnitTest, CharOperation.NO_CHAR); 
     
    560576    } 
    561577     
     578    @Override 
    562579    public boolean visit(VarDeclaration node) { 
    563580        VarDeclaration last = node; 
     
    585602    } 
    586603     
     604    @Override 
    587605    public boolean visit(AliasDeclaration node) { 
    588606        AliasDeclaration last = node; 
     
    610628    } 
    611629     
     630    @Override 
    612631    public boolean visit(TypedefDeclaration node) { 
    613632        TypedefDeclaration last = node; 
     
    635654    } 
    636655     
     656    @Override 
    637657    public boolean visit(StaticAssert node) { 
    638658        requestor.enterInitializer(startOfDeclaration(node), getFlags(node, node.modifiers) | Flags.AccStaticAssert, astNodeEncoder.encodeExpression(node.exp)); 
     
    640660    } 
    641661     
     662    @Override 
    642663    public boolean visit(DebugSymbol node) { 
    643664        requestor.enterInitializer(startOfDeclaration(node), getFlags(node, node.modifiers) | Flags.AccDebugAssignment, node.version.value); 
     
    645666    } 
    646667 
     668    @Override 
    647669    public boolean visit(VersionSymbol node) { 
    648670        requestor.enterInitializer(startOfDeclaration(node), getFlags(node, node.modifiers) | Flags.AccVersionAssignment, node.version.value); 
     
    650672    } 
    651673     
     674    @Override 
    652675    public boolean visit(AlignDeclaration node) { 
    653676        requestor.enterInitializer(startOfDeclaration(node), getFlags(node, node.modifiers) | Flags.AccAlign, node.salign == 0 ? CharOperation.NO_CHAR : String.valueOf(node.salign).toCharArray()); 
     
    656679    } 
    657680     
     681    @Override 
    658682    public boolean visit(LinkDeclaration node) { 
    659683        char[] id = null; 
     
    672696    } 
    673697     
     698    @Override 
    674699    public boolean visit(PragmaDeclaration node) { 
    675700        StringBuilder sb = new StringBuilder(); 
     
    688713    } 
    689714     
     715    @Override 
    690716    public boolean visit(EnumDeclaration node) { 
    691717        // TODO Java -> D 
     
    712738    } 
    713739     
     740    @Override 
    714741    public boolean visit(EnumMember node) { 
    715742        FieldInfo info = new FieldInfo(); 
     
    731758    } 
    732759     
     760    @Override 
    733761    public boolean visit(TemplateMixin node) { 
    734762        FieldInfo info = new FieldInfo(); 
     
    753781    } 
    754782     
     783    @Override 
    755784    public boolean visit(CompileDeclaration node) { 
    756785        requestor.enterInitializer(startOf(node), getFlags(node, node.modifiers) | Flags.AccMixin, astNodeEncoder.encodeExpression(node.exp)); 
     
    758787    } 
    759788     
     789    @Override 
    760790    public boolean visit(ConditionalDeclaration node) { 
    761791        char[] displayString = CharOperation.NO_CHAR;; 
     
    817847    } 
    818848     
     849    @Override 
    819850    public boolean visit(Import node) { 
    820851        if (!node.first) { 
     
    903934    } 
    904935 
     936    @Override 
    905937    public boolean visit(ProtDeclaration node) { 
    906938        pushAttribDeclaration(node); 
     
    908940    } 
    909941     
     942    @Override 
    910943    public boolean visit(StorageClassDeclaration node) { 
    911944        pushAttribDeclaration(node); 
     
    913946    } 
    914947     
     948    @Override 
    915949    public boolean visit(DeclarationStatement node) { 
    916         Dsymbol dsymbol = (Dsymbol) ((DeclarationExp) node.sourceExp).declaration; // SEMANTIC 
     950        Dsymbol dsymbol = ((DeclarationExp) node.sourceExp).declaration; // SEMANTIC 
    917951        switch(dsymbol.getNodeType()) { 
    918952        case ASTDmdNode.ENUM_DECLARATION: 
     
    943977    // ------------------------------------------------------------------------  
    944978     
     979    @Override 
    945980    public void endVisit(ModuleDeclaration node) { 
    946981        popLevelInAttribDeclarationStack(); 
    947982    } 
    948983 
     984    @Override 
    949985    public void endVisit(ClassDeclaration node) { 
    950986        if (node.templated) { 
     
    956992    } 
    957993     
     994    @Override 
    958995    public void endVisit(InterfaceDeclaration node) { 
    959996        if (node.templated) { 
     
    9651002    } 
    9661003     
     1004    @Override 
    9671005    public void endVisit(StructDeclaration node) { 
    9681006        if (node.templated) { 
     
    9741012    } 
    9751013     
     1014    @Override 
    9761015    public void endVisit(UnionDeclaration node) { 
    9771016        if (node.templated) { 
     
    9831022    } 
    9841023     
     1024    @Override 
    9851025    public void endVisit(TemplateDeclaration node) { 
    9861026        if (node.postComment != null) { 
     
    9941034    } 
    9951035     
     1036    @Override 
    9961037    public void endVisit(FuncDeclaration node) { 
    9971038        if (node.templated) { 
     
    10031044    } 
    10041045     
     1046    @Override 
    10051047    public void endVisit(CtorDeclaration node) { 
    10061048        requestor.exitConstructor(endOfDeclaration(node)); 
     
    10081050    } 
    10091051 
     1052    @Override 
    10101053    public void endVisit(DtorDeclaration node) { 
    10111054        requestor.exitConstructor(endOfDeclaration(node)); 
     
    10131056    } 
    10141057 
     1058    @Override 
    10151059    public void endVisit(NewDeclaration node) { 
    10161060        requestor.exitConstructor(endOfDeclaration(node)); 
     
    10181062    } 
    10191063 
     1064    @Override 
    10201065    public void endVisit(DeleteDeclaration node) { 
    10211066        requestor.exitConstructor(endOfDeclaration(node)); 
     
    10231068    } 
    10241069     
     1070    @Override 
    10251071    public void endVisit(StaticCtorDeclaration node) { 
    10261072        requestor.exitInitializer(endOfDeclaration(node)); 
     
    10281074    } 
    10291075 
     1076    @Override 
    10301077    public void endVisit(StaticDtorDeclaration node) { 
    10311078        requestor.exitInitializer(endOfDeclaration(node)); 
     
    10331080    } 
    10341081 
     1082    @Override 
    10351083    public void endVisit(InvariantDeclaration node) { 
    10361084        requestor.exitInitializer(endOfDeclaration(node)); 
     
    10381086    } 
    10391087 
     1088    @Override 
    10401089    public void endVisit(UnitTestDeclaration node) { 
    10411090        requestor.exitInitializer(endOfDeclaration(node)); 
     
    10431092    } 
    10441093     
     1094    @Override 
    10451095    public void endVisit(VarDeclaration node) { 
    10461096        VarDeclaration last = node; 
     
    10491099        } 
    10501100         
    1051         int initializerStart = node.sourceInit == null ? - 1 : startOf((ASTDmdNode) node.sourceInit); // SEMANTIC 
     1101        int initializerStart = node.sourceInit == null ? - 1 : startOf(node.sourceInit); // SEMANTIC 
    10521102        int declarationSourceEnd = endOf(last); 
    10531103        int declarationEnd = endOfDeclaration(node.ident); 
     
    10561106    } 
    10571107     
     1108    @Override 
    10581109    public void endVisit(AliasDeclaration node) { 
    10591110        AliasDeclaration last = node; 
     
    10691120    } 
    10701121 
     1122    @Override 
    10711123    public void endVisit(TypedefDeclaration node) { 
    10721124        TypedefDeclaration last = node; 
     
    10821134    } 
    10831135     
     1136    @Override 
    10841137    public void endVisit(StaticAssert node) { 
    10851138        requestor.exitInitializer(endOfDeclaration(node)); 
    10861139    } 
    10871140 
     1141    @Override 
    10881142    public void endVisit(DebugSymbol node) { 
    10891143        requestor.exitInitializer(endOfDeclaration(node)); 
    10901144    } 
    10911145 
     1146    @Override 
    10921147    public void endVisit(VersionSymbol node) { 
    10931148        requestor.exitInitializer(endOfDeclaration(node)); 
    10941149    } 
    10951150 
     1151    @Override 
    10961152    public void endVisit(AlignDeclaration node) { 
    10971153        requestor.exitInitializer(endOfDeclaration(node)); 
     
    10991155    } 
    11001156 
     1157    @Override 
    11011158    public void endVisit(LinkDeclaration node) { 
    11021159        requestor.exitInitializer(endOfDeclaration(node)); 
     
    11041161    } 
    11051162 
     1163    @Override 
    11061164    public void endVisit(PragmaDeclaration node) { 
    11071165        requestor.exitInitializer(endOfDeclaration(node)); 
     
    11091167    } 
    11101168 
     1169    @Override 
    11111170    public void endVisit(EnumDeclaration node) { 
    11121171        requestor.exitType(endOfDeclaration(node)); 
     
    11141173    } 
    11151174 
     1175    @Override 
    11161176    public void endVisit(EnumMember node) { 
    11171177        int initializerStart = node.value == null ? - 1 : startOf(node.value); 
     
    11221182    } 
    11231183 
     1184    @Override 
    11241185    public void endVisit(TemplateMixin node) { 
    11251186        int declarationSourceEnd = endOfDeclaration(node); 
     
    11291190    } 
    11301191 
     1192    @Override 
    11311193    public void endVisit(CompileDeclaration node) { 
    11321194        requestor.exitInitializer(endOfDeclaration(node)); 
    11331195    } 
    11341196     
     1197    @Override 
    11351198    public void endVisit(ConditionalDeclaration node) { 
    11361199        requestor.exitConditional(endOfDeclaration(node)); 
     
    11441207    } 
    11451208     
     1209    @Override 
    11461210    public void endVisit(Import node) { 
    11471211        if (!node.first) { 
     
    11521216    } 
    11531217     
     1218    @Override 
    11541219    public void endVisit(ProtDeclaration node) { 
    11551220        popAttribDeclaration(); 
    11561221    } 
    11571222 
     1223    @Override 
    11581224    public void endVisit(StorageClassDeclaration node) { 
    11591225        popAttribDeclaration(); 
     
    11711237    // ------------------------------------------------------------------------ 
    11721238 
     1239    @Override 
    11731240    public boolean visit(ASTNode node) { 
    11741241        return false; 
    11751242    } 
    11761243 
     1244    @Override 
    11771245    public boolean visit(ASTDmdNode node) { 
    11781246        return false; 
    11791247    } 
    11801248 
     1249    @Override 
    11811250    public boolean visit(AddAssignExp node) { 
    11821251        return false; 
    11831252    } 
    11841253 
     1254    @Override 
    11851255    public boolean visit(AddExp node) { 
    11861256        return false; 
    11871257    } 
    11881258 
     1259    @Override 
    11891260    public boolean visit(AddrExp node) { 
    11901261        return false; 
    11911262    } 
    11921263 
     1264    @Override 
    11931265    public boolean visit(AggregateDeclaration node) { 
    11941266        return false; 
    11951267    } 
    11961268 
     1269    @Override 
    11971270    public boolean visit(AndAndExp node) { 
    11981271        return false; 
    11991272    } 
    12001273 
     1274    @Override 
    12011275    public boolean visit(AndAssignExp node) { 
    12021276        return false; 
    12031277    } 
    12041278 
     1279    @Override 
    12051280    public boolean visit(AndExp node) { 
    12061281        return false; 
    12071282    } 
    12081283 
     1284    @Override 
    12091285    public boolean visit(AnonDeclaration node) { 
    12101286        TypeInfo info = new TypeInfo(); 
     
    12241300    } 
    12251301 
     1302    @Override 
    12261303    public boolean visit(AnonymousAggregateDeclaration node) { 
    12271304        return false; 
    12281305    } 
    12291306 
     1307    @Override 
    12301308    public boolean visit(Argument node) { 
    12311309        return false; 
    12321310    } 
    12331311 
     1312    @Override 
    12341313    public boolean visit(ArrayExp node) { 
    12351314        return false; 
    12361315    } 
    12371316 
     1317    @Override 
    12381318    public boolean visit(ArrayInitializer node) { 
    12391319        return false; 
    12401320    } 
    12411321     
     1322    @Override 
    12421323    public boolean visit(ArrayLengthExp node) { 
    12431324        return false; 
    12441325    } 
    12451326 
     1327    @Override 
    12461328    public boolean visit(ArrayLiteralExp node) { 
    12471329        return false; 
    12481330    } 
    12491331 
     1332    @Override 
    12501333    public boolean visit(ArrayScopeSymbol node) { 
    12511334        return false; 
    12521335    } 
    12531336 
     1337    @Override 
    12541338    public boolean visit(AsmBlock node) { 
    12551339        return false; 
    12561340    } 
    12571341 
     1342    @Override 
    12581343    public boolean visit(AsmStatement node) { 
    12591344        return false; 
    12601345    } 
    12611346 
     1347    @Override 
    12621348    public boolean visit(AssertExp node) { 
    12631349        return false; 
    12641350    } 
    12651351 
     1352    @Override 
    12661353    public boolean visit(AssignExp node) { 
    12671354        return false; 
    12681355    } 
    12691356 
     1357    @Override 
    12701358    public boolean visit(AssocArrayLiteralExp node) { 
    12711359        return false; 
    12721360    } 
    12731361 
     1362    @Override 
    12741363    public boolean visit(AttribDeclaration node) { 
    12751364        return false; 
    12761365    } 
    12771366 
     1367    @Override 
    12781368    public boolean visit(BaseClass node) { 
    12791369        return false; 
    12801370    } 
    12811371 
     1372    @Override 
    12821373    public boolean visit(BinExp node) { 
    12831374        return false; 
    12841375    } 
    12851376 
     1377    @Override 
    12861378    public boolean visit(BoolExp node) { 
    12871379        return false; 
    12881380    } 
    12891381 
     1382    @Override 
    12901383    public boolean visit(BreakStatement node) { 
    12911384        return false; 
    12921385    } 
    12931386 
     1387    @Override 
    12941388    public boolean visit(CallExp node) { 
    12951389        return false; 
    12961390    } 
    12971391 
     1392    @Override 
    12981393    public boolean visit(CaseStatement node) { 
    12991394        return true; 
    13001395    } 
    13011396 
     1397    @Override 
    13021398    public boolean visit(CastExp node) { 
    13031399        return false; 
    13041400    } 
    13051401 
     1402    @Override 
    13061403    public boolean visit(CatAssignExp node) { 
    13071404        return false; 
    13081405    } 
    13091406 
     1407    @Override 
    13101408    public boolean visit(Catch node) { 
    13111409        return true; 
    13121410    } 
    13131411 
     1412    @Override 
    13141413    public boolean visit(CatExp node) { 
    13151414        return false; 
    13161415    } 
    13171416 
     1417    @Override 
    13181418    public boolean visit(ClassInfoDeclaration node) { 
    13191419        return false; 
    13201420    } 
    13211421 
     1422    @Override 
    13221423    public boolean visit(CmpExp node) { 
    13231424        return false; 
    13241425    } 
    13251426 
     1427    @Override 
    13261428    public boolean visit(ComExp node) { 
    13271429        return false; 
    13281430    } 
    13291431 
     1432    @Override 
    13301433    public boolean visit(CommaExp node) { 
    13311434        return false; 
    13321435    } 
    13331436 
     1437    @Override 
    13341438    public boolean visit(CompileExp node) { 
    13351439        return false; 
    13361440    } 
    13371441 
     1442    @Override 
    13381443    public boolean visit(CompileStatement node) { 
    13391444        return false; 
    13401445    } 
    13411446 
     1447    @Override 
    13421448    public boolean visit(ComplexExp node) { 
    13431449        return false; 
    13441450    } 
    13451451 
     1452    @Override 
    13461453    public boolean visit(CompoundStatement node) { 
    13471454        return true; 
    13481455    } 
    13491456 
     1457    @Override 
    13501458    public boolean visit(CondExp node) { 
    13511459        return false; 
    13521460    } 
    13531461 
     1462    @Override 
    13541463    public boolean visit(Condition node) { 
    13551464        return false; 
    13561465    } 
    13571466 
     1467    @Override 
    13581468    public boolean visit(ConditionalStatement node) { 
    13591469        return true; 
    13601470    } 
    13611471 
     1472    @Override 
    13621473    public boolean visit(ContinueStatement node) { 
    13631474        return false; 
    13641475    } 
    13651476 
     1477    @Override 
    13661478    public boolean visit(DebugCondition node) { 
    13671479        return false; 
    13681480    } 
    13691481 
     1482    @Override 
    13701483    public boolean visit(Declaration node) { 
    13711484        return false; 
    13721485    } 
    13731486 
     1487    @Override 
    13741488    public boolean visit(DeclarationExp node) { 
    13751489        return false; 
    13761490    } 
    13771491 
     1492    @Override 
    13781493    public boolean visit(DefaultStatement node) { 
    13791494        return true; 
    13801495    } 
    13811496 
     1497    @Override 
    13821498    public boolean visit(DelegateExp node) { 
    13831499        return false; 
    13841500    } 
    13851501 
     1502    @Override 
    13861503    public boolean visit(DeleteExp node) { 
    13871504        return false; 
    13881505    } 
    13891506 
     1507    @Override 
    13901508    public boolean visit(DivAssignExp node) { 
    13911509        return false; 
    13921510    } 
    13931511 
     1512    @Override 
    13941513    public boolean visit(DivExp node) { 
    13951514        return false; 
    13961515    } 
    13971516 
     1517    @Override 
    13981518    public boolean visit(DollarExp node) { 
    13991519        return false; 
    14001520    } 
    14011521 
     1522    @Override 
    14021523    public boolean visit(DoStatement node) { 
    14031524        return true; 
    14041525    } 
    14051526 
     1527    @Override 
    14061528    public boolean visit(DotExp node) { 
    14071529        return false; 
    14081530    } 
    14091531 
     1532    @Override 
    14101533    public boolean visit(DotIdExp node) { 
    14111534        return false; 
    14121535    } 
    14131536 
     1537    @Override 
    14141538    public boolean visit(DotTemplateExp node) { 
    14151539        return false; 
    14161540    } 
    14171541 
     1542    @Override 
    14181543    public boolean visit(DotTemplateInstanceExp node) { 
    14191544        return false; 
    14201545    } 
    14211546 
     1547    @Override 
    14221548    public boolean visit(DotTypeExp node) { 
    14231549        return false; 
    14241550    } 
    14251551 
     1552    @Override 
    14261553    public boolean visit(DotVarExp node) { 
    14271554        return false; 
    14281555    } 
    14291556 
     1557    @Override 
    14301558    public boolean visit(Dsymbol node) { 
    14311559        return false; 
    14321560    } 
    14331561 
     1562    @Override 
    14341563    public boolean visit(DsymbolExp node) { 
    14351564        return false; 
    14361565    } 
    14371566 
     1567    @Override 
    14381568    public boolean visit(EqualExp node) { 
    14391569        return false; 
    14401570    } 
    14411571 
     1572    @Override 
    14421573    public boolean visit(ExpInitializer node) { 
    14431574        return false; 
    14441575    } 
    14451576 
     1577    @Override 
    14461578    public boolean visit(Expression node) { 
    14471579        return false; 
    14481580    } 
    14491581 
     1582    @Override 
    14501583    public boolean visit(ExpStatement node) { 
    14511584        return false; 
    14521585    } 
    14531586 
     1587    @Override 
    14541588    public boolean visit(FileExp node) { 
    14551589        return false; 
    14561590    } 
    14571591 
     1592    @Override 
    14581593    public boolean visit(ForeachRangeStatement node) { 
    14591594        return true; 
    14601595    } 
    14611596 
     1597    @Override 
    14621598    public boolean visit(ForeachStatement node) { 
    14631599        return true; 
    14641600    } 
    14651601 
     1602    @Override 
    14661603    public boolean visit(ForStatement node) { 
    14671604        return true; 
    14681605    } 
    14691606 
     1607    @Override 
    14701608    public boolean visit(FuncAliasDeclaration node) { 
    14711609        return false; 
    14721610    } 
    14731611 
     1612    @Override 
    14741613    public boolean visit(FuncExp node) { 
    14751614        return false; 
    14761615    } 
    14771616 
     1617    @Override 
    14781618    public boolean visit(FuncLiteralDeclaration node) { 
    14791619        return false; 
    14801620    } 
    14811621 
     1622    @Override 
    14821623    public boolean visit(GotoCaseStatement node) { 
    14831624        return false; 
    14841625    } 
    14851626 
     1627    @Override 
    14861628    public boolean visit(GotoDefaultStatement node) { 
    14871629        return false; 
    14881630    } 
    14891631 
     1632    @Override 
    14901633    public boolean visit(GotoStatement node) { 
    14911634        return false; 
    14921635    } 
    14931636 
     1637    @Override 
    14941638    public boolean visit(HaltExp node) { 
    14951639        return false; 
    14961640    } 
    14971641 
     1642    @Override 
    14981643    public boolean visit(IdentifierExp node) { 
    14991644        return false; 
    15001645    } 
    15011646 
     1647    @Override 
    15021648    public boolean visit(IdentityExp node) { 
    15031649        return false; 
    15041650    } 
    15051651 
     1652    @Override 
    15061653    public boolean visit(IfStatement node) { 
    15071654        return true; 
    15081655    } 
    15091656 
     1657    @Override 
    15101658    public boolean visit(IftypeCondition node) { 
    15111659        return false; 
    15121660    } 
    15131661 
     1662    @Override 
    15141663    public boolean visit(IsExp node) { 
    15151664        return false; 
    15161665    } 
    15171666 
     1667    @Override 
    15181668    public boolean visit(IndexExp node) { 
    15191669        return false; 
    15201670    } 
    15211671 
     1672    @Override 
    15221673    public boolean visit(InExp node) { 
    15231674        return false; 
    15241675    } 
    15251676 
     1677    @Override 
    15261678    public boolean visit(Initializer node) { 
    15271679        return false; 
    15281680    } 
    15291681 
     1682    @Override 
    15301683    public boolean visit(IntegerExp node) { 
    15311684        return false; 
    15321685    }    
    15331686 
     1687    @Override 
    15341688    public boolean visit(LabelDsymbol node) { 
    15351689        return false; 
    15361690    } 
    15371691&n