Commit 2253ae03 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ added logging for parsing errors (with FIXME level only), addressing #71

parent ac9153c3
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -6,9 +6,11 @@ import java.util.Iterator;
import java.util.List;
import java.util.concurrent.Callable;

import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.Resource.Diagnostic;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.naming.IQualifiedNameProvider;
@@ -23,6 +25,8 @@ import org.eclipse.xtext.scoping.impl.MultimapBasedSelectable;
import com.google.common.collect.Lists;

import de.ugoe.cs.swe.common.MiscTools;
import de.ugoe.cs.swe.common.logging.LoggingInterface;
import de.ugoe.cs.swe.common.logging.LoggingInterface.MessageClass;
import de.ugoe.cs.swe.scoping.TTCN3GlobalScopeProvider;
import de.ugoe.cs.swe.tTCN3.TTCN3Package;
import de.ugoe.cs.swe.validation.TTCN3StatisticsProvider;
@@ -30,10 +34,13 @@ import de.ugoe.cs.swe.validation.TTCN3StatisticsProvider;
public class FileParser implements Callable<Resource> {
	private final File file;
	private  final IQualifiedNameProvider qualifiedNameProvider;
	private final LoggingInterface logger;
	public static boolean printParsingErrors = false;

	public FileParser(final File file, final IQualifiedNameProvider qualifiedNameProvider) {
	public FileParser(final File file, final IQualifiedNameProvider qualifiedNameProvider, LoggingInterface logger) {
		this.file = file;
		this.qualifiedNameProvider = qualifiedNameProvider;
		this.logger = logger;
	}

	private Resource parseFile() {
@@ -54,6 +61,15 @@ public class FileParser implements Callable<Resource> {
		String path = file.getAbsolutePath();
		res = resourceSet.getResource(URI.createURI("file:///" + path), true);
				
		EList<Diagnostic> errors = res.getErrors();
		if (printParsingErrors) {
			for (Diagnostic d : errors) {
				TTCN3StatisticsProvider.getInstance().incrementCountUniversal();
				logger.logFix(res.getURI(), d.getLine(), d.getLine(), MessageClass.UNIVERSAL,
						d.getMessage());
			}
		}

		initExportedObjects(res);
		
		final long millisEnd = System.currentTimeMillis();
+1 −0
Original line number Diff line number Diff line
@@ -277,6 +277,7 @@ public class T3Q {
			}
			if (!l.toString().equals("FIXME") && !l.toString().equals("DEBUG"))
				possibleValues += l.toString() + ", ";
				FileParser.printParsingErrors = true;
				Analyzer.printUnresolvedObjects = true;
		}
		if (!selected) {
+2 −2
Original line number Diff line number Diff line
@@ -82,13 +82,13 @@ public class TTCN3ResourceProvider {
			File file = new File(path);
						
			if (file.isFile()) {
				parser.add(new FileParser(file, qualifiedNameProvider));
				parser.add(new FileParser(file, qualifiedNameProvider, logger));
			} else if (file.isDirectory()) {
				Collection<File> files = FileUtils.listFiles(file,
						new RegexFileFilter("^.*ttcn3$|^.*ttcn$|^.*3mp$"),
						DirectoryFileFilter.DIRECTORY);
				for (File f : files) {
					parser.add(new FileParser(f, qualifiedNameProvider));
					parser.add(new FileParser(f, qualifiedNameProvider, logger));
				}
			}
		}