Changeset 2372


Ignore:
Timestamp:
Feb 10, 2007, 3:33:12 PM (14 years ago)
Author:
roman
Message:

CompilerEnvironment?

File:
1 edited

Legend:

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

    r2281 r2372  
    2020import org.eclipse.core.runtime.IProgressMonitor;
    2121import org.refal.plus.comp.Checker;
     22import org.refal.plus.comp.CompilerEnvironment;
    2223import org.refal.plus.comp.MsgCode;
    2324import org.refal.plus.comp.MsgHandler;
     
    2526
    2627public class RfpBuilder extends IncrementalProjectBuilder {
     28
     29        private static final class IdeCompilerEnvironment implements
     30                        CompilerEnvironment {
     31                private final Reader reader;
     32
     33                private final MsgHandler handler;
     34
     35                private final String moduleName;
     36
     37                private IdeCompilerEnvironment(Reader reader, String moduleName,
     38                                MsgHandler handler) {
     39                        this.reader = reader;
     40                        this.handler = handler;
     41                        this.moduleName = moduleName;
     42                }
     43
     44                public void ReportImportedModules(String[] moduleNames) {
     45                        return;
     46                }
     47
     48                public Reader getImplemReader() {
     49                        return reader;
     50                }
     51
     52                public Reader getInterfReader() {
     53                        throw new UnsupportedOperationException();
     54                }
     55
     56                public Reader getModuleInterfReader(String moduleName) {
     57                        throw new UnsupportedOperationException();
     58                }
     59
     60                public String getModuleName() {
     61                        return moduleName;
     62                }
     63
     64                public MsgHandler getMsgHandler() {
     65                        return handler;
     66                }
     67        }
    2768
    2869        private class IdeMsgHandler extends MsgHandler {
     
    5596                        int severity = markerSeverity(msgCode);
    5697                        String msg = String.format(msgCode.getFormat(), args);
    57                         addMarker(file, msg, pos.line, pos.charStart, pos.charEnd,
    58                                         severity);
     98                        addMarker(file, msg, pos.line, pos.charStart, pos.charEnd, severity);
    5999                }
    60100        }
     
    71111                        case IResourceDelta.ADDED:
    72112                                // handle added resource
    73                                 checkRF(resource);
     113                                checkModuleImplem(resource);
    74114                                break;
    75115                        case IResourceDelta.REMOVED:
     
    78118                        case IResourceDelta.CHANGED:
    79119                                // handle changed resource
    80                                 checkRF(resource);
     120                                checkModuleImplem(resource);
    81121                                break;
    82122                        }
     
    88128        class RfpResourceVisitor implements IResourceVisitor {
    89129                public boolean visit(IResource resource) {
    90                         checkRF(resource);
     130                        checkModuleImplem(resource);
    91131                        // return true to continue visiting children.
    92132                        return true;
     
    137177        }
    138178
    139         void checkRF(IResource resource) {
     179        void checkModuleImplem(IResource resource) {
    140180                if (resource instanceof IFile && resource.getName().endsWith(".rf")) {
    141                         IFile file = (IFile) resource;
     181                        final IFile file = (IFile) resource;
     182                        String fileName = file.getName();
     183                        final String moduleName = fileName.substring(0,
     184                                        fileName.length() - 3);
    142185                        IPath path = file.getProjectRelativePath();
    143186                        deleteMarkers(file);
    144                         MsgHandler msgHandler = new IdeMsgHandler(file);
     187                        final MsgHandler msgHandler = new IdeMsgHandler(file);
    145188
    146189                        try {
    147190                                InputStream inputStream = file.getContents();
    148191                                String charSet = file.getCharset();
    149                                 Reader streamReader = new InputStreamReader(inputStream,
    150                                                 charSet);
    151                                 PushbackReader reader = new PushbackReader(streamReader);
    152                                 Checker.checkRf(reader, path.toString(), msgHandler);
     192                                Reader reader = new InputStreamReader(inputStream, charSet);
     193                                CompilerEnvironment environment = new IdeCompilerEnvironment(
     194                                                reader, moduleName, msgHandler);
     195                                Checker.checkModuleImplementation(environment);
    153196                                return;
    154197                        } catch (Exception e) {
Note: See TracChangeset for help on using the changeset viewer.