mirror of
https://github.com/Minres/RDL-Editor.git
synced 2025-09-05 02:21:24 +01:00
Iniital checkin
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,67 @@
|
||||
package com.minres.rdl.messages;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import org.antlr.runtime.RecognitionException;
|
||||
import org.antlr.runtime.Token;
|
||||
import org.eclipse.xtend2.lib.StringConcatenation;
|
||||
import org.eclipse.xtext.GrammarUtil;
|
||||
import org.eclipse.xtext.IGrammarAccess;
|
||||
import org.eclipse.xtext.nodemodel.SyntaxErrorMessage;
|
||||
import org.eclipse.xtext.parser.antlr.ISyntaxErrorMessageProvider;
|
||||
import org.eclipse.xtext.parser.antlr.SyntaxErrorMessageProvider;
|
||||
import org.eclipse.xtext.xbase.lib.InputOutput;
|
||||
|
||||
@SuppressWarnings("all")
|
||||
public class RDLSyntaxErrorMessageProvider extends SyntaxErrorMessageProvider {
|
||||
public final static String USED_RESERVED_KEYWORD = "USED_RESERVED_KEYWORD";
|
||||
|
||||
@Inject
|
||||
private IGrammarAccess grammarAccess;
|
||||
|
||||
/**
|
||||
* Customized error message for reserved keywords
|
||||
*/
|
||||
@Override
|
||||
public SyntaxErrorMessage getSyntaxErrorMessage(final ISyntaxErrorMessageProvider.IParserErrorContext context) {
|
||||
SyntaxErrorMessage _xblockexpression = null;
|
||||
{
|
||||
InputOutput.println();
|
||||
RecognitionException _recognitionException = null;
|
||||
if (context!=null) {
|
||||
_recognitionException=context.getRecognitionException();
|
||||
}
|
||||
if (_recognitionException!=null) {
|
||||
_recognitionException.getClass();
|
||||
}
|
||||
RecognitionException _recognitionException_1 = null;
|
||||
if (context!=null) {
|
||||
_recognitionException_1=context.getRecognitionException();
|
||||
}
|
||||
Token _ken = null;
|
||||
if (_recognitionException_1!=null) {
|
||||
_ken=_recognitionException_1.token;
|
||||
}
|
||||
String _text = null;
|
||||
if (_ken!=null) {
|
||||
_text=_ken.getText();
|
||||
}
|
||||
final String unexpectedText = _text;
|
||||
boolean _contains = GrammarUtil.getAllKeywords(this.grammarAccess.getGrammar()).contains(unexpectedText);
|
||||
if (_contains) {
|
||||
InputOutput.<String>println(context.getDefaultMessage());
|
||||
StringConcatenation _builder = new StringConcatenation();
|
||||
_builder.append("\"");
|
||||
_builder.append(unexpectedText);
|
||||
_builder.append("\" is a reserved keyword which is not allowed as Identifier.");
|
||||
_builder.newLineIfNotEmpty();
|
||||
_builder.append("Please choose another word or alternatively confuse your co-workers by escaping it with the caret (^) character like this: \"^");
|
||||
_builder.append(unexpectedText);
|
||||
_builder.append("\".");
|
||||
return new SyntaxErrorMessage(_builder.toString(),
|
||||
RDLSyntaxErrorMessageProvider.USED_RESERVED_KEYWORD);
|
||||
}
|
||||
_xblockexpression = super.getSyntaxErrorMessage(context);
|
||||
}
|
||||
return _xblockexpression;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user