Changeset 1168

Show
Ignore:
Timestamp:
05/17/08 11:46:31 (4 months ago)
Author:
asterite
Message:

Progress on template instantiation evaluation... still a lot of stuff is missing.

Files:

Legend:

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

    r1167 r1168  
    7878    protected boolean resolveBindings; 
    7979     
    80     public boolean inTemplateInstantiation; 
    81      
    8280    private Comment[] moduleComments; 
    8381     
     
    117115        } 
    118116        convertDeclarations(unit.declarations(), module.sourceMembers); 
    119         unit.setSourceRange(module.start, module.length);      
     117        setSourceRange(unit, module.start, module.length);         
    120118        return unit; 
    121119    } 
     
    125123        for(int i = 0; i < (from == null ? 0 : from.length); i++) { 
    126124            to[i] = ast.newPragma(); 
    127             to[i].setSourceRange(from[i].start, from[i].length); 
     125            setSourceRange(to[i], from[i].start, from[i].length); 
    128126        } 
    129127        return to; 
     
    500498            } 
    501499        } 
    502         b.setSourceRange(a.start, a.length); 
     500        setSourceRange(b, a.start, a.length); 
    503501         
    504502        if (resolveBindings) { 
     
    524522                    fragment.setValue(convertedValue); 
    525523                } 
    526                 fragment.setSourceRange(key.start, value.start + value.length - key.start); 
     524                setSourceRange(fragment, key.start, value.start + value.length - key.start); 
    527525                b.fragments().add(fragment); 
    528526            } 
    529527        } 
    530         b.setSourceRange(a.start, a.length); 
     528        setSourceRange(b, a.start, a.length); 
    531529         
    532530        if (resolveBindings) { 
     
    547545         
    548546        if (a.modifier != null) { 
    549             convert(a.modifier); 
     547            modifier = convert(a.modifier); 
    550548        } 
    551549         
     
    594592        } 
    595593        convertDeclarations(b.declarations(), a.decl); 
    596         b.setSourceRange(a.start, a.length); 
     594        setSourceRange(b, a.start, a.length); 
    597595        toAdd.add(b); 
    598596    } 
     
    604602        if (b.declarations().size() > 0) { 
    605603            Declaration last = b.declarations().get(b.declarations().size() - 1); 
    606             b.setSourceRange(a.start, last.getStartPosition() + last.getLength() - a.start); 
     604            setSourceRange(b, a.start, last.getStartPosition() + last.getLength() - a.start); 
    607605            toAdd.add(b); 
    608606            if (dsymbol instanceof ProtDeclaration) { 
     
    630628                Declaration decl = convertDeclaration((Dsymbol) a.decl.get(0)); // SEMANTIC 
    631629                decl.modifiers().add(0, modifier); 
    632                 decl.setSourceRange(a.start, a.length); 
     630                setSourceRange(decl, a.start, a.length); 
    633631                toAdd.add(decl); 
    634632                return; 
     
    660658        } 
    661659        convertDeclarations(b.declarations(), a.decl); 
    662         b.setSourceRange(a.start, a.length); 
     660        setSourceRange(b, a.start, a.length); 
    663661        toAdd.add(b); 
    664662    } 
     
    682680            } 
    683681            declaration.modifiers().add(modifier); 
    684             declaration.setSourceRange(modifier.getStartPosition(), declaration.getStartPosition() + declaration.getLength() - modifier.getStartPosition()); 
     682            setSourceRange(declaration, modifier.getStartPosition(), declaration.getStartPosition() + declaration.getLength() - modifier.getStartPosition()); 
    685683            return declaration; 
    686684        } else { 
     
    712710        } 
    713711         
    714         varToReturn.setSourceRange(start, last.start + last.length - first.start); 
     712        setSourceRange(varToReturn, start, last.start + last.length - first.start); 
    715713        return varToReturn; 
    716714    } 
     
    736734        } 
    737735         
    738         varToReturn.setSourceRange(first.start, last.start + last.length - first.start); 
     736        setSourceRange(varToReturn, first.start, last.start + last.length - first.start); 
    739737        return varToReturn; 
    740738    } 
     
    760758        } 
    761759         
    762         varToReturn.setSourceRange(first.start, last.start + last.length - first.start); 
     760        setSourceRange(varToReturn, first.start, last.start + last.length - first.start); 
    763761        return varToReturn; 
    764762    } 
     
    781779            } 
    782780        } 
    783         b.setSourceRange(a.start, a.length); 
     781        setSourceRange(b, a.start, a.length); 
    784782        return b; 
    785783    } 
     
    809807            b.setStaticAssert(sa); 
    810808        } 
    811         b.setSourceRange(a.start, a.length); 
     809        setSourceRange(b, a.start, a.length); 
    812810        return b; 
    813811    } 
     
    829827            } 
    830828        } 
    831         b.setSourceRange(a.start, a.length); 
     829        setSourceRange(b, a.start, a.length); 
    832830        return b; 
    833831    } 
     
    846844                b.setBody(convertedBody); 
    847845            } 
    848             b.setSourceRange(a.start, a.length); 
     846            setSourceRange(b, a.start, a.length); 
    849847        } 
    850848        if (b != null) { 
     
    873871                b.setSpecialization(convert(a.sourceTspec)); 
    874872            } 
    875             b.setSourceRange(a.start, a.length); 
     873            setSourceRange(b, a.start, a.length); 
    876874             
    877875            if (resolveBindings) { 
     
    901899            case TOKsuper: b.setSpecialization(TypeSpecialization.SUPER); break; 
    902900            } 
    903             b.setSourceRange(a.start, a.length); 
     901            setSourceRange(b, a.start, a.length); 
    904902             
    905903            if (resolveBindings) { 
     
    924922            b.setOperator(PostfixExpression.Operator.DECREMENT); 
    925923        } 
    926         b.setSourceRange(a.start, a.length); 
     924        setSourceRange(b, a.start, a.length); 
    927925         
    928926        if (resolveBindings) { 
     
    953951            b.setBody(convert(a.sourceBody)); 
    954952        } 
    955         b.setSourceRange(a.start, a.length); 
     953        setSourceRange(b, a.start, a.length); 
    956954        return b; 
    957955    } 
     
    980978            } 
    981979        } 
    982         b.setSourceRange(a.start, a.length); 
     980        setSourceRange(b, a.start, a.length); 
    983981         
    984982        if (resolveBindings) { 
     
    10031001            b.setToExpression(convert(a.sourceUpr)); 
    10041002        } 
    1005         b.setSourceRange(a.start, a.length); 
     1003        setSourceRange(b, a.start, a.length); 
    10061004         
    10071005        if (resolveBindings) { 
     
    10201018            } 
    10211019        } 
    1022         b.setSourceRange(a.start, a.length); 
     1020        setSourceRange(b, a.start, a.length); 
    10231021         
    10241022        if (resolveBindings) { 
     
    10441042            } 
    10451043        } 
    1046         tt.setSourceRange(tempinst.start, tempinst.length); 
     1044        setSourceRange(tt, tempinst.start, tempinst.length); 
    10471045        return tt; 
    10481046    } 
     
    10621060            } 
    10631061        } 
    1064         b.setSourceRange(a.start, a.length); 
     1062        setSourceRange(b, a.start, a.length); 
    10651063         
    10661064        if (resolveBindings) { 
     
    10831081            } 
    10841082        } 
    1085         b.setSourceRange(a.start, a.length); 
     1083        setSourceRange(b, a.start, a.length); 
    10861084         
    10871085        if (resolveBindings) { 
     
    10971095            b.setExpression(convert(a.sourceExp)); 
    10981096        } 
    1099         b.setSourceRange(a.start, a.length); 
     1097        setSourceRange(b, a.start, a.length); 
    11001098        return b; 
    11011099    } 
     
    11091107            } 
    11101108        } 
    1111         b.setSourceRange(a.start, a.length); 
     1109        setSourceRange(b, a.start, a.length); 
    11121110        return b; 
    11131111    } 
     
    11281126            b.setSpecificValue(convert(a.sourceSpecValue)); 
    11291127        } 
    1130         b.setSourceRange(a.start, a.length); 
     1128        setSourceRange(b, a.start, a.length); 
    11311129        return b; 
    11321130    } 
     
    11411139            b.setSpecificType(convert(a.sourceSpecType)); 
    11421140        } 
    1143         b.setSourceRange(a.start, a.length); 
     1141        setSourceRange(b, a.start, a.length); 
    11441142        return b; 
    11451143    } 
     
    11531151            } 
    11541152        } 
    1155         b.setSourceRange(a.start, a.length); 
     1153        setSourceRange(b, a.start, a.length); 
    11561154        return b; 
    11571155    } 
     
    11711169            b.setSpecificType(convert(a.sourceSpecAliasT)); 
    11721170        } 
    1173         b.setSourceRange(a.start, a.length); 
     1171        setSourceRange(b, a.start, a.length); 
    11741172        return b; 
    11751173    } 
     
    12111209    public descent.core.dom.VoidInitializer convert(VoidInitializer a) { 
    12121210        descent.core.dom.VoidInitializer b = new descent.core.dom.VoidInitializer(ast); 
    1213         b.setSourceRange(a.start, a.length); 
     1211        setSourceRange(b, a.start, a.length); 
    12141212        return b; 
    12151213    } 
     
    12281226        convertExpressions(b.newArguments(), a.sourceNewargs); 
    12291227        convertExpressions(b.constructorArguments(), a.sourceArguments); 
    1230         b.setSourceRange(a.start, a.length); 
     1228        setSourceRange(b, a.start, a.length); 
    12311229         
    12321230        if (resolveBindings) { 
     
    12471245        convertBaseClasses(b.baseClasses(), a.cd.sourceBaseclasses); 
    12481246        convertDeclarations(b.declarations(), a.cd.members); 
    1249         b.setSourceRange(a.start, a.length); 
     1247        setSourceRange(b, a.start, a.length); 
    12501248         
    12511249        if (resolveBindings) { 
     
    12701268            b.setToExpression(convert(a.sourceUpr)); 
    12711269        } 
    1272         b.setSourceRange(a.start, a.length); 
     1270        setSourceRange(b, a.start, a.length); 
    12731271        return convertModifiedType(a, b); 
    12741272    } 
     
    12881286            } 
    12891287        } 
    1290         b.setSourceRange(a.start, a.length); 
     1288        setSourceRange(b, a.start, a.length); 
    12911289        return convertModifiedType(a, b); 
    12921290    } 
     
    13051303            b.setVariadic(ty.varargs != 0); 
    13061304            convertArguments(b.arguments(), ty.parameters); 
    1307             b.setSourceRange(a.start, a.length); 
     1305            setSourceRange(b, a.start, a.length); 
    13081306             
    13091307            if (resolveBindings) { 
     
    13151313            PointerType b = new PointerType(ast); 
    13161314            b.setComponentType(convert(a.sourceNext)); 
    1317             b.setSourceRange(a.start, a.length); 
     1315            setSourceRange(b, a.start, a.length); 
    13181316             
    13191317            if (resolveBindings) { 
     
    13391337            } 
    13401338        } 
    1341         b.setSourceRange(a.start, a.length); 
     1339        setSourceRange(b, a.start, a.length); 
    13421340         
    13431341        if (resolveBindings) { 
     
    13601358        b.setVariadic(ty.varargs != 0); 
    13611359        convertArguments(b.arguments(), ty.parameters); 
    1362         b.setSourceRange(a.start, a.length); 
     1360        setSourceRange(b, a.start, a.length); 
    13631361        return convertModifiedType(a, b); 
    13641362    } 
     
    13781376            } 
    13791377        } 
    1380         b.setSourceRange(a.start, a.length); 
     1378        setSourceRange(b, a.start, a.length); 
    13811379        return convertModifiedType(a, b); 
    13821380    } 
     
    13901388            } 
    13911389        } 
    1392         b.setSourceRange(a.start, a.length); 
     1390        setSourceRange(b, a.start, a.length); 
    13931391        return convertModifiedType(a, b); 
    13941392    } 
     
    14041402        if (a.sourceInit == null) { 
    14051403            if (a.ident == null) { 
    1406                 b.setSourceRange(a.type.start + a.type.length, 0); 
     1404                setSourceRange(b, a.type.start + a.type.length, 0); 
    14071405            } else { 
    1408                 b.setSourceRange(a.ident.start, a.ident.length); 
     1406                setSourceRange(b, a.ident.start, a.ident.length); 
    14091407            } 
    14101408        } else { 
     
    14131411                b.setInitializer(init); 
    14141412                if (a.ident != null) { 
    1415                     b.setSourceRange(a.ident.start, init.getStartPosition() + init.getLength() - a.ident.start);   
     1413                    setSourceRange(b, a.ident.start, init.getStartPosition() + init.getLength() - a.ident.start);  
    14161414                } else { 
    1417                     b.setSourceRange(a.start, a.length); 
     1415                    setSourceRange(b, a.start, a.length); 
    14181416                } 
    14191417            } 
     
    14381436        if (a.init == null) { 
    14391437            if (a.ident != null) { 
    1440                 b.setSourceRange(a.ident.start, a.ident.length); 
     1438                setSourceRange(b, a.ident.start, a.ident.length); 
    14411439            } else { 
    1442                 b.setSourceRange(a.start, a.length); 
     1440                setSourceRange(b, a.start, a.length); 
    14431441            } 
    14441442        } else { 
     
    14461444            if (init != null) { 
    14471445                b.setInitializer(init); 
    1448                 b.setSourceRange(a.ident.start, init.getStartPosition() + init.getLength() - a.ident.start); 
     1446                setSourceRange(b, a.ident.start, init.getStartPosition() + init.getLength() - a.ident.start); 
    14491447            } 
    14501448        } 
     
    14771475                    selective.setName((SimpleName) convert(name)); 
    14781476                    if (alias == null) { 
    1479                         selective.setSourceRange(name.start, name.length); 
     1477                        setSourceRange(selective, name.start, name.length); 
    14801478                    } else { 
    14811479                        selective.setAlias((SimpleName) convert(alias)); 
    1482                         selective.setSourceRange(alias.start, name.start + name.length - alias.start); 
     1480                        setSourceRange(selective, alias.start, name.start + name.length - alias.start); 
    14831481                    } 
    14841482                    b.selectiveImports().add(selective); 
    14851483                } 
    14861484            } 
    1487             b.setSourceRange(a.start, a.length); 
     1485            setSourceRange(b, a.start, a.length); 
    14881486             
    14891487            c.imports().add(b); 
     
    14971495        } 
    14981496        fillDeclaration(c, first); 
    1499         c.setSourceRange(first.firstStart, last.start + last.lastLength - first.firstStart); 
     1497        setSourceRange(c, first.firstStart, last.start + last.lastLength - first.firstStart); 
    15001498        return c; 
    15011499    } 
     
    15231521            } 
    15241522        } 
    1525         b.setSourceRange(a.start, a.length); 
     1523        setSourceRange(b, a.start, a.length); 
    15261524        return b; 
    15271525    } 
     
    15711569            b.setElseBody(convert(a.sourceElsebody)); 
    15721570        } 
    1573         b.setSourceRange(a.start, a.length); 
     1571        setSourceRange(b, a.start, a.length); 
    15741572        return b; 
    15751573    } 
     
    15981596            } 
    15991597        } 
    1600         mixin.setSourceRange(a.start, a.length); 
     1598        setSourceRange(mixin, a.start, a.length); 
    16011599        b.setDeclaration(mixin); 
    1602         b.setSourceRange(a.start, a.length); 
     1600        setSourceRange(b, a.start, a.length); 
    16031601        return b; 
    16041602    } 
     
    16281626        convertArguments(b.arguments(), ty.parameters); 
    16291627        fillFunction(b, a.fd); 
    1630         b.setSourceRange(a.start, a.length); 
     1628        setSourceRange(b, a.start, a.length); 
    16311629         
    16321630        if (resolveBindings) { 
     
    16821680            } 
    16831681        } 
    1684         b.setSourceRange(a.start, a.length); 
     1682        setSourceRange(b, a.start, a.length); 
    16851683        return b; 
    16861684    } 
     
    17151713            } 
    17161714        } 
    1717         b.setSourceRange(a.start, a.length); 
     1715        setSourceRange(b, a.start, a.length); 
    17181716        return b; 
    17191717    } 
     
    17361734            } 
    17371735        } 
    1738         b.setSourceRange(a.start, a.length); 
     1736        setSourceRange(b, a.start, a.length); 
    17391737        return b; 
    17401738    } 
     
    17941792        descent.core.dom.DeclarationStatement declStatement = ast.newDeclarationStatement(); 
    17951793        declStatement.setDeclaration(declaration); 
    1796         declStatement.setSourceRange(declaration.getStartPosition(), declaration.getLength()); 
     1794        setSourceRange(declStatement, declaration.getStartPosition(), declaration.getLength()); 
    17971795        return declStatement; 
    17981796    } 
     
    18091807            b.setValue(convert(a.sourceValue)); 
    18101808        } 
    1811         b.setSourceRange(a.start, a.length); 
     1809        setSourceRange(b, a.start, a.length); 
    18121810         
    18131811        if (resolveBindings) { 
     
    19781976            } 
    19791977        } 
    1980         b.setSourceRange(a.start, a.length); 
     1978        setSourceRange(b, a.start, a.length); 
    19811979        return b; 
    19821980    } 
     
    19841982    public descent.core.dom.GotoDefaultStatement convert(GotoDefaultStatement a) { 
    19851983        descent.core.dom.GotoDefaultStatement b = new descent.core.dom.GotoDefaultStatement(ast); 
    1986         b.setSourceRange(a.start, a.length); 
     1984        setSourceRange(b, a.start, a.length); 
    19871985        return b; 
    19881986    } 
     
    19961994            } 
    19971995        } 
    1998         b.setSourceRange(a.start, a.length); 
     1996        setSourceRange(b, a.start, a.length); 
    19991997        return b; 
    20001998    } 
     
    20082006            } 
    20092007        } 
    2010         b.setSourceRange(a.start, a.length); 
     2008        setSourceRange(b, a.start, a.length); 
    20112009         
    20122010        if (resolveBindings) { 
     
    20202018        if (a.sourceExp == null) { 
    20212019            descent.core.dom.EmptyStatement b = new descent.core.dom.EmptyStatement(ast); 
    2022             b.setSourceRange(a.start, a.length); 
     2020            setSourceRange(b, a.start, a.length); 
    20232021            return b; 
    20242022        } else { 
     
    20282026                b.setExpression(convertedExp); 
    20292027            } 
    2030             b.setSourceRange(a.start, a.length); 
     2028            setSourceRange(b, a.start, a.length); 
    20312029            return b; 
    20322030        } 
     
    20412039            } 
    20422040        } 
    2043         b.setSourceRange(a.start, a.length); 
     2041        setSourceRange(b, a.start, a.length); 
    20442042        return b; 
    20452043    } 
     
    20602058            } 
    20612059        } 
    2062         b.setSourceRange(a.start, a.length); 
     2060        setSourceRange(b, a.start, a.length); 
    20632061         
    20642062        if (resolveBindings) { 
     
    20712069    public descent.core.dom.Expression convert(DollarExp a) { 
    20722070        descent.core.dom.DollarLiteral b = new descent.core.dom.DollarLiteral(ast); 
    2073         b.setSourceRange(a.start, a.length); 
     2071        setSourceRange(b, a.start, a.length); 
    20742072         
    20752073        if (resolveBindings) { 
     
    20942092            } 
    20952093        } 
    2096         b.setSourceRange(a.start, a.length); 
     2094        setSourceRange(b, a.start, a.length); 
    20972095        return b; 
    20982096    } 
     
    21122110            } 
    21132111        } 
    2114         b.setSourceRange(a.start, a.length); 
     2112        setSourceRange(b, a.start, a.length); 
    21152113        return b; 
    21162114    } 
     
    21302128            } 
    21312129        } 
    2132         b.setSourceRange(a.start, a.length); 
     2130        setSourceRange(b, a.start, a.length); 
    21332131        return b; 
    21342132    } 
     
    21482146            } 
    21492147        } 
    2150         b.setSourceRange(a.start, a.length); 
     2148        setSourceRange(b, a.start, a.length); 
    21512149        return b; 
    21522150    } 
     
    21602158            } 
    21612159        } 
    2162         b.setSourceRange(a.start, a.length); 
     2160        setSourceRange(b, a.start, a.length); 
    21632161        return b; 
    21642162    } 
     
    21782176            } 
    21792177        } 
    2180         b.setSourceRange(a.start, a.length); 
     2178        setSourceRange(b, a.start, a.length); 
    21812179        return b; 
    21822180    } 
     
    21912189                descent.core.dom.Version version = ast.newVersion(new String( 
    21922190                        cond.ident)); 
    2193                 version.setSourceRange(cond.startPosition, cond.length); 
     2191                setSourceRange(version, cond.startPosition, cond.length); 
    21942192                b.setVersion(version); 
    21952193            } 
     
    22432241                descent.core.dom.Version version = ast.newVersion(new String( 
    22442242                        cond.ident)); 
    2245                 version.setSourceRange(cond.startPosition, cond.length); 
     2243                setSourceRange(version, cond.startPosition, cond.length); 
    22462244                b.setVersion(version); 
    22472245            } 
     
    22702268                if (cond.ident != null) { 
    22712269                    descent.core.dom.Version version = ast.newVersion(new String(cond.ident)); 
    2272                     version.setSourceRange(cond.startPosition, cond.length); 
     2270                    setSourceRange(version, cond.startPosition, cond.length); 
    22732271                    b.setVersion(version); 
    22742272                } 
     
    23242322                if (cond.ident != null) { 
    23252323                    descent.core.dom.Version version = ast.newVersion(new String(cond.ident)); 
    2326                     version.setSourceRange(cond.startPosition, cond.length); 
     2324                    setSourceRange(version, cond.startPosition, cond.length); 
    23272325                    b.setVersion(version); 
    23282326                } 
     
    23402338            ret.setElseBody(convert(a.elsebody)); 
    23412339        } 
    2342         ret.setSourceRange(a.start, a.length); 
     2340        setSourceRange(ret, a.start, a.length); 
    23432341         
    23442342        if (resolveBindings) { 
     
    23572355            } 
    23582356        } 
    2359         b.setSourceRange(a.start, a.length); 
     2357        setSourceRange(b, a.start, a.length); 
    23602358         
    23612359        if (resolveBindings) { 
     
    23702368        if(!(a.sourceStatement instanceof SwitchErrorStatement)) 
    23712369            convertStatements(b.statements(), ((CompoundStatement) ((ScopeStatement) a.sourceStatement).sourceStatement).sourceStatements); 
    2372         b.setSourceRange(a.start, a.length); 
     2370        setSourceRange(b, a.start, a.length); 
    23732371        return b; 
    23742372    } 
     
    23832381            } 
    23842382        } 
    2385         b.setSourceRange(a.start, a.length); 
     2383        setSourceRange(b, a.start, a.length); 
    23862384         
    23872385        if (resolveBindings) { 
     
    24012399            } 
    24022400        } 
    2403         b.setSourceRange(a.start, a.length); 
     2401        setSourceRange(b, a.start, a.length); 
    24042402         
    24052403        if (resolveBindings) { 
     
    24172415            b.setDeclaration(declaration); 
    24182416        } 
    2419         declaration.setSourceRange(a.start, a.length); 
    2420          
    2421         b.setSourceRange(a.start, a.length); 
     2417        setSourceRange(declaration, a.start, a.length); 
     2418         
     2419        setSourceRange(b, a.start, a.length); 
    24222420        return b; 
    24232421    } 
     
    24262424        descent.core.dom.Version b = new descent.core.dom.Version(ast); 
    24272425        b.setValue(new String(a.value)); 
    2428         b.setSourceRange(a.start, a.length); 
     2426        setSourceRange(b, a.start, a.length); 
    24292427        return b; 
    24302428    } 
     
    24332431        descent.core.dom.DebugAssignment b = new descent.core.dom.DebugAssignment(ast); 
    24342432        b.setVersion(convert(a.version)); 
    2435         b.setSourceRange(a.start, a.length); 
     2433        setSourceRange(b, a.start, a.length); 
    24362434        fillDeclaration(b, a); 
    24372435        return b; 
     
    24412439        descent.core.dom.VersionAssignment b = new descent.core.dom.VersionAssignment(ast); 
    24422440        b.setVersion(convert(a.version)); 
    2443         b.setSourceRange(a.start, a.length); 
     2441        setSourceRange(b, a.start, a.length); 
    24442442        fillDeclaration(b, a); 
    24452443        return b; 
     
    24512449            b.setLabel((SimpleName) convert(a.ident)); 
    24522450        } 
    2453         b.setSourceRange(a.start, a.length); 
     2451        setSourceRange(b, a.start, a.length); 
    24542452        return b; 
    24552453    } 
     
    24752473            } 
    24762474        } 
    2477         b.setSourceRange(a.sourceEcond.start, a.sourceE2.start + a.sourceE2.length - a.sourceEcond.start); 
     2475        setSourceRange(b, a.sourceEcond.start, a.sourceE2.start + a.sourceE2.length - a.sourceEcond.start); 
    24782476         
    24792477        if (resolveBindings) { 
     
    25072505            descent.core.dom.Block b = new descent.core.dom.Block(ast); 
    25082506            convertStatements(b.statements(), a.sourceStatements); 
    2509             b.setSourceRange(a.start, a.length); 
     2507            setSourceRange(b, a.start, a.length); 
    25102508            return b; 
    25112509        } 
     
    25202518            } 
    25212519        } 
    2522         b.setSourceRange(a.start, a.length); 
     2520        setSourceRange(b, a.start, a.length); 
    25232521         
    25242522        if (resolveBindings) { 
     
    25482546                b.setName(convertedIdent); 
    25492547            } 
    2550             b.setSourceRange(a.ident.start, a.ident.length); 
     2548            setSourceRange(b, a.ident.start, a.ident.length); 
    25512549        } 
    25522550         
     
    25982596            b.setDefaultValue(convert(a.sourceDefaultArg)); 
    25992597        } 
    2600         b.setSourceRange(a.start, a.length); 
     2598        setSourceRange(b, a.start, a.length); 
    26012599         
    26022600        if (resolveBindings) { 
     
    26162614        } 
    26172615        convertExpressions(b.indexes(), a.sourceArguments); 
    2618         b.setSourceRange(a.start, a.length); 
     2616        setSourceRange(b, a.start, a.length); 
    26192617         
    26202618        if (resolveBindings) { 
     
    26342632                if (index == null) { 
    26352633                    fragment.setInitializer(convert(value)); 
    2636                     fragment.setSourceRange(value.start, value.length); 
     2634                    setSourceRange(fragment, value.start, value.length); 
    26372635                } else { 
    26382636                    fragment.setExpression(convert(index)); 
    26392637                    fragment.setInitializer(convert(value)); 
    2640                     fragment.setSourceRange(index.start, value.start + value.length - index.start); 
     2638                    setSourceRange(fragment, index.start, value.start + value.length - index.start); 
    26412639                } 
    26422640                b.fragments().add(fragment); 
    26432641            } 
    26442642        } 
    2645         b.setSourceRange(a.start, a.length); 
     2643        setSourceRange(b, a.start, a.length); 
    26462644        return b;        
    26472645    } 
     
    26562654                if (index == null) { 
    26572655                    fragment.setInitializer(convert(value)); 
    2658                     fragment.setSourceRange(value.start, value.length); 
     2656                    setSourceRange(fragment, value.start, value.length); 
    26592657                } else { 
    26602658                    fragment.setName((SimpleName) convert(index)); 
    26612659                    fragment.setInitializer(convert(value)); 
    2662                     fragment.setSourceRange(index.start, value.start + value.length - index.start); 
     2660                    setSourceRange(fragment, index.start, value.start + value.length - index.start); 
    26632661                } 
    26642662                b.fragments().add(fragment); 
    26652663            } 
    26662664        } 
    2667         b.setSourceRange(a.start, a.length); 
     2665        setSourceRange(b, a.start, a.length); 
    26682666        return b; 
    26692667    } 
     
    26722670        descent.core.dom.ArrayLiteral b = new descent.core.dom.ArrayLiteral(ast); 
    26732671        convertExpressions(b.arguments(), a.sourceElements); 
    2674         b.setSourceRange(a.start, a.length); 
     2672        setSourceRange(b, a.start, a.length); 
    26752673         
    26762674        if (resolveBindings) { 
     
    26842682        descent.core.dom.AsmBlock b = new descent.core.dom.AsmBlock(ast); 
    26852683        convertStatements(b.statements(), a.sourceStatements); 
    2686         b.setSourceRange(a.start, a.length); 
     2684        setSourceRange(b, a.start, a.length); 
    26872685        return b; 
    26882686    } 
     
    26942692                AsmToken asmToken = new AsmToken(ast); 
    26952693                asmToken.setToken(token.toString()); 
    2696                 asmToken.setSourceRange(token.ptr, token.sourceLen); 
     2694                setSourceRange(asmToken, token.ptr, token.sourceLen); 
    26972695                b.tokens().add(asmToken); 
    26982696            } 
    26992697        } 
    2700         b.setSourceRange(a.start, a.length); 
     2698        setSourceRange(b, a.start, a.length); 
    27012699        return b; 
    27022700    } 
     
    27132711            b.setMessage(convert(a.msg)); 
    27142712        } 
    2715         b.setSourceRange(a.start, a.length); 
     2713        setSourceRange(b, a.start, a.length); 
    27162714         
    27172715        if (resolveBindings) { 
     
    27262724        if (a.modifier != null) { 
    27272725            b.setModifier(convert(a.modifier)); 
    2728             b.setSourceRange(a.modifier.start, a.sourceType.start + a.sourceType.length - a.modifier.start); 
     2726            setSourceRange(b, a.modifier.start, a.sourceType.start + a.sourceType.length - a.modifier.start); 
    27292727        } else { 
    2730             b.setSourceRange(a.sourceType.start, a.sourceType.length); 
     2728            setSourceRange(b, a.sourceType.start, a.sourceType.length); 
    27312729        } 
    27322730        if (a.sourceType != null) { 
     
    27442742            b.setLabel((SimpleName) convert(a.ident)); 
    27452743        } 
    2746         b.setSourceRange(a.start, a.length); 
     2744        setSourceRange(b, a.start, a.length); 
    27472745        return b; 
    27482746    } 
     
    27572755        } 
    27582756        convertExpressions(b.arguments(), a.sourceArguments); 
    2759         b.setSourceRange(a.start, a.length); 
     2757        setSourceRange(b, a.start, a.length); 
    27602758         
    27612759        if (resolveBindings) { 
     
    27812779            convertStatements(b.statements(), ((CompoundStatement) ((ScopeStatement) x.sourceStatement).sourceStatement).sourceStatements); 
    27822780        } 
    2783         b.setSourceRange(a.start, a.length); 
     2781        setSourceRange(b, a.start, a.length); 
    27842782        return b; 
    27852783    } 
     
    28002798                } 
    28012799            } 
    2802             b.setSourceRange(a.start, a.length); 
     2800            setSourceRange(b, a.start, a.length); 
    28032801             
    28042802            if (resolveBindings) { 
     
    28142812                // const.length() == 5 
    28152813                modifier.setModifierKeyword(ModifierKeyword.CONST_KEYWORD); 
    2816                 modifier.setSourceRange(a.modifierStart, 5); 
     2814                setSourceRange(modifier, a.modifierStart, 5); 
    28172815            } else { 
    28182816                // invariant.length() == 9 
    28192817                modifier.setModifierKeyword(ModifierKeyword.INVARIANT_KEYWORD); 
    2820                 modifier.setSourceRange(a.modifierStart, 9); 
     2818                setSourceRange(modifier, a.modifierStart, 9); 
    28212819            } 
    28222820            b.setModifier(modifier); 
    28232821             
    28242822            b.setExpression(convertedExp); 
    2825             b.setSourceRange(a.start, a.length); 
     2823            setSourceRange(b, a.start, a.length); 
    28262824             
    28272825            if (resolveBindings) { 
     
    28502848            } 
    28512849        } 
    2852         b.setSourceRange(a.start, a.length); 
     2850        setSourceRange(b, a.start, a.length); 
    28532851        return b; 
    28542852    } 
     
    29492947        } 
    29502948        if (a.sourceE2 != null && a.sourceE2 != null) { 
    2951             b.setSourceRange(a.sourceE1.start, a.sourceE2.start + a.sourceE2.length - a.sourceE1.start); 
     2949            setSourceRange(b, a.sourceE1.start, a.sourceE2.start + a.sourceE2.length - a.sourceE1.start); 
    29522950        } 
    29532951         
     
    29652963                b.setBooleanValue(a.value.equals(BigInteger.ONE)); 
    29662964            } 
    2967             b.setSourceRange(a.start, a.length); 
     2965            setSourceRange(b, a.start, a.length); 
    29682966             
    29692967            if (resolveBindings) { 
     
    29772975                b.internalSetEscapedValue(new String(a.str)); 
    29782976            } 
    2979             b.s