Share via


IParseSink Interface

Provides a custom Babel service with the requested parser information.

IParseSink : IDispatch

Methods in Vtable Order

The following table shows the methods of this interface.

Method

Description

IParseSink::ErrorMessage Method

Called to specify a message as a result of a parsing error.

IParseSink::MatchPair Method

Called when a matching pair is parsed.

IParseSink::MatchTriple Method

Called when a matching triple is parsed.

IParseSink::StartName Method

Called when an identifier is parsed.

IParseSink::QualifyName Method

Called when an identifier followed by a member selector is parsed.

IParseSink::AutoExpression Method

Called for each expression that should be provided for a user in the Auto Debugging window.

IParseSink::CodeSpan Method

Called for each region that contains executable code.

IParseSink::StartParameters Method

Called when the parameters of a method are started, for example, "(".

IParseSink::Parameter Method

Called for each parameter separator, for example, ",".

IParseSink::EndParameters Method

Called at the end of the parameters, for example, ")".

IParseSink::GetPackage Method

Returns an IBabelPackage Interface object representing the Babel package.

IParseSink::GetProject Method

Returns the project for the current source file.

IParseSink::GetFileName Method

Returns the complete file path of the current source.

IParseSink::AddScope Method

Adds to a symbol tree (or scope) using the default IScope Interface implementation.

IParseSink::AddInclude Method

Adds the scope of included items into the current scope. This feature is not yet implemented.

IParseSink::AddExtern Method

Add an external scope for the given span of text.

Remarks

All IParseSink methods can always be called during a parse but certain methods are only called when the IBabelService::ParseSource Method method is called with a certain reason. Since irrelevant calls are ignored by Babel, it might be efficient to only call relevant methods based on the parse reason.

Only build an IScope Interface object to return in your IBabelService::ParseSource Method implementation when the parse reason is ReasonCheck (see the ParseReason Enumeration enumeration for all possible parse reasons).

Notes for Implementers

There is no reason to implement your own version of this interface as the Babel Package always uses its own implementation.

Notes for Callers

This interface is passed to the language service in the IBabelService::ParseSource Method. Use this interface to provide Babel with the information it is requesting based on the text and a particular parse reason.

Requirements

Header: BabelService.idl

See Also

Reference

IBabelService::ParseSource Method

Other Resources

Babel Interfaces