Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Called for each parameter separator, for example, ",".
HRESULT Parameter (
long line,
long idx
);
Parameters
line
[in] Line position of the new parameter character for the parameter list, for example, ",".idx
[in] Index position of the new parameter character.
Return Value
If the method succeeds, it returns S_OK. If it fails, it returns an error code.
Remarks
This method is called when a new parameter is started, for example ",".
Call this method only if your IBabelService::ParseSource Method implementation is called with the ParseReason Enumeration value of ReasonMethodTip in the reason parameter. You should call IParseSink::Parameter once for each new parameter separator that is found in the span of text passed to you in the text parameter of IBabelService::ParseSource Method.
The Default Babel Implementation in the Language Service Package, this method is called from the StdService::parameter method that in turn can be called from within your grammar file. The Example in this topic shows how the parameter method is called when a method parameter list is parsed.
For a more detailed example of using the StdService::parameter method, see How to: Enable Parameter Info ToolTips.
Example
This is a fragment from the default parser.y grammar file that is created using the Visual Studio Language Service Wizard. This fragment shows how a method parameter list is parsed, specifically, how the arguments are handled with calls to the parameter method on the language service (g_service). The parameter method eventually calls the IParseSink::Parameter method.
ParenArguments
: StartArg EndArg { g_service->matchPair($1,$2); }
| StartArg Arguments1 EndArg { g_service->matchPair($1,$3); }
| StartArg Arguments1 error { g_service->endParameters(@3);
g_service->expectError( "unmatched parenthesis", ")" ); }
;
StartArg
: '(' { g_service->startParameters($1); }
;
EndArg
: ')' { g_service->endParameters($1); }
;
Arguments1
: Expr ',' { g_service->parameter($2); } Arguments1
| Expr
;
See Also
Concepts
How to: Enable Parameter Info ToolTips