Java源码示例:org.eclipse.xtext.parser.IParser

示例1
/**
 * Parses the given string with the parser of the Xtext language denoted by the given file extension. In case of
 * syntax errors, the returned parse result will have a non-empty list of {@link ParseResult#errors}.
 */
public static <T extends EObject> ParseResult<T> parseXtextLanguage(String fileExtOfLanguage,
		ParserRule parserRuleOrNull, Class<T> expectedTypeOfRoot, Reader sourceReader) {
	final IParser parser = getServiceForContext(fileExtOfLanguage, IParser.class)
			.orElseThrow(() -> new RuntimeException(
					"Cannot obtain Xtext parser for language with file extension: " + fileExtOfLanguage));
	final IParseResult result;
	if (parserRuleOrNull != null) {
		result = parser.parse(parserRuleOrNull, sourceReader);
	} else {
		result = parser.parse(sourceReader);
	}
	final Iterable<SyntaxErrorMessage> errors = Iterables.transform(result.getSyntaxErrors(),
			node -> node.getSyntaxErrorMessage());
	final EObject root = result.getRootASTElement();
	if (root != null && expectedTypeOfRoot.isInstance(root)) {
		final T rootCasted = expectedTypeOfRoot.cast(root);
		return new ParseResult<>(rootCasted, errors);
	}
	return new ParseResult<>(null, errors);
}
 
示例2
private HtmlTag findOpenTag(String htmlLabelText, int offset) {
	Injector htmlLabelInjector = DotActivator.getInstance().getInjector(
			DotActivator.ORG_ECLIPSE_GEF_DOT_INTERNAL_LANGUAGE_DOTHTMLLABEL);
	IParser htmlLabelParser = htmlLabelInjector.getInstance(IParser.class);

	HtmlLabel htmlLabel = (HtmlLabel) htmlLabelParser
			.parse(new StringReader(htmlLabelText)).getRootASTElement();

	if (htmlLabel != null) {
		HtmlContent result = findContentAtOffset(htmlLabel.getParts(),
				offset);

		if (result != null) {
			return result.getTag();
		}
	}

	return null;
}
 
示例3
public FontName parseHtmlFontFace(String face) {
	if (face == null) {
		return null;
	}
	IParser parser = DotActivator.getInstance().getInjector(
			DotActivator.ORG_ECLIPSE_GEF_DOT_INTERNAL_LANGUAGE_DOTFONTNAME)
			.getInstance(IParser.class);
	EObject rootNode = parser.parse(new StringReader(face))
			.getRootASTElement();
	if (rootNode instanceof FontName) {
		return (FontName) rootNode;
	}
	return null;
}
 
示例4
/**
 * Returns the {@link Color} of a HTML-like label color attribute
 *
 * @param htmlColor
 *            The string attribute value.
 * @return The corresponding {@link Color}.
 */
public Color computeHtmlColor(String htmlColor) {
	if (htmlColor == null) {
		return null;
	}
	IParser parser = DotActivator.getInstance().getInjector(
			DotActivator.ORG_ECLIPSE_GEF_DOT_INTERNAL_LANGUAGE_DOTCOLOR)
			.getInstance(IParser.class);
	EObject rootNode = parser.parse(new StringReader(htmlColor))
			.getRootASTElement();
	if (rootNode instanceof Color) {
		return (Color) rootNode;
	}
	return null;
}
 
示例5
public Class<? extends IParser> bindIParser() {
	return FormatterTestLanguageParser.class;
}
 
示例6
public Class<? extends IParser> bindIParser() {
	return SemverParser.class;
}
 
示例7
public Class<? extends IParser> bindIParser() {
	return ActionTestLanguage3Parser.class;
}
 
示例8
public Class<? extends IParser> bindIParser() {
	return RegularExpressionParser.class;
}
 
示例9
public Class<? extends IParser> bindIParser() {
	return RefactoringTestLanguageParser.class;
}
 
示例10
public Class<? extends IParser> bindIParser() {
	return EObjectAtOffsetTestLanguageParser.class;
}
 
示例11
public Class<? extends IParser> bindIParser() {
	return HiddenTokenSequencerTestLanguageParser.class;
}
 
示例12
public Class<? extends IParser> bindIParser() {
	return JSONParser.class;
}
 
示例13
public Class<? extends IParser> bindIParser() {
	return LiveContainerBuilderIntegerationTestLanguageParser.class;
}
 
示例14
public Class<? extends IParser> bindIParser() {
	return Bug292245TestLanguageParser.class;
}
 
示例15
public Class<? extends IParser> bindIParser() {
	return XbaseWithAnnotationsParser.class;
}
 
示例16
protected IParseResult fullyReparse(final IParser parser, final IParseResult previousParseResult, final ReplaceRegion replaceRegion) {
  unloadSemanticObject(previousParseResult.getRootASTElement());
  String reparseRegion = insertChangeIntoReplaceRegion(previousParseResult.getRootNode(), replaceRegion);
  return parser.parse(new StringReader(reparseRegion));
}
 
示例17
public void setParser(IParser parser) {
	this.parser = parser;
}
 
示例18
public Class<? extends IParser> bindIParser() {
	return NoParametersTestLanguageParser.class;
}
 
示例19
protected IParseResult fullyReparse(IParser parser, IParseResult previousParseResult, ReplaceRegion replaceRegion) {
	unloadSemanticObject(previousParseResult.getRootASTElement());
	String reparseRegion = insertChangeIntoReplaceRegion(previousParseResult.getRootNode(), replaceRegion);
	return parser.parse(new StringReader(reparseRegion));
}
 
示例20
public Class<? extends IParser> bindIParser() {
	return RefactoringTestLanguageParser.class;
}
 
示例21
public Class<? extends IParser> bindIParser() {
	return RefactoringTestLanguage1Parser.class;
}
 
示例22
public Class<? extends IParser> bindIParser() {
	return SimpleExpressionsTestLanguageParser.class;
}
 
示例23
public Class<? extends IParser> bindIParser() {
	return LocationProviderTestLanguageParser.class;
}
 
示例24
public Class<? extends IParser> bindIParser() {
	return StatemachineParser.class;
}
 
示例25
public Class<? extends IParser> bindIParser() {
	return IgnoreCaseNamespacesTestLanguageParser.class;
}
 
示例26
public Class<? extends IParser> bindIParser() {
	return XtextGrammarTestLanguageParser.class;
}
 
示例27
public Class<? extends IParser> bindIParser() {
	return Bug462047LangParser.class;
}
 
示例28
public Class<? extends IParser> bindIParser() {
	return Bug287184TestLanguageParser.class;
}
 
示例29
public Class<? extends IParser> bindIParser() {
	return AssignmentFinderTestLanguageParser.class;
}
 
示例30
public Class<? extends IParser> bindIParser() {
	return IgnoreCaseLexerTestLanguageParser.class;
}