#ifndef LIMITS_H #define LIMITS_H #include "riscv.h" #define MAX_NODES 32768 #define MAX_UNION_VARIANTS 128 #define MAX_RECORD_FIELDS 32 #define MAX_ARRAY_ELEMS 1024 #define MAX_BLOCK_STATEMENTS 512 #define MAX_SWITCH_CASES 128 #define MAX_CASE_PATTERNS 64 #define MAX_QUALIFIED_NAME 128 #define MAX_FN_PARAMS ((A7 - A0) + 1) #define MAX_FN_THROWS 8 #define MAX_FN_LOCALS 32 #define MAX_SYMBOLS 16384 #define MAX_SCOPES 8192 #define MAX_SCOPE_SYMBOLS 512 #define MAX_INSTRS (1 << 20) #define MAX_FN_PATCHES 4096 #define MAX_RET_PATCHES 256 #define MAX_BRK_PATCHES 512 #define MAX_TYPES 4096 #define MAX_FRAME_SIZE (512 * 1024) #define MAX_STRING_LITERALS 1024 #define MAX_CONSTANTS 256 #define MAX_TRY_CATCHES 8 /* Pool size for variable-length node pointer arrays. * Replaces per-node embedded arrays to shrink node_t. */ #define MAX_NODEPTR_POOL (MAX_NODES * 4) /* Pool sizes for type_t sub-arrays (variants, fields, params, throws). */ #define MAX_SYMPTR_POOL 16384 #define MAX_TYPEPTR_POOL 16384 /* Maximum values for module system */ #define MAX_MODULES 48 #define MAX_MODULE_DEPS 24 #define MAX_PATH_LEN 1024 #define MAX_IMPORTS 32 #endif