├── .editorconfig ├── .gitignore ├── .vscode ├── launch.json └── tasks.json ├── .yarn └── releases │ └── yarn-3.2.1.cjs ├── .yarnrc.yml ├── Cargo.lock ├── Cargo.toml ├── Gemfile ├── Gemfile.lock ├── lsp ├── Cargo.toml └── src │ ├── lib.rs │ └── main.rs ├── package.json ├── scripts └── test.rb ├── src ├── ast.rs ├── bin │ └── parse.rs ├── lib.rs ├── parser.rs ├── parser │ ├── lexer.rs │ ├── parser_impl.rs │ └── token.rs ├── parser_diagnostics.rs ├── pgem_ast.rs ├── pos.rs ├── ruby_util.rs └── util.rs ├── testfiles-macros ├── Cargo.toml └── src │ └── lib.rs ├── testfiles ├── Cargo.toml └── src │ ├── lib.rs │ └── rt.rs ├── tests ├── parse │ ├── args.pgem.txt │ ├── args.rb │ ├── args_errors.errors.txt │ ├── args_errors.pgem.txt │ ├── args_errors.rb │ ├── array.pgem.txt │ ├── array.rb │ ├── assign.pgem.txt │ ├── assign.rb │ ├── call.pgem.txt │ ├── call.rb │ ├── chained_comparisons.errors.txt │ ├── chained_comparisons.pgem.txt │ ├── chained_comparisons.rb │ ├── chained_ranges.errors.txt │ ├── chained_ranges.pgem.txt │ ├── chained_ranges.rb │ ├── classes.pgem.txt │ ├── classes.rb │ ├── classes_errors.pgem.txt │ ├── classes_errors.rb │ ├── comments.pgem.txt │ ├── comments.rb │ ├── def.pending.txt │ ├── def.pgem.txt │ ├── def.rb │ ├── empty.pgem.txt │ ├── empty.rb │ ├── hash.pgem.txt │ ├── hash.rb │ ├── ident.pgem.txt │ ├── ident.rb │ ├── level1 │ │ ├── README.md │ │ ├── comment.pgem.txt │ │ ├── comment.rb │ │ ├── ident.pgem.txt │ │ ├── ident.rb │ │ ├── numeric.pgem.txt │ │ └── numeric.rb │ ├── level2 │ │ ├── README.md │ │ ├── alias.pending.txt │ │ ├── alias.pgem.txt │ │ ├── alias.rb │ │ ├── aref.pending.txt │ │ ├── aref.pgem.txt │ │ ├── aref.rb │ │ ├── array.pgem.txt │ │ ├── array.rb │ │ ├── assign.pgem.txt │ │ ├── assign.rb │ │ ├── assign_op.pending.txt │ │ ├── assign_op.pgem.txt │ │ ├── assign_op.rb │ │ ├── begin.pending.txt │ │ ├── begin.pgem.txt │ │ ├── begin.rb │ │ ├── break.pending.txt │ │ ├── break.pgem.txt │ │ ├── break.rb │ │ ├── call.pgem.txt │ │ ├── call.rb │ │ ├── call_relative.pgem.txt │ │ ├── call_relative.rb │ │ ├── capital_begin.pending.txt │ │ ├── capital_begin.pgem.txt │ │ ├── capital_begin.rb │ │ ├── capital_end.pending.txt │ │ ├── capital_end.pgem.txt │ │ ├── capital_end.rb │ │ ├── case.pending.txt │ │ ├── case.pgem.txt │ │ ├── case.rb │ │ ├── class.pgem.txt │ │ ├── class.rb │ │ ├── const.pgem.txt │ │ ├── const.rb │ │ ├── const_relative.pgem.txt │ │ ├── const_relative.rb │ │ ├── cvar.pgem.txt │ │ ├── cvar.rb │ │ ├── def.pgem.txt │ │ ├── def.rb │ │ ├── defined.pending.txt │ │ ├── defined.pgem.txt │ │ ├── defined.rb │ │ ├── for.pending.txt │ │ ├── for.pgem.txt │ │ ├── for.rb │ │ ├── gvar.pgem.txt │ │ ├── gvar.rb │ │ ├── hash.pgem.txt │ │ ├── hash.rb │ │ ├── ident.pgem.txt │ │ ├── ident.rb │ │ ├── if.pending.txt │ │ ├── if.pgem.txt │ │ ├── if.rb │ │ ├── ivar.pgem.txt │ │ ├── ivar.rb │ │ ├── lambda.pending.txt │ │ ├── lambda.pgem.txt │ │ ├── lambda.rb │ │ ├── lvar.pending.txt │ │ ├── lvar.pgem.txt │ │ ├── lvar.rb │ │ ├── module.pgem.txt │ │ ├── module.rb │ │ ├── newline.pgem.txt │ │ ├── newline.rb │ │ ├── next.pending.txt │ │ ├── next.pgem.txt │ │ ├── next.rb │ │ ├── numeric.pgem.txt │ │ ├── numeric.rb │ │ ├── op_additive_add.pgem.txt │ │ ├── op_additive_add.rb │ │ ├── op_additive_sub.pgem.txt │ │ ├── op_additive_sub.rb │ │ ├── op_bitwise_and.pgem.txt │ │ ├── op_bitwise_and.rb │ │ ├── op_bitwise_or_bitwise_or.pgem.txt │ │ ├── op_bitwise_or_bitwise_or.rb │ │ ├── op_bitwise_or_bitwise_xor.pgem.txt │ │ ├── op_bitwise_or_bitwise_xor.rb │ │ ├── op_cond_cond.pgem.txt │ │ ├── op_cond_cond.rb │ │ ├── op_equality_cmp.pgem.txt │ │ ├── op_equality_cmp.rb │ │ ├── op_equality_eq.pgem.txt │ │ ├── op_equality_eq.rb │ │ ├── op_equality_eqq.pgem.txt │ │ ├── op_equality_eqq.rb │ │ ├── op_equality_match.pgem.txt │ │ ├── op_equality_match.rb │ │ ├── op_equality_neq.pgem.txt │ │ ├── op_equality_neq.rb │ │ ├── op_equality_nmatch.pgem.txt │ │ ├── op_equality_nmatch.rb │ │ ├── op_inequality_gt.pgem.txt │ │ ├── op_inequality_gt.rb │ │ ├── op_inequality_gteq.pgem.txt │ │ ├── op_inequality_gteq.rb │ │ ├── op_inequality_lt.pgem.txt │ │ ├── op_inequality_lt.rb │ │ ├── op_inequality_lteq.pgem.txt │ │ ├── op_inequality_lteq.rb │ │ ├── op_keyword_and.pending.txt │ │ ├── op_keyword_and.pgem.txt │ │ ├── op_keyword_and.rb │ │ ├── op_keyword_not.pending.txt │ │ ├── op_keyword_not.pgem.txt │ │ ├── op_keyword_not.rb │ │ ├── op_keyword_or.pending.txt │ │ ├── op_keyword_or.pgem.txt │ │ ├── op_keyword_or.rb │ │ ├── op_logical_and.pgem.txt │ │ ├── op_logical_and.rb │ │ ├── op_logical_or.pgem.txt │ │ ├── op_logical_or.rb │ │ ├── op_modifier_if.pending.txt │ │ ├── op_modifier_if.pgem.txt │ │ ├── op_modifier_if.rb │ │ ├── op_modifier_unless.pending.txt │ │ ├── op_modifier_unless.pgem.txt │ │ ├── op_modifier_unless.rb │ │ ├── op_modifier_until.pending.txt │ │ ├── op_modifier_until.pgem.txt │ │ ├── op_modifier_until.rb │ │ ├── op_modifier_while.pending.txt │ │ ├── op_modifier_while.pgem.txt │ │ ├── op_modifier_while.rb │ │ ├── op_multiplicative_div.pgem.txt │ │ ├── op_multiplicative_div.rb │ │ ├── op_multiplicative_mod.pgem.txt │ │ ├── op_multiplicative_mod.rb │ │ ├── op_multiplicative_mul.pgem.txt │ │ ├── op_multiplicative_mul.rb │ │ ├── op_pow.pgem.txt │ │ ├── op_pow.rb │ │ ├── op_range_erange.pgem.txt │ │ ├── op_range_erange.rb │ │ ├── op_range_irange.pgem.txt │ │ ├── op_range_irange.rb │ │ ├── op_rescue.pending.txt │ │ ├── op_rescue.pgem.txt │ │ ├── op_rescue.rb │ │ ├── op_shift_lshift.pgem.txt │ │ ├── op_shift_lshift.rb │ │ ├── op_shift_rshift.pgem.txt │ │ ├── op_shift_rshift.rb │ │ ├── op_unary_bitwise_not.pgem.txt │ │ ├── op_unary_bitwise_not.rb │ │ ├── op_unary_neg.pgem.txt │ │ ├── op_unary_neg.rb │ │ ├── op_unary_not.pgem.txt │ │ ├── op_unary_not.rb │ │ ├── op_unary_pos.pgem.txt │ │ ├── op_unary_pos.rb │ │ ├── paren.pgem.txt │ │ ├── paren.rb │ │ ├── pat_assoc.pending.txt │ │ ├── pat_assoc.pgem.txt │ │ ├── pat_assoc.rb │ │ ├── pat_in.pending.txt │ │ ├── pat_in.pgem.txt │ │ ├── pat_in.rb │ │ ├── proc_call.pending.txt │ │ ├── proc_call.pgem.txt │ │ ├── proc_call.rb │ │ ├── redo.pending.txt │ │ ├── redo.pgem.txt │ │ ├── redo.rb │ │ ├── retry.pending.txt │ │ ├── retry.pgem.txt │ │ ├── retry.rb │ │ ├── return.pending.txt │ │ ├── return.pgem.txt │ │ ├── return.rb │ │ ├── semi.pgem.txt │ │ ├── semi.rb │ │ ├── string_dquote.pgem.txt │ │ ├── string_dquote.rb │ │ ├── string_squote.pgem.txt │ │ ├── string_squote.rb │ │ ├── symbol.pgem.txt │ │ ├── symbol.rb │ │ ├── undef.pending.txt │ │ ├── undef.pgem.txt │ │ ├── undef.rb │ │ ├── unless.pending.txt │ │ ├── unless.pgem.txt │ │ ├── unless.rb │ │ ├── until.pending.txt │ │ ├── until.pgem.txt │ │ ├── until.rb │ │ ├── while.pending.txt │ │ ├── while.pgem.txt │ │ ├── while.rb │ │ ├── yield.pending.txt │ │ ├── yield.pgem.txt │ │ └── yield.rb │ ├── level3 │ │ ├── README.md │ │ ├── assign_op │ │ │ ├── additive_add.pending.txt │ │ │ ├── additive_add.pgem.txt │ │ │ ├── additive_add.rb │ │ │ ├── additive_sub.pending.txt │ │ │ ├── additive_sub.pgem.txt │ │ │ ├── additive_sub.rb │ │ │ ├── bitwise_and.pending.txt │ │ │ ├── bitwise_and.pgem.txt │ │ │ ├── bitwise_and.rb │ │ │ ├── bitwise_or_bitwise_or.pending.txt │ │ │ ├── bitwise_or_bitwise_or.pgem.txt │ │ │ ├── bitwise_or_bitwise_or.rb │ │ │ ├── bitwise_or_bitwise_xor.pending.txt │ │ │ ├── bitwise_or_bitwise_xor.pgem.txt │ │ │ ├── bitwise_or_bitwise_xor.rb │ │ │ ├── logical_and.pending.txt │ │ │ ├── logical_and.pgem.txt │ │ │ ├── logical_and.rb │ │ │ ├── logical_or.pending.txt │ │ │ ├── logical_or.pgem.txt │ │ │ ├── logical_or.rb │ │ │ ├── multiplicative_div.pending.txt │ │ │ ├── multiplicative_div.pgem.txt │ │ │ ├── multiplicative_div.rb │ │ │ ├── multiplicative_mod.pending.txt │ │ │ ├── multiplicative_mod.pgem.txt │ │ │ ├── multiplicative_mod.rb │ │ │ ├── multiplicative_mul.pending.txt │ │ │ ├── multiplicative_mul.pgem.txt │ │ │ ├── multiplicative_mul.rb │ │ │ ├── pow.pending.txt │ │ │ ├── pow.pgem.txt │ │ │ ├── pow.rb │ │ │ ├── shift_lshift.pending.txt │ │ │ ├── shift_lshift.pgem.txt │ │ │ ├── shift_lshift.rb │ │ │ ├── shift_rshift.pending.txt │ │ │ ├── shift_rshift.pgem.txt │ │ │ └── shift_rshift.rb │ │ ├── begin │ │ │ ├── basic.pending.txt │ │ │ ├── basic.pgem.txt │ │ │ ├── basic.rb │ │ │ ├── ensure1.pending.txt │ │ │ ├── ensure1.pgem.txt │ │ │ ├── ensure1.rb │ │ │ ├── ensure2.pending.txt │ │ │ ├── ensure2.pgem.txt │ │ │ ├── ensure2.rb │ │ │ ├── preceding.pending.txt │ │ │ ├── preceding.pgem.txt │ │ │ ├── preceding.rb │ │ │ ├── rescue1.pending.txt │ │ │ ├── rescue1.pgem.txt │ │ │ ├── rescue1.rb │ │ │ ├── rescue2.pending.txt │ │ │ ├── rescue2.pgem.txt │ │ │ ├── rescue2.rb │ │ │ ├── rescue3.pending.txt │ │ │ ├── rescue3.pgem.txt │ │ │ ├── rescue3.rb │ │ │ ├── rescue4.pending.txt │ │ │ ├── rescue4.pgem.txt │ │ │ ├── rescue4.rb │ │ │ ├── rescue5.pending.txt │ │ │ ├── rescue5.pgem.txt │ │ │ ├── rescue5.rb │ │ │ ├── rescue_else.pending.txt │ │ │ ├── rescue_else.pgem.txt │ │ │ ├── rescue_else.rb │ │ │ ├── rescue_multi.pending.txt │ │ │ ├── rescue_multi.pgem.txt │ │ │ ├── rescue_multi.rb │ │ │ ├── semi.pending.txt │ │ │ ├── semi.pgem.txt │ │ │ ├── semi.rb │ │ │ ├── trailing.pending.txt │ │ │ ├── trailing.pgem.txt │ │ │ └── trailing.rb │ │ ├── call │ │ │ ├── dot_basic.pgem.txt │ │ │ ├── dot_basic.rb │ │ │ ├── dot_braces.pending.txt │ │ │ ├── dot_braces.pgem.txt │ │ │ ├── dot_braces.rb │ │ │ ├── dot_dcolon.pgem.txt │ │ │ ├── dot_dcolon.rb │ │ │ ├── dot_dcolon_braces.pending.txt │ │ │ ├── dot_dcolon_braces.pgem.txt │ │ │ ├── dot_dcolon_braces.rb │ │ │ ├── dot_dcolon_do.pending.txt │ │ │ ├── dot_dcolon_do.pgem.txt │ │ │ ├── dot_dcolon_do.rb │ │ │ ├── dot_do.pending.txt │ │ │ ├── dot_do.pgem.txt │ │ │ ├── dot_do.rb │ │ │ ├── dot_fcall.pgem.txt │ │ │ ├── dot_fcall.rb │ │ │ ├── dot_nilsafe.pgem.txt │ │ │ ├── dot_nilsafe.rb │ │ │ ├── dot_nilsafe_braces.pending.txt │ │ │ ├── dot_nilsafe_braces.pgem.txt │ │ │ ├── dot_nilsafe_braces.rb │ │ │ ├── dot_nilsafe_do.pending.txt │ │ │ ├── dot_nilsafe_do.pgem.txt │ │ │ ├── dot_nilsafe_do.rb │ │ │ ├── dot_op1.pgem.txt │ │ │ ├── dot_op1.rb │ │ │ ├── dot_op2.pgem.txt │ │ │ ├── dot_op2.rb │ │ │ ├── dot_op3.pgem.txt │ │ │ ├── dot_op3.rb │ │ │ ├── dot_reswords.pgem.txt │ │ │ ├── dot_reswords.rb │ │ │ ├── self_call_basic.pgem.txt │ │ │ ├── self_call_basic.rb │ │ │ ├── self_call_braces.pending.txt │ │ │ ├── self_call_braces.pgem.txt │ │ │ ├── self_call_braces.rb │ │ │ ├── self_call_const.pgem.txt │ │ │ ├── self_call_const.rb │ │ │ ├── self_call_do.pending.txt │ │ │ ├── self_call_do.pgem.txt │ │ │ ├── self_call_do.rb │ │ │ ├── self_call_fcall.pgem.txt │ │ │ └── self_call_fcall.rb │ │ ├── call_args │ │ │ ├── amper.pending.txt │ │ │ ├── amper.pgem.txt │ │ │ ├── amper.rb │ │ │ ├── assoc1.pending.txt │ │ │ ├── assoc1.pgem.txt │ │ │ ├── assoc1.rb │ │ │ ├── assoc2.pending.txt │ │ │ ├── assoc2.pgem.txt │ │ │ ├── assoc2.rb │ │ │ ├── assoc3.pending.txt │ │ │ ├── assoc3.pgem.txt │ │ │ ├── assoc3.rb │ │ │ ├── assoc_dsplat.pending.txt │ │ │ ├── assoc_dsplat.pgem.txt │ │ │ ├── assoc_dsplat.rb │ │ │ ├── assoc_mixed.pending.txt │ │ │ ├── assoc_mixed.pgem.txt │ │ │ ├── assoc_mixed.rb │ │ │ ├── basic.pgem.txt │ │ │ ├── basic.rb │ │ │ ├── splat.pending.txt │ │ │ ├── splat.pgem.txt │ │ │ └── splat.rb │ │ ├── ident │ │ │ ├── basic.pgem.txt │ │ │ ├── basic.rb │ │ │ ├── basic_unicode.pgem.txt │ │ │ ├── basic_unicode.rb │ │ │ ├── const.pgem.txt │ │ │ ├── const.rb │ │ │ ├── const_unicode.pending.txt │ │ │ ├── const_unicode.pgem.txt │ │ │ ├── const_unicode.rb │ │ │ ├── cvar.pgem.txt │ │ │ ├── cvar.rb │ │ │ ├── cvar_unicode.pgem.txt │ │ │ ├── cvar_unicode.rb │ │ │ ├── fname1.pgem.txt │ │ │ ├── fname1.rb │ │ │ ├── fname1_unicode.pgem.txt │ │ │ ├── fname1_unicode.rb │ │ │ ├── fname2.errors.txt │ │ │ ├── fname2.pgem.txt │ │ │ ├── fname2.rb │ │ │ ├── fname2_unicode.errors.txt │ │ │ ├── fname2_unicode.pgem.txt │ │ │ ├── fname2_unicode.rb │ │ │ ├── gvar_basic.pgem.txt │ │ │ ├── gvar_basic.rb │ │ │ ├── gvar_basic_unicode.pgem.txt │ │ │ ├── gvar_basic_unicode.rb │ │ │ ├── gvar_nth.pgem.txt │ │ │ ├── gvar_nth.rb │ │ │ ├── gvar_nth_very_large.pending.txt │ │ │ ├── gvar_nth_very_large.pgem.txt │ │ │ ├── gvar_nth_very_large.rb │ │ │ ├── gvar_opt.pgem.txt │ │ │ ├── gvar_opt.rb │ │ │ ├── gvar_punct.pgem.txt │ │ │ ├── gvar_punct.rb │ │ │ ├── ivar.pgem.txt │ │ │ ├── ivar.rb │ │ │ ├── ivar_unicode.pgem.txt │ │ │ └── ivar_unicode.rb │ │ ├── if │ │ │ ├── else_body.pending.txt │ │ │ ├── else_body.pgem.txt │ │ │ ├── else_body.rb │ │ │ ├── elsif_body.pending.txt │ │ │ ├── elsif_body.pgem.txt │ │ │ ├── elsif_body.rb │ │ │ ├── elsif_then.pending.txt │ │ │ ├── elsif_then.pgem.txt │ │ │ ├── elsif_then.rb │ │ │ ├── if_basic.pending.txt │ │ │ ├── if_basic.pgem.txt │ │ │ ├── if_basic.rb │ │ │ ├── if_body.pending.txt │ │ │ ├── if_body.pgem.txt │ │ │ ├── if_body.rb │ │ │ ├── if_chain.pending.txt │ │ │ ├── if_chain.pgem.txt │ │ │ ├── if_chain.rb │ │ │ ├── if_then.pending.txt │ │ │ ├── if_then.pgem.txt │ │ │ ├── if_then.rb │ │ │ ├── modifier_if.pending.txt │ │ │ ├── modifier_if.pgem.txt │ │ │ ├── modifier_if.rb │ │ │ ├── modifier_unless.pending.txt │ │ │ ├── modifier_unless.pgem.txt │ │ │ ├── modifier_unless.rb │ │ │ ├── unless_basic.pending.txt │ │ │ ├── unless_basic.pgem.txt │ │ │ ├── unless_basic.rb │ │ │ ├── unless_body.pending.txt │ │ │ ├── unless_body.pgem.txt │ │ │ ├── unless_body.rb │ │ │ ├── unless_chain.pending.txt │ │ │ ├── unless_chain.pgem.txt │ │ │ ├── unless_chain.rb │ │ │ ├── unless_then.pending.txt │ │ │ ├── unless_then.pgem.txt │ │ │ └── unless_then.rb │ │ ├── label │ │ │ ├── basic.pending.txt │ │ │ ├── basic.pgem.txt │ │ │ ├── basic.rb │ │ │ ├── quoted.pending.txt │ │ │ ├── quoted.pgem.txt │ │ │ └── quoted.rb │ │ ├── numeric │ │ │ ├── float_decimal_point.pending.txt │ │ │ ├── float_decimal_point.pgem.txt │ │ │ ├── float_decimal_point.rb │ │ │ ├── float_exponent.pending.txt │ │ │ ├── float_exponent.pgem.txt │ │ │ ├── float_exponent.rb │ │ │ ├── imaginary.pending.txt │ │ │ ├── imaginary.pgem.txt │ │ │ ├── imaginary.rb │ │ │ ├── integer_binary.pending.txt │ │ │ ├── integer_binary.pgem.txt │ │ │ ├── integer_binary.rb │ │ │ ├── integer_decimal_basic.pgem.txt │ │ │ ├── integer_decimal_basic.rb │ │ │ ├── integer_decimal_sign.pgem.txt │ │ │ ├── integer_decimal_sign.rb │ │ │ ├── integer_decimal_sign_underscore.pgem.txt │ │ │ ├── integer_decimal_sign_underscore.rb │ │ │ ├── integer_decimal_underscore.pgem.txt │ │ │ ├── integer_decimal_underscore.rb │ │ │ ├── integer_hexadecimal.pending.txt │ │ │ ├── integer_hexadecimal.pgem.txt │ │ │ ├── integer_hexadecimal.rb │ │ │ ├── integer_octal.pending.txt │ │ │ ├── integer_octal.pgem.txt │ │ │ ├── integer_octal.rb │ │ │ ├── integer_prefixed_decimal.pending.txt │ │ │ ├── integer_prefixed_decimal.pgem.txt │ │ │ ├── integer_prefixed_decimal.rb │ │ │ ├── integer_prefixed_octal.pending.txt │ │ │ ├── integer_prefixed_octal.pgem.txt │ │ │ ├── integer_prefixed_octal.rb │ │ │ ├── rational.pending.txt │ │ │ ├── rational.pgem.txt │ │ │ ├── rational.rb │ │ │ ├── rational_imaginary.pending.txt │ │ │ ├── rational_imaginary.pgem.txt │ │ │ ├── rational_imaginary.rb │ │ │ ├── very_large_float.pending.txt │ │ │ ├── very_large_float.pgem.txt │ │ │ ├── very_large_float.rb │ │ │ ├── very_large_integer.pending.txt │ │ │ ├── very_large_integer.pgem.txt │ │ │ ├── very_large_integer.rb │ │ │ ├── very_large_rational.pending.txt │ │ │ ├── very_large_rational.pgem.txt │ │ │ └── very_large_rational.rb │ │ ├── paren │ │ │ ├── basic.pgem.txt │ │ │ ├── basic.rb │ │ │ ├── preceding.pgem.txt │ │ │ ├── preceding.rb │ │ │ ├── semi.pgem.txt │ │ │ ├── semi.rb │ │ │ ├── trailing.pgem.txt │ │ │ └── trailing.rb │ │ ├── proc_call │ │ │ ├── basic.pending.txt │ │ │ ├── basic.pgem.txt │ │ │ ├── basic.rb │ │ │ ├── braces.pending.txt │ │ │ ├── braces.pgem.txt │ │ │ ├── braces.rb │ │ │ ├── dcolon.pending.txt │ │ │ ├── dcolon.pgem.txt │ │ │ ├── dcolon.rb │ │ │ ├── do.pending.txt │ │ │ ├── do.pgem.txt │ │ │ └── do.rb │ │ ├── pseudo_var │ │ │ ├── bool.pgem.txt │ │ │ ├── bool.rb │ │ │ ├── nil.pgem.txt │ │ │ ├── nil.rb │ │ │ ├── self.pgem.txt │ │ │ ├── self.rb │ │ │ ├── underscore.pgem.txt │ │ │ └── underscore.rb │ │ ├── range │ │ │ ├── basic.pgem.txt │ │ │ ├── basic.rb │ │ │ ├── beginless.pgem.txt │ │ │ └── beginless.rb │ │ ├── string │ │ │ ├── dquote_basic.pending.txt │ │ │ ├── dquote_basic.pgem.txt │ │ │ ├── dquote_basic.rb │ │ │ ├── dquote_escapes_basic.pending.txt │ │ │ ├── dquote_escapes_basic.pgem.txt │ │ │ ├── dquote_escapes_basic.rb │ │ │ ├── dquote_escapes_control1.pending.txt │ │ │ ├── dquote_escapes_control1.pgem.txt │ │ │ ├── dquote_escapes_control1.rb │ │ │ ├── dquote_escapes_control2.pending.txt │ │ │ ├── dquote_escapes_control2.pgem.txt │ │ │ ├── dquote_escapes_control2.rb │ │ │ ├── dquote_escapes_control3.pending.txt │ │ │ ├── dquote_escapes_control3.pgem.txt │ │ │ ├── dquote_escapes_control3.rb │ │ │ ├── dquote_escapes_hexadecimal1.errors.txt │ │ │ ├── dquote_escapes_hexadecimal1.pending.txt │ │ │ ├── dquote_escapes_hexadecimal1.rb │ │ │ ├── dquote_escapes_hexadecimal2.pending.txt │ │ │ ├── dquote_escapes_hexadecimal2.pgem.txt │ │ │ ├── dquote_escapes_hexadecimal2.rb │ │ │ ├── dquote_escapes_meta1.errors.txt │ │ │ ├── dquote_escapes_meta1.pending.txt │ │ │ ├── dquote_escapes_meta1.rb │ │ │ ├── dquote_escapes_meta2.errors.txt │ │ │ ├── dquote_escapes_meta2.pending.txt │ │ │ ├── dquote_escapes_meta2.rb │ │ │ ├── dquote_escapes_meta_control.errors.txt │ │ │ ├── dquote_escapes_meta_control.pending.txt │ │ │ ├── dquote_escapes_meta_control.rb │ │ │ ├── dquote_escapes_newline.pending.txt │ │ │ ├── dquote_escapes_newline.pgem.txt │ │ │ ├── dquote_escapes_newline.rb │ │ │ ├── dquote_escapes_octal1.pending.txt │ │ │ ├── dquote_escapes_octal1.pgem.txt │ │ │ ├── dquote_escapes_octal1.rb │ │ │ ├── dquote_escapes_octal2.errors.txt │ │ │ ├── dquote_escapes_octal2.pending.txt │ │ │ ├── dquote_escapes_octal2.rb │ │ │ ├── dquote_escapes_octal3.pending.txt │ │ │ ├── dquote_escapes_octal3.pgem.txt │ │ │ ├── dquote_escapes_octal3.rb │ │ │ ├── dquote_escapes_octal4.pending.txt │ │ │ ├── dquote_escapes_octal4.pgem.txt │ │ │ ├── dquote_escapes_octal4.rb │ │ │ ├── dquote_escapes_octal5.errors.txt │ │ │ ├── dquote_escapes_octal5.pending.txt │ │ │ ├── dquote_escapes_octal5.rb │ │ │ ├── dquote_escapes_self1.pending.txt │ │ │ ├── dquote_escapes_self1.pgem.txt │ │ │ ├── dquote_escapes_self1.rb │ │ │ ├── dquote_escapes_self2.errors.txt │ │ │ ├── dquote_escapes_self2.pending.txt │ │ │ ├── dquote_escapes_self2.pgem.txt │ │ │ ├── dquote_escapes_self2.rb │ │ │ ├── dquote_escapes_self2.skip_pgem.txt │ │ │ ├── dquote_escapes_self3.pending.txt │ │ │ ├── dquote_escapes_self3.pgem.txt │ │ │ ├── dquote_escapes_self3.rb │ │ │ ├── dquote_escapes_unicode.pending.txt │ │ │ ├── dquote_escapes_unicode.pgem.txt │ │ │ ├── dquote_escapes_unicode.rb │ │ │ ├── dquote_non_expansions.pending.txt │ │ │ ├── dquote_non_expansions.pgem.txt │ │ │ ├── dquote_non_expansions.rb │ │ │ ├── multi.pending.txt │ │ │ ├── multi.pgem.txt │ │ │ ├── multi.rb │ │ │ ├── squote_basic.pending.txt │ │ │ ├── squote_basic.pgem.txt │ │ │ ├── squote_basic.rb │ │ │ ├── squote_escapes.pending.txt │ │ │ ├── squote_escapes.pgem.txt │ │ │ ├── squote_escapes.rb │ │ │ ├── squote_non_expansions.pgem.txt │ │ │ └── squote_non_expansions.rb │ │ ├── symbol │ │ │ ├── basic.pgem.txt │ │ │ ├── basic.rb │ │ │ ├── basic_unicode.pgem.txt │ │ │ ├── basic_unicode.rb │ │ │ ├── const.pgem.txt │ │ │ ├── const.rb │ │ │ ├── const_unicode.pgem.txt │ │ │ ├── const_unicode.rb │ │ │ ├── cvar.pgem.txt │ │ │ ├── cvar.rb │ │ │ ├── cvar_unicode.pgem.txt │ │ │ ├── cvar_unicode.rb │ │ │ ├── fname1.pgem.txt │ │ │ ├── fname1.rb │ │ │ ├── fname1_unicode.pgem.txt │ │ │ ├── fname1_unicode.rb │ │ │ ├── fname2.pending.txt │ │ │ ├── fname2.pgem.txt │ │ │ ├── fname2.rb │ │ │ ├── fname2_unicode.pending.txt │ │ │ ├── fname2_unicode.pgem.txt │ │ │ ├── fname2_unicode.rb │ │ │ ├── gvar_basic.pgem.txt │ │ │ ├── gvar_basic.rb │ │ │ ├── gvar_basic_unicode.pgem.txt │ │ │ ├── gvar_basic_unicode.rb │ │ │ ├── gvar_nth.pgem.txt │ │ │ ├── gvar_nth.rb │ │ │ ├── gvar_nth_very_large.pgem.txt │ │ │ ├── gvar_nth_very_large.rb │ │ │ ├── gvar_opt.pgem.txt │ │ │ ├── gvar_opt.rb │ │ │ ├── gvar_punct.pgem.txt │ │ │ ├── gvar_punct.rb │ │ │ ├── ivar.pgem.txt │ │ │ ├── ivar.rb │ │ │ ├── ivar_unicode.pgem.txt │ │ │ ├── ivar_unicode.rb │ │ │ ├── op1.pending.txt │ │ │ ├── op1.pgem.txt │ │ │ ├── op1.rb │ │ │ ├── op2.pending.txt │ │ │ ├── op2.pgem.txt │ │ │ ├── op2.rb │ │ │ ├── op3.pending.txt │ │ │ ├── op3.pgem.txt │ │ │ ├── op3.rb │ │ │ ├── reswords.pending.txt │ │ │ ├── reswords.pgem.txt │ │ │ └── reswords.rb │ │ └── xstring │ │ │ ├── basic.pending.txt │ │ │ ├── basic.pgem.txt │ │ │ ├── basic.rb │ │ │ ├── escapes.pending.txt │ │ │ ├── escapes.pgem.txt │ │ │ ├── escapes.rb │ │ │ ├── non_escapes.pending.txt │ │ │ ├── non_escapes.pgem.txt │ │ │ └── non_escapes.rb │ ├── level4 │ │ ├── README.md │ │ └── scoping │ │ │ ├── if.pending.txt │ │ │ ├── if.pgem.txt │ │ │ ├── if.rb │ │ │ ├── modifier_if.pending.txt │ │ │ ├── modifier_if.pgem.txt │ │ │ ├── modifier_if.rb │ │ │ ├── modifier_unless.pending.txt │ │ │ ├── modifier_unless.pgem.txt │ │ │ ├── modifier_unless.rb │ │ │ ├── unless.pending.txt │ │ │ ├── unless.pgem.txt │ │ │ └── unless.rb │ ├── level5 │ │ ├── README.md │ │ ├── arg_lex │ │ │ ├── amper1.pgem.txt │ │ │ ├── amper1.rb │ │ │ ├── amper1_lvar.pending.txt │ │ │ ├── amper1_lvar.pgem.txt │ │ │ ├── amper1_lvar.rb │ │ │ ├── amper2.pending.txt │ │ │ ├── amper2.pgem.txt │ │ │ ├── amper2.rb │ │ │ ├── amper2_lvar.pending.txt │ │ │ ├── amper2_lvar.pgem.txt │ │ │ ├── amper2_lvar.rb │ │ │ ├── amper3.pgem.txt │ │ │ ├── amper3.rb │ │ │ ├── amper3_lvar.pending.txt │ │ │ ├── amper3_lvar.pgem.txt │ │ │ ├── amper3_lvar.rb │ │ │ ├── amper4.pgem.txt │ │ │ ├── amper4.rb │ │ │ ├── amper4_lvar.pending.txt │ │ │ ├── amper4_lvar.pgem.txt │ │ │ ├── amper4_lvar.rb │ │ │ ├── amper5.pending.txt │ │ │ ├── amper5.pgem.txt │ │ │ ├── amper5.rb │ │ │ ├── amper5_lvar.pending.txt │ │ │ ├── amper5_lvar.pgem.txt │ │ │ ├── amper5_lvar.rb │ │ │ ├── aref1.pending.txt │ │ │ ├── aref1.pgem.txt │ │ │ ├── aref1.rb │ │ │ ├── aref1_lvar.pending.txt │ │ │ ├── aref1_lvar.pgem.txt │ │ │ ├── aref1_lvar.rb │ │ │ ├── aref2.pending.txt │ │ │ ├── aref2.pgem.txt │ │ │ ├── aref2.rb │ │ │ ├── aref2_lvar.pending.txt │ │ │ ├── aref2_lvar.pgem.txt │ │ │ ├── aref2_lvar.rb │ │ │ ├── aref3.pending.txt │ │ │ ├── aref3.pgem.txt │ │ │ ├── aref3.rb │ │ │ ├── aref3_lvar.pending.txt │ │ │ ├── aref3_lvar.pgem.txt │ │ │ ├── aref3_lvar.rb │ │ │ ├── aref4.pending.txt │ │ │ ├── aref4.pgem.txt │ │ │ ├── aref4.rb │ │ │ ├── aref4_lvar.pending.txt │ │ │ ├── aref4_lvar.pgem.txt │ │ │ ├── aref4_lvar.rb │ │ │ ├── aref5.pending.txt │ │ │ ├── aref5.pgem.txt │ │ │ ├── aref5.rb │ │ │ ├── aref5_lvar.pending.txt │ │ │ ├── aref5_lvar.pgem.txt │ │ │ ├── aref5_lvar.rb │ │ │ ├── dcolon1.pgem.txt │ │ │ ├── dcolon1.rb │ │ │ ├── dcolon2.pgem.txt │ │ │ ├── dcolon2.rb │ │ │ ├── dcolon3.pgem.txt │ │ │ ├── dcolon3.rb │ │ │ ├── dcolon4.pgem.txt │ │ │ ├── dcolon4.rb │ │ │ ├── dcolon5.pgem.txt │ │ │ ├── dcolon5.rb │ │ │ ├── dstar1.pgem.txt │ │ │ ├── dstar1.rb │ │ │ ├── dstar1_lvar.pending.txt │ │ │ ├── dstar1_lvar.pgem.txt │ │ │ ├── dstar1_lvar.rb │ │ │ ├── dstar2.pending.txt │ │ │ ├── dstar2.pgem.txt │ │ │ ├── dstar2.rb │ │ │ ├── dstar2_lvar.pending.txt │ │ │ ├── dstar2_lvar.pgem.txt │ │ │ ├── dstar2_lvar.rb │ │ │ ├── dstar3.pgem.txt │ │ │ ├── dstar3.rb │ │ │ ├── dstar3_lvar.pending.txt │ │ │ ├── dstar3_lvar.pgem.txt │ │ │ ├── dstar3_lvar.rb │ │ │ ├── dstar4.pgem.txt │ │ │ ├── dstar4.rb │ │ │ ├── dstar4_lvar.pending.txt │ │ │ ├── dstar4_lvar.pgem.txt │ │ │ ├── dstar4_lvar.rb │ │ │ ├── dstar5.pending.txt │ │ │ ├── dstar5.pgem.txt │ │ │ ├── dstar5.rb │ │ │ ├── dstar5_lvar.pending.txt │ │ │ ├── dstar5_lvar.pgem.txt │ │ │ ├── dstar5_lvar.rb │ │ │ ├── percent1.pgem.txt │ │ │ ├── percent1.rb │ │ │ ├── percent1_lvar.pending.txt │ │ │ ├── percent1_lvar.pgem.txt │ │ │ ├── percent1_lvar.rb │ │ │ ├── percent2.pending.txt │ │ │ ├── percent2.pgem.txt │ │ │ ├── percent2.rb │ │ │ ├── percent2_lvar.pending.txt │ │ │ ├── percent2_lvar.pgem.txt │ │ │ ├── percent2_lvar.rb │ │ │ ├── percent3.pgem.txt │ │ │ ├── percent3.rb │ │ │ ├── percent3_lvar.pending.txt │ │ │ ├── percent3_lvar.pgem.txt │ │ │ ├── percent3_lvar.rb │ │ │ ├── percent4.pgem.txt │ │ │ ├── percent4.rb │ │ │ ├── percent4_lvar.pending.txt │ │ │ ├── percent4_lvar.pgem.txt │ │ │ ├── percent4_lvar.rb │ │ │ ├── regexp1.pending.txt │ │ │ ├── regexp1.pgem.txt │ │ │ ├── regexp1.rb │ │ │ ├── regexp10.pending.txt │ │ │ ├── regexp10.pgem.txt │ │ │ ├── regexp10.rb │ │ │ ├── regexp10_lvar.pending.txt │ │ │ ├── regexp10_lvar.pgem.txt │ │ │ ├── regexp10_lvar.rb │ │ │ ├── regexp1_lvar.pending.txt │ │ │ ├── regexp1_lvar.pgem.txt │ │ │ ├── regexp1_lvar.rb │ │ │ ├── regexp2.pending.txt │ │ │ ├── regexp2.pgem.txt │ │ │ ├── regexp2.rb │ │ │ ├── regexp2_lvar.pending.txt │ │ │ ├── regexp2_lvar.pgem.txt │ │ │ ├── regexp2_lvar.rb │ │ │ ├── regexp3.pending.txt │ │ │ ├── regexp3.pgem.txt │ │ │ ├── regexp3.rb │ │ │ ├── regexp3_lvar.pending.txt │ │ │ ├── regexp3_lvar.pgem.txt │ │ │ ├── regexp3_lvar.rb │ │ │ ├── regexp4.pending.txt │ │ │ ├── regexp4.pgem.txt │ │ │ ├── regexp4.rb │ │ │ ├── regexp4_lvar.pending.txt │ │ │ ├── regexp4_lvar.pgem.txt │ │ │ ├── regexp4_lvar.rb │ │ │ ├── regexp5.pending.txt │ │ │ ├── regexp5.pgem.txt │ │ │ ├── regexp5.rb │ │ │ ├── regexp5_lvar.pending.txt │ │ │ ├── regexp5_lvar.pgem.txt │ │ │ ├── regexp5_lvar.rb │ │ │ ├── regexp6.pending.txt │ │ │ ├── regexp6.pgem.txt │ │ │ ├── regexp6.rb │ │ │ ├── regexp6_lvar.pending.txt │ │ │ ├── regexp6_lvar.pgem.txt │ │ │ ├── regexp6_lvar.rb │ │ │ ├── regexp7.pending.txt │ │ │ ├── regexp7.pgem.txt │ │ │ ├── regexp7.rb │ │ │ ├── regexp7_lvar.pending.txt │ │ │ ├── regexp7_lvar.pgem.txt │ │ │ ├── regexp7_lvar.rb │ │ │ ├── regexp8.pending.txt │ │ │ ├── regexp8.pgem.txt │ │ │ ├── regexp8.rb │ │ │ ├── regexp8_lvar.pending.txt │ │ │ ├── regexp8_lvar.pgem.txt │ │ │ ├── regexp8_lvar.rb │ │ │ ├── regexp9.pending.txt │ │ │ ├── regexp9.pgem.txt │ │ │ ├── regexp9.rb │ │ │ ├── regexp9_lvar.pending.txt │ │ │ ├── regexp9_lvar.pgem.txt │ │ │ ├── regexp9_lvar.rb │ │ │ ├── star1.pgem.txt │ │ │ ├── star1.rb │ │ │ ├── star1_lvar.pending.txt │ │ │ ├── star1_lvar.pgem.txt │ │ │ ├── star1_lvar.rb │ │ │ ├── star2.pending.txt │ │ │ ├── star2.pgem.txt │ │ │ ├── star2.rb │ │ │ ├── star2_lvar.pending.txt │ │ │ ├── star2_lvar.pgem.txt │ │ │ ├── star2_lvar.rb │ │ │ ├── star3.pgem.txt │ │ │ ├── star3.rb │ │ │ ├── star3_lvar.pending.txt │ │ │ ├── star3_lvar.pgem.txt │ │ │ ├── star3_lvar.rb │ │ │ ├── star4.pgem.txt │ │ │ ├── star4.rb │ │ │ ├── star4_lvar.pending.txt │ │ │ ├── star4_lvar.pgem.txt │ │ │ ├── star4_lvar.rb │ │ │ ├── star5.pending.txt │ │ │ ├── star5.pgem.txt │ │ │ ├── star5.rb │ │ │ ├── star5_lvar.pending.txt │ │ │ ├── star5_lvar.pgem.txt │ │ │ ├── star5_lvar.rb │ │ │ ├── uminus1.pgem.txt │ │ │ ├── uminus1.rb │ │ │ ├── uminus1_lvar.pending.txt │ │ │ ├── uminus1_lvar.pgem.txt │ │ │ ├── uminus1_lvar.rb │ │ │ ├── uminus2.pgem.txt │ │ │ ├── uminus2.rb │ │ │ ├── uminus2_lvar.pending.txt │ │ │ ├── uminus2_lvar.pgem.txt │ │ │ ├── uminus2_lvar.rb │ │ │ ├── uminus3.pgem.txt │ │ │ ├── uminus3.rb │ │ │ ├── uminus3_lvar.pending.txt │ │ │ ├── uminus3_lvar.pgem.txt │ │ │ ├── uminus3_lvar.rb │ │ │ ├── uminus4.pgem.txt │ │ │ ├── uminus4.rb │ │ │ ├── uminus4_lvar.pending.txt │ │ │ ├── uminus4_lvar.pgem.txt │ │ │ ├── uminus4_lvar.rb │ │ │ ├── uminus5.pgem.txt │ │ │ ├── uminus5.rb │ │ │ ├── uminus5_lvar.pending.txt │ │ │ ├── uminus5_lvar.pgem.txt │ │ │ ├── uminus5_lvar.rb │ │ │ ├── uminus_num1.pgem.txt │ │ │ ├── uminus_num1.rb │ │ │ ├── uminus_num1_lvar.pending.txt │ │ │ ├── uminus_num1_lvar.pgem.txt │ │ │ ├── uminus_num1_lvar.rb │ │ │ ├── uminus_num2.pgem.txt │ │ │ ├── uminus_num2.rb │ │ │ ├── uminus_num2_lvar.pending.txt │ │ │ ├── uminus_num2_lvar.pgem.txt │ │ │ ├── uminus_num2_lvar.rb │ │ │ ├── uminus_num3.pgem.txt │ │ │ ├── uminus_num3.rb │ │ │ ├── uminus_num3_lvar.pending.txt │ │ │ ├── uminus_num3_lvar.pgem.txt │ │ │ ├── uminus_num3_lvar.rb │ │ │ ├── uminus_num4.pgem.txt │ │ │ ├── uminus_num4.rb │ │ │ ├── uminus_num4_lvar.pending.txt │ │ │ ├── uminus_num4_lvar.pgem.txt │ │ │ ├── uminus_num4_lvar.rb │ │ │ ├── uminus_num5.pending.txt │ │ │ ├── uminus_num5.pgem.txt │ │ │ ├── uminus_num5.rb │ │ │ ├── uminus_num5_lvar.pending.txt │ │ │ ├── uminus_num5_lvar.pgem.txt │ │ │ ├── uminus_num5_lvar.rb │ │ │ ├── uplus1.pgem.txt │ │ │ ├── uplus1.rb │ │ │ ├── uplus1_lvar.pending.txt │ │ │ ├── uplus1_lvar.pgem.txt │ │ │ ├── uplus1_lvar.rb │ │ │ ├── uplus2.pgem.txt │ │ │ ├── uplus2.rb │ │ │ ├── uplus2_lvar.pending.txt │ │ │ ├── uplus2_lvar.pgem.txt │ │ │ ├── uplus2_lvar.rb │ │ │ ├── uplus3.pgem.txt │ │ │ ├── uplus3.rb │ │ │ ├── uplus3_lvar.pending.txt │ │ │ ├── uplus3_lvar.pgem.txt │ │ │ ├── uplus3_lvar.rb │ │ │ ├── uplus4.pgem.txt │ │ │ ├── uplus4.rb │ │ │ ├── uplus4_lvar.pending.txt │ │ │ ├── uplus4_lvar.pgem.txt │ │ │ ├── uplus4_lvar.rb │ │ │ ├── uplus5.pgem.txt │ │ │ ├── uplus5.rb │ │ │ ├── uplus5_lvar.pending.txt │ │ │ ├── uplus5_lvar.pgem.txt │ │ │ ├── uplus5_lvar.rb │ │ │ ├── uplus_num1.pgem.txt │ │ │ ├── uplus_num1.rb │ │ │ ├── uplus_num1_lvar.pending.txt │ │ │ ├── uplus_num1_lvar.pgem.txt │ │ │ ├── uplus_num1_lvar.rb │ │ │ ├── uplus_num2.pgem.txt │ │ │ ├── uplus_num2.rb │ │ │ ├── uplus_num2_lvar.pending.txt │ │ │ ├── uplus_num2_lvar.pgem.txt │ │ │ ├── uplus_num2_lvar.rb │ │ │ ├── uplus_num3.pgem.txt │ │ │ ├── uplus_num3.rb │ │ │ ├── uplus_num3_lvar.pending.txt │ │ │ ├── uplus_num3_lvar.pgem.txt │ │ │ ├── uplus_num3_lvar.rb │ │ │ ├── uplus_num4.pgem.txt │ │ │ ├── uplus_num4.rb │ │ │ ├── uplus_num4_lvar.pending.txt │ │ │ ├── uplus_num4_lvar.pgem.txt │ │ │ ├── uplus_num4_lvar.rb │ │ │ ├── uplus_num5.pending.txt │ │ │ ├── uplus_num5.pgem.txt │ │ │ ├── uplus_num5.rb │ │ │ ├── uplus_num5_lvar.pending.txt │ │ │ ├── uplus_num5_lvar.pgem.txt │ │ │ └── uplus_num5_lvar.rb │ │ ├── char │ │ │ ├── basic.pending.txt │ │ │ ├── basic.pgem.txt │ │ │ ├── basic.rb │ │ │ ├── escaped.errors.txt │ │ │ ├── escaped.pending.txt │ │ │ ├── escaped.rb │ │ │ ├── symbols.pending.txt │ │ │ ├── symbols.pgem.txt │ │ │ ├── symbols.rb │ │ │ ├── unicode.pending.txt │ │ │ ├── unicode.pgem.txt │ │ │ └── unicode.rb │ │ ├── command_call │ │ │ ├── dot_basic.pgem.txt │ │ │ ├── dot_basic.rb │ │ │ ├── dot_dcolon.pgem.txt │ │ │ ├── dot_dcolon.rb │ │ │ ├── dot_dcolon_do.pending.txt │ │ │ ├── dot_dcolon_do.pgem.txt │ │ │ ├── dot_dcolon_do.rb │ │ │ ├── dot_do.pending.txt │ │ │ ├── dot_do.pgem.txt │ │ │ ├── dot_do.rb │ │ │ ├── dot_fcall.pgem.txt │ │ │ ├── dot_fcall.rb │ │ │ ├── dot_nilsafe.pgem.txt │ │ │ ├── dot_nilsafe.rb │ │ │ ├── dot_nilsafe_do.pending.txt │ │ │ ├── dot_nilsafe_do.pgem.txt │ │ │ ├── dot_nilsafe_do.rb │ │ │ ├── dot_op1.pgem.txt │ │ │ ├── dot_op1.rb │ │ │ ├── dot_op2.pgem.txt │ │ │ ├── dot_op2.rb │ │ │ ├── dot_op3.pgem.txt │ │ │ ├── dot_op3.rb │ │ │ ├── dot_reswords.pgem.txt │ │ │ ├── dot_reswords.rb │ │ │ ├── self_call_basic.pgem.txt │ │ │ ├── self_call_basic.rb │ │ │ ├── self_call_const.pgem.txt │ │ │ ├── self_call_const.rb │ │ │ ├── self_call_do.pending.txt │ │ │ ├── self_call_do.pgem.txt │ │ │ ├── self_call_do.rb │ │ │ ├── self_call_fcall.pgem.txt │ │ │ └── self_call_fcall.rb │ │ ├── comment │ │ │ ├── rdoc_basic.pending.txt │ │ │ ├── rdoc_basic.pgem.txt │ │ │ └── rdoc_basic.rb │ │ ├── eof │ │ │ ├── eot.pgem.txt │ │ │ ├── eot.rb │ │ │ ├── non_eof.pending.txt │ │ │ ├── non_eof.pgem.txt │ │ │ ├── non_eof.rb │ │ │ ├── nul.pgem.txt │ │ │ ├── nul.rb │ │ │ ├── sub.pgem.txt │ │ │ ├── sub.rb │ │ │ ├── underscore_end.pending.txt │ │ │ ├── underscore_end.pgem.txt │ │ │ └── underscore_end.rb │ │ └── heredoc │ │ │ ├── basic.pending.txt │ │ │ ├── basic.pgem.txt │ │ │ └── basic.rb │ ├── level6 │ │ └── README.md │ ├── level7 │ │ ├── README.md │ │ └── if │ │ │ ├── unless_elsif.errors.txt │ │ │ ├── unless_elsif.pgem.txt │ │ │ └── unless_elsif.rb │ ├── modules.pgem.txt │ ├── modules.rb │ ├── newline.pending.txt │ ├── newline.pgem.txt │ ├── newline.rb │ ├── newline_basic.pgem.txt │ ├── newline_basic.rb │ ├── newline_cont.pgem.txt │ ├── newline_cont.rb │ ├── newline_errors.errors.txt │ ├── newline_errors.pgem.txt │ ├── newline_errors.rb │ ├── nil.pgem.txt │ ├── nil.rb │ ├── numeric.errors.txt │ ├── numeric.pgem.txt │ ├── numeric.rb │ ├── op.pending.txt │ ├── op.pgem.txt │ ├── op.rb │ ├── op_invalid.errors.txt │ ├── op_invalid.pgem.txt │ ├── op_invalid.rb │ ├── paren.pgem.txt │ ├── paren.rb │ ├── semi.pgem.txt │ ├── semi.rb │ ├── special_variables.pgem.txt │ ├── special_variables.rb │ ├── strings.pending.txt │ ├── strings.pgem.txt │ ├── strings.rb │ ├── symbol.pgem.txt │ └── symbol.rb └── parser.rs ├── vscode ├── package.json ├── sample │ └── test.rb ├── src │ └── index.ts └── tsconfig.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | 7 | [*.{js,json,yml}] 8 | charset = utf-8 9 | indent_style = space 10 | indent_size = 2 11 | 12 | [tests/parse/**/*.json] 13 | insert_final_newline = false 14 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: pnpm 2 | 3 | yarnPath: .yarn/releases/yarn-3.2.1.cjs 4 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "parser", "~> 3.1" 4 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | ast (2.4.2) 5 | parser (3.1.2.0) 6 | ast (~> 2.4.1) 7 | 8 | PLATFORMS 9 | x86_64-linux 10 | 11 | DEPENDENCIES 12 | parser (~> 3.1) 13 | 14 | BUNDLED WITH 15 | 2.3.7 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "root", 3 | "private": true, 4 | "packageManager": "yarn@3.2.1", 5 | "workspaces": [ 6 | "vscode" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | pub use crate::parser::parse; 2 | pub use crate::parser_diagnostics::ParseError; 3 | 4 | pub mod ast; 5 | pub(crate) mod parser; 6 | pub mod parser_diagnostics; 7 | pub mod pgem_ast; 8 | pub mod pos; 9 | mod ruby_util; 10 | pub(crate) mod util; 11 | -------------------------------------------------------------------------------- /tests/parse/args.rb: -------------------------------------------------------------------------------- 1 | f() 2 | f(1) 3 | f(1, ) 4 | f(1, 2) 5 | f(1, 2, 3) 6 | f(1 .. 2, 3 .. 4) 7 | 8 | f 1 9 | f 1, 2 10 | f 1, 2, 3 11 | f 1 .. 2, 3 .. 4 12 | -------------------------------------------------------------------------------- /tests/parse/args_errors.errors.txt: -------------------------------------------------------------------------------- 1 | 3:2-3-3: Unexpected token 2 | 4:2-4-3: Unexpected token 3 | 5:2-5-3: Unexpected token 4 | 5:3-5-4: Unexpected token 5 | -------------------------------------------------------------------------------- /tests/parse/args_errors.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, nil, :f, ), 3 | s(:send, nil, :f, ), 4 | s(:send, nil, :f, , 5 | s(:int, 2))) 6 | -------------------------------------------------------------------------------- /tests/parse/args_errors.rb: -------------------------------------------------------------------------------- 1 | # f(;) 2 | # f(1;) 3 | f(,) 4 | f(,,) 5 | f(,1, 2) 6 | # f(1; 2; 3) 7 | -------------------------------------------------------------------------------- /tests/parse/array.rb: -------------------------------------------------------------------------------- 1 | [] 2 | [1] 3 | [1,] 4 | [1, 2] 5 | [1, 2,] 6 | [ 7 | ] 8 | [ 9 | 1 10 | ] 11 | [ 12 | 1, 13 | ] 14 | [ 15 | 1, 16 | 2 17 | ] 18 | [ 19 | 1, 20 | 2, 21 | ] 22 | -------------------------------------------------------------------------------- /tests/parse/assign.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:lvasgn, :x, 2 | s(:nil)) 3 | -------------------------------------------------------------------------------- /tests/parse/assign.rb: -------------------------------------------------------------------------------- 1 | x = nil 2 | -------------------------------------------------------------------------------- /tests/parse/chained_ranges.rb: -------------------------------------------------------------------------------- 1 | foo .. bar .. baz 2 | foo .. bar ... baz 3 | foo ... bar .. baz 4 | foo ... bar ... baz 5 | .. foo .. bar 6 | .. foo ... bar 7 | ... foo .. bar 8 | ... foo ... bar 9 | -------------------------------------------------------------------------------- /tests/parse/classes_errors.pgem.txt: -------------------------------------------------------------------------------- 1 | nil 2 | -------------------------------------------------------------------------------- /tests/parse/classes_errors.rb: -------------------------------------------------------------------------------- 1 | # class Foo < Bar end 2 | # class Foo < 1 + 2 end 3 | # class Foo < f g end 4 | -------------------------------------------------------------------------------- /tests/parse/comments.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:nil) 2 | -------------------------------------------------------------------------------- /tests/parse/comments.rb: -------------------------------------------------------------------------------- 1 | # comment test 2 | nil 3 | -------------------------------------------------------------------------------- /tests/parse/empty.pgem.txt: -------------------------------------------------------------------------------- 1 | nil 2 | -------------------------------------------------------------------------------- /tests/parse/empty.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qnighy/rbbardiche/6de7396ed800ca1b3325357e88d31b476af76e53/tests/parse/empty.rb -------------------------------------------------------------------------------- /tests/parse/hash.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:hash) 2 | -------------------------------------------------------------------------------- /tests/parse/hash.rb: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /tests/parse/level1/README.md: -------------------------------------------------------------------------------- 1 | Level 1 provides very basic tokens depended on by many tests in Level 2 and later. 2 | -------------------------------------------------------------------------------- /tests/parse/level1/comment.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :foo) 2 | -------------------------------------------------------------------------------- /tests/parse/level1/comment.rb: -------------------------------------------------------------------------------- 1 | # foo 2 | foo 3 | -------------------------------------------------------------------------------- /tests/parse/level1/ident.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :foo) 2 | -------------------------------------------------------------------------------- /tests/parse/level1/ident.rb: -------------------------------------------------------------------------------- 1 | foo 2 | -------------------------------------------------------------------------------- /tests/parse/level1/numeric.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:int, 1024) 2 | -------------------------------------------------------------------------------- /tests/parse/level1/numeric.rb: -------------------------------------------------------------------------------- 1 | 1024 2 | -------------------------------------------------------------------------------- /tests/parse/level2/README.md: -------------------------------------------------------------------------------- 1 | Level 2 covers most expression categories parseable without lexer states. 2 | 3 | Level 2 provides minimal variations per expression category. 4 | -------------------------------------------------------------------------------- /tests/parse/level2/alias.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"\n"`, 3 | right: `"s(:alias,\n s(:sym, :x),\n s(:sym, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/alias.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:alias, 2 | s(:sym, :x), 3 | s(:sym, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/alias.rb: -------------------------------------------------------------------------------- 1 | alias x y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/aref.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:send,\n s(:send, nil, :x), :[],\n s(:send, nil, :i))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/aref.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :[], 3 | s(:send, nil, :i)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/aref.rb: -------------------------------------------------------------------------------- 1 | x[i] 2 | -------------------------------------------------------------------------------- /tests/parse/level2/array.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:array) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/array.rb: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /tests/parse/level2/assign.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:lvasgn, :x, 2 | s(:send, nil, :y)) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/assign.rb: -------------------------------------------------------------------------------- 1 | x = y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/assign_op.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :+,\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/assign_op.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :+, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/assign_op.rb: -------------------------------------------------------------------------------- 1 | x += y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/begin.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level2/begin.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:kwbegin, 2 | s(:send, nil, :x)) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/begin.rb: -------------------------------------------------------------------------------- 1 | begin x end 2 | -------------------------------------------------------------------------------- /tests/parse/level2/break.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"\n"`, 3 | right: `"s(:break)\n"` -------------------------------------------------------------------------------- /tests/parse/level2/break.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:break) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/break.rb: -------------------------------------------------------------------------------- 1 | break 2 | -------------------------------------------------------------------------------- /tests/parse/level2/call.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :foo) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/call.rb: -------------------------------------------------------------------------------- 1 | foo() 2 | -------------------------------------------------------------------------------- /tests/parse/level2/call_relative.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :foo), :bar) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/call_relative.rb: -------------------------------------------------------------------------------- 1 | foo.bar() 2 | -------------------------------------------------------------------------------- /tests/parse/level2/capital_begin.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: BEGIN { .. } -------------------------------------------------------------------------------- /tests/parse/level2/capital_begin.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:preexe, nil) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/capital_begin.rb: -------------------------------------------------------------------------------- 1 | BEGIN {} 2 | -------------------------------------------------------------------------------- /tests/parse/level2/capital_end.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: END { .. } -------------------------------------------------------------------------------- /tests/parse/level2/capital_end.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:postexe, nil) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/capital_end.rb: -------------------------------------------------------------------------------- 1 | END {} 2 | -------------------------------------------------------------------------------- /tests/parse/level2/case.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:case, 2 | s(:send, nil, :cond), 3 | s(:when, 4 | s(:send, nil, :c1), 5 | s(:send, nil, :x)), 6 | s(:when, 7 | s(:send, nil, :c2), 8 | s(:send, nil, :y)), nil) 9 | -------------------------------------------------------------------------------- /tests/parse/level2/case.rb: -------------------------------------------------------------------------------- 1 | case cond 2 | when c1 3 | x 4 | when c2 5 | y 6 | end 7 | -------------------------------------------------------------------------------- /tests/parse/level2/class.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:class, 2 | s(:const, nil, :C), nil, 3 | s(:send, nil, :x)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/class.rb: -------------------------------------------------------------------------------- 1 | class C 2 | x 3 | end 4 | -------------------------------------------------------------------------------- /tests/parse/level2/const.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:const, nil, :Foo) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/const.rb: -------------------------------------------------------------------------------- 1 | Foo 2 | -------------------------------------------------------------------------------- /tests/parse/level2/const_relative.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:const, 2 | s(:const, nil, :Foo), :Bar) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/const_relative.rb: -------------------------------------------------------------------------------- 1 | Foo::Bar 2 | -------------------------------------------------------------------------------- /tests/parse/level2/cvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:cvar, :@@foo) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/cvar.rb: -------------------------------------------------------------------------------- 1 | @@foo 2 | -------------------------------------------------------------------------------- /tests/parse/level2/def.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:def, :f, 2 | s(:args), 3 | s(:send, nil, :x)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/def.rb: -------------------------------------------------------------------------------- 1 | def f() 2 | x 3 | end 4 | -------------------------------------------------------------------------------- /tests/parse/level2/defined.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"\n"`, 3 | right: `"s(:defined?,\n s(:send, nil, :x))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/defined.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:defined?, 2 | s(:send, nil, :x)) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/defined.rb: -------------------------------------------------------------------------------- 1 | defined?(x) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/for.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: for .. end -------------------------------------------------------------------------------- /tests/parse/level2/for.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:for, 2 | s(:lvasgn, :x), 3 | s(:send, nil, :a), 4 | s(:send, nil, :y)) 5 | -------------------------------------------------------------------------------- /tests/parse/level2/for.rb: -------------------------------------------------------------------------------- 1 | for x in a 2 | y 3 | end 4 | -------------------------------------------------------------------------------- /tests/parse/level2/gvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:gvar, :$foo) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/gvar.rb: -------------------------------------------------------------------------------- 1 | $foo 2 | -------------------------------------------------------------------------------- /tests/parse/level2/hash.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:hash) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/hash.rb: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /tests/parse/level2/ident.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :foo) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/ident.rb: -------------------------------------------------------------------------------- 1 | foo 2 | -------------------------------------------------------------------------------- /tests/parse/level2/if.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: if .. end -------------------------------------------------------------------------------- /tests/parse/level2/if.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:if, 2 | s(:send, nil, :cond), 3 | s(:send, nil, :x), nil) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/if.rb: -------------------------------------------------------------------------------- 1 | if cond 2 | x 3 | end 4 | -------------------------------------------------------------------------------- /tests/parse/level2/ivar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:ivar, :@foo) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/ivar.rb: -------------------------------------------------------------------------------- 1 | @foo 2 | -------------------------------------------------------------------------------- /tests/parse/level2/lambda.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"\n"`, 3 | right: `"s(:block,\n s(:send, nil, :lambda),\n s(:args), nil)\n"` -------------------------------------------------------------------------------- /tests/parse/level2/lambda.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:block, 2 | s(:send, nil, :lambda), 3 | s(:args), nil) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/lambda.rb: -------------------------------------------------------------------------------- 1 | -> {} 2 | -------------------------------------------------------------------------------- /tests/parse/level2/lvar.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin,\n s(:lvasgn, :x,\n s(:int, 1)),\n s(:send, nil, :x))\n"`, 3 | right: `"s(:begin,\n s(:lvasgn, :x,\n s(:int, 1)),\n s(:lvar, :x))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 1)), 4 | s(:lvar, :x)) 5 | -------------------------------------------------------------------------------- /tests/parse/level2/lvar.rb: -------------------------------------------------------------------------------- 1 | x = 1 2 | x 3 | -------------------------------------------------------------------------------- /tests/parse/level2/module.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:module, 2 | s(:const, nil, :M), 3 | s(:send, nil, :x)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/module.rb: -------------------------------------------------------------------------------- 1 | module M 2 | x 3 | end 4 | -------------------------------------------------------------------------------- /tests/parse/level2/newline.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, nil, :x), 3 | s(:send, nil, :y), 4 | s(:send, nil, :z)) 5 | -------------------------------------------------------------------------------- /tests/parse/level2/newline.rb: -------------------------------------------------------------------------------- 1 | x 2 | y 3 | z 4 | -------------------------------------------------------------------------------- /tests/parse/level2/next.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"\n"`, 3 | right: `"s(:next)\n"` -------------------------------------------------------------------------------- /tests/parse/level2/next.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:next) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/next.rb: -------------------------------------------------------------------------------- 1 | next 2 | -------------------------------------------------------------------------------- /tests/parse/level2/numeric.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:int, 1024) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/numeric.rb: -------------------------------------------------------------------------------- 1 | 1024 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_additive_add.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :+, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_additive_add.rb: -------------------------------------------------------------------------------- 1 | x + y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_additive_sub.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :-, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_additive_sub.rb: -------------------------------------------------------------------------------- 1 | x - y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_bitwise_and.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :&, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_bitwise_and.rb: -------------------------------------------------------------------------------- 1 | x & y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_bitwise_or_bitwise_or.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :|, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_bitwise_or_bitwise_or.rb: -------------------------------------------------------------------------------- 1 | x | y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_bitwise_or_bitwise_xor.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :^, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_bitwise_or_bitwise_xor.rb: -------------------------------------------------------------------------------- 1 | x ^ y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_cond_cond.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:if, 2 | s(:send, nil, :cond), 3 | s(:send, nil, :x), 4 | s(:send, nil, :y)) 5 | -------------------------------------------------------------------------------- /tests/parse/level2/op_cond_cond.rb: -------------------------------------------------------------------------------- 1 | cond ? x : y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_equality_cmp.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :<=>, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_equality_cmp.rb: -------------------------------------------------------------------------------- 1 | x <=> y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_equality_eq.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :==, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_equality_eq.rb: -------------------------------------------------------------------------------- 1 | x == y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_equality_eqq.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :===, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_equality_eqq.rb: -------------------------------------------------------------------------------- 1 | x === y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_equality_match.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :=~, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_equality_match.rb: -------------------------------------------------------------------------------- 1 | x =~ y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_equality_neq.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :!=, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_equality_neq.rb: -------------------------------------------------------------------------------- 1 | x != y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_equality_nmatch.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :!~, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_equality_nmatch.rb: -------------------------------------------------------------------------------- 1 | x !~ y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_inequality_gt.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :>, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_inequality_gt.rb: -------------------------------------------------------------------------------- 1 | x > y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_inequality_gteq.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :>=, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_inequality_gteq.rb: -------------------------------------------------------------------------------- 1 | x >= y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_inequality_lt.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :<, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_inequality_lt.rb: -------------------------------------------------------------------------------- 1 | x < y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_inequality_lteq.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :<=, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_inequality_lteq.rb: -------------------------------------------------------------------------------- 1 | x <= y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_keyword_and.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:and,\n s(:send, nil, :x),\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/op_keyword_and.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:and, 2 | s(:send, nil, :x), 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_keyword_and.rb: -------------------------------------------------------------------------------- 1 | x and y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_keyword_not.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"\n"`, 3 | right: `"s(:send,\n s(:send, nil, :x), :!)\n"` -------------------------------------------------------------------------------- /tests/parse/level2/op_keyword_not.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :!) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/op_keyword_not.rb: -------------------------------------------------------------------------------- 1 | not x 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_keyword_or.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:or,\n s(:send, nil, :x),\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/op_keyword_or.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:or, 2 | s(:send, nil, :x), 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_keyword_or.rb: -------------------------------------------------------------------------------- 1 | x or y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_logical_and.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:and, 2 | s(:send, nil, :x), 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_logical_and.rb: -------------------------------------------------------------------------------- 1 | x && y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_logical_or.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:or, 2 | s(:send, nil, :x), 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_logical_or.rb: -------------------------------------------------------------------------------- 1 | x || y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_modifier_if.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:if,\n s(:send, nil, :y),\n s(:send, nil, :x), nil)\n"` -------------------------------------------------------------------------------- /tests/parse/level2/op_modifier_if.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:if, 2 | s(:send, nil, :y), 3 | s(:send, nil, :x), nil) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_modifier_if.rb: -------------------------------------------------------------------------------- 1 | x if y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_modifier_unless.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:if,\n s(:send, nil, :y), nil,\n s(:send, nil, :x))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/op_modifier_unless.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:if, 2 | s(:send, nil, :y), nil, 3 | s(:send, nil, :x)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_modifier_unless.rb: -------------------------------------------------------------------------------- 1 | x unless y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_modifier_until.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:until,\n s(:send, nil, :y),\n s(:send, nil, :x))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/op_modifier_until.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:until, 2 | s(:send, nil, :y), 3 | s(:send, nil, :x)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_modifier_until.rb: -------------------------------------------------------------------------------- 1 | x until y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_modifier_while.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:while,\n s(:send, nil, :y),\n s(:send, nil, :x))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/op_modifier_while.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:while, 2 | s(:send, nil, :y), 3 | s(:send, nil, :x)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_modifier_while.rb: -------------------------------------------------------------------------------- 1 | x while y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_multiplicative_div.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :/, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_multiplicative_div.rb: -------------------------------------------------------------------------------- 1 | x / y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_multiplicative_mod.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :%, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_multiplicative_mod.rb: -------------------------------------------------------------------------------- 1 | x % y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_multiplicative_mul.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :*, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_multiplicative_mul.rb: -------------------------------------------------------------------------------- 1 | x * y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_pow.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :**, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_pow.rb: -------------------------------------------------------------------------------- 1 | x ** y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_range_erange.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:erange, 2 | s(:send, nil, :x), 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_range_erange.rb: -------------------------------------------------------------------------------- 1 | x ... y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_range_irange.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:irange, 2 | s(:send, nil, :x), 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_range_irange.rb: -------------------------------------------------------------------------------- 1 | x .. y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_rescue.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:rescue,\n s(:send, nil, :x),\n s(:resbody, nil, nil,\n s(:send, nil, :y)), nil)\n"` -------------------------------------------------------------------------------- /tests/parse/level2/op_rescue.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:rescue, 2 | s(:send, nil, :x), 3 | s(:resbody, nil, nil, 4 | s(:send, nil, :y)), nil) 5 | -------------------------------------------------------------------------------- /tests/parse/level2/op_rescue.rb: -------------------------------------------------------------------------------- 1 | x rescue y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_shift_lshift.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :<<, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_shift_lshift.rb: -------------------------------------------------------------------------------- 1 | x << y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_shift_rshift.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :>>, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/op_shift_rshift.rb: -------------------------------------------------------------------------------- 1 | x >> y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_unary_bitwise_not.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :~) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/op_unary_bitwise_not.rb: -------------------------------------------------------------------------------- 1 | ~x 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_unary_neg.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :-@) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/op_unary_neg.rb: -------------------------------------------------------------------------------- 1 | -x 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_unary_not.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :!) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/op_unary_not.rb: -------------------------------------------------------------------------------- 1 | !x 2 | -------------------------------------------------------------------------------- /tests/parse/level2/op_unary_pos.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :+@) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/op_unary_pos.rb: -------------------------------------------------------------------------------- 1 | +x 2 | -------------------------------------------------------------------------------- /tests/parse/level2/paren.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, nil, :x)) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/paren.rb: -------------------------------------------------------------------------------- 1 | (x) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/pat_assoc.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:match_pattern,\n s(:send, nil, :x),\n s(:match_var, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/pat_assoc.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:match_pattern, 2 | s(:send, nil, :x), 3 | s(:match_var, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/pat_assoc.rb: -------------------------------------------------------------------------------- 1 | x => y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/pat_in.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:match_pattern_p,\n s(:send, nil, :x),\n s(:match_var, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/pat_in.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:match_pattern_p, 2 | s(:send, nil, :x), 3 | s(:match_var, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/pat_in.rb: -------------------------------------------------------------------------------- 1 | x in y 2 | -------------------------------------------------------------------------------- /tests/parse/level2/proc_call.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: Error recovery from invalid ident -------------------------------------------------------------------------------- /tests/parse/level2/proc_call.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :foo), :call) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/proc_call.rb: -------------------------------------------------------------------------------- 1 | foo.() 2 | -------------------------------------------------------------------------------- /tests/parse/level2/redo.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"\n"`, 3 | right: `"s(:redo)\n"` -------------------------------------------------------------------------------- /tests/parse/level2/redo.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:redo) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/redo.rb: -------------------------------------------------------------------------------- 1 | redo 2 | -------------------------------------------------------------------------------- /tests/parse/level2/retry.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"\n"`, 3 | right: `"s(:retry)\n"` -------------------------------------------------------------------------------- /tests/parse/level2/retry.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:retry) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/retry.rb: -------------------------------------------------------------------------------- 1 | retry 2 | -------------------------------------------------------------------------------- /tests/parse/level2/return.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"\n"`, 3 | right: `"s(:return)\n"` -------------------------------------------------------------------------------- /tests/parse/level2/return.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:return) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/return.rb: -------------------------------------------------------------------------------- 1 | return 2 | -------------------------------------------------------------------------------- /tests/parse/level2/semi.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, nil, :x), 3 | s(:send, nil, :y), 4 | s(:send, nil, :z)) 5 | -------------------------------------------------------------------------------- /tests/parse/level2/semi.rb: -------------------------------------------------------------------------------- 1 | x; y; z 2 | -------------------------------------------------------------------------------- /tests/parse/level2/string_dquote.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:str, "foo") 2 | -------------------------------------------------------------------------------- /tests/parse/level2/string_dquote.rb: -------------------------------------------------------------------------------- 1 | "foo" 2 | -------------------------------------------------------------------------------- /tests/parse/level2/string_squote.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:str, "foo") 2 | -------------------------------------------------------------------------------- /tests/parse/level2/string_squote.rb: -------------------------------------------------------------------------------- 1 | 'foo' 2 | -------------------------------------------------------------------------------- /tests/parse/level2/symbol.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:sym, :foo) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/symbol.rb: -------------------------------------------------------------------------------- 1 | :foo 2 | -------------------------------------------------------------------------------- /tests/parse/level2/undef.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"\n"`, 3 | right: `"s(:undef,\n s(:sym, :x))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/undef.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:undef, 2 | s(:sym, :x)) 3 | -------------------------------------------------------------------------------- /tests/parse/level2/undef.rb: -------------------------------------------------------------------------------- 1 | undef x 2 | -------------------------------------------------------------------------------- /tests/parse/level2/unless.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin, ,\n s(:send, nil, :x), )\n"`, 3 | right: `"s(:if,\n s(:send, nil, :cond), nil,\n s(:send, nil, :x))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/unless.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:if, 2 | s(:send, nil, :cond), nil, 3 | s(:send, nil, :x)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/unless.rb: -------------------------------------------------------------------------------- 1 | unless cond 2 | x 3 | end 4 | -------------------------------------------------------------------------------- /tests/parse/level2/until.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin, ,\n s(:send, nil, :x), )\n"`, 3 | right: `"s(:until,\n s(:send, nil, :cond),\n s(:send, nil, :x))\n"` -------------------------------------------------------------------------------- /tests/parse/level2/until.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:until, 2 | s(:send, nil, :cond), 3 | s(:send, nil, :x)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/until.rb: -------------------------------------------------------------------------------- 1 | until cond 2 | x 3 | end 4 | -------------------------------------------------------------------------------- /tests/parse/level2/while.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: while .. end -------------------------------------------------------------------------------- /tests/parse/level2/while.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:while, 2 | s(:send, nil, :cond), 3 | s(:send, nil, :x)) 4 | -------------------------------------------------------------------------------- /tests/parse/level2/while.rb: -------------------------------------------------------------------------------- 1 | while cond 2 | x 3 | end 4 | -------------------------------------------------------------------------------- /tests/parse/level2/yield.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"\n"`, 3 | right: `"s(:yield)\n"` -------------------------------------------------------------------------------- /tests/parse/level2/yield.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:yield) 2 | -------------------------------------------------------------------------------- /tests/parse/level2/yield.rb: -------------------------------------------------------------------------------- 1 | yield 2 | -------------------------------------------------------------------------------- /tests/parse/level3/README.md: -------------------------------------------------------------------------------- 1 | Level 3 covers most features parseable without lexer states. 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/additive_add.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :+,\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/additive_add.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :+, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/additive_add.rb: -------------------------------------------------------------------------------- 1 | x += y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/additive_sub.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :-,\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/additive_sub.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :-, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/additive_sub.rb: -------------------------------------------------------------------------------- 1 | x -= y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/bitwise_and.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :&,\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/bitwise_and.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :&, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/bitwise_and.rb: -------------------------------------------------------------------------------- 1 | x &= y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/bitwise_or_bitwise_or.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :|,\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/bitwise_or_bitwise_or.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :|, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/bitwise_or_bitwise_or.rb: -------------------------------------------------------------------------------- 1 | x |= y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/bitwise_or_bitwise_xor.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :^,\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/bitwise_or_bitwise_xor.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :^, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/bitwise_or_bitwise_xor.rb: -------------------------------------------------------------------------------- 1 | x ^= y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/logical_and.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:and_asgn,\n s(:lvasgn, :x),\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/logical_and.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:and_asgn, 2 | s(:lvasgn, :x), 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/logical_and.rb: -------------------------------------------------------------------------------- 1 | x &&= y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/logical_or.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:or_asgn,\n s(:lvasgn, :x),\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/logical_or.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:or_asgn, 2 | s(:lvasgn, :x), 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/logical_or.rb: -------------------------------------------------------------------------------- 1 | x ||= y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/multiplicative_div.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :/,\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/multiplicative_div.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :/, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/multiplicative_div.rb: -------------------------------------------------------------------------------- 1 | x /= y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/multiplicative_mod.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :%,\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/multiplicative_mod.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :%, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/multiplicative_mod.rb: -------------------------------------------------------------------------------- 1 | x %= y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/multiplicative_mul.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :*,\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/multiplicative_mul.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :*, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/multiplicative_mul.rb: -------------------------------------------------------------------------------- 1 | x *= y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/pow.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :**,\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/pow.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :**, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/pow.rb: -------------------------------------------------------------------------------- 1 | x **= y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/shift_lshift.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :<<,\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/shift_lshift.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :<<, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/shift_lshift.rb: -------------------------------------------------------------------------------- 1 | x <<= y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/shift_rshift.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :>>,\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/shift_rshift.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :>>, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/assign_op/shift_rshift.rb: -------------------------------------------------------------------------------- 1 | x >>= y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/basic.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/begin/basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:kwbegin), 3 | s(:kwbegin, 4 | s(:send, nil, :x)), 5 | s(:kwbegin, 6 | s(:send, nil, :x), 7 | s(:send, nil, :y))) 8 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/basic.rb: -------------------------------------------------------------------------------- 1 | begin 2 | end 3 | 4 | begin 5 | x 6 | end 7 | 8 | begin 9 | x 10 | y 11 | end 12 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/ensure1.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/begin/ensure1.rb: -------------------------------------------------------------------------------- 1 | begin 2 | x 3 | ensure 4 | y 5 | end 6 | 7 | begin 8 | x 9 | ensure 10 | y 11 | z 12 | end 13 | 14 | begin x ensure y end 15 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/ensure2.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/begin/preceding.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue1.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue1.rb: -------------------------------------------------------------------------------- 1 | begin 2 | x 3 | rescue 4 | y 5 | end 6 | 7 | begin 8 | x 9 | rescue 10 | y 11 | z 12 | end 13 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue2.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:kwbegin, 2 | s(:rescue, 3 | s(:send, nil, :x), 4 | s(:resbody, 5 | s(:array, 6 | s(:const, nil, :ArgumentError)), nil, 7 | s(:send, nil, :y)), nil)) 8 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue2.rb: -------------------------------------------------------------------------------- 1 | begin 2 | x 3 | rescue ArgumentError 4 | y 5 | end 6 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue3.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue3.rb: -------------------------------------------------------------------------------- 1 | begin 2 | x 3 | rescue => e 4 | y 5 | end 6 | 7 | begin 8 | x 9 | rescue ArgumentError => e 10 | y 11 | end 12 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue4.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue4.rb: -------------------------------------------------------------------------------- 1 | begin 2 | x 3 | rescue; y; end 4 | 5 | begin 6 | x 7 | rescue ArgumentError; y; end 8 | 9 | begin 10 | x 11 | rescue => e; y; end 12 | 13 | begin 14 | x 15 | rescue ArgumentError => e; y; end 16 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue5.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue_else.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue_else.rb: -------------------------------------------------------------------------------- 1 | begin 2 | x 3 | rescue 4 | y 5 | else 6 | z 7 | end 8 | 9 | begin 10 | x 11 | rescue 12 | y 13 | rescue 14 | z 15 | else 16 | w 17 | end 18 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue_multi.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue_multi.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:kwbegin, 2 | s(:rescue, 3 | s(:send, nil, :x), 4 | s(:resbody, nil, nil, 5 | s(:send, nil, :y)), 6 | s(:resbody, nil, nil, 7 | s(:send, nil, :z)), nil)) 8 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/rescue_multi.rb: -------------------------------------------------------------------------------- 1 | begin 2 | x 3 | rescue 4 | y 5 | rescue 6 | z 7 | end 8 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/semi.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/begin/semi.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:kwbegin, 3 | s(:send, nil, :x)), 4 | s(:kwbegin, 5 | s(:send, nil, :x), 6 | s(:send, nil, :y)), 7 | s(:kwbegin, 8 | s(:send, nil, :x), 9 | s(:send, nil, :y))) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/semi.rb: -------------------------------------------------------------------------------- 1 | begin 2 | x; end 3 | 4 | begin 5 | x; y 6 | end 7 | 8 | begin 9 | x; y; end 10 | -------------------------------------------------------------------------------- /tests/parse/level3/begin/trailing.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, 3 | s(:send, nil, :obj), :f), 4 | s(:send, 5 | s(:send, nil, :obj), :f), 6 | s(:send, 7 | s(:send, nil, :obj), :f, 8 | s(:send, nil, :x), 9 | s(:send, nil, :y))) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_basic.rb: -------------------------------------------------------------------------------- 1 | obj.f 2 | obj.f() 3 | obj.f(x, y) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_braces.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: Hash contents -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_dcolon.rb: -------------------------------------------------------------------------------- 1 | obj::f 2 | obj::f() 3 | obj::f(x, y) 4 | obj::F() 5 | obj::F(x, y) 6 | -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_dcolon_braces.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: Hash contents -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_fcall.rb: -------------------------------------------------------------------------------- 1 | obj.f! 2 | obj.f!() 3 | obj.f!(x, y) 4 | obj.f? 5 | obj.f?() 6 | obj.f?(x, y) 7 | -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_nilsafe.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:csend, 3 | s(:send, nil, :obj), :f), 4 | s(:csend, 5 | s(:send, nil, :obj), :f), 6 | s(:csend, 7 | s(:send, nil, :obj), :f, 8 | s(:send, nil, :x), 9 | s(:send, nil, :y))) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_nilsafe.rb: -------------------------------------------------------------------------------- 1 | obj&.f 2 | obj&.f() 3 | obj&.f(x, y) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_nilsafe_braces.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: Hash contents -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_op2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, 3 | s(:send, nil, :obj), :+@), 4 | s(:send, 5 | s(:send, nil, :obj), :-@)) 6 | -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_op2.rb: -------------------------------------------------------------------------------- 1 | obj.+@ 2 | obj.-@ 3 | -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_op3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, 3 | s(:send, nil, :obj), :"!@"), 4 | s(:send, 5 | s(:send, nil, :obj), :"~@")) 6 | -------------------------------------------------------------------------------- /tests/parse/level3/call/dot_op3.rb: -------------------------------------------------------------------------------- 1 | obj.!@ 2 | obj.~@ 3 | -------------------------------------------------------------------------------- /tests/parse/level3/call/self_call_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, nil, :f), 3 | s(:send, nil, :f), 4 | s(:send, nil, :f, 5 | s(:send, nil, :x)), 6 | s(:send, nil, :f, 7 | s(:send, nil, :x), 8 | s(:send, nil, :y))) 9 | -------------------------------------------------------------------------------- /tests/parse/level3/call/self_call_basic.rb: -------------------------------------------------------------------------------- 1 | f 2 | f() 3 | f(x) 4 | f(x, y) 5 | -------------------------------------------------------------------------------- /tests/parse/level3/call/self_call_braces.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: Hash contents -------------------------------------------------------------------------------- /tests/parse/level3/call/self_call_braces.rb: -------------------------------------------------------------------------------- 1 | f { work } 2 | f() { work } 3 | f(x, y) { work } 4 | f! { work } 5 | f!() { work } 6 | f!(x, y) { work } 7 | f? { work } 8 | f?() { work } 9 | f?(x, y) { work } 10 | F { work } 11 | F() { work } 12 | F(x, y) { work } 13 | -------------------------------------------------------------------------------- /tests/parse/level3/call/self_call_const.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, nil, :F), 3 | s(:send, nil, :F, 4 | s(:send, nil, :x)), 5 | s(:send, nil, :F, 6 | s(:send, nil, :x), 7 | s(:send, nil, :y))) 8 | -------------------------------------------------------------------------------- /tests/parse/level3/call/self_call_const.rb: -------------------------------------------------------------------------------- 1 | F() 2 | F(x) 3 | F(x, y) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/call/self_call_fcall.rb: -------------------------------------------------------------------------------- 1 | f! 2 | f!() 3 | f!(x) 4 | f!(x, y) 5 | 6 | f? 7 | f?() 8 | f?(x) 9 | f?(x, y) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/call_args/amper.rb: -------------------------------------------------------------------------------- 1 | f(&block) 2 | f(x, &block) 3 | f(x, *y, &block) 4 | f(*x, k: v, &block) 5 | f(k => v, **h, &block) 6 | -------------------------------------------------------------------------------- /tests/parse/level3/call_args/assoc_mixed.rb: -------------------------------------------------------------------------------- 1 | f(x1, *x2, x3, x4, *x5, k1 => v1, **h1, k2: v2, k3 => v3, **h2, "k4": v4) 2 | f(x1, *x2, x3, x4, *x5, k1 => v1, **h1, k2: v2, k3 => v3, **h2, "k4": v4,) 3 | -------------------------------------------------------------------------------- /tests/parse/level3/call_args/basic.rb: -------------------------------------------------------------------------------- 1 | f 2 | f() 3 | f(x) 4 | f(x, ) 5 | f(x, y) 6 | f(x, y,) 7 | -------------------------------------------------------------------------------- /tests/parse/level3/call_args/splat.rb: -------------------------------------------------------------------------------- 1 | f(*x) 2 | f(*x,) 3 | f(x, *y) 4 | f(*x, y) 5 | f(*x, *y) 6 | f(x, *y,) 7 | f(*x, y,) 8 | f(*x, *y,) 9 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, nil, :foo), 3 | s(:send, nil, :foo_bar), 4 | s(:send, nil, :foo123), 5 | s(:send, nil, :_foo), 6 | s(:send, nil, :_foo_bar), 7 | s(:send, nil, :_foo123)) 8 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/basic.rb: -------------------------------------------------------------------------------- 1 | foo 2 | foo_bar 3 | foo123 4 | _foo 5 | _foo_bar 6 | _foo123 7 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/basic_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, nil, :いろは), 3 | s(:send, nil, :π)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/basic_unicode.rb: -------------------------------------------------------------------------------- 1 | いろは 2 | π 3 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/const.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:const, nil, :Foo), 3 | s(:const, nil, :Foo_Bar), 4 | s(:const, nil, :Foo123)) 5 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/const.rb: -------------------------------------------------------------------------------- 1 | Foo 2 | Foo_Bar 3 | Foo123 4 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/const_unicode.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin,\n s(:const, nil, :Π),\n s(:send, nil, :Džin))\n"`, 3 | right: `"s(:begin,\n s(:send, nil, :Π),\n s(:send, nil, :Džin))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/ident/const_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, nil, :Π), 3 | s(:send, nil, :Džin)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/const_unicode.rb: -------------------------------------------------------------------------------- 1 | Π 2 | Džin 3 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/cvar.rb: -------------------------------------------------------------------------------- 1 | @@foo 2 | @@foo_bar 3 | @@foo123 4 | @@_foo 5 | @@_foo_bar 6 | @@_foo123 7 | @@Foo 8 | @@Foo_bar 9 | @@Foo123 10 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/cvar_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:cvar, :@@いろは), 3 | s(:cvar, :@@π)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/cvar_unicode.rb: -------------------------------------------------------------------------------- 1 | @@いろは 2 | @@π 3 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/fname1.rb: -------------------------------------------------------------------------------- 1 | foo! 2 | foo? 3 | foo_bar! 4 | foo_bar? 5 | foo123! 6 | foo123? 7 | _foo! 8 | _foo? 9 | _foo_bar! 10 | _foo_bar? 11 | _foo123! 12 | _foo123? 13 | Foo! 14 | Foo? 15 | Foo_bar! 16 | Foo_bar? 17 | Foo123! 18 | Foo123? 19 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/fname1_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, nil, :いろは!), 3 | s(:send, nil, :いろは?), 4 | s(:send, nil, :π!), 5 | s(:send, nil, :π?)) 6 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/fname1_unicode.rb: -------------------------------------------------------------------------------- 1 | いろは! 2 | いろは? 3 | π! 4 | π? 5 | 6 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/fname2.errors.txt: -------------------------------------------------------------------------------- 1 | 10:0-10-0: Unexpected end of file 2 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/fname2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:lvasgn, , ) 2 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/fname2.rb: -------------------------------------------------------------------------------- 1 | foo= 2 | foo_bar= 3 | foo123= 4 | _foo= 5 | _foo_bar= 6 | _foo123= 7 | Foo= 8 | Foo_bar= 9 | Foo123= 10 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/fname2_unicode.errors.txt: -------------------------------------------------------------------------------- 1 | 3:0-3-0: Unexpected end of file 2 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/fname2_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:lvasgn, , ) 2 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/fname2_unicode.rb: -------------------------------------------------------------------------------- 1 | いろは= 2 | π= 3 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/gvar_basic.rb: -------------------------------------------------------------------------------- 1 | $foo 2 | $foo_bar 3 | $foo123 4 | $_foo 5 | $_foo_bar 6 | $_foo123 7 | $Foo 8 | $Foo_bar 9 | $Foo123 10 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/gvar_basic_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:gvar, :$いろは), 3 | s(:gvar, :$π), 4 | s(:gvar, :$Π), 5 | s(:gvar, :$Džin)) 6 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/gvar_basic_unicode.rb: -------------------------------------------------------------------------------- 1 | $いろは 2 | $π 3 | $Π 4 | $Džin 5 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/gvar_nth.rb: -------------------------------------------------------------------------------- 1 | $1 2 | $2 3 | $3 4 | $4 5 | $5 6 | $6 7 | $7 8 | $8 9 | $9 10 | $10 11 | $11 12 | $12 13 | $19 14 | $25 15 | $99 16 | $123 17 | $1024 18 | $54321 19 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/gvar_nth_very_large.pending.txt: -------------------------------------------------------------------------------- 1 | called `Result::unwrap()` on an `Err` value: ParseIntError { kind: PosOverflow } -------------------------------------------------------------------------------- /tests/parse/level3/ident/gvar_nth_very_large.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:nth_ref, 123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789) 2 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/gvar_nth_very_large.rb: -------------------------------------------------------------------------------- 1 | $123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789 2 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/gvar_opt.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:gvar, :$-0), 3 | s(:gvar, :$-6), 4 | s(:gvar, :$-a), 5 | s(:gvar, :$-I), 6 | s(:gvar, :$-あ), 7 | s(:gvar, :$-π), 8 | s(:gvar, :$-Π), 9 | s(:gvar, :$-_)) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/gvar_opt.rb: -------------------------------------------------------------------------------- 1 | $-0 2 | $-6 3 | $-a 4 | $-I 5 | $-あ 6 | $-π 7 | $-Π 8 | $-_ 9 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/gvar_punct.rb: -------------------------------------------------------------------------------- 1 | $! 2 | $" 3 | $$ 4 | $& 5 | $' 6 | $* 7 | $+ 8 | $, 9 | $. 10 | $/ 11 | $0 12 | $: 13 | $; 14 | $< 15 | $= 16 | $> 17 | $? 18 | $@ 19 | $\ 20 | $_ 21 | $` 22 | $~ 23 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/ivar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:ivar, :@foo), 3 | s(:ivar, :@foo_bar), 4 | s(:ivar, :@foo123), 5 | s(:ivar, :@_foo), 6 | s(:ivar, :@_foo_bar), 7 | s(:ivar, :@_foo123), 8 | s(:ivar, :@Foo), 9 | s(:ivar, :@Foo_bar), 10 | s(:ivar, :@Foo123)) 11 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/ivar.rb: -------------------------------------------------------------------------------- 1 | @foo 2 | @foo_bar 3 | @foo123 4 | @_foo 5 | @_foo_bar 6 | @_foo123 7 | @Foo 8 | @Foo_bar 9 | @Foo123 10 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/ivar_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:ivar, :@いろは), 3 | s(:ivar, :@π)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/ident/ivar_unicode.rb: -------------------------------------------------------------------------------- 1 | @いろは 2 | @π 3 | -------------------------------------------------------------------------------- /tests/parse/level3/if/else_body.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: if .. end -------------------------------------------------------------------------------- /tests/parse/level3/if/elsif_body.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: if .. end -------------------------------------------------------------------------------- /tests/parse/level3/if/elsif_then.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: if .. end -------------------------------------------------------------------------------- /tests/parse/level3/if/if_basic.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: if .. end -------------------------------------------------------------------------------- /tests/parse/level3/if/if_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:if, 2 | s(:send, nil, :cond), 3 | s(:send, nil, :x), nil) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/if/if_basic.rb: -------------------------------------------------------------------------------- 1 | if cond 2 | x 3 | end 4 | -------------------------------------------------------------------------------- /tests/parse/level3/if/if_body.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: if .. end -------------------------------------------------------------------------------- /tests/parse/level3/if/if_chain.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: if .. end -------------------------------------------------------------------------------- /tests/parse/level3/if/if_then.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: if .. end -------------------------------------------------------------------------------- /tests/parse/level3/if/if_then.rb: -------------------------------------------------------------------------------- 1 | if cond 2 | end 3 | if cond; end 4 | if cond then end 5 | if cond 6 | then end 7 | if cond; then end 8 | 9 | if cond 10 | x end 11 | if cond; x end 12 | if cond then x end 13 | if cond 14 | then x end 15 | if cond; then x end 16 | -------------------------------------------------------------------------------- /tests/parse/level3/if/modifier_if.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:if,\n s(:send, nil, :y),\n s(:send, nil, :x), nil)\n"` -------------------------------------------------------------------------------- /tests/parse/level3/if/modifier_if.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:if, 2 | s(:send, nil, :y), 3 | s(:send, nil, :x), nil) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/if/modifier_if.rb: -------------------------------------------------------------------------------- 1 | x if y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/if/modifier_unless.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:if,\n s(:send, nil, :y), nil,\n s(:send, nil, :x))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/if/modifier_unless.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:if, 2 | s(:send, nil, :y), nil, 3 | s(:send, nil, :x)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/if/modifier_unless.rb: -------------------------------------------------------------------------------- 1 | x unless y 2 | -------------------------------------------------------------------------------- /tests/parse/level3/if/unless_basic.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin, ,\n s(:send, nil, :x), )\n"`, 3 | right: `"s(:if,\n s(:send, nil, :cond), nil,\n s(:send, nil, :x))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/if/unless_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:if, 2 | s(:send, nil, :cond), nil, 3 | s(:send, nil, :x)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/if/unless_basic.rb: -------------------------------------------------------------------------------- 1 | unless cond 2 | x 3 | end 4 | -------------------------------------------------------------------------------- /tests/parse/level3/if/unless_chain.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:if, 3 | s(:send, nil, :cond), nil, 4 | s(:send, nil, :x)), 5 | s(:if, 6 | s(:send, nil, :cond), 7 | s(:send, nil, :y), 8 | s(:send, nil, :x))) 9 | -------------------------------------------------------------------------------- /tests/parse/level3/if/unless_chain.rb: -------------------------------------------------------------------------------- 1 | unless cond 2 | x 3 | end 4 | 5 | unless cond 6 | x 7 | else 8 | y 9 | end 10 | -------------------------------------------------------------------------------- /tests/parse/level3/label/basic.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: Hash contents -------------------------------------------------------------------------------- /tests/parse/level3/label/basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:hash, 2 | s(:pair, 3 | s(:sym, :foo), 4 | s(:send, nil, :x))) 5 | -------------------------------------------------------------------------------- /tests/parse/level3/label/basic.rb: -------------------------------------------------------------------------------- 1 | { foo: x } 2 | -------------------------------------------------------------------------------- /tests/parse/level3/label/quoted.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: Hash contents -------------------------------------------------------------------------------- /tests/parse/level3/label/quoted.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:hash, 3 | s(:pair, 4 | s(:sym, :foo), 5 | s(:send, nil, :x))), 6 | s(:hash, 7 | s(:pair, 8 | s(:sym, :foo), 9 | s(:send, nil, :x)))) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/label/quoted.rb: -------------------------------------------------------------------------------- 1 | { "foo": x } 2 | { 'foo': x } 3 | -------------------------------------------------------------------------------- /tests/parse/level3/numeric/float_decimal_point.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: scientific notation -------------------------------------------------------------------------------- /tests/parse/level3/numeric/float_decimal_point.rb: -------------------------------------------------------------------------------- 1 | 0.0 2 | 1.0 3 | 2.0 4 | 2.5 5 | 3.75 6 | 7 | -0.0 8 | -1.0 9 | -2.0 10 | -2.5 11 | -3.75 12 | 13 | +0.0 14 | +1.0 15 | +2.0 16 | +2.5 17 | +3.75 18 | -------------------------------------------------------------------------------- /tests/parse/level3/numeric/float_exponent.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: floating-point number -------------------------------------------------------------------------------- /tests/parse/level3/numeric/imaginary.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: number suffixes -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_binary.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: binary number -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_binary.rb: -------------------------------------------------------------------------------- 1 | 0b0 2 | 0b1 3 | 0b00001011 4 | 0b0001_1010_1101_1111 5 | 6 | -0b0 7 | -0b1 8 | -0b00001011 9 | -0b0001_1010_1101_1111 10 | 11 | +0b0 12 | +0b1 13 | +0b00001011 14 | +0b0001_1010_1101_1111 15 | -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_decimal_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:int, 0), 3 | s(:int, 123), 4 | s(:int, 1024)) 5 | -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_decimal_basic.rb: -------------------------------------------------------------------------------- 1 | 0 2 | 123 3 | 1024 4 | -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_decimal_sign.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:int, 0), 3 | s(:int, -123), 4 | s(:int, -1024), 5 | s(:int, 0), 6 | s(:int, 123), 7 | s(:int, 1024)) 8 | -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_decimal_sign.rb: -------------------------------------------------------------------------------- 1 | -0 2 | -123 3 | -1024 4 | 5 | +0 6 | +123 7 | +1024 8 | -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_decimal_sign_underscore.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:int, -1234567890), 3 | s(:int, 1234567890)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_decimal_sign_underscore.rb: -------------------------------------------------------------------------------- 1 | -1_234_567_890 2 | +1_234_567_890 3 | -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_decimal_underscore.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:int, 1234567890) 2 | -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_decimal_underscore.rb: -------------------------------------------------------------------------------- 1 | 1_234_567_890 2 | -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_hexadecimal.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: hexadecimal number -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_octal.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: octal number -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_octal.rb: -------------------------------------------------------------------------------- 1 | 00 2 | 0123 3 | 01024 4 | 000753 5 | 01_234_567 6 | 7 | -00 8 | -0123 9 | -01024 10 | -000753 11 | -01_234_567 12 | 13 | +00 14 | +0123 15 | +01024 16 | +000753 17 | +01_234_567 18 | -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_prefixed_decimal.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: prefixed decimal nuber -------------------------------------------------------------------------------- /tests/parse/level3/numeric/integer_prefixed_octal.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: octal number -------------------------------------------------------------------------------- /tests/parse/level3/numeric/rational.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: number suffixes -------------------------------------------------------------------------------- /tests/parse/level3/numeric/rational_imaginary.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: number suffixes -------------------------------------------------------------------------------- /tests/parse/level3/numeric/very_large_float.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: floating-point number -------------------------------------------------------------------------------- /tests/parse/level3/numeric/very_large_integer.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: large integers -------------------------------------------------------------------------------- /tests/parse/level3/numeric/very_large_rational.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: number suffixes -------------------------------------------------------------------------------- /tests/parse/level3/paren/basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:begin), 3 | s(:begin, 4 | s(:send, nil, :x))) 5 | -------------------------------------------------------------------------------- /tests/parse/level3/paren/basic.rb: -------------------------------------------------------------------------------- 1 | () 2 | 3 | (x 4 | ) 5 | -------------------------------------------------------------------------------- /tests/parse/level3/paren/semi.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:begin, 3 | s(:send, nil, :x)), 4 | s(:begin, 5 | s(:send, nil, :x), 6 | s(:send, nil, :y)), 7 | s(:begin, 8 | s(:send, nil, :x), 9 | s(:send, nil, :y))) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/paren/semi.rb: -------------------------------------------------------------------------------- 1 | ( 2 | x; ) 3 | 4 | ( 5 | x; y 6 | ) 7 | 8 | ( 9 | x; y; ) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/proc_call/basic.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: Error recovery from invalid ident -------------------------------------------------------------------------------- /tests/parse/level3/proc_call/basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, 3 | s(:send, nil, :f), :call), 4 | s(:send, 5 | s(:send, nil, :f), :call, 6 | s(:send, nil, :x), 7 | s(:send, nil, :y))) 8 | -------------------------------------------------------------------------------- /tests/parse/level3/proc_call/basic.rb: -------------------------------------------------------------------------------- 1 | f.() 2 | f.(x, y) 3 | -------------------------------------------------------------------------------- /tests/parse/level3/proc_call/braces.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: Error recovery from invalid ident -------------------------------------------------------------------------------- /tests/parse/level3/proc_call/braces.rb: -------------------------------------------------------------------------------- 1 | f.() { work } 2 | f.(x, y) { work } 3 | -------------------------------------------------------------------------------- /tests/parse/level3/proc_call/dcolon.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: Error recovery from invalid ident -------------------------------------------------------------------------------- /tests/parse/level3/proc_call/dcolon.rb: -------------------------------------------------------------------------------- 1 | f::() 2 | f::(x, y) 3 | f::() {} 4 | f::(x, y) {} 5 | f::() do end 6 | f::(x, y) do end 7 | -------------------------------------------------------------------------------- /tests/parse/level3/proc_call/do.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: Error recovery from invalid ident -------------------------------------------------------------------------------- /tests/parse/level3/proc_call/do.rb: -------------------------------------------------------------------------------- 1 | f.() do work end 2 | f.(x, y) do work end 3 | -------------------------------------------------------------------------------- /tests/parse/level3/pseudo_var/bool.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:true), 3 | s(:false)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/pseudo_var/bool.rb: -------------------------------------------------------------------------------- 1 | true 2 | false 3 | -------------------------------------------------------------------------------- /tests/parse/level3/pseudo_var/nil.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:nil) 2 | -------------------------------------------------------------------------------- /tests/parse/level3/pseudo_var/nil.rb: -------------------------------------------------------------------------------- 1 | nil 2 | -------------------------------------------------------------------------------- /tests/parse/level3/pseudo_var/self.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:self) 2 | -------------------------------------------------------------------------------- /tests/parse/level3/pseudo_var/self.rb: -------------------------------------------------------------------------------- 1 | self 2 | -------------------------------------------------------------------------------- /tests/parse/level3/pseudo_var/underscore.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:__FILE__), 3 | s(:__LINE__), 4 | s(:__ENCODING__)) 5 | -------------------------------------------------------------------------------- /tests/parse/level3/pseudo_var/underscore.rb: -------------------------------------------------------------------------------- 1 | __FILE__ 2 | __LINE__ 3 | __ENCODING__ 4 | -------------------------------------------------------------------------------- /tests/parse/level3/range/basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:irange, 3 | s(:send, nil, :x), 4 | s(:send, nil, :y)), 5 | s(:erange, 6 | s(:send, nil, :x), 7 | s(:send, nil, :y))) 8 | -------------------------------------------------------------------------------- /tests/parse/level3/range/basic.rb: -------------------------------------------------------------------------------- 1 | x..y 2 | x...y 3 | -------------------------------------------------------------------------------- /tests/parse/level3/range/beginless.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:irange, nil, 3 | s(:send, nil, :x)), 4 | s(:erange, nil, 5 | s(:send, nil, :x))) 6 | -------------------------------------------------------------------------------- /tests/parse/level3/range/beginless.rb: -------------------------------------------------------------------------------- 1 | ..x 2 | ...x 3 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:str, ""), 3 | s(:str, "foo"), 4 | s(:str, "foo bar"), 5 | s(:str, " foo "), 6 | s(:dstr, 7 | s(:str, "foo\n"), 8 | s(:str, "bar")), 9 | s(:str, "'foo'")) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_basic.rb: -------------------------------------------------------------------------------- 1 | "" 2 | "foo" 3 | "foo bar" 4 | " foo " 5 | "foo 6 | bar" 7 | "'foo'" 8 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_basic.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:str, "\a\b\e\f\n\r \t\v") 2 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_basic.rb: -------------------------------------------------------------------------------- 1 | "\a\b\e\f\n\r\s\t\v" 2 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_control1.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_control2.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_control3.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_control3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:str, "\u0002"), 3 | s(:str, "\u001C"), 4 | s(:str, "\u0001"), 5 | s(:str, "\u0002"), 6 | s(:str, "\u001C"), 7 | s(:str, "\u0001"), 8 | s(:str, "\u0002"), 9 | s(:str, "\u0002")) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_control3.rb: -------------------------------------------------------------------------------- 1 | "\c\"" 2 | "\c\\" 3 | "\c\x61" 4 | 5 | "\C-\"" 6 | "\C-\\" 7 | "\C-\x61" 8 | 9 | "\c"" 10 | "\C-"" 11 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_hexadecimal1.errors.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qnighy/rbbardiche/6de7396ed800ca1b3325357e88d31b476af76e53/tests/parse/level3/string/dquote_escapes_hexadecimal1.errors.txt -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_hexadecimal1.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_hexadecimal2.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_hexadecimal2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:str, "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\n\v\f\r\u000E\u000F"), 3 | s(:str, "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\n\v\f\r\u000E\u000F")) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_hexadecimal2.rb: -------------------------------------------------------------------------------- 1 | "\x0\x1\x2\x3\x4\x5\x6\x7\x8\x9\xA\xB\xC\xD\xE\xF" 2 | "\x0\x1\x2\x3\x4\x5\x6\x7\x8\x9\xa\xb\xc\xd\xe\xf" 3 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_meta1.errors.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qnighy/rbbardiche/6de7396ed800ca1b3325357e88d31b476af76e53/tests/parse/level3/string/dquote_escapes_meta1.errors.txt -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_meta1.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_meta2.errors.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qnighy/rbbardiche/6de7396ed800ca1b3325357e88d31b476af76e53/tests/parse/level3/string/dquote_escapes_meta2.errors.txt -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_meta2.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_meta2.rb: -------------------------------------------------------------------------------- 1 | "\M-\"" 2 | "\M-\\" 3 | "\M-\x61" 4 | 5 | "\M-"" 6 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_meta_control.errors.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qnighy/rbbardiche/6de7396ed800ca1b3325357e88d31b476af76e53/tests/parse/level3/string/dquote_escapes_meta_control.errors.txt -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_meta_control.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_meta_control.rb: -------------------------------------------------------------------------------- 1 | "\M-\C-a" 2 | "\M-\C-0" 3 | "\M-\cx" 4 | "\M-\c$" 5 | "\C-\M-t" 6 | "\C-\M-%" 7 | "\c\M- " 8 | "\c\M--" 9 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_newline.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_newline.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:str, "foobar") 2 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_newline.rb: -------------------------------------------------------------------------------- 1 | "foo\ 2 | bar" 3 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_octal1.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_octal2.errors.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qnighy/rbbardiche/6de7396ed800ca1b3325357e88d31b476af76e53/tests/parse/level3/string/dquote_escapes_octal2.errors.txt -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_octal2.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_octal3.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_octal3.rb: -------------------------------------------------------------------------------- 1 | "\0\1\2\3\4\5\6\7" 2 | "\00\01\02\03\04\05\06\07\10\11\12\13\14\15\16\17" 3 | "\20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37" 4 | "\40\41\42\43\44\45\46\47\50\51\52\53\54\55\56\57" 5 | "\60\61\62\63\64\65\66\67\70\71\72\73\74\75\76\77" 6 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_octal4.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_octal5.errors.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qnighy/rbbardiche/6de7396ed800ca1b3325357e88d31b476af76e53/tests/parse/level3/string/dquote_escapes_octal5.errors.txt -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_octal5.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_self1.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_self1.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:str, "<\\>"), 3 | s(:str, "<\">"), 4 | s(:str, "\#{}")) 5 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_self1.rb: -------------------------------------------------------------------------------- 1 | "<\\>" 2 | "<\">" 3 | "\#{}" 4 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_self2.errors.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qnighy/rbbardiche/6de7396ed800ca1b3325357e88d31b476af76e53/tests/parse/level3/string/dquote_escapes_self2.errors.txt -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_self2.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_self2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:str, " !\"\#$%&'()*+,-./"), 3 | s(:str, ":;<=>?@[]^_"), 4 | s(:str, "`{|}~"), 5 | s(:str, "dghijklmopqwyz"), 6 | s(:str, "ABDEFGHIJKLNOPQRSTUVWXYZ")) 7 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_self2.rb: -------------------------------------------------------------------------------- 1 | "\ \!\"\#\$\%\&\'\(\)\*\+\,\-\.\/" 2 | "\:\;\<\=\>\?\@\[\]\^\_" 3 | "\`\{\|\}\~" 4 | "\d\g\h\i\j\k\l\m\o\p\q\w\y\z" 5 | "\A\B\D\E\F\G\H\I\J\K\L\N\O\P\Q\R\S\T\U\V\W\X\Y\Z" 6 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_self2.skip_pgem.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qnighy/rbbardiche/6de7396ed800ca1b3325357e88d31b476af76e53/tests/parse/level3/string/dquote_escapes_self2.skip_pgem.txt -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_self3.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_self3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:str, "いろは") 2 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_self3.rb: -------------------------------------------------------------------------------- 1 | "\い\ろ\は" 2 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_unicode.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:str, "\u0000"), 3 | s(:str, " "), 4 | s(:str, "ģ"), 5 | s(:str, "ﳐ"), 6 | s(:str, " "), 7 | s(:str, " "), 8 | s(:str, " "), 9 | s(:str, "𒍏"), 10 | s(:str, "\u{10FFFF}")) 11 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_escapes_unicode.rb: -------------------------------------------------------------------------------- 1 | "\u0000" 2 | "\u00A0" 3 | "\u0123" 4 | "\uFCD0" 5 | "\u{00A0}" 6 | "\u{0A0}" 7 | "\u{A0}" 8 | "\u{1234F}" 9 | "\u{10FFFF}" 10 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_non_expansions.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: # in string -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_non_expansions.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:str, "#"), 3 | s(:str, "##"), 4 | s(:str, "#%"), 5 | s(:str, "#foo")) 6 | -------------------------------------------------------------------------------- /tests/parse/level3/string/dquote_non_expansions.rb: -------------------------------------------------------------------------------- 1 | "#" 2 | "##" 3 | "#%" 4 | "#foo" 5 | -------------------------------------------------------------------------------- /tests/parse/level3/string/multi.rb: -------------------------------------------------------------------------------- 1 | "foo" 2 | "foo" "bar" 3 | "foo" "bar" "baz" 4 | "foo" "bar" "baz" "quux" 5 | 6 | 'foo' 7 | 'foo' 'bar' 8 | 'foo' 'bar' 'baz' 'quux' 9 | 10 | "foo" 'bar' 11 | 'foo' "bar" 12 | 13 | "foo""bar" 14 | "foo"'bar' 15 | 'foo'"bar" 16 | 'foo''bar' 17 | -------------------------------------------------------------------------------- /tests/parse/level3/string/squote_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:str, ""), 3 | s(:str, "foo"), 4 | s(:str, "foo bar"), 5 | s(:str, " foo "), 6 | s(:dstr, 7 | s(:str, "foo\n"), 8 | s(:str, "bar")), 9 | s(:str, "\"foo\"")) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/string/squote_basic.rb: -------------------------------------------------------------------------------- 1 | '' 2 | 'foo' 3 | 'foo bar' 4 | ' foo ' 5 | 'foo 6 | bar' 7 | '"foo"' 8 | -------------------------------------------------------------------------------- /tests/parse/level3/string/squote_escapes.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: escapes in string -------------------------------------------------------------------------------- /tests/parse/level3/string/squote_escapes.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:str, "\\a\\b\\e\\f\\n\\r\\s\\t\\v\\0\\017\\x0F\\ \\\""), 3 | s(:str, "<\\>"), 4 | s(:str, "<\\>"), 5 | s(:str, "<'>"), 6 | s(:dstr, 7 | s(:str, "foo\\\n"), 8 | s(:str, "bar"))) 9 | -------------------------------------------------------------------------------- /tests/parse/level3/string/squote_escapes.rb: -------------------------------------------------------------------------------- 1 | '\a\b\e\f\n\r\s\t\v\0\017\x0F\ \"' 2 | '<\>' 3 | '<\\>' 4 | '<\'>' 5 | 'foo\ 6 | bar' 7 | -------------------------------------------------------------------------------- /tests/parse/level3/string/squote_non_expansions.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:str, "#"), 3 | s(:str, "##"), 4 | s(:str, "#%"), 5 | s(:str, "#foo"), 6 | s(:str, "\#{foo}"), 7 | s(:str, "\#@foo"), 8 | s(:str, "\#@@foo"), 9 | s(:str, "\#$foo")) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/string/squote_non_expansions.rb: -------------------------------------------------------------------------------- 1 | '#' 2 | '##' 3 | '#%' 4 | '#foo' 5 | '#{foo}' 6 | '#@foo' 7 | '#@@foo' 8 | '#$foo' 9 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :foo), 3 | s(:sym, :foo_bar), 4 | s(:sym, :foo123), 5 | s(:sym, :_foo), 6 | s(:sym, :_foo_bar), 7 | s(:sym, :_foo123)) 8 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/basic.rb: -------------------------------------------------------------------------------- 1 | :foo 2 | :foo_bar 3 | :foo123 4 | :_foo 5 | :_foo_bar 6 | :_foo123 7 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/basic_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :いろは), 3 | s(:sym, :π)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/basic_unicode.rb: -------------------------------------------------------------------------------- 1 | :いろは 2 | :π 3 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/const.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :Foo), 3 | s(:sym, :Foo_Bar), 4 | s(:sym, :Foo123)) 5 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/const.rb: -------------------------------------------------------------------------------- 1 | :Foo 2 | :Foo_Bar 3 | :Foo123 4 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/const_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :Π), 3 | s(:sym, :Džin)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/const_unicode.rb: -------------------------------------------------------------------------------- 1 | :Π 2 | :Džin 3 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/cvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :@@foo), 3 | s(:sym, :@@foo_bar), 4 | s(:sym, :@@foo123), 5 | s(:sym, :@@_foo), 6 | s(:sym, :@@_foo_bar), 7 | s(:sym, :@@_foo123), 8 | s(:sym, :@@Foo), 9 | s(:sym, :@@Foo_bar), 10 | s(:sym, :@@Foo123)) 11 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/cvar.rb: -------------------------------------------------------------------------------- 1 | :@@foo 2 | :@@foo_bar 3 | :@@foo123 4 | :@@_foo 5 | :@@_foo_bar 6 | :@@_foo123 7 | :@@Foo 8 | :@@Foo_bar 9 | :@@Foo123 10 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/cvar_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :@@いろは), 3 | s(:sym, :@@π)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/cvar_unicode.rb: -------------------------------------------------------------------------------- 1 | :@@いろは 2 | :@@π 3 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/fname1.rb: -------------------------------------------------------------------------------- 1 | :foo! 2 | :foo? 3 | :foo_bar! 4 | :foo_bar? 5 | :foo123! 6 | :foo123? 7 | :_foo! 8 | :_foo? 9 | :_foo_bar! 10 | :_foo_bar? 11 | :_foo123! 12 | :_foo123? 13 | :Foo! 14 | :Foo? 15 | :Foo_bar! 16 | :Foo_bar? 17 | :Foo123! 18 | :Foo123? 19 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/fname1_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :いろは!), 3 | s(:sym, :いろは?), 4 | s(:sym, :π!), 5 | s(:sym, :π?)) 6 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/fname1_unicode.rb: -------------------------------------------------------------------------------- 1 | :いろは! 2 | :いろは? 3 | :π! 4 | :π? 5 | 6 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/fname2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :foo=), 3 | s(:sym, :foo_bar=), 4 | s(:sym, :foo123=), 5 | s(:sym, :_foo=), 6 | s(:sym, :_foo_bar=), 7 | s(:sym, :_foo123=), 8 | s(:sym, :Foo=), 9 | s(:sym, :Foo_bar=), 10 | s(:sym, :Foo123=)) 11 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/fname2.rb: -------------------------------------------------------------------------------- 1 | :foo= 2 | :foo_bar= 3 | :foo123= 4 | :_foo= 5 | :_foo_bar= 6 | :_foo123= 7 | :Foo= 8 | :Foo_bar= 9 | :Foo123= 10 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/fname2_unicode.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:lvasgn, , )\n"`, 3 | right: `"s(:begin,\n s(:sym, :いろは=),\n s(:sym, :π=))\n"` -------------------------------------------------------------------------------- /tests/parse/level3/symbol/fname2_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :いろは=), 3 | s(:sym, :π=)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/fname2_unicode.rb: -------------------------------------------------------------------------------- 1 | :いろは= 2 | :π= 3 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/gvar_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :$foo), 3 | s(:sym, :$foo_bar), 4 | s(:sym, :$foo123), 5 | s(:sym, :$_foo), 6 | s(:sym, :$_foo_bar), 7 | s(:sym, :$_foo123), 8 | s(:sym, :$Foo), 9 | s(:sym, :$Foo_bar), 10 | s(:sym, :$Foo123)) 11 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/gvar_basic.rb: -------------------------------------------------------------------------------- 1 | :$foo 2 | :$foo_bar 3 | :$foo123 4 | :$_foo 5 | :$_foo_bar 6 | :$_foo123 7 | :$Foo 8 | :$Foo_bar 9 | :$Foo123 10 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/gvar_basic_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :$いろは), 3 | s(:sym, :$π), 4 | s(:sym, :$Π), 5 | s(:sym, :$Džin)) 6 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/gvar_basic_unicode.rb: -------------------------------------------------------------------------------- 1 | :$いろは 2 | :$π 3 | :$Π 4 | :$Džin 5 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/gvar_nth.rb: -------------------------------------------------------------------------------- 1 | :$1 2 | :$2 3 | :$3 4 | :$4 5 | :$5 6 | :$6 7 | :$7 8 | :$8 9 | :$9 10 | :$10 11 | :$11 12 | :$12 13 | :$19 14 | :$25 15 | :$99 16 | :$123 17 | :$1024 18 | :$54321 19 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/gvar_nth_very_large.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:sym, :$123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789) 2 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/gvar_nth_very_large.rb: -------------------------------------------------------------------------------- 1 | :$123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789 2 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/gvar_opt.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :$-0), 3 | s(:sym, :$-6), 4 | s(:sym, :$-a), 5 | s(:sym, :$-I), 6 | s(:sym, :$-あ), 7 | s(:sym, :$-π), 8 | s(:sym, :$-Π), 9 | s(:sym, :$-_)) 10 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/gvar_opt.rb: -------------------------------------------------------------------------------- 1 | :$-0 2 | :$-6 3 | :$-a 4 | :$-I 5 | :$-あ 6 | :$-π 7 | :$-Π 8 | :$-_ 9 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/gvar_punct.rb: -------------------------------------------------------------------------------- 1 | :$! 2 | :$" 3 | :$$ 4 | :$& 5 | :$' 6 | :$* 7 | :$+ 8 | :$, 9 | :$. 10 | :$/ 11 | :$0 12 | :$: 13 | :$; 14 | :$< 15 | :$= 16 | :$> 17 | :$? 18 | :$@ 19 | :$\ 20 | :$_ 21 | :$` 22 | :$~ 23 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/ivar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :@foo), 3 | s(:sym, :@foo_bar), 4 | s(:sym, :@foo123), 5 | s(:sym, :@_foo), 6 | s(:sym, :@_foo_bar), 7 | s(:sym, :@_foo123), 8 | s(:sym, :@Foo), 9 | s(:sym, :@Foo_bar), 10 | s(:sym, :@Foo123)) 11 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/ivar.rb: -------------------------------------------------------------------------------- 1 | :@foo 2 | :@foo_bar 3 | :@foo123 4 | :@_foo 5 | :@_foo_bar 6 | :@_foo123 7 | :@Foo 8 | :@Foo_bar 9 | :@Foo123 10 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/ivar_unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :@いろは), 3 | s(:sym, :@π)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/ivar_unicode.rb: -------------------------------------------------------------------------------- 1 | :@いろは 2 | :@π 3 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/op1.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: symbol other than identifier -------------------------------------------------------------------------------- /tests/parse/level3/symbol/op1.rb: -------------------------------------------------------------------------------- 1 | :! 2 | :~ 3 | :** 4 | :* 5 | :/ 6 | :% 7 | :+ 8 | :- 9 | :<< 10 | :>> 11 | :& 12 | :| 13 | :^ 14 | :> 15 | :>= 16 | :< 17 | :<= 18 | :== 19 | :!= 20 | :<=> 21 | :=== 22 | :=~ 23 | :!~ 24 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/op2.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: symbol other than identifier -------------------------------------------------------------------------------- /tests/parse/level3/symbol/op2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :+@), 3 | s(:sym, :-@)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/op2.rb: -------------------------------------------------------------------------------- 1 | :+@ 2 | :-@ 3 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/op3.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: symbol other than identifier -------------------------------------------------------------------------------- /tests/parse/level3/symbol/op3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :!), 3 | s(:sym, :~)) 4 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/op3.rb: -------------------------------------------------------------------------------- 1 | :!@ 2 | :~@ 3 | -------------------------------------------------------------------------------- /tests/parse/level3/symbol/reswords.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: symbol other than identifier -------------------------------------------------------------------------------- /tests/parse/level3/xstring/basic.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: ` -------------------------------------------------------------------------------- /tests/parse/level3/xstring/basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:xstr, 3 | s(:str, "foo")), 4 | s(:xstr, 5 | s(:str, "foo bar")), 6 | s(:xstr, 7 | s(:str, "foo\n"), 8 | s(:str, "bar"))) 9 | -------------------------------------------------------------------------------- /tests/parse/level3/xstring/basic.rb: -------------------------------------------------------------------------------- 1 | `foo` 2 | `foo bar` 3 | `foo 4 | bar` 5 | -------------------------------------------------------------------------------- /tests/parse/level3/xstring/escapes.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: ` -------------------------------------------------------------------------------- /tests/parse/level3/xstring/escapes.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:xstr, 3 | s(:str, "\a\b\e\f\n\r \t\v")), 4 | s(:xstr, 5 | s(:str, "\\`")), 6 | s(:xstr, 7 | s(:str, "\u001F\u000F"))) 8 | -------------------------------------------------------------------------------- /tests/parse/level3/xstring/escapes.rb: -------------------------------------------------------------------------------- 1 | `\a\b\e\f\n\r\s\t\v` 2 | `\\\`` 3 | `\x1F\017` 4 | -------------------------------------------------------------------------------- /tests/parse/level3/xstring/non_escapes.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: ` -------------------------------------------------------------------------------- /tests/parse/level3/xstring/non_escapes.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:xstr, 3 | s(:str, "\"")), 4 | s(:xstr, 5 | s(:str, "'"))) 6 | -------------------------------------------------------------------------------- /tests/parse/level3/xstring/non_escapes.rb: -------------------------------------------------------------------------------- 1 | `"` 2 | `'` 3 | -------------------------------------------------------------------------------- /tests/parse/level4/README.md: -------------------------------------------------------------------------------- 1 | Level 4 extends Level 3 to describe interaction between two syntaxes. 2 | -------------------------------------------------------------------------------- /tests/parse/level4/scoping/if.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: if .. end -------------------------------------------------------------------------------- /tests/parse/level4/scoping/if.rb: -------------------------------------------------------------------------------- 1 | [x, y, z] 2 | if cond 3 | [x, y, z] 4 | x = 1 5 | [x, y, z] 6 | elsif cond2 7 | [x, y, z] 8 | y = 2 9 | [x, y, z] 10 | else 11 | [x, y, z] 12 | z = 3 13 | [x, y, z] 14 | end 15 | [x, y, z] 16 | -------------------------------------------------------------------------------- /tests/parse/level4/scoping/modifier_if.rb: -------------------------------------------------------------------------------- 1 | (x = 1; [x, y]) if (y = 2; [x, y]) 2 | -------------------------------------------------------------------------------- /tests/parse/level4/scoping/modifier_unless.rb: -------------------------------------------------------------------------------- 1 | (x = 1; [x, y]) unless (y = 2; [x, y]) 2 | -------------------------------------------------------------------------------- /tests/parse/level4/scoping/unless.rb: -------------------------------------------------------------------------------- 1 | [x, y] 2 | unless cond 3 | [x, y] 4 | x = 1 5 | [x, y] 6 | else 7 | [x, y] 8 | y = 2 9 | [x, y] 10 | end 11 | [x, y] 12 | -------------------------------------------------------------------------------- /tests/parse/level5/README.md: -------------------------------------------------------------------------------- 1 | Level 5 introduces syntaxes that depend on stateful lexer. 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper1.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :&, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper1.rb: -------------------------------------------------------------------------------- 1 | x&y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper1_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :&, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper1_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x&y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper2.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:send, nil, :x,\n s(:block_pass,\n s(:send, nil, :y)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:block_pass, 3 | s(:send, nil, :y))) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper2.rb: -------------------------------------------------------------------------------- 1 | x &y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper2_lvar.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin,\n s(:lvasgn, :x,\n s(:int, 0)),\n s(:send, nil, :x))\n"`, 3 | right: `"s(:begin,\n s(:lvasgn, :x,\n s(:int, 0)),\n s(:send,\n s(:lvar, :x), :&,\n s(:send, nil, :y)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper2_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :&, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper2_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x &y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :&, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper3.rb: -------------------------------------------------------------------------------- 1 | x & y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper3_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :&, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper3_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x & y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper4.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :&, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper4.rb: -------------------------------------------------------------------------------- 1 | x & 2 | y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper4_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :&, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper4_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x & 3 | y 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper5.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin,\n s(:send, nil, :x),\n s(:send, nil, :y))\n"`, 3 | right: `"s(:send, nil, :x,\n s(:block_pass,\n s(:send, nil, :y)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper5.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:block_pass, 3 | s(:send, nil, :y))) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper5.rb: -------------------------------------------------------------------------------- 1 | x &# 2 | y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper5_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :&, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/amper5_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x &# 3 | y 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref1.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:send,\n s(:send, nil, :x), :[],\n s(:send, nil, :y))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref1.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :[], 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref1.rb: -------------------------------------------------------------------------------- 1 | x[y] 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref1_lvar.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin,\n s(:lvasgn, :x,\n s(:int, 0)),\n s(:send, nil, :x))\n"`, 3 | right: `"s(:begin,\n s(:lvasgn, :x,\n s(:int, 0)),\n s(:send,\n s(:lvar, :x), :[],\n s(:send, nil, :y)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref1_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :[], 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref1_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x[y] 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref2.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:send, nil, :x,\n s(:array,\n s(:send, nil, :y)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:array, 3 | s(:send, nil, :y))) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref2.rb: -------------------------------------------------------------------------------- 1 | x [y] 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref2_lvar.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin,\n s(:lvasgn, :x,\n s(:int, 0)),\n s(:send, nil, :x))\n"`, 3 | right: `"s(:begin,\n s(:lvasgn, :x,\n s(:int, 0)),\n s(:send,\n s(:lvar, :x), :[],\n s(:send, nil, :y)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref2_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :[], 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref2_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x [y] 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref3.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:send, nil, :x,\n s(:array,\n s(:send, nil, :y)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:array, 3 | s(:send, nil, :y))) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref3.rb: -------------------------------------------------------------------------------- 1 | x [ y] 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref3_lvar.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin,\n s(:lvasgn, :x,\n s(:int, 0)),\n s(:send, nil, :x))\n"`, 3 | right: `"s(:begin,\n s(:lvasgn, :x,\n s(:int, 0)),\n s(:send,\n s(:lvar, :x), :[],\n s(:send, nil, :y)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref3_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :[], 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref3_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x [ y] 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref4.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:send, nil, :x,\n s(:array,\n s(:send, nil, :y)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref4.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:array, 3 | s(:send, nil, :y))) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref4.rb: -------------------------------------------------------------------------------- 1 | x [ 2 | y] 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref4_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :[], 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref4_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x [ 3 | y] 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref5.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:send, nil, :x,\n s(:array,\n s(:send, nil, :y)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref5.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:array, 3 | s(:send, nil, :y))) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref5.rb: -------------------------------------------------------------------------------- 1 | x [# 2 | y] 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref5_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :[], 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/aref5_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x [# 3 | y] 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dcolon1.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:const, 2 | s(:const, nil, :X), :Y) 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dcolon1.rb: -------------------------------------------------------------------------------- 1 | X::Y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dcolon2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :X, 2 | s(:const, 3 | s(:cbase), :Y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dcolon2.rb: -------------------------------------------------------------------------------- 1 | X ::Y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dcolon3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :X, 2 | s(:const, 3 | s(:cbase), :Y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dcolon3.rb: -------------------------------------------------------------------------------- 1 | X :: Y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dcolon4.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :X, 2 | s(:const, 3 | s(:cbase), :Y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dcolon4.rb: -------------------------------------------------------------------------------- 1 | X :: 2 | Y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dcolon5.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :X, 2 | s(:const, 3 | s(:cbase), :Y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dcolon5.rb: -------------------------------------------------------------------------------- 1 | X ::# 2 | Y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar1.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :**, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar1.rb: -------------------------------------------------------------------------------- 1 | x**y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar1_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :**, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar1_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x**y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar2.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:send, nil, :x,\n s(:hash,\n s(:kwsplat,\n s(:send, nil, :y))))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:hash, 3 | s(:kwsplat, 4 | s(:send, nil, :y)))) 5 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar2.rb: -------------------------------------------------------------------------------- 1 | x **y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar2_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :**, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar2_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x **y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :**, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar3.rb: -------------------------------------------------------------------------------- 1 | x ** y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar3_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :**, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar3_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x ** y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar4.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :**, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar4.rb: -------------------------------------------------------------------------------- 1 | x ** 2 | y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar4_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :**, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar4_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x ** 3 | y 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar5.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin,\n s(:send, nil, :x),\n s(:send, nil, :y))\n"`, 3 | right: `"s(:send, nil, :x,\n s(:hash,\n s(:kwsplat,\n s(:send, nil, :y))))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar5.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:hash, 3 | s(:kwsplat, 4 | s(:send, nil, :y)))) 5 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar5.rb: -------------------------------------------------------------------------------- 1 | x **# 2 | y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar5_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :**, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/dstar5_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x **# 3 | y 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent1.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :%, 3 | s(:send, nil, :q)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent1.rb: -------------------------------------------------------------------------------- 1 | x%q() 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent1_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :%, 6 | s(:send, nil, :q))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent1_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x%q() 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent2.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: %q() -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:dstr)) 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent2.rb: -------------------------------------------------------------------------------- 1 | x %q() 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent2_lvar.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: %q() -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent2_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :%, 6 | s(:send, nil, :q))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent2_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x %q() 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :%, 3 | s(:send, nil, :q)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent3.rb: -------------------------------------------------------------------------------- 1 | x % q() 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent3_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :%, 6 | s(:send, nil, :q))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent3_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x % q() 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent4.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :%, 3 | s(:send, nil, :q)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent4.rb: -------------------------------------------------------------------------------- 1 | x % 2 | q() 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent4_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :%, 6 | s(:send, nil, :q))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/percent4_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x % 3 | q() 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp1.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, 3 | s(:send, nil, :x), :/, 4 | s(:send, nil, :y)), :/, 5 | s(:int, 1)) 6 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp1.rb: -------------------------------------------------------------------------------- 1 | x/y / + 1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp10.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :/,\n s(:send,\n s(:send, nil, :y), :/,\n s(:int, 1)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp10.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :/, 3 | s(:send, 4 | s(:send, nil, :y), :/, 5 | s(:int, 1))) 6 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp10.rb: -------------------------------------------------------------------------------- 1 | x /=# 2 | y / + 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp10_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:op_asgn, 5 | s(:lvasgn, :x), :/, 6 | s(:send, 7 | s(:send, nil, :y), :/, 8 | s(:int, 1)))) 9 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp10_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x /=# 3 | y / + 1 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp1_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:send, 6 | s(:lvar, :x), :/, 7 | s(:send, nil, :y)), :/, 8 | s(:int, 1))) 9 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp1_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x/y / + 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp2.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:send, nil, :x,\n s(:send,\n s(:regexp,\n s(:str, \"y \"),\n s(:regopt)), :+,\n s(:int, 1)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:send, 3 | s(:regexp, 4 | s(:str, "y "), 5 | s(:regopt)), :+, 6 | s(:int, 1))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp2.rb: -------------------------------------------------------------------------------- 1 | x /y / + 1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp2_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:send, 6 | s(:lvar, :x), :/, 7 | s(:send, nil, :y)), :/, 8 | s(:int, 1))) 9 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp2_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x /y / + 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, 3 | s(:send, nil, :x), :/, 4 | s(:send, nil, :y)), :/, 5 | s(:int, 1)) 6 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp3.rb: -------------------------------------------------------------------------------- 1 | x / y / + 1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp3_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:send, 6 | s(:lvar, :x), :/, 7 | s(:send, nil, :y)), :/, 8 | s(:int, 1))) 9 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp3_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x / y / + 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp4.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, 3 | s(:send, nil, :x), :/, 4 | s(:send, nil, :y)), :/, 5 | s(:int, 1)) 6 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp4.rb: -------------------------------------------------------------------------------- 1 | x / 2 | y / + 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp4_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:send, 6 | s(:lvar, :x), :/, 7 | s(:send, nil, :y)), :/, 8 | s(:int, 1))) 9 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp4_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x / 3 | y / + 1 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp5.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:send, 3 | s(:regexp, 4 | s(:str, "#\n"), 5 | s(:str, "y "), 6 | s(:regopt)), :+, 7 | s(:int, 1))) 8 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp5.rb: -------------------------------------------------------------------------------- 1 | x /# 2 | y / + 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp5_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:send, 6 | s(:lvar, :x), :/, 7 | s(:send, nil, :y)), :/, 8 | s(:int, 1))) 9 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp5_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x /# 3 | y / + 1 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp6.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :/,\n s(:send,\n s(:send, nil, :y), :/,\n s(:int, 1)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp6.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :/, 3 | s(:send, 4 | s(:send, nil, :y), :/, 5 | s(:int, 1))) 6 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp6.rb: -------------------------------------------------------------------------------- 1 | x/=y / + 1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp6_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:op_asgn, 5 | s(:lvasgn, :x), :/, 6 | s(:send, 7 | s(:send, nil, :y), :/, 8 | s(:int, 1)))) 9 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp6_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x/=y / + 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp7.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :/,\n s(:send,\n s(:send, nil, :y), :/,\n s(:int, 1)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp7.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :/, 3 | s(:send, 4 | s(:send, nil, :y), :/, 5 | s(:int, 1))) 6 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp7.rb: -------------------------------------------------------------------------------- 1 | x /=y / + 1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp7_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:op_asgn, 5 | s(:lvasgn, :x), :/, 6 | s(:send, 7 | s(:send, nil, :y), :/, 8 | s(:int, 1)))) 9 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp7_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x /=y / + 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp8.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :/,\n s(:send,\n s(:send, nil, :y), :/,\n s(:int, 1)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp8.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :/, 3 | s(:send, 4 | s(:send, nil, :y), :/, 5 | s(:int, 1))) 6 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp8.rb: -------------------------------------------------------------------------------- 1 | x /= y / + 1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp8_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:op_asgn, 5 | s(:lvasgn, :x), :/, 6 | s(:send, 7 | s(:send, nil, :y), :/, 8 | s(:int, 1)))) 9 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp8_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x /= y / + 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp9.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:op_asgn,\n s(:lvasgn, :x), :/,\n s(:send,\n s(:send, nil, :y), :/,\n s(:int, 1)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp9.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:op_asgn, 2 | s(:lvasgn, :x), :/, 3 | s(:send, 4 | s(:send, nil, :y), :/, 5 | s(:int, 1))) 6 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp9.rb: -------------------------------------------------------------------------------- 1 | x /= 2 | y / + 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp9_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:op_asgn, 5 | s(:lvasgn, :x), :/, 6 | s(:send, 7 | s(:send, nil, :y), :/, 8 | s(:int, 1)))) 9 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/regexp9_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x /= 3 | y / + 1 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star1.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :*, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star1.rb: -------------------------------------------------------------------------------- 1 | x*y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star1_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :*, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star1_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x*y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star2.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x)\n"`, 3 | right: `"s(:send, nil, :x,\n s(:splat,\n s(:send, nil, :y)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:splat, 3 | s(:send, nil, :y))) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star2.rb: -------------------------------------------------------------------------------- 1 | x *y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star2_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :*, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star2_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x *y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :*, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star3.rb: -------------------------------------------------------------------------------- 1 | x * y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star3_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :*, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star3_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x * y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star4.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :*, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star4.rb: -------------------------------------------------------------------------------- 1 | x * 2 | y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star4_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :*, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star4_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x * 3 | y 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star5.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin,\n s(:send, nil, :x),\n s(:send, nil, :y))\n"`, 3 | right: `"s(:send, nil, :x,\n s(:splat,\n s(:send, nil, :y)))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star5.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:splat, 3 | s(:send, nil, :y))) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star5.rb: -------------------------------------------------------------------------------- 1 | x *# 2 | y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star5_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :*, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/star5_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x *# 3 | y 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus1.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :-, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus1.rb: -------------------------------------------------------------------------------- 1 | x-y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus1_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :-, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus1_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x-y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:send, 3 | s(:send, nil, :y), :-@)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus2.rb: -------------------------------------------------------------------------------- 1 | x -y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus2_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :-, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus2_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x -y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :-, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus3.rb: -------------------------------------------------------------------------------- 1 | x - y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus3_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :-, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus3_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x - y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus4.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :-, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus4.rb: -------------------------------------------------------------------------------- 1 | x - 2 | y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus4_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :-, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus4_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x - 3 | y 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus5.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:send, 3 | s(:send, nil, :y), :-@)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus5.rb: -------------------------------------------------------------------------------- 1 | x -# 2 | y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus5_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :-, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus5_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x -# 3 | y 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num1.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :-, 3 | s(:int, 1)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num1.rb: -------------------------------------------------------------------------------- 1 | x-1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num1_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :-, 6 | s(:int, 1))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num1_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x-1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:int, -1)) 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num2.rb: -------------------------------------------------------------------------------- 1 | x -1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num2_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :-, 6 | s(:int, 1))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num2_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x -1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :-, 3 | s(:int, 1)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num3.rb: -------------------------------------------------------------------------------- 1 | x - 1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num3_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :-, 6 | s(:int, 1))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num3_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x - 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num4.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :-, 3 | s(:int, 1)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num4.rb: -------------------------------------------------------------------------------- 1 | x - 2 | 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num4_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :-, 6 | s(:int, 1))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num4_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x - 3 | 1 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num5.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x,\n s(:send,\n s(:int, 1), :-@))\n"`, 3 | right: `"s(:send, nil, :x,\n s(:int, -1))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num5.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:int, -1)) 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num5.rb: -------------------------------------------------------------------------------- 1 | x -# 2 | 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num5_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :-, 6 | s(:int, 1))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uminus_num5_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x -# 3 | 1 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus1.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :+, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus1.rb: -------------------------------------------------------------------------------- 1 | x+y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus1_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :+, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus1_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x+y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:send, 3 | s(:send, nil, :y), :+@)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus2.rb: -------------------------------------------------------------------------------- 1 | x +y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus2_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :+, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus2_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x +y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :+, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus3.rb: -------------------------------------------------------------------------------- 1 | x + y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus3_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :+, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus3_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x + y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus4.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :+, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus4.rb: -------------------------------------------------------------------------------- 1 | x + 2 | y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus4_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :+, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus4_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x + 3 | y 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus5.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:send, 3 | s(:send, nil, :y), :+@)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus5.rb: -------------------------------------------------------------------------------- 1 | x +# 2 | y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus5_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :+, 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus5_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x +# 3 | y 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num1.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :+, 3 | s(:int, 1)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num1.rb: -------------------------------------------------------------------------------- 1 | x+1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num1_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :+, 6 | s(:int, 1))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num1_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x+1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:int, 1)) 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num2.rb: -------------------------------------------------------------------------------- 1 | x +1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num2_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :+, 6 | s(:int, 1))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num2_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x +1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :+, 3 | s(:int, 1)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num3.rb: -------------------------------------------------------------------------------- 1 | x + 1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num3_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :+, 6 | s(:int, 1))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num3_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x + 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num4.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :+, 3 | s(:int, 1)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num4.rb: -------------------------------------------------------------------------------- 1 | x + 2 | 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num4_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :+, 6 | s(:int, 1))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num4_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x + 3 | 1 4 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num5.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:send, nil, :x,\n s(:send,\n s(:int, 1), :+@))\n"`, 3 | right: `"s(:send, nil, :x,\n s(:int, 1))\n"` -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num5.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, nil, :x, 2 | s(:int, 1)) 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num5.rb: -------------------------------------------------------------------------------- 1 | x +# 2 | 1 3 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num5_lvar.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:lvasgn, :x, 3 | s(:int, 0)), 4 | s(:send, 5 | s(:lvar, :x), :+, 6 | s(:int, 1))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/arg_lex/uplus_num5_lvar.rb: -------------------------------------------------------------------------------- 1 | x = 0 2 | x +# 3 | 1 4 | -------------------------------------------------------------------------------- /tests/parse/level5/char/basic.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: character syntax -------------------------------------------------------------------------------- /tests/parse/level5/char/basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:str, "a") 2 | -------------------------------------------------------------------------------- /tests/parse/level5/char/basic.rb: -------------------------------------------------------------------------------- 1 | ?a 2 | -------------------------------------------------------------------------------- /tests/parse/level5/char/escaped.errors.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qnighy/rbbardiche/6de7396ed800ca1b3325357e88d31b476af76e53/tests/parse/level5/char/escaped.errors.txt -------------------------------------------------------------------------------- /tests/parse/level5/char/escaped.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: character syntax with escapes -------------------------------------------------------------------------------- /tests/parse/level5/char/escaped.rb: -------------------------------------------------------------------------------- 1 | ?\M-x 2 | -------------------------------------------------------------------------------- /tests/parse/level5/char/symbols.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: character syntax -------------------------------------------------------------------------------- /tests/parse/level5/char/symbols.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:str, "?"), 3 | s(:str, "%"), 4 | s(:str, "$")) 5 | -------------------------------------------------------------------------------- /tests/parse/level5/char/symbols.rb: -------------------------------------------------------------------------------- 1 | ?? 2 | ?% 3 | ?$ 4 | -------------------------------------------------------------------------------- /tests/parse/level5/char/unicode.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: character syntax -------------------------------------------------------------------------------- /tests/parse/level5/char/unicode.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:str, "あ"), 3 | s(:str, "×"), 4 | s(:str, "π")) 5 | -------------------------------------------------------------------------------- /tests/parse/level5/char/unicode.rb: -------------------------------------------------------------------------------- 1 | ?あ 2 | ?× 3 | ?π 4 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :obj), :f, 3 | s(:send, nil, :x), 4 | s(:send, nil, :y)) 5 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_basic.rb: -------------------------------------------------------------------------------- 1 | obj.f x, y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_dcolon.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, 3 | s(:send, nil, :obj), :f, 4 | s(:send, nil, :x), 5 | s(:send, nil, :y)), 6 | s(:send, 7 | s(:send, nil, :obj), :F, 8 | s(:send, nil, :x), 9 | s(:send, nil, :y))) 10 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_dcolon.rb: -------------------------------------------------------------------------------- 1 | obj::f x, y 2 | obj::F x, y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_dcolon_do.rb: -------------------------------------------------------------------------------- 1 | obj::f x, y do work end 2 | obj::f! x, y do work end 3 | obj::f? x, y do work end 4 | obj::F x, y do work end 5 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_do.rb: -------------------------------------------------------------------------------- 1 | obj.f x, y do work end 2 | obj.f! x, y do work end 3 | obj.f? x, y do work end 4 | obj.F x, y do work end 5 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_fcall.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, 3 | s(:send, nil, :obj), :f!, 4 | s(:send, nil, :x), 5 | s(:send, nil, :y)), 6 | s(:send, 7 | s(:send, nil, :obj), :f?, 8 | s(:send, nil, :x), 9 | s(:send, nil, :y))) 10 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_fcall.rb: -------------------------------------------------------------------------------- 1 | obj.f! x, y 2 | obj.f? x, y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_nilsafe.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:csend, 2 | s(:send, nil, :obj), :f, 3 | s(:send, nil, :x), 4 | s(:send, nil, :y)) 5 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_nilsafe.rb: -------------------------------------------------------------------------------- 1 | obj&.f x, y 2 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_nilsafe_do.rb: -------------------------------------------------------------------------------- 1 | obj&.f x, y do work end 2 | obj&.f! x, y do work end 3 | obj&.f? x, y do work end 4 | obj&.F x, y do work end 5 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_op2.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, 3 | s(:send, nil, :obj), :+@, 4 | s(:send, nil, :x), 5 | s(:send, nil, :y)), 6 | s(:send, 7 | s(:send, nil, :obj), :-@, 8 | s(:send, nil, :x), 9 | s(:send, nil, :y))) 10 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_op2.rb: -------------------------------------------------------------------------------- 1 | obj.+@ x, y 2 | obj.-@ x, y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_op3.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, 3 | s(:send, nil, :obj), :"!@", 4 | s(:send, nil, :x), 5 | s(:send, nil, :y)), 6 | s(:send, 7 | s(:send, nil, :obj), :"~@", 8 | s(:send, nil, :x), 9 | s(:send, nil, :y))) 10 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/dot_op3.rb: -------------------------------------------------------------------------------- 1 | obj.!@ x, y 2 | obj.~@ x, y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/self_call_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, nil, :f, 3 | s(:send, nil, :x)), 4 | s(:send, nil, :f, 5 | s(:send, nil, :x), 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/self_call_basic.rb: -------------------------------------------------------------------------------- 1 | f x 2 | f x, y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/self_call_const.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:send, nil, :F, 3 | s(:send, nil, :x)), 4 | s(:send, nil, :F, 5 | s(:send, nil, :x), 6 | s(:send, nil, :y))) 7 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/self_call_const.rb: -------------------------------------------------------------------------------- 1 | F x 2 | F x, y 3 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/self_call_do.rb: -------------------------------------------------------------------------------- 1 | f x, y do work end 2 | f! x, y do work end 3 | f? x, y do work end 4 | F x, y do work end 5 | -------------------------------------------------------------------------------- /tests/parse/level5/command_call/self_call_fcall.rb: -------------------------------------------------------------------------------- 1 | f! x 2 | f! x, y 3 | 4 | f? x 5 | f? x, y 6 | -------------------------------------------------------------------------------- /tests/parse/level5/comment/rdoc_basic.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: begin .. end -------------------------------------------------------------------------------- /tests/parse/level5/comment/rdoc_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:send, 2 | s(:send, nil, :x), :+, 3 | s(:send, nil, :y)) 4 | -------------------------------------------------------------------------------- /tests/parse/level5/comment/rdoc_basic.rb: -------------------------------------------------------------------------------- 1 | x + 2 | =begin 3 | foo 4 | =end 5 | y 6 | -------------------------------------------------------------------------------- /tests/parse/level5/eof/eot.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:int, 1) 2 | -------------------------------------------------------------------------------- /tests/parse/level5/eof/eot.rb: -------------------------------------------------------------------------------- 1 | 1  + 1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/eof/non_eof.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: __END__ -------------------------------------------------------------------------------- /tests/parse/level5/eof/nul.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:int, 1) 2 | -------------------------------------------------------------------------------- /tests/parse/level5/eof/nul.rb: -------------------------------------------------------------------------------- 1 | 1 + 1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/eof/sub.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:int, 1) 2 | -------------------------------------------------------------------------------- /tests/parse/level5/eof/sub.rb: -------------------------------------------------------------------------------- 1 | 1  + 1 2 | -------------------------------------------------------------------------------- /tests/parse/level5/eof/underscore_end.pending.txt: -------------------------------------------------------------------------------- 1 | not yet implemented: __END__ -------------------------------------------------------------------------------- /tests/parse/level5/eof/underscore_end.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:int, 1) 2 | -------------------------------------------------------------------------------- /tests/parse/level5/eof/underscore_end.rb: -------------------------------------------------------------------------------- 1 | 1 2 | __END__ 3 | .to_s 4 | -------------------------------------------------------------------------------- /tests/parse/level5/heredoc/basic.pending.txt: -------------------------------------------------------------------------------- 1 | assertion failed: `(left == right)` 2 | left: `"s(:begin, ,\n s(:send, nil, :foo),\n s(:const, nil, :EOD))\n"`, 3 | right: `"s(:str, \"foo\\n\")\n"` -------------------------------------------------------------------------------- /tests/parse/level5/heredoc/basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:str, "foo\n") 2 | -------------------------------------------------------------------------------- /tests/parse/level5/heredoc/basic.rb: -------------------------------------------------------------------------------- 1 | <, 2 | s(:send, nil, :x), , 3 | s(:send, nil, :y), ) 4 | -------------------------------------------------------------------------------- /tests/parse/level7/if/unless_elsif.rb: -------------------------------------------------------------------------------- 1 | unless cond 2 | x 3 | elsif cond2 4 | y 5 | end 6 | -------------------------------------------------------------------------------- /tests/parse/modules.rb: -------------------------------------------------------------------------------- 1 | module Foo; end 2 | module Foo 3 | end 4 | 5 | module Foo 6 | 42 7 | end 8 | 9 | module Foo 10 | 42 11 | 100 12 | end 13 | 14 | module Foo::Bar; end 15 | module foo::Bar; end 16 | module (1 + 2)::Bar; end 17 | module ::Bar; end 18 | -------------------------------------------------------------------------------- /tests/parse/newline_basic.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:int, 1), 3 | s(:int, 2), 4 | s(:int, 3), 5 | s(:int, 4)) 6 | -------------------------------------------------------------------------------- /tests/parse/newline_basic.rb: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 4 | 3 5 | 4 6 | -------------------------------------------------------------------------------- /tests/parse/newline_errors.errors.txt: -------------------------------------------------------------------------------- 1 | 17:0-17-2: Unexpected token 2 | 17:3-17-6: Unexpected token 3 | -------------------------------------------------------------------------------- /tests/parse/nil.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:nil) 2 | -------------------------------------------------------------------------------- /tests/parse/nil.rb: -------------------------------------------------------------------------------- 1 | nil 2 | -------------------------------------------------------------------------------- /tests/parse/numeric.errors.txt: -------------------------------------------------------------------------------- 1 | 20:0-20-5: Trailing `_' in number 2 | 22:0-22-6: Consecutive `__' in number 3 | -------------------------------------------------------------------------------- /tests/parse/numeric.rb: -------------------------------------------------------------------------------- 1 | 0 2 | 1 3 | 2 4 | 42 5 | 1_234_567 6 | 7 | +0 8 | +1 9 | +2 10 | +42 11 | +1_234_567 12 | 13 | -0 14 | -1 15 | -2 16 | -42 17 | -1_234_567 18 | 19 | # Error 20 | 1234_ 21 | # error 22 | 1__234 23 | -------------------------------------------------------------------------------- /tests/parse/op_invalid.errors.txt: -------------------------------------------------------------------------------- 1 | 2:2-2-3: Unexpected token 2 | -------------------------------------------------------------------------------- /tests/parse/op_invalid.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:const, 2 | s(:cbase), :"") 3 | -------------------------------------------------------------------------------- /tests/parse/op_invalid.rb: -------------------------------------------------------------------------------- 1 | # foo::; 2 | ::; 3 | # Foo::}; 4 | -------------------------------------------------------------------------------- /tests/parse/paren.rb: -------------------------------------------------------------------------------- 1 | (42) 2 | ((42)) 3 | (1 + 2) * 3 4 | (1; 2; 3) 5 | ( 6 | 1 7 | 2 8 | 3 9 | ) 10 | -------------------------------------------------------------------------------- /tests/parse/semi.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:int, 1), 3 | s(:int, 2), 4 | s(:int, 3)) 5 | -------------------------------------------------------------------------------- /tests/parse/semi.rb: -------------------------------------------------------------------------------- 1 | 1; 2; 3 2 | -------------------------------------------------------------------------------- /tests/parse/special_variables.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:nil), 3 | s(:self), 4 | s(:true), 5 | s(:false), 6 | s(:__FILE__), 7 | s(:__LINE__), 8 | s(:__ENCODING__)) 9 | -------------------------------------------------------------------------------- /tests/parse/special_variables.rb: -------------------------------------------------------------------------------- 1 | nil 2 | self 3 | true 4 | false 5 | __FILE__ 6 | __LINE__ 7 | __ENCODING__ 8 | -------------------------------------------------------------------------------- /tests/parse/strings.rb: -------------------------------------------------------------------------------- 1 | 'foo' + 'bar' 2 | 'foo 3 | bar' 4 | 5 | "foo" + "bar" 6 | "foo 7 | bar" 8 | -------------------------------------------------------------------------------- /tests/parse/symbol.pgem.txt: -------------------------------------------------------------------------------- 1 | s(:begin, 2 | s(:sym, :foo), 3 | s(:sym, :foo!), 4 | s(:sym, :Foo), 5 | s(:sym, :Foo!)) 6 | -------------------------------------------------------------------------------- /tests/parse/symbol.rb: -------------------------------------------------------------------------------- 1 | :foo 2 | :foo! 3 | :Foo 4 | :Foo! 5 | -------------------------------------------------------------------------------- /vscode/sample/test.rb: -------------------------------------------------------------------------------- 1 | nil 2 | --------------------------------------------------------------------------------