mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
presym.h: merge enable.h into presym.h
Since disable.h was removed, enable.h was the only remaining dispatch target from presym.h. Inline its contents into presym.h and delete the now-redundant enable.h. Also define _2 backward compatibility macros in terms of the standard macros. Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
+33
-7
@@ -8,13 +8,12 @@
|
||||
#define MRUBY_PRESYM_H
|
||||
|
||||
#if !defined(MRB_PRESYM_SCANNING)
|
||||
# include <mruby/presym/enable.h>
|
||||
#endif
|
||||
|
||||
#include <mruby/presym/id.h>
|
||||
|
||||
/*
|
||||
* Where `mrb_intern_lit` is allowed for symbol interning, it is directly
|
||||
* replaced by the symbol ID if presym is enabled by using the following
|
||||
* macros.
|
||||
* replaced by the symbol ID using the following macros.
|
||||
*
|
||||
* MRB_OPSYM(xor) //=> ^ (Operator)
|
||||
* MRB_GVSYM(xor) //=> $xor (Global Variable)
|
||||
@@ -31,9 +30,36 @@
|
||||
* excluding leading and ending punctuation.
|
||||
*
|
||||
* These macros are expanded to compile-time integer constants.
|
||||
* The `_2` suffix variants (e.g., `MRB_SYM_2`) are kept for backward
|
||||
* compatibility only; they accept an explicit `mrb_state*` parameter
|
||||
* but ignore it. New code should use the standard macros above.
|
||||
*/
|
||||
|
||||
#define MRB_OPSYM(name) MRB_OPSYM__##name
|
||||
#define MRB_GVSYM(name) MRB_GVSYM__##name
|
||||
#define MRB_CVSYM(name) MRB_CVSYM__##name
|
||||
#define MRB_IVSYM(name) MRB_IVSYM__##name
|
||||
#define MRB_SYM_B(name) MRB_SYM_B__##name
|
||||
#define MRB_SYM_Q(name) MRB_SYM_Q__##name
|
||||
#define MRB_SYM_E(name) MRB_SYM_E__##name
|
||||
#define MRB_SYM(name) MRB_SYM__##name
|
||||
|
||||
/* backward compatibility: _2 variants accept but ignore mrb_state* */
|
||||
#define MRB_OPSYM_2(mrb, name) MRB_OPSYM(name)
|
||||
#define MRB_GVSYM_2(mrb, name) MRB_GVSYM(name)
|
||||
#define MRB_CVSYM_2(mrb, name) MRB_CVSYM(name)
|
||||
#define MRB_IVSYM_2(mrb, name) MRB_IVSYM(name)
|
||||
#define MRB_SYM_B_2(mrb, name) MRB_SYM_B(name)
|
||||
#define MRB_SYM_Q_2(mrb, name) MRB_SYM_Q(name)
|
||||
#define MRB_SYM_E_2(mrb, name) MRB_SYM_E(name)
|
||||
#define MRB_SYM_2(mrb, name) MRB_SYM(name)
|
||||
|
||||
#define MRB_PRESYM_DEFINE_VAR_AND_INITER(name, size, ...) \
|
||||
static const mrb_sym name[] = {__VA_ARGS__};
|
||||
|
||||
#define MRB_PRESYM_INIT_SYMBOLS(mrb, name) (void)(mrb)
|
||||
|
||||
/* use MRB_SYM() for E_RUNTIME_ERROR etc. */
|
||||
#undef MRB_ERROR_SYM
|
||||
#define MRB_ERROR_SYM(sym) MRB_SYM(sym)
|
||||
|
||||
#endif /* !MRB_PRESYM_SCANNING */
|
||||
|
||||
#endif /* MRUBY_PRESYM_H */
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
/**
|
||||
** @file mruby/presym/enable.h - Enable Preallocated Symbols
|
||||
**
|
||||
** See Copyright Notice in mruby.h
|
||||
*/
|
||||
|
||||
#ifndef MRUBY_PRESYM_ENABLE_H
|
||||
#define MRUBY_PRESYM_ENABLE_H
|
||||
|
||||
#include <mruby/presym/id.h>
|
||||
|
||||
#define MRB_OPSYM(name) MRB_OPSYM__##name
|
||||
#define MRB_GVSYM(name) MRB_GVSYM__##name
|
||||
#define MRB_CVSYM(name) MRB_CVSYM__##name
|
||||
#define MRB_IVSYM(name) MRB_IVSYM__##name
|
||||
#define MRB_SYM_B(name) MRB_SYM_B__##name
|
||||
#define MRB_SYM_Q(name) MRB_SYM_Q__##name
|
||||
#define MRB_SYM_E(name) MRB_SYM_E__##name
|
||||
#define MRB_SYM(name) MRB_SYM__##name
|
||||
|
||||
/* backward compatibility: _2 variants accept but ignore mrb_state* */
|
||||
#define MRB_OPSYM_2(mrb, name) MRB_OPSYM__##name
|
||||
#define MRB_GVSYM_2(mrb, name) MRB_GVSYM__##name
|
||||
#define MRB_CVSYM_2(mrb, name) MRB_CVSYM__##name
|
||||
#define MRB_IVSYM_2(mrb, name) MRB_IVSYM__##name
|
||||
#define MRB_SYM_B_2(mrb, name) MRB_SYM_B__##name
|
||||
#define MRB_SYM_Q_2(mrb, name) MRB_SYM_Q__##name
|
||||
#define MRB_SYM_E_2(mrb, name) MRB_SYM_E__##name
|
||||
#define MRB_SYM_2(mrb, name) MRB_SYM__##name
|
||||
|
||||
#define MRB_PRESYM_DEFINE_VAR_AND_INITER(name, size, ...) \
|
||||
static const mrb_sym name[] = {__VA_ARGS__};
|
||||
|
||||
#define MRB_PRESYM_INIT_SYMBOLS(mrb, name) (void)(mrb)
|
||||
|
||||
/* use MRB_SYM() for E_RUNTIME_ERROR etc. */
|
||||
#undef MRB_ERROR_SYM
|
||||
#define MRB_ERROR_SYM(sym) MRB_SYM(sym)
|
||||
|
||||
#endif /* MRUBY_PRESYM_ENABLE_H */
|
||||
@@ -39,14 +39,14 @@
|
||||
#define MRB_SYM(name) MRB_PRESYM_SCANNING_TAGGED(#name)
|
||||
|
||||
/* backward compatibility: _2 variants accept but ignore mrb_state* */
|
||||
#define MRB_OPSYM_2(mrb, name) MRB_OPSYM__##name(mrb)
|
||||
#define MRB_GVSYM_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED("$" #name)
|
||||
#define MRB_CVSYM_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED("@@" #name)
|
||||
#define MRB_IVSYM_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED("@" #name)
|
||||
#define MRB_SYM_B_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED(#name "!")
|
||||
#define MRB_SYM_Q_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED(#name "?")
|
||||
#define MRB_SYM_E_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED(#name "=")
|
||||
#define MRB_SYM_2(mrb, name) MRB_PRESYM_SCANNING_TAGGED(#name)
|
||||
#define MRB_OPSYM_2(mrb, name) MRB_OPSYM(name)
|
||||
#define MRB_GVSYM_2(mrb, name) MRB_GVSYM(name)
|
||||
#define MRB_CVSYM_2(mrb, name) MRB_CVSYM(name)
|
||||
#define MRB_IVSYM_2(mrb, name) MRB_IVSYM(name)
|
||||
#define MRB_SYM_B_2(mrb, name) MRB_SYM_B(name)
|
||||
#define MRB_SYM_Q_2(mrb, name) MRB_SYM_Q(name)
|
||||
#define MRB_SYM_E_2(mrb, name) MRB_SYM_E(name)
|
||||
#define MRB_SYM_2(mrb, name) MRB_SYM(name)
|
||||
|
||||
#define MRB_OPSYM__not(mrb) MRB_PRESYM_SCANNING_TAGGED("!")
|
||||
#define MRB_OPSYM__mod(mrb) MRB_PRESYM_SCANNING_TAGGED("%")
|
||||
|
||||
Reference in New Issue
Block a user