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.ypp29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/map/magic-interpreter-parser.ypp b/src/map/magic-interpreter-parser.ypp
index a86f1c8..3ec1bdd 100644
--- a/src/map/magic-interpreter-parser.ypp
+++ b/src/map/magic-interpreter-parser.ypp
@@ -3,7 +3,7 @@
#include "magic-interpreter.hpp"
extern
-FString current_magic_filename;
+AString current_magic_filename;
} // %code requires
%code
@@ -13,7 +13,8 @@ FString current_magic_filename;
#include <cassert>
#include <cstdarg> // exception to "no va_list" rule, even after cxxstdio
-#include "../strings/fstring.hpp"
+#include "../strings/rstring.hpp"
+#include "../strings/astring.hpp"
#include "../strings/zstring.hpp"
#include "../io/cxxstdio.hpp"
@@ -23,7 +24,7 @@ FString current_magic_filename;
#include "itemdb.hpp"
#include "magic-expr.hpp"
-FString current_magic_filename;
+AString current_magic_filename;
// can't use src/warnings.hpp in generated code
#pragma GCC diagnostic warning "-Wall"
@@ -37,13 +38,13 @@ static
size_t intern_id(ZString id_name);
static
-dumb_ptr<expr_t> fun_expr(FString name, const_array<dumb_ptr<expr_t>> argv, int line, int column);
+dumb_ptr<expr_t> fun_expr(AString name, const_array<dumb_ptr<expr_t>> argv, int line, int column);
static
dumb_ptr<expr_t> dot_expr(dumb_ptr<expr_t> lhs, int id);
static
-void BIN_EXPR(dumb_ptr<expr_t>& x, FString name, dumb_ptr<expr_t> arg1, dumb_ptr<expr_t> arg2, int line, int column)
+void BIN_EXPR(dumb_ptr<expr_t>& x, AString name, dumb_ptr<expr_t> arg1, dumb_ptr<expr_t> arg2, int line, int column)
{
dumb_ptr<expr_t> e[2];
e[0] = arg1;
@@ -82,7 +83,7 @@ static
void add_teleport_anchor(dumb_ptr<teleport_anchor_t> anchor, int line_nr);
static
-dumb_ptr<effect_t> op_effect(FString name, const_array<dumb_ptr<expr_t>> argv, int line, int column);
+dumb_ptr<effect_t> op_effect(AString name, const_array<dumb_ptr<expr_t>> argv, int line, int column);
// in magic-interpreter-lexer.cpp
int magic_frontend_lex(void);
@@ -94,10 +95,10 @@ static
dumb_ptr<effect_t> call_proc(ZString name, dumb_ptr<std::vector<dumb_ptr<expr_t>>> argvp, int line_nr, int column);
static
-void bind_constant(FString name, val_t *val, int line_nr);
+void bind_constant(RString name, val_t *val, int line_nr);
static
-val_t *find_constant(FString name);
+val_t *find_constant(RString name);
} // %code
@@ -1182,7 +1183,7 @@ dumb_ptr<expr_t> dot_expr(dumb_ptr<expr_t> expr, int id)
return retval;
}
-dumb_ptr<expr_t> fun_expr(FString name, const_array<dumb_ptr<expr_t>> argv, int line, int column)
+dumb_ptr<expr_t> fun_expr(AString name, const_array<dumb_ptr<expr_t>> argv, int line, int column)
{
dumb_ptr<expr_t> expr;
fun_t *fun = magic_get_fun(name);
@@ -1293,7 +1294,7 @@ dumb_ptr<effect_t> set_effect_continuation(dumb_ptr<effect_t> src, dumb_ptr<effe
return retval;
}
-dumb_ptr<effect_t> op_effect(FString name, const_array<dumb_ptr<expr_t>> argv, int line, int column)
+dumb_ptr<effect_t> op_effect(AString name, const_array<dumb_ptr<expr_t>> argv, int line, int column)
{
dumb_ptr<effect_t> effect;
op_t *op = magic_get_op(name);
@@ -1325,7 +1326,7 @@ dumb_ptr<effect_t> op_effect(FString name, const_array<dumb_ptr<expr_t>> argv, i
}
-std::map<FString, proc_t> procs;
+std::map<RString, proc_t> procs;
// I think this was a memory leak (or undefined behavior)
void install_proc(dumb_ptr<proc_t> proc)
@@ -1358,9 +1359,9 @@ dumb_ptr<effect_t> call_proc(ZString name, dumb_ptr<std::vector<dumb_ptr<expr_t>
return retval;
}
-std::map<FString, val_t> const_defm;
+std::map<RString, val_t> const_defm;
-void bind_constant(FString name, val_t *val, int line_nr)
+void bind_constant(RString name, val_t *val, int line_nr)
{
if (!const_defm.insert({name, *val}).second)
{
@@ -1368,7 +1369,7 @@ void bind_constant(FString name, val_t *val, int line_nr)
}
}
-val_t *find_constant(FString name)
+val_t *find_constant(RString name)
{
auto it = const_defm.find(name);
if (it != const_defm.end())