summaryrefslogtreecommitdiff
path: root/src/map/magic-interpreter-parser.ypp
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/magic-interpreter-parser.ypp')
-rw-r--r--src/map/magic-interpreter-parser.ypp138
1 files changed, 70 insertions, 68 deletions
diff --git a/src/map/magic-interpreter-parser.ypp b/src/map/magic-interpreter-parser.ypp
index 274819c..09dc67e 100644
--- a/src/map/magic-interpreter-parser.ypp
+++ b/src/map/magic-interpreter-parser.ypp
@@ -2,70 +2,72 @@
#include "magic-expr.hpp"
}
%code{
+#include <cstdarg> // exception to "no va_list" rule
+
#include "magic-interpreter-parser.hpp"
#include "magic-interpreter.hpp"
-#include <stdarg.h>
#define YYLEX_PARAM 0, 0
-static int
-intern_id(const char *id_name);
+static
+int intern_id(const char *id_name);
-static expr_t *
-fun_expr(const char *name, int args_nr, expr_t **args, int line, int column);
+static
+expr_t *fun_expr(const char *name, int args_nr, expr_t **args, int line, int column);
-static expr_t *
-dot_expr(expr_t *lhs, int id);
+static
+expr_t *dot_expr(expr_t *lhs, int id);
#define BIN_EXPR(x, name, arg1, arg2, line, column) { expr_t *e[2]; e[0] = arg1; e[1] = arg2; x = fun_expr(name, 2, e, line, column); }
-static int failed_flag = 0;
+static
+int failed_flag = 0;
-static void
-magic_frontend_error(const char *msg);
+static
+void magic_frontend_error(const char *msg);
-static void
-fail(int line, int column, const char *fmt, ...);
+static
+void fail(int line, int column, const char *fmt, ...);
-static spell_t *
-new_spell(spellguard_t *guard);
+static
+spell_t *new_spell(spellguard_t *guard);
-static spellguard_t *
-spellguard_implication(spellguard_t *a, spellguard_t *b);
+static
+spellguard_t *spellguard_implication(spellguard_t *a, spellguard_t *b);
-static spellguard_t *
-new_spellguard(int ty);
+static
+spellguard_t *new_spellguard(int ty);
-static effect_t *
-new_effect(int ty);
+static
+effect_t *new_effect(int ty);
-static effect_t *
-set_effect_continuation(effect_t *src, effect_t *continuation);
+static
+effect_t *set_effect_continuation(effect_t *src, effect_t *continuation);
-static void
-add_spell(spell_t *spell, int line_nr);
+static
+void add_spell(spell_t *spell, int line_nr);
-static void
-add_teleport_anchor(teleport_anchor_t *anchor, int line_nr);
+static
+void add_teleport_anchor(teleport_anchor_t *anchor, int line_nr);
-static effect_t *
-op_effect(char *name, int args_nr, expr_t **args, int line, int column);
+static
+effect_t *op_effect(char *name, int args_nr, expr_t **args, int line, int column);
int magic_frontend_lex(YYSTYPE *, YYLTYPE *);
-static void
-install_proc(proc_t *proc);
+static
+void install_proc(proc_t *proc);
-static effect_t *
-call_proc(char *name, int args_nr, expr_t **args, int line_nr, int column);
+static
+effect_t *call_proc(char *name, int args_nr, expr_t **args, int line_nr, int column);
-static void
-bind_constant(char *name, val_t *val, int line_nr);
+static
+void bind_constant(char *name, val_t *val, int line_nr);
-static val_t *
-find_constant(char *name);
+static
+val_t *find_constant(char *name);
}
@@ -703,8 +705,8 @@ effect_list : /* empty */
/* We do incremental realloc here to store our results. Since this happens only once
* during startup for a relatively manageable set of configs, it should be fine. */
-static int
-intern_id(const char *id_name)
+static
+int intern_id(const char *id_name)
{
int i;
@@ -724,8 +726,8 @@ intern_id(const char *id_name)
return i;
}
-static void
-add_spell(spell_t *spell, int line_nr)
+static
+void add_spell(spell_t *spell, int line_nr)
{
int index = magic_conf.spells_nr;
int i;
@@ -749,8 +751,8 @@ add_spell(spell_t *spell, int line_nr)
}
-static void
-add_teleport_anchor(teleport_anchor_t *anchor, int line_nr)
+static
+void add_teleport_anchor(teleport_anchor_t *anchor, int line_nr)
{
int index = magic_conf.anchors_nr;
int i;
@@ -783,8 +785,8 @@ void fail(int line, int column, const char *fmt, ...)
failed_flag = 1;
}
-static expr_t *
-dot_expr(expr_t *expr, int id)
+static
+expr_t *dot_expr(expr_t *expr, int id)
{
expr_t *retval = magic_new_expr(EXPR_SPELLFIELD);
retval->e.e_field.id = id;
@@ -793,8 +795,8 @@ dot_expr(expr_t *expr, int id)
return retval;
}
-static expr_t *
-fun_expr(const char *name, int args_nr, expr_t **args, int line, int column)
+static
+expr_t *fun_expr(const char *name, int args_nr, expr_t **args, int line, int column)
{
int id;
expr_t *expr;
@@ -826,8 +828,8 @@ fun_expr(const char *name, int args_nr, expr_t **args, int line, int column)
return expr;
}
-static spell_t *
-new_spell(spellguard_t *guard)
+static
+spell_t *new_spell(spellguard_t *guard)
{
static int spell_counter = 0;
@@ -837,16 +839,16 @@ new_spell(spellguard_t *guard)
return retval;
}
-static spellguard_t *
-new_spellguard(int ty)
+static
+spellguard_t *new_spellguard(int ty)
{
spellguard_t *retval = (spellguard_t *)calloc(1, sizeof(spellguard_t));
retval->ty = ty;
return retval;
}
-static spellguard_t *
-spellguard_implication(spellguard_t *a, spellguard_t *b)
+static
+spellguard_t *spellguard_implication(spellguard_t *a, spellguard_t *b)
{
spellguard_t *retval = a;
@@ -875,16 +877,16 @@ spellguard_implication(spellguard_t *a, spellguard_t *b)
return retval;
}
-static effect_t *
-new_effect(int ty)
+static
+effect_t *new_effect(int ty)
{
effect_t *effect = (effect_t *) calloc(1, sizeof(effect_t));
effect->ty = ty;
return effect;
}
-static effect_t *
-set_effect_continuation(effect_t *src, effect_t *continuation)
+static
+effect_t *set_effect_continuation(effect_t *src, effect_t *continuation)
{
effect_t *retval = src;
/* This function is completely analogous to `spellguard_implication' above; read the control flow implications above first before pondering it. */
@@ -906,8 +908,8 @@ set_effect_continuation(effect_t *src, effect_t *continuation)
return retval;
}
-static effect_t *
-op_effect(char *name, int args_nr, expr_t **args, int line, int column)
+static
+effect_t *op_effect(char *name, int args_nr, expr_t **args, int line, int column)
{
int id;
effect_t *effect;
@@ -942,8 +944,8 @@ proc_t *procs = NULL;
int procs_nr = 0;
// I think this is a memory leak, or undefined behavior
-static void
-install_proc(proc_t *proc)
+static
+void install_proc(proc_t *proc)
{
if (!procs) {
procs = proc;
@@ -954,8 +956,8 @@ install_proc(proc_t *proc)
}
}
-static effect_t *
-call_proc(char *name, int args_nr, expr_t **args, int line_nr, int column)
+static
+effect_t *call_proc(char *name, int args_nr, expr_t **args, int line_nr, int column)
{
proc_t *p = NULL;
int i;
@@ -992,8 +994,8 @@ struct const_def_rec {
int const_defs_nr = 0;
-static void
-bind_constant(char *name, val_t *val, int line_nr)
+static
+void bind_constant(char *name, val_t *val, int line_nr)
{
if (find_constant(name)) {
fail(line_nr, 0, "Redefinition of constant `%s'\n", name);
@@ -1011,8 +1013,8 @@ bind_constant(char *name, val_t *val, int line_nr)
++const_defs_nr;
}
-static val_t *
-find_constant(char *name)
+static
+val_t *find_constant(char *name)
{
int i;
for (i = 0; i < const_defs_nr; i++) {
@@ -1084,8 +1086,8 @@ int magic_init(const char *conffile)
extern int magic_frontend_lineno;
-static void
-magic_frontend_error(const char *msg)
+static
+void magic_frontend_error(const char *msg)
{
fprintf(stderr, "[magic-conf] Parse error: %s at line %d\n", msg, magic_frontend_lineno);
failed_flag = 1;