I wonder what is the language used in the curly braces of the rule section in yacc/bison files like the following and if there is any good reference about it.
stmts : stmt { $$ = new NBlock(); $$->statements.push_back($<stmt>1); }
| stmts stmt { $1->statements.push_back($<stmt>2); }
;
and in the above code, for example, why it is written $<stmt>$2
not just $2