mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-24 16:38:57 +00:00
lemon-boundary debug iterate
This commit is contained in:
parent
d63c32d404
commit
aa4bf75c36
6 changed files with 267 additions and 223 deletions
|
|
@ -26,8 +26,11 @@ LFLAGS=-lm
|
|||
INSTALLDIR=/usr/local/bin
|
||||
|
||||
CCOPT=$(CC) $(CFLAGS) $(IFLAGS) $(WFLAGS) -O3
|
||||
#CCOPT=clang -fsanitize=address $(CFLAGS) $(IFLAGS) $(WFLAGS) -O3
|
||||
|
||||
#CCDEBUG=$(CC) -g -O1 $(CFLAGS) $(IFLAGS) $(WFLAGS)
|
||||
CCDEBUG=$(CC) -g $(CFLAGS) $(IFLAGS) $(WFLAGS)
|
||||
#CCDEBUG=clang -g -fsanitize=address $(CFLAGS) $(IFLAGS) $(WFLAGS)
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
# Miller source except DSL
|
||||
|
|
|
|||
|
|
@ -6,10 +6,17 @@
|
|||
# ================================================================
|
||||
|
||||
CC=gcc
|
||||
|
||||
CFLAGS=-I.. -O3
|
||||
#CFLAGS=-I.. -O3 -g
|
||||
#CFLAGS=-I.. -O2
|
||||
#CFLAGS=-I.. -O1 -g
|
||||
#CFLAGS=-I.. -O1
|
||||
#CFLAGS=-I.. -O0
|
||||
#CFLAGS=-I.. -g
|
||||
|
||||
#CC=clang
|
||||
#CFLAGS=-I.. -O1 -g -fsanitize=address
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
top: mlr_dsl_lexer.o mlr_dsl_parse.o mlr_dsl_wrapper.o
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
/* First off, code is include which follows the "include" declaration
|
||||
** in the input file. */
|
||||
#include <stdio.h>
|
||||
#undef NDEBUG // xxx temp
|
||||
%%
|
||||
/* Next is all token values, in a form suitable for use by makeheaders.
|
||||
** This section will be null unless lemon is run with the -m switch.
|
||||
|
|
@ -447,13 +448,22 @@ static void yy_reduce(
|
|||
lemon_parser_t *pparser, /* The parser */
|
||||
int yyruleno) /* Number of the rule by which to reduce */
|
||||
{
|
||||
int yygoto; /* The next state */
|
||||
int yyact; /* The next action */
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
int yygoto = -999 ; /* The next state */
|
||||
int yyact = -999; /* The next action */
|
||||
YYMINORTYPE yygotominor; /* The LHS of the rule reduced */
|
||||
// xxx
|
||||
//printf("PRE MEMSET\n");
|
||||
//memset(&yygotominor, 0, sizeof(yygotominor));
|
||||
//printf("POST MEMSET\n");
|
||||
yyStackEntry *yymsp; /* The top of the parser's stack */
|
||||
int yysize; /* Amount to pop the stack */
|
||||
// xxx remove x all
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
ParseARG_FETCH;
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
yymsp = &pparser->yystack[pparser->yyidx];
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
#ifndef NDEBUG
|
||||
if (yyTraceFILE && yyruleno>=0
|
||||
&& yyruleno<sizeof(yyRuleName)/sizeof(yyRuleName[0])) {
|
||||
|
|
@ -462,7 +472,9 @@ static void yy_reduce(
|
|||
}
|
||||
#endif /* NDEBUG */
|
||||
|
||||
//printf("-- %s %d (%d)\n", __FILE__, __LINE__, yyruleno);
|
||||
switch (yyruleno) {
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
/* Beginning here are the reduction cases. A typical example
|
||||
** follows:
|
||||
** case 0:
|
||||
|
|
@ -472,16 +484,24 @@ static void yy_reduce(
|
|||
** break;
|
||||
*/
|
||||
%%
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
};
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
yygoto = yyRuleInfo[yyruleno].lhs;
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
yysize = yyRuleInfo[yyruleno].nrhs;
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
pparser->yyidx -= yysize;
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
yyact = yy_find_reduce_action(pparser,yygoto);
|
||||
if (yyact < YYNSTATE) {
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
yy_shift(pparser,yyact,yygoto,&yygotominor);
|
||||
} else if (yyact == YYNSTATE + YYNRULE + 1) {
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
yy_accept(pparser);
|
||||
}
|
||||
//printf("-- %s %d\n", __FILE__, __LINE__);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -140,33 +140,33 @@ md_statement_not_braced_end ::= md_filter.
|
|||
md_statement_not_braced_end ::= md_unset.
|
||||
|
||||
md_statement_not_braced_end ::= md_emitf.
|
||||
//md_statement_not_braced_end ::= md_emitf_write.
|
||||
//md_statement_not_braced_end ::= md_emitf_append.
|
||||
//@@md_statement_not_braced_end ::= md_emitf_write.
|
||||
//@@md_statement_not_braced_end ::= md_emitf_append.
|
||||
md_statement_not_braced_end ::= md_emitp.
|
||||
//md_statement_not_braced_end ::= md_emitp_write.
|
||||
//md_statement_not_braced_end ::= md_emitp_append.
|
||||
//@@md_statement_not_braced_end ::= md_emitp_write.
|
||||
//@@md_statement_not_braced_end ::= md_emitp_append.
|
||||
md_statement_not_braced_end ::= md_emit.
|
||||
//md_statement_not_braced_end ::= md_emit_write.
|
||||
//md_statement_not_braced_end ::= md_emit_append.
|
||||
//@@md_statement_not_braced_end ::= md_emit_write.
|
||||
//@@md_statement_not_braced_end ::= md_emit_append.
|
||||
md_statement_not_braced_end ::= md_emitp_lashed.
|
||||
//md_statement_not_braced_end ::= md_emitp_lashed_write.
|
||||
//md_statement_not_braced_end ::= md_emitp_lashed_append.
|
||||
//@@md_statement_not_braced_end ::= md_emitp_lashed_write.
|
||||
//@@md_statement_not_braced_end ::= md_emitp_lashed_append.
|
||||
md_statement_not_braced_end ::= md_emit_lashed.
|
||||
//md_statement_not_braced_end ::= md_emit_lashed_write.
|
||||
//md_statement_not_braced_end ::= md_emit_lashed_append.
|
||||
//@@md_statement_not_braced_end ::= md_emit_lashed_write.
|
||||
//@@md_statement_not_braced_end ::= md_emit_lashed_append.
|
||||
|
||||
md_statement_not_braced_end ::= md_dump.
|
||||
//md_statement_not_braced_end ::= md_dump_write.
|
||||
//md_statement_not_braced_end ::= md_dump_append.
|
||||
//@@md_statement_not_braced_end ::= md_dump_write.
|
||||
//@@md_statement_not_braced_end ::= md_dump_append.
|
||||
md_statement_not_braced_end ::= md_edump.
|
||||
md_statement_not_braced_end ::= md_print.
|
||||
md_statement_not_braced_end ::= md_eprint.
|
||||
//md_statement_not_braced_end ::= md_print_write.
|
||||
//md_statement_not_braced_end ::= md_print_append.
|
||||
//@@md_statement_not_braced_end ::= md_print_write.
|
||||
//@@md_statement_not_braced_end ::= md_print_append.
|
||||
md_statement_not_braced_end ::= md_printn.
|
||||
md_statement_not_braced_end ::= md_eprintn.
|
||||
//md_statement_not_braced_end ::= md_printn_write.
|
||||
//md_statement_not_braced_end ::= md_printn_append.
|
||||
//@@md_statement_not_braced_end ::= md_printn_write.
|
||||
//@@md_statement_not_braced_end ::= md_printn_append.
|
||||
|
||||
// Valid only within for/while, but we accept them here syntactically and reject them in the AST-to-CST
|
||||
// conversion, where we can produce much more informative error messages:
|
||||
|
|
@ -613,14 +613,14 @@ md_emitf_args(A) ::= md_emitf_args(B) MD_TOKEN_COMMA md_oosvar_keylist(C). {
|
|||
A = mlr_dsl_ast_node_append_arg(B, C);
|
||||
}
|
||||
|
||||
//md_emitf_write(A) ::= MD_TOKEN_EMITF(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA md_emitf_args(B). {
|
||||
// B = mlr_dsl_ast_node_set_function_name(B, O->text);
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITF_WRITE, B, F);
|
||||
//}
|
||||
//md_emitf_append(A) ::= MD_TOKEN_EMITF(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA md_emitf_args(B). {
|
||||
// B = mlr_dsl_ast_node_set_function_name(B, O->text);
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITF_APPEND, B, F);
|
||||
//}
|
||||
//@@md_emitf_write(A) ::= MD_TOKEN_EMITF(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA md_emitf_args(B). {
|
||||
//@@ B = mlr_dsl_ast_node_set_function_name(B, O->text);
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITF_WRITE, B, F);
|
||||
//@@}
|
||||
//@@md_emitf_append(A) ::= MD_TOKEN_EMITF(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA md_emitf_args(B). {
|
||||
//@@ B = mlr_dsl_ast_node_set_function_name(B, O->text);
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITF_APPEND, B, F);
|
||||
//@@}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
md_emitp(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_ALL(B). {
|
||||
|
|
@ -642,67 +642,67 @@ md_emitp(A) ::= MD_TOKEN_EMITP(O) md_oosvar_keylist(B) MD_TOKEN_COMMA md_emitp_n
|
|||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP, B, C);
|
||||
}
|
||||
|
||||
//md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_ALL(B).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, F);
|
||||
//}
|
||||
//md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, C, F);
|
||||
//}
|
||||
//md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_FULL_OOSVAR(B).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, F);
|
||||
//}
|
||||
//md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, C, F);
|
||||
//}
|
||||
//md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// md_oosvar_keylist(B).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, F);
|
||||
//}
|
||||
//md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// md_oosvar_keylist(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, C, F);
|
||||
//}
|
||||
//@@md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_ALL(B).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, F);
|
||||
//@@}
|
||||
//@@md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, C, F);
|
||||
//@@}
|
||||
//@@md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_FULL_OOSVAR(B).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, F);
|
||||
//@@}
|
||||
//@@md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, C, F);
|
||||
//@@}
|
||||
//@@md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ md_oosvar_keylist(B).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, F);
|
||||
//@@}
|
||||
//@@md_emitp_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ md_oosvar_keylist(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, C, F);
|
||||
//@@}
|
||||
|
||||
//md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_ALL(B).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_APPEND, B, F);
|
||||
//}
|
||||
//md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_APPEND, B, C, F);
|
||||
//}
|
||||
//md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_FULL_OOSVAR(B).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, F);
|
||||
//}
|
||||
//md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, C, F);
|
||||
//}
|
||||
//md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
// md_oosvar_keylist(B).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_APPEND, B, F);
|
||||
//}
|
||||
//md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
// md_oosvar_keylist(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_APPEND, B, C, F);
|
||||
//}
|
||||
//@@md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_ALL(B).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_APPEND, B, F);
|
||||
//@@}
|
||||
//@@md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_APPEND, B, C, F);
|
||||
//@@}
|
||||
//@@md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_FULL_OOSVAR(B).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, F);
|
||||
//@@}
|
||||
//@@md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_WRITE, B, C, F);
|
||||
//@@}
|
||||
//@@md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ md_oosvar_keylist(B).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_APPEND, B, F);
|
||||
//@@}
|
||||
//@@md_emitp_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ md_oosvar_keylist(B) MD_TOKEN_COMMA md_emitp_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_APPEND, B, C, F);
|
||||
//@@}
|
||||
|
||||
md_emitp_namelist(A) ::= md_rhs(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary("emitp_namelist", MD_AST_NODE_TYPE_EMITP, B);
|
||||
|
|
@ -733,81 +733,81 @@ md_emit(A) ::= MD_TOKEN_EMIT(O) md_oosvar_keylist(B) MD_TOKEN_COMMA md_emit_name
|
|||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT, B, C);
|
||||
}
|
||||
|
||||
//md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_ALL(B).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, F);
|
||||
//}
|
||||
//md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, C, F);
|
||||
//}
|
||||
//md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_FULL_OOSVAR(B).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, F);
|
||||
//}
|
||||
//md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, C, F);
|
||||
//}
|
||||
//md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// md_oosvar_keylist(B).
|
||||
//{
|
||||
// // xxx
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, F);
|
||||
//}
|
||||
//md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// md_oosvar_keylist(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, C, F);
|
||||
//}
|
||||
//@@md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_ALL(B).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, F);
|
||||
//@@}
|
||||
//@@md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, C, F);
|
||||
//@@}
|
||||
//@@md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_FULL_OOSVAR(B).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, F);
|
||||
//@@}
|
||||
//@@md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, C, F);
|
||||
//@@}
|
||||
//@@md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ md_oosvar_keylist(B).
|
||||
//@@{
|
||||
//@@ // xxx
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, F);
|
||||
//@@}
|
||||
//@@md_emit_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ md_oosvar_keylist(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, C, F);
|
||||
//@@}
|
||||
|
||||
//md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_ALL(B).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND, B, F);
|
||||
//}
|
||||
//md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND, B, C, F);
|
||||
//}
|
||||
//md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_FULL_OOSVAR(B).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, F);
|
||||
//}
|
||||
//md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, C, F);
|
||||
//}
|
||||
//md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_IF md_rhs(F) MD_TOKEN_COMMA
|
||||
// md_oosvar_keylist(B).
|
||||
//{
|
||||
// // xxx
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND, B, F);
|
||||
//}
|
||||
//md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_POW md_rhs(F) MD_TOKEN_COMMA
|
||||
// md_oosvar_keylist(B).
|
||||
//{
|
||||
// // xxx
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND, B, F);
|
||||
//}
|
||||
//md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
// md_oosvar_keylist(B).
|
||||
//{
|
||||
// // xxx
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND, B, F);
|
||||
//}
|
||||
//md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
// md_oosvar_keylist(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND, B, C, F);
|
||||
//}
|
||||
//@@md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_ALL(B).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND, B, F);
|
||||
//@@}
|
||||
//@@md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_ALL(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND, B, C, F);
|
||||
//@@}
|
||||
//@@md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_FULL_OOSVAR(B).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, F);
|
||||
//@@}
|
||||
//@@md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_FULL_OOSVAR(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_WRITE, B, C, F);
|
||||
//@@}
|
||||
//@@md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_IF md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ md_oosvar_keylist(B).
|
||||
//@@{
|
||||
//@@ // xxx
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND, B, F);
|
||||
//@@}
|
||||
//@@md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_POW md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ md_oosvar_keylist(B).
|
||||
//@@{
|
||||
//@@ // xxx
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND, B, F);
|
||||
//@@}
|
||||
//@@md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ md_oosvar_keylist(B).
|
||||
//@@{
|
||||
//@@ // xxx
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND, B, F);
|
||||
//@@}
|
||||
//@@md_emit_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RHS md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ md_oosvar_keylist(B) MD_TOKEN_COMMA md_emit_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_APPEND, B, C, F);
|
||||
//@@}
|
||||
|
||||
md_emit_namelist(A) ::= md_rhs(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary("emit_namelist", MD_AST_NODE_TYPE_EMIT, B);
|
||||
|
|
@ -829,29 +829,29 @@ md_emitp_lashed(A) ::= MD_TOKEN_EMITP(O)
|
|||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_LASHED, B, C);
|
||||
}
|
||||
|
||||
//md_emitp_lashed_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_LPAREN md_emitp_lashed_keylists(B) MD_TOKEN_RPAREN.
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_LASHED_WRITE, B, F);
|
||||
//}
|
||||
//md_emitp_lashed_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_LPAREN md_emitp_lashed_keylists(B) MD_TOKEN_RPAREN
|
||||
// MD_TOKEN_COMMA md_emitp_lashed_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_LASHED_WRITE, B, C, F);
|
||||
//}
|
||||
//@@md_emitp_lashed_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_LPAREN md_emitp_lashed_keylists(B) MD_TOKEN_RPAREN.
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_LASHED_WRITE, B, F);
|
||||
//@@}
|
||||
//@@md_emitp_lashed_write(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_LPAREN md_emitp_lashed_keylists(B) MD_TOKEN_RPAREN
|
||||
//@@ MD_TOKEN_COMMA md_emitp_lashed_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_LASHED_WRITE, B, C, F);
|
||||
//@@}
|
||||
|
||||
//md_emitp_lashed_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_LPAREN md_emitp_lashed_keylists(B) MD_TOKEN_RPAREN.
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_LASHED_APPEND, B, F);
|
||||
//}
|
||||
//md_emitp_lashed_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_LPAREN md_emitp_lashed_keylists(B) MD_TOKEN_RPAREN
|
||||
// MD_TOKEN_COMMA md_emitp_lashed_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_LASHED_APPEND, B, C, F);
|
||||
//}
|
||||
//@@md_emitp_lashed_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_LPAREN md_emitp_lashed_keylists(B) MD_TOKEN_RPAREN.
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMITP_LASHED_APPEND, B, F);
|
||||
//@@}
|
||||
//@@md_emitp_lashed_append(A) ::= MD_TOKEN_EMITP(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_LPAREN md_emitp_lashed_keylists(B) MD_TOKEN_RPAREN
|
||||
//@@ MD_TOKEN_COMMA md_emitp_lashed_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMITP_LASHED_APPEND, B, C, F);
|
||||
//@@}
|
||||
|
||||
md_emitp_lashed_keylists(A) ::= md_oosvar_keylist(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary("lashed_keylists", MD_AST_NODE_TYPE_EMITP_LASHED, B);
|
||||
|
|
@ -880,29 +880,29 @@ md_emit_lashed(A) ::= MD_TOKEN_EMIT(O)
|
|||
A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_LASHED, B, C);
|
||||
}
|
||||
|
||||
//md_emit_lashed_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_LPAREN md_emit_lashed_keylists(B) MD_TOKEN_RPAREN.
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_LASHED_WRITE, B, F);
|
||||
//}
|
||||
//md_emit_lashed_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_LPAREN md_emit_lashed_keylists(B) MD_TOKEN_RPAREN
|
||||
// MD_TOKEN_COMMA md_emit_lashed_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_LASHED_WRITE, B, C, F);
|
||||
//}
|
||||
//@@md_emit_lashed_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_LPAREN md_emit_lashed_keylists(B) MD_TOKEN_RPAREN.
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_LASHED_WRITE, B, F);
|
||||
//@@}
|
||||
//@@md_emit_lashed_write(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_LPAREN md_emit_lashed_keylists(B) MD_TOKEN_RPAREN
|
||||
//@@ MD_TOKEN_COMMA md_emit_lashed_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_LASHED_WRITE, B, C, F);
|
||||
//@@}
|
||||
|
||||
//md_emit_lashed_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_LPAREN md_emit_lashed_keylists(B) MD_TOKEN_RPAREN.
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_LASHED_APPEND, B, F);
|
||||
//}
|
||||
//md_emit_lashed_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA
|
||||
// MD_TOKEN_LPAREN md_emit_lashed_keylists(B) MD_TOKEN_RPAREN
|
||||
// MD_TOKEN_COMMA md_emit_lashed_namelist(C).
|
||||
//{
|
||||
// A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_LASHED_APPEND, B, C, F);
|
||||
//}
|
||||
//@@md_emit_lashed_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_LPAREN md_emit_lashed_keylists(B) MD_TOKEN_RPAREN.
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_EMIT_LASHED_APPEND, B, F);
|
||||
//@@}
|
||||
//@@md_emit_lashed_append(A) ::= MD_TOKEN_EMIT(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA
|
||||
//@@ MD_TOKEN_LPAREN md_emit_lashed_keylists(B) MD_TOKEN_RPAREN
|
||||
//@@ MD_TOKEN_COMMA md_emit_lashed_namelist(C).
|
||||
//@@{
|
||||
//@@ A = mlr_dsl_ast_node_alloc_ternary(O->text, MD_AST_NODE_TYPE_EMIT_LASHED_APPEND, B, C, F);
|
||||
//@@}
|
||||
|
||||
md_emit_lashed_keylists(A) ::= md_oosvar_keylist(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary("lashed_keylists", MD_AST_NODE_TYPE_EMIT_LASHED, B);
|
||||
|
|
@ -925,12 +925,12 @@ md_dump(A) ::= MD_TOKEN_DUMP(O). {
|
|||
md_edump(A) ::= MD_TOKEN_EDUMP(O). {
|
||||
A = mlr_dsl_ast_node_alloc_zary(O->text, MD_AST_NODE_TYPE_EDUMP);
|
||||
}
|
||||
//md_dump_write(A) ::= MD_TOKEN_DUMP(O) MD_TOKEN_GT md_rhs(B). {
|
||||
// A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_DUMP_WRITE, B);
|
||||
//}
|
||||
//md_dump_append(A) ::= MD_TOKEN_DUMP(O) MD_TOKEN_BITWISE_RSH md_rhs(B). {
|
||||
// A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_DUMP_APPEND, B);
|
||||
//}
|
||||
//@@md_dump_write(A) ::= MD_TOKEN_DUMP(O) MD_TOKEN_GT md_rhs(B). {
|
||||
//@@ A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_DUMP_WRITE, B);
|
||||
//@@}
|
||||
//@@md_dump_append(A) ::= MD_TOKEN_DUMP(O) MD_TOKEN_BITWISE_RSH md_rhs(B). {
|
||||
//@@ A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_DUMP_APPEND, B);
|
||||
//@@}
|
||||
|
||||
md_print(A) ::= MD_TOKEN_PRINT(O) md_rhs(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_PRINT, B);
|
||||
|
|
@ -938,12 +938,12 @@ md_print(A) ::= MD_TOKEN_PRINT(O) md_rhs(B). {
|
|||
md_eprint(A) ::= MD_TOKEN_EPRINT(O) md_rhs(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EPRINT, B);
|
||||
}
|
||||
//md_print_write(A) ::= MD_TOKEN_PRINT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA md_rhs(C). {
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINT_WRITE, C, F);
|
||||
//}
|
||||
//md_print_append(A) ::= MD_TOKEN_PRINT(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA md_rhs(C). {
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINT_APPEND, C, F);
|
||||
//}
|
||||
//@@md_print_write(A) ::= MD_TOKEN_PRINT(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA md_rhs(C). {
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINT_WRITE, C, F);
|
||||
//@@}
|
||||
//@@md_print_append(A) ::= MD_TOKEN_PRINT(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA md_rhs(C). {
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINT_APPEND, C, F);
|
||||
//@@}
|
||||
|
||||
md_printn(A) ::= MD_TOKEN_PRINTN(O) md_rhs(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_PRINTN, B);
|
||||
|
|
@ -951,12 +951,12 @@ md_printn(A) ::= MD_TOKEN_PRINTN(O) md_rhs(B). {
|
|||
md_eprintn(A) ::= MD_TOKEN_EPRINTN(O) md_rhs(B). {
|
||||
A = mlr_dsl_ast_node_alloc_unary(O->text, MD_AST_NODE_TYPE_EPRINTN, B);
|
||||
}
|
||||
//md_printn_write(A) ::= MD_TOKEN_PRINTN(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA md_rhs(C). {
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINTN_WRITE, C, F);
|
||||
//}
|
||||
//md_printn_append(A) ::= MD_TOKEN_PRINTN(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA md_rhs(C). {
|
||||
// A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINTN_APPEND, C, F);
|
||||
//}
|
||||
//@@md_printn_write(A) ::= MD_TOKEN_PRINTN(O) MD_TOKEN_GT md_rhs(F) MD_TOKEN_COMMA md_rhs(C). {
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINTN_WRITE, C, F);
|
||||
//@@}
|
||||
//@@md_printn_append(A) ::= MD_TOKEN_PRINTN(O) MD_TOKEN_BITWISE_RSH md_rhs(F) MD_TOKEN_COMMA md_rhs(C). {
|
||||
//@@ A = mlr_dsl_ast_node_alloc_binary(O->text, MD_AST_NODE_TYPE_PRINTN_APPEND, C, F);
|
||||
//@@}
|
||||
|
||||
// ================================================================
|
||||
// Begin RHS precedence chain
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ void mlr_dsl_lemon_parser_free(
|
|||
void *pvparser, /* The parser to be deleted */
|
||||
void (*freeProc)(void*)); /* Function used to reclaim memory */
|
||||
|
||||
// xxx temp
|
||||
void mlr_dsl_ParseTrace(FILE *TraceFILE, char *zTracePrompt);
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
// http://flex.sourceforge.net/manual/Init-and-Destroy-Functions.html
|
||||
// http://flex.sourceforge.net/manual/Extra-Data.html
|
||||
|
|
@ -31,6 +34,7 @@ static mlr_dsl_ast_t* mlr_dsl_parse_inner(yyscan_t scanner, void* pvparser, mlr_
|
|||
int lex_code;
|
||||
int parse_code;
|
||||
mlr_dsl_ast_t* past = mlr_dsl_ast_alloc();
|
||||
//////mlr_dsl_ParseTrace(stdout, "[DSLTRACE]");
|
||||
do {
|
||||
lex_code = mlr_dsl_lexer_lex(scanner);
|
||||
mlr_dsl_ast_node_t* plexed_node = *ppnode;
|
||||
|
|
|
|||
10
c/todo.txt
10
c/todo.txt
|
|
@ -17,7 +17,17 @@ TOP OF LIST:
|
|||
|
||||
! go through lmag article & clarify all unclears
|
||||
|
||||
! undo dsls/M*g gcc -g
|
||||
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
! lemon boundary issue:
|
||||
- bisect on #rules
|
||||
- put #ifdef in .y file
|
||||
- NDEBUG
|
||||
- asan (any 2nd opinion from valgrind)
|
||||
- https://github.com/martinmroz/lemon
|
||||
- hook in ParseTrace from cliopt
|
||||
|
||||
* xxxes
|
||||
* valgrinds
|
||||
* check mlh's
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue