diff options
| author | Shinya Sato <shinnya.sato@gmail.com> | 2023-01-28 18:54:15 +0900 |
|---|---|---|
| committer | Shinya Sato <shinnya.sato@gmail.com> | 2023-01-28 18:54:15 +0900 |
| commit | d8d86dded538fb503eab413a43ae2829e41f8e15 (patch) | |
| tree | fa86100fc67444d5d8ae1b4785f4bede8b973045 /src/ast.c | |
| parent | 47df25063a7994b586b4171b52d6eaa61ba9262d (diff) | |
| download | inpla-d8d86dded538fb503eab413a43ae2829e41f8e15.tar.gz inpla-d8d86dded538fb503eab413a43ae2829e41f8e15.zip | |
v0.10.4
Diffstat (limited to 'src/ast.c')
| -rw-r--r-- | src/ast.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -309,7 +309,7 @@ void ast_puts(Ast *p) { } -Ast *ast_unfoldABR(Ast *left_params, char *sym, Ast *paramlist) { +Ast *ast_unfoldABR(Ast *left_params, char *sym, Ast *paramlist, Ast *annotate) { // input: // left_params << (AST_AGENT, sym, paramlist) @@ -384,8 +384,13 @@ Ast *ast_unfoldABR(Ast *left_params, char *sym, Ast *paramlist) { } // ast_puts(left);puts(""); - + Ast *agent_left = ast_makeAST(AST_AGENT, ast_makeSymbol(sym), left_params); + if (annotate != NULL) { + // replace (AST_ANNOTATE NULL NULL) with (AST_ANNOTATE agent_left NULL) + annotate->left = agent_left; + agent_left = annotate; + } Ast *agent_right = param; Ast *cnct = ast_makeAST(AST_CNCT, agent_left, agent_right); |
