package org.eclipse.dltk.tcl.core; import org.eclipse.dltk.ast.ASTNode; import org.eclipse.dltk.ast.declarations.ModuleDeclaration; import org.eclipse.dltk.ast.references.SimpleReference; import org.eclipse.dltk.compiler.problem.DefaultProblem; import org.eclipse.dltk.compiler.problem.IProblemReporter; import org.eclipse.dltk.compiler.problem.ProblemSeverity; public abstract class AbstractTclCommandProcessor implements ITclCommandProcessor { private ModuleDeclaration moduleDeclaration; private Object parameter; public ModuleDeclaration getModuleDeclaration() { return moduleDeclaration; } public void report(ITclParser parser, String message, ASTNode node, ProblemSeverity severity) { this.report(parser, message, node.sourceStart(), node.sourceEnd(), severity); } public void report(ITclParser parser, String message, int start, int end, ProblemSeverity severity) { IProblemReporter problemReporter = parser.getProblemReporter(); if (problemReporter == null) { return; } if (TclPlugin.REPORT_PARSER_PROBLEMS) { problemReporter.reportProblem(new DefaultProblem(message, 0, null, severity, start, end, parser.getCodeModel() .getLineNumberOfOffset(start))); } } public void addToParent(ASTNode parent, ASTNode node) { if (parent == null) { return; } TclParseUtil.addToDeclaration(parent, node); } public void setCurrentASTTree(ModuleDeclaration module) { this.moduleDeclaration = module; } public void setDetectedParameter(Object parameter) { this.parameter = parameter; } public Object getDetectedParameter() { return this.parameter; } public static String extractSimpleReference(ASTNode node) { if (node instanceof SimpleReference) { return ((SimpleReference) node).getName(); } return null; } }