changed the compiler structure a bit for planned architectural change of the compiler
This commit is contained in:
parent
024976295e
commit
7b5462ca26
27
moo/configure
vendored
27
moo/configure
vendored
@ -19939,6 +19939,33 @@ _ACEOF
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking numeric value of NSIG" >&5
|
||||||
|
$as_echo_n "checking numeric value of NSIG... " >&6; }
|
||||||
|
if ${ax_cv_numvalof_NSIG+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
if ac_fn_c_compute_int "$LINENO" "(NSIG)" "ax_cv_numvalof_NSIG" "#include <signal.h>
|
||||||
|
"; then :
|
||||||
|
|
||||||
|
else
|
||||||
|
ax_cv_numvalof_NSIG=32
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_numvalof_NSIG" >&5
|
||||||
|
$as_echo "$ax_cv_numvalof_NSIG" >&6; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define NUMVALOF_NSIG $ax_cv_numvalof_NSIG
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test "x${platform_win32}" = "xyes"
|
if test "x${platform_win32}" = "xyes"
|
||||||
then
|
then
|
||||||
# The cast to long int works around a bug in the HP C Compiler
|
# The cast to long int works around a bug in the HP C Compiler
|
||||||
|
@ -335,6 +335,7 @@ AC_CHECK_SIZEOF(off64_t)
|
|||||||
AC_CHECK_SIZEOF(mbstate_t,,[#include <wchar.h>])
|
AC_CHECK_SIZEOF(mbstate_t,,[#include <wchar.h>])
|
||||||
AX_CHECK_NUMVALOF(MB_LEN_MAX,[32],[#include <limits.h>])
|
AX_CHECK_NUMVALOF(MB_LEN_MAX,[32],[#include <limits.h>])
|
||||||
AX_CHECK_NUMVALOF(PATH_MAX,[0],[#include <limits.h>])
|
AX_CHECK_NUMVALOF(PATH_MAX,[0],[#include <limits.h>])
|
||||||
|
AX_CHECK_NUMVALOF(NSIG,[32],[#include <signal.h>])
|
||||||
|
|
||||||
if test "x${platform_win32}" = "xyes"
|
if test "x${platform_win32}" = "xyes"
|
||||||
then
|
then
|
||||||
|
@ -143,13 +143,14 @@ class MyObject(TestObject)
|
|||||||
|
|
||||||
##[ Exception signal: 'simulated error' ] on: Exception do: [:ex | 'CAUGHT...' dump. Exception signal: 'jjjjjjj' ].
|
##[ Exception signal: 'simulated error' ] on: Exception do: [:ex | 'CAUGHT...' dump. Exception signal: 'jjjjjjj' ].
|
||||||
|
|
||||||
"[
|
##[
|
||||||
[ Exception signal: 'simulated error' ] ensure: ['ensure 1' dump ].
|
## [ Exception signal: 'simulated error' ] ensure: ['ensure 1' dump ].
|
||||||
] on: Exception do: [:ex | ('EXCETION - ' & ex messageText) dump. Exception signal: 'qqq'. ]."
|
##] on: Exception do: [:ex | ('EXCETION - ' & ex messageText) dump. Exception signal: 'qqq'. ].
|
||||||
|
|
||||||
"[1 xxx] ifCurtailed: ['XXXXXXXX CURTAILED XXXXXXXXX' dump. Exception signal: 'jjjj']."
|
##[1 xxx] ifCurtailed: ['XXXXXXXX CURTAILED XXXXXXXXX' dump. Exception signal: 'jjjj'].
|
||||||
|
|
||||||
" v1 := [
|
(*
|
||||||
|
v1 := [
|
||||||
| k |
|
| k |
|
||||||
k := 99.
|
k := 99.
|
||||||
[
|
[
|
||||||
@ -162,7 +163,7 @@ class MyObject(TestObject)
|
|||||||
('EXCETION - ' & ex messageText) dump.
|
('EXCETION - ' & ex messageText) dump.
|
||||||
## Exception signal: 'qqq'.
|
## Exception signal: 'qqq'.
|
||||||
].
|
].
|
||||||
"
|
*)
|
||||||
|
|
||||||
v1 := self aaa_123.
|
v1 := self aaa_123.
|
||||||
'--------------------------------' dump.
|
'--------------------------------' dump.
|
||||||
|
@ -198,7 +198,8 @@ class MyObject(TestObject)
|
|||||||
## 100 timesRepeat: ['>>>>> END OF MAIN' dump].
|
## 100 timesRepeat: ['>>>>> END OF MAIN' dump].
|
||||||
|
|
||||||
|
|
||||||
"(Exception isKindOf: Apex) dump.
|
(*
|
||||||
|
(Exception isKindOf: Apex) dump.
|
||||||
(Exception isMemberOf: Apex) dump.
|
(Exception isMemberOf: Apex) dump.
|
||||||
(Exception isMemberOf: Class) dump.
|
(Exception isMemberOf: Class) dump.
|
||||||
(1 isMemberOf: SmallInteger) dump.
|
(1 isMemberOf: SmallInteger) dump.
|
||||||
@ -209,7 +210,8 @@ class MyObject(TestObject)
|
|||||||
(Exception isKindOf: Apex) dump.
|
(Exception isKindOf: Apex) dump.
|
||||||
(Exception isKindOf: Object) dump.
|
(Exception isKindOf: Object) dump.
|
||||||
(Exception isKindOf: (Apex new)) dump.
|
(Exception isKindOf: (Apex new)) dump.
|
||||||
(Exception isKindOf: (Object new)) dump."
|
(Exception isKindOf: (Object new)) dump.
|
||||||
|
*)
|
||||||
|
|
||||||
|
|
||||||
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@' dump.
|
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@' dump.
|
||||||
|
1006
moo/lib/comp.c
1006
moo/lib/comp.c
File diff suppressed because it is too large
Load Diff
@ -459,6 +459,9 @@
|
|||||||
/* The size of `MB_LEN_MAX', as computed by valueof. */
|
/* The size of `MB_LEN_MAX', as computed by valueof. */
|
||||||
#undef NUMVALOF_MB_LEN_MAX
|
#undef NUMVALOF_MB_LEN_MAX
|
||||||
|
|
||||||
|
/* The size of `NSIG', as computed by valueof. */
|
||||||
|
#undef NUMVALOF_NSIG
|
||||||
|
|
||||||
/* The size of `PATH_MAX', as computed by valueof. */
|
/* The size of `PATH_MAX', as computed by valueof. */
|
||||||
#undef NUMVALOF_PATH_MAX
|
#undef NUMVALOF_PATH_MAX
|
||||||
|
|
||||||
|
@ -439,20 +439,7 @@ struct moo_loop_t
|
|||||||
moo_loop_t* next;
|
moo_loop_t* next;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct moo_pooldic_t moo_pooldic_t;
|
|
||||||
struct moo_pooldic_t
|
|
||||||
{
|
|
||||||
moo_oocs_t name;
|
|
||||||
moo_oocs_t fqn;
|
|
||||||
moo_oow_t fqn_capa;
|
|
||||||
moo_ioloc_t fqn_loc;
|
|
||||||
|
|
||||||
moo_oop_dic_t pd_oop;
|
|
||||||
moo_oop_nsdic_t ns_oop;
|
|
||||||
|
|
||||||
moo_oow_t start;
|
|
||||||
moo_oow_t end;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct moo_oopbuf_t moo_oopbuf_t;
|
typedef struct moo_oopbuf_t moo_oopbuf_t;
|
||||||
struct moo_oopbuf_t
|
struct moo_oopbuf_t
|
||||||
@ -482,50 +469,48 @@ enum moo_pragma_flag_t
|
|||||||
MOO_PRAGMA_QC = (1 << 0)
|
MOO_PRAGMA_QC = (1 << 0)
|
||||||
};
|
};
|
||||||
|
|
||||||
struct moo_compiler_t
|
enum moo_cunit_type_t
|
||||||
{
|
{
|
||||||
int pragma_flags;
|
MOO_CUNIT_BLANK = 0,
|
||||||
|
MOO_CUNIT_CLASS,
|
||||||
|
MOO_CUNIT_POOLDIC,
|
||||||
|
MOO_CUNIT_METHOD
|
||||||
|
};
|
||||||
|
typedef enum moo_cunit_type_t moo_cunit_type_t;
|
||||||
|
|
||||||
/* input handler */
|
#define MOO_CUNIT_HEADER \
|
||||||
moo_ioimpl_t impl;
|
moo_cunit_type_t cunit_type; \
|
||||||
|
moo_cunit_t* cunit_parent
|
||||||
|
|
||||||
/* information about the last meaningful character read.
|
typedef struct moo_cunit_t moo_cunit_t;
|
||||||
* this is a copy of curinp->lxc if no ungetting is performed.
|
struct moo_cunit_t
|
||||||
* if there is something in the unget buffer, this is overwritten
|
|
||||||
* by a value from the buffer when the request to read a character
|
|
||||||
* is served */
|
|
||||||
moo_iolxc_t lxc;
|
|
||||||
|
|
||||||
/* unget buffer */
|
|
||||||
moo_iolxc_t ungot[10];
|
|
||||||
int nungots;
|
|
||||||
|
|
||||||
/* static input data buffer */
|
|
||||||
moo_ioarg_t arg;
|
|
||||||
|
|
||||||
/* pointer to the current input data. initially, it points to &arg */
|
|
||||||
moo_ioarg_t* curinp;
|
|
||||||
|
|
||||||
/* the last token read */
|
|
||||||
moo_iotok_t tok;
|
|
||||||
moo_iolink_t* io_names;
|
|
||||||
|
|
||||||
/* syntax error information */
|
|
||||||
moo_synerr_t synerr;
|
|
||||||
|
|
||||||
/* temporary space used when dealing with an illegal character */
|
|
||||||
moo_ooch_t ilchr;
|
|
||||||
moo_oocs_t ilchr_ucs;
|
|
||||||
|
|
||||||
/* workspace to use when reading byte array elements */
|
|
||||||
moo_oobbuf_t balit;
|
|
||||||
|
|
||||||
/* workspace space to use when reading an array */
|
|
||||||
moo_oopbuf_t arlit;
|
|
||||||
|
|
||||||
/* information about a class being compiled */
|
|
||||||
struct
|
|
||||||
{
|
{
|
||||||
|
MOO_CUNIT_HEADER;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct moo_cunit_pooldic_t moo_cunit_pooldic_t;
|
||||||
|
struct moo_cunit_pooldic_t
|
||||||
|
{
|
||||||
|
MOO_CUNIT_HEADER;
|
||||||
|
|
||||||
|
moo_oocs_t name;
|
||||||
|
moo_oocs_t fqn;
|
||||||
|
moo_oow_t fqn_capa;
|
||||||
|
moo_ioloc_t fqn_loc;
|
||||||
|
|
||||||
|
moo_oop_dic_t pd_oop;
|
||||||
|
moo_oop_nsdic_t ns_oop;
|
||||||
|
|
||||||
|
moo_oow_t start;
|
||||||
|
moo_oow_t end;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct moo_cunit_class_t moo_cunit_class_t;
|
||||||
|
struct moo_cunit_class_t
|
||||||
|
{
|
||||||
|
MOO_CUNIT_HEADER;
|
||||||
|
|
||||||
int flags;
|
int flags;
|
||||||
int indexed_type;
|
int indexed_type;
|
||||||
|
|
||||||
@ -588,14 +573,14 @@ struct moo_compiler_t
|
|||||||
moo_oop_dic_t* oops;
|
moo_oop_dic_t* oops;
|
||||||
moo_oow_t oops_capa;
|
moo_oow_t oops_capa;
|
||||||
} pooldic_imp;
|
} pooldic_imp;
|
||||||
} cls;
|
};
|
||||||
|
|
||||||
/* pooldic declaration */
|
|
||||||
moo_pooldic_t pooldic;
|
|
||||||
|
|
||||||
/* information about a method being comipled */
|
typedef struct moo_cunit_method_t moo_cunit_method_t;
|
||||||
struct
|
struct moo_cunit_method_t
|
||||||
{
|
{
|
||||||
|
MOO_CUNIT_HEADER;
|
||||||
|
|
||||||
int active;
|
int active;
|
||||||
|
|
||||||
moo_method_type_t type;
|
moo_method_type_t type;
|
||||||
@ -651,7 +636,63 @@ struct moo_compiler_t
|
|||||||
/* byte code */
|
/* byte code */
|
||||||
moo_code_t code;
|
moo_code_t code;
|
||||||
moo_oow_t code_capa;
|
moo_oow_t code_capa;
|
||||||
} mth;
|
};
|
||||||
|
|
||||||
|
struct moo_compiler_t
|
||||||
|
{
|
||||||
|
int pragma_flags;
|
||||||
|
|
||||||
|
/* input handler */
|
||||||
|
moo_ioimpl_t impl;
|
||||||
|
|
||||||
|
/* information about the last meaningful character read.
|
||||||
|
* this is a copy of curinp->lxc if no ungetting is performed.
|
||||||
|
* if there is something in the unget buffer, this is overwritten
|
||||||
|
* by a value from the buffer when the request to read a character
|
||||||
|
* is served */
|
||||||
|
moo_iolxc_t lxc;
|
||||||
|
|
||||||
|
/* unget buffer */
|
||||||
|
moo_iolxc_t ungot[10];
|
||||||
|
int nungots;
|
||||||
|
|
||||||
|
/* static input data buffer */
|
||||||
|
moo_ioarg_t arg;
|
||||||
|
|
||||||
|
/* pointer to the current input data. initially, it points to &arg */
|
||||||
|
moo_ioarg_t* curinp;
|
||||||
|
|
||||||
|
/* the last token read */
|
||||||
|
moo_iotok_t tok;
|
||||||
|
moo_iolink_t* io_names;
|
||||||
|
|
||||||
|
/* syntax error information */
|
||||||
|
moo_synerr_t synerr;
|
||||||
|
|
||||||
|
/* temporary space used when dealing with an illegal character */
|
||||||
|
moo_ooch_t ilchr;
|
||||||
|
moo_oocs_t ilchr_ucs;
|
||||||
|
|
||||||
|
/* workspace to use when reading byte array elements */
|
||||||
|
moo_oobbuf_t balit;
|
||||||
|
|
||||||
|
/* workspace space to use when reading an array */
|
||||||
|
moo_oopbuf_t arlit;
|
||||||
|
|
||||||
|
/* the current compilation unit being processed */
|
||||||
|
moo_cunit_t* cunit;
|
||||||
|
|
||||||
|
/* inner-most class unit. it may be same as 'cunit' or something up
|
||||||
|
* the 'cunit->cunit_parent' chain */
|
||||||
|
moo_cunit_class_t* cclass;
|
||||||
|
moo_cunit_pooldic_t* cpooldic;
|
||||||
|
|
||||||
|
/* information about a class being compiled */
|
||||||
|
//moo_cunit_class_t cls;
|
||||||
|
/* pooldic declaration */
|
||||||
|
/*moo_cunit_pooldic_t pooldic;*/
|
||||||
|
/* information about a method being comipled */
|
||||||
|
moo_cunit_method_t mth;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user