Changeset 4125 for devel-tools


Ignore:
Timestamp:
Dec 18, 2009, 3:21:43 PM (11 years ago)
Author:
yura
Message:
  • Error in Rf5Parser was found.
  • Work with ref files like rf files in Builders.
Location:
devel-tools/trunk/eclipse/org.refal.rfpdt.core/src/org/refal/rfpdt
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • devel-tools/trunk/eclipse/org.refal.rfpdt.core/src/org/refal/rfpdt/core/RfpAbstractBuilder.java

    r4123 r4125  
    55import java.util.TreeSet;
    66
    7 import org.eclipse.core.resources.IFile;
    87import org.eclipse.core.resources.IProject;
    98import org.eclipse.core.resources.IResource;
     
    6968            getProject().accept(new IResourceVisitor() {
    7069                public boolean visit (IResource resource) throws CoreException {
    71                     if (RfpProject.isRfFile(resource) || RfpProject.isRefFile(resource)) {
    72                         String moduleName = rfpProject.getModuleName((IFile) resource);
    73                         if (moduleName != null)
    74                             modulesToRecompile.add(moduleName);
    75                     }
     70                    String moduleName = rfpProject.getModuleName(resource);
     71                    if (moduleName != null)
     72                        modulesToRecompile.add(moduleName);
    7673                    return true;
    7774                }
     
    8986            delta.accept(new IResourceDeltaVisitor() {
    9087                public boolean visit (IResourceDelta delta) throws CoreException {
    91                     IResource resource = delta.getResource();
    9288                    switch (delta.getKind()) {
    9389                        case IResourceDelta.ADDED:
    9490                        case IResourceDelta.CHANGED:
    95                             if (RfpProject.isRfFile(resource)) {
    96                                 String moduleName = rfpProject.getModuleName((IFile) resource);
    97                                 if (moduleName != null)
    98                                     modulesToRecompile.add(moduleName);
    99                             }
     91                            String moduleName = rfpProject.getModuleName(delta.getResource());
     92                            if (moduleName != null)
     93                                modulesToRecompile.add(moduleName);
    10094                            break;
    10195                        default:
  • devel-tools/trunk/eclipse/org.refal.rfpdt.core/src/org/refal/rfpdt/core/RfpBuilder.java

    r4123 r4125  
    148148
    149149        public Reader getREFReader (String moduleName) {
     150            if (this.moduleName.equals(moduleName) && reader != null)
     151                return reader;
    150152            IFile file = project.getSource(moduleName, "ref");
    151153            if (file == null || !file.exists())
     
    311313
    312314    public static AstImplem checkAndCompileModuleImplem (IProject project, IFile file, String document) {
    313         if (!RfpProject.isRfFile(file))
     315        if (!RfpProject.isRfFile(file) && !RfpProject.isRefFile(file) )
    314316            return null;
    315317        deleteMarkers(file);
    316318        if (RfpCore.getRfpProject(project).getModuleName(file) == null)
    317319            return null;
    318         return Checker.getModuleImplementation(new IdeCompilerEnvironment(RfpCore.getRfpProject(project), file,
    319                 new StringReader(document)));
     320        if (RfpProject.isRefFile(file)) {
     321            Checker.getR5(new IdeCompilerEnvironment(RfpCore.getRfpProject(project), file,
     322                    new StringReader(document)));
     323            return null;
     324        } else
     325            return Checker.getModuleImplementation(new IdeCompilerEnvironment(RfpCore.getRfpProject(project), file,
     326                    new StringReader(document)));
    320327    }
    321328
     
    336343            getProject().accept(new IResourceVisitor() {
    337344                public boolean visit (IResource resource) throws CoreException {
    338                     if (RfpProject.isRfFile(resource)) {
    339                         final IFile rfFile = (IFile) resource;
    340                         String moduleName = getRfpProject().getModuleName(rfFile);
    341                         if (moduleName != null) {
    342                             SortedSet<String> importedModuleSet = getNamesOfImportedModules(rfFile);
    343                             for (String importedModule : importedModuleSet) {
    344                                 SortedSet<String> dependentModules = dependencies.get(importedModule);
    345                                 if (dependentModules == null) {
    346                                     dependentModules = new TreeSet<String>();
    347                                     dependencies.put(importedModule, dependentModules);
    348                                 }
    349                                 dependentModules.add(moduleName);
     345                    String moduleName = getRfpProject().getModuleName(resource);
     346                    if (moduleName != null) {
     347                        SortedSet<String> importedModuleSet = getNamesOfImportedModules((IFile) resource);
     348                        for (String importedModule : importedModuleSet) {
     349                            SortedSet<String> dependentModules = dependencies.get(importedModule);
     350                            if (dependentModules == null) {
     351                                dependentModules = new TreeSet<String>();
     352                                dependencies.put(importedModule, dependentModules);
    350353                            }
     354                            dependentModules.add(moduleName);
    351355                        }
    352356                    }
     
    366370            delta.accept(new IResourceDeltaVisitor() {
    367371                public boolean visit (IResourceDelta delta) throws CoreException {
    368                     IResource resource = delta.getResource();
    369372                    switch (delta.getKind()) {
    370373                        case IResourceDelta.ADDED:
    371374                        case IResourceDelta.CHANGED:
    372                             if (RfpProject.isRfFile(resource) || RfpProject.isRfiFile(resource) || RfpProject.isRefFile(resource)) {
    373                                 String moduleName = rfpProject.getModuleName((IFile) resource);
    374                                 if (moduleName != null) {
    375                                     SortedSet<String> dependentModuleSet = dependencies.get(moduleName);
    376                                     if (dependentModuleSet != null)
    377                                         modulesToRecompile.addAll(dependentModuleSet);
    378                                     if (RfpProject.isRfFile(resource))
    379                                         modulesToRecompile.add(moduleName);
    380                                 }
     375                            String moduleName = rfpProject.getModuleName(delta.getResource());
     376                            if (moduleName != null) {
     377                                modulesToRecompile.add(moduleName);
     378                                SortedSet<String> dependentModuleSet = dependencies.get(moduleName);
     379                                if (dependentModuleSet != null)
     380                                    modulesToRecompile.addAll(dependentModuleSet);
    381381                            }
    382382                            break;
  • devel-tools/trunk/eclipse/org.refal.rfpdt.core/src/org/refal/rfpdt/core/RfpPreBuilder.java

    r4123 r4125  
    110110        IdeCompilerEnvironment env = new IdeCompilerEnvironment(getRfpProject(), moduleName);
    111111        AstImplem astImplem = Checker.getModuleImplementation(env);
    112         byte[] jbc = RefalInterfaceComplier.compile(astImplem);
    113         getRfpProject().writeClassFile(moduleName, jbc);
     112        if (astImplem != null) {
     113            byte[] jbc = RefalInterfaceComplier.compile(astImplem);
     114            getRfpProject().writeClassFile(moduleName, jbc);
     115        }
    114116    }
    115117
  • devel-tools/trunk/eclipse/org.refal.rfpdt.core/src/org/refal/rfpdt/core/RfpProject.java

    r4123 r4125  
    161161
    162162    /** May return <code>null</code>! */
     163    public String getModuleName (IResource file) {
     164        String extension = file.getFileExtension();
     165        if (file instanceof IFile && extension != null && (extension.equals("rf") || extension.equals("rfi") || extension.equals("ref")))
     166            return getModuleName((IFile) file);
     167        return null;
     168    }
     169
     170    /** May return <code>null</code>! */
    163171    public String getModuleName (IFile file) {
    164172        try {
  • devel-tools/trunk/eclipse/org.refal.rfpdt.core/src/org/refal/rfpdt/parser/Rf5Parser.java

    r4122 r4125  
    138138        AstName astName = name(s_rf5_block | ftk, MsgCode.MissingFunctionName);
    139139        AstAlt astAlt = block(ftk);
    140         AstSentence astSentence = new AstSentence(astAlt.pos, astAlt.pos, new AstStatement[] { astAlt });
    141         topNodeList.add(new AstFuncDef(SrcPosition.fromToInclusive(start, astSentence.pos), astName, astSentence));
     140        if (astAlt != null) {
     141            AstSentence astSentence = new AstSentence(astAlt.pos, astAlt.pos, new AstStatement[] { astAlt });
     142            topNodeList.add(new AstFuncDef(SrcPosition.fromToInclusive(start, astSentence.pos), astName, astSentence));
     143        }
    142144    }
    143145
Note: See TracChangeset for help on using the changeset viewer.