mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.7 KiB
4.7 KiB
Mapping
When considering the previous CRuby parser versus prism, this document should be helpful to understand how various concepts are mapped.
Nodes
The following table shows how the various CRuby nodes are mapped to prism nodes.
| CRuby | prism |
|---|---|
NODE_SCOPE |
|
NODE_BLOCK |
|
NODE_IF |
PM_IF_NODE |
NODE_UNLESS |
PM_UNLESS_NODE |
NODE_CASE |
PM_CASE_NODE |
NODE_CASE2 |
PM_CASE_NODE (with a null predicate) |
NODE_CASE3 |
|
NODE_WHEN |
PM_WHEN_NODE |
NODE_IN |
PM_IN_NODE |
NODE_WHILE |
PM_WHILE_NODE |
NODE_UNTIL |
PM_UNTIL_NODE |
NODE_ITER |
PM_CALL_NODE (with a non-null block) |
NODE_FOR |
PM_FOR_NODE |
NODE_FOR_MASGN |
PM_FOR_NODE (with a multi-write node as the index) |
NODE_BREAK |
PM_BREAK_NODE |
NODE_NEXT |
PM_NEXT_NODE |
NODE_REDO |
PM_REDO_NODE |
NODE_RETRY |
PM_RETRY_NODE |
NODE_BEGIN |
PM_BEGIN_NODE |
NODE_RESCUE |
PM_RESCUE_NODE |
NODE_RESBODY |
|
NODE_ENSURE |
PM_ENSURE_NODE |
NODE_AND |
PM_AND_NODE |
NODE_OR |
PM_OR_NODE |
NODE_MASGN |
PM_MULTI_WRITE_NODE |
NODE_LASGN |
PM_LOCAL_VARIABLE_WRITE_NODE |
NODE_DASGN |
PM_LOCAL_VARIABLE_WRITE_NODE |
NODE_GASGN |
PM_GLOBAL_VARIABLE_WRITE_NODE |
NODE_IASGN |
PM_INSTANCE_VARIABLE_WRITE_NODE |
NODE_CDECL |
PM_CONSTANT_PATH_WRITE_NODE |
NODE_CVASGN |
PM_CLASS_VARIABLE_WRITE_NODE |
NODE_OP_ASGN1 |
|
NODE_OP_ASGN2 |
|
NODE_OP_ASGN_AND |
PM_OPERATOR_AND_ASSIGNMENT_NODE |
NODE_OP_ASGN_OR |
PM_OPERATOR_OR_ASSIGNMENT_NODE |
NODE_OP_CDECL |
|
NODE_CALL |
PM_CALL_NODE |
NODE_OPCALL |
PM_CALL_NODE (with an operator as the method) |
NODE_FCALL |
PM_CALL_NODE (with a null receiver and parentheses) |
NODE_VCALL |
PM_CALL_NODE (with a null receiver and parentheses or arguments) |
NODE_QCALL |
PM_CALL_NODE (with a &. operator) |
NODE_SUPER |
PM_SUPER_NODE |
NODE_ZSUPER |
PM_FORWARDING_SUPER_NODE |
NODE_LIST |
PM_ARRAY_NODE |
NODE_ZLIST |
PM_ARRAY_NODE (with no child elements) |
NODE_VALUES |
PM_ARGUMENTS_NODE |
NODE_HASH |
PM_HASH_NODE |
NODE_RETURN |
PM_RETURN_NODE |
NODE_YIELD |
PM_YIELD_NODE |
NODE_LVAR |
PM_LOCAL_VARIABLE_READ_NODE |
NODE_DVAR |
PM_LOCAL_VARIABLE_READ_NODE |
NODE_GVAR |
PM_GLOBAL_VARIABLE_READ_NODE |
NODE_IVAR |
PM_INSTANCE_VARIABLE_READ_NODE |
NODE_CONST |
PM_CONSTANT_PATH_READ_NODE |
NODE_CVAR |
PM_CLASS_VARIABLE_READ_NODE |
NODE_NTH_REF |
PM_NUMBERED_REFERENCE_READ_NODE |
NODE_BACK_REF |
PM_BACK_REFERENCE_READ_NODE |
NODE_MATCH |
|
NODE_MATCH2 |
PM_CALL_NODE (with regular expression as receiver) |
NODE_MATCH3 |
PM_CALL_NODE (with regular expression as only argument) |
NODE_LIT |
|
NODE_STR |
PM_STRING_NODE |
NODE_DSTR |
PM_INTERPOLATED_STRING_NODE |
NODE_XSTR |
PM_X_STRING_NODE |
NODE_DXSTR |
PM_INTERPOLATED_X_STRING_NODE |
NODE_EVSTR |
PM_STRING_INTERPOLATED_NODE |
NODE_DREGX |
PM_INTERPOLATED_REGULAR_EXPRESSION_NODE |
NODE_ONCE |
|
NODE_ARGS |
PM_PARAMETERS_NODE |
NODE_ARGS_AUX |
|
NODE_OPT_ARG |
PM_OPTIONAL_PARAMETER_NODE |
NODE_KW_ARG |
PM_KEYWORD_PARAMETER_NODE |
NODE_POSTARG |
PM_REQUIRED_PARAMETER_NODE |
NODE_ARGSCAT |
|
NODE_ARGSPUSH |
|
NODE_SPLAT |
PM_SPLAT_NODE |
NODE_BLOCK_PASS |
PM_BLOCK_ARGUMENT_NODE |
NODE_DEFN |
PM_DEF_NODE (with a null receiver) |
NODE_DEFS |
PM_DEF_NODE (with a non-null receiver) |
NODE_ALIAS |
PM_ALIAS_NODE |
NODE_VALIAS |
PM_ALIAS_NODE (with a global variable first argument) |
NODE_UNDEF |
PM_UNDEF_NODE |
NODE_CLASS |
PM_CLASS_NODE |
NODE_MODULE |
PM_MODULE_NODE |
NODE_SCLASS |
PM_S_CLASS_NODE |
NODE_COLON2 |
PM_CONSTANT_PATH_NODE |
NODE_COLON3 |
PM_CONSTANT_PATH_NODE (with a null receiver) |
NODE_DOT2 |
PM_RANGE_NODE (with a .. operator) |
NODE_DOT3 |
PM_RANGE_NODE (with a ... operator) |
NODE_FLIP2 |
PM_RANGE_NODE (with a .. operator) |
NODE_FLIP3 |
PM_RANGE_NODE (with a ... operator) |
NODE_SELF |
PM_SELF_NODE |
NODE_NIL |
PM_NIL_NODE |
NODE_TRUE |
PM_TRUE_NODE |
NODE_FALSE |
PM_FALSE_NODE |
NODE_ERRINFO |
|
NODE_DEFINED |
PM_DEFINED_NODE |
NODE_POSTEXE |
PM_POST_EXECUTION_NODE |
NODE_DSYM |
PM_INTERPOLATED_SYMBOL_NODE |
NODE_ATTRASGN |
PM_CALL_NODE (with a message that ends with =) |
NODE_LAMBDA |
PM_LAMBDA_NODE |
NODE_ARYPTN |
PM_ARRAY_PATTERN_NODE |
NODE_HSHPTN |
PM_HASH_PATTERN_NODE |
NODE_FNDPTN |
PM_FIND_PATTERN_NODE |
NODE_ERROR |
PM_MISSING_NODE |
NODE_LAST |