xo-reader2: recursive top-level function definition works

This commit is contained in:
Roland Conybeare 2026-02-17 18:32:41 -05:00
commit 9cb3c4b5b6
7 changed files with 222 additions and 13 deletions

View file

@ -51,6 +51,12 @@ namespace xo {
/** @defgroup scm-expectexpr-methods general methods **/
///@{
/** update state for this syntax on incoming leftparen token @p tk,
* with overall parser state in @p p_psm
**/
void on_leftparen_token(const Token & tk,
ParserStateMachine * p_psm);
/** update state for this syntax on incoming leftbrace token @p tk,
* with overall parser state in @p p_psm
**/
@ -81,8 +87,18 @@ namespace xo {
void on_string_token(const Token & tk,
ParserStateMachine * p_psm);
/** update state for this syntax on incoming if-token @p tk,
* overall parser state in @p p_psm.
*
* action: start nested if-else ssm
**/
void on_if_token(const Token & tk,
ParserStateMachine * p_psm);
/** update state for this syntax on incoming lambda token @p tk,
* overall parser state in @p p_psm
*
* action: start nested lambda ssm
**/
void on_lambda_token(const Token & tk,
ParserStateMachine * p_psm);

View file

@ -116,6 +116,14 @@ namespace xo {
void on_parsed_expression(obj<AExpression> expr,
ParserStateMachine * p_psm);
/** update ssm for expression @p expr (emitted by nested ssm)
* that's immediately followed by token @p tk
* with overall parser state in @p p_psm
**/
void on_parsed_expression_with_token(obj<AExpression> expr,
const Token & tk,
ParserStateMachine * p_psmn);
///@}
/** @defgroup scm-parenssm-printable-facet printable facet methods **/
///@{