public static CompilationUnit createAST()

in com.microsoft.java.lsif.core/src/com/microsoft/java/lsif/core/internal/indexer/ASTUtil.java [34:66]


	public static CompilationUnit createAST(final ITypeRoot input, final IProgressMonitor progressMonitor) {
		if (progressMonitor != null && progressMonitor.isCanceled()) {
			return null;
		}

		final CompilationUnit root[] = new CompilationUnit[1];

		try {
			if (progressMonitor != null && progressMonitor.isCanceled()) {
				return null;
			}
			if (input instanceof ICompilationUnit) {
				ICompilationUnit cu = (ICompilationUnit) input;
				if (cu.isWorkingCopy()) {
					root[0] = cu.reconcile(IASTSharedValues.SHARED_AST_LEVEL, true, null, progressMonitor);
				}
			}
			if (root[0] == null) {
				final ASTParser parser = newASTParser();
				parser.setSource(input);
				parser.setResolveBindings(true);
				root[0] = (CompilationUnit) parser.createAST(progressMonitor);
			}
			// mark as unmodifiable
			ASTNodes.setFlagsToAST(root[0], ASTNode.PROTECT);
		} catch (OperationCanceledException ex) {
			return null;
		} catch (Throwable e) {
			JavaLanguageServerPlugin.logException("Error in JDT Core during AST creation", e);
			return null;
		}
		return root[0];
	}