private void processParsing(FileObject fileObject, Snapshot snapshot, SourceModificationEvent event) {
PhpLanguageProperties languageProperties = PhpLanguageProperties.forFileObject(fileObject);
if (!projectPropertiesListenerAdded) {
PropertyChangeListener weakListener = WeakListeners.propertyChange(this, languageProperties);
languageProperties.addPropertyChangeListener(weakListener);
projectPropertiesListenerAdded = true;
}
shortTags = languageProperties.areShortTagsEnabled();
aspTags = languageProperties.areAspTagsEnabled();
try {
int caretOffset = GsfUtilities.getLastKnownCaretOffset(snapshot, event);
LOGGER.log(Level.FINE, "caretOffset: {0}", caretOffset);
Context context = new Context(snapshot, caretOffset);
result = parseBuffer(context, Sanitize.NONE, null);
} catch (Exception exception) {
LOGGER.log(Level.FINE, "Exception during parsing: {0}", exception);
int end = snapshot.getText().toString().length();
ASTError error = new ASTError(0, end);
List<Statement> statements = new ArrayList<>();
statements.add(error);
Program emptyProgram = new Program(0, end, statements, Collections.<Comment>emptyList());
result = new PHPParseResult(snapshot, emptyProgram);
}
}