139 lines
4.6 KiB
Text
139 lines
4.6 KiB
Text
{
|
|
mode: "facet",
|
|
// includes in ASyntaxStateMachine.hpp
|
|
includes: [
|
|
"\"ParserStateMachine.hpp\"",
|
|
"\"syntaxstatetype.hpp\"",
|
|
"<xo/tokenizer2/Token.hpp>",
|
|
"<xo/reflect/TypeDescr.hpp>",
|
|
],
|
|
// extra includes in SyntaxStateMachine.hpp, if any
|
|
user_hpp_includes: [],
|
|
namespace1: "xo",
|
|
namespace2: "scm",
|
|
// text after includes, before ASyntaxStateMachine
|
|
pretext: ["// {pretex} here"],
|
|
facet: "SyntaxStateMachine",
|
|
detail_subdir: "ssm",
|
|
brief: "specialized state machine for parsing some particular schematika syntax",
|
|
using_doxygen: true,
|
|
doc: [
|
|
"Assistant to schematika parser dedicated to particular syntax"
|
|
],
|
|
types: [
|
|
{ name: "TypeDescr", doc: [ "reflected c++ type" ], definition: "xo::reflect::TypeDescr" },
|
|
// { name: string, doc: [ string ], definition: string },
|
|
],
|
|
const_methods: [
|
|
{
|
|
name: "ssm_type",
|
|
doc: ["identify a type of syntax state machine"],
|
|
return_type: "syntaxstatetype",
|
|
args: [],
|
|
const: true,
|
|
noexcept: true,
|
|
attributes: [],
|
|
},
|
|
{
|
|
name: "get_expect_str",
|
|
doc: ["text describing expected/allowed input to this ssm in current state"],
|
|
return_type: "std::string_view",
|
|
args: [],
|
|
const: true,
|
|
noexcept: true,
|
|
attributes: [],
|
|
},
|
|
],
|
|
nonconst_methods: [
|
|
{
|
|
name: "on_symbol_token",
|
|
doc: ["operate state machine for incoming symbol-token @p tk"],
|
|
return_type: "void",
|
|
args: [
|
|
{type: "const Token &", name: "tk"},
|
|
{type: "ParserStateMachine *", name: "p_psm"},
|
|
],
|
|
},
|
|
{
|
|
name: "on_def_token",
|
|
doc: ["update state machine for incoming define-keyword-token @p tk"],
|
|
return_type: "void",
|
|
args: [
|
|
{type: "const Token &", name: "tk"},
|
|
{type: "ParserStateMachine *", name: "p_psm"},
|
|
],
|
|
},
|
|
{
|
|
name: "on_if_token",
|
|
doc: ["update state machine for incoming if-keyword-token @p tk"],
|
|
return_type: "void",
|
|
args: [
|
|
{type: "const Token &", name: "tk"},
|
|
{type: "ParserStateMachine *", name: "p_psm"},
|
|
],
|
|
},
|
|
{
|
|
name: "on_colon_token",
|
|
doc: ["update state machine for incoming colon-token @p tk"],
|
|
return_type: "void",
|
|
args: [
|
|
{type: "const Token &", name: "tk"},
|
|
{type: "ParserStateMachine *", name: "p_psm"},
|
|
],
|
|
},
|
|
{
|
|
name: "on_singleassign_token",
|
|
doc: ["update state machine for incoming singleassign-token @p tk"],
|
|
return_type: "void",
|
|
args: [
|
|
{type: "const Token &", name: "tk"},
|
|
{type: "ParserStateMachine *", name: "p_psm"},
|
|
],
|
|
},
|
|
{
|
|
name: "on_f64_token",
|
|
doc: ["update state machine for incoming f64-token @p tk"],
|
|
return_type: "void",
|
|
args: [
|
|
{type: "const Token &", name: "tk"},
|
|
{type: "ParserStateMachine *", name: "p_psm"},
|
|
],
|
|
},
|
|
{
|
|
name: "on_semicolon_token",
|
|
doc: ["update state machine for incoming semicolon-token @p tk"],
|
|
return_type: "void",
|
|
args: [
|
|
{type: "const Token &", name: "tk"},
|
|
{type: "ParserStateMachine *", name: "p_psm"},
|
|
],
|
|
},
|
|
{
|
|
name: "on_parsed_symbol",
|
|
doc: ["update stat machine for incoming parsed symbol @p sym"],
|
|
return_type: "void",
|
|
args: [
|
|
{type: "std::string_view", name: "sym"},
|
|
{type: "ParserStateMachine *", name: "p_psm"},
|
|
],
|
|
},
|
|
{
|
|
name: "on_parsed_typedescr",
|
|
doc: ["operate state machine for incoming type description @p td"],
|
|
return_type: "void",
|
|
args: [
|
|
{type: "TypeDescr", name: "td"},
|
|
{type: "ParserStateMachine *", name: "p_psm"},
|
|
],
|
|
},
|
|
{
|
|
name: "on_parsed_expression",
|
|
doc: ["update state machine for incoming parsed expression @p expr"],
|
|
return_type: "void",
|
|
args: [
|
|
{type: "obj<AExpression>", name: "expr"},
|
|
{type: "ParserStateMachine *", name: "p_psm"},
|
|
],
|
|
},
|
|
],
|
|
}
|