[svn:parrot] r47545 - in branches/gsoc_threads: . compilers/data_json compilers/imcc compilers/opsc compilers/opsc/gen compilers/opsc/gen/Ops compilers/opsc/gen/Ops/Compiler compilers/opsc/gen/Ops/Trans compilers/opsc/src compilers/opsc/src/Ops compilers/opsc/src/Ops/Compiler compilers/opsc/src/Ops/Trans compilers/pct compilers/pct/src/PAST compilers/pct/src/PCT compilers/pct/src/POST compilers/pge compilers/tge config/auto config/auto/cpu/i386 config/auto/cpu/ppc config/auto/cpu/sun4 config/auto/cpu/x86_64 config/auto/sizes config/auto/zlib config/gen config/gen/config_pm config/gen/makefiles config/gen/platform/ansi config/gen/platform/generic config/gen/platform/solaris config/gen/platform/win32 config/init config/init/hints config/inter docs docs/book/draft docs/book/pct docs/book/pir docs/dev docs/pdds docs/pdds/draft docs/user/pir editor examples/benchmarks examples/embed examples/io examples/json examples/languages/abc examples/languages/squaak examples/langua ges/squaak/doc examples/languages/squaak/src/builtins examples/languages/squaak/t examples/library examples/nci examples/pasm examples/pge examples/pir examples/pir/befunge examples/sdl/lcd examples/sdl/minesweeper examples/shootout examples/tge/branch examples/tools examples/tutorial ext/nqp-rx ext/nqp-rx/src/stage0 include/parrot include/parrot/oplib lib/Parrot lib/Parrot/Configure/Options lib/Parrot/Configure/Options/Conf lib/Parrot/Configure/Options/Test lib/Parrot/Configure/Step lib/Parrot/Docs/Section lib/Parrot/Harness lib/Parrot/OpTrans lib/Parrot/Ops2c lib/Parrot/Ops2pm lib/Parrot/Test ports/cygwin ports/debian ports/fedora/2.3.0 ports/suse/2.2.0 runtime/parrot/languages runtime/parrot/library runtime/parrot/library/Archive runtime/parrot/library/CGI runtime/parrot/library/Config runtime/parrot/library/Configure runtime/parrot/library/Digest runtime/parrot/library/HTTP runtime/parrot/library/LWP runtime/parrot/library/Math runtime/parrot/library/PGE runtime/parrot/l ibrary/Stream runtime/parrot/library/TAP runtime/parrot/library/Test/Builder src src/call src/dynoplibs src/gc src/interp src/io src/ops src/packfile src/pmc src/runcore src/string src/string/encoding t t/codingstd t/compilers/imcc/imcpasm t/compilers/imcc/syn t/compilers/opsc t/compilers/pct t/compilers/pge/p5regex t/compilers/pge/perl6regex t/compilers/tge t/dynoplibs t/dynpmc t/examples t/library t/native_pbc t/native_pbc/testdata t/oo t/op t/pmc t/pmc/testlib t/src t/steps/auto t/steps/gen t/steps/init t/steps/init/hints t/steps/inter t/tools t/tools/ops2cutils t/tools/ops2pm tools/build tools/dev tools/docs tools/install tools/util
Chandon at svn.parrot.org
Chandon at svn.parrot.org
Thu Jun 10 21:09:26 UTC 2010
Author: Chandon
Date: Thu Jun 10 21:09:12 2010
New Revision: 47545
URL: https://trac.parrot.org/parrot/changeset/47545
Log:
[gsoc threads] Merge from trunk; add coop_threads example.
Added:
branches/gsoc_threads/compilers/opsc/
- copied from r47544, trunk/compilers/opsc/
branches/gsoc_threads/examples/pir/coop_threads.pir
branches/gsoc_threads/include/parrot/oplib/core_ops.h
- copied unchanged from r47544, trunk/include/parrot/oplib/core_ops.h
branches/gsoc_threads/include/parrot/oplib/ops.h
- copied unchanged from r47544, trunk/include/parrot/oplib/ops.h
branches/gsoc_threads/include/parrot/opsenum.h
- copied unchanged from r47544, trunk/include/parrot/opsenum.h
branches/gsoc_threads/runtime/parrot/library/LWP/ (props changed)
- copied from r47544, trunk/runtime/parrot/library/LWP/
branches/gsoc_threads/src/dynoplibs/bit.ops
- copied unchanged from r47544, trunk/src/dynoplibs/bit.ops
branches/gsoc_threads/src/dynoplibs/debug.ops
- copied unchanged from r47544, trunk/src/dynoplibs/debug.ops
branches/gsoc_threads/src/dynoplibs/io.ops
- copied unchanged from r47544, trunk/src/dynoplibs/io.ops
branches/gsoc_threads/src/dynoplibs/sys.ops
- copied unchanged from r47544, trunk/src/dynoplibs/sys.ops
branches/gsoc_threads/src/dynoplibs/trans.ops
- copied unchanged from r47544, trunk/src/dynoplibs/trans.ops
branches/gsoc_threads/src/ops/core_ops.c
- copied unchanged from r47544, trunk/src/ops/core_ops.c
branches/gsoc_threads/src/pmc/bytebuffer.pmc
- copied unchanged from r47544, trunk/src/pmc/bytebuffer.pmc
branches/gsoc_threads/src/string/encoding/ucs4.c
- copied unchanged from r47544, trunk/src/string/encoding/ucs4.c
branches/gsoc_threads/src/string/encoding/ucs4.h
- copied unchanged from r47544, trunk/src/string/encoding/ucs4.h
branches/gsoc_threads/t/compilers/opsc/
- copied from r47544, trunk/t/compilers/opsc/
branches/gsoc_threads/t/dynoplibs/bit.t
- copied unchanged from r47544, trunk/t/dynoplibs/bit.t
branches/gsoc_threads/t/dynoplibs/debug.t
- copied unchanged from r47544, trunk/t/dynoplibs/debug.t
branches/gsoc_threads/t/dynoplibs/io-old.t
- copied unchanged from r47544, trunk/t/dynoplibs/io-old.t
branches/gsoc_threads/t/dynoplibs/io.t
- copied unchanged from r47544, trunk/t/dynoplibs/io.t
branches/gsoc_threads/t/dynoplibs/pmc_pow.t
- copied unchanged from r47544, trunk/t/dynoplibs/pmc_pow.t
branches/gsoc_threads/t/dynoplibs/string_pmc_bitwise.t
- copied unchanged from r47544, trunk/t/dynoplibs/string_pmc_bitwise.t
branches/gsoc_threads/t/dynoplibs/sysinfo.t
- copied unchanged from r47544, trunk/t/dynoplibs/sysinfo.t
branches/gsoc_threads/t/dynoplibs/time.t
- copied unchanged from r47544, trunk/t/dynoplibs/time.t
branches/gsoc_threads/t/dynoplibs/time_old.t
- copied unchanged from r47544, trunk/t/dynoplibs/time_old.t
branches/gsoc_threads/t/dynoplibs/trans-infnan.t
- copied unchanged from r47544, trunk/t/dynoplibs/trans-infnan.t
branches/gsoc_threads/t/dynoplibs/trans-old.t
- copied unchanged from r47544, trunk/t/dynoplibs/trans-old.t
branches/gsoc_threads/t/dynoplibs/trans.t
- copied unchanged from r47544, trunk/t/dynoplibs/trans.t
branches/gsoc_threads/t/library/distutils.t
- copied unchanged from r47544, trunk/t/library/distutils.t
branches/gsoc_threads/t/native_pbc/integer.pbc
- copied unchanged from r47544, trunk/t/native_pbc/integer.pbc
branches/gsoc_threads/t/native_pbc/number.pbc
- copied unchanged from r47544, trunk/t/native_pbc/number.pbc
branches/gsoc_threads/t/native_pbc/string.pbc
- copied unchanged from r47544, trunk/t/native_pbc/string.pbc
branches/gsoc_threads/t/pmc/bytebuffer.t
- copied unchanged from r47544, trunk/t/pmc/bytebuffer.t
branches/gsoc_threads/tools/dev/mk_packfile_pbc
- copied unchanged from r47544, trunk/tools/dev/mk_packfile_pbc
Replaced:
branches/gsoc_threads/compilers/opsc/Defines.mak
- copied unchanged from r47544, trunk/compilers/opsc/Defines.mak
branches/gsoc_threads/compilers/opsc/Rules.mak
- copied unchanged from r47544, trunk/compilers/opsc/Rules.mak
branches/gsoc_threads/compilers/opsc/TODO
- copied unchanged from r47544, trunk/compilers/opsc/TODO
branches/gsoc_threads/compilers/opsc/gen/
- copied from r47544, trunk/compilers/opsc/gen/
branches/gsoc_threads/compilers/opsc/gen/Ops/ (props changed)
- copied from r47544, trunk/compilers/opsc/gen/Ops/
branches/gsoc_threads/compilers/opsc/gen/Ops/Compiler/ (props changed)
- copied from r47544, trunk/compilers/opsc/gen/Ops/Compiler/
branches/gsoc_threads/compilers/opsc/gen/Ops/Compiler/IGNOREME
- copied unchanged from r47544, trunk/compilers/opsc/gen/Ops/Compiler/IGNOREME
branches/gsoc_threads/compilers/opsc/gen/Ops/Trans/ (props changed)
- copied from r47544, trunk/compilers/opsc/gen/Ops/Trans/
branches/gsoc_threads/compilers/opsc/gen/Ops/Trans/IGNOREME
- copied unchanged from r47544, trunk/compilers/opsc/gen/Ops/Trans/IGNOREME
branches/gsoc_threads/compilers/opsc/ops2c.nqp
- copied unchanged from r47544, trunk/compilers/opsc/ops2c.nqp
branches/gsoc_threads/compilers/opsc/opsc.pir
- copied unchanged from r47544, trunk/compilers/opsc/opsc.pir
branches/gsoc_threads/compilers/opsc/src/
- copied from r47544, trunk/compilers/opsc/src/
branches/gsoc_threads/compilers/opsc/src/Ops/
- copied from r47544, trunk/compilers/opsc/src/Ops/
branches/gsoc_threads/compilers/opsc/src/Ops/Compiler/
- copied from r47544, trunk/compilers/opsc/src/Ops/Compiler/
branches/gsoc_threads/compilers/opsc/src/Ops/Compiler.pm
- copied unchanged from r47544, trunk/compilers/opsc/src/Ops/Compiler.pm
branches/gsoc_threads/compilers/opsc/src/Ops/Compiler/Actions.pm
- copied unchanged from r47544, trunk/compilers/opsc/src/Ops/Compiler/Actions.pm
branches/gsoc_threads/compilers/opsc/src/Ops/Compiler/Grammar.pm
- copied unchanged from r47544, trunk/compilers/opsc/src/Ops/Compiler/Grammar.pm
branches/gsoc_threads/compilers/opsc/src/Ops/Emitter.pm
- copied unchanged from r47544, trunk/compilers/opsc/src/Ops/Emitter.pm
branches/gsoc_threads/compilers/opsc/src/Ops/File.pm
- copied unchanged from r47544, trunk/compilers/opsc/src/Ops/File.pm
branches/gsoc_threads/compilers/opsc/src/Ops/Op.pm
- copied unchanged from r47544, trunk/compilers/opsc/src/Ops/Op.pm
branches/gsoc_threads/compilers/opsc/src/Ops/OpLib.pm
- copied unchanged from r47544, trunk/compilers/opsc/src/Ops/OpLib.pm
branches/gsoc_threads/compilers/opsc/src/Ops/Renumberer.pm
- copied unchanged from r47544, trunk/compilers/opsc/src/Ops/Renumberer.pm
branches/gsoc_threads/compilers/opsc/src/Ops/Trans/
- copied from r47544, trunk/compilers/opsc/src/Ops/Trans/
branches/gsoc_threads/compilers/opsc/src/Ops/Trans.pm
- copied unchanged from r47544, trunk/compilers/opsc/src/Ops/Trans.pm
branches/gsoc_threads/compilers/opsc/src/Ops/Trans/C.pm
- copied unchanged from r47544, trunk/compilers/opsc/src/Ops/Trans/C.pm
branches/gsoc_threads/compilers/opsc/src/builtins.pir
- copied unchanged from r47544, trunk/compilers/opsc/src/builtins.pir
branches/gsoc_threads/runtime/parrot/library/LWP/Protocol.pir
- copied unchanged from r47544, trunk/runtime/parrot/library/LWP/Protocol.pir
branches/gsoc_threads/runtime/parrot/library/LWP/UserAgent.pir
- copied unchanged from r47544, trunk/runtime/parrot/library/LWP/UserAgent.pir
branches/gsoc_threads/t/compilers/opsc/01-parse.t
- copied unchanged from r47544, trunk/t/compilers/opsc/01-parse.t
branches/gsoc_threads/t/compilers/opsc/02-parse-all-ops.t
- copied unchanged from r47544, trunk/t/compilers/opsc/02-parse-all-ops.t
branches/gsoc_threads/t/compilers/opsc/03-past.t
- copied unchanged from r47544, trunk/t/compilers/opsc/03-past.t
branches/gsoc_threads/t/compilers/opsc/04-op.t
- copied unchanged from r47544, trunk/t/compilers/opsc/04-op.t
branches/gsoc_threads/t/compilers/opsc/05-oplib.t
- copied unchanged from r47544, trunk/t/compilers/opsc/05-oplib.t
branches/gsoc_threads/t/compilers/opsc/06-opsfile.t
- copied unchanged from r47544, trunk/t/compilers/opsc/06-opsfile.t
branches/gsoc_threads/t/compilers/opsc/07-emitter.t
- copied unchanged from r47544, trunk/t/compilers/opsc/07-emitter.t
branches/gsoc_threads/t/compilers/opsc/common.pir
- copied unchanged from r47544, trunk/t/compilers/opsc/common.pir
Deleted:
branches/gsoc_threads/config/auto/extra_nci_thunks.pm
branches/gsoc_threads/lib/Parrot/Op.pm
branches/gsoc_threads/lib/Parrot/OpTrans/
branches/gsoc_threads/lib/Parrot/OpTrans.pm
branches/gsoc_threads/lib/Parrot/Ops2c/
branches/gsoc_threads/lib/Parrot/Ops2pm/
branches/gsoc_threads/lib/Parrot/Ops2pm.pm
branches/gsoc_threads/lib/Parrot/OpsFile.pm
branches/gsoc_threads/lib/Parrot/OpsRenumber.pm
branches/gsoc_threads/runtime/parrot/library/LWP.pir
branches/gsoc_threads/src/ops/debug.ops
branches/gsoc_threads/src/ops/ops.num
branches/gsoc_threads/t/op/01-parse_ops.t
branches/gsoc_threads/t/op/debuginfo.t
branches/gsoc_threads/t/op/io.t
branches/gsoc_threads/t/op/sysinfo.t
branches/gsoc_threads/t/op/time_old.t
branches/gsoc_threads/t/op/trans.t
branches/gsoc_threads/t/op/trans_old.t
branches/gsoc_threads/t/steps/auto/extra_nci_thunks-01.t
branches/gsoc_threads/t/tools/ops2cutils/
branches/gsoc_threads/t/tools/ops2pm/
branches/gsoc_threads/tools/build/ops2pm.pl
branches/gsoc_threads/tools/dev/opsrenumber.pl
Modified:
branches/gsoc_threads/ (props changed)
branches/gsoc_threads/DEPRECATED.pod
branches/gsoc_threads/MANIFEST
branches/gsoc_threads/MANIFEST.SKIP
branches/gsoc_threads/MANIFEST.generated
branches/gsoc_threads/NEWS
branches/gsoc_threads/PBC_COMPAT
branches/gsoc_threads/compilers/data_json/Rules.mak (props changed)
branches/gsoc_threads/compilers/imcc/Rules.in (props changed)
branches/gsoc_threads/compilers/imcc/debug.c
branches/gsoc_threads/compilers/imcc/debug.h
branches/gsoc_threads/compilers/imcc/imc.c
branches/gsoc_threads/compilers/imcc/imc.h
branches/gsoc_threads/compilers/imcc/imcc.l
branches/gsoc_threads/compilers/imcc/imcc.y
branches/gsoc_threads/compilers/imcc/imclexer.c
branches/gsoc_threads/compilers/imcc/imcparser.c
branches/gsoc_threads/compilers/imcc/imcparser.h
branches/gsoc_threads/compilers/imcc/instructions.c
branches/gsoc_threads/compilers/imcc/instructions.h
branches/gsoc_threads/compilers/imcc/main.c
branches/gsoc_threads/compilers/imcc/optimizer.c
branches/gsoc_threads/compilers/imcc/parser.h
branches/gsoc_threads/compilers/imcc/parser_util.c
branches/gsoc_threads/compilers/imcc/pbc.c
branches/gsoc_threads/compilers/imcc/pcc.c
branches/gsoc_threads/compilers/imcc/reg_alloc.c
branches/gsoc_threads/compilers/imcc/symreg.c
branches/gsoc_threads/compilers/pct/Rules.mak (contents, props changed)
branches/gsoc_threads/compilers/pct/src/PAST/Compiler.pir
branches/gsoc_threads/compilers/pct/src/PCT/HLLCompiler.pir
branches/gsoc_threads/compilers/pct/src/POST/Compiler.pir
branches/gsoc_threads/compilers/pct/src/POST/Node.pir
branches/gsoc_threads/compilers/pge/Rules.mak (props changed)
branches/gsoc_threads/compilers/tge/Rules.mak (props changed)
branches/gsoc_threads/compilers/tge/tgc.pir
branches/gsoc_threads/config/auto/arch.pm
branches/gsoc_threads/config/auto/attributes.pm
branches/gsoc_threads/config/auto/cpu.pm
branches/gsoc_threads/config/auto/cpu/i386/auto.pm
branches/gsoc_threads/config/auto/cpu/ppc/auto.pm
branches/gsoc_threads/config/auto/cpu/sun4/auto.pm
branches/gsoc_threads/config/auto/cpu/x86_64/auto.pm
branches/gsoc_threads/config/auto/ctags.pm
branches/gsoc_threads/config/auto/env.pm
branches/gsoc_threads/config/auto/gc.pm
branches/gsoc_threads/config/auto/gcc.pm
branches/gsoc_threads/config/auto/gettext.pm
branches/gsoc_threads/config/auto/gmp.pm
branches/gsoc_threads/config/auto/headers.pm
branches/gsoc_threads/config/auto/icu.pm
branches/gsoc_threads/config/auto/inline.pm
branches/gsoc_threads/config/auto/isreg.pm
branches/gsoc_threads/config/auto/memalign.pm
branches/gsoc_threads/config/auto/msvc.pm
branches/gsoc_threads/config/auto/neg_0.pm
branches/gsoc_threads/config/auto/opengl.pm
branches/gsoc_threads/config/auto/pcre.pm
branches/gsoc_threads/config/auto/readline.pm
branches/gsoc_threads/config/auto/signal.pm
branches/gsoc_threads/config/auto/sizes/intval_maxmin_c.in (props changed)
branches/gsoc_threads/config/auto/snprintf.pm
branches/gsoc_threads/config/auto/thread.pm
branches/gsoc_threads/config/auto/warnings.pm
branches/gsoc_threads/config/auto/zlib/ (props changed)
branches/gsoc_threads/config/auto/zlib.pm
branches/gsoc_threads/config/gen/config_pm/config_pir.in
branches/gsoc_threads/config/gen/makefiles/root.in
branches/gsoc_threads/config/gen/opengl.pm
branches/gsoc_threads/config/gen/platform.pm
branches/gsoc_threads/config/gen/platform/ansi/time.c
branches/gsoc_threads/config/gen/platform/generic/time.c
branches/gsoc_threads/config/gen/platform/solaris/time.c
branches/gsoc_threads/config/gen/platform/win32/dl.c
branches/gsoc_threads/config/gen/platform/win32/time.c
branches/gsoc_threads/config/init/defaults.pm
branches/gsoc_threads/config/init/hints.pm
branches/gsoc_threads/config/init/hints/darwin.pm
branches/gsoc_threads/config/init/hints/linux.pm
branches/gsoc_threads/config/init/optimize.pm
branches/gsoc_threads/config/inter/libparrot.pm
branches/gsoc_threads/config/inter/progs.pm
branches/gsoc_threads/docs/book/draft/README (props changed)
branches/gsoc_threads/docs/book/draft/appa_glossary.pod (props changed)
branches/gsoc_threads/docs/book/draft/appb_patch_submission.pod (props changed)
branches/gsoc_threads/docs/book/draft/appc_command_line_options.pod (props changed)
branches/gsoc_threads/docs/book/draft/appd_build_options.pod (props changed)
branches/gsoc_threads/docs/book/draft/appe_source_code.pod (props changed)
branches/gsoc_threads/docs/book/draft/ch01_introduction.pod (props changed)
branches/gsoc_threads/docs/book/draft/ch02_getting_started.pod (props changed)
branches/gsoc_threads/docs/book/draft/ch07_dynpmcs.pod (props changed)
branches/gsoc_threads/docs/book/draft/ch08_dynops.pod (props changed)
branches/gsoc_threads/docs/book/draft/ch10_opcode_reference.pod (props changed)
branches/gsoc_threads/docs/book/draft/ch11_directive_reference.pod (props changed)
branches/gsoc_threads/docs/book/draft/ch12_operator_reference.pod (props changed)
branches/gsoc_threads/docs/book/draft/chXX_hlls.pod (contents, props changed)
branches/gsoc_threads/docs/book/draft/chXX_library.pod (props changed)
branches/gsoc_threads/docs/book/draft/chXX_testing_and_debugging.pod (props changed)
branches/gsoc_threads/docs/book/pct/ch01_introduction.pod (props changed)
branches/gsoc_threads/docs/book/pct/ch02_getting_started.pod (props changed)
branches/gsoc_threads/docs/book/pct/ch03_compiler_tools.pod (props changed)
branches/gsoc_threads/docs/book/pct/ch04_pge.pod (props changed)
branches/gsoc_threads/docs/book/pct/ch05_nqp.pod (props changed)
branches/gsoc_threads/docs/book/pir/ch04_variables.pod
branches/gsoc_threads/docs/book/pir/ch08_io.pod
branches/gsoc_threads/docs/compiler_faq.pod
branches/gsoc_threads/docs/dev/c_functions.pod (props changed)
branches/gsoc_threads/docs/parrotbyte.pod
branches/gsoc_threads/docs/parrothist.pod
branches/gsoc_threads/docs/pdds/draft/pdd31_hll.pod
branches/gsoc_threads/docs/pdds/pdd13_bytecode.pod
branches/gsoc_threads/docs/pdds/pdd20_lexical_vars.pod
branches/gsoc_threads/docs/pdds/pdd21_namespaces.pod
branches/gsoc_threads/docs/pdds/pdd22_io.pod
branches/gsoc_threads/docs/pdds/pdd28_strings.pod
branches/gsoc_threads/docs/pdds/pdd30_install.pod (props changed)
branches/gsoc_threads/docs/running.pod
branches/gsoc_threads/docs/tests.pod
branches/gsoc_threads/docs/user/pir/intro.pod
branches/gsoc_threads/editor/pir-mode.el
branches/gsoc_threads/examples/benchmarks/primes.pasm
branches/gsoc_threads/examples/benchmarks/primes_i.pasm
branches/gsoc_threads/examples/embed/cotorra.c (contents, props changed)
branches/gsoc_threads/examples/io/get.pir
branches/gsoc_threads/examples/io/http.pir
branches/gsoc_threads/examples/io/httpd.pir
branches/gsoc_threads/examples/io/post.pir
branches/gsoc_threads/examples/json/postalcodes.pir
branches/gsoc_threads/examples/languages/abc/ (props changed)
branches/gsoc_threads/examples/languages/abc/abc.pir
branches/gsoc_threads/examples/languages/squaak/ (props changed)
branches/gsoc_threads/examples/languages/squaak/doc/tutorial_episode_1.pod
branches/gsoc_threads/examples/languages/squaak/squaak.pir
branches/gsoc_threads/examples/languages/squaak/src/builtins/say.pir
branches/gsoc_threads/examples/languages/squaak/t/00-sanity.t
branches/gsoc_threads/examples/library/md5sum.pir
branches/gsoc_threads/examples/library/ncurses_life.pir
branches/gsoc_threads/examples/nci/xlibtest.pir
branches/gsoc_threads/examples/pasm/cat.pasm
branches/gsoc_threads/examples/pge/demo.pir (contents, props changed)
branches/gsoc_threads/examples/pir/befunge/befunge.pir
branches/gsoc_threads/examples/pir/befunge/debug.pir
branches/gsoc_threads/examples/pir/befunge/io.pir
branches/gsoc_threads/examples/pir/io.pir
branches/gsoc_threads/examples/pir/life.pir
branches/gsoc_threads/examples/pir/make_hello_pbc.pir
branches/gsoc_threads/examples/pir/pirric.pir
branches/gsoc_threads/examples/pir/quine_ord.pir
branches/gsoc_threads/examples/pir/readline.pir
branches/gsoc_threads/examples/pir/sudoku.pir
branches/gsoc_threads/examples/pir/uniq.pir
branches/gsoc_threads/examples/sdl/lcd/clock.pir
branches/gsoc_threads/examples/sdl/minesweeper/field.pir
branches/gsoc_threads/examples/shootout/binarytrees.pir
branches/gsoc_threads/examples/shootout/fasta.pir
branches/gsoc_threads/examples/shootout/knucleotide.pir
branches/gsoc_threads/examples/shootout/nbody.pir
branches/gsoc_threads/examples/shootout/partialsums-2.pir
branches/gsoc_threads/examples/shootout/partialsums.pir
branches/gsoc_threads/examples/shootout/regexdna.pir
branches/gsoc_threads/examples/shootout/revcomp.pir
branches/gsoc_threads/examples/shootout/sumcol.pir
branches/gsoc_threads/examples/tge/branch/transform.pir
branches/gsoc_threads/examples/tools/pbc_checker.cpp
branches/gsoc_threads/examples/tutorial/40_file_ops.pir
branches/gsoc_threads/ext/nqp-rx/Rules.mak (props changed)
branches/gsoc_threads/ext/nqp-rx/src/stage0/ (props changed)
branches/gsoc_threads/ext/nqp-rx/src/stage0/HLL-s0.pir
branches/gsoc_threads/ext/nqp-rx/src/stage0/NQP-s0.pir
branches/gsoc_threads/ext/nqp-rx/src/stage0/P6Regex-s0.pir
branches/gsoc_threads/ext/nqp-rx/src/stage0/Regex-s0.pir
branches/gsoc_threads/ext/nqp-rx/src/stage0/nqp-setting.nqp
branches/gsoc_threads/include/parrot/call.h (props changed)
branches/gsoc_threads/include/parrot/charset.h
branches/gsoc_threads/include/parrot/compiler.h
branches/gsoc_threads/include/parrot/debugger.h
branches/gsoc_threads/include/parrot/embed.h
branches/gsoc_threads/include/parrot/encoding.h
branches/gsoc_threads/include/parrot/exceptions.h
branches/gsoc_threads/include/parrot/gc_api.h (contents, props changed)
branches/gsoc_threads/include/parrot/hash.h
branches/gsoc_threads/include/parrot/imcc.h
branches/gsoc_threads/include/parrot/interpreter.h
branches/gsoc_threads/include/parrot/io.h
branches/gsoc_threads/include/parrot/longopt.h
branches/gsoc_threads/include/parrot/misc.h
branches/gsoc_threads/include/parrot/oplib/ (props changed)
branches/gsoc_threads/include/parrot/packfile.h
branches/gsoc_threads/include/parrot/platform_interface.h
branches/gsoc_threads/include/parrot/pmc.h
branches/gsoc_threads/include/parrot/runcore_api.h (props changed)
branches/gsoc_threads/include/parrot/runcore_profiling.h (props changed)
branches/gsoc_threads/include/parrot/runcore_trace.h (contents, props changed)
branches/gsoc_threads/include/parrot/string_funcs.h
branches/gsoc_threads/include/parrot/warnings.h
branches/gsoc_threads/lib/Parrot/Configure.pm
branches/gsoc_threads/lib/Parrot/Configure/Options/Conf.pm
branches/gsoc_threads/lib/Parrot/Configure/Options/Conf/Shared.pm
branches/gsoc_threads/lib/Parrot/Configure/Options/Reconf.pm
branches/gsoc_threads/lib/Parrot/Configure/Options/Test/Prepare.pm
branches/gsoc_threads/lib/Parrot/Configure/Step/List.pm
branches/gsoc_threads/lib/Parrot/Configure/Step/Test.pm (props changed)
branches/gsoc_threads/lib/Parrot/Distribution.pm
branches/gsoc_threads/lib/Parrot/Docs/Section/Ops.pm
branches/gsoc_threads/lib/Parrot/Docs/Section/Tools.pm
branches/gsoc_threads/lib/Parrot/H2inc.pm (props changed)
branches/gsoc_threads/lib/Parrot/Harness/DefaultTests.pm
branches/gsoc_threads/lib/Parrot/Headerizer.pm
branches/gsoc_threads/lib/Parrot/Test/Pod.pm
branches/gsoc_threads/ports/cygwin/parrot-1.0.0-1.cygport (props changed)
branches/gsoc_threads/ports/debian/libparrot-dev.install.in (props changed)
branches/gsoc_threads/ports/debian/libparrot.install.in (props changed)
branches/gsoc_threads/ports/debian/parrot-doc.install.in (props changed)
branches/gsoc_threads/ports/debian/parrot.install.in (props changed)
branches/gsoc_threads/ports/fedora/2.3.0/ (props changed)
branches/gsoc_threads/ports/suse/2.2.0/ (props changed)
branches/gsoc_threads/runtime/parrot/languages/ (props changed)
branches/gsoc_threads/runtime/parrot/library/Archive/Tar.pir
branches/gsoc_threads/runtime/parrot/library/Archive/Zip.pir
branches/gsoc_threads/runtime/parrot/library/CGI/QueryHash.pir
branches/gsoc_threads/runtime/parrot/library/Config/JSON.pir
branches/gsoc_threads/runtime/parrot/library/Configure/genfile.pir
branches/gsoc_threads/runtime/parrot/library/Crow.pir
branches/gsoc_threads/runtime/parrot/library/Digest/MD5.pir
branches/gsoc_threads/runtime/parrot/library/HTTP/Message.pir
branches/gsoc_threads/runtime/parrot/library/Math/Rand.pir (props changed)
branches/gsoc_threads/runtime/parrot/library/PGE/Util.pir
branches/gsoc_threads/runtime/parrot/library/Rules.mak (props changed)
branches/gsoc_threads/runtime/parrot/library/Stream/ParrotIO.pir
branches/gsoc_threads/runtime/parrot/library/TAP/Harness.pir
branches/gsoc_threads/runtime/parrot/library/TAP/Parser.pir
branches/gsoc_threads/runtime/parrot/library/Test/Builder/Output.pir
branches/gsoc_threads/runtime/parrot/library/URI.pir
branches/gsoc_threads/runtime/parrot/library/distutils.pir
branches/gsoc_threads/runtime/parrot/library/osutils.pir
branches/gsoc_threads/runtime/parrot/library/parrotlib.pir
branches/gsoc_threads/runtime/parrot/library/pcre.pir
branches/gsoc_threads/src/call/context.c
branches/gsoc_threads/src/call/ops.c (props changed)
branches/gsoc_threads/src/call/pcc.c (props changed)
branches/gsoc_threads/src/debug.c
branches/gsoc_threads/src/dynoplibs/Defines.in
branches/gsoc_threads/src/dynoplibs/Rules.in
branches/gsoc_threads/src/dynoplibs/deprecated.ops (contents, props changed)
branches/gsoc_threads/src/dynoplibs/math.ops
branches/gsoc_threads/src/embed.c
branches/gsoc_threads/src/exceptions.c
branches/gsoc_threads/src/gc/alloc_memory.c (props changed)
branches/gsoc_threads/src/gc/alloc_resources.c (props changed)
branches/gsoc_threads/src/gc/api.c (props changed)
branches/gsoc_threads/src/gc/gc_private.h
branches/gsoc_threads/src/gc/malloc.c (props changed)
branches/gsoc_threads/src/gc/malloc_trace.c (props changed)
branches/gsoc_threads/src/gc/mark_sweep.c (contents, props changed)
branches/gsoc_threads/src/gc/system.c (props changed)
branches/gsoc_threads/src/hash.c
branches/gsoc_threads/src/interp/inter_cb.c (props changed)
branches/gsoc_threads/src/interp/inter_create.c (props changed)
branches/gsoc_threads/src/interp/inter_misc.c (contents, props changed)
branches/gsoc_threads/src/io/api.c
branches/gsoc_threads/src/library.c
branches/gsoc_threads/src/longopt.c
branches/gsoc_threads/src/main.c
branches/gsoc_threads/src/oo.c
branches/gsoc_threads/src/ops/bit.ops
branches/gsoc_threads/src/ops/cmp.ops
branches/gsoc_threads/src/ops/core.ops
branches/gsoc_threads/src/ops/experimental.ops
branches/gsoc_threads/src/ops/io.ops
branches/gsoc_threads/src/ops/math.ops
branches/gsoc_threads/src/ops/object.ops
branches/gsoc_threads/src/ops/pmc.ops
branches/gsoc_threads/src/ops/set.ops
branches/gsoc_threads/src/ops/string.ops
branches/gsoc_threads/src/ops/sys.ops
branches/gsoc_threads/src/ops/var.ops
branches/gsoc_threads/src/packdump.c
branches/gsoc_threads/src/packfile.c
branches/gsoc_threads/src/packfile/pf_items.c
branches/gsoc_threads/src/parrot_debugger.c
branches/gsoc_threads/src/pbc_merge.c
branches/gsoc_threads/src/pmc.c
branches/gsoc_threads/src/pmc/boolean.pmc
branches/gsoc_threads/src/pmc/callcontext.pmc
branches/gsoc_threads/src/pmc/coroutine.pmc
branches/gsoc_threads/src/pmc/exception.pmc
branches/gsoc_threads/src/pmc/filehandle.pmc
branches/gsoc_threads/src/pmc/fixedintegerarray.pmc
branches/gsoc_threads/src/pmc/fixedstringarray.pmc
branches/gsoc_threads/src/pmc/imageio.pmc
branches/gsoc_threads/src/pmc/nci.pmc
branches/gsoc_threads/src/pmc/orderedhash.pmc
branches/gsoc_threads/src/pmc/parrotinterpreter.pmc
branches/gsoc_threads/src/pmc/resizableintegerarray.pmc
branches/gsoc_threads/src/pmc/resizablepmcarray.pmc
branches/gsoc_threads/src/pmc/string.pmc
branches/gsoc_threads/src/pmc/stringbuilder.pmc
branches/gsoc_threads/src/pmc/sub.pmc
branches/gsoc_threads/src/runcore/cores.c (props changed)
branches/gsoc_threads/src/runcore/main.c (props changed)
branches/gsoc_threads/src/runcore/profiling.c (props changed)
branches/gsoc_threads/src/runcore/trace.c (contents, props changed)
branches/gsoc_threads/src/string/api.c
branches/gsoc_threads/src/string/charset.c
branches/gsoc_threads/src/string/encoding.c
branches/gsoc_threads/src/utils.c
branches/gsoc_threads/src/warnings.c
branches/gsoc_threads/t/codingstd/c_function_docs.t
branches/gsoc_threads/t/codingstd/linelength.t
branches/gsoc_threads/t/codingstd/perlcritic.t
branches/gsoc_threads/t/compilers/imcc/imcpasm/opt1.t
branches/gsoc_threads/t/compilers/imcc/syn/clash.t
branches/gsoc_threads/t/compilers/imcc/syn/const.t
branches/gsoc_threads/t/compilers/imcc/syn/errors.t
branches/gsoc_threads/t/compilers/imcc/syn/op.t
branches/gsoc_threads/t/compilers/imcc/syn/regressions.t
branches/gsoc_threads/t/compilers/imcc/syn/tail.t
branches/gsoc_threads/t/compilers/pct/past.t
branches/gsoc_threads/t/compilers/pct/post.t
branches/gsoc_threads/t/compilers/pge/p5regex/p5rx.t
branches/gsoc_threads/t/compilers/pge/perl6regex/01-regex.t
branches/gsoc_threads/t/compilers/tge/NoneGrammar.tg (props changed)
branches/gsoc_threads/t/dynoplibs/deprecated.t (props changed)
branches/gsoc_threads/t/dynoplibs/math.t
branches/gsoc_threads/t/dynoplibs/obscure.t
branches/gsoc_threads/t/dynpmc/gziphandle.t
branches/gsoc_threads/t/dynpmc/os.t
branches/gsoc_threads/t/examples/pir.t
branches/gsoc_threads/t/harness.pir
branches/gsoc_threads/t/library/coroutine.t
branches/gsoc_threads/t/library/lwp.t
branches/gsoc_threads/t/library/osutils.t
branches/gsoc_threads/t/library/uri.t
branches/gsoc_threads/t/native_pbc/annotations.pbc
branches/gsoc_threads/t/native_pbc/integer_1.pbc
branches/gsoc_threads/t/native_pbc/integer_2.pbc
branches/gsoc_threads/t/native_pbc/number_1.pbc
branches/gsoc_threads/t/native_pbc/number_2.pbc
branches/gsoc_threads/t/native_pbc/string_1.pbc
branches/gsoc_threads/t/native_pbc/string_2.pbc
branches/gsoc_threads/t/native_pbc/testdata/string.pasm
branches/gsoc_threads/t/oo/methods.t
branches/gsoc_threads/t/oo/root_new.t (props changed)
branches/gsoc_threads/t/op/annotate-old.t
branches/gsoc_threads/t/op/arithmetics.t
branches/gsoc_threads/t/op/arithmetics_pmc.t
branches/gsoc_threads/t/op/calling.t
branches/gsoc_threads/t/op/exit.t
branches/gsoc_threads/t/op/inf_nan.t
branches/gsoc_threads/t/op/integer.t
branches/gsoc_threads/t/op/interp.t
branches/gsoc_threads/t/op/number.t
branches/gsoc_threads/t/op/sprintf.t
branches/gsoc_threads/t/op/string.t
branches/gsoc_threads/t/op/stringu.t
branches/gsoc_threads/t/op/time.t
branches/gsoc_threads/t/pmc/addrregistry.t
branches/gsoc_threads/t/pmc/complex.t
branches/gsoc_threads/t/pmc/eval.t
branches/gsoc_threads/t/pmc/exception-old.t
branches/gsoc_threads/t/pmc/exporter.t
branches/gsoc_threads/t/pmc/filehandle.t
branches/gsoc_threads/t/pmc/fixedintegerarray.t
branches/gsoc_threads/t/pmc/freeze.t
branches/gsoc_threads/t/pmc/integer.t
branches/gsoc_threads/t/pmc/io.t
branches/gsoc_threads/t/pmc/lexpad.t
branches/gsoc_threads/t/pmc/namespace-old.t (props changed)
branches/gsoc_threads/t/pmc/nci.t
branches/gsoc_threads/t/pmc/objects.t
branches/gsoc_threads/t/pmc/packfile.t
branches/gsoc_threads/t/pmc/packfileannotations.t
branches/gsoc_threads/t/pmc/resizablebooleanarray.t
branches/gsoc_threads/t/pmc/resizableintegerarray.t
branches/gsoc_threads/t/pmc/resizablepmcarray.t
branches/gsoc_threads/t/pmc/resizablestringarray.t
branches/gsoc_threads/t/pmc/string.t
branches/gsoc_threads/t/pmc/stringbuilder.t
branches/gsoc_threads/t/pmc/stringhandle.t
branches/gsoc_threads/t/pmc/sub.t
branches/gsoc_threads/t/pmc/sys.t
branches/gsoc_threads/t/pmc/testlib/packfile_common.pir
branches/gsoc_threads/t/pmc/threads.t
branches/gsoc_threads/t/src/embed.t (contents, props changed)
branches/gsoc_threads/t/src/extend.t
branches/gsoc_threads/t/steps/auto/ctags-01.t
branches/gsoc_threads/t/steps/auto/gettext-01.t
branches/gsoc_threads/t/steps/auto/gmp-01.t
branches/gsoc_threads/t/steps/auto/icu-01.t
branches/gsoc_threads/t/steps/auto/msvc-01.t
branches/gsoc_threads/t/steps/auto/neg_0-01.t
branches/gsoc_threads/t/steps/auto/opengl-01.t
branches/gsoc_threads/t/steps/auto/pcre-01.t
branches/gsoc_threads/t/steps/auto/readline-02.t
branches/gsoc_threads/t/steps/auto/zlib-01.t
branches/gsoc_threads/t/steps/gen/opengl-01.t
branches/gsoc_threads/t/steps/gen/platform-01.t
branches/gsoc_threads/t/steps/init/defaults-01.t
branches/gsoc_threads/t/steps/init/hints/darwin-01.t
branches/gsoc_threads/t/steps/init/hints/linux-01.t (contents, props changed)
branches/gsoc_threads/t/steps/inter/libparrot-01.t
branches/gsoc_threads/t/tools/ (props changed)
branches/gsoc_threads/tools/build/h2inc.pl (props changed)
branches/gsoc_threads/tools/build/headerizer.pl
branches/gsoc_threads/tools/build/ops2c.pl
branches/gsoc_threads/tools/dev/fetch_languages.pl (contents, props changed)
branches/gsoc_threads/tools/dev/mk_gitignore.pl (props changed)
branches/gsoc_threads/tools/dev/mk_language_shell.pl
branches/gsoc_threads/tools/dev/nci_thunk_gen.pir
branches/gsoc_threads/tools/dev/pbc_to_exe.pir
branches/gsoc_threads/tools/docs/filename_and_chapter.pl
branches/gsoc_threads/tools/install/smoke.pl
branches/gsoc_threads/tools/util/inc_ver.pir
branches/gsoc_threads/tools/util/parrot-config.pir
branches/gsoc_threads/tools/util/perlcritic-cage.conf (props changed)
branches/gsoc_threads/tools/util/perlcritic.conf
branches/gsoc_threads/tools/util/pgegrep
Modified: branches/gsoc_threads/DEPRECATED.pod
==============================================================================
--- branches/gsoc_threads/DEPRECATED.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/DEPRECATED.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -134,18 +134,18 @@
L<https://trac.parrot.org/parrot/ticket/1628>
-=back
+=item logical_* vtables [eligiblie in 2.7]
-=head1 Opcodes
+These can be replaced by C<get_bool> and intval ops unless you're using them for
+things that aren't really logical ops (don't do that!).
-=over 4
+L<https://trac.parrot.org/parrot/ticket/1655>
-=item moved to dynop [eligible in 1.1]
+=back
-Parts or all of: bit.ops, debug.ops, io.ops, math.ops, set.ops
-(the obscure and rarely used parts), sys.ops.
+=head1 Opcodes
-L<https://trac.parrot.org/parrot/ticket/449>
+=over 4
=item get_addr and set_addr [eligible in 1.5]
@@ -233,12 +233,18 @@
L<https://trac.parrot.org/parrot/ticket/1643>
-=item unroll [experimental]
+=item finalize [experimental]
-Unroll inner runloops from exception handlers.
+Finalize exception handler, unrolling inner runloops if needed.
L<https://trac.parrot.org/parrot/ticket/1635>
+=item logical PMC ops [eligible in 2.7]
+
+These fall out from the logical vtables deprecation.
+
+L<https://trac.parrot.org/parrot/ticket/1655>
+
=back
=head1 Bytecode
Modified: branches/gsoc_threads/MANIFEST
==============================================================================
--- branches/gsoc_threads/MANIFEST Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/MANIFEST Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,7 +1,7 @@
# ex: set ro:
# $Id$
#
-# generated by tools/dev/mk_manifest_and_skip.pl Mon May 17 18:24:33 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Wed Jun 9 14:23:50 2010 UT
#
# See below for documentation on the format of this file.
#
@@ -62,6 +62,24 @@
compilers/imcc/symreg.c [imcc]
compilers/imcc/symreg.h [imcc]
compilers/imcc/unit.h [imcc]
+compilers/opsc/Defines.mak [opsc]
+compilers/opsc/Rules.mak [opsc]
+compilers/opsc/TODO [opsc]
+compilers/opsc/gen/Ops/Compiler/IGNOREME [opsc]
+compilers/opsc/gen/Ops/Trans/IGNOREME [opsc]
+compilers/opsc/ops2c.nqp [opsc]
+compilers/opsc/opsc.pir [opsc]
+compilers/opsc/src/Ops/Compiler.pm [opsc]
+compilers/opsc/src/Ops/Compiler/Actions.pm [opsc]
+compilers/opsc/src/Ops/Compiler/Grammar.pm [opsc]
+compilers/opsc/src/Ops/Emitter.pm [opsc]
+compilers/opsc/src/Ops/File.pm [opsc]
+compilers/opsc/src/Ops/Op.pm [opsc]
+compilers/opsc/src/Ops/OpLib.pm [opsc]
+compilers/opsc/src/Ops/Renumberer.pm [opsc]
+compilers/opsc/src/Ops/Trans.pm [opsc]
+compilers/opsc/src/Ops/Trans/C.pm [opsc]
+compilers/opsc/src/builtins.pir [opsc]
compilers/pct/Defines.mak [pct]
compilers/pct/PCT.pir [pct]
compilers/pct/README.pod []doc
@@ -171,7 +189,6 @@
config/auto/env.pm []
config/auto/env/test_setenv_c.in []
config/auto/env/test_unsetenv_c.in []
-config/auto/extra_nci_thunks.pm []
config/auto/format.pm []
config/auto/frames.pm []
config/auto/frames/test_exec_cygwin_c.in []
@@ -963,6 +980,9 @@
include/parrot/oo_private.h [main]include
include/parrot/op.h [main]include
include/parrot/oplib.h [main]include
+include/parrot/oplib/core_ops.h [main]include
+include/parrot/oplib/ops.h [main]include
+include/parrot/opsenum.h [main]include
include/parrot/packfile.h [main]include
include/parrot/parrot.h [main]include
include/parrot/platform_interface.h [main]include
@@ -1044,16 +1064,6 @@
lib/Parrot/IO/Path.pm [devel]lib
lib/Parrot/Install.pm [devel]lib
lib/Parrot/Manifest.pm [devel]lib
-lib/Parrot/Op.pm [devel]lib
-lib/Parrot/OpTrans.pm [devel]lib
-lib/Parrot/OpTrans/C.pm [devel]lib
-lib/Parrot/Ops2c/Auxiliary.pm [devel]lib
-lib/Parrot/Ops2c/Utils.pm [devel]lib
-lib/Parrot/Ops2pm.pm [devel]lib
-lib/Parrot/Ops2pm/Auxiliary.pm [devel]lib
-lib/Parrot/Ops2pm/Base.pm [devel]lib
-lib/Parrot/OpsFile.pm [devel]lib
-lib/Parrot/OpsRenumber.pm [devel]lib
lib/Parrot/Pmc2c/Attribute.pm [devel]lib
lib/Parrot/Pmc2c/ComposedMethod.pm [devel]lib
lib/Parrot/Pmc2c/Dumper.pm [devel]lib
@@ -1146,7 +1156,8 @@
runtime/parrot/library/HTTP/Message.pir [library]
runtime/parrot/library/Iter.pir [library]
runtime/parrot/library/JSON.pir [library]
-runtime/parrot/library/LWP.pir [library]
+runtime/parrot/library/LWP/Protocol.pir [library]
+runtime/parrot/library/LWP/UserAgent.pir [library]
runtime/parrot/library/MIME/Base64.pir [library]
runtime/parrot/library/Math/Rand.pir [library]
runtime/parrot/library/NCI/Utils.pir [library]
@@ -1241,8 +1252,14 @@
src/dynoplibs/Defines.in []
src/dynoplibs/README []doc
src/dynoplibs/Rules.in []
+src/dynoplibs/bit.ops []
+src/dynoplibs/debug.ops []
+src/dynoplibs/deprecated.ops []
+src/dynoplibs/io.ops []
src/dynoplibs/math.ops []
src/dynoplibs/obscure.ops []
+src/dynoplibs/sys.ops []
+src/dynoplibs/trans.ops []
src/dynpmc/Defines.in []
src/dynpmc/README.pod []doc
src/dynpmc/Rules.in []
@@ -1310,12 +1327,11 @@
src/ops/bit.ops []
src/ops/cmp.ops []
src/ops/core.ops []
-src/ops/debug.ops []
+src/ops/core_ops.c []
src/ops/experimental.ops []
src/ops/io.ops []
src/ops/math.ops []
src/ops/object.ops []
-src/ops/ops.num [devel]src
src/ops/ops.skip []
src/ops/pmc.ops []
src/ops/set.ops []
@@ -1336,6 +1352,7 @@
src/pmc/bigint.pmc []
src/pmc/bignum.pmc []
src/pmc/boolean.pmc []
+src/pmc/bytebuffer.pmc []
src/pmc/callcontext.pmc []
src/pmc/capture.pmc []
src/pmc/class.pmc []
@@ -1441,6 +1458,8 @@
src/string/encoding/fixed_8.h []
src/string/encoding/ucs2.c []
src/string/encoding/ucs2.h []
+src/string/encoding/ucs4.c []
+src/string/encoding/ucs4.h []
src/string/encoding/utf16.c []
src/string/encoding/utf16.h []
src/string/encoding/utf8.c []
@@ -1519,6 +1538,14 @@
t/compilers/imcc/syn/symbols.t [test]
t/compilers/imcc/syn/tail.t [test]
t/compilers/imcc/syn/veracity.t [test]
+t/compilers/opsc/01-parse.t [test]
+t/compilers/opsc/02-parse-all-ops.t [test]
+t/compilers/opsc/03-past.t [test]
+t/compilers/opsc/04-op.t [test]
+t/compilers/opsc/05-oplib.t [test]
+t/compilers/opsc/06-opsfile.t [test]
+t/compilers/opsc/07-emitter.t [test]
+t/compilers/opsc/common.pir [test]
t/compilers/pct/complete_workflow.t [test]
t/compilers/pct/past.t [test]
t/compilers/pct/pct_hllcompiler.t [test]
@@ -1625,8 +1652,21 @@
t/distro/file_metadata.t [test]
t/distro/manifest.t [test]
t/distro/manifest_generated.t [test]
+t/dynoplibs/bit.t [test]
+t/dynoplibs/debug.t [test]
+t/dynoplibs/deprecated.t [test]
+t/dynoplibs/io-old.t [test]
+t/dynoplibs/io.t [test]
t/dynoplibs/math.t [test]
t/dynoplibs/obscure.t [test]
+t/dynoplibs/pmc_pow.t [test]
+t/dynoplibs/string_pmc_bitwise.t [test]
+t/dynoplibs/sysinfo.t [test]
+t/dynoplibs/time.t [test]
+t/dynoplibs/time_old.t [test]
+t/dynoplibs/trans-infnan.t [test]
+t/dynoplibs/trans-old.t [test]
+t/dynoplibs/trans.t [test]
t/dynpmc/dynlexpad.t [test]
t/dynpmc/file.t [test]
t/dynpmc/foo.t [test]
@@ -1658,6 +1698,7 @@
t/library/cgi_query_hash.t [test]
t/library/configure.t [test]
t/library/coroutine.t [test]
+t/library/distutils.t [test]
t/library/dumper.t [test]
t/library/getopt_obj.t [test]
t/library/hllmacros.t [test]
@@ -1694,6 +1735,7 @@
t/manifest/README []doc
t/native_pbc/annotations.pbc [test]
t/native_pbc/header.t [test]
+t/native_pbc/integer.pbc [test]
t/native_pbc/integer.t [test]
t/native_pbc/integer_1.pbc [test]
t/native_pbc/integer_2.pbc [test]
@@ -1702,6 +1744,7 @@
t/native_pbc/integer_5.pbc [test]
t/native_pbc/integer_6.pbc [test]
t/native_pbc/integer_7.pbc [test]
+t/native_pbc/number.pbc [test]
t/native_pbc/number.t [test]
t/native_pbc/number_1.pbc [test]
t/native_pbc/number_2.pbc [test]
@@ -1710,6 +1753,7 @@
t/native_pbc/number_5.pbc [test]
t/native_pbc/number_6.pbc [test]
t/native_pbc/number_7.pbc [test]
+t/native_pbc/string.pbc [test]
t/native_pbc/string.t [test]
t/native_pbc/string_1.pbc [test]
t/native_pbc/string_2.pbc [test]
@@ -1738,7 +1782,6 @@
t/oo/vtableoverride.t [test]
t/op/00ff-dos.t [test]
t/op/00ff-unix.t [test]
-t/op/01-parse_ops.t [test]
t/op/64bit.t [test]
t/op/annotate-old.t [test]
t/op/annotate.t [test]
@@ -1753,7 +1796,6 @@
t/op/cmp-nonbranch.t [test]
t/op/comp.t [test]
t/op/copy.t [test]
-t/op/debuginfo.t [test]
t/op/errorson.t [test]
t/op/exceptions.t [test]
t/op/exit.t [test]
@@ -1765,7 +1807,6 @@
t/op/inf_nan.t [test]
t/op/integer.t [test]
t/op/interp.t [test]
-t/op/io.t [test]
t/op/jit.t [test]
t/op/jitn.t [test]
t/op/lexicals.t [test]
@@ -1784,11 +1825,7 @@
t/op/string_cs.t [test]
t/op/string_mem.t [test]
t/op/stringu.t [test]
-t/op/sysinfo.t [test]
t/op/time.t [test]
-t/op/time_old.t [test]
-t/op/trans.t [test]
-t/op/trans_old.t [test]
t/op/vivify.t [test]
t/perl/Parrot_Distribution.t [test]
t/perl/Parrot_Docs.t [test]
@@ -1809,6 +1846,7 @@
t/pmc/bigint.t [test]
t/pmc/bignum.t [test]
t/pmc/boolean.t [test]
+t/pmc/bytebuffer.t [test]
t/pmc/callcontext.t [test]
t/pmc/capture.t [test]
t/pmc/class.t [test]
@@ -1932,7 +1970,6 @@
t/steps/auto/cpu-01.t [test]
t/steps/auto/ctags-01.t [test]
t/steps/auto/env-01.t [test]
-t/steps/auto/extra_nci_thunks-01.t [test]
t/steps/auto/format-01.t [test]
t/steps/auto/frames-01.t [test]
t/steps/auto/gc-01.t [test]
@@ -2031,34 +2068,6 @@
t/tools/install/testlib/src/pmc/pmc_object.h [test]
t/tools/install/testlib/tools/build/ops2c.pl [test]
t/tools/install/testlib/vtable.dump [test]
-t/tools/ops2cutils/01-new.t [test]
-t/tools/ops2cutils/02-usage.t [test]
-t/tools/ops2cutils/03-print_c_header_file.t [test]
-t/tools/ops2cutils/04-print_c_source_top.t [test]
-t/tools/ops2cutils/05-print_c_source_bottom.t [test]
-t/tools/ops2cutils/06-dynamic.t [test]
-t/tools/ops2cutils/07-make_incdir.t [test]
-t/tools/ops2cutils/08-nolines.t [test]
-t/tools/ops2cutils/09-dynamic_nolines.t [test]
-t/tools/ops2cutils/10-print_c_source_file.t [test]
-t/tools/ops2cutils/testlib/GenerateCore.pm [test]
-t/tools/ops2pm/00-qualify.t [test]
-t/tools/ops2pm/01-ops2pm.t [test]
-t/tools/ops2pm/02-usage.t [test]
-t/tools/ops2pm/03-new.t [test]
-t/tools/ops2pm/04-prepare_ops.t [test]
-t/tools/ops2pm/05-renum_op_map_file.t [test]
-t/tools/ops2pm/06-load_op_map_files.t [test]
-t/tools/ops2pm/07-no_ops_skip.t [test]
-t/tools/ops2pm/08-sort_ops.t [test]
-t/tools/ops2pm/09-prepare_real_ops.t [test]
-t/tools/ops2pm/10-print_module.t [test]
-t/tools/ops2pm/11-print_h.t [test]
-t/tools/ops2pm/samples/bit_ops.original [test]
-t/tools/ops2pm/samples/bit_ops.second [test]
-t/tools/ops2pm/samples/core_ops.original [test]
-t/tools/ops2pm/samples/ops_num.original [test]
-t/tools/ops2pm/samples/pic_ops.original [test]
t/tools/parrot_debugger.t [test]
t/tools/pbc_disassemble.t [test]
t/tools/pbc_dump.t [test]
@@ -2078,7 +2087,6 @@
tools/build/h2inc.pl []
tools/build/headerizer.pl []
tools/build/ops2c.pl [devel]
-tools/build/ops2pm.pl []
tools/build/parrot_config_c.pl []
tools/build/pbcversion_h.pl []
tools/build/pmc2c.pl [devel]
@@ -2110,13 +2118,13 @@
tools/dev/mk_manifest_and_skip.pl []
tools/dev/mk_native_pbc []
tools/dev/mk_nci_thunks.pl []
+tools/dev/mk_packfile_pbc []
tools/dev/mk_rpm_manifests.pl []
tools/dev/nci_test_gen.pl []
tools/dev/nci_thunk_gen.pir []
tools/dev/nm.pl []
tools/dev/nopaste.pl []
tools/dev/ops_not_tested.pl []
-tools/dev/opsrenumber.pl []
tools/dev/parrot-fuzzer []
tools/dev/parrot.supp []
tools/dev/parrot_api.pl []
Modified: branches/gsoc_threads/MANIFEST.SKIP
==============================================================================
--- branches/gsoc_threads/MANIFEST.SKIP Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/MANIFEST.SKIP Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,6 +1,6 @@
# ex: set ro:
# $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Mon May 17 15:32:39 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Thu May 27 15:25:37 2010 UT
#
# This file should contain a transcript of the svn:ignore properties
# of the directories in the Parrot subversion repository. (Needed for
@@ -81,6 +81,14 @@
^miniparrot/
^myconfig$
^myconfig/
+^ops2c$
+^ops2c/
+^ops2c\.c$
+^ops2c\.c/
+^ops2c\.pbc$
+^ops2c\.pbc/
+^ops2c\.pir$
+^ops2c\.pir/
^parrot$
^parrot/
^parrot-nqp$
@@ -188,6 +196,15 @@
^compilers/imcc/imcparser\.h/
^compilers/imcc/imcparser\.output$
^compilers/imcc/imcparser\.output/
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/'
+^compilers/opsc/gen/Ops/.*\.pir$
+^compilers/opsc/gen/Ops/.*\.pir/
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/Compiler/'
+^compilers/opsc/gen/Ops/Compiler/.*\.pir$
+^compilers/opsc/gen/Ops/Compiler/.*\.pir/
+# generated from svn:ignore of 'compilers/opsc/gen/Ops/Trans/'
+^compilers/opsc/gen/Ops/Trans/.*\.pir$
+^compilers/opsc/gen/Ops/Trans/.*\.pir/
# generated from svn:ignore of 'compilers/pct/src/PAST/'
^compilers/pct/src/PAST/.*\.pbc$
^compilers/pct/src/PAST/.*\.pbc/
@@ -428,6 +445,9 @@
# generated from svn:ignore of 'ext/Parrot-Embed/t/'
^ext/Parrot-Embed/t/.*\.pbc$
^ext/Parrot-Embed/t/.*\.pbc/
+# generated from svn:ignore of 'ext/nqp-rx/src/stage0/'
+^ext/nqp-rx/src/stage0/nqp-setting\.pir$
+^ext/nqp-rx/src/stage0/nqp-setting\.pir/
# generated from svn:ignore of 'include/parrot/'
^include/parrot/.*\.tmp$
^include/parrot/.*\.tmp/
@@ -453,15 +473,6 @@
^include/parrot/platform_limits\.h/
^include/parrot/vtable\.h$
^include/parrot/vtable\.h/
-# generated from svn:ignore of 'include/parrot/oplib/'
-^include/parrot/oplib/.*_ops\.h$
-^include/parrot/oplib/.*_ops\.h/
-^include/parrot/oplib/.*_ops_cg.*\.h$
-^include/parrot/oplib/.*_ops_cg.*\.h/
-^include/parrot/oplib/.*_ops_switch\.h$
-^include/parrot/oplib/.*_ops_switch\.h/
-^include/parrot/oplib/ops\.h$
-^include/parrot/oplib/ops\.h/
# generated from svn:ignore of 'include/pmc/'
^include/pmc/.*\.h$
^include/pmc/.*\.h/
@@ -566,6 +577,9 @@
# generated from svn:ignore of 'runtime/parrot/library/HTTP/'
^runtime/parrot/library/HTTP/.*\.pbc$
^runtime/parrot/library/HTTP/.*\.pbc/
+# generated from svn:ignore of 'runtime/parrot/library/LWP/'
+^runtime/parrot/library/LWP/.*\.pbc$
+^runtime/parrot/library/LWP/.*\.pbc/
# generated from svn:ignore of 'runtime/parrot/library/MIME/'
^runtime/parrot/library/MIME/.*\.pbc$
^runtime/parrot/library/MIME/.*\.pbc/
@@ -1046,6 +1060,8 @@
^t/tools/.*\.pbc/
^t/tools/.*\.pir$
^t/tools/.*\.pir/
+^t/tools/.*\.stdout$
+^t/tools/.*\.stdout/
^t/tools/pdb\.t\..*$
^t/tools/pdb\.t\..*/
^t/tools/pmc2c\..*\.c$
Modified: branches/gsoc_threads/MANIFEST.generated
==============================================================================
--- branches/gsoc_threads/MANIFEST.generated Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/MANIFEST.generated Thu Jun 10 21:09:12 2010 (r47545)
@@ -33,8 +33,6 @@
include/parrot/extend_vtable.h [main]include
include/parrot/feature.h [main]include
include/parrot/has_header.h [main]include
-include/parrot/oplib/core_ops.h [main]include
-include/parrot/oplib/ops.h [main]include
include/parrot/pbcversion.h [devel]include
include/parrot/platform.h [main]include
include/parrot/platform_limits.h [devel]include
@@ -44,6 +42,7 @@
include/pmc/pmc_bigint.h [devel]include
include/pmc/pmc_bignum.h [devel]include
include/pmc/pmc_boolean.h [devel]include
+include/pmc/pmc_bytebuffer.h [devel]include
include/pmc/pmc_callcontext.h [devel]include
include/pmc/pmc_capture.h [devel]include
include/pmc/pmc_class.h [devel]include
@@ -125,6 +124,8 @@
include/pmc/pmc_undef.h [devel]include
include/pmc/pmc_unmanagedstruct.h [devel]include
install_config.fpmc [main]lib
+installable_ops2c [main]bin
+installable_ops2c.exe [main]bin
installable_parrot [main]bin
installable_parrot-nqp [main]bin
installable_parrot-nqp.exe [main]bin
@@ -145,12 +146,23 @@
installable_pbc_to_exe [main]bin
installable_pbc_to_exe.exe [main]bin
lib/Parrot/Config/Generated.pm [devel]lib
-lib/Parrot/OpLib/core.pm [devel]lib
lib/Parrot/PMC.pm [devel]lib
lib/Parrot/Pmc2c/PCCMETHOD_BITS.pm [devel]lib
libparrot.dll [main]bin
libparrot.lib [main]bin
parrot.pc [main]pkgconfig
+runtime/parrot/dynext/bit_ops.bundle [library]
+runtime/parrot/dynext/bit_ops.dll [library]
+runtime/parrot/dynext/bit_ops.dylib [library]
+runtime/parrot/dynext/bit_ops.so [library]
+runtime/parrot/dynext/debug_ops.bundle [library]
+runtime/parrot/dynext/debug_ops.dll [library]
+runtime/parrot/dynext/debug_ops.dylib [library]
+runtime/parrot/dynext/debug_ops.so [library]
+runtime/parrot/dynext/deprecated_ops.bundle [library]
+runtime/parrot/dynext/deprecated_ops.dll [library]
+runtime/parrot/dynext/deprecated_ops.dylib [library]
+runtime/parrot/dynext/deprecated_ops.so [library]
runtime/parrot/dynext/dynlexpad.bundle [library]
runtime/parrot/dynext/dynlexpad.dll [library]
runtime/parrot/dynext/dynlexpad.dylib [library]
@@ -163,6 +175,10 @@
runtime/parrot/dynext/gziphandle.dll [library]
runtime/parrot/dynext/gziphandle.dylib [library]
runtime/parrot/dynext/gziphandle.so [library]
+runtime/parrot/dynext/io_ops.bundle [library]
+runtime/parrot/dynext/io_ops.dll [library]
+runtime/parrot/dynext/io_ops.dylib [library]
+runtime/parrot/dynext/io_ops.so [library]
runtime/parrot/dynext/libglutcb.bundle [library]
runtime/parrot/dynext/libglutcb.dll [library]
runtime/parrot/dynext/libglutcb.dylib [library]
@@ -183,6 +199,14 @@
runtime/parrot/dynext/rational.dll [library]
runtime/parrot/dynext/rational.dylib [library]
runtime/parrot/dynext/rational.so [library]
+runtime/parrot/dynext/sys_ops.bundle [library]
+runtime/parrot/dynext/sys_ops.dll [library]
+runtime/parrot/dynext/sys_ops.dylib [library]
+runtime/parrot/dynext/sys_ops.so [library]
+runtime/parrot/dynext/trans_ops.bundle [library]
+runtime/parrot/dynext/trans_ops.dll [library]
+runtime/parrot/dynext/trans_ops.dylib [library]
+runtime/parrot/dynext/trans_ops.so [library]
runtime/parrot/include/call_bits.pasm [main]
runtime/parrot/include/cclass.pasm [main]
runtime/parrot/include/config.fpmc []
@@ -232,7 +256,8 @@
runtime/parrot/library/HTTP/Message.pbc [main]
runtime/parrot/library/Iter.pbc [main]
runtime/parrot/library/JSON.pbc [main]
-runtime/parrot/library/LWP.pbc [main]
+runtime/parrot/library/LWP/Protocol.pbc [main]
+runtime/parrot/library/LWP/UserAgent.pbc [main]
runtime/parrot/library/MIME/Base64.pbc [main]
runtime/parrot/library/Math/Rand.pbc [main]
runtime/parrot/library/NCI/call_toolkit_init.pbc [main]
@@ -271,7 +296,7 @@
runtime/parrot/library/TAP/Formatter.pbc [main]
runtime/parrot/library/TAP/Harness.pbc [main]
runtime/parrot/library/TAP/Parser.pbc [main]
-runtime/parrot/library/TGE.pbc [tge]
+runtime/parrot/library/TGE.pbc [main]
runtime/parrot/library/Tcl/Glob.pbc [main]
runtime/parrot/library/TclLibrary.pbc [main]
runtime/parrot/library/Test/Builder.pbc [main]
@@ -293,6 +318,7 @@
runtime/parrot/library/ncurses.pbc [main]
runtime/parrot/library/nqp-rx.pbc [nqp]
runtime/parrot/library/nqp-setting.pbc [nqp]
+runtime/parrot/library/opsc.pbc [main]
runtime/parrot/library/osutils.pbc [main]
runtime/parrot/library/parrotlib.pbc [main]
runtime/parrot/library/pcore.pbc [main]
@@ -311,6 +337,7 @@
src/pmc/bigint.dump [devel]src
src/pmc/bignum.dump [devel]src
src/pmc/boolean.dump [devel]src
+src/pmc/bytebuffer.dump [devel]src
src/pmc/callcontext.dump [devel]src
src/pmc/capture.dump [devel]src
src/pmc/class.dump [devel]src
Modified: branches/gsoc_threads/NEWS
==============================================================================
--- branches/gsoc_threads/NEWS Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/NEWS Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,5 +1,43 @@
# $Id$
+New in 2.5.0
+- Platforms
+ + EPEL (Extra Packages for Enterprise Linux) packages for RHEL6.beta are available
+ + Building and testing on amd64/i386, with gcc/g++
+ + Almost finished Parrot configure on RTEMS
+- Parrot starts to going Lorito
+ Lorito is the code name for a set of planned refactors to the core opcodes.
+ + The ops_pct branch has been merged into trunk. The "Stage 0" is done with it.
+ for more Information about Lorito see:
+ http://trac.parrot.org/parrot/wiki/Lorito
+ http://trac.parrot.org/parrot/wiki/LoritoRoadmap
+- Core
+ + Added ByteBuffer PMC
+ + Added a bunch of tests for Array PMCs
+ + Modify some PMC vtable functions to reduce complexity, simplifying its coverage.
+ + Deleted do-nothing custom mark in StringBuilder
+ + Fixed ticket #389; subs are not entered into a namespace unless you declare them
+ + Fixed up 'exit' opcode, added CONTROL_EXIT exception type.
+ + Modified PAST so that it can generate symbolic pasm constants in PIR output.
+ + Fixed some substr-out-of-range errors in Regex.match
+ + Various cleanups and some added functionality to NFG (Grapheme Normal Form).
+ + Various parts of the STRING API are now more graceful
+ + Improved implemented PAST::Pattern:
+ Can match on types, children, attributes, based on iseq to a constant,
+ based on true result from a closure and based on anything with an
+ ACCEPTS method.
+- Tests
+ + Fixed some tests that were failing because of dynops
+ + Some tests for the instrument dynpmc are added
+- NQP
+ + nqp-rx now supports multisubs and multimethods
+ + Fixed sigspace handling ** quantifier in regexes
+ + Added \e strings
+ + Added use of inversion lists for charclass lists in regexes
+- Languages
+ + resurrected partcl
+- Miscellaneous
+
New in 2.4.0
- Core
+ Various long-standing bugs in IMCC were fixed
Modified: branches/gsoc_threads/PBC_COMPAT
==============================================================================
--- branches/gsoc_threads/PBC_COMPAT Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/PBC_COMPAT Thu Jun 10 21:09:12 2010 (r47545)
@@ -23,10 +23,16 @@
# TODO TT #361: all .pbc files should make-depend on PBC_COMPAT
-# Also, if you're removing an opcode, be sure to run "make opsrenumber"
+# Also, don't forget to run tools/dev/mk_packfile_pbc to rebuild PBCs
+# used for testing Packfile* PMCs.
# please insert tab separated entries at the top of the list
+6.21 2010.06.09 NotFound add ByteBuffer PMC
+6.20 2010.05.29 plobsing eliminate unused fixup type 'label'
+6.19 2010.05.27 plobsing removed numerous core ops (TT #449)
+6.18 2010.05.25 cotto removed ops.num
+6.17 2010.05.20 NotFound store encoding of string constants
6.16 2010.05.18 plobsing move freeze/thaw adjacent to visit
6.15 2010.05.06 bacek add StringBuilder PMC
6.14 2010.05.03 coke remove popaction, pushmark, pushaction ops.
Modified: branches/gsoc_threads/compilers/imcc/debug.c
==============================================================================
--- branches/gsoc_threads/compilers/imcc/debug.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/debug.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -39,7 +39,6 @@
*/
-PARROT_EXPORT
PARROT_DOES_NOT_RETURN
void
IMCC_fatal(PARROT_INTERP, SHIM(int code), ARGIN(const char *fmt), ...)
@@ -63,7 +62,6 @@
*/
-PARROT_EXPORT
PARROT_DOES_NOT_RETURN
void
IMCC_fataly(PARROT_INTERP, SHIM(int code), ARGIN(const char *fmt), ...)
@@ -89,7 +87,6 @@
*/
-PARROT_EXPORT
PARROT_DOES_NOT_RETURN
void
IMCC_fatal_standalone(PARROT_INTERP, int code, ARGIN(const char *fmt), ...)
@@ -114,7 +111,6 @@
*/
-PARROT_EXPORT
void
IMCC_warning(PARROT_INTERP, ARGIN(const char *fmt), ...)
{
@@ -139,7 +135,6 @@
*/
-PARROT_EXPORT
void
IMCC_info(PARROT_INTERP, int level, ARGIN(const char *fmt), ...)
{
@@ -164,7 +159,6 @@
*/
-PARROT_EXPORT
void
IMCC_debug(PARROT_INTERP, int level, ARGIN(const char *fmt), ...)
{
Modified: branches/gsoc_threads/compilers/imcc/debug.h
==============================================================================
--- branches/gsoc_threads/compilers/imcc/debug.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/debug.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -27,12 +27,32 @@
/* HEADERIZER BEGIN: compilers/imcc/debug.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-PARROT_EXPORT
+void dump_cfg(ARGIN(const IMC_Unit *unit))
+ __attribute__nonnull__(1);
+
+void dump_dominance_frontiers(ARGIN(const IMC_Unit *unit))
+ __attribute__nonnull__(1);
+
+void dump_dominators(ARGIN(const IMC_Unit *unit))
+ __attribute__nonnull__(1);
+
+void dump_instructions(PARROT_INTERP, ARGIN(const IMC_Unit *unit))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+void dump_labels(ARGIN(const IMC_Unit *unit))
+ __attribute__nonnull__(1);
+
+void dump_loops(ARGIN(const IMC_Unit *unit))
+ __attribute__nonnull__(1);
+
+void dump_symreg(ARGIN(const IMC_Unit *unit))
+ __attribute__nonnull__(1);
+
void IMCC_debug(PARROT_INTERP, int level, ARGIN(const char *fmt), ...)
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-PARROT_EXPORT
PARROT_DOES_NOT_RETURN
void IMCC_fatal(PARROT_INTERP,
NULLOK(int code),
@@ -41,7 +61,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-PARROT_EXPORT
PARROT_DOES_NOT_RETURN
void IMCC_fatal_standalone(PARROT_INTERP,
int code,
@@ -50,7 +69,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-PARROT_EXPORT
PARROT_DOES_NOT_RETURN
void IMCC_fataly(PARROT_INTERP,
NULLOK(int code),
@@ -59,38 +77,29 @@
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-PARROT_EXPORT
void IMCC_info(PARROT_INTERP, int level, ARGIN(const char *fmt), ...)
__attribute__nonnull__(1)
__attribute__nonnull__(3);
-PARROT_EXPORT
void IMCC_warning(PARROT_INTERP, ARGIN(const char *fmt), ...)
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-void dump_cfg(ARGIN(const IMC_Unit *unit))
- __attribute__nonnull__(1);
-
-void dump_dominance_frontiers(ARGIN(const IMC_Unit *unit))
- __attribute__nonnull__(1);
-
-void dump_dominators(ARGIN(const IMC_Unit *unit))
- __attribute__nonnull__(1);
-
-void dump_instructions(PARROT_INTERP, ARGIN(const IMC_Unit *unit))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-void dump_labels(ARGIN(const IMC_Unit *unit))
- __attribute__nonnull__(1);
-
-void dump_loops(ARGIN(const IMC_Unit *unit))
- __attribute__nonnull__(1);
-
-void dump_symreg(ARGIN(const IMC_Unit *unit))
- __attribute__nonnull__(1);
-
+#define ASSERT_ARGS_dump_cfg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_dump_dominance_frontiers __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_dump_dominators __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_dump_instructions __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_dump_labels __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_dump_loops __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_dump_symreg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(unit))
#define ASSERT_ARGS_IMCC_debug __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(fmt))
@@ -109,21 +118,6 @@
#define ASSERT_ARGS_IMCC_warning __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(fmt))
-#define ASSERT_ARGS_dump_cfg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_dump_dominance_frontiers __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_dump_dominators __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_dump_instructions __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_dump_labels __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_dump_loops __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_dump_symreg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(unit))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: compilers/imcc/debug.c */
Modified: branches/gsoc_threads/compilers/imcc/imc.c
==============================================================================
--- branches/gsoc_threads/compilers/imcc/imc.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/imc.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -63,7 +63,6 @@
*/
-PARROT_EXPORT
void
imc_compile_all_units(PARROT_INTERP)
{
@@ -113,7 +112,6 @@
*/
-PARROT_EXPORT
void
imc_compile_unit(PARROT_INTERP, ARGIN(IMC_Unit *unit))
{
@@ -136,7 +134,6 @@
*/
-PARROT_EXPORT
void
imc_cleanup(PARROT_INTERP, ARGIN_NULLOK(void *yyscanner))
{
Modified: branches/gsoc_threads/compilers/imcc/imc.h
==============================================================================
--- branches/gsoc_threads/compilers/imcc/imc.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/imc.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -106,35 +106,32 @@
/* HEADERIZER BEGIN: compilers/imcc/imc.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-PARROT_EXPORT
void imc_cleanup(PARROT_INTERP, ARGIN_NULLOK(void *yyscanner))
__attribute__nonnull__(1);
-PARROT_EXPORT
+void imc_close_unit(PARROT_INTERP, ARGIN_NULLOK(IMC_Unit *unit))
+ __attribute__nonnull__(1);
+
void imc_compile_all_units(PARROT_INTERP)
__attribute__nonnull__(1);
-PARROT_EXPORT
void imc_compile_unit(PARROT_INTERP, ARGIN(IMC_Unit *unit))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-void imc_close_unit(PARROT_INTERP, ARGIN_NULLOK(IMC_Unit *unit))
- __attribute__nonnull__(1);
-
PARROT_CANNOT_RETURN_NULL
IMC_Unit * imc_open_unit(PARROT_INTERP, IMC_Unit_Type t)
__attribute__nonnull__(1);
#define ASSERT_ARGS_imc_cleanup __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_imc_close_unit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_imc_compile_all_units __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_imc_compile_unit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_imc_close_unit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_imc_open_unit __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
@@ -190,18 +187,14 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
-int do_yylex_init(PARROT_INTERP, ARGOUT(yyscan_t* yyscanner))
+PARROT_CANNOT_RETURN_NULL
+void * imcc_compile_file(PARROT_INTERP,
+ ARGIN(const char *fullname),
+ ARGOUT(STRING **error_message))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
- FUNC_MODIFIES(* yyscanner);
-
-PARROT_EXPORT
-void imcc_destroy(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-void imcc_init(PARROT_INTERP)
- __attribute__nonnull__(1);
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*error_message);
PARROT_WARN_UNUSED_RESULT
int check_op(PARROT_INTERP,
@@ -227,20 +220,6 @@
__attribute__nonnull__(4)
FUNC_MODIFIES(*error_message);
-PARROT_CANNOT_RETURN_NULL
-void * IMCC_compile_file(PARROT_INTERP, ARGIN(const char *s))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
-PARROT_CANNOT_RETURN_NULL
-void * IMCC_compile_file_s(PARROT_INTERP,
- ARGIN(const char *s),
- ARGOUT(STRING **error_message))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*error_message);
-
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
PMC * imcc_compile_pasm(PARROT_INTERP, ARGIN(const char *s))
@@ -285,6 +264,12 @@
__attribute__nonnull__(3)
FUNC_MODIFIES(*error_message);
+void imcc_destroy(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+void imcc_init(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
PARROT_IGNORABLE_RESULT
int /*@alt void@*/
imcc_vfprintf(PARROT_INTERP,
@@ -346,13 +331,10 @@
FUNC_MODIFIES(*unit)
FUNC_MODIFIES(*r);
-#define ASSERT_ARGS_do_yylex_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_imcc_compile_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(yyscanner))
-#define ASSERT_ARGS_imcc_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_imcc_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
+ , PARROT_ASSERT_ARG(fullname) \
+ , PARROT_ASSERT_ARG(error_message))
#define ASSERT_ARGS_check_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(fullname) \
@@ -362,13 +344,6 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(s) \
, PARROT_ASSERT_ARG(error_message))
-#define ASSERT_ARGS_IMCC_compile_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(s))
-#define ASSERT_ARGS_IMCC_compile_file_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(s) \
- , PARROT_ASSERT_ARG(error_message))
#define ASSERT_ARGS_imcc_compile_pasm __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(s))
@@ -389,6 +364,10 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(s) \
, PARROT_ASSERT_ARG(error_message))
+#define ASSERT_ARGS_imcc_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_imcc_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_imcc_vfprintf __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(io) \
@@ -512,8 +491,8 @@
AsmInYield
} AsmState;
-PARROT_EXPORT void IMCC_push_parser_state(PARROT_INTERP);
-PARROT_EXPORT void IMCC_pop_parser_state(PARROT_INTERP, void *yyscanner);
+void IMCC_push_parser_state(PARROT_INTERP);
+void IMCC_pop_parser_state(PARROT_INTERP, void *yyscanner);
/* globals store the state between individual e_pbc_emit calls */
typedef struct subs_t {
@@ -545,7 +524,6 @@
} imcc_globals;
typedef struct _imc_info_t {
- void *yyscanner;
struct _imc_info_t *prev;
IMC_Unit *imc_units;
IMC_Unit *last_unit;
@@ -592,7 +570,6 @@
int error_code; /* The Error code. */
int expect_pasm;
int gc_off;
- int has_compile;
int imcc_warn;
int in_pod;
int ins_line;
@@ -656,9 +633,8 @@
#define UNSET_STATE_RUN_FROM_FILE(i) (COMPILER_STATE(i) &= ~PBC_RUN_FILE)
/* imclexer.c */
-PARROT_EXPORT FILE * imc_yyin_set(FILE *new_yyin, void *yyscanner);
-PARROT_EXPORT FILE * imc_yyin_get(void *yyscanner);
-
+FILE * imc_yyin_set(FILE *new_yyin, void *yyscanner);
+FILE * imc_yyin_get(void *yyscanner);
#endif /* PARROT_IMCC_IMC_H_GUARD */
Modified: branches/gsoc_threads/compilers/imcc/imcc.l
==============================================================================
--- branches/gsoc_threads/compilers/imcc/imcc.l Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/imcc.l Thu Jun 10 21:09:12 2010 (r47545)
@@ -41,7 +41,6 @@
#include "imc.h"
#include "parser.h"
-// typedef struct yyguts_t yyguts_t;
typedef struct parser_state_t parser_state_t;
/* parser state structure
@@ -125,7 +124,6 @@
BIN 0[bB][01]+
DOT [.]
SIGN [-+]
-BIGINT {SIGN}?{DIGITS}"L"
FLOATNUM {SIGN}?(({DIGITS}{DOT}{DIGIT}*|{DOT}{DIGITS})([eE]{SIGN}?{DIGITS})?|{DIGITS}[eE]{SIGN}?{DIGITS})
LETTERDIGIT [a-zA-Z0-9_]
LABELLETTERDIGIT([a-zA-Z0-9_@])
@@ -137,7 +135,6 @@
UNICODE {ENC}{ENC}?{DQ_STRING}
STRINGCONSTANT {SQ_STRING}|{DQ_STRING}
SQ_STRING \'[^'\n]*\'
-RANKSPEC \[[,]*\]
EOL \r?\n
WS [\t\f\r\x1a ]
SP [ ]
@@ -217,8 +214,6 @@
yy_pop_state(yyscanner);
yy_scan_string(IMCC_INFO(interp)->frames->heredoc_rest, yyscanner);
- /* not sure we need this decrement; more testing needed */
- IMCC_INFO(interp)->line--;
return STRINGC;
}
else {
@@ -542,16 +537,6 @@
<*>{BIN} DUP_AND_RET(valp, INTC);
<*>{OCT} DUP_AND_RET(valp, INTC);
-<*>{BIGINT} {
- valp->s = mem_sys_strdup(yytext);
-
- /* trailing 'L' */
- valp->s[strlen(valp->s) - 1] = '\0';
-
- /* no BIGINT native format yet */
- return STRINGC;
- }
-
<*>{STRINGCONSTANT} {
valp->s = mem_sys_strdup(yytext);
Modified: branches/gsoc_threads/compilers/imcc/imcc.y
==============================================================================
--- branches/gsoc_threads/compilers/imcc/imcc.y Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/imcc.y Thu Jun 10 21:09:12 2010 (r47545)
@@ -1055,9 +1055,12 @@
do_loadlib(PARROT_INTERP, ARGIN(const char *lib))
{
ASSERT_ARGS(do_loadlib)
- STRING * const s = Parrot_str_unescape(interp, lib + 1, '"', NULL);
- PMC *ignored = Parrot_load_lib(interp, s, NULL);
- UNUSED(ignored);
+ STRING * const s = Parrot_str_unescape(interp, lib + 1, '"', NULL);
+ PMC * const lib_pmc = Parrot_load_lib(interp, s, NULL);
+ if (PMC_IS_NULL(lib_pmc) || !VTABLE_get_bool(interp, lib_pmc)) {
+ IMCC_fataly(interp, EXCEPTION_LIBRARY_ERROR,
+ "loadlib directive could not find library `%S'", s);
+ }
Parrot_register_HLL_lib(interp, s);
}
Modified: branches/gsoc_threads/compilers/imcc/imclexer.c
==============================================================================
--- branches/gsoc_threads/compilers/imcc/imclexer.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/imclexer.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -380,8 +380,8 @@
*yy_cp = '\0'; \
yyg->yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 148
-#define YY_END_OF_BUFFER 149
+#define YY_NUM_RULES 147
+#define YY_END_OF_BUFFER 148
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -389,129 +389,127 @@
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[1095] =
+static yyconst flex_int16_t yy_accept[1088] =
{ 0,
0, 1, 0, 1, 0, 1, 17, 1, 0, 1,
0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
- 4, 1, 149, 136, 135, 11, 135, 136, 136, 12,
- 136, 136, 136, 136, 136, 136, 116, 136, 96, 136,
- 120, 120, 136, 88, 136, 90, 134, 134, 134, 134,
- 134, 134, 134, 134, 136, 136, 1, 1, 136, 135,
- 135, 136, 136, 136, 136, 134, 1, 1, 136, 147,
- 142, 138, 142, 147, 147, 147, 147, 147, 120, 120,
- 147, 145, 145, 145, 1, 1, 147, 17, 18, 17,
+ 4, 1, 148, 135, 134, 11, 134, 135, 135, 12,
+ 135, 135, 135, 135, 135, 135, 116, 135, 96, 135,
+ 120, 120, 135, 88, 135, 90, 133, 133, 133, 133,
+ 133, 133, 133, 133, 135, 135, 1, 1, 135, 134,
+ 134, 135, 135, 135, 135, 133, 1, 1, 135, 146,
+ 141, 137, 141, 146, 146, 146, 146, 146, 120, 120,
+ 146, 144, 144, 144, 1, 1, 146, 17, 18, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 1,
- 1, 17, 148, 136, 9, 9, 136, 136, 1, 5,
+ 1, 17, 147, 135, 9, 9, 135, 135, 1, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 1,
- 6, 136, 10, 136, 136, 136, 136, 136, 120, 120,
- 136, 136, 136, 1, 1, 136, 13, 136, 136, 136,
- 136, 136, 120, 120, 136, 136, 136, 1, 1, 148,
- 2, 148, 148, 148, 148, 148, 120, 120, 148, 148,
- 148, 1, 1, 4, 3, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 1, 1, 135, 0, 11,
- 93, 0, 125, 0, 132, 132, 132, 132, 132, 101,
+ 6, 135, 10, 135, 135, 135, 135, 135, 120, 120,
+ 135, 135, 135, 1, 1, 135, 13, 135, 135, 135,
+ 135, 135, 120, 120, 135, 135, 135, 1, 1, 147,
+ 2, 147, 147, 147, 147, 147, 120, 120, 147, 147,
+ 147, 1, 1, 4, 3, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 1, 1, 134, 0, 11,
+ 93, 0, 124, 0, 131, 131, 131, 131, 131, 101,
85, 104, 0, 94, 99, 0, 120, 97, 98, 119,
110, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 102, 100,
- 119, 0, 0, 124, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 89,
- 92, 65, 91, 83, 115, 0, 134, 117, 133, 134,
- 75, 134, 134, 134, 134, 134, 134, 105, 86, 106,
- 87, 1, 0, 15, 0, 92, 65, 0, 135, 118,
- 118, 118, 118, 118, 118, 0, 0, 0, 0, 1,
- 142, 138, 142, 0, 0, 0, 146, 146, 146, 146,
- 145, 0, 143, 145, 1, 1, 17, 18, 17, 17,
+ 119, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 82, 89, 92,
+ 65, 91, 83, 115, 0, 133, 117, 132, 133, 75,
+ 133, 133, 133, 133, 133, 133, 105, 86, 106, 87,
+ 1, 0, 15, 0, 92, 65, 0, 134, 118, 118,
+ 118, 118, 118, 118, 0, 0, 0, 0, 1, 141,
+ 137, 141, 0, 0, 0, 145, 145, 145, 145, 144,
+ 0, 142, 144, 1, 1, 17, 18, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 1, 17, 0,
- 0, 9, 0, 1, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 1, 0, 10, 0, 0, 0, 125, 0,
- 0, 0, 0, 120, 119, 0, 0, 119, 0, 0,
- 124, 0, 0, 0, 0, 0, 0, 1, 1, 0,
- 13, 0, 0, 0, 125, 0, 0, 0, 0, 120,
- 119, 0, 0, 119, 0, 0, 124, 0, 0, 0,
- 0, 0, 0, 1, 1, 0, 2, 0, 0, 0,
-
- 125, 0, 0, 0, 0, 120, 119, 0, 0, 119,
- 0, 0, 124, 0, 0, 0, 0, 0, 0, 1,
- 1, 4, 3, 4, 4, 4, 4, 4, 4, 4,
+ 17, 17, 17, 17, 17, 1, 17, 0, 0, 9,
+ 0, 1, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 1,
+ 0, 10, 0, 0, 0, 124, 0, 0, 0, 0,
+ 120, 119, 0, 0, 119, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 1, 0, 13, 0, 0, 0,
+ 124, 0, 0, 0, 0, 120, 119, 0, 0, 119,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+ 0, 2, 0, 0, 0, 124, 0, 0, 0, 0,
+
+ 120, 119, 0, 0, 119, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 1, 4, 3, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 1, 95, 128, 129, 131, 130, 0, 118,
+ 4, 4, 4, 4, 4, 1, 95, 127, 128, 130,
+ 129, 0, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 103, 119, 122, 0, 119, 123,
- 121, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-
- 0, 0, 108, 107, 84, 114, 0, 0, 133, 134,
- 78, 134, 79, 80, 134, 134, 134, 0, 118, 118,
- 0, 0, 139, 144, 141, 146, 146, 146, 146, 146,
- 145, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 0, 0, 0, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 0, 0, 0, 119, 122, 0, 119, 123, 121,
- 0, 0, 0, 0, 0, 0, 0, 0, 119, 122,
+ 118, 118, 118, 118, 118, 118, 118, 103, 119, 122,
0, 119, 123, 121, 0, 0, 0, 0, 0, 0,
- 0, 0, 119, 122, 0, 119, 123, 121, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 108, 107, 84, 114, 0,
- 0, 0, 0, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 0, 119, 69,
- 118, 118, 118, 118, 25, 118, 118, 118, 118, 118,
- 22, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 24, 118, 118, 0, 0, 0, 0, 0,
- 0, 0, 46, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 126, 0, 0,
- 109, 0, 127, 0, 0, 0, 74, 77, 134, 134,
- 134, 134, 0, 141, 146, 146, 146, 146, 145, 145,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 0, 132, 133, 78, 133, 79, 80, 133, 133, 133,
+ 0, 118, 118, 0, 0, 138, 143, 140, 145, 145,
+ 145, 145, 145, 144, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 0,
+ 0, 0, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 0, 0, 0, 119, 122, 0,
+ 119, 123, 121, 0, 0, 0, 0, 0, 0, 0,
+ 0, 119, 122, 0, 119, 123, 121, 0, 0, 0,
+ 0, 0, 0, 0, 0, 119, 122, 0, 119, 123,
+ 121, 0, 0, 0, 0, 0, 4, 4, 4, 4,
- 17, 17, 17, 17, 17, 17, 0, 0, 0, 0,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 0, 119, 0, 0, 0, 0, 126, 0, 0, 0,
- 0, 0, 127, 0, 0, 0, 0, 0, 0, 119,
- 0, 0, 0, 0, 126, 0, 0, 0, 0, 0,
- 127, 0, 0, 0, 0, 0, 0, 119, 0, 0,
- 0, 0, 126, 0, 0, 0, 0, 0, 127, 0,
- 0, 0, 0, 0, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 118,
- 118, 28, 118, 118, 20, 118, 118, 118, 118, 19,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 0, 119, 69, 118, 118, 118, 118, 25, 118, 118,
+ 118, 118, 118, 22, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 24, 118, 118, 0, 0,
+ 0, 0, 0, 0, 0, 46, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 125, 0, 0, 109, 0, 126, 0, 0, 0, 74,
+ 77, 133, 133, 133, 133, 0, 140, 145, 145, 145,
+ 145, 144, 144, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 0,
+
+ 0, 0, 0, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 0, 119, 0, 0, 0, 0, 125,
+ 0, 0, 0, 0, 0, 126, 0, 0, 0, 0,
+ 0, 0, 119, 0, 0, 0, 0, 125, 0, 0,
+ 0, 0, 0, 126, 0, 0, 0, 0, 0, 0,
+ 119, 0, 0, 0, 0, 125, 0, 0, 0, 0,
+ 0, 126, 0, 0, 0, 0, 0, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 118, 118, 28, 118, 118, 20, 118, 118,
+ 118, 118, 19, 118, 118, 118, 118, 118, 118, 118,
+ 118, 118, 118, 118, 118, 44, 0, 60, 0, 41,
+ 0, 0, 40, 39, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 133, 133, 133, 133,
+ 14, 0, 136, 20, 145, 19, 144, 144, 17, 17,
+ 17, 17, 16, 17, 20, 19, 0, 0, 5, 5,
+ 5, 5, 20, 19, 0, 0, 20, 19, 0, 0,
+ 20, 19, 0, 0, 4, 4, 4, 4, 118, 118,
+ 71, 118, 118, 118, 118, 118, 118, 118, 118, 70,
+ 112, 118, 118, 118, 73, 118, 118, 118, 118, 118,
+ 118, 54, 0, 0, 0, 0, 0, 38, 64, 0,
+
+ 0, 0, 45, 0, 0, 51, 0, 0, 133, 133,
+ 81, 76, 145, 144, 144, 17, 17, 0, 0, 5,
+ 5, 0, 0, 0, 0, 0, 0, 4, 4, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 44, 0, 60, 0, 41, 0, 0, 40,
- 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 134, 134, 134, 134, 14, 0, 137,
- 20, 146, 19, 145, 145, 17, 17, 17, 17, 16,
- 17, 20, 19, 0, 0, 5, 5, 5, 5, 20,
- 19, 0, 0, 20, 19, 0, 0, 20, 19, 0,
- 0, 4, 4, 4, 4, 118, 118, 71, 118, 118,
- 118, 118, 118, 118, 118, 118, 70, 112, 118, 118,
- 118, 73, 118, 118, 118, 118, 118, 118, 54, 0,
-
- 0, 0, 0, 0, 38, 64, 0, 0, 0, 45,
- 0, 0, 51, 0, 0, 134, 134, 81, 76, 146,
- 145, 145, 17, 17, 0, 0, 5, 5, 0, 0,
- 0, 0, 0, 0, 4, 4, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 56, 118, 118, 118, 118, 0, 0, 0, 0,
- 37, 0, 0, 0, 0, 61, 0, 47, 134, 134,
- 140, 145, 145, 17, 17, 0, 0, 5, 5, 0,
- 0, 0, 0, 0, 0, 4, 4, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 113, 118, 59, 118,
-
- 118, 118, 118, 32, 23, 118, 118, 118, 0, 0,
- 0, 0, 48, 0, 0, 0, 0, 0, 8, 17,
- 8, 5, 5, 0, 8, 0, 8, 0, 8, 4,
- 4, 21, 118, 118, 118, 27, 118, 118, 118, 118,
- 31, 118, 118, 118, 29, 118, 118, 58, 67, 0,
- 0, 66, 63, 62, 43, 0, 7, 7, 7, 7,
- 7, 4, 118, 118, 118, 118, 36, 118, 118, 118,
- 30, 68, 118, 55, 42, 0, 0, 26, 118, 118,
- 34, 52, 118, 118, 57, 50, 49, 118, 35, 53,
- 72, 111, 33, 0
-
+ 118, 118, 118, 118, 56, 118, 118, 118, 118, 0,
+ 0, 0, 0, 37, 0, 0, 0, 0, 61, 0,
+ 47, 133, 133, 139, 144, 144, 17, 17, 0, 0,
+ 5, 5, 0, 0, 0, 0, 0, 0, 4, 4,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 113,
+ 118, 59, 118, 118, 118, 118, 32, 23, 118, 118,
+
+ 118, 0, 0, 0, 0, 48, 0, 0, 0, 0,
+ 0, 8, 17, 8, 5, 5, 0, 8, 0, 8,
+ 0, 8, 4, 4, 21, 118, 118, 118, 27, 118,
+ 118, 118, 118, 31, 118, 118, 118, 29, 118, 118,
+ 58, 67, 0, 0, 66, 63, 62, 43, 0, 7,
+ 7, 7, 7, 7, 4, 118, 118, 118, 118, 36,
+ 118, 118, 118, 30, 68, 118, 55, 42, 0, 0,
+ 26, 118, 118, 34, 52, 118, 118, 57, 50, 49,
+ 118, 35, 53, 72, 111, 33, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -557,289 +555,289 @@
10, 10, 10, 1, 1
} ;
-static yyconst flex_int16_t yy_base[1251] =
+static yyconst flex_int16_t yy_base[1244] =
{ 0,
0, 64, 88, 70, 153, 75, 218, 82, 283, 113,
348, 117, 109, 412, 434, 121, 499, 130, 564, 135,
- 629, 140, 4665, 7097, 693, 7097, 697, 4639, 63, 7097,
- 385, 4638, 56, 4648, 58, 686, 7097, 696, 703, 60,
- 750, 780, 785, 72, 83, 124, 703, 797, 767, 825,
- 765, 759, 769, 833, 63, 766, 848, 856, 851, 422,
- 864, 862, 871, 838, 4623, 848, 803, 898, 819, 7097,
- 902, 7097, 906, 84, 898, 4570, 920, 929, 0, 935,
- 4553, 405, 951, 828, 941, 956, 909, 0, 7097, 4573,
- 689, 4563, 965, 969, 1004, 965, 4550, 1066, 1131, 991,
-
- 995, 4529, 7097, 990, 1009, 1077, 4549, 87, 1001, 0,
- 0, 791, 1032, 1066, 1180, 1003, 4547, 1242, 1307, 1013,
- 878, 426, 7097, 894, 1111, 1010, 1105, 1160, 1370, 1129,
- 959, 1432, 1497, 1057, 1098, 974, 7097, 1032, 1163, 1052,
- 1218, 1276, 1560, 1300, 1149, 1622, 1687, 1157, 1182, 1041,
- 7097, 1101, 1185, 1116, 1266, 1337, 1750, 1306, 1209, 1812,
- 1877, 1225, 1259, 0, 7097, 4567, 880, 4557, 1254, 1356,
- 1926, 1369, 4544, 1988, 2053, 1213, 1287, 1297, 1346, 7097,
- 7097, 1168, 7097, 0, 0, 1344, 1360, 1374, 1398, 7097,
- 7097, 7097, 4555, 7097, 7097, 1406, 1443, 7097, 7097, 1448,
-
- 7097, 0, 4532, 4512, 4518, 1136, 4510, 4512, 658, 4508,
- 1425, 105, 883, 922, 4514, 727, 4517, 4508, 4532, 7097,
- 1505, 1174, 1466, 7097, 1185, 0, 4503, 4513, 4502, 1179,
- 816, 1292, 685, 947, 4498, 22, 4498, 4491, 1109, 7097,
- 7097, 7097, 7097, 1252, 4526, 4525, 1406, 4540, 1525, 1533,
- 1443, 1543, 1467, 1544, 1549, 1560, 1562, 7097, 7097, 7097,
- 7097, 1593, 1290, 7097, 1300, 1366, 1382, 1513, 1449, 4492,
- 4492, 1482, 4502, 4501, 4498, 1349, 4483, 4476, 1162, 1582,
- 1616, 7097, 1639, 4512, 1630, 0, 0, 4481, 4483, 1199,
- 1321, 4523, 1638, 1515, 1661, 1665, 0, 7097, 1265, 0,
-
- 0, 4505, 1652, 1698, 1704, 4458, 4457, 1716, 1391, 1661,
- 0, 1472, 2100, 1543, 2147, 2212, 2277, 1607, 4446, 4455,
- 4454, 1744, 909, 1674, 0, 1736, 0, 1687, 1823, 1828,
- 4453, 4452, 1885, 1510, 1778, 0, 1710, 2324, 1563, 2371,
- 2436, 2501, 1753, 1536, 7097, 1597, 1799, 1856, 1601, 1612,
- 1737, 1756, 1851, 2564, 1905, 1778, 1784, 2004, 1894, 1918,
- 1652, 1954, 2608, 1964, 2655, 2720, 2785, 1805, 1862, 1681,
- 7097, 1718, 1926, 1946, 1772, 1828, 1907, 1975, 2016, 2848,
- 2026, 1960, 1981, 2070, 2013, 2082, 1858, 2091, 2892, 2037,
- 2939, 3004, 3069, 2078, 2103, 1978, 7097, 2018, 2128, 2134,
-
- 2039, 2084, 2111, 2121, 2163, 3132, 2293, 2136, 2301, 2387,
- 2172, 2174, 2123, 2305, 3176, 2194, 3223, 3288, 3353, 2200,
- 2205, 0, 7097, 1321, 0, 0, 4489, 2299, 2382, 2310,
- 4450, 4449, 2501, 2160, 2341, 0, 2314, 3400, 1735, 3447,
- 3512, 3577, 2345, 2416, 2403, 2410, 2513, 2517, 2529, 0,
- 4464, 4441, 4445, 4441, 4438, 4445, 4367, 4358, 4362, 786,
- 4353, 4361, 1051, 4369, 4353, 4359, 4360, 4352, 4364, 4348,
- 4347, 4362, 4354, 4357, 7097, 2533, 2180, 2537, 2550, 2394,
- 0, 4348, 4350, 4358, 4347, 2249, 4336, 4355, 4346, 4335,
- 4342, 4340, 4345, 4331, 4330, 4330, 4327, 4343, 4335, 4342,
-
- 1390, 4371, 7097, 7097, 4357, 7097, 1441, 4354, 2564, 2566,
- 2579, 2581, 2583, 2584, 2592, 2624, 2600, 2334, 4332, 4333,
- 4324, 4348, 7097, 2663, 0, 0, 4304, 4297, 4304, 4293,
- 2598, 2677, 4294, 4291, 2785, 2308, 2668, 2681, 2509, 3624,
- 1921, 4331, 1937, 3671, 3736, 4283, 4290, 4287, 1754, 2690,
- 4288, 4282, 2797, 2339, 2694, 2801, 2557, 3783, 2610, 3830,
- 3895, 2826, 2809, 2622, 2834, 2615, 2854, 2868, 2880, 3958,
- 2920, 2829, 2926, 4005, 4070, 2888, 2922, 2832, 2955, 2912,
- 2967, 2977, 3085, 4133, 3104, 2894, 3110, 4180, 4245, 3126,
- 3087, 2914, 3153, 3096, 3099, 3165, 3173, 4308, 3119, 2979,
-
- 3160, 4355, 4420, 3193, 4283, 4280, 3223, 2345, 2973, 3169,
- 2842, 4467, 2011, 4320, 2129, 4514, 4579, 3235, 3239, 0,
- 4277, 4276, 4274, 4266, 4282, 4276, 4280, 4277, 4268, 4264,
- 0, 4271, 4271, 4273, 4257, 4264, 4197, 4201, 4199, 4199,
- 4179, 4197, 0, 4186, 4185, 4182, 4183, 4174, 4186, 4172,
- 4171, 4175, 7097, 4183, 4174, 4177, 4166, 4178, 4170, 783,
- 4176, 4162, 4162, 4168, 4161, 4173, 2584, 7097, 0, 4203,
- 7097, 2637, 7097, 0, 4191, 4206, 2870, 3116, 3364, 3365,
- 3373, 3194, 2423, 0, 4160, 4165, 4164, 4163, 3108, 3374,
- 3245, 3251, 4162, 4161, 2794, 0, 0, 4190, 2819, 0,
-
- 0, 4644, 4193, 4709, 4149, 2558, 4128, 4126, 1733, 1818,
- 3255, 3259, 4124, 4123, 3158, 0, 4774, 4161, 4839, 4117,
- 3380, 3388, 3391, 3428, 3475, 3607, 2638, 2704, 3401, 3463,
- 3609, 3615, 2714, 2965, 4904, 3094, 4969, 4115, 3473, 3477,
- 3437, 3593, 3617, 3622, 3178, 3198, 3497, 3595, 3624, 3699,
- 3247, 3279, 5034, 3431, 5099, 4110, 3485, 3688, 3602, 3605,
- 3811, 3817, 3281, 3382, 3701, 3711, 3862, 3986, 3465, 3481,
- 5164, 3630, 5229, 4108, 3639, 3679, 4110, 4105, 2921, 0,
- 0, 4138, 3103, 0, 0, 5294, 4142, 5359, 4098, 4088,
- 4093, 0, 4086, 1855, 0, 4087, 4101, 4082, 4097, 0,
-
- 4089, 4088, 4084, 4027, 4009, 4022, 4013, 4005, 4005, 1006,
- 4017, 4015, 7097, 4018, 7097, 4013, 7097, 4015, 4012, 7097,
- 7097, 4001, 4000, 3996, 3965, 3950, 3942, 3925, 3931, 3915,
- 3923, 3906, 3842, 3976, 4148, 4016, 3800, 7097, 3487, 0,
- 0, 3834, 0, 2580, 3640, 0, 0, 5424, 1059, 7097,
- 3878, 7097, 7097, 1332, 1986, 0, 0, 5489, 1540, 3499,
- 3713, 3668, 1097, 3717, 3721, 3676, 1231, 3725, 3727, 3682,
- 1504, 0, 0, 3756, 3158, 3821, 3796, 0, 3780, 3773,
- 3767, 3764, 3757, 3689, 3680, 3662, 0, 3649, 3643, 3619,
- 3623, 0, 3580, 3582, 3566, 3569, 3530, 3468, 0, 3428,
-
- 3400, 3386, 3394, 3388, 7097, 7097, 3370, 3365, 3358, 7097,
- 3352, 3340, 7097, 3352, 3329, 3975, 4150, 3851, 3852, 3874,
- 3836, 3948, 1800, 1908, 1438, 1810, 2247, 2260, 1174, 1745,
- 1870, 2063, 2494, 2496, 2778, 2831, 3313, 3820, 3318, 3227,
- 3222, 3181, 3127, 3114, 3102, 3094, 3083, 3070, 3043, 2951,
- 2947, 0, 2936, 2919, 2926, 2868, 2816, 2797, 2770, 2652,
- 7097, 2629, 2634, 2629, 2553, 7097, 2533, 7097, 3958, 3960,
- 3882, 2382, 3857, 1295, 2643, 772, 1490, 3211, 3599, 942,
- 1965, 2950, 3091, 3458, 3588, 3841, 3990, 2518, 2475, 2462,
- 2384, 2368, 2350, 2349, 2332, 2324, 0, 2289, 0, 2268,
-
- 2265, 2236, 2164, 0, 0, 2129, 2130, 2112, 2102, 2075,
- 2051, 2025, 7097, 2027, 2018, 1972, 1947, 1709, 1986, 2898,
- 1978, 3418, 1947, 3885, 4030, 4039, 4033, 4044, 4049, 3625,
- 1931, 0, 1842, 1816, 1765, 0, 1728, 1728, 1694, 1650,
- 0, 1585, 1556, 1522, 0, 1476, 1429, 0, 7097, 1375,
- 1360, 7097, 7097, 7097, 7097, 1321, 7097, 0, 3846, 3868,
- 3969, 0, 1275, 1198, 1185, 1145, 0, 1117, 1071, 1024,
- 0, 0, 926, 0, 7097, 869, 827, 0, 752, 675,
- 0, 367, 356, 61, 0, 7097, 7097, 23, 0, 0,
- 0, 0, 0, 7097, 5554, 5560, 5570, 5578, 5589, 5593,
-
- 5601, 5608, 5619, 5630, 5641, 5652, 5659, 5670, 5681, 5692,
- 5703, 5714, 5725, 5736, 5747, 5758, 5769, 5780, 5791, 5802,
- 5813, 5824, 5835, 5846, 5857, 5868, 5874, 5884, 5890, 5896,
- 5901, 5909, 5918, 5929, 5935, 5939, 5945, 5952, 5963, 5974,
- 5985, 5996, 6007, 6018, 6029, 6040, 6051, 6062, 6073, 6084,
- 6095, 6106, 6117, 6128, 6139, 6150, 6161, 6172, 6183, 6194,
- 6205, 6211, 6216, 6222, 6231, 6242, 6253, 6260, 6268, 6279,
- 6285, 6291, 6297, 6304, 6315, 6326, 6337, 6348, 6359, 6366,
- 6377, 6388, 6399, 6410, 6421, 6432, 6443, 6454, 6465, 6476,
- 6487, 6498, 6509, 6520, 6531, 6542, 6553, 6564, 6575, 6586,
-
- 6597, 6608, 6619, 6625, 6636, 6647, 6658, 6665, 6673, 6684,
- 6690, 6696, 6703, 6714, 6725, 6736, 6747, 6758, 6765, 6776,
- 6787, 6798, 6809, 6820, 6831, 6842, 6853, 6864, 6875, 6886,
- 6897, 6908, 6919, 6930, 6941, 6952, 6963, 6974, 6985, 6996,
- 7007, 7018, 7024, 7032, 7043, 7049, 7056, 7067, 7074, 7085
+ 629, 140, 4821, 6967, 693, 6967, 697, 4795, 63, 6967,
+ 385, 4794, 56, 4806, 58, 686, 6967, 696, 703, 60,
+ 750, 778, 783, 72, 83, 124, 703, 794, 765, 823,
+ 768, 759, 831, 767, 63, 753, 846, 854, 849, 422,
+ 862, 861, 869, 845, 4793, 846, 884, 899, 798, 6967,
+ 905, 6967, 931, 84, 904, 4804, 926, 931, 0, 937,
+ 4791, 405, 949, 845, 958, 971, 881, 0, 6967, 4810,
+ 689, 4800, 967, 971, 1006, 967, 4787, 1068, 1133, 993,
+
+ 997, 4766, 6967, 992, 1011, 1079, 4786, 87, 1003, 0,
+ 0, 819, 1034, 1068, 1182, 1005, 4784, 1244, 1309, 1015,
+ 766, 426, 6967, 869, 1109, 926, 1101, 1149, 1372, 1151,
+ 1034, 1434, 1499, 1059, 1124, 976, 6967, 1012, 1174, 1099,
+ 1212, 1188, 1562, 1235, 1151, 1624, 1689, 1158, 1162, 1043,
+ 6967, 1062, 1179, 1181, 1273, 1337, 1752, 1244, 1219, 1814,
+ 1879, 1297, 1326, 0, 6967, 4804, 904, 4794, 1325, 1317,
+ 1928, 1324, 4781, 1990, 2055, 1222, 1367, 1378, 1236, 6967,
+ 6967, 909, 6967, 0, 0, 1377, 1384, 1400, 1408, 6967,
+ 6967, 6967, 4792, 6967, 6967, 1434, 1445, 6967, 6967, 1449,
+
+ 6967, 0, 4769, 4749, 4755, 767, 4743, 4745, 658, 4741,
+ 1060, 105, 743, 750, 4747, 1011, 4748, 4657, 4681, 6967,
+ 1507, 1111, 1462, 1284, 0, 4652, 4662, 4652, 1136, 877,
+ 1306, 685, 949, 4648, 22, 4648, 4641, 1400, 6967, 6967,
+ 6967, 6967, 1240, 4676, 4675, 1263, 4690, 1527, 1471, 1400,
+ 1535, 1545, 1546, 1551, 1562, 1564, 6967, 6967, 6967, 6967,
+ 1516, 1278, 6967, 1347, 1358, 1410, 1428, 1488, 4642, 4642,
+ 1331, 4652, 4651, 4648, 1420, 4633, 4630, 1230, 1530, 1609,
+ 6967, 1618, 4666, 1632, 0, 0, 4635, 4637, 1246, 1101,
+ 4678, 1640, 1536, 1641, 1663, 0, 6967, 1223, 0, 0,
+
+ 4671, 1650, 1700, 1704, 4632, 4631, 1717, 1466, 1659, 1521,
+ 2102, 1563, 2149, 2214, 2279, 1584, 4620, 4628, 4627, 1740,
+ 1113, 1598, 0, 1737, 0, 1663, 1825, 1746, 4626, 4625,
+ 1829, 1477, 1780, 1689, 2326, 1565, 2373, 2438, 2503, 1602,
+ 1553, 6967, 1614, 1724, 1738, 1654, 1673, 1781, 1800, 1895,
+ 1907, 2006, 1683, 1786, 2028, 1849, 1919, 1853, 2566, 1858,
+ 2613, 2678, 2743, 1805, 1904, 1748, 6967, 1776, 1860, 1948,
+ 1830, 1873, 1909, 1956, 1958, 2072, 2095, 1962, 1969, 2165,
+ 1966, 2019, 2084, 2806, 2017, 2853, 2918, 2983, 2040, 2080,
+ 1927, 6967, 1972, 2093, 2103, 1980, 2014, 2123, 2125, 2177,
+
+ 2295, 2307, 2167, 2317, 2389, 2173, 2187, 2303, 3046, 2327,
+ 3093, 3158, 3223, 2347, 2355, 0, 6967, 1347, 0, 0,
+ 4662, 2342, 2384, 2503, 4623, 4621, 2515, 2089, 2401, 2092,
+ 3270, 1704, 3317, 3382, 3447, 2134, 2200, 2405, 2412, 2519,
+ 2531, 2544, 0, 4632, 4612, 4616, 4612, 4607, 4606, 4531,
+ 4518, 4521, 920, 4512, 4520, 763, 4528, 4512, 4518, 4519,
+ 4511, 4523, 4507, 4506, 4521, 4513, 4516, 6967, 2552, 2159,
+ 2535, 2556, 2511, 0, 4507, 4509, 4517, 4506, 2531, 4495,
+ 4514, 4505, 4494, 4501, 4499, 4504, 4490, 4488, 4488, 4485,
+ 4501, 4493, 4500, 1393, 4524, 6967, 6967, 4510, 6967, 1410,
+
+ 4510, 2574, 2761, 2584, 2624, 2625, 2626, 2765, 2755, 2771,
+ 2543, 4486, 4475, 4397, 4423, 6967, 2635, 0, 0, 4400,
+ 4393, 4400, 4389, 2285, 2645, 4390, 4387, 2776, 2163, 2584,
+ 2624, 2631, 3494, 1569, 4427, 1790, 3541, 3606, 4379, 4386,
+ 4383, 1895, 2823, 4384, 4381, 2853, 2346, 2649, 2770, 2653,
+ 3653, 2306, 3700, 3765, 2881, 2769, 2576, 2999, 2810, 2885,
+ 3011, 3007, 3828, 3031, 2820, 3033, 3875, 3940, 3040, 2782,
+ 2837, 3109, 3060, 3121, 3131, 3066, 4003, 3074, 3001, 3253,
+ 4050, 4115, 3248, 2796, 3079, 3255, 3117, 3275, 3333, 3341,
+ 4178, 3299, 3013, 3477, 4225, 4290, 2894, 4382, 4379, 3328,
+
+ 2375, 3125, 3223, 2861, 4337, 1894, 4419, 1947, 4384, 4449,
+ 3288, 3344, 0, 4376, 4379, 4377, 4369, 4385, 4379, 4382,
+ 4379, 4370, 4366, 0, 4372, 4372, 4372, 4356, 4363, 4360,
+ 4363, 4361, 4346, 4316, 4332, 0, 4320, 4313, 4309, 4310,
+ 4301, 4242, 4228, 4227, 4231, 6967, 4238, 4229, 4232, 4221,
+ 4233, 4225, 864, 4231, 4217, 4218, 4224, 4217, 4229, 1949,
+ 6967, 0, 4259, 6967, 2046, 6967, 0, 4247, 4262, 2795,
+ 3030, 3459, 3460, 3476, 3470, 2425, 0, 4216, 4221, 4220,
+ 4218, 3099, 3288, 3348, 3356, 4217, 4216, 2293, 0, 0,
+ 4248, 2592, 0, 0, 4514, 4252, 4579, 4208, 2659, 4211,
+
+ 4210, 1293, 1682, 3469, 3475, 4209, 4207, 2884, 0, 4644,
+ 4238, 4709, 4194, 3499, 3557, 3522, 3527, 3681, 3687, 2759,
+ 2772, 3268, 3368, 3732, 3856, 2908, 3048, 4774, 3497, 4839,
+ 4168, 3566, 3571, 3673, 3676, 3862, 4031, 3054, 3123, 3559,
+ 3591, 4037, 4206, 3250, 3262, 4904, 3593, 4969, 4167, 3725,
+ 3729, 3848, 3851, 4212, 4365, 3280, 3463, 3749, 3751, 4371,
+ 4412, 3474, 3504, 5034, 3595, 5099, 4164, 3513, 3737, 4166,
+ 4159, 3015, 0, 0, 4191, 3116, 0, 0, 5164, 4195,
+ 5229, 4151, 4137, 4142, 0, 4135, 3847, 0, 4136, 4150,
+ 4131, 4146, 0, 4138, 4137, 4133, 4145, 4127, 4140, 4131,
+
+ 4055, 4055, 3674, 4066, 4064, 6967, 4067, 6967, 4062, 6967,
+ 4060, 4050, 6967, 6967, 4035, 4038, 4040, 4025, 4023, 4012,
+ 3980, 3986, 3965, 3970, 3953, 3960, 4525, 4663, 4063, 4020,
+ 6967, 3579, 0, 0, 3957, 0, 3817, 4188, 0, 0,
+ 5294, 1044, 6967, 3932, 6967, 6967, 943, 826, 0, 0,
+ 5359, 1123, 3683, 3689, 3691, 1167, 3831, 3833, 3788, 1984,
+ 3838, 3840, 3795, 2729, 0, 0, 3811, 3306, 3891, 3887,
+ 0, 3882, 3865, 3859, 3849, 3816, 3819, 3811, 3712, 0,
+ 3719, 3699, 3683, 3678, 0, 3647, 3636, 3621, 3563, 3554,
+ 3559, 0, 3531, 3507, 3491, 3463, 3453, 6967, 6967, 3417,
+
+ 3412, 3397, 6967, 3331, 3310, 6967, 3300, 3274, 4238, 4354,
+ 3896, 3897, 3912, 3993, 3996, 1697, 1960, 1061, 1492, 2000,
+ 2289, 1737, 1886, 2366, 2498, 2848, 3534, 3684, 3857, 3227,
+ 3864, 3230, 3214, 3215, 3197, 3206, 3193, 3095, 3095, 3040,
+ 3030, 2999, 2973, 2969, 0, 2951, 2850, 2840, 2818, 2781,
+ 2779, 2775, 2712, 6967, 2696, 2634, 2618, 2549, 6967, 2550,
+ 6967, 3913, 4005, 3921, 2384, 4064, 2137, 2841, 1302, 1958,
+ 3300, 3328, 1201, 1360, 1374, 1808, 2160, 2788, 3104, 3522,
+ 2538, 2517, 2496, 2469, 2459, 2376, 2367, 2342, 2326, 0,
+ 2283, 0, 2241, 2231, 2168, 2149, 0, 0, 2134, 2101,
+
+ 2089, 2086, 2031, 2031, 2012, 6967, 1945, 1869, 1840, 1809,
+ 1456, 1855, 1770, 1830, 1836, 1806, 3927, 4078, 4088, 4093,
+ 4096, 4101, 2796, 1800, 0, 1707, 1659, 1628, 0, 1583,
+ 1554, 1542, 1478, 0, 1466, 1438, 1431, 0, 1333, 1246,
+ 0, 6967, 1239, 1221, 6967, 6967, 6967, 6967, 1214, 6967,
+ 0, 3934, 4014, 4023, 0, 1144, 990, 989, 971, 0,
+ 926, 897, 860, 0, 0, 807, 0, 6967, 798, 781,
+ 0, 766, 675, 0, 367, 356, 61, 0, 6967, 6967,
+ 23, 0, 0, 0, 0, 0, 6967, 5424, 5430, 5440,
+ 5448, 5459, 5463, 5471, 5478, 5489, 5500, 5511, 5522, 5529,
+
+ 5540, 5551, 5562, 5573, 5584, 5595, 5606, 5617, 5628, 5639,
+ 5650, 5661, 5672, 5683, 5694, 5705, 5716, 5727, 5738, 5744,
+ 5754, 5760, 5766, 5771, 5779, 5788, 5799, 5805, 5809, 5815,
+ 5822, 5833, 5844, 5855, 5866, 5877, 5888, 5899, 5910, 5921,
+ 5932, 5943, 5954, 5965, 5976, 5987, 5998, 6009, 6020, 6031,
+ 6042, 6053, 6064, 6075, 6081, 6086, 6092, 6101, 6112, 6123,
+ 6130, 6138, 6149, 6155, 6161, 6167, 6174, 6185, 6196, 6207,
+ 6218, 6229, 6236, 6247, 6258, 6269, 6280, 6291, 6302, 6313,
+ 6324, 6335, 6346, 6357, 6368, 6379, 6390, 6401, 6412, 6423,
+ 6434, 6445, 6456, 6467, 6478, 6489, 6495, 6506, 6517, 6528,
+
+ 6535, 6543, 6554, 6560, 6566, 6573, 6584, 6595, 6606, 6617,
+ 6628, 6635, 6646, 6657, 6668, 6679, 6690, 6701, 6712, 6723,
+ 6734, 6745, 6756, 6767, 6778, 6789, 6800, 6811, 6822, 6833,
+ 6844, 6855, 6866, 6877, 6888, 6894, 6902, 6913, 6919, 6926,
+ 6937, 6944, 6955
} ;
-static yyconst flex_int16_t yy_def[1251] =
+static yyconst flex_int16_t yy_def[1244] =
{ 0,
- 1094, 1, 1, 3, 1094, 5, 1094, 7, 1094, 9,
- 1094, 11, 9, 9, 1094, 15, 1094, 17, 1094, 19,
- 1094, 21, 1094, 1094, 1094, 1094, 1094, 1094, 1095, 1094,
- 1096, 1094, 1094, 1097, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1098, 1098, 1098, 1098,
- 1098, 1098, 1098, 1098, 1094, 1094, 1094, 1094, 1099, 1094,
- 1094, 1094, 39, 1094, 1094, 1098, 1094, 1094, 1099, 1094,
- 1094, 1094, 1094, 1095, 1100, 1097, 1094, 1101, 41, 1094,
- 1094, 1102, 1102, 1102, 1094, 1094, 1099, 1103, 1094, 1103,
- 1104, 1105, 1103, 1103, 1103, 95, 1103, 1106, 1106, 1103,
-
- 1103, 1103, 1094, 1094, 41, 1094, 1107, 1107, 1094, 1108,
- 1108, 1109, 1108, 1108, 1108, 115, 1108, 1110, 1110, 1108,
- 1095, 1111, 1094, 1111, 1112, 1113, 1111, 1111, 1111, 129,
- 1111, 1114, 1114, 1111, 1111, 1115, 1094, 1115, 1116, 1117,
- 1115, 1115, 1115, 143, 1115, 1118, 1118, 1115, 1115, 1119,
- 1094, 1119, 1120, 1121, 1119, 1119, 1119, 157, 1119, 1122,
- 1122, 1119, 1119, 1123, 1094, 1123, 1124, 1125, 1123, 1123,
- 1123, 171, 1123, 1126, 1126, 1123, 1123, 1094, 1094, 1094,
- 1094, 1095, 1094, 1095, 1127, 1127, 1127, 1127, 1127, 1094,
- 1094, 1094, 1128, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-
- 1094, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
- 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1130, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1131, 1132, 1133, 1132, 1132,
- 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1094, 1094, 1094,
- 1094, 1094, 1134, 1094, 1134, 1134, 1134, 1134, 1094, 1129,
- 1129, 1129, 1129, 1129, 1129, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1135, 1135, 1136, 1137, 1137, 1137, 1137,
- 1138, 1133, 1138, 1138, 1094, 1094, 1139, 1094, 1140, 1139,
-
- 1140, 1141, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
- 1139, 1139, 1139, 1139, 1142, 1094, 1142, 1139, 1139, 1094,
- 1094, 1094, 1131, 1094, 1143, 1144, 1143, 1143, 1143, 1143,
- 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1145,
- 1094, 1145, 1143, 1146, 1094, 1146, 1147, 1147, 1146, 1147,
- 1148, 1148, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1146, 1146, 1146, 1149, 1094, 1149, 1146, 1146, 1150,
- 1094, 1150, 1151, 1151, 1150, 1151, 1152, 1152, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1153, 1094, 1153, 1150, 1150, 1154, 1094, 1154, 1155, 1155,
-
- 1154, 1155, 1156, 1156, 1154, 1154, 1154, 1154, 1154, 1154,
- 1154, 1154, 1154, 1154, 1154, 1154, 1157, 1094, 1157, 1154,
- 1154, 1158, 1094, 1159, 1158, 1159, 1160, 1158, 1158, 1158,
- 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1161,
- 1094, 1161, 1158, 1094, 1162, 1162, 1162, 1162, 1094, 1163,
- 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
- 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
- 1163, 1163, 1163, 1163, 1094, 1094, 1094, 1094, 1094, 1094,
- 1164, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-
- 1165, 1166, 1094, 1094, 1094, 1094, 1167, 1168, 1169, 1169,
- 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170, 1163, 1163,
- 1094, 1171, 1094, 1171, 1172, 1173, 1173, 1173, 1173, 1173,
- 1174, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175,
- 1176, 1177, 1178, 1179, 1094, 1175, 1094, 1094, 1180, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1183,
- 1094, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
- 1185, 1186, 1187, 1188, 1094, 1189, 1189, 1189, 1189, 1189,
- 1189, 1189, 1189, 1189, 1190, 1191, 1192, 1193, 1094, 1194,
- 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 1196,
-
- 1197, 1198, 1094, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
- 1199, 1199, 1200, 1201, 1202, 1203, 1094, 1094, 1094, 1204,
- 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
- 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
- 1204, 1204, 1204, 1204, 1204, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1205, 1094, 1205, 1206,
- 1094, 1207, 1094, 1207, 1208, 1094, 1209, 1209, 1209, 1209,
- 1209, 1209, 1210, 1211, 1212, 1212, 1212, 1212, 1213, 1213,
- 1214, 1214, 1214, 1214, 1215, 1214, 1215, 1216, 1217, 1214,
-
- 1217, 1218, 1214, 1094, 704, 1214, 1094, 1094, 1219, 1219,
- 1220, 1220, 1220, 1220, 1221, 1220, 1222, 1220, 1094, 719,
- 1223, 1223, 1223, 1223, 1224, 1224, 1223, 1224, 1225, 1225,
- 1226, 1226, 1223, 1226, 1227, 1223, 1094, 737, 1228, 1228,
- 1228, 1228, 1229, 1229, 1228, 1229, 1230, 1230, 1231, 1231,
- 1228, 1231, 1232, 1228, 1094, 755, 1233, 1233, 1233, 1233,
- 1234, 1234, 1233, 1234, 1235, 1235, 1236, 1236, 1233, 1236,
- 1237, 1233, 1094, 773, 1238, 1238, 1238, 1238, 1239, 1238,
- 1239, 1240, 1241, 1238, 1241, 1242, 1238, 1094, 788, 1243,
- 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
-
- 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
- 1243, 1243, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1244, 1244, 1244, 1244, 1094, 1245, 1246,
- 1246, 1246, 1246, 1247, 1247, 1248, 1248, 1094, 848, 1094,
- 1248, 1094, 1094, 1249, 1249, 1250, 1250, 1094, 858, 1223,
- 1223, 737, 737, 1228, 1228, 755, 755, 1233, 1233, 773,
- 773, 1238, 1238, 788, 788, 1243, 1243, 1243, 1243, 1243,
- 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
- 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094,
-
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1244, 1244, 1244, 1244, 1246,
- 1247, 1247, 848, 848, 1249, 1249, 858, 858, 737, 737,
- 755, 755, 773, 773, 788, 788, 1243, 1243, 1243, 1243,
- 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
- 1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1244, 1244,
- 1094, 1247, 1247, 848, 848, 1249, 1249, 858, 858, 737,
- 737, 755, 755, 773, 773, 788, 788, 1243, 1243, 1243,
- 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
-
- 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1248,
- 1248, 1250, 1250, 1223, 1223, 1228, 1228, 1233, 1233, 1238,
- 1238, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
- 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1248, 1223, 1228,
- 1233, 1238, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243,
- 1243, 1243, 1243, 1243, 1094, 1094, 1094, 1243, 1243, 1243,
- 1243, 1243, 1243, 1243, 1243, 1094, 1094, 1243, 1243, 1243,
- 1243, 1243, 1243, 0, 1094, 1094, 1094, 1094, 1094, 1094,
-
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094
+ 1087, 1, 1, 3, 1087, 5, 1087, 7, 1087, 9,
+ 1087, 11, 9, 9, 1087, 15, 1087, 17, 1087, 19,
+ 1087, 21, 1087, 1087, 1087, 1087, 1087, 1087, 1088, 1087,
+ 1089, 1087, 1087, 1090, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1091, 1091, 1091, 1091,
+ 1091, 1091, 1091, 1091, 1087, 1087, 1087, 1087, 1092, 1087,
+ 1087, 1087, 39, 1087, 1087, 1091, 1087, 1087, 1092, 1087,
+ 1087, 1087, 1087, 1088, 1093, 1090, 1087, 1094, 41, 1087,
+ 1087, 1095, 1095, 1095, 1087, 1087, 1092, 1096, 1087, 1096,
+ 1097, 1098, 1096, 1096, 1096, 95, 1096, 1099, 1099, 1096,
+
+ 1096, 1096, 1087, 1087, 41, 1087, 1100, 1100, 1087, 1101,
+ 1101, 1102, 1101, 1101, 1101, 115, 1101, 1103, 1103, 1101,
+ 1088, 1104, 1087, 1104, 1105, 1106, 1104, 1104, 1104, 129,
+ 1104, 1107, 1107, 1104, 1104, 1108, 1087, 1108, 1109, 1110,
+ 1108, 1108, 1108, 143, 1108, 1111, 1111, 1108, 1108, 1112,
+ 1087, 1112, 1113, 1114, 1112, 1112, 1112, 157, 1112, 1115,
+ 1115, 1112, 1112, 1116, 1087, 1116, 1117, 1118, 1116, 1116,
+ 1116, 171, 1116, 1119, 1119, 1116, 1116, 1087, 1087, 1087,
+ 1087, 1088, 1087, 1088, 1120, 1120, 1120, 1120, 1120, 1087,
+ 1087, 1087, 1121, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+ 1087, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1123, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1124, 1125, 1126, 1125, 1125, 1125,
+ 1125, 1125, 1125, 1125, 1125, 1125, 1087, 1087, 1087, 1087,
+ 1087, 1127, 1087, 1127, 1127, 1127, 1127, 1087, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1128, 1128, 1129, 1130, 1130, 1130, 1130, 1131,
+ 1126, 1131, 1131, 1087, 1087, 1132, 1087, 1133, 1132, 1133,
+
+ 1134, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
+ 1132, 1132, 1135, 1087, 1135, 1132, 1132, 1087, 1087, 1087,
+ 1124, 1087, 1136, 1137, 1136, 1136, 1136, 1136, 1136, 1136,
+ 1136, 1136, 1136, 1136, 1136, 1136, 1138, 1087, 1138, 1136,
+ 1139, 1087, 1139, 1140, 1140, 1139, 1140, 1141, 1141, 1139,
+ 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
+ 1142, 1087, 1142, 1139, 1139, 1143, 1087, 1143, 1144, 1144,
+ 1143, 1144, 1145, 1145, 1143, 1143, 1143, 1143, 1143, 1143,
+ 1143, 1143, 1143, 1143, 1143, 1146, 1087, 1146, 1143, 1143,
+ 1147, 1087, 1147, 1148, 1148, 1147, 1148, 1149, 1149, 1147,
+
+ 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
+ 1150, 1087, 1150, 1147, 1147, 1151, 1087, 1152, 1151, 1152,
+ 1153, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
+ 1151, 1151, 1154, 1087, 1154, 1151, 1087, 1155, 1155, 1155,
+ 1155, 1087, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1157, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1158, 1159, 1087, 1087, 1087, 1087, 1160,
+
+ 1161, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
+ 1163, 1156, 1156, 1087, 1164, 1087, 1164, 1165, 1166, 1166,
+ 1166, 1166, 1166, 1167, 1168, 1168, 1168, 1168, 1168, 1168,
+ 1168, 1168, 1168, 1169, 1170, 1171, 1172, 1087, 1168, 1087,
+ 1087, 1173, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174,
+ 1174, 1175, 1176, 1087, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1178, 1179, 1180, 1181, 1087, 1182, 1182,
+ 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1183, 1184, 1185,
+ 1186, 1087, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+ 1187, 1188, 1189, 1190, 1191, 1087, 1192, 1192, 1192, 1192,
+
+ 1192, 1192, 1192, 1192, 1192, 1193, 1194, 1195, 1196, 1087,
+ 1087, 1087, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
+ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
+ 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1198,
+ 1087, 1198, 1199, 1087, 1200, 1087, 1200, 1201, 1087, 1202,
+ 1202, 1202, 1202, 1202, 1202, 1203, 1204, 1205, 1205, 1205,
+ 1205, 1206, 1206, 1207, 1207, 1207, 1207, 1208, 1207, 1208,
+ 1209, 1210, 1207, 1210, 1211, 1207, 1087, 697, 1207, 1087,
+
+ 1087, 1212, 1212, 1213, 1213, 1213, 1213, 1214, 1213, 1215,
+ 1213, 1087, 712, 1216, 1216, 1216, 1216, 1217, 1217, 1216,
+ 1217, 1218, 1218, 1219, 1219, 1216, 1219, 1220, 1216, 1087,
+ 730, 1221, 1221, 1221, 1221, 1222, 1222, 1221, 1222, 1223,
+ 1223, 1224, 1224, 1221, 1224, 1225, 1221, 1087, 748, 1226,
+ 1226, 1226, 1226, 1227, 1227, 1226, 1227, 1228, 1228, 1229,
+ 1229, 1226, 1229, 1230, 1226, 1087, 766, 1231, 1231, 1231,
+ 1231, 1232, 1231, 1232, 1233, 1234, 1231, 1234, 1235, 1231,
+ 1087, 781, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+
+ 1236, 1236, 1236, 1236, 1236, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1237, 1237, 1237, 1237,
+ 1087, 1238, 1239, 1239, 1239, 1239, 1240, 1240, 1241, 1241,
+ 1087, 841, 1087, 1241, 1087, 1087, 1242, 1242, 1243, 1243,
+ 1087, 851, 1216, 1216, 730, 730, 1221, 1221, 748, 748,
+ 1226, 1226, 766, 766, 1231, 1231, 781, 781, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1237, 1237,
+ 1237, 1237, 1239, 1240, 1240, 841, 841, 1242, 1242, 851,
+ 851, 730, 730, 748, 748, 766, 766, 781, 781, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1237, 1237, 1087, 1240, 1240, 841, 841, 1242, 1242,
+ 851, 851, 730, 730, 748, 748, 766, 766, 781, 781,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+
+ 1236, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1241, 1241, 1243, 1243, 1216, 1216, 1221, 1221,
+ 1226, 1226, 1231, 1231, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1241, 1216, 1221, 1226, 1231, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1087, 1087, 1087,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1087, 1087,
+ 1236, 1236, 1236, 1236, 1236, 1236, 0, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087
} ;
-static yyconst flex_int16_t yy_nxt[7163] =
+static yyconst flex_int16_t yy_nxt[7033] =
{ 0,
24, 25, 26, 27, 25, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
@@ -848,16 +846,16 @@
47, 47, 47, 47, 47, 47, 47, 49, 47, 50,
47, 47, 51, 47, 52, 47, 47, 53, 47, 54,
47, 47, 47, 55, 56, 57, 191, 58, 57, 183,
- 194, 67, 497, 68, 67, 1093, 85, 219, 86, 85,
- 192, 498, 195, 100, 220, 101, 100, 258, 59, 60,
- 183, 61, 60, 24, 69, 239, 240, 24, 24, 87,
-
- 24, 62, 184, 62, 63, 24, 102, 241, 242, 292,
- 64, 65, 24, 24, 109, 121, 109, 109, 120, 1092,
- 120, 120, 134, 184, 135, 134, 259, 41, 42, 42,
- 42, 148, 323, 149, 148, 47, 162, 47, 163, 162,
- 47, 176, 47, 177, 176, 66, 464, 47, 243, 244,
- 465, 24, 24, 70, 71, 72, 73, 71, 70, 74,
+ 194, 67, 490, 68, 67, 1086, 85, 219, 86, 85,
+ 192, 491, 195, 100, 220, 101, 100, 257, 59, 60,
+ 183, 61, 60, 24, 69, 238, 239, 24, 24, 87,
+
+ 24, 62, 184, 62, 63, 24, 102, 240, 241, 291,
+ 64, 65, 24, 24, 109, 121, 109, 109, 120, 1085,
+ 120, 120, 134, 184, 135, 134, 258, 41, 42, 42,
+ 42, 148, 321, 149, 148, 47, 162, 47, 163, 162,
+ 47, 176, 47, 177, 176, 66, 457, 47, 242, 243,
+ 458, 24, 24, 70, 71, 72, 73, 71, 70, 74,
70, 75, 70, 70, 76, 70, 77, 70, 77, 78,
70, 79, 80, 80, 80, 70, 81, 70, 70, 82,
82, 82, 82, 82, 82, 83, 82, 83, 82, 83,
@@ -886,8 +884,8 @@
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 119, 118, 118, 118, 118,
- 118, 110, 110, 109, 1091, 109, 109, 186, 121, 187,
- 246, 188, 189, 269, 1090, 269, 269, 292, 345, 346,
+ 118, 110, 110, 109, 1084, 109, 109, 186, 121, 187,
+ 245, 188, 189, 268, 1083, 268, 268, 291, 342, 343,
41, 42, 42, 42, 122, 122, 123, 124, 122, 122,
125, 122, 122, 122, 122, 126, 122, 127, 122, 127,
128, 122, 129, 130, 130, 130, 122, 131, 122, 122,
@@ -916,722 +914,708 @@
174, 174, 174, 174, 174, 174, 174, 174, 164, 174,
174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
174, 174, 174, 174, 174, 174, 175, 174, 174, 174,
- 174, 174, 164, 164, 178, 300, 178, 178, 178, 180,
+ 174, 174, 164, 164, 178, 299, 178, 178, 178, 180,
- 178, 178, 196, 458, 197, 197, 197, 197, 459, 179,
- 198, 245, 196, 179, 197, 197, 197, 197, 246, 1089,
- 199, 200, 200, 200, 200, 248, 492, 201, 301, 202,
+ 178, 178, 196, 451, 197, 197, 197, 197, 452, 179,
+ 198, 244, 196, 179, 197, 197, 197, 197, 245, 1082,
+ 199, 200, 200, 200, 200, 247, 485, 201, 300, 202,
202, 202, 202, 202, 203, 202, 202, 202, 202, 202,
- 202, 202, 493, 202, 204, 205, 206, 202, 207, 208,
+ 202, 202, 486, 202, 204, 205, 206, 202, 207, 208,
209, 202, 210, 211, 212, 213, 202, 214, 202, 215,
- 216, 217, 202, 202, 202, 218, 221, 245, 197, 197,
- 197, 197, 471, 245, 246, 245, 1018, 245, 222, 223,
- 246, 248, 246, 224, 246, 225, 472, 248, 226, 248,
- 260, 248, 222, 325, 292, 223, 221, 193, 197, 197,
-
- 197, 197, 327, 225, 280, 245, 280, 280, 1088, 223,
- 254, 226, 246, 224, 255, 249, 249, 249, 249, 248,
- 250, 264, 265, 826, 253, 223, 227, 256, 228, 629,
- 261, 229, 827, 245, 230, 231, 232, 233, 234, 235,
- 246, 245, 236, 246, 237, 238, 630, 248, 246, 262,
- 292, 262, 262, 264, 265, 248, 245, 262, 180, 262,
- 262, 487, 268, 246, 179, 269, 180, 269, 269, 488,
- 248, 251, 179, 294, 1087, 266, 267, 252, 196, 227,
- 197, 197, 197, 197, 183, 257, 425, 276, 231, 232,
- 277, 278, 235, 255, 268, 1094, 345, 346, 238, 280,
-
- 180, 280, 280, 281, 282, 283, 281, 281, 282, 283,
- 281, 264, 265, 202, 270, 1086, 202, 184, 202, 426,
- 271, 272, 273, 274, 466, 275, 467, 202, 202, 202,
- 285, 292, 285, 202, 285, 285, 196, 286, 197, 197,
- 197, 197, 295, 282, 296, 295, 1024, 200, 200, 200,
- 200, 221, 268, 197, 197, 197, 197, 295, 282, 296,
- 295, 345, 346, 468, 223, 469, 246, 549, 224, 293,
- 293, 293, 293, 292, 288, 289, 371, 372, 1085, 290,
- 223, 303, 364, 304, 304, 304, 304, 305, 305, 305,
- 305, 365, 318, 297, 318, 318, 318, 298, 318, 318,
-
- 297, 494, 324, 297, 324, 324, 495, 297, 200, 200,
- 200, 200, 345, 352, 343, 306, 343, 343, 297, 307,
- 308, 349, 304, 304, 304, 304, 297, 322, 322, 322,
- 322, 325, 309, 310, 371, 372, 320, 311, 325, 312,
- 321, 325, 313, 397, 398, 325, 309, 895, 328, 310,
- 329, 329, 329, 329, 371, 378, 325, 312, 368, 345,
- 369, 368, 896, 375, 325, 313, 297, 297, 897, 297,
- 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
- 297, 1084, 297, 297, 330, 330, 330, 330, 316, 297,
- 297, 297, 633, 221, 634, 322, 322, 322, 322, 368,
-
- 345, 369, 368, 397, 398, 297, 223, 345, 346, 315,
- 224, 924, 331, 345, 348, 501, 332, 349, 397, 404,
- 502, 353, 223, 354, 354, 354, 354, 401, 1083, 297,
- 297, 297, 297, 503, 297, 297, 297, 297, 297, 297,
- 297, 297, 297, 297, 297, 297, 365, 297, 297, 930,
- 350, 371, 372, 316, 297, 297, 297, 344, 394, 371,
- 395, 394, 345, 346, 344, 371, 374, 344, 501, 375,
- 297, 344, 390, 502, 183, 1082, 317, 454, 355, 355,
- 355, 355, 344, 394, 371, 395, 394, 397, 400, 455,
- 344, 401, 477, 477, 297, 297, 333, 1081, 329, 329,
-
- 329, 329, 376, 480, 480, 480, 356, 184, 334, 335,
- 357, 397, 398, 336, 443, 337, 443, 443, 338, 980,
- 371, 372, 334, 365, 402, 335, 420, 397, 421, 420,
- 485, 486, 416, 337, 379, 1080, 380, 380, 380, 380,
- 529, 338, 325, 325, 325, 325, 325, 325, 530, 325,
- 325, 325, 325, 325, 325, 325, 325, 1079, 325, 325,
- 420, 397, 421, 420, 341, 325, 325, 325, 397, 398,
- 428, 300, 429, 429, 429, 429, 504, 505, 371, 372,
- 391, 325, 405, 932, 406, 406, 406, 406, 443, 423,
- 443, 443, 264, 265, 381, 381, 381, 381, 178, 1020,
-
- 178, 178, 264, 265, 301, 325, 325, 325, 325, 325,
- 325, 325, 325, 179, 325, 325, 325, 325, 325, 325,
- 325, 325, 382, 325, 325, 1078, 383, 425, 370, 341,
- 325, 325, 325, 489, 396, 370, 246, 490, 370, 397,
- 398, 396, 370, 292, 396, 315, 325, 444, 396, 444,
- 444, 491, 342, 370, 292, 407, 407, 407, 407, 396,
- 426, 370, 445, 445, 445, 445, 1077, 396, 264, 265,
- 325, 325, 345, 346, 430, 430, 430, 430, 446, 446,
- 446, 446, 925, 408, 264, 265, 358, 409, 354, 354,
- 354, 354, 447, 447, 447, 447, 668, 422, 359, 360,
-
- 485, 521, 431, 361, 422, 362, 432, 422, 363, 536,
- 536, 422, 359, 1076, 245, 360, 448, 448, 448, 448,
- 1075, 246, 422, 362, 200, 200, 200, 200, 248, 669,
- 422, 363, 344, 344, 345, 346, 344, 344, 344, 344,
- 344, 344, 344, 344, 344, 344, 344, 673, 344, 344,
- 269, 245, 269, 269, 366, 344, 344, 344, 246, 221,
- 292, 197, 197, 197, 197, 248, 200, 200, 200, 200,
- 461, 344, 223, 1074, 462, 245, 224, 449, 463, 478,
- 674, 478, 246, 976, 479, 479, 479, 479, 223, 248,
- 539, 539, 539, 449, 1019, 344, 344, 344, 344, 345,
-
- 346, 344, 344, 344, 344, 344, 344, 344, 344, 344,
- 344, 344, 292, 344, 344, 264, 265, 512, 513, 366,
- 344, 344, 344, 476, 476, 476, 476, 461, 554, 554,
- 246, 462, 1073, 245, 449, 520, 344, 292, 345, 346,
- 246, 245, 367, 509, 509, 509, 509, 248, 246, 541,
- 449, 245, 245, 417, 542, 248, 934, 245, 246, 246,
- 344, 344, 371, 372, 246, 248, 248, 1072, 245, 501,
- 245, 248, 518, 531, 559, 246, 384, 246, 380, 380,
- 380, 380, 248, 280, 248, 280, 280, 514, 385, 386,
- 340, 510, 928, 387, 262, 388, 262, 262, 389, 345,
-
- 346, 511, 385, 345, 346, 386, 1071, 515, 318, 179,
- 318, 318, 517, 388, 345, 348, 516, 281, 282, 283,
- 281, 389, 370, 370, 371, 372, 370, 370, 370, 370,
- 370, 370, 370, 370, 370, 370, 370, 1070, 370, 370,
- 281, 282, 283, 281, 392, 370, 370, 370, 524, 524,
- 524, 524, 523, 246, 345, 346, 293, 293, 293, 293,
- 292, 370, 295, 282, 296, 295, 295, 282, 296, 295,
- 305, 305, 305, 305, 537, 324, 537, 324, 324, 538,
- 538, 538, 538, 371, 372, 370, 370, 370, 370, 371,
- 372, 370, 370, 370, 370, 370, 370, 370, 370, 370,
-
- 370, 370, 1069, 370, 370, 330, 330, 330, 330, 392,
- 370, 370, 370, 1018, 308, 1057, 304, 304, 304, 304,
- 371, 372, 305, 305, 305, 305, 370, 310, 557, 557,
- 557, 311, 393, 532, 535, 535, 535, 535, 325, 345,
- 352, 613, 193, 310, 1068, 532, 614, 327, 349, 532,
- 370, 370, 397, 398, 343, 292, 343, 343, 345, 352,
- 221, 532, 322, 322, 322, 322, 410, 349, 406, 406,
- 406, 406, 1067, 223, 371, 372, 292, 224, 411, 412,
- 345, 346, 854, 413, 1066, 414, 345, 346, 415, 223,
- 981, 555, 411, 555, 365, 412, 556, 556, 556, 556,
-
- 709, 345, 348, 414, 710, 349, 368, 345, 369, 368,
- 1065, 415, 396, 396, 397, 398, 396, 396, 396, 396,
- 396, 396, 396, 396, 396, 396, 396, 563, 396, 396,
- 371, 374, 292, 564, 418, 396, 396, 396, 350, 333,
- 292, 329, 329, 329, 329, 974, 330, 330, 330, 330,
- 315, 396, 335, 345, 346, 977, 336, 550, 345, 348,
- 371, 372, 349, 368, 345, 369, 368, 855, 335, 355,
- 355, 355, 355, 550, 1064, 396, 396, 396, 396, 397,
- 398, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 396, 396, 1063, 396, 396, 350, 345, 346, 879, 418,
-
- 396, 396, 396, 553, 553, 553, 553, 345, 346, 371,
- 378, 880, 566, 566, 550, 982, 396, 881, 375, 391,
- 345, 346, 419, 355, 355, 355, 355, 696, 371, 374,
- 550, 567, 375, 567, 562, 1031, 568, 568, 568, 568,
- 396, 396, 433, 700, 429, 429, 429, 429, 371, 374,
- 562, 1023, 375, 975, 434, 435, 345, 346, 315, 436,
- 697, 437, 371, 372, 438, 376, 345, 346, 434, 1025,
- 571, 435, 569, 569, 569, 572, 701, 371, 378, 437,
- 397, 398, 1021, 371, 372, 376, 375, 438, 422, 422,
- 1019, 422, 422, 422, 422, 422, 422, 422, 422, 422,
-
- 422, 422, 422, 1056, 422, 422, 345, 346, 292, 577,
- 441, 422, 422, 422, 365, 371, 372, 780, 371, 372,
- 397, 398, 565, 565, 565, 565, 1055, 422, 371, 372,
- 578, 580, 580, 562, 381, 381, 381, 381, 926, 371,
- 372, 397, 398, 585, 381, 381, 381, 381, 586, 562,
- 781, 422, 422, 422, 422, 576, 422, 422, 422, 422,
- 422, 422, 422, 422, 422, 422, 422, 422, 1054, 422,
- 422, 576, 371, 372, 1053, 441, 422, 422, 422, 394,
- 371, 395, 394, 1052, 371, 372, 397, 400, 579, 579,
- 579, 579, 422, 371, 372, 581, 1051, 581, 442, 576,
-
- 582, 582, 582, 582, 394, 371, 395, 394, 983, 583,
- 583, 583, 391, 397, 404, 576, 422, 422, 540, 540,
- 540, 540, 401, 397, 404, 397, 398, 540, 540, 540,
- 397, 400, 401, 1050, 401, 784, 397, 400, 397, 398,
- 401, 540, 540, 540, 540, 540, 540, 297, 297, 1049,
- 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
- 297, 297, 1048, 297, 297, 397, 398, 402, 785, 316,
- 297, 297, 297, 402, 397, 398, 397, 398, 608, 608,
- 1047, 407, 407, 407, 407, 591, 297, 595, 1046, 595,
- 594, 594, 596, 596, 596, 596, 397, 398, 477, 477,
-
- 599, 420, 397, 421, 420, 600, 420, 397, 421, 420,
- 297, 297, 297, 297, 1045, 297, 297, 297, 543, 297,
- 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
- 297, 297, 297, 297, 297, 297, 297, 297, 544, 544,
- 544, 544, 544, 544, 544, 544, 544, 544, 544, 544,
- 544, 297, 544, 544, 544, 544, 544, 544, 544, 544,
- 544, 544, 544, 544, 544, 544, 544, 544, 544, 544,
- 544, 544, 544, 544, 544, 297, 297, 297, 297, 1044,
- 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
- 297, 297, 978, 297, 297, 397, 398, 340, 650, 316,
-
- 297, 297, 297, 397, 398, 979, 651, 397, 398, 652,
- 340, 407, 407, 407, 407, 1043, 297, 430, 430, 430,
- 430, 1042, 590, 597, 597, 597, 536, 536, 430, 430,
- 430, 430, 611, 611, 611, 545, 264, 265, 590, 604,
- 297, 297, 558, 558, 558, 558, 443, 1041, 443, 443,
- 592, 558, 558, 558, 609, 604, 609, 554, 554, 610,
- 610, 610, 610, 608, 608, 558, 558, 558, 558, 558,
- 558, 325, 325, 325, 325, 325, 325, 1040, 325, 325,
- 325, 325, 325, 325, 325, 325, 1018, 325, 325, 397,
- 398, 1039, 683, 341, 325, 325, 325, 246, 433, 1038,
-
- 429, 429, 429, 429, 292, 593, 593, 593, 593, 1037,
- 325, 435, 480, 480, 480, 436, 590, 444, 1036, 444,
- 444, 445, 445, 445, 445, 838, 839, 435, 446, 446,
- 446, 446, 590, 1035, 325, 325, 325, 325, 325, 325,
- 325, 325, 507, 325, 325, 325, 325, 325, 325, 325,
- 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
- 325, 325, 560, 560, 560, 560, 560, 560, 560, 560,
- 560, 560, 560, 560, 560, 325, 560, 560, 560, 560,
- 560, 560, 560, 560, 560, 560, 560, 560, 560, 560,
- 560, 560, 560, 560, 560, 560, 560, 560, 560, 325,
-
- 325, 325, 325, 325, 325, 325, 325, 1034, 325, 325,
- 325, 325, 325, 325, 325, 325, 1033, 325, 325, 607,
- 607, 607, 607, 341, 325, 325, 325, 539, 539, 539,
- 604, 447, 447, 447, 447, 448, 448, 448, 448, 984,
- 325, 985, 618, 417, 618, 417, 604, 619, 619, 619,
- 619, 476, 476, 476, 476, 479, 479, 479, 479, 561,
- 850, 851, 449, 1032, 325, 325, 345, 346, 479, 479,
- 479, 479, 245, 1017, 245, 557, 557, 557, 449, 246,
- 358, 246, 354, 354, 354, 354, 248, 245, 248, 245,
- 668, 245, 245, 360, 246, 246, 246, 361, 246, 246,
-
- 245, 248, 292, 248, 1016, 248, 248, 246, 245, 360,
- 345, 346, 325, 246, 248, 246, 670, 345, 346, 677,
- 292, 716, 248, 669, 345, 346, 570, 570, 570, 570,
- 921, 678, 245, 566, 566, 570, 570, 570, 679, 246,
- 345, 346, 680, 673, 689, 682, 248, 1021, 690, 570,
- 570, 570, 570, 570, 570, 344, 344, 345, 346, 344,
- 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
- 1015, 344, 344, 681, 724, 1014, 674, 366, 344, 344,
- 344, 524, 524, 524, 524, 523, 538, 538, 538, 538,
- 691, 1013, 691, 315, 344, 692, 692, 692, 692, 538,
-
- 538, 538, 538, 711, 1012, 711, 345, 726, 712, 712,
- 712, 712, 556, 556, 556, 556, 345, 346, 344, 344,
- 344, 344, 345, 346, 344, 344, 573, 344, 344, 344,
- 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
- 344, 344, 344, 344, 344, 344, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574, 574, 344,
- 574, 574, 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574, 574, 574,
- 574, 574, 574, 344, 344, 344, 344, 345, 346, 344,
- 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
-
- 696, 344, 344, 535, 535, 535, 535, 366, 344, 344,
- 344, 345, 346, 1011, 532, 553, 553, 553, 553, 556,
- 556, 556, 556, 986, 344, 700, 550, 440, 345, 346,
- 532, 345, 730, 697, 371, 372, 345, 346, 1010, 721,
- 727, 721, 550, 575, 722, 722, 722, 722, 344, 344,
- 371, 372, 565, 565, 565, 565, 345, 346, 701, 723,
- 611, 611, 611, 562, 384, 1009, 380, 380, 380, 380,
- 345, 346, 568, 568, 568, 568, 987, 386, 245, 562,
- 440, 387, 345, 346, 742, 246, 568, 568, 568, 568,
- 371, 372, 248, 386, 371, 372, 371, 748, 569, 569,
-
- 569, 739, 1020, 739, 1058, 745, 740, 740, 740, 740,
- 584, 584, 584, 584, 371, 372, 397, 398, 1008, 584,
- 584, 584, 345, 726, 371, 372, 727, 780, 345, 732,
- 580, 580, 733, 584, 584, 584, 584, 584, 584, 370,
- 370, 371, 372, 370, 370, 370, 370, 370, 370, 370,
- 370, 370, 370, 370, 1026, 370, 370, 371, 372, 728,
- 781, 392, 370, 370, 370, 734, 760, 345, 732, 371,
- 372, 1007, 741, 579, 579, 579, 579, 1006, 370, 371,
- 372, 397, 766, 1005, 576, 582, 582, 582, 582, 1004,
- 763, 610, 610, 610, 610, 582, 582, 582, 582, 391,
-
- 576, 1003, 370, 370, 370, 370, 371, 372, 370, 370,
- 587, 370, 370, 370, 370, 370, 370, 370, 370, 370,
- 370, 370, 370, 370, 370, 370, 370, 370, 370, 370,
- 588, 588, 588, 588, 588, 588, 588, 588, 588, 588,
- 588, 588, 588, 370, 588, 588, 588, 588, 588, 588,
- 588, 588, 588, 588, 588, 588, 588, 588, 588, 588,
- 588, 588, 588, 588, 588, 588, 588, 370, 370, 370,
- 370, 371, 372, 370, 370, 370, 370, 370, 370, 370,
- 370, 370, 370, 370, 1002, 370, 370, 371, 372, 397,
- 398, 392, 370, 370, 370, 1027, 345, 346, 397, 398,
-
- 573, 397, 398, 583, 583, 583, 371, 744, 370, 784,
- 745, 1001, 371, 750, 594, 594, 751, 596, 596, 596,
- 596, 397, 762, 246, 245, 763, 1000, 589, 397, 398,
- 292, 246, 370, 370, 397, 398, 999, 759, 248, 757,
- 391, 757, 785, 746, 758, 758, 758, 758, 410, 752,
- 406, 406, 406, 406, 998, 397, 398, 844, 764, 997,
- 325, 412, 397, 768, 670, 413, 769, 397, 398, 716,
- 996, 593, 593, 593, 593, 397, 398, 412, 397, 398,
- 371, 372, 590, 596, 596, 596, 596, 610, 610, 610,
- 610, 597, 597, 597, 598, 598, 598, 598, 590, 770,
-
- 371, 744, 245, 598, 598, 598, 775, 440, 775, 246,
- 936, 776, 776, 776, 776, 1022, 248, 598, 598, 598,
- 598, 598, 598, 396, 396, 397, 398, 396, 396, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 995, 396,
- 396, 607, 607, 607, 607, 418, 396, 396, 396, 371,
- 372, 837, 604, 619, 619, 619, 619, 619, 619, 619,
- 619, 340, 396, 692, 692, 692, 692, 994, 604, 692,
- 692, 692, 692, 712, 712, 712, 712, 712, 712, 712,
- 712, 371, 750, 397, 398, 993, 396, 396, 396, 396,
- 397, 398, 396, 396, 601, 396, 396, 396, 396, 396,
-
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 396, 396, 396, 396, 602, 602, 602, 602, 602, 602,
- 602, 602, 602, 602, 602, 602, 602, 396, 602, 602,
- 602, 602, 602, 602, 602, 602, 602, 602, 602, 602,
- 602, 602, 602, 602, 602, 602, 602, 602, 602, 602,
- 602, 396, 396, 396, 396, 397, 398, 396, 396, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 992, 396,
- 396, 988, 245, 245, 968, 418, 396, 396, 396, 246,
- 246, 245, 345, 346, 397, 762, 248, 248, 246, 246,
- 345, 346, 396, 345, 346, 248, 292, 967, 722, 722,
-
- 722, 722, 966, 345, 730, 965, 722, 722, 722, 722,
- 964, 603, 727, 834, 835, 963, 396, 396, 612, 612,
- 612, 612, 1022, 845, 1057, 836, 962, 612, 612, 612,
- 345, 346, 961, 371, 372, 960, 860, 587, 959, 371,
- 372, 612, 612, 612, 612, 612, 612, 422, 422, 958,
- 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
- 422, 422, 1028, 422, 422, 345, 730, 397, 398, 441,
- 422, 422, 422, 861, 727, 371, 372, 345, 726, 371,
- 372, 727, 864, 397, 768, 957, 422, 397, 398, 838,
- 265, 740, 740, 740, 740, 740, 740, 740, 740, 371,
-
- 748, 345, 346, 758, 758, 758, 758, 417, 745, 956,
- 422, 422, 422, 422, 728, 422, 422, 422, 615, 422,
- 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
- 422, 422, 422, 422, 422, 422, 422, 422, 616, 616,
- 616, 616, 616, 616, 616, 616, 616, 616, 616, 616,
- 616, 422, 616, 616, 616, 616, 616, 616, 616, 616,
- 616, 616, 616, 616, 616, 616, 616, 616, 616, 616,
- 616, 616, 616, 616, 616, 422, 422, 422, 422, 955,
- 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
- 422, 422, 1029, 422, 422, 371, 372, 371, 748, 441,
-
- 422, 422, 422, 1023, 397, 398, 745, 397, 398, 345,
- 726, 345, 732, 727, 954, 733, 422, 345, 732, 371,
- 744, 733, 953, 745, 371, 744, 371, 750, 745, 1030,
- 751, 1062, 397, 398, 952, 617, 601, 417, 865, 951,
- 422, 422, 540, 540, 540, 540, 728, 868, 734, 340,
- 869, 540, 540, 540, 734, 246, 746, 776, 776, 776,
- 776, 746, 292, 752, 950, 540, 540, 540, 540, 540,
- 540, 297, 297, 949, 297, 297, 297, 297, 297, 297,
- 297, 297, 297, 297, 297, 297, 948, 297, 297, 947,
- 397, 398, 922, 703, 297, 297, 297, 776, 776, 776,
-
- 776, 371, 750, 397, 766, 751, 758, 758, 758, 758,
- 297, 946, 763, 397, 766, 345, 346, 365, 929, 371,
- 372, 945, 763, 371, 372, 391, 931, 397, 398, 397,
- 398, 417, 933, 944, 297, 297, 297, 297, 752, 297,
- 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
- 297, 315, 297, 297, 315, 315, 315, 315, 316, 297,
- 297, 297, 315, 315, 315, 315, 315, 315, 315, 315,
- 315, 315, 315, 315, 315, 297, 315, 315, 315, 315,
- 315, 315, 704, 315, 315, 315, 705, 315, 315, 315,
- 315, 315, 315, 315, 315, 315, 315, 315, 315, 297,
-
- 297, 558, 558, 558, 558, 440, 935, 943, 245, 942,
- 558, 558, 558, 397, 762, 246, 941, 763, 940, 397,
- 762, 939, 248, 763, 558, 558, 558, 558, 558, 558,
- 325, 325, 325, 325, 325, 325, 938, 325, 325, 325,
- 325, 325, 325, 325, 325, 1030, 325, 325, 345, 346,
- 764, 246, 718, 325, 325, 325, 764, 919, 292, 245,
- 245, 1019, 937, 989, 397, 768, 246, 246, 769, 325,
- 371, 372, 246, 248, 248, 971, 990, 971, 971, 292,
- 850, 972, 991, 971, 920, 971, 971, 345, 346, 1024,
- 440, 1059, 915, 325, 325, 325, 325, 325, 325, 325,
-
- 325, 770, 325, 325, 325, 325, 325, 325, 325, 325,
- 340, 325, 325, 340, 340, 340, 340, 341, 325, 325,
- 325, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 325, 340, 340, 340, 340, 340,
- 340, 719, 340, 340, 340, 720, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 325, 325,
- 345, 346, 1018, 246, 1019, 914, 245, 913, 245, 912,
- 292, 397, 398, 246, 911, 246, 570, 570, 570, 570,
- 248, 910, 248, 245, 245, 570, 570, 570, 397, 768,
- 246, 246, 769, 973, 1031, 909, 908, 248, 248, 570,
-
- 570, 570, 570, 570, 570, 344, 344, 345, 346, 344,
- 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
- 969, 344, 344, 907, 245, 770, 916, 736, 344, 344,
- 344, 246, 345, 346, 1025, 371, 372, 1027, 248, 440,
- 906, 371, 372, 1026, 344, 1060, 397, 398, 1028, 905,
- 1061, 397, 398, 1029, 904, 903, 902, 901, 900, 899,
- 898, 894, 893, 918, 892, 891, 890, 889, 344, 344,
- 344, 344, 345, 346, 344, 344, 344, 344, 344, 344,
- 344, 344, 344, 344, 344, 365, 344, 344, 365, 365,
- 365, 365, 366, 344, 344, 344, 365, 365, 365, 365,
-
- 365, 365, 365, 365, 365, 365, 365, 365, 365, 344,
- 365, 365, 365, 365, 365, 365, 737, 365, 365, 365,
- 738, 365, 365, 365, 365, 365, 365, 365, 365, 365,
- 365, 365, 365, 344, 344, 371, 372, 888, 887, 886,
- 885, 884, 883, 882, 878, 877, 876, 875, 615, 780,
- 873, 584, 584, 584, 584, 872, 245, 871, 245, 867,
- 584, 584, 584, 246, 863, 246, 859, 507, 857, 856,
- 248, 853, 248, 852, 584, 584, 584, 584, 584, 584,
- 370, 370, 371, 372, 370, 370, 370, 370, 370, 370,
- 370, 370, 370, 370, 370, 970, 370, 370, 849, 543,
-
- 917, 696, 754, 370, 370, 370, 847, 846, 843, 842,
- 841, 840, 507, 676, 668, 833, 832, 831, 830, 370,
- 829, 828, 825, 824, 823, 822, 821, 820, 819, 818,
- 817, 816, 815, 814, 813, 812, 811, 810, 809, 808,
- 807, 806, 805, 370, 370, 370, 370, 371, 372, 370,
- 370, 370, 370, 370, 370, 370, 370, 370, 370, 370,
- 391, 370, 370, 391, 391, 391, 391, 392, 370, 370,
- 370, 391, 391, 391, 391, 391, 391, 391, 391, 391,
- 391, 391, 391, 391, 370, 391, 391, 391, 391, 391,
- 391, 755, 391, 391, 391, 756, 391, 391, 391, 391,
-
- 391, 391, 391, 391, 391, 391, 391, 391, 370, 370,
- 397, 398, 804, 803, 802, 801, 800, 799, 798, 797,
- 796, 795, 794, 793, 792, 791, 598, 598, 598, 598,
- 790, 780, 778, 777, 714, 598, 598, 598, 713, 708,
- 707, 706, 696, 694, 693, 688, 687, 686, 685, 598,
- 598, 598, 598, 598, 598, 396, 396, 397, 398, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 523, 396, 396, 650, 633, 629, 676, 772, 396, 396,
- 396, 671, 668, 666, 665, 664, 663, 662, 661, 660,
- 659, 658, 657, 656, 396, 655, 654, 653, 649, 648,
-
- 647, 646, 645, 644, 643, 642, 641, 640, 639, 638,
- 637, 636, 635, 632, 631, 628, 627, 626, 396, 396,
- 396, 396, 397, 398, 396, 396, 396, 396, 396, 396,
- 396, 396, 396, 396, 396, 417, 396, 396, 417, 417,
- 417, 417, 418, 396, 396, 396, 417, 417, 417, 417,
- 417, 417, 417, 417, 417, 417, 417, 417, 417, 396,
- 417, 417, 417, 417, 417, 417, 773, 417, 417, 417,
- 774, 417, 417, 417, 417, 417, 417, 417, 417, 417,
- 417, 417, 417, 396, 396, 612, 612, 612, 612, 625,
- 624, 623, 622, 621, 612, 612, 612, 620, 606, 605,
-
- 425, 552, 551, 548, 547, 546, 534, 533, 612, 612,
- 612, 612, 612, 612, 422, 422, 300, 422, 422, 422,
- 422, 422, 422, 422, 422, 422, 422, 422, 422, 507,
- 422, 422, 528, 527, 523, 495, 787, 422, 422, 422,
- 493, 469, 466, 464, 519, 455, 507, 292, 506, 500,
- 499, 496, 484, 422, 483, 482, 475, 474, 473, 470,
- 460, 457, 456, 453, 452, 451, 183, 439, 425, 423,
- 339, 292, 319, 314, 300, 298, 279, 422, 422, 422,
- 422, 183, 422, 422, 422, 422, 422, 422, 422, 422,
- 422, 422, 422, 422, 440, 422, 422, 440, 440, 440,
-
- 440, 441, 422, 422, 422, 440, 440, 440, 440, 440,
- 440, 440, 440, 440, 440, 440, 440, 440, 422, 440,
- 440, 440, 440, 440, 440, 788, 440, 440, 440, 789,
- 440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
- 440, 440, 422, 422, 297, 297, 279, 297, 297, 297,
- 297, 297, 297, 297, 297, 297, 297, 297, 297, 183,
- 297, 297, 190, 181, 1094, 1094, 703, 297, 297, 297,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 297, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 297, 297, 297,
- 297, 1094, 297, 297, 297, 297, 297, 297, 297, 297,
- 297, 297, 297, 297, 315, 297, 297, 315, 315, 315,
- 315, 316, 297, 297, 297, 315, 315, 315, 315, 315,
- 315, 315, 315, 315, 315, 315, 315, 315, 297, 315,
- 315, 315, 315, 315, 315, 315, 315, 315, 848, 315,
- 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
- 315, 315, 297, 297, 325, 325, 325, 325, 325, 325,
- 1094, 325, 325, 325, 325, 325, 325, 325, 325, 1094,
- 325, 325, 1094, 1094, 1094, 1094, 718, 325, 325, 325,
-
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 325, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 325, 325, 325,
- 325, 325, 325, 325, 325, 1094, 325, 325, 325, 325,
- 325, 325, 325, 325, 340, 325, 325, 340, 340, 340,
- 340, 341, 325, 325, 325, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 325, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 858, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
-
- 340, 340, 325, 325, 344, 344, 345, 346, 344, 344,
- 344, 344, 344, 344, 344, 344, 344, 344, 344, 1094,
- 344, 344, 1094, 1094, 1094, 1094, 736, 344, 344, 344,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 344, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 344, 344, 344,
- 344, 345, 346, 344, 344, 344, 344, 344, 344, 344,
- 344, 344, 344, 344, 365, 344, 344, 365, 365, 365,
- 365, 366, 344, 344, 344, 365, 365, 365, 365, 365,
-
- 365, 365, 365, 365, 365, 365, 365, 365, 344, 365,
- 365, 365, 365, 365, 365, 365, 365, 365, 862, 365,
- 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
- 365, 365, 344, 344, 370, 370, 371, 372, 370, 370,
- 370, 370, 370, 370, 370, 370, 370, 370, 370, 1094,
- 370, 370, 1094, 1094, 1094, 1094, 754, 370, 370, 370,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 370, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 370, 370, 370,
-
- 370, 371, 372, 370, 370, 370, 370, 370, 370, 370,
- 370, 370, 370, 370, 391, 370, 370, 391, 391, 391,
- 391, 392, 370, 370, 370, 391, 391, 391, 391, 391,
- 391, 391, 391, 391, 391, 391, 391, 391, 370, 391,
- 391, 391, 391, 391, 391, 391, 391, 391, 866, 391,
+ 216, 217, 202, 202, 202, 218, 221, 244, 197, 197,
+ 197, 197, 183, 244, 245, 244, 244, 259, 222, 223,
+ 245, 247, 245, 245, 459, 224, 460, 247, 225, 247,
+ 247, 461, 222, 462, 221, 223, 197, 197, 197, 197,
+
+ 263, 264, 244, 224, 626, 184, 627, 223, 447, 245,
+ 253, 225, 248, 248, 248, 248, 247, 260, 249, 256,
+ 448, 323, 1081, 223, 226, 193, 227, 252, 1080, 228,
+ 325, 244, 229, 230, 231, 232, 233, 234, 245, 244,
+ 235, 267, 236, 237, 1079, 247, 245, 261, 291, 261,
+ 261, 263, 264, 247, 244, 261, 180, 261, 261, 1078,
+ 245, 245, 179, 268, 180, 268, 268, 291, 247, 250,
+ 179, 342, 343, 265, 266, 251, 254, 196, 919, 197,
+ 197, 197, 197, 263, 264, 279, 226, 279, 279, 255,
+ 293, 254, 267, 1087, 275, 230, 231, 276, 277, 234,
+
+ 279, 180, 279, 279, 819, 237, 280, 281, 282, 280,
+ 419, 202, 269, 820, 202, 183, 202, 1077, 270, 271,
+ 272, 273, 480, 274, 267, 202, 202, 202, 342, 349,
+ 481, 202, 280, 281, 282, 280, 284, 346, 284, 285,
+ 284, 284, 196, 420, 197, 197, 197, 197, 184, 200,
+ 200, 200, 200, 221, 1076, 197, 197, 197, 197, 294,
+ 281, 295, 294, 622, 245, 291, 223, 292, 292, 292,
+ 292, 291, 294, 281, 295, 294, 287, 288, 367, 368,
+ 623, 289, 223, 302, 1075, 303, 303, 303, 303, 304,
+ 304, 304, 304, 918, 316, 296, 316, 316, 316, 297,
+
+ 316, 316, 296, 487, 322, 296, 322, 322, 488, 296,
+ 200, 200, 200, 200, 367, 368, 340, 305, 340, 340,
+ 296, 306, 307, 1074, 303, 303, 303, 303, 296, 320,
+ 320, 320, 320, 323, 308, 309, 342, 343, 318, 1073,
+ 323, 310, 319, 323, 311, 392, 393, 323, 308, 1072,
+ 326, 309, 327, 327, 327, 327, 464, 360, 323, 310,
+ 364, 342, 365, 364, 392, 393, 323, 311, 296, 296,
+ 465, 296, 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 291, 296, 296, 328, 328, 328, 328,
+ 314, 296, 296, 296, 313, 221, 917, 320, 320, 320,
+
+ 320, 367, 374, 342, 343, 454, 969, 296, 223, 455,
+ 371, 342, 345, 456, 329, 346, 245, 350, 330, 351,
+ 351, 351, 351, 291, 223, 364, 342, 365, 364, 470,
+ 470, 296, 296, 296, 296, 291, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296, 347, 296,
+ 296, 342, 343, 367, 368, 314, 296, 296, 296, 389,
+ 367, 390, 389, 389, 367, 390, 389, 352, 352, 352,
+ 352, 542, 296, 337, 385, 921, 367, 370, 315, 341,
+ 371, 392, 395, 392, 399, 396, 341, 478, 479, 341,
+ 367, 368, 396, 341, 1071, 353, 296, 296, 331, 354,
+
+ 327, 327, 327, 327, 341, 1017, 377, 377, 377, 377,
+ 332, 333, 341, 372, 367, 368, 361, 334, 397, 923,
+ 335, 392, 393, 436, 332, 436, 436, 333, 375, 299,
+ 376, 376, 376, 376, 378, 334, 494, 437, 379, 437,
+ 437, 495, 410, 335, 323, 323, 323, 323, 323, 323,
+ 361, 323, 323, 323, 323, 323, 323, 323, 323, 1070,
+ 323, 323, 300, 366, 497, 498, 338, 323, 323, 323,
+ 366, 244, 391, 366, 1069, 392, 393, 366, 245, 391,
+ 263, 264, 391, 323, 1068, 247, 391, 522, 366, 400,
+ 1067, 401, 401, 401, 401, 523, 366, 391, 414, 392,
+
+ 415, 414, 473, 473, 473, 391, 1011, 323, 323, 323,
+ 323, 323, 323, 323, 323, 291, 323, 323, 323, 323,
+ 323, 323, 323, 323, 291, 323, 323, 414, 392, 415,
+ 414, 338, 323, 323, 323, 424, 424, 424, 424, 392,
+ 393, 422, 847, 423, 423, 423, 423, 482, 323, 263,
+ 264, 483, 416, 419, 339, 402, 402, 402, 402, 416,
+ 263, 264, 416, 425, 1018, 484, 416, 426, 436, 417,
+ 436, 436, 323, 323, 342, 343, 454, 416, 1019, 178,
+ 455, 178, 178, 403, 513, 416, 420, 404, 355, 1066,
+ 351, 351, 351, 351, 179, 438, 438, 438, 438, 661,
+
+ 356, 357, 439, 439, 439, 439, 494, 358, 244, 361,
+ 359, 495, 263, 264, 356, 245, 666, 357, 440, 440,
+ 440, 440, 247, 386, 496, 358, 441, 441, 441, 441,
+ 263, 264, 662, 359, 341, 341, 342, 343, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 667,
+ 341, 341, 200, 200, 200, 200, 362, 341, 341, 341,
+ 1011, 221, 1050, 197, 197, 197, 197, 200, 200, 200,
+ 200, 478, 514, 341, 223, 471, 1065, 471, 442, 244,
+ 472, 472, 472, 472, 529, 529, 245, 511, 1064, 268,
+ 223, 268, 268, 247, 442, 547, 547, 341, 341, 341,
+
+ 341, 342, 343, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 291, 341, 341, 261, 1063, 261,
+ 261, 362, 341, 341, 341, 469, 469, 469, 469, 503,
+ 1062, 279, 179, 279, 279, 244, 442, 970, 341, 532,
+ 532, 532, 245, 244, 363, 502, 502, 502, 502, 247,
+ 245, 245, 442, 244, 244, 342, 343, 247, 291, 244,
+ 245, 245, 341, 341, 367, 368, 245, 247, 247, 534,
+ 244, 494, 244, 247, 535, 689, 552, 245, 380, 245,
+ 376, 376, 376, 376, 247, 316, 247, 316, 316, 507,
+ 381, 382, 1061, 504, 524, 505, 506, 383, 1060, 322,
+
+ 384, 322, 322, 340, 381, 340, 340, 382, 690, 508,
+ 280, 281, 282, 280, 510, 383, 342, 343, 509, 280,
+ 281, 282, 280, 384, 366, 366, 367, 368, 366, 366,
+ 366, 366, 366, 366, 366, 366, 366, 366, 366, 1059,
+ 366, 366, 294, 281, 295, 294, 387, 366, 366, 366,
+ 517, 517, 517, 517, 516, 245, 342, 343, 292, 292,
+ 292, 292, 291, 366, 294, 281, 295, 294, 304, 304,
+ 304, 304, 530, 1058, 530, 342, 345, 531, 531, 531,
+ 531, 328, 328, 328, 328, 342, 343, 366, 366, 366,
+ 366, 367, 368, 366, 366, 366, 366, 366, 366, 366,
+
+ 366, 366, 366, 366, 291, 366, 366, 550, 550, 550,
+ 606, 387, 366, 366, 366, 607, 307, 1057, 303, 303,
+ 303, 303, 304, 304, 304, 304, 342, 345, 366, 309,
+ 346, 848, 556, 525, 388, 528, 528, 528, 528, 323,
+ 342, 345, 967, 193, 346, 309, 525, 313, 325, 525,
+ 367, 368, 366, 366, 392, 393, 221, 1056, 320, 320,
+ 320, 320, 525, 347, 328, 328, 328, 328, 405, 223,
+ 401, 401, 401, 401, 1013, 543, 1051, 347, 367, 368,
+ 406, 407, 973, 342, 349, 223, 361, 408, 342, 343,
+ 409, 543, 346, 548, 406, 548, 693, 407, 549, 549,
+
+ 549, 549, 342, 349, 1024, 408, 364, 342, 365, 364,
+ 1016, 346, 1020, 409, 391, 391, 392, 393, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391, 391, 694,
+ 391, 391, 367, 368, 1014, 557, 412, 391, 391, 391,
+ 1015, 331, 1050, 327, 327, 327, 327, 546, 546, 546,
+ 546, 342, 343, 391, 333, 342, 343, 386, 543, 1012,
+ 342, 343, 367, 370, 564, 1049, 371, 559, 559, 565,
+ 333, 562, 562, 562, 543, 367, 370, 391, 391, 391,
+ 391, 392, 393, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 1048, 391, 391, 342, 343, 372,
+
+ 773, 412, 391, 391, 391, 364, 342, 365, 364, 342,
+ 343, 367, 374, 352, 352, 352, 352, 291, 391, 1047,
+ 371, 342, 343, 355, 413, 351, 351, 351, 351, 392,
+ 393, 974, 560, 774, 560, 361, 357, 561, 561, 561,
+ 561, 702, 391, 391, 427, 703, 423, 423, 423, 423,
+ 367, 370, 357, 777, 371, 661, 428, 429, 367, 374,
+ 367, 368, 1012, 430, 367, 368, 431, 371, 367, 368,
+ 428, 367, 368, 429, 392, 393, 377, 377, 377, 377,
+ 291, 430, 392, 393, 573, 573, 778, 372, 662, 431,
+ 416, 416, 1046, 416, 416, 416, 416, 416, 416, 416,
+
+ 416, 416, 416, 416, 416, 968, 416, 416, 342, 343,
+ 313, 570, 434, 416, 416, 416, 392, 395, 571, 367,
+ 368, 367, 368, 578, 352, 352, 352, 352, 579, 416,
+ 342, 343, 574, 386, 574, 555, 925, 575, 575, 575,
+ 575, 389, 367, 390, 389, 971, 558, 558, 558, 558,
+ 337, 555, 666, 416, 416, 416, 416, 555, 416, 416,
+ 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
+ 1045, 416, 416, 555, 367, 368, 1044, 434, 416, 416,
+ 416, 389, 367, 390, 389, 667, 367, 368, 380, 1043,
+ 376, 376, 376, 376, 416, 392, 395, 367, 368, 396,
+
+ 435, 382, 576, 576, 576, 392, 395, 601, 601, 396,
+ 604, 604, 604, 377, 377, 377, 377, 382, 416, 416,
+ 533, 533, 533, 533, 569, 392, 399, 392, 399, 533,
+ 533, 533, 397, 1042, 396, 436, 396, 436, 436, 1041,
+ 569, 1013, 397, 533, 533, 533, 533, 533, 533, 296,
+ 296, 1040, 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 1021, 296, 296, 367, 368, 392,
+ 393, 314, 296, 296, 296, 392, 393, 470, 470, 392,
+ 393, 529, 529, 572, 572, 572, 572, 313, 296, 392,
+ 393, 587, 587, 1039, 569, 402, 402, 402, 402, 1038,
+
+ 588, 437, 588, 437, 437, 589, 589, 589, 589, 411,
+ 569, 1037, 296, 296, 296, 296, 584, 296, 296, 296,
+ 536, 296, 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296, 296, 296,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 296, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 296, 296, 296,
+ 296, 1036, 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 1035, 296, 296, 392, 393, 689,
+
+ 245, 314, 296, 296, 296, 392, 393, 291, 323, 392,
+ 393, 405, 663, 401, 401, 401, 401, 709, 296, 392,
+ 393, 590, 590, 590, 407, 402, 402, 402, 402, 392,
+ 393, 682, 690, 592, 972, 683, 583, 538, 593, 337,
+ 407, 1034, 296, 296, 551, 551, 551, 551, 414, 392,
+ 415, 414, 583, 551, 551, 551, 414, 392, 415, 414,
+ 424, 424, 424, 424, 547, 547, 585, 551, 551, 551,
+ 551, 551, 551, 323, 323, 323, 323, 323, 323, 1033,
+ 323, 323, 323, 323, 323, 323, 323, 323, 1011, 323,
+ 323, 392, 393, 601, 601, 338, 323, 323, 323, 245,
+
+ 427, 1032, 423, 423, 423, 423, 291, 586, 586, 586,
+ 586, 975, 323, 429, 602, 386, 602, 1031, 583, 603,
+ 603, 603, 603, 438, 438, 438, 438, 831, 832, 429,
+ 439, 439, 439, 439, 583, 1030, 323, 323, 323, 323,
+ 323, 323, 323, 323, 500, 323, 323, 323, 323, 323,
+ 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
+ 323, 323, 323, 323, 553, 553, 553, 553, 553, 553,
+ 553, 553, 553, 553, 553, 553, 553, 323, 553, 553,
+ 553, 553, 553, 553, 553, 553, 553, 553, 553, 553,
+ 553, 553, 553, 553, 553, 553, 553, 553, 553, 553,
+
+ 553, 323, 323, 323, 323, 323, 323, 323, 323, 1029,
+ 323, 323, 323, 323, 323, 323, 323, 323, 1028, 323,
+ 323, 424, 424, 424, 424, 338, 323, 323, 323, 473,
+ 473, 473, 597, 600, 600, 600, 600, 440, 440, 440,
+ 440, 1027, 323, 976, 597, 263, 264, 386, 597, 441,
+ 441, 441, 441, 472, 472, 472, 472, 611, 1026, 611,
+ 597, 554, 612, 612, 612, 612, 323, 323, 342, 343,
+ 469, 469, 469, 469, 472, 472, 472, 472, 342, 343,
+ 643, 442, 244, 1025, 563, 563, 563, 563, 644, 245,
+ 1010, 645, 244, 563, 563, 563, 247, 442, 693, 245,
+
+ 1009, 676, 531, 531, 531, 531, 247, 563, 563, 563,
+ 563, 563, 563, 341, 341, 342, 343, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 717, 341,
+ 341, 694, 244, 244, 244, 362, 341, 341, 341, 245,
+ 245, 245, 531, 531, 531, 531, 247, 247, 247, 532,
+ 532, 532, 341, 517, 517, 517, 517, 516, 684, 1008,
+ 684, 843, 844, 685, 685, 685, 685, 549, 549, 549,
+ 549, 550, 550, 550, 671, 1007, 341, 341, 341, 341,
+ 342, 343, 341, 341, 566, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+
+ 341, 341, 341, 341, 567, 567, 567, 567, 567, 567,
+ 567, 567, 567, 567, 567, 567, 567, 341, 567, 567,
+ 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
+ 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
+ 567, 341, 341, 341, 341, 342, 343, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 1006, 341,
+ 341, 342, 343, 244, 1005, 362, 341, 341, 341, 244,
+ 245, 342, 343, 244, 342, 719, 245, 247, 411, 244,
+ 245, 927, 341, 247, 367, 368, 245, 247, 549, 549,
+ 549, 549, 1022, 247, 528, 528, 528, 528, 392, 393,
+
+ 1023, 568, 1055, 244, 674, 525, 341, 341, 367, 368,
+ 245, 672, 342, 343, 670, 673, 675, 247, 1004, 716,
+ 1003, 525, 342, 723, 577, 577, 577, 577, 559, 559,
+ 1002, 720, 734, 577, 577, 577, 704, 411, 704, 367,
+ 368, 705, 705, 705, 705, 1014, 752, 577, 577, 577,
+ 577, 577, 577, 366, 366, 367, 368, 366, 366, 366,
+ 366, 366, 366, 366, 366, 366, 366, 366, 1001, 366,
+ 366, 546, 546, 546, 546, 387, 366, 366, 366, 604,
+ 604, 604, 543, 342, 343, 1000, 323, 342, 343, 735,
+ 663, 313, 366, 977, 714, 709, 714, 411, 543, 715,
+
+ 715, 715, 715, 561, 561, 561, 561, 768, 999, 768,
+ 342, 343, 769, 769, 769, 769, 366, 366, 366, 366,
+ 367, 368, 366, 366, 580, 366, 366, 366, 366, 366,
+ 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+ 366, 366, 366, 366, 581, 581, 581, 581, 581, 581,
+ 581, 581, 581, 581, 581, 581, 581, 366, 581, 581,
+ 581, 581, 581, 581, 581, 581, 581, 581, 581, 581,
+ 581, 581, 581, 581, 581, 581, 581, 581, 581, 581,
+ 581, 366, 366, 366, 366, 367, 368, 366, 366, 366,
+ 366, 366, 366, 366, 366, 366, 366, 366, 998, 366,
+
+ 366, 342, 343, 367, 741, 387, 366, 366, 366, 342,
+ 343, 997, 738, 342, 343, 392, 759, 558, 558, 558,
+ 558, 773, 366, 996, 756, 562, 562, 562, 555, 561,
+ 561, 561, 561, 342, 719, 342, 725, 720, 244, 726,
+ 995, 582, 367, 368, 555, 245, 366, 366, 392, 393,
+ 342, 725, 247, 732, 774, 732, 367, 368, 733, 733,
+ 733, 733, 367, 368, 591, 591, 591, 591, 367, 368,
+ 721, 994, 727, 591, 591, 591, 367, 737, 573, 573,
+ 738, 392, 393, 993, 576, 576, 576, 591, 591, 591,
+ 591, 591, 591, 391, 391, 392, 393, 391, 391, 391,
+
+ 391, 391, 391, 391, 391, 391, 391, 391, 1023, 391,
+ 391, 367, 368, 739, 245, 412, 391, 391, 391, 392,
+ 393, 291, 777, 367, 368, 367, 737, 572, 572, 572,
+ 572, 753, 391, 367, 368, 587, 587, 992, 569, 575,
+ 575, 575, 575, 603, 603, 603, 603, 991, 837, 575,
+ 575, 575, 575, 433, 569, 778, 391, 391, 391, 391,
+ 392, 393, 391, 391, 594, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 595, 595, 595, 595, 595, 595,
+ 595, 595, 595, 595, 595, 595, 595, 391, 595, 595,
+
+ 595, 595, 595, 595, 595, 595, 595, 595, 595, 595,
+ 595, 595, 595, 595, 595, 595, 595, 595, 595, 595,
+ 595, 391, 391, 391, 391, 392, 393, 391, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391, 990, 391,
+ 391, 603, 603, 603, 603, 412, 391, 391, 391, 989,
+ 392, 393, 367, 368, 988, 367, 743, 392, 393, 744,
+ 987, 750, 391, 750, 367, 743, 751, 751, 751, 751,
+ 342, 723, 986, 586, 586, 586, 586, 392, 393, 720,
+ 985, 596, 392, 393, 583, 981, 391, 391, 605, 605,
+ 605, 605, 745, 589, 589, 589, 589, 605, 605, 605,
+
+ 583, 392, 755, 245, 1015, 756, 612, 612, 612, 612,
+ 291, 605, 605, 605, 605, 605, 605, 416, 416, 961,
+ 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
+ 416, 416, 1016, 416, 416, 392, 393, 838, 757, 434,
+ 416, 416, 416, 392, 393, 960, 600, 600, 600, 600,
+ 337, 589, 589, 589, 589, 433, 416, 597, 929, 590,
+ 590, 590, 612, 612, 612, 612, 685, 685, 685, 685,
+ 342, 723, 959, 597, 685, 685, 685, 685, 337, 720,
+ 416, 416, 416, 416, 958, 416, 416, 416, 608, 416,
+ 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
+
+ 416, 416, 416, 416, 416, 416, 416, 416, 609, 609,
+ 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
+ 609, 416, 609, 609, 609, 609, 609, 609, 609, 609,
+ 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
+ 609, 609, 609, 609, 609, 416, 416, 416, 416, 957,
+ 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
+ 416, 416, 956, 416, 416, 392, 755, 244, 244, 434,
+ 416, 416, 416, 955, 245, 245, 392, 393, 244, 392,
+ 761, 247, 247, 762, 244, 245, 416, 705, 705, 705,
+ 705, 245, 247, 705, 705, 705, 705, 954, 247, 342,
+
+ 343, 342, 343, 566, 953, 610, 392, 761, 827, 828,
+ 416, 416, 533, 533, 533, 533, 763, 715, 715, 715,
+ 715, 533, 533, 533, 342, 343, 1024, 830, 829, 342,
+ 343, 769, 769, 769, 769, 533, 533, 533, 533, 533,
+ 533, 296, 296, 952, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 951, 296, 296, 342,
+ 343, 367, 741, 696, 296, 296, 296, 853, 367, 368,
+ 738, 433, 854, 367, 368, 715, 715, 715, 715, 978,
+ 296, 831, 264, 411, 733, 733, 733, 733, 950, 733,
+ 733, 733, 733, 367, 741, 367, 368, 392, 393, 580,
+
+ 949, 594, 738, 948, 296, 296, 296, 296, 947, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 313, 296, 296, 313, 313, 313, 313, 314, 296,
+ 296, 296, 313, 313, 313, 313, 313, 313, 313, 313,
+ 313, 313, 313, 313, 313, 296, 313, 313, 313, 313,
+ 313, 313, 697, 313, 313, 313, 698, 313, 313, 313,
+ 313, 313, 313, 313, 313, 313, 313, 313, 313, 296,
+ 296, 551, 551, 551, 551, 367, 368, 946, 367, 368,
+ 551, 551, 551, 342, 719, 342, 343, 720, 945, 342,
+ 719, 342, 343, 720, 551, 551, 551, 551, 551, 551,
+
+ 323, 323, 323, 323, 323, 323, 944, 323, 323, 323,
+ 323, 323, 323, 323, 323, 888, 323, 323, 857, 943,
+ 721, 858, 711, 323, 323, 323, 721, 392, 393, 979,
+ 889, 392, 393, 433, 342, 725, 890, 942, 726, 323,
+ 361, 922, 941, 751, 751, 751, 751, 751, 751, 751,
+ 751, 392, 759, 392, 759, 769, 769, 769, 769, 940,
+ 756, 939, 756, 323, 323, 323, 323, 323, 323, 323,
+ 323, 727, 323, 323, 323, 323, 323, 323, 323, 323,
+ 337, 323, 323, 337, 337, 337, 337, 338, 323, 323,
+ 323, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+
+ 337, 337, 337, 337, 323, 337, 337, 337, 337, 337,
+ 337, 712, 337, 337, 337, 713, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 337, 337, 337, 323, 323,
+ 342, 343, 245, 367, 368, 367, 368, 386, 924, 291,
+ 392, 393, 392, 393, 411, 926, 563, 563, 563, 563,
+ 392, 393, 938, 392, 393, 563, 563, 563, 342, 725,
+ 433, 928, 726, 937, 367, 737, 936, 914, 738, 563,
+ 563, 563, 563, 563, 563, 341, 341, 342, 343, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 872, 341, 341, 861, 935, 727, 862, 729, 341, 341,
+
+ 341, 739, 980, 873, 244, 244, 433, 982, 934, 874,
+ 933, 245, 245, 964, 341, 964, 964, 1011, 247, 247,
+ 983, 244, 964, 932, 964, 964, 984, 931, 245, 342,
+ 343, 1017, 930, 1052, 843, 247, 342, 343, 341, 341,
+ 341, 341, 342, 343, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 361, 341, 341, 361, 361,
+ 361, 361, 362, 341, 341, 341, 361, 361, 361, 361,
+ 361, 361, 361, 361, 361, 361, 361, 361, 361, 341,
+ 361, 361, 361, 361, 361, 361, 730, 361, 361, 361,
+ 731, 361, 361, 361, 361, 361, 361, 361, 361, 361,
+
+ 361, 361, 361, 341, 341, 367, 368, 913, 245, 1012,
+ 908, 245, 907, 244, 906, 291, 367, 368, 291, 905,
+ 245, 577, 577, 577, 577, 392, 393, 247, 244, 904,
+ 577, 577, 577, 367, 737, 245, 903, 738, 965, 367,
+ 743, 966, 247, 744, 577, 577, 577, 577, 577, 577,
+ 366, 366, 367, 368, 366, 366, 366, 366, 366, 366,
+ 366, 366, 366, 366, 366, 902, 366, 366, 1012, 901,
+ 739, 244, 747, 366, 366, 366, 745, 912, 245, 245,
+ 342, 343, 1018, 900, 899, 247, 291, 898, 897, 366,
+ 367, 368, 1019, 896, 1053, 367, 368, 1020, 392, 393,
+
+ 1021, 895, 1054, 392, 393, 1022, 894, 893, 892, 891,
+ 911, 887, 886, 366, 366, 366, 366, 367, 368, 366,
+ 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
+ 386, 366, 366, 386, 386, 386, 386, 387, 366, 366,
+ 366, 386, 386, 386, 386, 386, 386, 386, 386, 386,
+ 386, 386, 386, 386, 366, 386, 386, 386, 386, 386,
+ 386, 748, 386, 386, 386, 749, 386, 386, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386, 366, 366,
+ 392, 393, 885, 884, 883, 882, 881, 880, 879, 878,
+ 877, 876, 875, 871, 870, 869, 591, 591, 591, 591,
+
+ 868, 608, 773, 245, 866, 591, 591, 591, 367, 743,
+ 291, 865, 744, 864, 392, 755, 860, 856, 756, 591,
+ 591, 591, 591, 591, 591, 391, 391, 392, 393, 391,
391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
- 391, 391, 370, 370, 396, 396, 397, 398, 396, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 1094,
- 396, 396, 1094, 1094, 1094, 1094, 772, 396, 396, 396,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
-
- 1094, 1094, 1094, 396, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 396, 396, 396,
- 396, 397, 398, 396, 396, 396, 396, 396, 396, 396,
- 396, 396, 396, 396, 417, 396, 396, 417, 417, 417,
- 417, 418, 396, 396, 396, 417, 417, 417, 417, 417,
- 417, 417, 417, 417, 417, 417, 417, 417, 396, 417,
- 417, 417, 417, 417, 417, 417, 417, 417, 870, 417,
- 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
- 417, 417, 396, 396, 422, 422, 1094, 422, 422, 422,
-
- 422, 422, 422, 422, 422, 422, 422, 422, 422, 1094,
- 422, 422, 1094, 1094, 1094, 1094, 787, 422, 422, 422,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 422, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 422, 422, 422,
- 422, 1094, 422, 422, 422, 422, 422, 422, 422, 422,
- 422, 422, 422, 422, 440, 422, 422, 440, 440, 440,
- 440, 441, 422, 422, 422, 440, 440, 440, 440, 440,
- 440, 440, 440, 440, 440, 440, 440, 440, 422, 440,
-
- 440, 440, 440, 440, 440, 440, 440, 440, 874, 440,
- 440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
- 440, 440, 422, 422, 297, 297, 1094, 297, 297, 297,
- 297, 297, 297, 297, 297, 297, 297, 297, 297, 315,
- 297, 297, 315, 315, 315, 315, 316, 297, 297, 297,
- 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
- 315, 315, 315, 297, 315, 315, 315, 315, 315, 315,
- 315, 315, 315, 315, 923, 315, 315, 315, 315, 315,
- 315, 315, 315, 315, 315, 315, 315, 297, 297, 325,
- 325, 325, 325, 325, 325, 1094, 325, 325, 325, 325,
-
- 325, 325, 325, 325, 340, 325, 325, 340, 340, 340,
- 340, 341, 325, 325, 325, 340, 340, 340, 340, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 325, 340,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 927,
- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
- 340, 340, 325, 325, 182, 1094, 182, 182, 182, 182,
- 182, 182, 182, 182, 182, 185, 1094, 1094, 185, 185,
- 193, 1094, 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 247, 247, 247, 247, 247, 247, 247, 247, 263,
- 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
-
- 284, 284, 284, 284, 287, 1094, 287, 1094, 287, 287,
- 287, 287, 291, 291, 291, 291, 291, 291, 291, 297,
- 1094, 297, 297, 297, 297, 297, 297, 297, 297, 297,
- 299, 1094, 299, 299, 299, 299, 299, 299, 299, 299,
- 299, 302, 1094, 302, 302, 302, 302, 302, 302, 302,
- 302, 302, 315, 1094, 315, 315, 315, 315, 315, 315,
- 315, 315, 315, 246, 246, 246, 246, 246, 246, 246,
- 325, 325, 1094, 325, 325, 325, 325, 325, 325, 325,
- 325, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 326, 340, 340, 1094, 340, 340, 340, 340, 340,
-
- 340, 340, 340, 344, 344, 344, 344, 344, 344, 344,
- 344, 344, 344, 344, 347, 347, 347, 347, 347, 347,
- 347, 347, 347, 347, 347, 351, 351, 351, 351, 351,
- 351, 351, 351, 351, 351, 351, 365, 365, 365, 365,
- 365, 365, 365, 365, 365, 365, 365, 370, 370, 370,
- 370, 370, 370, 370, 370, 370, 370, 370, 373, 373,
- 373, 373, 373, 373, 373, 373, 373, 373, 373, 377,
- 377, 377, 377, 377, 377, 377, 377, 377, 377, 377,
+ 915, 391, 391, 852, 500, 745, 244, 765, 391, 391,
+ 391, 757, 850, 245, 849, 846, 845, 842, 536, 689,
+ 247, 840, 839, 836, 391, 835, 834, 833, 500, 669,
+ 661, 826, 825, 824, 823, 822, 821, 818, 817, 816,
+ 815, 814, 813, 962, 812, 811, 810, 809, 391, 391,
+ 391, 391, 392, 393, 391, 391, 391, 391, 391, 391,
+
+ 391, 391, 391, 391, 391, 411, 391, 391, 411, 411,
+ 411, 411, 412, 391, 391, 391, 411, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411, 411, 391,
+ 411, 411, 411, 411, 411, 411, 766, 411, 411, 411,
+ 767, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 391, 391, 605, 605, 605, 605, 808,
+ 807, 806, 244, 805, 605, 605, 605, 392, 755, 245,
+ 804, 756, 803, 392, 761, 802, 247, 762, 605, 605,
+ 605, 605, 605, 605, 416, 416, 801, 416, 416, 416,
+ 416, 416, 416, 416, 416, 416, 416, 416, 416, 963,
+
+ 416, 416, 800, 799, 757, 798, 780, 416, 416, 416,
+ 763, 797, 796, 795, 392, 761, 794, 793, 762, 792,
+ 791, 790, 789, 416, 788, 787, 786, 785, 784, 783,
+ 773, 771, 770, 707, 706, 701, 700, 699, 689, 687,
+ 686, 681, 680, 679, 678, 516, 643, 416, 416, 416,
+ 416, 763, 416, 416, 416, 416, 416, 416, 416, 416,
+ 416, 416, 416, 416, 433, 416, 416, 433, 433, 433,
+ 433, 434, 416, 416, 416, 433, 433, 433, 433, 433,
+ 433, 433, 433, 433, 433, 433, 433, 433, 416, 433,
+ 433, 433, 433, 433, 433, 781, 433, 433, 433, 782,
+
+ 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
+ 433, 433, 416, 416, 296, 296, 626, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296, 296, 622,
+ 296, 296, 669, 244, 664, 661, 696, 296, 296, 296,
+ 245, 659, 658, 657, 656, 655, 654, 247, 653, 652,
+ 651, 650, 649, 296, 648, 647, 646, 642, 641, 640,
+ 639, 638, 637, 636, 635, 634, 633, 632, 631, 630,
+ 629, 628, 625, 624, 621, 909, 620, 296, 296, 296,
+ 296, 619, 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 313, 296, 296, 313, 313, 313,
+
+ 313, 314, 296, 296, 296, 313, 313, 313, 313, 313,
+ 313, 313, 313, 313, 313, 313, 313, 313, 296, 313,
+ 313, 313, 313, 313, 313, 313, 313, 313, 841, 313,
+ 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
+ 313, 313, 296, 296, 323, 323, 323, 323, 323, 323,
+ 618, 323, 323, 323, 323, 323, 323, 323, 323, 617,
+ 323, 323, 616, 615, 614, 613, 711, 323, 323, 323,
+ 599, 244, 598, 419, 545, 544, 541, 540, 245, 539,
+ 527, 526, 299, 323, 500, 247, 521, 520, 516, 488,
+ 486, 462, 459, 457, 512, 448, 500, 291, 499, 493,
+
+ 492, 489, 477, 476, 475, 468, 467, 323, 323, 323,
+ 323, 323, 323, 323, 323, 910, 323, 323, 323, 323,
+ 323, 323, 323, 323, 337, 323, 323, 337, 337, 337,
+ 337, 338, 323, 323, 323, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 337, 337, 337, 323, 337,
+ 337, 337, 337, 337, 337, 337, 337, 337, 851, 337,
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 323, 323, 341, 341, 342, 343, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 466,
+ 341, 341, 463, 453, 450, 449, 729, 341, 341, 341,
+
+ 446, 445, 444, 183, 432, 419, 417, 336, 291, 317,
+ 312, 299, 297, 341, 278, 183, 278, 183, 190, 181,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 341, 341, 341,
+ 341, 342, 343, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 361, 341, 341, 361, 361, 361,
+ 361, 362, 341, 341, 341, 361, 361, 361, 361, 361,
+ 361, 361, 361, 361, 361, 361, 361, 361, 341, 361,
+ 361, 361, 361, 361, 361, 361, 361, 361, 855, 361,
+ 361, 361, 361, 361, 361, 361, 361, 361, 361, 361,
+
+ 361, 361, 341, 341, 366, 366, 367, 368, 366, 366,
+ 366, 366, 366, 366, 366, 366, 366, 366, 366, 1087,
+ 366, 366, 1087, 1087, 1087, 1087, 747, 366, 366, 366,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 366, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 366, 366, 366,
+ 366, 367, 368, 366, 366, 366, 366, 366, 366, 366,
+ 366, 366, 366, 366, 386, 366, 366, 386, 386, 386,
+ 386, 387, 366, 366, 366, 386, 386, 386, 386, 386,
+
+ 386, 386, 386, 386, 386, 386, 386, 386, 366, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386, 859, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
+ 386, 386, 366, 366, 391, 391, 392, 393, 391, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391, 391, 1087,
+ 391, 391, 1087, 1087, 1087, 1087, 765, 391, 391, 391,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 391, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 391, 391, 391,
+
+ 391, 392, 393, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 391, 391, 411, 391, 391, 411, 411, 411,
+ 411, 412, 391, 391, 391, 411, 411, 411, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411, 391, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411, 863, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 391, 391, 416, 416, 1087, 416, 416, 416,
+ 416, 416, 416, 416, 416, 416, 416, 416, 416, 1087,
+ 416, 416, 1087, 1087, 1087, 1087, 780, 416, 416, 416,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+ 1087, 1087, 1087, 416, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 416, 416, 416,
+ 416, 1087, 416, 416, 416, 416, 416, 416, 416, 416,
+ 416, 416, 416, 416, 433, 416, 416, 433, 433, 433,
+ 433, 434, 416, 416, 416, 433, 433, 433, 433, 433,
+ 433, 433, 433, 433, 433, 433, 433, 433, 416, 433,
+ 433, 433, 433, 433, 433, 433, 433, 433, 867, 433,
+ 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
+ 433, 433, 416, 416, 296, 296, 1087, 296, 296, 296,
+
+ 296, 296, 296, 296, 296, 296, 296, 296, 296, 313,
+ 296, 296, 313, 313, 313, 313, 314, 296, 296, 296,
+ 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
+ 313, 313, 313, 296, 313, 313, 313, 313, 313, 313,
+ 313, 313, 313, 313, 916, 313, 313, 313, 313, 313,
+ 313, 313, 313, 313, 313, 313, 313, 296, 296, 323,
+ 323, 323, 323, 323, 323, 1087, 323, 323, 323, 323,
+ 323, 323, 323, 323, 337, 323, 323, 337, 337, 337,
+ 337, 338, 323, 323, 323, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 337, 337, 337, 323, 337,
+
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 920,
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 323, 323, 182, 1087, 182, 182, 182, 182,
+ 182, 182, 182, 182, 182, 185, 1087, 1087, 185, 185,
+ 193, 1087, 193, 193, 193, 193, 193, 193, 193, 193,
+ 193, 246, 246, 246, 246, 246, 246, 246, 246, 262,
+ 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
+ 283, 283, 283, 283, 286, 1087, 286, 1087, 286, 286,
+ 286, 286, 290, 290, 290, 290, 290, 290, 290, 296,
+ 1087, 296, 296, 296, 296, 296, 296, 296, 296, 296,
+
+ 298, 1087, 298, 298, 298, 298, 298, 298, 298, 298,
+ 298, 301, 1087, 301, 301, 301, 301, 301, 301, 301,
+ 301, 301, 313, 1087, 313, 313, 313, 313, 313, 313,
+ 313, 313, 313, 245, 245, 245, 245, 245, 245, 245,
+ 323, 323, 1087, 323, 323, 323, 323, 323, 323, 323,
+ 323, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 337, 337, 1087, 337, 337, 337, 337, 337,
+ 337, 337, 337, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 344, 344, 344, 344, 344, 344,
+ 344, 344, 344, 344, 344, 348, 348, 348, 348, 348,
+
+ 348, 348, 348, 348, 348, 348, 361, 361, 361, 361,
+ 361, 361, 361, 361, 361, 361, 361, 366, 366, 366,
+ 366, 366, 366, 366, 366, 366, 366, 366, 369, 369,
+ 369, 369, 369, 369, 369, 369, 369, 369, 369, 373,
+ 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
+ 386, 386, 386, 386, 386, 386, 386, 386, 386, 386,
+ 386, 391, 391, 391, 391, 391, 391, 391, 391, 391,
+ 391, 391, 394, 394, 394, 394, 394, 394, 394, 394,
+ 394, 394, 394, 398, 398, 398, 398, 398, 398, 398,
+ 398, 398, 398, 398, 411, 411, 411, 411, 411, 411,
+
+ 411, 411, 411, 411, 411, 416, 1087, 416, 416, 416,
+ 416, 416, 416, 416, 416, 416, 418, 1087, 418, 418,
+ 418, 418, 418, 418, 418, 418, 418, 421, 1087, 421,
+ 421, 421, 421, 421, 421, 421, 421, 421, 433, 1087,
+ 433, 433, 433, 433, 433, 433, 433, 433, 433, 185,
+ 1087, 1087, 185, 185, 193, 1087, 193, 193, 193, 193,
+ 193, 193, 193, 193, 193, 443, 1087, 1087, 443, 443,
+ 443, 474, 1087, 1087, 474, 245, 245, 245, 245, 245,
+ 245, 245, 246, 246, 246, 246, 246, 246, 246, 246,
+ 501, 1087, 1087, 1087, 1087, 501, 501, 501, 501, 262,
+
+ 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
+ 515, 515, 515, 515, 515, 515, 518, 518, 518, 518,
+ 519, 1087, 519, 519, 519, 519, 290, 290, 290, 290,
+ 290, 290, 290, 296, 1087, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 298, 1087, 298, 298, 298, 298,
+ 298, 298, 298, 298, 298, 301, 1087, 301, 301, 301,
+ 301, 301, 301, 301, 301, 301, 313, 1087, 313, 313,
+ 313, 313, 313, 313, 313, 313, 313, 323, 323, 1087,
+ 323, 323, 323, 323, 323, 323, 323, 323, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 337,
+
+ 337, 1087, 337, 337, 337, 337, 337, 337, 337, 337,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 344, 344, 344, 344, 344, 344, 344, 344, 344,
+ 344, 344, 348, 348, 348, 348, 348, 348, 348, 348,
+ 348, 348, 348, 361, 361, 361, 361, 361, 361, 361,
+ 361, 361, 361, 361, 366, 366, 366, 366, 366, 366,
+ 366, 366, 366, 366, 366, 369, 369, 369, 369, 369,
+ 369, 369, 369, 369, 369, 369, 373, 373, 373, 373,
+ 373, 373, 373, 373, 373, 373, 373, 386, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386, 391, 391,
+
+ 391, 391, 391, 391, 391, 391, 391, 391, 391, 394,
+ 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 416, 1087, 416, 416, 416, 416, 416, 416,
+ 416, 416, 416, 418, 1087, 418, 418, 418, 418, 418,
+ 418, 418, 418, 418, 421, 1087, 421, 421, 421, 421,
+ 421, 421, 421, 421, 421, 433, 1087, 433, 433, 433,
+ 433, 433, 433, 433, 433, 433, 185, 1087, 1087, 185,
+ 185, 443, 1087, 1087, 443, 443, 443, 474, 1087, 1087,
+
+ 474, 660, 1087, 660, 660, 660, 660, 660, 660, 660,
+ 660, 660, 663, 1087, 663, 663, 663, 663, 663, 663,
+ 663, 663, 663, 665, 1087, 665, 665, 665, 665, 665,
+ 665, 665, 665, 665, 668, 668, 668, 668, 668, 668,
+ 668, 246, 246, 246, 246, 246, 246, 246, 246, 262,
+ 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
+ 515, 515, 515, 515, 515, 515, 677, 1087, 677, 677,
+ 677, 677, 519, 1087, 519, 519, 519, 519, 290, 290,
+ 290, 290, 290, 290, 290, 296, 1087, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 688, 1087, 688, 688,
+
+ 688, 688, 688, 688, 688, 688, 688, 691, 1087, 691,
+ 691, 691, 691, 691, 691, 691, 691, 691, 692, 1087,
+ 692, 692, 692, 692, 692, 692, 692, 692, 692, 695,
+ 1087, 695, 695, 695, 695, 695, 695, 695, 695, 695,
+ 245, 245, 245, 245, 245, 245, 245, 323, 323, 1087,
+ 323, 323, 323, 323, 323, 323, 323, 323, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 708, 710,
+ 710, 1087, 710, 710, 710, 710, 710, 710, 710, 710,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 718, 718, 718, 718, 718, 718, 718, 718, 718,
+
+ 718, 718, 722, 722, 722, 722, 722, 722, 722, 722,
+ 722, 722, 722, 724, 724, 724, 724, 724, 724, 724,
+ 724, 724, 724, 724, 728, 728, 728, 728, 728, 728,
+ 728, 728, 728, 728, 728, 366, 366, 366, 366, 366,
+ 366, 366, 366, 366, 366, 366, 736, 736, 736, 736,
+ 736, 736, 736, 736, 736, 736, 736, 740, 740, 740,
+ 740, 740, 740, 740, 740, 740, 740, 740, 742, 742,
+ 742, 742, 742, 742, 742, 742, 742, 742, 742, 746,
+ 746, 746, 746, 746, 746, 746, 746, 746, 746, 746,
391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
- 391, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 396, 396, 399, 399, 399, 399, 399, 399, 399, 399,
- 399, 399, 399, 403, 403, 403, 403, 403, 403, 403,
- 403, 403, 403, 403, 417, 417, 417, 417, 417, 417,
- 417, 417, 417, 417, 417, 422, 1094, 422, 422, 422,
- 422, 422, 422, 422, 422, 422, 424, 1094, 424, 424,
- 424, 424, 424, 424, 424, 424, 424, 427, 1094, 427,
- 427, 427, 427, 427, 427, 427, 427, 427, 440, 1094,
- 440, 440, 440, 440, 440, 440, 440, 440, 440, 185,
- 1094, 1094, 185, 185, 193, 1094, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 450, 1094, 1094, 450, 450,
-
- 450, 481, 1094, 1094, 481, 246, 246, 246, 246, 246,
- 246, 246, 247, 247, 247, 247, 247, 247, 247, 247,
- 508, 1094, 1094, 1094, 1094, 508, 508, 508, 508, 263,
- 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
- 522, 522, 522, 522, 522, 522, 525, 525, 525, 525,
- 526, 1094, 526, 526, 526, 526, 291, 291, 291, 291,
- 291, 291, 291, 297, 1094, 297, 297, 297, 297, 297,
- 297, 297, 297, 297, 299, 1094, 299, 299, 299, 299,
- 299, 299, 299, 299, 299, 302, 1094, 302, 302, 302,
- 302, 302, 302, 302, 302, 302, 315, 1094, 315, 315,
-
- 315, 315, 315, 315, 315, 315, 315, 325, 325, 1094,
- 325, 325, 325, 325, 325, 325, 325, 325, 326, 326,
- 326, 326, 326, 326, 326, 326, 326, 326, 326, 340,
- 340, 1094, 340, 340, 340, 340, 340, 340, 340, 340,
- 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
- 344, 347, 347, 347, 347, 347, 347, 347, 347, 347,
- 347, 347, 351, 351, 351, 351, 351, 351, 351, 351,
- 351, 351, 351, 365, 365, 365, 365, 365, 365, 365,
- 365, 365, 365, 365, 370, 370, 370, 370, 370, 370,
- 370, 370, 370, 370, 370, 373, 373, 373, 373, 373,
-
- 373, 373, 373, 373, 373, 373, 377, 377, 377, 377,
- 377, 377, 377, 377, 377, 377, 377, 391, 391, 391,
- 391, 391, 391, 391, 391, 391, 391, 391, 396, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 399,
- 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
- 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
- 403, 417, 417, 417, 417, 417, 417, 417, 417, 417,
- 417, 417, 422, 1094, 422, 422, 422, 422, 422, 422,
- 422, 422, 422, 424, 1094, 424, 424, 424, 424, 424,
- 424, 424, 424, 424, 427, 1094, 427, 427, 427, 427,
-
- 427, 427, 427, 427, 427, 440, 1094, 440, 440, 440,
- 440, 440, 440, 440, 440, 440, 185, 1094, 1094, 185,
- 185, 450, 1094, 1094, 450, 450, 450, 481, 1094, 1094,
- 481, 667, 1094, 667, 667, 667, 667, 667, 667, 667,
- 667, 667, 670, 1094, 670, 670, 670, 670, 670, 670,
- 670, 670, 670, 672, 1094, 672, 672, 672, 672, 672,
- 672, 672, 672, 672, 675, 675, 675, 675, 675, 675,
- 675, 247, 247, 247, 247, 247, 247, 247, 247, 263,
- 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
- 522, 522, 522, 522, 522, 522, 684, 1094, 684, 684,
-
- 684, 684, 526, 1094, 526, 526, 526, 526, 291, 291,
- 291, 291, 291, 291, 291, 297, 1094, 297, 297, 297,
- 297, 297, 297, 297, 297, 297, 695, 1094, 695, 695,
- 695, 695, 695, 695, 695, 695, 695, 698, 1094, 698,
- 698, 698, 698, 698, 698, 698, 698, 698, 699, 1094,
- 699, 699, 699, 699, 699, 699, 699, 699, 699, 702,
- 1094, 702, 702, 702, 702, 702, 702, 702, 702, 702,
- 246, 246, 246, 246, 246, 246, 246, 325, 325, 1094,
- 325, 325, 325, 325, 325, 325, 325, 325, 715, 715,
- 715, 715, 715, 715, 715, 715, 715, 715, 715, 717,
-
- 717, 1094, 717, 717, 717, 717, 717, 717, 717, 717,
- 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
- 344, 725, 725, 725, 725, 725, 725, 725, 725, 725,
- 725, 725, 729, 729, 729, 729, 729, 729, 729, 729,
- 729, 729, 729, 731, 731, 731, 731, 731, 731, 731,
- 731, 731, 731, 731, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 370, 370, 370, 370, 370,
- 370, 370, 370, 370, 370, 370, 743, 743, 743, 743,
- 743, 743, 743, 743, 743, 743, 743, 747, 747, 747,
- 747, 747, 747, 747, 747, 747, 747, 747, 749, 749,
-
- 749, 749, 749, 749, 749, 749, 749, 749, 749, 753,
- 753, 753, 753, 753, 753, 753, 753, 753, 753, 753,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 396, 761, 761, 761, 761, 761, 761, 761, 761, 761,
- 761, 761, 765, 765, 765, 765, 765, 765, 765, 765,
- 765, 765, 765, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 767, 771, 771, 771, 771, 771, 771,
- 771, 771, 771, 771, 771, 422, 1094, 422, 422, 422,
- 422, 422, 422, 422, 422, 422, 779, 1094, 779, 779,
- 779, 779, 779, 779, 779, 779, 779, 782, 1094, 782,
-
- 782, 782, 782, 782, 782, 782, 782, 782, 783, 1094,
- 783, 783, 783, 783, 783, 783, 783, 783, 783, 786,
- 1094, 786, 786, 786, 786, 786, 786, 786, 786, 786,
- 450, 1094, 1094, 450, 450, 450, 667, 1094, 667, 667,
- 667, 667, 667, 667, 667, 667, 667, 670, 1094, 670,
- 670, 670, 670, 670, 670, 670, 670, 670, 672, 1094,
- 672, 672, 672, 672, 672, 672, 672, 672, 672, 675,
- 675, 675, 675, 675, 675, 675, 247, 247, 247, 247,
- 247, 247, 247, 247, 263, 263, 263, 263, 263, 263,
- 263, 263, 263, 263, 263, 684, 1094, 684, 684, 684,
-
- 684, 526, 1094, 526, 526, 526, 526, 291, 291, 291,
- 291, 291, 291, 291, 297, 1094, 297, 297, 297, 297,
- 297, 297, 297, 297, 297, 695, 1094, 695, 695, 695,
- 695, 695, 695, 695, 695, 695, 698, 1094, 698, 698,
- 698, 698, 698, 698, 698, 698, 698, 699, 1094, 699,
- 699, 699, 699, 699, 699, 699, 699, 699, 702, 1094,
- 702, 702, 702, 702, 702, 702, 702, 702, 702, 246,
- 246, 246, 246, 246, 246, 246, 325, 325, 1094, 325,
- 325, 325, 325, 325, 325, 325, 325, 715, 715, 715,
- 715, 715, 715, 715, 715, 715, 715, 715, 717, 717,
-
- 1094, 717, 717, 717, 717, 717, 717, 717, 717, 344,
- 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
- 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
- 725, 729, 729, 729, 729, 729, 729, 729, 729, 729,
- 729, 729, 731, 731, 731, 731, 731, 731, 731, 731,
- 731, 731, 731, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 370, 370, 370, 370, 370, 370,
- 370, 370, 370, 370, 370, 743, 743, 743, 743, 743,
- 743, 743, 743, 743, 743, 743, 747, 747, 747, 747,
- 747, 747, 747, 747, 747, 747, 747, 749, 749, 749,
-
- 749, 749, 749, 749, 749, 749, 749, 749, 753, 753,
- 753, 753, 753, 753, 753, 753, 753, 753, 753, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,
- 761, 765, 765, 765, 765, 765, 765, 765, 765, 765,
- 765, 765, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 767, 771, 771, 771, 771, 771, 771, 771,
- 771, 771, 771, 771, 422, 1094, 422, 422, 422, 422,
- 422, 422, 422, 422, 422, 779, 1094, 779, 779, 779,
- 779, 779, 779, 779, 779, 779, 782, 1094, 782, 782,
-
- 782, 782, 782, 782, 782, 782, 782, 783, 1094, 783,
- 783, 783, 783, 783, 783, 783, 783, 783, 786, 1094,
- 786, 786, 786, 786, 786, 786, 786, 786, 786, 450,
- 1094, 1094, 450, 450, 450, 247, 247, 247, 247, 247,
- 247, 247, 247, 263, 263, 263, 263, 263, 263, 263,
- 263, 263, 263, 263, 526, 1094, 526, 526, 526, 526,
- 291, 291, 291, 291, 291, 291, 291, 297, 1094, 297,
- 297, 297, 297, 297, 297, 297, 297, 297, 246, 246,
- 246, 246, 246, 246, 246, 325, 325, 1094, 325, 325,
- 325, 325, 325, 325, 325, 325, 23, 1094, 1094, 1094,
-
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094
+ 391, 754, 754, 754, 754, 754, 754, 754, 754, 754,
+ 754, 754, 758, 758, 758, 758, 758, 758, 758, 758,
+ 758, 758, 758, 760, 760, 760, 760, 760, 760, 760,
+ 760, 760, 760, 760, 764, 764, 764, 764, 764, 764,
+ 764, 764, 764, 764, 764, 416, 1087, 416, 416, 416,
+ 416, 416, 416, 416, 416, 416, 772, 1087, 772, 772,
+ 772, 772, 772, 772, 772, 772, 772, 775, 1087, 775,
+ 775, 775, 775, 775, 775, 775, 775, 775, 776, 1087,
+ 776, 776, 776, 776, 776, 776, 776, 776, 776, 779,
+ 1087, 779, 779, 779, 779, 779, 779, 779, 779, 779,
+
+ 443, 1087, 1087, 443, 443, 443, 660, 1087, 660, 660,
+ 660, 660, 660, 660, 660, 660, 660, 663, 1087, 663,
+ 663, 663, 663, 663, 663, 663, 663, 663, 665, 1087,
+ 665, 665, 665, 665, 665, 665, 665, 665, 665, 668,
+ 668, 668, 668, 668, 668, 668, 246, 246, 246, 246,
+ 246, 246, 246, 246, 262, 262, 262, 262, 262, 262,
+ 262, 262, 262, 262, 262, 677, 1087, 677, 677, 677,
+ 677, 519, 1087, 519, 519, 519, 519, 290, 290, 290,
+ 290, 290, 290, 290, 296, 1087, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 688, 1087, 688, 688, 688,
+
+ 688, 688, 688, 688, 688, 688, 691, 1087, 691, 691,
+ 691, 691, 691, 691, 691, 691, 691, 692, 1087, 692,
+ 692, 692, 692, 692, 692, 692, 692, 692, 695, 1087,
+ 695, 695, 695, 695, 695, 695, 695, 695, 695, 245,
+ 245, 245, 245, 245, 245, 245, 323, 323, 1087, 323,
+ 323, 323, 323, 323, 323, 323, 323, 708, 708, 708,
+ 708, 708, 708, 708, 708, 708, 708, 708, 710, 710,
+ 1087, 710, 710, 710, 710, 710, 710, 710, 710, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 718, 718, 718, 718, 718, 718, 718, 718, 718, 718,
+
+ 718, 722, 722, 722, 722, 722, 722, 722, 722, 722,
+ 722, 722, 724, 724, 724, 724, 724, 724, 724, 724,
+ 724, 724, 724, 728, 728, 728, 728, 728, 728, 728,
+ 728, 728, 728, 728, 366, 366, 366, 366, 366, 366,
+ 366, 366, 366, 366, 366, 736, 736, 736, 736, 736,
+ 736, 736, 736, 736, 736, 736, 740, 740, 740, 740,
+ 740, 740, 740, 740, 740, 740, 740, 742, 742, 742,
+ 742, 742, 742, 742, 742, 742, 742, 742, 746, 746,
+ 746, 746, 746, 746, 746, 746, 746, 746, 746, 391,
+ 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
+
+ 754, 754, 754, 754, 754, 754, 754, 754, 754, 754,
+ 754, 758, 758, 758, 758, 758, 758, 758, 758, 758,
+ 758, 758, 760, 760, 760, 760, 760, 760, 760, 760,
+ 760, 760, 760, 764, 764, 764, 764, 764, 764, 764,
+ 764, 764, 764, 764, 416, 1087, 416, 416, 416, 416,
+ 416, 416, 416, 416, 416, 772, 1087, 772, 772, 772,
+ 772, 772, 772, 772, 772, 772, 775, 1087, 775, 775,
+ 775, 775, 775, 775, 775, 775, 775, 776, 1087, 776,
+ 776, 776, 776, 776, 776, 776, 776, 776, 779, 1087,
+ 779, 779, 779, 779, 779, 779, 779, 779, 779, 443,
+
+ 1087, 1087, 443, 443, 443, 246, 246, 246, 246, 246,
+ 246, 246, 246, 262, 262, 262, 262, 262, 262, 262,
+ 262, 262, 262, 262, 519, 1087, 519, 519, 519, 519,
+ 290, 290, 290, 290, 290, 290, 290, 296, 1087, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296, 245, 245,
+ 245, 245, 245, 245, 245, 323, 323, 1087, 323, 323,
+ 323, 323, 323, 323, 323, 323, 23, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087
} ;
-static yyconst flex_int16_t yy_chk[7163] =
+static yyconst flex_int16_t yy_chk[7033] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -1640,12 +1624,12 @@
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 2, 33, 2, 2, 29,
- 35, 4, 236, 4, 4, 1088, 6, 40, 6, 6,
- 33, 236, 35, 8, 40, 8, 8, 55, 2, 3,
+ 35, 4, 235, 4, 4, 1081, 6, 40, 6, 6,
+ 33, 235, 35, 8, 40, 8, 8, 55, 2, 3,
74, 3, 3, 3, 4, 44, 44, 3, 3, 6,
3, 3, 29, 3, 3, 3, 8, 45, 45, 108,
- 3, 3, 3, 3, 10, 13, 10, 10, 12, 1084,
+ 3, 3, 3, 3, 10, 13, 10, 10, 12, 1077,
12, 12, 16, 74, 16, 16, 55, 13, 13, 13,
13, 18, 108, 18, 18, 3, 20, 3, 20, 20,
3, 22, 3, 22, 22, 3, 212, 3, 46, 46,
@@ -1678,8 +1662,8 @@
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 14, 1083, 14, 14, 31, 14, 31,
- 82, 31, 31, 60, 1082, 60, 60, 82, 122, 122,
+ 11, 11, 11, 14, 1076, 14, 14, 31, 14, 31,
+ 82, 31, 31, 60, 1075, 60, 60, 82, 122, 122,
14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
@@ -1711,720 +1695,706 @@
21, 21, 21, 21, 25, 91, 25, 25, 27, 27,
27, 27, 36, 209, 36, 36, 36, 36, 209, 25,
- 36, 47, 38, 27, 38, 38, 38, 38, 47, 1080,
- 38, 39, 39, 39, 39, 47, 233, 39, 91, 39,
+ 36, 47, 38, 27, 38, 38, 38, 38, 47, 1073,
+ 38, 39, 39, 39, 39, 47, 232, 39, 91, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 39, 233, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 232, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 41, 52, 41, 41,
- 41, 41, 216, 51, 52, 49, 976, 53, 41, 41,
- 51, 52, 49, 41, 53, 41, 216, 51, 41, 49,
- 56, 53, 41, 112, 976, 41, 42, 112, 42, 42,
-
- 42, 42, 112, 41, 67, 48, 67, 67, 1079, 42,
- 52, 41, 48, 42, 53, 48, 48, 48, 48, 48,
- 49, 69, 69, 660, 51, 42, 43, 53, 43, 460,
- 56, 43, 660, 50, 43, 43, 43, 43, 43, 43,
- 50, 54, 43, 84, 43, 43, 460, 50, 54, 57,
- 84, 57, 57, 59, 59, 54, 66, 58, 58, 58,
- 58, 231, 69, 66, 57, 61, 61, 61, 61, 231,
- 66, 50, 58, 84, 1077, 59, 59, 50, 62, 64,
- 62, 62, 62, 62, 121, 54, 167, 64, 64, 64,
- 64, 64, 64, 66, 59, 63, 124, 124, 64, 68,
-
- 68, 68, 68, 71, 71, 71, 71, 73, 73, 73,
- 73, 87, 87, 63, 63, 1076, 63, 121, 63, 167,
- 63, 63, 63, 63, 213, 63, 213, 63, 63, 63,
- 75, 323, 75, 63, 75, 75, 77, 78, 77, 77,
- 77, 77, 85, 85, 85, 85, 980, 78, 78, 78,
- 78, 80, 87, 80, 80, 80, 80, 86, 86, 86,
- 86, 131, 131, 214, 80, 214, 83, 323, 80, 83,
- 83, 83, 83, 83, 78, 78, 136, 136, 1073, 78,
- 80, 93, 131, 93, 93, 93, 93, 94, 94, 94,
- 94, 980, 100, 96, 100, 100, 101, 101, 101, 101,
-
- 96, 234, 109, 96, 109, 109, 234, 96, 104, 104,
- 104, 104, 126, 126, 120, 94, 120, 120, 96, 94,
- 95, 126, 95, 95, 95, 95, 96, 105, 105, 105,
- 105, 116, 95, 95, 138, 138, 104, 95, 116, 95,
- 104, 116, 95, 150, 150, 116, 95, 810, 113, 95,
- 113, 113, 113, 113, 140, 140, 116, 95, 134, 134,
- 134, 134, 810, 140, 116, 95, 98, 98, 810, 98,
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
- 98, 1070, 98, 98, 114, 114, 114, 114, 98, 98,
- 98, 98, 463, 106, 463, 106, 106, 106, 106, 135,
-
- 135, 135, 135, 152, 152, 98, 106, 127, 127, 849,
- 106, 849, 114, 125, 125, 239, 114, 125, 154, 154,
- 239, 127, 106, 127, 127, 127, 127, 154, 1069, 98,
- 98, 99, 99, 239, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 99, 99, 863, 99, 99, 863,
- 125, 145, 145, 99, 99, 99, 99, 130, 148, 148,
- 148, 148, 128, 128, 130, 139, 139, 130, 279, 139,
- 99, 130, 145, 279, 182, 1068, 99, 206, 128, 128,
- 128, 128, 130, 149, 149, 149, 149, 153, 153, 206,
- 130, 153, 222, 222, 99, 99, 115, 1066, 115, 115,
-
- 115, 115, 139, 225, 225, 225, 128, 182, 115, 115,
- 128, 159, 159, 115, 176, 115, 176, 176, 115, 929,
- 141, 141, 115, 929, 153, 115, 162, 162, 162, 162,
- 230, 230, 159, 115, 141, 1065, 141, 141, 141, 141,
- 290, 115, 118, 118, 118, 118, 118, 118, 290, 118,
- 118, 118, 118, 118, 118, 118, 118, 1064, 118, 118,
- 163, 163, 163, 163, 118, 118, 118, 118, 155, 155,
- 169, 299, 169, 169, 169, 169, 244, 244, 142, 142,
- 867, 118, 155, 867, 155, 155, 155, 155, 177, 177,
- 177, 177, 263, 263, 142, 142, 142, 142, 178, 974,
-
- 178, 178, 265, 265, 299, 118, 118, 119, 119, 119,
- 119, 119, 119, 178, 119, 119, 119, 119, 119, 119,
- 119, 119, 142, 119, 119, 1063, 142, 424, 144, 119,
- 119, 119, 119, 232, 158, 144, 291, 232, 144, 156,
- 156, 158, 144, 291, 158, 974, 119, 179, 158, 179,
- 179, 232, 119, 144, 854, 156, 156, 156, 156, 158,
- 424, 144, 186, 186, 186, 186, 1056, 158, 266, 266,
- 119, 119, 129, 129, 170, 170, 170, 170, 187, 187,
- 187, 187, 854, 156, 267, 267, 129, 156, 129, 129,
- 129, 129, 188, 188, 188, 188, 501, 172, 129, 129,
-
- 276, 276, 170, 129, 172, 129, 170, 172, 129, 309,
- 309, 172, 129, 1051, 247, 129, 189, 189, 189, 189,
- 1050, 247, 172, 129, 196, 196, 196, 196, 247, 501,
- 172, 129, 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 507, 132, 132,
- 269, 251, 269, 269, 132, 132, 132, 132, 251, 197,
- 925, 197, 197, 197, 197, 251, 200, 200, 200, 200,
- 211, 132, 197, 1047, 211, 253, 197, 200, 211, 223,
- 507, 223, 253, 925, 223, 223, 223, 223, 197, 253,
- 312, 312, 312, 200, 977, 132, 132, 133, 133, 133,
+ 41, 41, 121, 49, 52, 54, 51, 56, 41, 41,
+ 49, 52, 54, 51, 213, 41, 213, 49, 41, 54,
+ 51, 214, 41, 214, 42, 41, 42, 42, 42, 42,
+
+ 69, 69, 48, 41, 456, 121, 456, 42, 206, 48,
+ 52, 41, 48, 48, 48, 48, 48, 56, 49, 54,
+ 206, 112, 1072, 42, 43, 112, 43, 51, 1070, 43,
+ 112, 50, 43, 43, 43, 43, 43, 43, 50, 53,
+ 43, 69, 43, 43, 1069, 50, 53, 57, 848, 57,
+ 57, 59, 59, 53, 66, 58, 58, 58, 58, 1066,
+ 84, 66, 57, 61, 61, 61, 61, 84, 66, 50,
+ 58, 124, 124, 59, 59, 50, 53, 62, 848, 62,
+ 62, 62, 62, 87, 87, 67, 64, 67, 67, 53,
+ 84, 66, 59, 63, 64, 64, 64, 64, 64, 64,
+
+ 68, 68, 68, 68, 653, 64, 71, 71, 71, 71,
+ 167, 63, 63, 653, 63, 182, 63, 1063, 63, 63,
+ 63, 63, 230, 63, 87, 63, 63, 63, 126, 126,
+ 230, 63, 73, 73, 73, 73, 75, 126, 75, 78,
+ 75, 75, 77, 167, 77, 77, 77, 77, 182, 78,
+ 78, 78, 78, 80, 1062, 80, 80, 80, 80, 85,
+ 85, 85, 85, 453, 83, 847, 80, 83, 83, 83,
+ 83, 83, 86, 86, 86, 86, 78, 78, 136, 136,
+ 453, 78, 80, 93, 1061, 93, 93, 93, 93, 94,
+ 94, 94, 94, 847, 100, 96, 100, 100, 101, 101,
+
+ 101, 101, 96, 233, 109, 96, 109, 109, 233, 96,
+ 104, 104, 104, 104, 138, 138, 120, 94, 120, 120,
+ 96, 94, 95, 1059, 95, 95, 95, 95, 96, 105,
+ 105, 105, 105, 116, 95, 95, 131, 131, 104, 1058,
+ 116, 95, 104, 116, 95, 150, 150, 116, 95, 1057,
+ 113, 95, 113, 113, 113, 113, 216, 131, 116, 95,
+ 134, 134, 134, 134, 152, 152, 116, 95, 98, 98,
+ 216, 98, 98, 98, 98, 98, 98, 98, 98, 98,
+ 98, 98, 98, 918, 98, 98, 114, 114, 114, 114,
+ 98, 98, 98, 98, 842, 106, 842, 106, 106, 106,
+
+ 106, 140, 140, 127, 127, 211, 918, 98, 106, 211,
+ 140, 125, 125, 211, 114, 125, 290, 127, 114, 127,
+ 127, 127, 127, 290, 106, 135, 135, 135, 135, 222,
+ 222, 98, 98, 99, 99, 321, 99, 99, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99, 125, 99,
+ 99, 128, 128, 145, 145, 99, 99, 99, 99, 148,
+ 148, 148, 148, 149, 149, 149, 149, 128, 128, 128,
+ 128, 321, 99, 852, 145, 852, 139, 139, 99, 130,
+ 139, 153, 153, 154, 154, 153, 130, 229, 229, 130,
+ 142, 142, 154, 130, 1056, 128, 99, 99, 115, 128,
+
+ 115, 115, 115, 115, 130, 973, 142, 142, 142, 142,
+ 115, 115, 130, 139, 141, 141, 856, 115, 153, 856,
+ 115, 159, 159, 176, 115, 176, 176, 115, 141, 298,
+ 141, 141, 141, 141, 142, 115, 278, 179, 142, 179,
+ 179, 278, 159, 115, 118, 118, 118, 118, 118, 118,
+ 973, 118, 118, 118, 118, 118, 118, 118, 118, 1049,
+ 118, 118, 298, 144, 243, 243, 118, 118, 118, 118,
+ 144, 246, 158, 144, 1044, 155, 155, 144, 246, 158,
+ 262, 262, 158, 118, 1043, 246, 158, 289, 144, 155,
+ 1040, 155, 155, 155, 155, 289, 144, 158, 162, 162,
+
+ 162, 162, 224, 224, 224, 158, 969, 118, 118, 119,
+ 119, 119, 119, 119, 119, 702, 119, 119, 119, 119,
+ 119, 119, 119, 119, 969, 119, 119, 163, 163, 163,
+ 163, 119, 119, 119, 119, 170, 170, 170, 170, 156,
+ 156, 169, 702, 169, 169, 169, 169, 231, 119, 264,
+ 264, 231, 172, 418, 119, 156, 156, 156, 156, 172,
+ 265, 265, 172, 170, 974, 231, 172, 170, 177, 177,
+ 177, 177, 119, 119, 129, 129, 271, 172, 975, 178,
+ 271, 178, 178, 156, 271, 172, 418, 156, 129, 1039,
+ 129, 129, 129, 129, 178, 186, 186, 186, 186, 494,
+
+ 129, 129, 187, 187, 187, 187, 238, 129, 250, 974,
+ 129, 238, 266, 266, 129, 250, 500, 129, 188, 188,
+ 188, 188, 250, 975, 238, 129, 189, 189, 189, 189,
+ 267, 267, 494, 129, 132, 132, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 500,
+ 132, 132, 196, 196, 196, 196, 132, 132, 132, 132,
+ 1011, 197, 1011, 197, 197, 197, 197, 200, 200, 200,
+ 200, 275, 275, 132, 197, 223, 1037, 223, 200, 249,
+ 223, 223, 223, 223, 308, 308, 249, 267, 1036, 268,
+ 197, 268, 268, 249, 200, 332, 332, 132, 132, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
- 133, 133, 977, 133, 133, 268, 268, 253, 253, 133,
- 133, 133, 133, 221, 221, 221, 221, 272, 334, 334,
- 294, 272, 1046, 249, 221, 272, 133, 294, 344, 344,
- 249, 250, 133, 249, 249, 249, 249, 249, 250, 314,
- 221, 252, 254, 871, 314, 250, 871, 255, 252, 254,
- 133, 133, 143, 143, 255, 252, 254, 1044, 256, 339,
- 257, 255, 268, 294, 339, 256, 143, 257, 143, 143,
- 143, 143, 256, 280, 257, 280, 280, 254, 143, 143,
- 859, 250, 859, 143, 262, 143, 262, 262, 143, 346,
-
- 346, 252, 143, 349, 349, 143, 1043, 255, 318, 262,
- 318, 318, 257, 143, 350, 350, 256, 281, 281, 281,
- 281, 143, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 1042, 146, 146,
- 283, 283, 283, 283, 146, 146, 146, 146, 285, 285,
- 285, 285, 285, 293, 361, 361, 293, 293, 293, 293,
- 293, 146, 295, 295, 295, 295, 296, 296, 296, 296,
- 303, 303, 303, 303, 310, 324, 310, 324, 324, 310,
- 310, 310, 310, 370, 370, 146, 146, 147, 147, 147,
+ 133, 133, 133, 133, 919, 133, 133, 261, 1035, 261,
+ 261, 133, 133, 133, 133, 221, 221, 221, 221, 249,
+ 1033, 279, 261, 279, 279, 248, 221, 919, 133, 310,
+ 310, 310, 248, 251, 133, 248, 248, 248, 248, 248,
+ 251, 293, 221, 252, 253, 341, 341, 251, 293, 254,
+ 252, 253, 133, 133, 143, 143, 254, 252, 253, 312,
+ 255, 336, 256, 254, 312, 534, 336, 255, 143, 256,
+ 143, 143, 143, 143, 255, 316, 256, 316, 316, 253,
+ 143, 143, 1032, 251, 293, 252, 252, 143, 1031, 322,
+
+ 143, 322, 322, 340, 143, 340, 340, 143, 534, 254,
+ 280, 280, 280, 280, 256, 143, 343, 343, 255, 282,
+ 282, 282, 282, 143, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 146, 1030,
+ 146, 146, 294, 294, 294, 294, 146, 146, 146, 146,
+ 284, 284, 284, 284, 284, 292, 346, 346, 292, 292,
+ 292, 292, 292, 146, 295, 295, 295, 295, 302, 302,
+ 302, 302, 309, 1028, 309, 347, 347, 309, 309, 309,
+ 309, 326, 326, 326, 326, 353, 353, 146, 146, 147,
147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
- 147, 147, 1040, 147, 147, 328, 328, 328, 328, 147,
- 147, 147, 147, 1018, 304, 1018, 304, 304, 304, 304,
- 372, 372, 305, 305, 305, 305, 147, 304, 337, 337,
- 337, 304, 147, 305, 308, 308, 308, 308, 326, 351,
- 351, 439, 326, 304, 1039, 308, 439, 326, 351, 305,
- 147, 147, 157, 157, 343, 709, 343, 343, 352, 352,
- 322, 308, 322, 322, 322, 322, 157, 352, 157, 157,
- 157, 157, 1038, 322, 375, 375, 549, 322, 157, 157,
- 356, 356, 709, 157, 1037, 157, 357, 357, 157, 322,
- 930, 335, 157, 335, 930, 157, 335, 335, 335, 335,
-
- 549, 347, 347, 157, 549, 347, 368, 368, 368, 368,
- 1035, 157, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 356, 160, 160,
- 376, 376, 926, 357, 160, 160, 160, 160, 347, 329,
- 710, 329, 329, 329, 329, 923, 330, 330, 330, 330,
- 923, 160, 329, 353, 353, 926, 329, 330, 348, 348,
- 387, 387, 348, 369, 369, 369, 369, 710, 329, 353,
- 353, 353, 353, 330, 1034, 160, 160, 161, 161, 161,
+ 147, 147, 147, 147, 703, 147, 147, 334, 334, 334,
+ 432, 147, 147, 147, 147, 432, 303, 1027, 303, 303,
+ 303, 303, 304, 304, 304, 304, 344, 344, 147, 303,
+ 344, 703, 353, 304, 147, 307, 307, 307, 307, 324,
+ 345, 345, 916, 324, 345, 303, 307, 916, 324, 304,
+ 366, 366, 147, 147, 157, 157, 320, 1026, 320, 320,
+ 320, 320, 307, 344, 328, 328, 328, 328, 157, 320,
+ 157, 157, 157, 157, 1013, 328, 1013, 345, 368, 368,
+ 157, 157, 922, 348, 348, 320, 922, 157, 354, 354,
+ 157, 328, 348, 333, 157, 333, 536, 157, 333, 333,
+
+ 333, 333, 349, 349, 1024, 157, 364, 364, 364, 364,
+ 1016, 349, 976, 157, 160, 160, 160, 160, 160, 160,
+ 160, 160, 160, 160, 160, 160, 160, 160, 160, 536,
+ 160, 160, 371, 371, 1014, 354, 160, 160, 160, 160,
+ 1015, 327, 1015, 327, 327, 327, 327, 331, 331, 331,
+ 331, 356, 356, 160, 327, 358, 358, 976, 331, 1012,
+ 360, 360, 369, 369, 360, 1010, 369, 356, 356, 360,
+ 327, 358, 358, 358, 331, 372, 372, 160, 160, 161,
161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 1033, 161, 161, 348, 359, 359, 794, 161,
-
- 161, 161, 161, 333, 333, 333, 333, 355, 355, 377,
- 377, 794, 359, 359, 333, 931, 161, 794, 377, 931,
- 360, 360, 161, 355, 355, 355, 355, 541, 373, 373,
- 333, 360, 373, 360, 355, 1031, 360, 360, 360, 360,
- 161, 161, 171, 543, 171, 171, 171, 171, 374, 374,
- 355, 1023, 374, 924, 171, 171, 362, 362, 924, 171,
- 541, 171, 382, 382, 171, 373, 364, 364, 171, 981,
- 364, 171, 362, 362, 362, 364, 543, 378, 378, 171,
- 396, 396, 1021, 383, 383, 374, 378, 171, 174, 174,
- 1019, 174, 174, 174, 174, 174, 174, 174, 174, 174,
-
- 174, 174, 174, 1017, 174, 174, 358, 358, 855, 382,
- 174, 174, 174, 174, 981, 385, 385, 613, 379, 379,
- 398, 398, 358, 358, 358, 358, 1016, 174, 381, 381,
- 383, 385, 385, 358, 379, 379, 379, 379, 855, 390,
- 390, 401, 401, 390, 381, 381, 381, 381, 390, 358,
- 613, 174, 174, 175, 175, 381, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 1015, 175,
- 175, 381, 384, 384, 1014, 175, 175, 175, 175, 394,
- 394, 394, 394, 1012, 386, 386, 402, 402, 384, 384,
- 384, 384, 175, 388, 388, 386, 1011, 386, 175, 384,
-
- 386, 386, 386, 386, 395, 395, 395, 395, 932, 388,
- 388, 388, 932, 403, 403, 384, 175, 175, 313, 313,
- 313, 313, 403, 404, 404, 413, 413, 313, 313, 313,
- 399, 399, 404, 1010, 399, 615, 400, 400, 408, 408,
- 400, 313, 313, 313, 313, 313, 313, 315, 315, 1009,
- 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
- 315, 315, 1008, 315, 315, 405, 405, 399, 615, 315,
- 315, 315, 315, 400, 411, 411, 412, 412, 434, 434,
- 1007, 405, 405, 405, 405, 408, 315, 412, 1006, 412,
- 411, 411, 412, 412, 412, 412, 416, 416, 477, 477,
-
- 416, 420, 420, 420, 420, 416, 421, 421, 421, 421,
- 315, 315, 316, 316, 1003, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 316, 316, 316, 316, 316, 316, 317, 317, 1002,
- 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
- 317, 317, 927, 317, 317, 407, 407, 927, 486, 317,
-
- 317, 317, 317, 409, 409, 928, 486, 414, 414, 486,
- 928, 407, 407, 407, 407, 1001, 317, 428, 428, 428,
- 428, 1000, 407, 414, 414, 414, 536, 536, 430, 430,
- 430, 430, 437, 437, 437, 317, 518, 518, 407, 430,
- 317, 317, 338, 338, 338, 338, 443, 998, 443, 443,
- 409, 338, 338, 338, 435, 430, 435, 554, 554, 435,
- 435, 435, 435, 608, 608, 338, 338, 338, 338, 338,
- 338, 340, 340, 340, 340, 340, 340, 996, 340, 340,
- 340, 340, 340, 340, 340, 340, 972, 340, 340, 410,
- 410, 995, 518, 340, 340, 340, 340, 972, 429, 994,
-
- 429, 429, 429, 429, 972, 410, 410, 410, 410, 993,
- 340, 429, 480, 480, 480, 429, 410, 444, 992, 444,
- 444, 445, 445, 445, 445, 683, 683, 429, 446, 446,
- 446, 446, 410, 991, 340, 340, 341, 341, 341, 341,
- 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
- 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
- 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
- 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
- 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
- 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
-
- 341, 342, 342, 342, 342, 342, 342, 990, 342, 342,
- 342, 342, 342, 342, 342, 342, 989, 342, 342, 433,
- 433, 433, 433, 342, 342, 342, 342, 539, 539, 539,
- 433, 447, 447, 447, 447, 448, 448, 448, 448, 933,
- 342, 934, 449, 933, 449, 934, 433, 449, 449, 449,
- 449, 476, 476, 476, 476, 478, 478, 478, 478, 342,
- 706, 706, 476, 988, 342, 342, 354, 354, 479, 479,
- 479, 479, 509, 967, 510, 557, 557, 557, 476, 509,
- 354, 510, 354, 354, 354, 354, 509, 511, 510, 512,
- 667, 513, 514, 354, 511, 844, 512, 354, 513, 514,
-
- 515, 511, 844, 512, 965, 513, 514, 515, 517, 354,
- 363, 363, 559, 531, 515, 517, 559, 566, 566, 510,
- 531, 559, 517, 667, 564, 564, 363, 363, 363, 363,
- 844, 512, 516, 566, 566, 363, 363, 363, 515, 516,
- 727, 727, 515, 672, 531, 517, 516, 975, 531, 363,
- 363, 363, 363, 363, 363, 365, 365, 365, 365, 365,
- 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
- 964, 365, 365, 516, 564, 963, 672, 365, 365, 365,
- 365, 524, 524, 524, 524, 524, 537, 537, 537, 537,
- 532, 962, 532, 975, 365, 532, 532, 532, 532, 538,
-
- 538, 538, 538, 550, 960, 550, 728, 728, 550, 550,
- 550, 550, 555, 555, 555, 555, 733, 733, 365, 365,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
- 366, 366, 366, 366, 366, 367, 367, 367, 367, 367,
- 367, 367, 367, 367, 367, 367, 367, 367, 367, 367,
-
- 695, 367, 367, 535, 535, 535, 535, 367, 367, 367,
- 367, 563, 563, 959, 535, 553, 553, 553, 553, 556,
- 556, 556, 556, 935, 367, 699, 553, 935, 562, 562,
- 535, 572, 572, 695, 578, 578, 565, 565, 958, 562,
- 572, 562, 553, 367, 562, 562, 562, 562, 367, 367,
- 380, 380, 565, 565, 565, 565, 567, 567, 699, 563,
- 611, 611, 611, 565, 380, 957, 380, 380, 380, 380,
- 568, 568, 567, 567, 567, 567, 936, 380, 677, 565,
- 936, 380, 569, 569, 578, 677, 568, 568, 568, 568,
- 576, 576, 677, 380, 389, 389, 586, 586, 569, 569,
-
- 569, 576, 1020, 576, 1020, 586, 576, 576, 576, 576,
- 389, 389, 389, 389, 580, 580, 592, 592, 956, 389,
- 389, 389, 571, 571, 577, 577, 571, 779, 573, 573,
- 580, 580, 573, 389, 389, 389, 389, 389, 389, 391,
- 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
- 391, 391, 391, 391, 982, 391, 391, 579, 579, 571,
- 779, 391, 391, 391, 391, 573, 592, 734, 734, 581,
- 581, 955, 577, 579, 579, 579, 579, 954, 391, 582,
- 582, 600, 600, 953, 579, 581, 581, 581, 581, 951,
- 600, 609, 609, 609, 609, 582, 582, 582, 582, 982,
-
- 579, 950, 391, 391, 392, 392, 392, 392, 392, 392,
- 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
- 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
- 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
- 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
- 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
- 392, 392, 392, 392, 392, 392, 392, 392, 392, 393,
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
- 393, 393, 393, 393, 949, 393, 393, 583, 583, 591,
- 591, 393, 393, 393, 393, 983, 736, 736, 594, 594,
-
- 736, 595, 595, 583, 583, 583, 585, 585, 393, 783,
- 585, 948, 587, 587, 594, 594, 587, 595, 595, 595,
- 595, 599, 599, 689, 678, 599, 947, 393, 590, 590,
- 689, 678, 393, 393, 406, 406, 946, 591, 678, 590,
- 983, 590, 783, 585, 590, 590, 590, 590, 406, 587,
- 406, 406, 406, 406, 945, 593, 593, 689, 599, 944,
- 715, 406, 601, 601, 715, 406, 601, 596, 596, 715,
- 943, 593, 593, 593, 593, 597, 597, 406, 415, 415,
- 745, 745, 593, 596, 596, 596, 596, 610, 610, 610,
- 610, 597, 597, 597, 415, 415, 415, 415, 593, 601,
-
- 746, 746, 682, 415, 415, 415, 604, 875, 604, 682,
- 875, 604, 604, 604, 604, 978, 682, 415, 415, 415,
- 415, 415, 415, 417, 417, 417, 417, 417, 417, 417,
- 417, 417, 417, 417, 417, 417, 417, 417, 942, 417,
- 417, 607, 607, 607, 607, 417, 417, 417, 417, 751,
- 751, 682, 607, 618, 618, 618, 618, 619, 619, 619,
- 619, 978, 417, 691, 691, 691, 691, 941, 607, 692,
- 692, 692, 692, 711, 711, 711, 711, 712, 712, 712,
- 712, 752, 752, 763, 763, 940, 417, 417, 418, 418,
- 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
-
- 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
- 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
- 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
- 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
- 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
- 418, 418, 418, 419, 419, 419, 419, 419, 419, 419,
- 419, 419, 419, 419, 419, 419, 419, 419, 939, 419,
- 419, 937, 679, 680, 915, 419, 419, 419, 419, 679,
- 680, 681, 721, 721, 764, 764, 679, 680, 681, 690,
- 722, 722, 419, 723, 723, 681, 690, 914, 721, 721,
-
- 721, 721, 912, 729, 729, 911, 722, 722, 722, 722,
- 909, 419, 729, 679, 680, 908, 419, 419, 438, 438,
- 438, 438, 1022, 690, 1022, 681, 907, 438, 438, 438,
- 724, 724, 904, 754, 754, 903, 723, 754, 902, 741,
- 741, 438, 438, 438, 438, 438, 438, 440, 440, 901,
- 440, 440, 440, 440, 440, 440, 440, 440, 440, 440,
- 440, 440, 984, 440, 440, 730, 730, 769, 769, 440,
- 440, 440, 440, 724, 730, 739, 739, 725, 725, 740,
- 740, 725, 741, 770, 770, 900, 440, 757, 757, 839,
- 839, 739, 739, 739, 739, 740, 740, 740, 740, 747,
-
- 747, 860, 860, 757, 757, 757, 757, 984, 747, 898,
- 440, 440, 441, 441, 725, 441, 441, 441, 441, 441,
- 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
- 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
- 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
- 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
- 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
- 441, 441, 441, 441, 441, 441, 441, 442, 442, 897,
- 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
- 442, 442, 985, 442, 442, 742, 742, 748, 748, 442,
-
- 442, 442, 442, 979, 759, 759, 748, 760, 760, 726,
- 726, 731, 731, 726, 896, 731, 442, 732, 732, 743,
- 743, 732, 895, 743, 744, 744, 749, 749, 744, 1030,
- 749, 1030, 772, 772, 894, 442, 772, 985, 742, 893,
- 442, 442, 540, 540, 540, 540, 726, 759, 731, 979,
- 760, 540, 540, 540, 732, 845, 743, 775, 775, 775,
- 775, 744, 845, 749, 891, 540, 540, 540, 540, 540,
- 540, 544, 544, 890, 544, 544, 544, 544, 544, 544,
- 544, 544, 544, 544, 544, 544, 889, 544, 544, 888,
- 758, 758, 845, 544, 544, 544, 544, 776, 776, 776,
-
- 776, 750, 750, 765, 765, 750, 758, 758, 758, 758,
- 544, 886, 765, 766, 766, 861, 861, 862, 862, 864,
- 864, 885, 766, 865, 865, 866, 866, 868, 868, 869,
- 869, 870, 870, 884, 544, 544, 545, 545, 750, 545,
- 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
- 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
- 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
- 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
- 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
- 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
-
- 545, 558, 558, 558, 558, 874, 874, 883, 837, 882,
- 558, 558, 558, 761, 761, 837, 881, 761, 880, 762,
- 762, 879, 837, 762, 558, 558, 558, 558, 558, 558,
- 560, 560, 560, 560, 560, 560, 877, 560, 560, 560,
- 560, 560, 560, 560, 560, 986, 560, 560, 1059, 1059,
- 761, 921, 560, 560, 560, 560, 762, 837, 921, 918,
- 919, 973, 876, 938, 767, 767, 918, 919, 767, 560,
- 1060, 1060, 973, 918, 919, 920, 938, 920, 920, 973,
- 851, 921, 938, 971, 842, 971, 971, 1024, 1024, 1024,
- 986, 1024, 833, 560, 560, 561, 561, 561, 561, 561,
-
- 561, 767, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
- 570, 570, 969, 922, 970, 832, 969, 831, 970, 830,
- 922, 1061, 1061, 969, 829, 970, 570, 570, 570, 570,
- 969, 828, 970, 916, 834, 570, 570, 570, 768, 768,
- 916, 834, 768, 922, 987, 827, 826, 916, 834, 570,
-
- 570, 570, 570, 570, 570, 574, 574, 574, 574, 574,
- 574, 574, 574, 574, 574, 574, 574, 574, 574, 574,
- 916, 574, 574, 825, 836, 768, 834, 574, 574, 574,
- 574, 836, 1025, 1025, 1025, 1027, 1027, 1027, 836, 987,
- 824, 1026, 1026, 1026, 574, 1026, 1028, 1028, 1028, 823,
- 1028, 1029, 1029, 1029, 822, 819, 818, 816, 814, 812,
- 811, 809, 808, 836, 807, 806, 805, 804, 574, 574,
- 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
- 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
- 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
-
- 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
- 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
- 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
- 575, 575, 575, 575, 575, 584, 584, 803, 802, 801,
- 799, 798, 797, 796, 793, 791, 790, 789, 787, 782,
- 778, 584, 584, 584, 584, 777, 835, 774, 917, 756,
- 584, 584, 584, 835, 738, 917, 720, 718, 714, 713,
- 835, 708, 917, 707, 584, 584, 584, 584, 584, 584,
- 588, 588, 588, 588, 588, 588, 588, 588, 588, 588,
- 588, 588, 588, 588, 588, 917, 588, 588, 705, 703,
-
- 835, 698, 588, 588, 588, 588, 694, 693, 688, 687,
- 686, 685, 676, 675, 670, 666, 665, 664, 663, 588,
- 662, 661, 659, 658, 657, 656, 655, 654, 652, 651,
- 650, 649, 648, 647, 646, 645, 644, 642, 641, 640,
- 639, 638, 637, 588, 588, 589, 589, 589, 589, 589,
- 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
- 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
- 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
- 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
- 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
-
- 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
- 598, 598, 636, 635, 634, 633, 632, 630, 629, 628,
- 627, 626, 625, 624, 623, 622, 598, 598, 598, 598,
- 621, 614, 606, 605, 552, 598, 598, 598, 551, 548,
- 547, 546, 542, 534, 533, 530, 529, 528, 527, 598,
- 598, 598, 598, 598, 598, 602, 602, 602, 602, 602,
- 602, 602, 602, 602, 602, 602, 602, 602, 602, 602,
- 522, 602, 602, 521, 520, 519, 508, 602, 602, 602,
- 602, 505, 502, 500, 499, 498, 497, 496, 495, 494,
- 493, 492, 491, 490, 602, 489, 488, 487, 485, 484,
-
- 483, 482, 474, 473, 472, 471, 470, 469, 468, 467,
- 466, 465, 464, 462, 461, 459, 458, 457, 602, 602,
- 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
- 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
- 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
- 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
- 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
- 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
- 603, 603, 603, 603, 603, 612, 612, 612, 612, 456,
- 455, 454, 453, 452, 612, 612, 612, 451, 432, 431,
-
- 427, 332, 331, 321, 320, 319, 307, 306, 612, 612,
- 612, 612, 612, 612, 616, 616, 302, 616, 616, 616,
- 616, 616, 616, 616, 616, 616, 616, 616, 616, 292,
- 616, 616, 289, 288, 284, 278, 616, 616, 616, 616,
- 277, 275, 274, 273, 271, 270, 248, 246, 245, 238,
- 237, 235, 229, 616, 228, 227, 219, 218, 217, 215,
- 210, 208, 207, 205, 204, 203, 193, 173, 168, 166,
- 117, 107, 102, 97, 92, 90, 81, 616, 616, 617,
- 617, 76, 617, 617, 617, 617, 617, 617, 617, 617,
- 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
-
- 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
- 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
- 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
- 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
- 617, 617, 617, 617, 702, 702, 65, 702, 702, 702,
- 702, 702, 702, 702, 702, 702, 702, 702, 702, 34,
- 702, 702, 32, 28, 23, 0, 702, 702, 702, 702,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 702, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-
- 0, 0, 0, 0, 0, 0, 0, 702, 702, 704,
- 704, 0, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 704, 704, 704, 704, 704, 704, 704, 704,
- 704, 704, 704, 704, 717, 717, 717, 717, 717, 717,
- 0, 717, 717, 717, 717, 717, 717, 717, 717, 0,
- 717, 717, 0, 0, 0, 0, 717, 717, 717, 717,
+ 161, 161, 161, 161, 1009, 161, 161, 350, 350, 369,
+ 606, 161, 161, 161, 161, 365, 365, 365, 365, 351,
+ 351, 373, 373, 350, 350, 350, 350, 542, 161, 1008,
+ 373, 357, 357, 351, 161, 351, 351, 351, 351, 391,
+ 391, 923, 357, 606, 357, 923, 351, 357, 357, 357,
+ 357, 542, 161, 161, 171, 542, 171, 171, 171, 171,
+ 370, 370, 351, 608, 370, 660, 171, 171, 374, 374,
+ 375, 375, 970, 171, 378, 378, 171, 374, 381, 381,
+ 171, 379, 379, 171, 393, 393, 375, 375, 375, 375,
+ 970, 171, 396, 396, 381, 381, 608, 370, 660, 171,
+ 174, 174, 1007, 174, 174, 174, 174, 174, 174, 174,
+
+ 174, 174, 174, 174, 174, 917, 174, 174, 352, 352,
+ 917, 378, 174, 174, 174, 174, 397, 397, 379, 385,
+ 385, 382, 382, 385, 352, 352, 352, 352, 385, 174,
+ 355, 355, 382, 860, 382, 352, 860, 382, 382, 382,
+ 382, 389, 389, 389, 389, 920, 355, 355, 355, 355,
+ 920, 352, 665, 174, 174, 175, 175, 355, 175, 175,
+ 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
+ 1005, 175, 175, 355, 376, 376, 1004, 175, 175, 175,
+ 175, 390, 390, 390, 390, 665, 383, 383, 376, 1003,
+ 376, 376, 376, 376, 175, 394, 394, 377, 377, 394,
+
+ 175, 376, 383, 383, 383, 395, 395, 428, 428, 395,
+ 430, 430, 430, 377, 377, 377, 377, 376, 175, 175,
+ 311, 311, 311, 311, 377, 398, 398, 399, 399, 311,
+ 311, 311, 394, 1002, 398, 436, 399, 436, 436, 1001,
+ 377, 967, 395, 311, 311, 311, 311, 311, 311, 313,
+ 313, 1000, 313, 313, 313, 313, 313, 313, 313, 313,
+ 313, 313, 313, 313, 977, 313, 313, 380, 380, 403,
+ 403, 313, 313, 313, 313, 406, 406, 470, 470, 400,
+ 400, 529, 529, 380, 380, 380, 380, 967, 313, 407,
+ 407, 406, 406, 999, 380, 400, 400, 400, 400, 996,
+
+ 407, 437, 407, 437, 437, 407, 407, 407, 407, 977,
+ 380, 995, 313, 313, 314, 314, 403, 314, 314, 314,
+ 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
+ 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
+ 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
+ 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
+ 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
+ 314, 314, 314, 314, 314, 314, 314, 314, 314, 315,
+ 315, 994, 315, 315, 315, 315, 315, 315, 315, 315,
+ 315, 315, 315, 315, 993, 315, 315, 401, 401, 688,
+
+ 524, 315, 315, 315, 315, 408, 408, 524, 552, 402,
+ 402, 401, 552, 401, 401, 401, 401, 552, 315, 404,
+ 404, 408, 408, 408, 401, 402, 402, 402, 402, 410,
+ 410, 524, 688, 410, 921, 524, 402, 315, 410, 921,
+ 401, 991, 315, 315, 335, 335, 335, 335, 414, 414,
+ 414, 414, 402, 335, 335, 335, 415, 415, 415, 415,
+ 422, 422, 422, 422, 547, 547, 404, 335, 335, 335,
+ 335, 335, 335, 337, 337, 337, 337, 337, 337, 989,
+ 337, 337, 337, 337, 337, 337, 337, 337, 965, 337,
+ 337, 405, 405, 601, 601, 337, 337, 337, 337, 965,
+
+ 423, 988, 423, 423, 423, 423, 965, 405, 405, 405,
+ 405, 924, 337, 423, 429, 924, 429, 987, 405, 429,
+ 429, 429, 429, 438, 438, 438, 438, 676, 676, 423,
+ 439, 439, 439, 439, 405, 986, 337, 337, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+
+ 338, 338, 338, 339, 339, 339, 339, 339, 339, 985,
+ 339, 339, 339, 339, 339, 339, 339, 339, 984, 339,
+ 339, 424, 424, 424, 424, 339, 339, 339, 339, 473,
+ 473, 473, 424, 427, 427, 427, 427, 440, 440, 440,
+ 440, 983, 339, 925, 427, 511, 511, 925, 424, 441,
+ 441, 441, 441, 471, 471, 471, 471, 442, 982, 442,
+ 427, 339, 442, 442, 442, 442, 339, 339, 359, 359,
+ 469, 469, 469, 469, 472, 472, 472, 472, 557, 557,
+ 479, 469, 502, 981, 359, 359, 359, 359, 479, 502,
+ 960, 479, 504, 359, 359, 359, 502, 469, 692, 504,
+
+ 958, 511, 530, 530, 530, 530, 504, 359, 359, 359,
+ 359, 359, 359, 361, 361, 361, 361, 361, 361, 361,
+ 361, 361, 361, 361, 361, 361, 361, 361, 557, 361,
+ 361, 692, 505, 506, 507, 361, 361, 361, 361, 505,
+ 506, 507, 531, 531, 531, 531, 505, 506, 507, 532,
+ 532, 532, 361, 517, 517, 517, 517, 517, 525, 957,
+ 525, 699, 699, 525, 525, 525, 525, 548, 548, 548,
+ 548, 550, 550, 550, 505, 956, 361, 361, 362, 362,
+ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
+ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
+
+ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
+ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
+ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
+ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
+ 362, 362, 362, 363, 363, 363, 363, 363, 363, 363,
+ 363, 363, 363, 363, 363, 363, 363, 363, 955, 363,
+ 363, 720, 720, 509, 953, 363, 363, 363, 363, 503,
+ 509, 556, 556, 508, 721, 721, 503, 509, 864, 510,
+ 508, 864, 363, 503, 570, 570, 510, 508, 549, 549,
+ 549, 549, 978, 510, 528, 528, 528, 528, 584, 584,
+
+ 1023, 363, 1023, 670, 509, 528, 363, 363, 384, 384,
+ 670, 508, 559, 559, 503, 508, 510, 670, 952, 556,
+ 951, 528, 565, 565, 384, 384, 384, 384, 559, 559,
+ 950, 565, 570, 384, 384, 384, 543, 978, 543, 571,
+ 571, 543, 543, 543, 543, 968, 584, 384, 384, 384,
+ 384, 384, 384, 386, 386, 386, 386, 386, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386, 949, 386,
+ 386, 546, 546, 546, 546, 386, 386, 386, 386, 604,
+ 604, 604, 546, 555, 555, 948, 708, 560, 560, 571,
+ 708, 968, 386, 926, 555, 708, 555, 926, 546, 555,
+
+ 555, 555, 555, 560, 560, 560, 560, 597, 947, 597,
+ 726, 726, 597, 597, 597, 597, 386, 386, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
+ 387, 387, 387, 388, 388, 388, 388, 388, 388, 388,
+ 388, 388, 388, 388, 388, 388, 388, 388, 946, 388,
+
+ 388, 558, 558, 579, 579, 388, 388, 388, 388, 562,
+ 562, 944, 579, 561, 561, 593, 593, 558, 558, 558,
+ 558, 772, 388, 943, 593, 562, 562, 562, 558, 561,
+ 561, 561, 561, 564, 564, 566, 566, 564, 671, 566,
+ 942, 388, 569, 569, 558, 671, 388, 388, 409, 409,
+ 727, 727, 671, 569, 772, 569, 738, 738, 569, 569,
+ 569, 569, 573, 573, 409, 409, 409, 409, 576, 576,
+ 564, 941, 566, 409, 409, 409, 578, 578, 573, 573,
+ 578, 585, 585, 940, 576, 576, 576, 409, 409, 409,
+ 409, 409, 409, 411, 411, 411, 411, 411, 411, 411,
+
+ 411, 411, 411, 411, 411, 411, 411, 411, 979, 411,
+ 411, 572, 572, 578, 682, 411, 411, 411, 411, 587,
+ 587, 682, 776, 574, 574, 739, 739, 572, 572, 572,
+ 572, 585, 411, 575, 575, 587, 587, 939, 572, 574,
+ 574, 574, 574, 602, 602, 602, 602, 938, 682, 575,
+ 575, 575, 575, 979, 572, 776, 411, 411, 412, 412,
+ 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
+ 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
+ 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
+ 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
+
+ 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
+ 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
+ 412, 412, 412, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413, 937, 413,
+ 413, 603, 603, 603, 603, 413, 413, 413, 413, 936,
+ 583, 583, 744, 744, 935, 580, 580, 586, 586, 580,
+ 934, 583, 413, 583, 745, 745, 583, 583, 583, 583,
+ 722, 722, 933, 586, 586, 586, 586, 588, 588, 722,
+ 932, 413, 756, 756, 586, 930, 413, 413, 431, 431,
+ 431, 431, 580, 588, 588, 588, 588, 431, 431, 431,
+
+ 586, 592, 592, 683, 971, 592, 611, 611, 611, 611,
+ 683, 431, 431, 431, 431, 431, 431, 433, 433, 908,
+ 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
+ 433, 433, 972, 433, 433, 589, 589, 683, 592, 433,
+ 433, 433, 433, 590, 590, 907, 600, 600, 600, 600,
+ 971, 589, 589, 589, 589, 868, 433, 600, 868, 590,
+ 590, 590, 612, 612, 612, 612, 684, 684, 684, 684,
+ 723, 723, 905, 600, 685, 685, 685, 685, 972, 723,
+ 433, 433, 434, 434, 904, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 434, 435, 435, 902,
+ 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
+ 435, 435, 901, 435, 435, 757, 757, 672, 673, 435,
+ 435, 435, 435, 900, 672, 673, 762, 762, 675, 594,
+ 594, 672, 673, 594, 674, 675, 435, 704, 704, 704,
+ 704, 674, 675, 705, 705, 705, 705, 897, 674, 729,
+
+ 729, 714, 714, 729, 896, 435, 763, 763, 672, 673,
+ 435, 435, 533, 533, 533, 533, 594, 714, 714, 714,
+ 714, 533, 533, 533, 716, 716, 980, 675, 674, 717,
+ 717, 768, 768, 768, 768, 533, 533, 533, 533, 533,
+ 533, 537, 537, 895, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 894, 537, 537, 715,
+ 715, 740, 740, 537, 537, 537, 537, 716, 732, 732,
+ 740, 980, 717, 733, 733, 715, 715, 715, 715, 927,
+ 537, 832, 832, 927, 732, 732, 732, 732, 893, 733,
+ 733, 733, 733, 741, 741, 747, 747, 765, 765, 747,
+
+ 891, 765, 741, 890, 537, 537, 538, 538, 889, 538,
+ 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
+ 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
+ 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
+ 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
+ 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
+ 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
+ 538, 551, 551, 551, 551, 734, 734, 888, 735, 735,
+ 551, 551, 551, 718, 718, 853, 853, 718, 887, 719,
+ 719, 854, 854, 719, 551, 551, 551, 551, 551, 551,
+
+ 553, 553, 553, 553, 553, 553, 886, 553, 553, 553,
+ 553, 553, 553, 553, 553, 803, 553, 553, 734, 884,
+ 718, 735, 553, 553, 553, 553, 719, 750, 750, 928,
+ 803, 751, 751, 928, 724, 724, 803, 883, 724, 553,
+ 855, 855, 882, 750, 750, 750, 750, 751, 751, 751,
+ 751, 758, 758, 759, 759, 769, 769, 769, 769, 881,
+ 758, 879, 759, 553, 553, 554, 554, 554, 554, 554,
+ 554, 724, 554, 554, 554, 554, 554, 554, 554, 554,
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+ 563, 563, 837, 857, 857, 858, 858, 859, 859, 837,
+ 861, 861, 862, 862, 863, 863, 563, 563, 563, 563,
+ 752, 752, 878, 753, 753, 563, 563, 563, 725, 725,
+ 867, 867, 725, 877, 736, 736, 876, 837, 736, 563,
+ 563, 563, 563, 563, 563, 567, 567, 567, 567, 567,
+ 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
+ 787, 567, 567, 752, 875, 725, 753, 567, 567, 567,
+
+ 567, 736, 929, 787, 911, 912, 929, 931, 874, 787,
+ 873, 911, 912, 913, 567, 913, 913, 962, 911, 912,
+ 931, 962, 964, 872, 964, 964, 931, 870, 962, 1017,
+ 1017, 1017, 869, 1017, 844, 962, 1052, 1052, 567, 567,
+ 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
+ 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
+ 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
+ 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
+ 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
+ 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
+
+ 568, 568, 568, 568, 568, 577, 577, 835, 914, 963,
+ 826, 915, 825, 963, 824, 914, 1053, 1053, 915, 823,
+ 963, 577, 577, 577, 577, 1054, 1054, 963, 830, 822,
+ 577, 577, 577, 737, 737, 830, 821, 737, 914, 742,
+ 742, 915, 830, 742, 577, 577, 577, 577, 577, 577,
+ 581, 581, 581, 581, 581, 581, 581, 581, 581, 581,
+ 581, 581, 581, 581, 581, 820, 581, 581, 966, 819,
+ 737, 829, 581, 581, 581, 581, 742, 830, 829, 966,
+ 1018, 1018, 1018, 818, 817, 829, 966, 816, 815, 581,
+ 1019, 1019, 1019, 812, 1019, 1020, 1020, 1020, 1021, 1021,
+
+ 1021, 811, 1021, 1022, 1022, 1022, 809, 807, 805, 804,
+ 829, 802, 801, 581, 581, 582, 582, 582, 582, 582,
+ 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
+ 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
+ 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
+ 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
+ 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
+ 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
+ 591, 591, 800, 799, 798, 797, 796, 795, 794, 792,
+ 791, 790, 789, 786, 784, 783, 591, 591, 591, 591,
+
+ 782, 780, 775, 838, 771, 591, 591, 591, 743, 743,
+ 838, 770, 743, 767, 754, 754, 749, 731, 754, 591,
+ 591, 591, 591, 591, 591, 595, 595, 595, 595, 595,
+ 595, 595, 595, 595, 595, 595, 595, 595, 595, 595,
+ 838, 595, 595, 713, 711, 743, 909, 595, 595, 595,
+ 595, 754, 707, 909, 706, 701, 700, 698, 696, 691,
+ 909, 687, 686, 681, 595, 680, 679, 678, 669, 668,
+ 663, 659, 658, 657, 656, 655, 654, 652, 651, 650,
+ 649, 648, 647, 909, 645, 644, 643, 642, 595, 595,
+ 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
+
+ 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
+ 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
+ 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
+ 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
+ 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
+ 596, 596, 596, 596, 596, 605, 605, 605, 605, 641,
+ 640, 639, 910, 638, 605, 605, 605, 755, 755, 910,
+ 637, 755, 635, 760, 760, 634, 910, 760, 605, 605,
+ 605, 605, 605, 605, 609, 609, 633, 609, 609, 609,
+ 609, 609, 609, 609, 609, 609, 609, 609, 609, 910,
+
+ 609, 609, 632, 631, 755, 630, 609, 609, 609, 609,
+ 760, 629, 628, 627, 761, 761, 626, 625, 761, 623,
+ 622, 621, 620, 609, 619, 618, 617, 616, 615, 614,
+ 607, 599, 598, 545, 544, 541, 540, 539, 535, 527,
+ 526, 523, 522, 521, 520, 515, 514, 609, 609, 610,
+ 610, 761, 610, 610, 610, 610, 610, 610, 610, 610,
+ 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
+ 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
+ 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
+ 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
+
+ 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
+ 610, 610, 610, 610, 695, 695, 513, 695, 695, 695,
+ 695, 695, 695, 695, 695, 695, 695, 695, 695, 512,
+ 695, 695, 501, 827, 498, 495, 695, 695, 695, 695,
+ 827, 493, 492, 491, 490, 489, 488, 827, 487, 486,
+ 485, 484, 483, 695, 482, 481, 480, 478, 477, 476,
+ 475, 467, 466, 465, 464, 463, 462, 461, 460, 459,
+ 458, 457, 455, 454, 452, 827, 451, 695, 695, 697,
+ 697, 450, 697, 697, 697, 697, 697, 697, 697, 697,
+ 697, 697, 697, 697, 697, 697, 697, 697, 697, 697,
+
+ 697, 697, 697, 697, 697, 697, 697, 697, 697, 697,
+ 697, 697, 697, 697, 697, 697, 697, 697, 697, 697,
+ 697, 697, 697, 697, 697, 697, 697, 697, 697, 697,
+ 697, 697, 697, 697, 697, 697, 697, 697, 697, 697,
+ 697, 697, 697, 697, 710, 710, 710, 710, 710, 710,
+ 449, 710, 710, 710, 710, 710, 710, 710, 710, 448,
+ 710, 710, 447, 446, 445, 444, 710, 710, 710, 710,
+ 426, 828, 425, 421, 330, 329, 319, 318, 828, 317,
+ 306, 305, 301, 710, 291, 828, 288, 287, 283, 277,
+ 276, 274, 273, 272, 270, 269, 247, 245, 244, 237,
+
+ 236, 234, 228, 227, 226, 219, 218, 710, 710, 712,
+ 712, 712, 712, 712, 712, 828, 712, 712, 712, 712,
+ 712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+ 712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+ 712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+ 712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+ 712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
+ 712, 712, 712, 712, 728, 728, 728, 728, 728, 728,
+ 728, 728, 728, 728, 728, 728, 728, 728, 728, 217,
+ 728, 728, 215, 210, 208, 207, 728, 728, 728, 728,
+
+ 205, 204, 203, 193, 173, 168, 166, 117, 107, 102,
+ 97, 92, 90, 728, 81, 76, 65, 34, 32, 28,
+ 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 728, 728, 730,
+ 730, 730, 730, 730, 730, 730, 730, 730, 730, 730,
+ 730, 730, 730, 730, 730, 730, 730, 730, 730, 730,
+ 730, 730, 730, 730, 730, 730, 730, 730, 730, 730,
+ 730, 730, 730, 730, 730, 730, 730, 730, 730, 730,
+ 730, 730, 730, 730, 730, 730, 730, 730, 730, 730,
+ 730, 730, 730, 730, 730, 730, 730, 730, 730, 730,
+
+ 730, 730, 730, 730, 746, 746, 746, 746, 746, 746,
+ 746, 746, 746, 746, 746, 746, 746, 746, 746, 0,
+ 746, 746, 0, 0, 0, 0, 746, 746, 746, 746,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 717, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 717, 717, 719,
- 719, 719, 719, 719, 719, 0, 719, 719, 719, 719,
- 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
- 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
- 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
- 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
- 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
-
- 719, 719, 719, 719, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735, 735, 0,
- 735, 735, 0, 0, 0, 0, 735, 735, 735, 735,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 746, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 735, 735, 737,
- 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
- 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
- 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
-
- 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
- 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
- 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
- 737, 737, 737, 737, 753, 753, 753, 753, 753, 753,
- 753, 753, 753, 753, 753, 753, 753, 753, 753, 0,
- 753, 753, 0, 0, 0, 0, 753, 753, 753, 753,
+ 0, 0, 0, 0, 0, 0, 0, 746, 746, 748,
+ 748, 748, 748, 748, 748, 748, 748, 748, 748, 748,
+ 748, 748, 748, 748, 748, 748, 748, 748, 748, 748,
+ 748, 748, 748, 748, 748, 748, 748, 748, 748, 748,
+
+ 748, 748, 748, 748, 748, 748, 748, 748, 748, 748,
+ 748, 748, 748, 748, 748, 748, 748, 748, 748, 748,
+ 748, 748, 748, 748, 748, 748, 748, 748, 748, 748,
+ 748, 748, 748, 748, 764, 764, 764, 764, 764, 764,
+ 764, 764, 764, 764, 764, 764, 764, 764, 764, 0,
+ 764, 764, 0, 0, 0, 0, 764, 764, 764, 764,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 753, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 764, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 753, 753, 755,
+ 0, 0, 0, 0, 0, 0, 0, 764, 764, 766,
- 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
- 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
- 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
- 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
- 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
- 755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
- 755, 755, 755, 755, 771, 771, 771, 771, 771, 771,
- 771, 771, 771, 771, 771, 771, 771, 771, 771, 0,
- 771, 771, 0, 0, 0, 0, 771, 771, 771, 771,
+ 766, 766, 766, 766, 766, 766, 766, 766, 766, 766,
+ 766, 766, 766, 766, 766, 766, 766, 766, 766, 766,
+ 766, 766, 766, 766, 766, 766, 766, 766, 766, 766,
+ 766, 766, 766, 766, 766, 766, 766, 766, 766, 766,
+ 766, 766, 766, 766, 766, 766, 766, 766, 766, 766,
+ 766, 766, 766, 766, 766, 766, 766, 766, 766, 766,
+ 766, 766, 766, 766, 779, 779, 0, 779, 779, 779,
+ 779, 779, 779, 779, 779, 779, 779, 779, 779, 0,
+ 779, 779, 0, 0, 0, 0, 779, 779, 779, 779,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 771, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 779, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 771, 771, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
- 773, 773, 773, 773, 786, 786, 0, 786, 786, 786,
+ 0, 0, 0, 0, 0, 0, 0, 779, 779, 781,
+ 781, 0, 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 841, 841, 0, 841, 841, 841,
+
+ 841, 841, 841, 841, 841, 841, 841, 841, 841, 841,
+ 841, 841, 841, 841, 841, 841, 841, 841, 841, 841,
+ 841, 841, 841, 841, 841, 841, 841, 841, 841, 841,
+ 841, 841, 841, 841, 841, 841, 841, 841, 841, 841,
+ 841, 841, 841, 841, 841, 841, 841, 841, 841, 841,
+ 841, 841, 841, 841, 841, 841, 841, 841, 841, 851,
+ 851, 851, 851, 851, 851, 0, 851, 851, 851, 851,
+ 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
+ 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
+ 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
+
+ 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
+ 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
+ 851, 851, 851, 851, 1088, 0, 1088, 1088, 1088, 1088,
+ 1088, 1088, 1088, 1088, 1088, 1089, 0, 0, 1089, 1089,
+ 1090, 0, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090,
+ 1090, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1092,
+ 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,
+ 1093, 1093, 1093, 1093, 1094, 0, 1094, 0, 1094, 1094,
+ 1094, 1094, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1096,
+ 0, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096,
- 786, 786, 786, 786, 786, 786, 786, 786, 786, 0,
- 786, 786, 0, 0, 0, 0, 786, 786, 786, 786,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 786, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 786, 786, 788,
- 788, 0, 788, 788, 788, 788, 788, 788, 788, 788,
- 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
- 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
- 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
-
- 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
- 788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
- 788, 788, 788, 788, 848, 848, 0, 848, 848, 848,
- 848, 848, 848, 848, 848, 848, 848, 848, 848, 848,
- 848, 848, 848, 848, 848, 848, 848, 848, 848, 848,
- 848, 848, 848, 848, 848, 848, 848, 848, 848, 848,
- 848, 848, 848, 848, 848, 848, 848, 848, 848, 848,
- 848, 848, 848, 848, 848, 848, 848, 848, 848, 848,
- 848, 848, 848, 848, 848, 848, 848, 848, 848, 858,
- 858, 858, 858, 858, 858, 0, 858, 858, 858, 858,
-
- 858, 858, 858, 858, 858, 858, 858, 858, 858, 858,
- 858, 858, 858, 858, 858, 858, 858, 858, 858, 858,
- 858, 858, 858, 858, 858, 858, 858, 858, 858, 858,
- 858, 858, 858, 858, 858, 858, 858, 858, 858, 858,
- 858, 858, 858, 858, 858, 858, 858, 858, 858, 858,
- 858, 858, 858, 858, 1095, 0, 1095, 1095, 1095, 1095,
- 1095, 1095, 1095, 1095, 1095, 1096, 0, 0, 1096, 1096,
1097, 0, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
- 1097, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1099,
- 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
-
- 1100, 1100, 1100, 1100, 1101, 0, 1101, 0, 1101, 1101,
- 1101, 1101, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1103,
- 0, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
- 1104, 0, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
- 1104, 1105, 0, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
- 1105, 1105, 1106, 0, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
- 1108, 1108, 0, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
- 1108, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1110, 1110, 0, 1110, 1110, 1110, 1110, 1110,
-
- 1110, 1110, 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
- 1111, 1111, 1111, 1111, 1112, 1112, 1112, 1112, 1112, 1112,
- 1112, 1112, 1112, 1112, 1112, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1114, 1114, 1114, 1114,
- 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1115, 1115, 1115,
- 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1116, 1116,
- 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1117,
- 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
-
- 1119, 1119, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
- 1120, 1120, 1120, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
- 1121, 1121, 1121, 1121, 1122, 1122, 1122, 1122, 1122, 1122,
- 1122, 1122, 1122, 1122, 1122, 1123, 0, 1123, 1123, 1123,
- 1123, 1123, 1123, 1123, 1123, 1123, 1124, 0, 1124, 1124,
- 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1125, 0, 1125,
- 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1126, 0,
- 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1127,
- 0, 0, 1127, 1127, 1128, 0, 1128, 1128, 1128, 1128,
- 1128, 1128, 1128, 1128, 1128, 1129, 0, 0, 1129, 1129,
-
- 1129, 1130, 0, 0, 1130, 1131, 1131, 1131, 1131, 1131,
- 1131, 1131, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
- 1133, 0, 0, 0, 0, 1133, 1133, 1133, 1133, 1134,
- 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
- 1135, 1135, 1135, 1135, 1135, 1135, 1136, 1136, 1136, 1136,
- 1137, 0, 1137, 1137, 1137, 1137, 1138, 1138, 1138, 1138,
- 1138, 1138, 1138, 1139, 0, 1139, 1139, 1139, 1139, 1139,
- 1139, 1139, 1139, 1139, 1140, 0, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1141, 0, 1141, 1141, 1141,
- 1141, 1141, 1141, 1141, 1141, 1141, 1142, 0, 1142, 1142,
-
- 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1143, 1143, 0,
- 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1144, 1144,
- 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1145,
- 1145, 0, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
- 1147, 1147, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
- 1148, 1148, 1148, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
- 1149, 1149, 1149, 1149, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1151, 1151, 1151, 1151, 1151,
-
- 1151, 1151, 1151, 1151, 1151, 1151, 1152, 1152, 1152, 1152,
- 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1153, 1153, 1153,
- 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1154, 1154,
- 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1155,
- 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
- 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
- 1156, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
- 1157, 1157, 1158, 0, 1158, 1158, 1158, 1158, 1158, 1158,
- 1158, 1158, 1158, 1159, 0, 1159, 1159, 1159, 1159, 1159,
- 1159, 1159, 1159, 1159, 1160, 0, 1160, 1160, 1160, 1160,
-
- 1160, 1160, 1160, 1160, 1160, 1161, 0, 1161, 1161, 1161,
- 1161, 1161, 1161, 1161, 1161, 1161, 1162, 0, 0, 1162,
- 1162, 1163, 0, 0, 1163, 1163, 1163, 1164, 0, 0,
- 1164, 1165, 0, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
- 1165, 1165, 1166, 0, 1166, 1166, 1166, 1166, 1166, 1166,
- 1166, 1166, 1166, 1167, 0, 1167, 1167, 1167, 1167, 1167,
- 1167, 1167, 1167, 1167, 1168, 1168, 1168, 1168, 1168, 1168,
- 1168, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170,
- 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
- 1171, 1171, 1171, 1171, 1171, 1171, 1172, 0, 1172, 1172,
-
- 1172, 1172, 1173, 0, 1173, 1173, 1173, 1173, 1174, 1174,
- 1174, 1174, 1174, 1174, 1174, 1175, 0, 1175, 1175, 1175,
- 1175, 1175, 1175, 1175, 1175, 1175, 1176, 0, 1176, 1176,
- 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177, 0, 1177,
- 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178, 0,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179,
- 0, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
- 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1181, 1181, 0,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1182,
- 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1183,
-
- 1183, 0, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
- 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
- 1184, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
- 1185, 1185, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
- 1186, 1186, 1186, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
- 1187, 1187, 1187, 1187, 1188, 1188, 1188, 1188, 1188, 1188,
- 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1189, 1189,
- 1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190, 1190,
- 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1191, 1191, 1191,
- 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1192, 1192,
-
- 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1193,
- 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
- 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
- 1194, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
- 1195, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
- 1196, 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
- 1197, 1197, 1197, 1197, 1198, 1198, 1198, 1198, 1198, 1198,
- 1198, 1198, 1198, 1198, 1198, 1199, 0, 1199, 1199, 1199,
- 1199, 1199, 1199, 1199, 1199, 1199, 1200, 0, 1200, 1200,
- 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201, 0, 1201,
-
- 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1202, 0,
- 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1203,
- 0, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1204, 0, 0, 1204, 1204, 1204, 1205, 0, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1206, 0, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1207, 0,
- 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1208,
- 1208, 1208, 1208, 1208, 1208, 1208, 1209, 1209, 1209, 1209,
- 1209, 1209, 1209, 1209, 1210, 1210, 1210, 1210, 1210, 1210,
- 1210, 1210, 1210, 1210, 1210, 1211, 0, 1211, 1211, 1211,
-
- 1211, 1212, 0, 1212, 1212, 1212, 1212, 1213, 1213, 1213,
- 1213, 1213, 1213, 1213, 1214, 0, 1214, 1214, 1214, 1214,
- 1214, 1214, 1214, 1214, 1214, 1215, 0, 1215, 1215, 1215,
- 1215, 1215, 1215, 1215, 1215, 1215, 1216, 0, 1216, 1216,
- 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1217, 0, 1217,
- 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1218, 0,
- 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1219,
- 1219, 1219, 1219, 1219, 1219, 1219, 1220, 1220, 0, 1220,
- 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1221, 1221, 1221,
- 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1222, 1222,
-
- 0, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1223,
- 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
- 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224,
- 1224, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225,
- 1225, 1225, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226,
- 1226, 1226, 1226, 1227, 1227, 1227, 1227, 1227, 1227, 1227,
- 1227, 1227, 1227, 1227, 1228, 1228, 1228, 1228, 1228, 1228,
- 1228, 1228, 1228, 1228, 1228, 1229, 1229, 1229, 1229, 1229,
- 1229, 1229, 1229, 1229, 1229, 1229, 1230, 1230, 1230, 1230,
- 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1231, 1231, 1231,
-
- 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1232, 1232,
- 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1233,
- 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233,
- 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
- 1234, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235,
- 1235, 1235, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
- 1236, 1236, 1236, 1237, 1237, 1237, 1237, 1237, 1237, 1237,
- 1237, 1237, 1237, 1237, 1238, 0, 1238, 1238, 1238, 1238,
- 1238, 1238, 1238, 1238, 1238, 1239, 0, 1239, 1239, 1239,
- 1239, 1239, 1239, 1239, 1239, 1239, 1240, 0, 1240, 1240,
-
+ 1097, 1098, 0, 1098, 1098, 1098, 1098, 1098, 1098, 1098,
+ 1098, 1098, 1099, 0, 1099, 1099, 1099, 1099, 1099, 1099,
+ 1099, 1099, 1099, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
+ 1101, 1101, 0, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
+ 1101, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
+ 1102, 1102, 1103, 1103, 0, 1103, 1103, 1103, 1103, 1103,
+ 1103, 1103, 1103, 1104, 1104, 1104, 1104, 1104, 1104, 1104,
+ 1104, 1104, 1104, 1104, 1105, 1105, 1105, 1105, 1105, 1105,
+ 1105, 1105, 1105, 1105, 1105, 1106, 1106, 1106, 1106, 1106,
+
+ 1106, 1106, 1106, 1106, 1106, 1106, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1108, 1108, 1108,
+ 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1110,
+ 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
+ 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
+ 1111, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112,
+ 1112, 1112, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
+ 1114, 1114, 1114, 1114, 1115, 1115, 1115, 1115, 1115, 1115,
+
+ 1115, 1115, 1115, 1115, 1115, 1116, 0, 1116, 1116, 1116,
+ 1116, 1116, 1116, 1116, 1116, 1116, 1117, 0, 1117, 1117,
+ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1118, 0, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, 0,
+ 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1120,
+ 0, 0, 1120, 1120, 1121, 0, 1121, 1121, 1121, 1121,
+ 1121, 1121, 1121, 1121, 1121, 1122, 0, 0, 1122, 1122,
+ 1122, 1123, 0, 0, 1123, 1124, 1124, 1124, 1124, 1124,
+ 1124, 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
+ 1126, 0, 0, 0, 0, 1126, 1126, 1126, 1126, 1127,
+
+ 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
+ 1128, 1128, 1128, 1128, 1128, 1128, 1129, 1129, 1129, 1129,
+ 1130, 0, 1130, 1130, 1130, 1130, 1131, 1131, 1131, 1131,
+ 1131, 1131, 1131, 1132, 0, 1132, 1132, 1132, 1132, 1132,
+ 1132, 1132, 1132, 1132, 1133, 0, 1133, 1133, 1133, 1133,
+ 1133, 1133, 1133, 1133, 1133, 1134, 0, 1134, 1134, 1134,
+ 1134, 1134, 1134, 1134, 1134, 1134, 1135, 0, 1135, 1135,
+ 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1136, 1136, 0,
+ 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1137, 1137,
+ 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1138,
+
+ 1138, 0, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
+ 1139, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
+ 1140, 1140, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
+ 1141, 1141, 1141, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
+ 1142, 1142, 1142, 1142, 1143, 1143, 1143, 1143, 1143, 1143,
+ 1143, 1143, 1143, 1143, 1143, 1144, 1144, 1144, 1144, 1144,
+ 1144, 1144, 1144, 1144, 1144, 1144, 1145, 1145, 1145, 1145,
+ 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1146, 1146, 1146,
+ 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1147, 1147,
+
+ 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
+ 1149, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
+ 1150, 1150, 1151, 0, 1151, 1151, 1151, 1151, 1151, 1151,
+ 1151, 1151, 1151, 1152, 0, 1152, 1152, 1152, 1152, 1152,
+ 1152, 1152, 1152, 1152, 1153, 0, 1153, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1154, 0, 1154, 1154, 1154,
+ 1154, 1154, 1154, 1154, 1154, 1154, 1155, 0, 0, 1155,
+ 1155, 1156, 0, 0, 1156, 1156, 1156, 1157, 0, 0,
+
+ 1157, 1158, 0, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
+ 1158, 1158, 1159, 0, 1159, 1159, 1159, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1160, 0, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1161, 1161, 1161, 1161, 1161, 1161,
+ 1161, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1163,
+ 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
+ 1164, 1164, 1164, 1164, 1164, 1164, 1165, 0, 1165, 1165,
+ 1165, 1165, 1166, 0, 1166, 1166, 1166, 1166, 1167, 1167,
+ 1167, 1167, 1167, 1167, 1167, 1168, 0, 1168, 1168, 1168,
+ 1168, 1168, 1168, 1168, 1168, 1168, 1169, 0, 1169, 1169,
+
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170, 0, 1170,
+ 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1171, 0,
+ 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1172,
+ 0, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1174, 1174, 0,
+ 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1175, 1175,
+ 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1176,
+ 1176, 0, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+
+ 1178, 1178, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
+ 1179, 1179, 1179, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
+ 1180, 1180, 1180, 1180, 1181, 1181, 1181, 1181, 1181, 1181,
+ 1181, 1181, 1181, 1181, 1181, 1182, 1182, 1182, 1182, 1182,
+ 1182, 1182, 1182, 1182, 1182, 1182, 1183, 1183, 1183, 1183,
+ 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1184, 1184, 1184,
+ 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1185, 1185,
+ 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1186,
+ 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
+ 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+
+ 1187, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+ 1188, 1188, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1191, 1191, 1191, 1191, 1191, 1191,
+ 1191, 1191, 1191, 1191, 1191, 1192, 0, 1192, 1192, 1192,
+ 1192, 1192, 1192, 1192, 1192, 1192, 1193, 0, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1194, 0, 1194,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 0,
+ 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1196,
+ 0, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+
+ 1197, 0, 0, 1197, 1197, 1197, 1198, 0, 1198, 1198,
+ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1199, 0, 1199,
+ 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 0,
+ 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201,
+ 1201, 1201, 1201, 1201, 1201, 1201, 1202, 1202, 1202, 1202,
+ 1202, 1202, 1202, 1202, 1203, 1203, 1203, 1203, 1203, 1203,
+ 1203, 1203, 1203, 1203, 1203, 1204, 0, 1204, 1204, 1204,
+ 1204, 1205, 0, 1205, 1205, 1205, 1205, 1206, 1206, 1206,
+ 1206, 1206, 1206, 1206, 1207, 0, 1207, 1207, 1207, 1207,
+ 1207, 1207, 1207, 1207, 1207, 1208, 0, 1208, 1208, 1208,
+
+ 1208, 1208, 1208, 1208, 1208, 1208, 1209, 0, 1209, 1209,
+ 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1210, 0, 1210,
+ 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1211, 0,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1213, 1213, 0, 1213,
+ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214, 1214,
+ 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1215, 1215,
+ 0, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1216,
+ 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+
+ 1217, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218,
+ 1218, 1218, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
+ 1219, 1219, 1219, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
+ 1220, 1220, 1220, 1220, 1221, 1221, 1221, 1221, 1221, 1221,
+ 1221, 1221, 1221, 1221, 1221, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1224, 1224, 1224,
+ 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1225, 1225,
+ 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1226,
+ 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226,
+
+ 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227,
+ 1227, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228,
+ 1228, 1228, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229,
+ 1229, 1229, 1229, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
+ 1230, 1230, 1230, 1230, 1231, 0, 1231, 1231, 1231, 1231,
+ 1231, 1231, 1231, 1231, 1231, 1232, 0, 1232, 1232, 1232,
+ 1232, 1232, 1232, 1232, 1232, 1232, 1233, 0, 1233, 1233,
+ 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1234, 0, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1235, 0,
+ 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1236,
+
+ 0, 0, 1236, 1236, 1236, 1237, 1237, 1237, 1237, 1237,
+ 1237, 1237, 1237, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
+ 1238, 1238, 1238, 1238, 1239, 0, 1239, 1239, 1239, 1239,
1240, 1240, 1240, 1240, 1240, 1240, 1240, 1241, 0, 1241,
- 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1242, 0,
- 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1243,
- 0, 0, 1243, 1243, 1243, 1244, 1244, 1244, 1244, 1244,
- 1244, 1244, 1244, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1246, 0, 1246, 1246, 1246, 1246,
- 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1248, 0, 1248,
- 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1249, 1249,
- 1249, 1249, 1249, 1249, 1249, 1250, 1250, 0, 1250, 1250,
- 1250, 1250, 1250, 1250, 1250, 1250, 1094, 1094, 1094, 1094,
-
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094,
- 1094, 1094
+ 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1243, 1243, 0, 1243, 1243,
+ 1243, 1243, 1243, 1243, 1243, 1243, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
+ 1087, 1087
} ;
/* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[149] =
+static yyconst flex_int32_t yy_rule_can_match_eol[148] =
{ 0,
0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2432,8 +2402,8 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, };
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, };
/* The intent behind this definition is that it'll catch
* any uses of REJECT which flex missed.
@@ -2466,7 +2436,6 @@
#include "imc.h"
#include "parser.h"
-// typedef struct yyguts_t yyguts_t;
typedef struct parser_state_t parser_state_t;
/* parser state structure
@@ -2545,7 +2514,7 @@
-#line 2549 "compilers/imcc/imclexer.c"
+#line 2518 "compilers/imcc/imclexer.c"
#define INITIAL 0
#define emit 1
@@ -2785,7 +2754,7 @@
register int yy_act;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
-#line 157 "compilers/imcc/imcc.l"
+#line 154 "compilers/imcc/imcc.l"
/* for emacs "*/
if (IMCC_INFO(interp)->expect_pasm == 1 && !IMCC_INFO(interp)->in_pod) {
@@ -2804,7 +2773,7 @@
return 0;
}
-#line 2808 "compilers/imcc/imclexer.c"
+#line 2777 "compilers/imcc/imclexer.c"
if ( !yyg->yy_init )
{
@@ -2858,13 +2827,13 @@
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1095 )
+ if ( yy_current_state >= 1088 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_current_state != 1094 );
+ while ( yy_current_state != 1087 );
yy_cp = yyg->yy_last_accepting_cpos;
yy_current_state = yyg->yy_last_accepting_state;
@@ -2898,13 +2867,13 @@
case 1:
YY_RULE_SETUP
-#line 175 "compilers/imcc/imcc.l"
+#line 172 "compilers/imcc/imcc.l"
{ SET_LINE_NUMBER; }
YY_BREAK
case 2:
/* rule 2 can match eol */
YY_RULE_SETUP
-#line 177 "compilers/imcc/imcc.l"
+#line 174 "compilers/imcc/imcc.l"
{
SET_LINE_NUMBER;
IMCC_INFO(interp)->frames->heredoc_rest = mem_sys_strdup(yytext);
@@ -2914,7 +2883,7 @@
case 3:
/* rule 3 can match eol */
YY_RULE_SETUP
-#line 183 "compilers/imcc/imcc.l"
+#line 180 "compilers/imcc/imcc.l"
{
/* heredocs have highest priority
* arrange them before all wildcard state matches */
@@ -2930,7 +2899,7 @@
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 196 "compilers/imcc/imcc.l"
+#line 193 "compilers/imcc/imcc.l"
{
SET_LINE_NUMBER;
/* Are we at the end of the heredoc? */
@@ -2955,8 +2924,6 @@
yy_pop_state(yyscanner);
yy_scan_string(IMCC_INFO(interp)->frames->heredoc_rest,yyscanner);
- /* not sure we need this decrement; more testing needed */
- IMCC_INFO(interp)->line--;
return STRINGC;
}
else {
@@ -2973,7 +2940,7 @@
case 5:
/* rule 5 can match eol */
YY_RULE_SETUP
-#line 235 "compilers/imcc/imcc.l"
+#line 230 "compilers/imcc/imcc.l"
{
yy_pop_state(yyscanner);
yy_push_state(cmt3, yyscanner);
@@ -2986,7 +2953,7 @@
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 245 "compilers/imcc/imcc.l"
+#line 240 "compilers/imcc/imcc.l"
{
yy_pop_state(yyscanner);
yy_push_state(cmt4, yyscanner);
@@ -2994,17 +2961,17 @@
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 250 "compilers/imcc/imcc.l"
+#line 245 "compilers/imcc/imcc.l"
{ yy_push_state(cmt2, yyscanner); }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 252 "compilers/imcc/imcc.l"
+#line 247 "compilers/imcc/imcc.l"
{ yy_push_state(cmt1, yyscanner); }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 254 "compilers/imcc/imcc.l"
+#line 249 "compilers/imcc/imcc.l"
{
yylineno = IMCC_INFO(interp)->line = atoi(yytext);
yy_pop_state(yyscanner);
@@ -3015,7 +2982,7 @@
case 10:
/* rule 10 can match eol */
YY_RULE_SETUP
-#line 261 "compilers/imcc/imcc.l"
+#line 256 "compilers/imcc/imcc.l"
{
yy_pop_state(yyscanner);
}
@@ -3023,7 +2990,7 @@
case 11:
/* rule 11 can match eol */
YY_RULE_SETUP
-#line 265 "compilers/imcc/imcc.l"
+#line 260 "compilers/imcc/imcc.l"
{
if (IMCC_INFO(interp)->expect_pasm == 2)
BEGIN(INITIAL);
@@ -3035,7 +3002,7 @@
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 274 "compilers/imcc/imcc.l"
+#line 269 "compilers/imcc/imcc.l"
{
yy_push_state(cmt5, yyscanner);
}
@@ -3043,7 +3010,7 @@
case 13:
/* rule 13 can match eol */
YY_RULE_SETUP
-#line 278 "compilers/imcc/imcc.l"
+#line 273 "compilers/imcc/imcc.l"
{
if (IMCC_INFO(interp)->expect_pasm == 2)
BEGIN(INITIAL);
@@ -3058,7 +3025,7 @@
case 14:
/* rule 14 can match eol */
YY_RULE_SETUP
-#line 290 "compilers/imcc/imcc.l"
+#line 285 "compilers/imcc/imcc.l"
{
/* this is a stand-alone =cut, but we're not in POD mode, so ignore. */
SET_LINE_NUMBER;
@@ -3067,7 +3034,7 @@
case 15:
/* rule 15 can match eol */
YY_RULE_SETUP
-#line 295 "compilers/imcc/imcc.l"
+#line 290 "compilers/imcc/imcc.l"
{
SET_LINE_NUMBER;
IMCC_INFO(interp)->in_pod = 1;
@@ -3077,7 +3044,7 @@
case 16:
/* rule 16 can match eol */
YY_RULE_SETUP
-#line 301 "compilers/imcc/imcc.l"
+#line 296 "compilers/imcc/imcc.l"
{
SET_LINE_NUMBER;
IMCC_INFO(interp)->in_pod = 0;
@@ -3086,478 +3053,478 @@
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 307 "compilers/imcc/imcc.l"
+#line 302 "compilers/imcc/imcc.l"
{ SET_LINE_NUMBER; }
YY_BREAK
case 18:
/* rule 18 can match eol */
YY_RULE_SETUP
-#line 309 "compilers/imcc/imcc.l"
+#line 304 "compilers/imcc/imcc.l"
{ /* ignore */ }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 311 "compilers/imcc/imcc.l"
+#line 306 "compilers/imcc/imcc.l"
return TK_LINE;
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 312 "compilers/imcc/imcc.l"
+#line 307 "compilers/imcc/imcc.l"
return TK_FILE;
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 313 "compilers/imcc/imcc.l"
+#line 308 "compilers/imcc/imcc.l"
return ANNOTATE;
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 314 "compilers/imcc/imcc.l"
+#line 309 "compilers/imcc/imcc.l"
return LEXICAL;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 315 "compilers/imcc/imcc.l"
+#line 310 "compilers/imcc/imcc.l"
return ARG;
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 316 "compilers/imcc/imcc.l"
+#line 311 "compilers/imcc/imcc.l"
return SUB;
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 317 "compilers/imcc/imcc.l"
+#line 312 "compilers/imcc/imcc.l"
return ESUB;
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 318 "compilers/imcc/imcc.l"
+#line 313 "compilers/imcc/imcc.l"
return PCC_BEGIN;
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 319 "compilers/imcc/imcc.l"
+#line 314 "compilers/imcc/imcc.l"
return PCC_END;
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 320 "compilers/imcc/imcc.l"
+#line 315 "compilers/imcc/imcc.l"
return PCC_CALL;
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 321 "compilers/imcc/imcc.l"
+#line 316 "compilers/imcc/imcc.l"
return NCI_CALL;
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 322 "compilers/imcc/imcc.l"
+#line 317 "compilers/imcc/imcc.l"
return METH_CALL;
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 323 "compilers/imcc/imcc.l"
+#line 318 "compilers/imcc/imcc.l"
return INVOCANT;
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 324 "compilers/imcc/imcc.l"
+#line 319 "compilers/imcc/imcc.l"
return PCC_SUB;
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 325 "compilers/imcc/imcc.l"
+#line 320 "compilers/imcc/imcc.l"
return PCC_BEGIN_RETURN;
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 326 "compilers/imcc/imcc.l"
+#line 321 "compilers/imcc/imcc.l"
return PCC_END_RETURN;
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 327 "compilers/imcc/imcc.l"
+#line 322 "compilers/imcc/imcc.l"
return PCC_BEGIN_YIELD;
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 328 "compilers/imcc/imcc.l"
+#line 323 "compilers/imcc/imcc.l"
return PCC_END_YIELD;
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 330 "compilers/imcc/imcc.l"
+#line 325 "compilers/imcc/imcc.l"
return METHOD;
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 331 "compilers/imcc/imcc.l"
+#line 326 "compilers/imcc/imcc.l"
return MULTI;
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 332 "compilers/imcc/imcc.l"
+#line 327 "compilers/imcc/imcc.l"
return MAIN;
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 333 "compilers/imcc/imcc.l"
+#line 328 "compilers/imcc/imcc.l"
return LOAD;
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 334 "compilers/imcc/imcc.l"
+#line 329 "compilers/imcc/imcc.l"
return INIT;
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 335 "compilers/imcc/imcc.l"
+#line 330 "compilers/imcc/imcc.l"
return IMMEDIATE;
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 336 "compilers/imcc/imcc.l"
+#line 331 "compilers/imcc/imcc.l"
return POSTCOMP;
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 337 "compilers/imcc/imcc.l"
+#line 332 "compilers/imcc/imcc.l"
return ANON;
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 338 "compilers/imcc/imcc.l"
+#line 333 "compilers/imcc/imcc.l"
return OUTER;
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 339 "compilers/imcc/imcc.l"
+#line 334 "compilers/imcc/imcc.l"
return NEED_LEX;
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 340 "compilers/imcc/imcc.l"
+#line 335 "compilers/imcc/imcc.l"
return VTABLE_METHOD;
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 341 "compilers/imcc/imcc.l"
+#line 336 "compilers/imcc/imcc.l"
return NS_ENTRY;
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 342 "compilers/imcc/imcc.l"
+#line 337 "compilers/imcc/imcc.l"
return UNIQUE_REG;
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 343 "compilers/imcc/imcc.l"
+#line 338 "compilers/imcc/imcc.l"
return SUB_INSTANCE_OF;
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 344 "compilers/imcc/imcc.l"
+#line 339 "compilers/imcc/imcc.l"
return SUBID;
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 346 "compilers/imcc/imcc.l"
+#line 341 "compilers/imcc/imcc.l"
return RESULT;
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 347 "compilers/imcc/imcc.l"
+#line 342 "compilers/imcc/imcc.l"
return GET_RESULTS;
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 348 "compilers/imcc/imcc.l"
+#line 343 "compilers/imcc/imcc.l"
return YIELDT;
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 349 "compilers/imcc/imcc.l"
+#line 344 "compilers/imcc/imcc.l"
return SET_YIELD;
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 350 "compilers/imcc/imcc.l"
+#line 345 "compilers/imcc/imcc.l"
return RETURN;
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 351 "compilers/imcc/imcc.l"
+#line 346 "compilers/imcc/imcc.l"
return SET_RETURN;
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 352 "compilers/imcc/imcc.l"
+#line 347 "compilers/imcc/imcc.l"
return TAILCALL;
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 353 "compilers/imcc/imcc.l"
+#line 348 "compilers/imcc/imcc.l"
return LOADLIB;
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 355 "compilers/imcc/imcc.l"
+#line 350 "compilers/imcc/imcc.l"
return ADV_FLAT;
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 356 "compilers/imcc/imcc.l"
+#line 351 "compilers/imcc/imcc.l"
return ADV_SLURPY;
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 357 "compilers/imcc/imcc.l"
+#line 352 "compilers/imcc/imcc.l"
return ADV_OPTIONAL;
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 358 "compilers/imcc/imcc.l"
+#line 353 "compilers/imcc/imcc.l"
return ADV_OPT_FLAG;
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 359 "compilers/imcc/imcc.l"
+#line 354 "compilers/imcc/imcc.l"
return ADV_NAMED;
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 360 "compilers/imcc/imcc.l"
+#line 355 "compilers/imcc/imcc.l"
return ADV_ARROW;
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 361 "compilers/imcc/imcc.l"
+#line 356 "compilers/imcc/imcc.l"
return ADV_INVOCANT;
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 362 "compilers/imcc/imcc.l"
+#line 357 "compilers/imcc/imcc.l"
return ADV_CALL_SIG;
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 364 "compilers/imcc/imcc.l"
+#line 359 "compilers/imcc/imcc.l"
return NAMESPACE;
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 365 "compilers/imcc/imcc.l"
+#line 360 "compilers/imcc/imcc.l"
return HLL;
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 367 "compilers/imcc/imcc.l"
+#line 362 "compilers/imcc/imcc.l"
return LOCAL;
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 368 "compilers/imcc/imcc.l"
+#line 363 "compilers/imcc/imcc.l"
return CONST;
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 369 "compilers/imcc/imcc.l"
+#line 364 "compilers/imcc/imcc.l"
return GLOBAL_CONST;
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 370 "compilers/imcc/imcc.l"
+#line 365 "compilers/imcc/imcc.l"
return PARAM;
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 371 "compilers/imcc/imcc.l"
+#line 366 "compilers/imcc/imcc.l"
return GOTO;
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 372 "compilers/imcc/imcc.l"
+#line 367 "compilers/imcc/imcc.l"
return IF;
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 373 "compilers/imcc/imcc.l"
+#line 368 "compilers/imcc/imcc.l"
return UNLESS;
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 374 "compilers/imcc/imcc.l"
+#line 369 "compilers/imcc/imcc.l"
return PNULL;
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 375 "compilers/imcc/imcc.l"
+#line 370 "compilers/imcc/imcc.l"
return INTV;
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 376 "compilers/imcc/imcc.l"
+#line 371 "compilers/imcc/imcc.l"
return FLOATV;
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 378 "compilers/imcc/imcc.l"
+#line 373 "compilers/imcc/imcc.l"
return PMCV;
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 379 "compilers/imcc/imcc.l"
+#line 374 "compilers/imcc/imcc.l"
return STRINGV;
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 380 "compilers/imcc/imcc.l"
+#line 375 "compilers/imcc/imcc.l"
return SHIFT_LEFT;
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 381 "compilers/imcc/imcc.l"
+#line 376 "compilers/imcc/imcc.l"
return SHIFT_RIGHT;
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 382 "compilers/imcc/imcc.l"
+#line 377 "compilers/imcc/imcc.l"
return SHIFT_RIGHT_U;
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 383 "compilers/imcc/imcc.l"
+#line 378 "compilers/imcc/imcc.l"
return LOG_AND;
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 384 "compilers/imcc/imcc.l"
+#line 379 "compilers/imcc/imcc.l"
return LOG_OR;
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 385 "compilers/imcc/imcc.l"
+#line 380 "compilers/imcc/imcc.l"
return LOG_XOR;
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 386 "compilers/imcc/imcc.l"
+#line 381 "compilers/imcc/imcc.l"
return RELOP_LT;
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 387 "compilers/imcc/imcc.l"
+#line 382 "compilers/imcc/imcc.l"
return RELOP_LTE;
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 388 "compilers/imcc/imcc.l"
+#line 383 "compilers/imcc/imcc.l"
return RELOP_GT;
YY_BREAK
case 91:
YY_RULE_SETUP
-#line 389 "compilers/imcc/imcc.l"
+#line 384 "compilers/imcc/imcc.l"
return RELOP_GTE;
YY_BREAK
case 92:
YY_RULE_SETUP
-#line 390 "compilers/imcc/imcc.l"
+#line 385 "compilers/imcc/imcc.l"
return RELOP_EQ;
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 391 "compilers/imcc/imcc.l"
+#line 386 "compilers/imcc/imcc.l"
return RELOP_NE;
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 392 "compilers/imcc/imcc.l"
+#line 387 "compilers/imcc/imcc.l"
return POW;
YY_BREAK
case 95:
YY_RULE_SETUP
-#line 394 "compilers/imcc/imcc.l"
+#line 389 "compilers/imcc/imcc.l"
return CONCAT;
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 395 "compilers/imcc/imcc.l"
+#line 390 "compilers/imcc/imcc.l"
return DOT;
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 397 "compilers/imcc/imcc.l"
+#line 392 "compilers/imcc/imcc.l"
return PLUS_ASSIGN;
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 398 "compilers/imcc/imcc.l"
+#line 393 "compilers/imcc/imcc.l"
return MINUS_ASSIGN;
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 399 "compilers/imcc/imcc.l"
+#line 394 "compilers/imcc/imcc.l"
return MUL_ASSIGN;
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 400 "compilers/imcc/imcc.l"
+#line 395 "compilers/imcc/imcc.l"
return DIV_ASSIGN;
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 401 "compilers/imcc/imcc.l"
+#line 396 "compilers/imcc/imcc.l"
return MOD_ASSIGN;
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 402 "compilers/imcc/imcc.l"
+#line 397 "compilers/imcc/imcc.l"
return FDIV;
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 403 "compilers/imcc/imcc.l"
+#line 398 "compilers/imcc/imcc.l"
return FDIV_ASSIGN;
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 404 "compilers/imcc/imcc.l"
+#line 399 "compilers/imcc/imcc.l"
return BAND_ASSIGN;
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 405 "compilers/imcc/imcc.l"
+#line 400 "compilers/imcc/imcc.l"
return BOR_ASSIGN;
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 406 "compilers/imcc/imcc.l"
+#line 401 "compilers/imcc/imcc.l"
return BXOR_ASSIGN;
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 407 "compilers/imcc/imcc.l"
+#line 402 "compilers/imcc/imcc.l"
return SHR_ASSIGN;
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 408 "compilers/imcc/imcc.l"
+#line 403 "compilers/imcc/imcc.l"
return SHL_ASSIGN;
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 409 "compilers/imcc/imcc.l"
+#line 404 "compilers/imcc/imcc.l"
return SHR_U_ASSIGN;
YY_BREAK
case 110:
YY_RULE_SETUP
-#line 410 "compilers/imcc/imcc.l"
+#line 405 "compilers/imcc/imcc.l"
return CONCAT_ASSIGN;
YY_BREAK
case 111:
YY_RULE_SETUP
-#line 412 "compilers/imcc/imcc.l"
+#line 407 "compilers/imcc/imcc.l"
{
char *macro_name = NULL;
int start_cond = YY_START;
@@ -3603,7 +3570,7 @@
YY_BREAK
case 112:
YY_RULE_SETUP
-#line 455 "compilers/imcc/imcc.l"
+#line 450 "compilers/imcc/imcc.l"
{
/* the initial whitespace catcher misses this one */
SET_LINE_NUMBER;
@@ -3612,7 +3579,7 @@
YY_BREAK
case 113:
YY_RULE_SETUP
-#line 461 "compilers/imcc/imcc.l"
+#line 456 "compilers/imcc/imcc.l"
{
const int c = yylex(valp,yyscanner,interp);
@@ -3627,7 +3594,7 @@
YY_BREAK
case 114:
YY_RULE_SETUP
-#line 473 "compilers/imcc/imcc.l"
+#line 468 "compilers/imcc/imcc.l"
{
if (valp) {
char *label;
@@ -3652,7 +3619,7 @@
YY_BREAK
case 115:
YY_RULE_SETUP
-#line 495 "compilers/imcc/imcc.l"
+#line 490 "compilers/imcc/imcc.l"
{
if (valp) {
char *label;
@@ -3675,12 +3642,12 @@
YY_BREAK
case 116:
YY_RULE_SETUP
-#line 515 "compilers/imcc/imcc.l"
+#line 510 "compilers/imcc/imcc.l"
return COMMA;
YY_BREAK
case 117:
YY_RULE_SETUP
-#line 517 "compilers/imcc/imcc.l"
+#line 512 "compilers/imcc/imcc.l"
{
/* trim last ':' */
YYCHOP();
@@ -3693,7 +3660,7 @@
YY_BREAK
case 118:
YY_RULE_SETUP
-#line 527 "compilers/imcc/imcc.l"
+#line 522 "compilers/imcc/imcc.l"
{
char * const macro_name = mem_sys_strdup(yytext + 1);
int failed = expand_macro(interp, macro_name, yyscanner);
@@ -3706,54 +3673,41 @@
YY_BREAK
case 119:
YY_RULE_SETUP
-#line 539 "compilers/imcc/imcc.l"
+#line 534 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, FLOATC);
YY_BREAK
case 120:
YY_RULE_SETUP
-#line 540 "compilers/imcc/imcc.l"
+#line 535 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, INTC);
YY_BREAK
case 121:
YY_RULE_SETUP
-#line 541 "compilers/imcc/imcc.l"
+#line 536 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, INTC);
YY_BREAK
case 122:
YY_RULE_SETUP
-#line 542 "compilers/imcc/imcc.l"
+#line 537 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, INTC);
YY_BREAK
case 123:
YY_RULE_SETUP
-#line 543 "compilers/imcc/imcc.l"
+#line 538 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, INTC);
YY_BREAK
case 124:
YY_RULE_SETUP
-#line 545 "compilers/imcc/imcc.l"
+#line 540 "compilers/imcc/imcc.l"
{
valp->s = mem_sys_strdup(yytext);
- /* trailing 'L' */
- valp->s[strlen(valp->s) - 1] = '\0';
-
- /* no BIGINT native format yet */
return STRINGC;
}
YY_BREAK
case 125:
YY_RULE_SETUP
-#line 555 "compilers/imcc/imcc.l"
-{
- valp->s = mem_sys_strdup(yytext);
-
- return STRINGC;
- }
- YY_BREAK
-case 126:
-YY_RULE_SETUP
-#line 561 "compilers/imcc/imcc.l"
+#line 546 "compilers/imcc/imcc.l"
{
macro_frame_t *frame;
@@ -3782,9 +3736,9 @@
yy_push_state(heredoc1, yyscanner);
}
YY_BREAK
-case 127:
+case 126:
YY_RULE_SETUP
-#line 589 "compilers/imcc/imcc.l"
+#line 574 "compilers/imcc/imcc.l"
{
/* charset:"..." */
valp->s = mem_sys_strdup(yytext);
@@ -3793,9 +3747,9 @@
return USTRINGC;
}
YY_BREAK
-case 128:
+case 127:
YY_RULE_SETUP
-#line 597 "compilers/imcc/imcc.l"
+#line 582 "compilers/imcc/imcc.l"
{
if (valp) (valp)->s = yytext;
if (IMCC_INFO(interp)->state->pasm_file)
@@ -3804,9 +3758,9 @@
return IREG;
}
YY_BREAK
-case 129:
+case 128:
YY_RULE_SETUP
-#line 605 "compilers/imcc/imcc.l"
+#line 590 "compilers/imcc/imcc.l"
{
if (valp) (valp)->s = yytext;
if (IMCC_INFO(interp)->state->pasm_file)
@@ -3815,9 +3769,9 @@
return NREG;
}
YY_BREAK
-case 130:
+case 129:
YY_RULE_SETUP
-#line 613 "compilers/imcc/imcc.l"
+#line 598 "compilers/imcc/imcc.l"
{
if (valp) (valp)->s = yytext;
if (IMCC_INFO(interp)->state->pasm_file)
@@ -3826,9 +3780,9 @@
return SREG;
}
YY_BREAK
-case 131:
+case 130:
YY_RULE_SETUP
-#line 621 "compilers/imcc/imcc.l"
+#line 606 "compilers/imcc/imcc.l"
{
if (valp) (valp)->s = yytext;
if (IMCC_INFO(interp)->state->pasm_file)
@@ -3837,17 +3791,17 @@
return PREG;
}
YY_BREAK
-case 132:
+case 131:
YY_RULE_SETUP
-#line 629 "compilers/imcc/imcc.l"
+#line 614 "compilers/imcc/imcc.l"
{
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
"'%s' is not a valid register name", yytext);
}
YY_BREAK
-case 133:
+case 132:
YY_RULE_SETUP
-#line 634 "compilers/imcc/imcc.l"
+#line 619 "compilers/imcc/imcc.l"
{
if (IMCC_INFO(interp)->state->pasm_file == 0)
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -3859,26 +3813,26 @@
return REG;
}
YY_BREAK
-case 134:
+case 133:
YY_RULE_SETUP
-#line 646 "compilers/imcc/imcc.l"
+#line 631 "compilers/imcc/imcc.l"
{ return handle_identifier(interp, valp, yytext); }
YY_BREAK
-case 135:
+case 134:
YY_RULE_SETUP
-#line 648 "compilers/imcc/imcc.l"
+#line 633 "compilers/imcc/imcc.l"
/* skip */;
YY_BREAK
-case 136:
+case 135:
YY_RULE_SETUP
-#line 650 "compilers/imcc/imcc.l"
+#line 635 "compilers/imcc/imcc.l"
{
/* catch all except for state macro */
return yytext[0];
}
YY_BREAK
case YY_STATE_EOF(emit):
-#line 655 "compilers/imcc/imcc.l"
+#line 640 "compilers/imcc/imcc.l"
{
BEGIN(INITIAL);
@@ -3891,34 +3845,34 @@
}
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 666 "compilers/imcc/imcc.l"
+#line 651 "compilers/imcc/imcc.l"
yyterminate();
YY_BREAK
-case 137:
+case 136:
YY_RULE_SETUP
-#line 668 "compilers/imcc/imcc.l"
+#line 653 "compilers/imcc/imcc.l"
{
/* the initial whitespace catcher misses this one */
SET_LINE_NUMBER;
DUP_AND_RET(valp, ENDM);
}
YY_BREAK
-case 138:
-/* rule 138 can match eol */
+case 137:
+/* rule 137 can match eol */
YY_RULE_SETUP
-#line 674 "compilers/imcc/imcc.l"
+#line 659 "compilers/imcc/imcc.l"
{
DUP_AND_RET(valp, '\n');
}
YY_BREAK
-case 139:
+case 138:
YY_RULE_SETUP
-#line 678 "compilers/imcc/imcc.l"
+#line 663 "compilers/imcc/imcc.l"
return LABEL;
YY_BREAK
-case 140:
+case 139:
YY_RULE_SETUP
-#line 680 "compilers/imcc/imcc.l"
+#line 665 "compilers/imcc/imcc.l"
{
if (yylex(valp,yyscanner,interp) != LABEL)
@@ -3943,9 +3897,9 @@
return LABEL;
}
YY_BREAK
-case 141:
+case 140:
YY_RULE_SETUP
-#line 704 "compilers/imcc/imcc.l"
+#line 689 "compilers/imcc/imcc.l"
{
if (valp) {
if (!IMCC_INFO(interp)->cur_macro_name) {
@@ -3974,46 +3928,46 @@
return IDENTIFIER;
}
YY_BREAK
-case 142:
+case 141:
YY_RULE_SETUP
-#line 732 "compilers/imcc/imcc.l"
+#line 717 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, ' ');
YY_BREAK
-case 143:
+case 142:
YY_RULE_SETUP
-#line 733 "compilers/imcc/imcc.l"
+#line 718 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, REG);
YY_BREAK
-case 144:
+case 143:
YY_RULE_SETUP
-#line 734 "compilers/imcc/imcc.l"
+#line 719 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, REG);
YY_BREAK
-case 145:
+case 144:
YY_RULE_SETUP
-#line 735 "compilers/imcc/imcc.l"
+#line 720 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, IDENTIFIER);
YY_BREAK
-case 146:
+case 145:
YY_RULE_SETUP
-#line 736 "compilers/imcc/imcc.l"
+#line 721 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, MACRO);
YY_BREAK
-case 147:
+case 146:
YY_RULE_SETUP
-#line 737 "compilers/imcc/imcc.l"
+#line 722 "compilers/imcc/imcc.l"
DUP_AND_RET(valp, yytext[0]);
YY_BREAK
case YY_STATE_EOF(macro):
-#line 738 "compilers/imcc/imcc.l"
+#line 723 "compilers/imcc/imcc.l"
yyterminate();
YY_BREAK
-case 148:
+case 147:
YY_RULE_SETUP
-#line 740 "compilers/imcc/imcc.l"
+#line 725 "compilers/imcc/imcc.l"
ECHO;
YY_BREAK
-#line 4017 "compilers/imcc/imclexer.c"
+#line 3971 "compilers/imcc/imclexer.c"
case YY_STATE_EOF(pod):
case YY_STATE_EOF(cmt1):
case YY_STATE_EOF(cmt2):
@@ -4316,7 +4270,7 @@
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1095 )
+ if ( yy_current_state >= 1088 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -4345,11 +4299,11 @@
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1095 )
+ if ( yy_current_state >= 1088 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 1094);
+ yy_is_jam = (yy_current_state == 1087);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -5225,7 +5179,7 @@
#define YYTABLES_NAME "yytables"
-#line 740 "compilers/imcc/imcc.l"
+#line 725 "compilers/imcc/imcc.l"
@@ -5849,7 +5803,7 @@
imcc_run_compilation(PARROT_INTERP, void *yyscanner) {
IMCC_TRY(IMCC_INFO(interp)->jump_buf, IMCC_INFO(interp)->error_code) {
if (yyparse(yyscanner, interp)) {
- IMCC_INFO(interp)->error_code = IMCC_PARSEFAIL_EXCEPTION;
+ IMCC_INFO(interp)->error_code = IMCC_PARSEFAIL_EXCEPTION;
IMCC_INFO(interp)->error_message = string_from_literal(interp, "syntax error ... somewhere");
return;
}
Modified: branches/gsoc_threads/compilers/imcc/imcparser.c
==============================================================================
--- branches/gsoc_threads/compilers/imcc/imcparser.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/imcparser.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -1136,9 +1136,12 @@
do_loadlib(PARROT_INTERP, ARGIN(const char *lib))
{
ASSERT_ARGS(do_loadlib)
- STRING * const s = Parrot_str_unescape(interp, lib + 1, '"', NULL);
- PMC *ignored = Parrot_load_lib(interp, s, NULL);
- UNUSED(ignored);
+ STRING * const s = Parrot_str_unescape(interp, lib + 1, '"', NULL);
+ PMC * const lib_pmc = Parrot_load_lib(interp, s, NULL);
+ if (PMC_IS_NULL(lib_pmc) || !VTABLE_get_bool(interp, lib_pmc)) {
+ IMCC_fataly(interp, EXCEPTION_LIBRARY_ERROR,
+ "loadlib directive could not find library `%S'", s);
+ }
Parrot_register_HLL_lib(interp, s);
}
@@ -1147,7 +1150,7 @@
/* Line 189 of yacc.c */
-#line 1140 "compilers/imcc/imcparser.c"
+#line 1143 "compilers/imcc/imcparser.c"
/* Enabling traces. */
#ifndef YYDEBUG
@@ -1420,7 +1423,7 @@
{
/* Line 214 of yacc.c */
-#line 1068 "compilers/imcc/imcc.y"
+#line 1071 "compilers/imcc/imcc.y"
IdList * idlist;
int t;
@@ -1431,7 +1434,7 @@
/* Line 214 of yacc.c */
-#line 1424 "compilers/imcc/imcparser.c"
+#line 1427 "compilers/imcc/imcparser.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -1443,7 +1446,7 @@
/* Line 264 of yacc.c */
-#line 1436 "compilers/imcc/imcparser.c"
+#line 1439 "compilers/imcc/imcparser.c"
#ifdef short
# undef short
@@ -1866,41 +1869,41 @@
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1163, 1163, 1167, 1168, 1172, 1173, 1174, 1180, 1186,
- 1187, 1188, 1189, 1193, 1194, 1203, 1209, 1217, 1229, 1242,
- 1242, 1251, 1251, 1258, 1258, 1267, 1268, 1272, 1273, 1277,
- 1278, 1279, 1280, 1281, 1282, 1283, 1286, 1286, 1295, 1294,
- 1307, 1311, 1324, 1328, 1332, 1332, 1344, 1346, 1350, 1365,
- 1366, 1370, 1370, 1382, 1383, 1392, 1396, 1400, 1391, 1412,
- 1413, 1414, 1427, 1427, 1431, 1456, 1460, 1466, 1475, 1481,
- 1490, 1496, 1505, 1511, 1520, 1528, 1533, 1544, 1547, 1552,
- 1560, 1561, 1562, 1563, 1564, 1575, 1586, 1589, 1591, 1596,
- 1595, 1626, 1627, 1631, 1632, 1636, 1637, 1641, 1642, 1646,
- 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656,
- 1657, 1658, 1659, 1663, 1668, 1672, 1676, 1680, 1684, 1689,
- 1698, 1699, 1711, 1716, 1717, 1725, 1726, 1726, 1738, 1739,
- 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1755, 1755,
- 1758, 1766, 1766, 1772, 1773, 1778, 1786, 1787, 1792, 1800,
- 1804, 1809, 1808, 1821, 1822, 1826, 1827, 1837, 1842, 1852,
- 1861, 1862, 1874, 1878, 1880, 1881, 1882, 1883, 1884, 1888,
- 1889, 1893, 1894, 1898, 1909, 1910, 1921, 1928, 1937, 1945,
- 1947, 1952, 1953, 1954, 1954, 1967, 1984, 1997, 1997, 2004,
- 2005, 2005, 2011, 2017, 2021, 2033, 2034, 2035, 2036, 2037,
- 2038, 2042, 2043, 2044, 2045, 2049, 2051, 2053, 2055, 2057,
- 2060, 2067, 2066, 2075, 2076, 2077, 2078, 2086, 2087, 2088,
- 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101,
- 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111,
- 2112, 2113, 2114, 2120, 2119, 2131, 2136, 2137, 2138, 2139,
- 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2153,
- 2164, 2165, 2166, 2167, 2173, 2187, 2193, 2199, 2205, 2204,
- 2213, 2214, 2224, 2234, 2241, 2246, 2256, 2260, 2261, 2265,
- 2266, 2267, 2270, 2271, 2275, 2279, 2289, 2295, 2305, 2310,
- 2314, 2315, 2319, 2323, 2327, 2334, 2338, 2342, 2349, 2350,
- 2354, 2355, 2356, 2357, 2358, 2359, 2363, 2364, 2368, 2369,
- 2373, 2374, 2378, 2379, 2386, 2393, 2394, 2395, 2399, 2400,
- 2404, 2405, 2409, 2410, 2414, 2415, 2419, 2419, 2431, 2431,
- 2443, 2444, 2452, 2459, 2460, 2461, 2462, 2463, 2467, 2468,
- 2472, 2473, 2474
+ 0, 1166, 1166, 1170, 1171, 1175, 1176, 1177, 1183, 1189,
+ 1190, 1191, 1192, 1196, 1197, 1206, 1212, 1220, 1232, 1245,
+ 1245, 1254, 1254, 1261, 1261, 1270, 1271, 1275, 1276, 1280,
+ 1281, 1282, 1283, 1284, 1285, 1286, 1289, 1289, 1298, 1297,
+ 1310, 1314, 1327, 1331, 1335, 1335, 1347, 1349, 1353, 1368,
+ 1369, 1373, 1373, 1385, 1386, 1395, 1399, 1403, 1394, 1415,
+ 1416, 1417, 1430, 1430, 1434, 1459, 1463, 1469, 1478, 1484,
+ 1493, 1499, 1508, 1514, 1523, 1531, 1536, 1547, 1550, 1555,
+ 1563, 1564, 1565, 1566, 1567, 1578, 1589, 1592, 1594, 1599,
+ 1598, 1629, 1630, 1634, 1635, 1639, 1640, 1644, 1645, 1649,
+ 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659,
+ 1660, 1661, 1662, 1666, 1671, 1675, 1679, 1683, 1687, 1692,
+ 1701, 1702, 1714, 1719, 1720, 1728, 1729, 1729, 1741, 1742,
+ 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1758, 1758,
+ 1761, 1769, 1769, 1775, 1776, 1781, 1789, 1790, 1795, 1803,
+ 1807, 1812, 1811, 1824, 1825, 1829, 1830, 1840, 1845, 1855,
+ 1864, 1865, 1877, 1881, 1883, 1884, 1885, 1886, 1887, 1891,
+ 1892, 1896, 1897, 1901, 1912, 1913, 1924, 1931, 1940, 1948,
+ 1950, 1955, 1956, 1957, 1957, 1970, 1987, 2000, 2000, 2007,
+ 2008, 2008, 2014, 2020, 2024, 2036, 2037, 2038, 2039, 2040,
+ 2041, 2045, 2046, 2047, 2048, 2052, 2054, 2056, 2058, 2060,
+ 2063, 2070, 2069, 2078, 2079, 2080, 2081, 2089, 2090, 2091,
+ 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104,
+ 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114,
+ 2115, 2116, 2117, 2123, 2122, 2134, 2139, 2140, 2141, 2142,
+ 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2156,
+ 2167, 2168, 2169, 2170, 2176, 2190, 2196, 2202, 2208, 2207,
+ 2216, 2217, 2227, 2237, 2244, 2249, 2259, 2263, 2264, 2268,
+ 2269, 2270, 2273, 2274, 2278, 2282, 2292, 2298, 2308, 2313,
+ 2317, 2318, 2322, 2326, 2330, 2337, 2341, 2345, 2352, 2353,
+ 2357, 2358, 2359, 2360, 2361, 2362, 2366, 2367, 2371, 2372,
+ 2376, 2377, 2381, 2382, 2389, 2396, 2397, 2398, 2402, 2403,
+ 2407, 2408, 2412, 2413, 2417, 2418, 2422, 2422, 2434, 2434,
+ 2446, 2447, 2455, 2462, 2463, 2464, 2465, 2466, 2470, 2471,
+ 2475, 2476, 2477
};
#endif
@@ -3260,28 +3263,28 @@
case 2:
/* Line 1464 of yacc.c */
-#line 1163 "compilers/imcc/imcc.y"
+#line 1166 "compilers/imcc/imcc.y"
{ if (yynerrs) YYABORT; (yyval.i) = 0; }
break;
case 5:
/* Line 1464 of yacc.c */
-#line 1172 "compilers/imcc/imcc.y"
+#line 1175 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 6:
/* Line 1464 of yacc.c */
-#line 1173 "compilers/imcc/imcc.y"
+#line 1176 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 7:
/* Line 1464 of yacc.c */
-#line 1175 "compilers/imcc/imcc.y"
+#line 1178 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3292,7 +3295,7 @@
case 8:
/* Line 1464 of yacc.c */
-#line 1181 "compilers/imcc/imcc.y"
+#line 1184 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3303,42 +3306,42 @@
case 9:
/* Line 1464 of yacc.c */
-#line 1186 "compilers/imcc/imcc.y"
+#line 1189 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 10:
/* Line 1464 of yacc.c */
-#line 1187 "compilers/imcc/imcc.y"
+#line 1190 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 11:
/* Line 1464 of yacc.c */
-#line 1188 "compilers/imcc/imcc.y"
+#line 1191 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 12:
/* Line 1464 of yacc.c */
-#line 1189 "compilers/imcc/imcc.y"
+#line 1192 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 13:
/* Line 1464 of yacc.c */
-#line 1193 "compilers/imcc/imcc.y"
+#line 1196 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 14:
/* Line 1464 of yacc.c */
-#line 1195 "compilers/imcc/imcc.y"
+#line 1198 "compilers/imcc/imcc.y"
{
(yyval.i) = 0;
do_loadlib(interp, (yyvsp[(2) - (3)].s));
@@ -3349,7 +3352,7 @@
case 15:
/* Line 1464 of yacc.c */
-#line 1204 "compilers/imcc/imcc.y"
+#line 1207 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
/* set_filename() frees the STRINGC */
@@ -3360,7 +3363,7 @@
case 16:
/* Line 1464 of yacc.c */
-#line 1210 "compilers/imcc/imcc.y"
+#line 1213 "compilers/imcc/imcc.y"
{
/* set_filename() frees the STRINGC */
set_filename(interp, (yyvsp[(2) - (3)].s));
@@ -3370,7 +3373,7 @@
case 17:
/* Line 1464 of yacc.c */
-#line 1218 "compilers/imcc/imcc.y"
+#line 1221 "compilers/imcc/imcc.y"
{
/* We'll want to store an entry while emitting instructions, so just
* store annotation like it's an instruction. */
@@ -3383,7 +3386,7 @@
case 18:
/* Line 1464 of yacc.c */
-#line 1230 "compilers/imcc/imcc.y"
+#line 1233 "compilers/imcc/imcc.y"
{
STRING * const hll_name = Parrot_str_unescape(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL);
Parrot_pcc_set_HLL(interp, CURRENT_CONTEXT(interp),
@@ -3398,14 +3401,14 @@
case 19:
/* Line 1464 of yacc.c */
-#line 1242 "compilers/imcc/imcc.y"
+#line 1245 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 20:
/* Line 1464 of yacc.c */
-#line 1243 "compilers/imcc/imcc.y"
+#line 1246 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
mem_sys_free((yyvsp[(4) - (6)].s));
@@ -3416,14 +3419,14 @@
case 21:
/* Line 1464 of yacc.c */
-#line 1251 "compilers/imcc/imcc.y"
+#line 1254 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 22:
/* Line 1464 of yacc.c */
-#line 1252 "compilers/imcc/imcc.y"
+#line 1255 "compilers/imcc/imcc.y"
{
(yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
mem_sys_free((yyvsp[(6) - (6)].s));
@@ -3434,14 +3437,14 @@
case 23:
/* Line 1464 of yacc.c */
-#line 1258 "compilers/imcc/imcc.y"
+#line 1261 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 24:
/* Line 1464 of yacc.c */
-#line 1259 "compilers/imcc/imcc.y"
+#line 1262 "compilers/imcc/imcc.y"
{
(yyval.i) = mk_pmc_const_named(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
mem_sys_free((yyvsp[(3) - (6)].s));
@@ -3453,49 +3456,49 @@
case 29:
/* Line 1464 of yacc.c */
-#line 1277 "compilers/imcc/imcc.y"
+#line 1280 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 30:
/* Line 1464 of yacc.c */
-#line 1278 "compilers/imcc/imcc.y"
+#line 1281 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 31:
/* Line 1464 of yacc.c */
-#line 1279 "compilers/imcc/imcc.y"
+#line 1282 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 32:
/* Line 1464 of yacc.c */
-#line 1280 "compilers/imcc/imcc.y"
+#line 1283 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 33:
/* Line 1464 of yacc.c */
-#line 1281 "compilers/imcc/imcc.y"
+#line 1284 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 36:
/* Line 1464 of yacc.c */
-#line 1286 "compilers/imcc/imcc.y"
+#line 1289 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 37:
/* Line 1464 of yacc.c */
-#line 1288 "compilers/imcc/imcc.y"
+#line 1291 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit,
(yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs,
@@ -3507,7 +3510,7 @@
case 38:
/* Line 1464 of yacc.c */
-#line 1295 "compilers/imcc/imcc.y"
+#line 1298 "compilers/imcc/imcc.y"
{
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
@@ -3517,7 +3520,7 @@
case 39:
/* Line 1464 of yacc.c */
-#line 1300 "compilers/imcc/imcc.y"
+#line 1303 "compilers/imcc/imcc.y"
{
(yyval.i) = iSUBROUTINE(interp,
IMCC_INFO(interp)->cur_unit,
@@ -3530,7 +3533,7 @@
case 40:
/* Line 1464 of yacc.c */
-#line 1308 "compilers/imcc/imcc.y"
+#line 1311 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
}
@@ -3539,7 +3542,7 @@
case 41:
/* Line 1464 of yacc.c */
-#line 1312 "compilers/imcc/imcc.y"
+#line 1315 "compilers/imcc/imcc.y"
{
char *name = mem_sys_strdup((yyvsp[(2) - (4)].s) + 1);
SymReg *r = mk_pasm_reg(interp, (yyvsp[(4) - (4)].s));
@@ -3557,21 +3560,21 @@
case 42:
/* Line 1464 of yacc.c */
-#line 1324 "compilers/imcc/imcc.y"
+#line 1327 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 44:
/* Line 1464 of yacc.c */
-#line 1332 "compilers/imcc/imcc.y"
+#line 1335 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
break;
case 45:
/* Line 1464 of yacc.c */
-#line 1335 "compilers/imcc/imcc.y"
+#line 1338 "compilers/imcc/imcc.y"
{
/* if (optimizer_level & OPT_PASM)
imc_compile_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3584,7 +3587,7 @@
case 48:
/* Line 1464 of yacc.c */
-#line 1351 "compilers/imcc/imcc.y"
+#line 1354 "compilers/imcc/imcc.y"
{
int re_open = 0;
(yyval.i) = 0;
@@ -3601,21 +3604,21 @@
case 49:
/* Line 1464 of yacc.c */
-#line 1365 "compilers/imcc/imcc.y"
+#line 1368 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); }
break;
case 50:
/* Line 1464 of yacc.c */
-#line 1366 "compilers/imcc/imcc.y"
+#line 1369 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 51:
/* Line 1464 of yacc.c */
-#line 1370 "compilers/imcc/imcc.y"
+#line 1373 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
}
@@ -3624,7 +3627,7 @@
case 52:
/* Line 1464 of yacc.c */
-#line 1374 "compilers/imcc/imcc.y"
+#line 1377 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -3635,14 +3638,14 @@
case 53:
/* Line 1464 of yacc.c */
-#line 1382 "compilers/imcc/imcc.y"
+#line 1385 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
break;
case 54:
/* Line 1464 of yacc.c */
-#line 1384 "compilers/imcc/imcc.y"
+#line 1387 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
(yyval.sr) = IMCC_INFO(interp)->keys[0];
@@ -3652,7 +3655,7 @@
case 55:
/* Line 1464 of yacc.c */
-#line 1392 "compilers/imcc/imcc.y"
+#line 1395 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
}
@@ -3661,7 +3664,7 @@
case 56:
/* Line 1464 of yacc.c */
-#line 1396 "compilers/imcc/imcc.y"
+#line 1399 "compilers/imcc/imcc.y"
{
iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
}
@@ -3670,7 +3673,7 @@
case 57:
/* Line 1464 of yacc.c */
-#line 1400 "compilers/imcc/imcc.y"
+#line 1403 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(5) - (6)].t);
if (!IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid) {
@@ -3683,28 +3686,28 @@
case 58:
/* Line 1464 of yacc.c */
-#line 1408 "compilers/imcc/imcc.y"
+#line 1411 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 59:
/* Line 1464 of yacc.c */
-#line 1412 "compilers/imcc/imcc.y"
+#line 1415 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 60:
/* Line 1464 of yacc.c */
-#line 1413 "compilers/imcc/imcc.y"
+#line 1416 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 61:
/* Line 1464 of yacc.c */
-#line 1415 "compilers/imcc/imcc.y"
+#line 1418 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_param(interp, IMCC_INFO(interp)->cur_call,
@@ -3719,21 +3722,21 @@
case 62:
/* Line 1464 of yacc.c */
-#line 1427 "compilers/imcc/imcc.y"
+#line 1430 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 63:
/* Line 1464 of yacc.c */
-#line 1427 "compilers/imcc/imcc.y"
+#line 1430 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; }
break;
case 64:
/* Line 1464 of yacc.c */
-#line 1432 "compilers/imcc/imcc.y"
+#line 1435 "compilers/imcc/imcc.y"
{
if ((yyvsp[(3) - (3)].t) & VT_OPT_FLAG && (yyvsp[(1) - (3)].t) != 'I') {
const char *type;
@@ -3758,14 +3761,14 @@
case 65:
/* Line 1464 of yacc.c */
-#line 1456 "compilers/imcc/imcc.y"
+#line 1459 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 66:
/* Line 1464 of yacc.c */
-#line 1461 "compilers/imcc/imcc.y"
+#line 1464 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s));
@@ -3776,7 +3779,7 @@
case 67:
/* Line 1464 of yacc.c */
-#line 1467 "compilers/imcc/imcc.y"
+#line 1470 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3787,7 +3790,7 @@
case 68:
/* Line 1464 of yacc.c */
-#line 1476 "compilers/imcc/imcc.y"
+#line 1479 "compilers/imcc/imcc.y"
{
(yyval.t) = P_VTABLE;
IMCC_INFO(interp)->cur_unit->vtable_name = NULL;
@@ -3798,7 +3801,7 @@
case 69:
/* Line 1464 of yacc.c */
-#line 1482 "compilers/imcc/imcc.y"
+#line 1485 "compilers/imcc/imcc.y"
{
(yyval.t) = P_VTABLE;
IMCC_INFO(interp)->cur_unit->vtable_name = (yyvsp[(3) - (4)].s);
@@ -3809,7 +3812,7 @@
case 70:
/* Line 1464 of yacc.c */
-#line 1491 "compilers/imcc/imcc.y"
+#line 1494 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = NULL;
@@ -3820,7 +3823,7 @@
case 71:
/* Line 1464 of yacc.c */
-#line 1497 "compilers/imcc/imcc.y"
+#line 1500 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s);
@@ -3831,7 +3834,7 @@
case 72:
/* Line 1464 of yacc.c */
-#line 1506 "compilers/imcc/imcc.y"
+#line 1509 "compilers/imcc/imcc.y"
{
(yyval.t) = P_NSENTRY;
IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
@@ -3842,7 +3845,7 @@
case 73:
/* Line 1464 of yacc.c */
-#line 1512 "compilers/imcc/imcc.y"
+#line 1515 "compilers/imcc/imcc.y"
{
(yyval.t) = P_NSENTRY;
IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
@@ -3853,7 +3856,7 @@
case 74:
/* Line 1464 of yacc.c */
-#line 1521 "compilers/imcc/imcc.y"
+#line 1524 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
@@ -3863,7 +3866,7 @@
case 75:
/* Line 1464 of yacc.c */
-#line 1529 "compilers/imcc/imcc.y"
+#line 1532 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->subid = NULL;
@@ -3873,7 +3876,7 @@
case 76:
/* Line 1464 of yacc.c */
-#line 1534 "compilers/imcc/imcc.y"
+#line 1537 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3885,7 +3888,7 @@
case 77:
/* Line 1464 of yacc.c */
-#line 1544 "compilers/imcc/imcc.y"
+#line 1547 "compilers/imcc/imcc.y"
{
add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, NULL);
}
@@ -3894,7 +3897,7 @@
case 78:
/* Line 1464 of yacc.c */
-#line 1548 "compilers/imcc/imcc.y"
+#line 1551 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
@@ -3904,7 +3907,7 @@
case 79:
/* Line 1464 of yacc.c */
-#line 1553 "compilers/imcc/imcc.y"
+#line 1556 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
@@ -3914,35 +3917,35 @@
case 80:
/* Line 1464 of yacc.c */
-#line 1560 "compilers/imcc/imcc.y"
+#line 1563 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "INTVAL", 'S'); }
break;
case 81:
/* Line 1464 of yacc.c */
-#line 1561 "compilers/imcc/imcc.y"
+#line 1564 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
break;
case 82:
/* Line 1464 of yacc.c */
-#line 1562 "compilers/imcc/imcc.y"
+#line 1565 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "PMC", 'S'); }
break;
case 83:
/* Line 1464 of yacc.c */
-#line 1563 "compilers/imcc/imcc.y"
+#line 1566 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "STRING", 'S'); }
break;
case 84:
/* Line 1464 of yacc.c */
-#line 1565 "compilers/imcc/imcc.y"
+#line 1568 "compilers/imcc/imcc.y"
{
SymReg *r;
if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3958,7 +3961,7 @@
case 85:
/* Line 1464 of yacc.c */
-#line 1576 "compilers/imcc/imcc.y"
+#line 1579 "compilers/imcc/imcc.y"
{
SymReg *r;
if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3974,14 +3977,14 @@
case 86:
/* Line 1464 of yacc.c */
-#line 1586 "compilers/imcc/imcc.y"
+#line 1589 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); }
break;
case 89:
/* Line 1464 of yacc.c */
-#line 1596 "compilers/imcc/imcc.y"
+#line 1599 "compilers/imcc/imcc.y"
{
char name[128];
SymReg *r, *r1;
@@ -4008,112 +4011,112 @@
case 90:
/* Line 1464 of yacc.c */
-#line 1622 "compilers/imcc/imcc.y"
+#line 1625 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 91:
/* Line 1464 of yacc.c */
-#line 1626 "compilers/imcc/imcc.y"
+#line 1629 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
break;
case 92:
/* Line 1464 of yacc.c */
-#line 1627 "compilers/imcc/imcc.y"
+#line 1630 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
break;
case 93:
/* Line 1464 of yacc.c */
-#line 1631 "compilers/imcc/imcc.y"
+#line 1634 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 94:
/* Line 1464 of yacc.c */
-#line 1632 "compilers/imcc/imcc.y"
+#line 1635 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
break;
case 95:
/* Line 1464 of yacc.c */
-#line 1636 "compilers/imcc/imcc.y"
+#line 1639 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 97:
/* Line 1464 of yacc.c */
-#line 1641 "compilers/imcc/imcc.y"
+#line 1644 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (1)].t); }
break;
case 98:
/* Line 1464 of yacc.c */
-#line 1642 "compilers/imcc/imcc.y"
+#line 1645 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 99:
/* Line 1464 of yacc.c */
-#line 1646 "compilers/imcc/imcc.y"
+#line 1649 "compilers/imcc/imcc.y"
{ (yyval.t) = P_LOAD; }
break;
case 100:
/* Line 1464 of yacc.c */
-#line 1647 "compilers/imcc/imcc.y"
+#line 1650 "compilers/imcc/imcc.y"
{ (yyval.t) = P_INIT; }
break;
case 101:
/* Line 1464 of yacc.c */
-#line 1648 "compilers/imcc/imcc.y"
+#line 1651 "compilers/imcc/imcc.y"
{ (yyval.t) = P_MAIN; }
break;
case 102:
/* Line 1464 of yacc.c */
-#line 1649 "compilers/imcc/imcc.y"
+#line 1652 "compilers/imcc/imcc.y"
{ (yyval.t) = P_IMMEDIATE; }
break;
case 103:
/* Line 1464 of yacc.c */
-#line 1650 "compilers/imcc/imcc.y"
+#line 1653 "compilers/imcc/imcc.y"
{ (yyval.t) = P_POSTCOMP; }
break;
case 104:
/* Line 1464 of yacc.c */
-#line 1651 "compilers/imcc/imcc.y"
+#line 1654 "compilers/imcc/imcc.y"
{ (yyval.t) = P_ANON; }
break;
case 105:
/* Line 1464 of yacc.c */
-#line 1652 "compilers/imcc/imcc.y"
+#line 1655 "compilers/imcc/imcc.y"
{ (yyval.t) = P_NEED_LEX; }
break;
case 113:
/* Line 1464 of yacc.c */
-#line 1664 "compilers/imcc/imcc.y"
+#line 1667 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -4123,7 +4126,7 @@
case 114:
/* Line 1464 of yacc.c */
-#line 1669 "compilers/imcc/imcc.y"
+#line 1672 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
@@ -4132,7 +4135,7 @@
case 115:
/* Line 1464 of yacc.c */
-#line 1673 "compilers/imcc/imcc.y"
+#line 1676 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
@@ -4141,7 +4144,7 @@
case 116:
/* Line 1464 of yacc.c */
-#line 1677 "compilers/imcc/imcc.y"
+#line 1680 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
@@ -4150,7 +4153,7 @@
case 117:
/* Line 1464 of yacc.c */
-#line 1681 "compilers/imcc/imcc.y"
+#line 1684 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
}
@@ -4159,7 +4162,7 @@
case 118:
/* Line 1464 of yacc.c */
-#line 1685 "compilers/imcc/imcc.y"
+#line 1688 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -4169,7 +4172,7 @@
case 119:
/* Line 1464 of yacc.c */
-#line 1690 "compilers/imcc/imcc.y"
+#line 1693 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S'));
add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -4179,14 +4182,14 @@
case 120:
/* Line 1464 of yacc.c */
-#line 1698 "compilers/imcc/imcc.y"
+#line 1701 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 121:
/* Line 1464 of yacc.c */
-#line 1699 "compilers/imcc/imcc.y"
+#line 1702 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_param(interp, IMCC_INFO(interp)->cur_call,
@@ -4201,21 +4204,21 @@
case 122:
/* Line 1464 of yacc.c */
-#line 1711 "compilers/imcc/imcc.y"
+#line 1714 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (2)].sr); }
break;
case 123:
/* Line 1464 of yacc.c */
-#line 1716 "compilers/imcc/imcc.y"
+#line 1719 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 124:
/* Line 1464 of yacc.c */
-#line 1718 "compilers/imcc/imcc.y"
+#line 1721 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -4225,21 +4228,21 @@
case 125:
/* Line 1464 of yacc.c */
-#line 1725 "compilers/imcc/imcc.y"
+#line 1728 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 126:
/* Line 1464 of yacc.c */
-#line 1726 "compilers/imcc/imcc.y"
+#line 1729 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 127:
/* Line 1464 of yacc.c */
-#line 1727 "compilers/imcc/imcc.y"
+#line 1730 "compilers/imcc/imcc.y"
{
IdList * const l = (yyvsp[(4) - (4)].idlist);
SymReg *ignored;
@@ -4253,91 +4256,91 @@
case 128:
/* Line 1464 of yacc.c */
-#line 1738 "compilers/imcc/imcc.y"
+#line 1741 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 129:
/* Line 1464 of yacc.c */
-#line 1739 "compilers/imcc/imcc.y"
+#line 1742 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 130:
/* Line 1464 of yacc.c */
-#line 1743 "compilers/imcc/imcc.y"
+#line 1746 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 131:
/* Line 1464 of yacc.c */
-#line 1744 "compilers/imcc/imcc.y"
+#line 1747 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPTIONAL; }
break;
case 132:
/* Line 1464 of yacc.c */
-#line 1745 "compilers/imcc/imcc.y"
+#line 1748 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPT_FLAG; }
break;
case 133:
/* Line 1464 of yacc.c */
-#line 1746 "compilers/imcc/imcc.y"
+#line 1749 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 134:
/* Line 1464 of yacc.c */
-#line 1747 "compilers/imcc/imcc.y"
+#line 1750 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = VT_NAMED; mem_sys_free((yyvsp[(3) - (4)].s)); }
break;
case 135:
/* Line 1464 of yacc.c */
-#line 1748 "compilers/imcc/imcc.y"
+#line 1751 "compilers/imcc/imcc.y"
{ adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = VT_NAMED; mem_sys_free((yyvsp[(3) - (4)].s)); }
break;
case 136:
/* Line 1464 of yacc.c */
-#line 1749 "compilers/imcc/imcc.y"
+#line 1752 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 137:
/* Line 1464 of yacc.c */
-#line 1750 "compilers/imcc/imcc.y"
+#line 1753 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_CALL_SIG; }
break;
case 138:
/* Line 1464 of yacc.c */
-#line 1755 "compilers/imcc/imcc.y"
+#line 1758 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 0); }
break;
case 139:
/* Line 1464 of yacc.c */
-#line 1757 "compilers/imcc/imcc.y"
+#line 1760 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 140:
/* Line 1464 of yacc.c */
-#line 1759 "compilers/imcc/imcc.y"
+#line 1762 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.i) = 0;
@@ -4347,28 +4350,28 @@
case 141:
/* Line 1464 of yacc.c */
-#line 1766 "compilers/imcc/imcc.y"
+#line 1769 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 1); }
break;
case 142:
/* Line 1464 of yacc.c */
-#line 1768 "compilers/imcc/imcc.y"
+#line 1771 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 143:
/* Line 1464 of yacc.c */
-#line 1772 "compilers/imcc/imcc.y"
+#line 1775 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 144:
/* Line 1464 of yacc.c */
-#line 1774 "compilers/imcc/imcc.y"
+#line 1777 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -4378,7 +4381,7 @@
case 145:
/* Line 1464 of yacc.c */
-#line 1779 "compilers/imcc/imcc.y"
+#line 1782 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -4388,14 +4391,14 @@
case 146:
/* Line 1464 of yacc.c */
-#line 1786 "compilers/imcc/imcc.y"
+#line 1789 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 147:
/* Line 1464 of yacc.c */
-#line 1788 "compilers/imcc/imcc.y"
+#line 1791 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -4405,7 +4408,7 @@
case 148:
/* Line 1464 of yacc.c */
-#line 1793 "compilers/imcc/imcc.y"
+#line 1796 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -4415,21 +4418,21 @@
case 149:
/* Line 1464 of yacc.c */
-#line 1800 "compilers/imcc/imcc.y"
+#line 1803 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 150:
/* Line 1464 of yacc.c */
-#line 1804 "compilers/imcc/imcc.y"
+#line 1807 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 151:
/* Line 1464 of yacc.c */
-#line 1809 "compilers/imcc/imcc.y"
+#line 1812 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->asm_state == AsmDefault)
begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
@@ -4439,7 +4442,7 @@
case 152:
/* Line 1464 of yacc.c */
-#line 1814 "compilers/imcc/imcc.y"
+#line 1817 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.t) = 0;
@@ -4449,28 +4452,28 @@
case 153:
/* Line 1464 of yacc.c */
-#line 1821 "compilers/imcc/imcc.y"
+#line 1824 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 154:
/* Line 1464 of yacc.c */
-#line 1822 "compilers/imcc/imcc.y"
+#line 1825 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 155:
/* Line 1464 of yacc.c */
-#line 1826 "compilers/imcc/imcc.y"
+#line 1829 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 156:
/* Line 1464 of yacc.c */
-#line 1828 "compilers/imcc/imcc.y"
+#line 1831 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -4485,7 +4488,7 @@
case 157:
/* Line 1464 of yacc.c */
-#line 1838 "compilers/imcc/imcc.y"
+#line 1841 "compilers/imcc/imcc.y"
{
SymReg * const name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S');
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(3) - (3)].sr));
@@ -4495,7 +4498,7 @@
case 158:
/* Line 1464 of yacc.c */
-#line 1843 "compilers/imcc/imcc.y"
+#line 1846 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -4510,7 +4513,7 @@
case 159:
/* Line 1464 of yacc.c */
-#line 1853 "compilers/imcc/imcc.y"
+#line 1856 "compilers/imcc/imcc.y"
{
SymReg * const name = mk_const(interp, (yyvsp[(3) - (5)].s), 'S');
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(5) - (5)].sr));
@@ -4520,63 +4523,63 @@
case 162:
/* Line 1464 of yacc.c */
-#line 1874 "compilers/imcc/imcc.y"
+#line 1877 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 163:
/* Line 1464 of yacc.c */
-#line 1879 "compilers/imcc/imcc.y"
+#line 1882 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (2)].i); }
break;
case 164:
/* Line 1464 of yacc.c */
-#line 1880 "compilers/imcc/imcc.y"
+#line 1883 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 165:
/* Line 1464 of yacc.c */
-#line 1881 "compilers/imcc/imcc.y"
+#line 1884 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 166:
/* Line 1464 of yacc.c */
-#line 1882 "compilers/imcc/imcc.y"
+#line 1885 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 167:
/* Line 1464 of yacc.c */
-#line 1883 "compilers/imcc/imcc.y"
+#line 1886 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 168:
/* Line 1464 of yacc.c */
-#line 1884 "compilers/imcc/imcc.y"
+#line 1887 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 169:
/* Line 1464 of yacc.c */
-#line 1888 "compilers/imcc/imcc.y"
+#line 1891 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 173:
/* Line 1464 of yacc.c */
-#line 1899 "compilers/imcc/imcc.y"
+#line 1902 "compilers/imcc/imcc.y"
{
Instruction * const i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
mem_sys_free((yyvsp[(1) - (1)].s));
@@ -4587,14 +4590,14 @@
case 174:
/* Line 1464 of yacc.c */
-#line 1909 "compilers/imcc/imcc.y"
+#line 1912 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (3)].i); }
break;
case 175:
/* Line 1464 of yacc.c */
-#line 1911 "compilers/imcc/imcc.y"
+#line 1914 "compilers/imcc/imcc.y"
{
if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
IMCC_warning(interp, "Too many errors. Correct some first.\n");
@@ -4607,7 +4610,7 @@
case 176:
/* Line 1464 of yacc.c */
-#line 1922 "compilers/imcc/imcc.y"
+#line 1925 "compilers/imcc/imcc.y"
{
IdList* const l = (yyvsp[(1) - (1)].idlist);
l->next = NULL;
@@ -4618,7 +4621,7 @@
case 177:
/* Line 1464 of yacc.c */
-#line 1929 "compilers/imcc/imcc.y"
+#line 1932 "compilers/imcc/imcc.y"
{
IdList* const l = (yyvsp[(3) - (3)].idlist);
l->next = (yyvsp[(1) - (3)].idlist);
@@ -4629,7 +4632,7 @@
case 178:
/* Line 1464 of yacc.c */
-#line 1938 "compilers/imcc/imcc.y"
+#line 1941 "compilers/imcc/imcc.y"
{
IdList* const l = mem_gc_allocate_n_zeroed_typed(interp, 1, IdList);
l->id = (yyvsp[(1) - (2)].s);
@@ -4640,14 +4643,14 @@
case 183:
/* Line 1464 of yacc.c */
-#line 1954 "compilers/imcc/imcc.y"
+#line 1957 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 184:
/* Line 1464 of yacc.c */
-#line 1955 "compilers/imcc/imcc.y"
+#line 1958 "compilers/imcc/imcc.y"
{
IdList *l = (yyvsp[(4) - (4)].idlist);
while (l) {
@@ -4665,7 +4668,7 @@
case 185:
/* Line 1464 of yacc.c */
-#line 1968 "compilers/imcc/imcc.y"
+#line 1971 "compilers/imcc/imcc.y"
{
if ((yyvsp[(4) - (4)].sr)->set != 'P') {
mem_sys_free((yyvsp[(2) - (4)].s));
@@ -4687,7 +4690,7 @@
case 186:
/* Line 1464 of yacc.c */
-#line 1985 "compilers/imcc/imcc.y"
+#line 1988 "compilers/imcc/imcc.y"
{
if ((yyvsp[(4) - (4)].sr)->set != 'P') {
mem_sys_free((yyvsp[(2) - (4)].s));
@@ -4705,14 +4708,14 @@
case 187:
/* Line 1464 of yacc.c */
-#line 1997 "compilers/imcc/imcc.y"
+#line 2000 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 188:
/* Line 1464 of yacc.c */
-#line 1998 "compilers/imcc/imcc.y"
+#line 2001 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
IMCC_INFO(interp)->is_def = 0;
@@ -4723,14 +4726,14 @@
case 190:
/* Line 1464 of yacc.c */
-#line 2005 "compilers/imcc/imcc.y"
+#line 2008 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->is_def = 1; }
break;
case 191:
/* Line 1464 of yacc.c */
-#line 2006 "compilers/imcc/imcc.y"
+#line 2009 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
IMCC_INFO(interp)->is_def = 0;
@@ -4741,7 +4744,7 @@
case 192:
/* Line 1464 of yacc.c */
-#line 2012 "compilers/imcc/imcc.y"
+#line 2015 "compilers/imcc/imcc.y"
{
(yyval.i) = NULL;
IMCC_INFO(interp)->cur_call->pcc_sub->tailcall = 1;
@@ -4752,7 +4755,7 @@
case 193:
/* Line 1464 of yacc.c */
-#line 2018 "compilers/imcc/imcc.y"
+#line 2021 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr));
}
@@ -4761,7 +4764,7 @@
case 194:
/* Line 1464 of yacc.c */
-#line 2022 "compilers/imcc/imcc.y"
+#line 2025 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp,
IMCC_INFO(interp)->cur_unit,
@@ -4778,98 +4781,98 @@
case 195:
/* Line 1464 of yacc.c */
-#line 2033 "compilers/imcc/imcc.y"
+#line 2036 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
break;
case 196:
/* Line 1464 of yacc.c */
-#line 2034 "compilers/imcc/imcc.y"
+#line 2037 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 197:
/* Line 1464 of yacc.c */
-#line 2035 "compilers/imcc/imcc.y"
+#line 2038 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 200:
/* Line 1464 of yacc.c */
-#line 2038 "compilers/imcc/imcc.y"
+#line 2041 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 201:
/* Line 1464 of yacc.c */
-#line 2042 "compilers/imcc/imcc.y"
+#line 2045 "compilers/imcc/imcc.y"
{ (yyval.t) = 'I'; }
break;
case 202:
/* Line 1464 of yacc.c */
-#line 2043 "compilers/imcc/imcc.y"
+#line 2046 "compilers/imcc/imcc.y"
{ (yyval.t) = 'N'; }
break;
case 203:
/* Line 1464 of yacc.c */
-#line 2044 "compilers/imcc/imcc.y"
+#line 2047 "compilers/imcc/imcc.y"
{ (yyval.t) = 'S'; }
break;
case 204:
/* Line 1464 of yacc.c */
-#line 2045 "compilers/imcc/imcc.y"
+#line 2048 "compilers/imcc/imcc.y"
{ (yyval.t) = 'P'; }
break;
case 205:
/* Line 1464 of yacc.c */
-#line 2050 "compilers/imcc/imcc.y"
+#line 2053 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
break;
case 206:
/* Line 1464 of yacc.c */
-#line 2052 "compilers/imcc/imcc.y"
+#line 2055 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 207:
/* Line 1464 of yacc.c */
-#line 2054 "compilers/imcc/imcc.y"
+#line 2057 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); }
break;
case 208:
/* Line 1464 of yacc.c */
-#line 2056 "compilers/imcc/imcc.y"
+#line 2059 "compilers/imcc/imcc.y"
{ (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); }
break;
case 209:
/* Line 1464 of yacc.c */
-#line 2058 "compilers/imcc/imcc.y"
+#line 2061 "compilers/imcc/imcc.y"
{ (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
break;
case 210:
/* Line 1464 of yacc.c */
-#line 2061 "compilers/imcc/imcc.y"
+#line 2064 "compilers/imcc/imcc.y"
{
add_pcc_result(interp, (yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
IMCC_INFO(interp)->cur_call = NULL;
@@ -4880,7 +4883,7 @@
case 211:
/* Line 1464 of yacc.c */
-#line 2067 "compilers/imcc/imcc.y"
+#line 2070 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
}
@@ -4889,7 +4892,7 @@
case 212:
/* Line 1464 of yacc.c */
-#line 2071 "compilers/imcc/imcc.y"
+#line 2074 "compilers/imcc/imcc.y"
{
IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
IMCC_INFO(interp)->cur_call = NULL;
@@ -4899,7 +4902,7 @@
case 216:
/* Line 1464 of yacc.c */
-#line 2079 "compilers/imcc/imcc.y"
+#line 2082 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
}
@@ -4908,189 +4911,189 @@
case 217:
/* Line 1464 of yacc.c */
-#line 2086 "compilers/imcc/imcc.y"
+#line 2089 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"not"; }
break;
case 218:
/* Line 1464 of yacc.c */
-#line 2087 "compilers/imcc/imcc.y"
+#line 2090 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bnot"; }
break;
case 219:
/* Line 1464 of yacc.c */
-#line 2088 "compilers/imcc/imcc.y"
+#line 2091 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"neg"; }
break;
case 220:
/* Line 1464 of yacc.c */
-#line 2092 "compilers/imcc/imcc.y"
+#line 2095 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 221:
/* Line 1464 of yacc.c */
-#line 2093 "compilers/imcc/imcc.y"
+#line 2096 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 222:
/* Line 1464 of yacc.c */
-#line 2094 "compilers/imcc/imcc.y"
+#line 2097 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 223:
/* Line 1464 of yacc.c */
-#line 2095 "compilers/imcc/imcc.y"
+#line 2098 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 224:
/* Line 1464 of yacc.c */
-#line 2096 "compilers/imcc/imcc.y"
+#line 2099 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 225:
/* Line 1464 of yacc.c */
-#line 2097 "compilers/imcc/imcc.y"
+#line 2100 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 226:
/* Line 1464 of yacc.c */
-#line 2098 "compilers/imcc/imcc.y"
+#line 2101 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"pow"; }
break;
case 227:
/* Line 1464 of yacc.c */
-#line 2099 "compilers/imcc/imcc.y"
+#line 2102 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 228:
/* Line 1464 of yacc.c */
-#line 2100 "compilers/imcc/imcc.y"
+#line 2103 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"iseq"; }
break;
case 229:
/* Line 1464 of yacc.c */
-#line 2101 "compilers/imcc/imcc.y"
+#line 2104 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isne"; }
break;
case 230:
/* Line 1464 of yacc.c */
-#line 2102 "compilers/imcc/imcc.y"
+#line 2105 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isgt"; }
break;
case 231:
/* Line 1464 of yacc.c */
-#line 2103 "compilers/imcc/imcc.y"
+#line 2106 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isge"; }
break;
case 232:
/* Line 1464 of yacc.c */
-#line 2104 "compilers/imcc/imcc.y"
+#line 2107 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"islt"; }
break;
case 233:
/* Line 1464 of yacc.c */
-#line 2105 "compilers/imcc/imcc.y"
+#line 2108 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isle"; }
break;
case 234:
/* Line 1464 of yacc.c */
-#line 2106 "compilers/imcc/imcc.y"
+#line 2109 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 235:
/* Line 1464 of yacc.c */
-#line 2107 "compilers/imcc/imcc.y"
+#line 2110 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 236:
/* Line 1464 of yacc.c */
-#line 2108 "compilers/imcc/imcc.y"
+#line 2111 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 237:
/* Line 1464 of yacc.c */
-#line 2109 "compilers/imcc/imcc.y"
+#line 2112 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"and"; }
break;
case 238:
/* Line 1464 of yacc.c */
-#line 2110 "compilers/imcc/imcc.y"
+#line 2113 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"or"; }
break;
case 239:
/* Line 1464 of yacc.c */
-#line 2111 "compilers/imcc/imcc.y"
+#line 2114 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"xor"; }
break;
case 240:
/* Line 1464 of yacc.c */
-#line 2112 "compilers/imcc/imcc.y"
+#line 2115 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 241:
/* Line 1464 of yacc.c */
-#line 2113 "compilers/imcc/imcc.y"
+#line 2116 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 242:
/* Line 1464 of yacc.c */
-#line 2114 "compilers/imcc/imcc.y"
+#line 2117 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 243:
/* Line 1464 of yacc.c */
-#line 2120 "compilers/imcc/imcc.y"
+#line 2123 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
(yyval.i)->type &= ~ITCALL;
@@ -5101,112 +5104,112 @@
case 244:
/* Line 1464 of yacc.c */
-#line 2125 "compilers/imcc/imcc.y"
+#line 2128 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 245:
/* Line 1464 of yacc.c */
-#line 2132 "compilers/imcc/imcc.y"
+#line 2135 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
break;
case 246:
/* Line 1464 of yacc.c */
-#line 2136 "compilers/imcc/imcc.y"
+#line 2139 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 247:
/* Line 1464 of yacc.c */
-#line 2137 "compilers/imcc/imcc.y"
+#line 2140 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 248:
/* Line 1464 of yacc.c */
-#line 2138 "compilers/imcc/imcc.y"
+#line 2141 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 249:
/* Line 1464 of yacc.c */
-#line 2139 "compilers/imcc/imcc.y"
+#line 2142 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 250:
/* Line 1464 of yacc.c */
-#line 2140 "compilers/imcc/imcc.y"
+#line 2143 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 251:
/* Line 1464 of yacc.c */
-#line 2141 "compilers/imcc/imcc.y"
+#line 2144 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 252:
/* Line 1464 of yacc.c */
-#line 2142 "compilers/imcc/imcc.y"
+#line 2145 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 253:
/* Line 1464 of yacc.c */
-#line 2143 "compilers/imcc/imcc.y"
+#line 2146 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 254:
/* Line 1464 of yacc.c */
-#line 2144 "compilers/imcc/imcc.y"
+#line 2147 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 255:
/* Line 1464 of yacc.c */
-#line 2145 "compilers/imcc/imcc.y"
+#line 2148 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 256:
/* Line 1464 of yacc.c */
-#line 2146 "compilers/imcc/imcc.y"
+#line 2149 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 257:
/* Line 1464 of yacc.c */
-#line 2147 "compilers/imcc/imcc.y"
+#line 2150 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 258:
/* Line 1464 of yacc.c */
-#line 2148 "compilers/imcc/imcc.y"
+#line 2151 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 259:
/* Line 1464 of yacc.c */
-#line 2154 "compilers/imcc/imcc.y"
+#line 2157 "compilers/imcc/imcc.y"
{
(yyval.i) = func_ins(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(3) - (4)].s),
IMCC_INFO(interp) -> regs,
@@ -5219,28 +5222,28 @@
case 260:
/* Line 1464 of yacc.c */
-#line 2164 "compilers/imcc/imcc.y"
+#line 2167 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 261:
/* Line 1464 of yacc.c */
-#line 2165 "compilers/imcc/imcc.y"
+#line 2168 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 262:
/* Line 1464 of yacc.c */
-#line 2166 "compilers/imcc/imcc.y"
+#line 2169 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 263:
/* Line 1464 of yacc.c */
-#line 2168 "compilers/imcc/imcc.y"
+#line 2171 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
if ((yyvsp[(1) - (1)].sr)->set != 'P')
@@ -5251,7 +5254,7 @@
case 264:
/* Line 1464 of yacc.c */
-#line 2174 "compilers/imcc/imcc.y"
+#line 2177 "compilers/imcc/imcc.y"
{
/* disallow bareword method names; SREG name constants are fine */
const char * const name = (yyvsp[(3) - (3)].sr)->name;
@@ -5270,7 +5273,7 @@
case 265:
/* Line 1464 of yacc.c */
-#line 2188 "compilers/imcc/imcc.y"
+#line 2191 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
(yyval.sr) = mk_const(interp, (yyvsp[(3) - (3)].s), 'U');
@@ -5281,7 +5284,7 @@
case 266:
/* Line 1464 of yacc.c */
-#line 2194 "compilers/imcc/imcc.y"
+#line 2197 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
(yyval.sr) = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
@@ -5292,14 +5295,14 @@
case 267:
/* Line 1464 of yacc.c */
-#line 2199 "compilers/imcc/imcc.y"
+#line 2202 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
break;
case 268:
/* Line 1464 of yacc.c */
-#line 2205 "compilers/imcc/imcc.y"
+#line 2208 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
@@ -5309,21 +5312,21 @@
case 269:
/* Line 1464 of yacc.c */
-#line 2209 "compilers/imcc/imcc.y"
+#line 2212 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (5)].i); }
break;
case 270:
/* Line 1464 of yacc.c */
-#line 2213 "compilers/imcc/imcc.y"
+#line 2216 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 271:
/* Line 1464 of yacc.c */
-#line 2215 "compilers/imcc/imcc.y"
+#line 2218 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -5338,7 +5341,7 @@
case 272:
/* Line 1464 of yacc.c */
-#line 2225 "compilers/imcc/imcc.y"
+#line 2228 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -5353,7 +5356,7 @@
case 273:
/* Line 1464 of yacc.c */
-#line 2235 "compilers/imcc/imcc.y"
+#line 2238 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
@@ -5365,7 +5368,7 @@
case 274:
/* Line 1464 of yacc.c */
-#line 2242 "compilers/imcc/imcc.y"
+#line 2245 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
add_pcc_named_arg_var(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));
@@ -5375,7 +5378,7 @@
case 275:
/* Line 1464 of yacc.c */
-#line 2247 "compilers/imcc/imcc.y"
+#line 2250 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
@@ -5387,70 +5390,70 @@
case 276:
/* Line 1464 of yacc.c */
-#line 2256 "compilers/imcc/imcc.y"
+#line 2259 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 277:
/* Line 1464 of yacc.c */
-#line 2260 "compilers/imcc/imcc.y"
+#line 2263 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 278:
/* Line 1464 of yacc.c */
-#line 2261 "compilers/imcc/imcc.y"
+#line 2264 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 279:
/* Line 1464 of yacc.c */
-#line 2265 "compilers/imcc/imcc.y"
+#line 2268 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 280:
/* Line 1464 of yacc.c */
-#line 2266 "compilers/imcc/imcc.y"
+#line 2269 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 281:
/* Line 1464 of yacc.c */
-#line 2267 "compilers/imcc/imcc.y"
+#line 2270 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_CALL_SIG; }
break;
case 282:
/* Line 1464 of yacc.c */
-#line 2270 "compilers/imcc/imcc.y"
+#line 2273 "compilers/imcc/imcc.y"
{ adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 283:
/* Line 1464 of yacc.c */
-#line 2271 "compilers/imcc/imcc.y"
+#line 2274 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 284:
/* Line 1464 of yacc.c */
-#line 2275 "compilers/imcc/imcc.y"
+#line 2278 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 285:
/* Line 1464 of yacc.c */
-#line 2280 "compilers/imcc/imcc.y"
+#line 2283 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -5465,7 +5468,7 @@
case 286:
/* Line 1464 of yacc.c */
-#line 2290 "compilers/imcc/imcc.y"
+#line 2293 "compilers/imcc/imcc.y"
{
add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call,
mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
@@ -5476,7 +5479,7 @@
case 287:
/* Line 1464 of yacc.c */
-#line 2296 "compilers/imcc/imcc.y"
+#line 2299 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -5491,7 +5494,7 @@
case 288:
/* Line 1464 of yacc.c */
-#line 2306 "compilers/imcc/imcc.y"
+#line 2309 "compilers/imcc/imcc.y"
{
add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
mem_sys_free((yyvsp[(1) - (3)].s));
@@ -5501,28 +5504,28 @@
case 289:
/* Line 1464 of yacc.c */
-#line 2310 "compilers/imcc/imcc.y"
+#line 2313 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 290:
/* Line 1464 of yacc.c */
-#line 2314 "compilers/imcc/imcc.y"
+#line 2317 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 291:
/* Line 1464 of yacc.c */
-#line 2315 "compilers/imcc/imcc.y"
+#line 2318 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 292:
/* Line 1464 of yacc.c */
-#line 2320 "compilers/imcc/imcc.y"
+#line 2323 "compilers/imcc/imcc.y"
{
(yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, inv_op((yyvsp[(3) - (6)].s)), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
}
@@ -5531,7 +5534,7 @@
case 293:
/* Line 1464 of yacc.c */
-#line 2324 "compilers/imcc/imcc.y"
+#line 2327 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
}
@@ -5540,7 +5543,7 @@
case 294:
/* Line 1464 of yacc.c */
-#line 2328 "compilers/imcc/imcc.y"
+#line 2331 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
}
@@ -5549,7 +5552,7 @@
case 295:
/* Line 1464 of yacc.c */
-#line 2335 "compilers/imcc/imcc.y"
+#line 2338 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
}
@@ -5558,7 +5561,7 @@
case 296:
/* Line 1464 of yacc.c */
-#line 2339 "compilers/imcc/imcc.y"
+#line 2342 "compilers/imcc/imcc.y"
{
(yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
}
@@ -5567,7 +5570,7 @@
case 297:
/* Line 1464 of yacc.c */
-#line 2343 "compilers/imcc/imcc.y"
+#line 2346 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
}
@@ -5576,91 +5579,91 @@
case 298:
/* Line 1464 of yacc.c */
-#line 2349 "compilers/imcc/imcc.y"
+#line 2352 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 299:
/* Line 1464 of yacc.c */
-#line 2350 "compilers/imcc/imcc.y"
+#line 2353 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 300:
/* Line 1464 of yacc.c */
-#line 2354 "compilers/imcc/imcc.y"
+#line 2357 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"eq"; }
break;
case 301:
/* Line 1464 of yacc.c */
-#line 2355 "compilers/imcc/imcc.y"
+#line 2358 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ne"; }
break;
case 302:
/* Line 1464 of yacc.c */
-#line 2356 "compilers/imcc/imcc.y"
+#line 2359 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"gt"; }
break;
case 303:
/* Line 1464 of yacc.c */
-#line 2357 "compilers/imcc/imcc.y"
+#line 2360 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ge"; }
break;
case 304:
/* Line 1464 of yacc.c */
-#line 2358 "compilers/imcc/imcc.y"
+#line 2361 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lt"; }
break;
case 305:
/* Line 1464 of yacc.c */
-#line 2359 "compilers/imcc/imcc.y"
+#line 2362 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"le"; }
break;
case 308:
/* Line 1464 of yacc.c */
-#line 2368 "compilers/imcc/imcc.y"
+#line 2371 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 309:
/* Line 1464 of yacc.c */
-#line 2369 "compilers/imcc/imcc.y"
+#line 2372 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (1)].sr); }
break;
case 310:
/* Line 1464 of yacc.c */
-#line 2373 "compilers/imcc/imcc.y"
+#line 2376 "compilers/imcc/imcc.y"
{ (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
break;
case 312:
/* Line 1464 of yacc.c */
-#line 2378 "compilers/imcc/imcc.y"
+#line 2381 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
break;
case 313:
/* Line 1464 of yacc.c */
-#line 2380 "compilers/imcc/imcc.y"
+#line 2383 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (4)].sr);
IMCC_INFO(interp) -> keyvec |= KEY_BIT(IMCC_INFO(interp)->nargs);
@@ -5672,7 +5675,7 @@
case 314:
/* Line 1464 of yacc.c */
-#line 2387 "compilers/imcc/imcc.y"
+#line 2390 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
(yyval.sr) = (yyvsp[(2) - (3)].sr);
@@ -5682,49 +5685,49 @@
case 316:
/* Line 1464 of yacc.c */
-#line 2394 "compilers/imcc/imcc.y"
+#line 2397 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 317:
/* Line 1464 of yacc.c */
-#line 2395 "compilers/imcc/imcc.y"
+#line 2398 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 318:
/* Line 1464 of yacc.c */
-#line 2399 "compilers/imcc/imcc.y"
+#line 2402 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 319:
/* Line 1464 of yacc.c */
-#line 2400 "compilers/imcc/imcc.y"
+#line 2403 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 320:
/* Line 1464 of yacc.c */
-#line 2404 "compilers/imcc/imcc.y"
+#line 2407 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 321:
/* Line 1464 of yacc.c */
-#line 2405 "compilers/imcc/imcc.y"
+#line 2408 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 326:
/* Line 1464 of yacc.c */
-#line 2419 "compilers/imcc/imcc.y"
+#line 2422 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
}
@@ -5733,7 +5736,7 @@
case 327:
/* Line 1464 of yacc.c */
-#line 2423 "compilers/imcc/imcc.y"
+#line 2426 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -5744,7 +5747,7 @@
case 328:
/* Line 1464 of yacc.c */
-#line 2431 "compilers/imcc/imcc.y"
+#line 2434 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
}
@@ -5753,7 +5756,7 @@
case 329:
/* Line 1464 of yacc.c */
-#line 2435 "compilers/imcc/imcc.y"
+#line 2438 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -5764,14 +5767,14 @@
case 330:
/* Line 1464 of yacc.c */
-#line 2443 "compilers/imcc/imcc.y"
+#line 2446 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
break;
case 331:
/* Line 1464 of yacc.c */
-#line 2445 "compilers/imcc/imcc.y"
+#line 2448 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
(yyval.sr) = IMCC_INFO(interp)->keys[0];
@@ -5781,7 +5784,7 @@
case 332:
/* Line 1464 of yacc.c */
-#line 2453 "compilers/imcc/imcc.y"
+#line 2456 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
}
@@ -5790,77 +5793,77 @@
case 333:
/* Line 1464 of yacc.c */
-#line 2459 "compilers/imcc/imcc.y"
+#line 2462 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
break;
case 334:
/* Line 1464 of yacc.c */
-#line 2460 "compilers/imcc/imcc.y"
+#line 2463 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
break;
case 335:
/* Line 1464 of yacc.c */
-#line 2461 "compilers/imcc/imcc.y"
+#line 2464 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
break;
case 336:
/* Line 1464 of yacc.c */
-#line 2462 "compilers/imcc/imcc.y"
+#line 2465 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
break;
case 337:
/* Line 1464 of yacc.c */
-#line 2463 "compilers/imcc/imcc.y"
+#line 2466 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 338:
/* Line 1464 of yacc.c */
-#line 2467 "compilers/imcc/imcc.y"
+#line 2470 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 339:
/* Line 1464 of yacc.c */
-#line 2468 "compilers/imcc/imcc.y"
+#line 2471 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 340:
/* Line 1464 of yacc.c */
-#line 2472 "compilers/imcc/imcc.y"
+#line 2475 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 341:
/* Line 1464 of yacc.c */
-#line 2473 "compilers/imcc/imcc.y"
+#line 2476 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 342:
/* Line 1464 of yacc.c */
-#line 2474 "compilers/imcc/imcc.y"
+#line 2477 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (1)].sr); }
break;
/* Line 1464 of yacc.c */
-#line 5853 "compilers/imcc/imcparser.c"
+#line 5856 "compilers/imcc/imcparser.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -6072,7 +6075,7 @@
/* Line 1684 of yacc.c */
-#line 2480 "compilers/imcc/imcc.y"
+#line 2483 "compilers/imcc/imcc.y"
/* I need this prototype somewhere... */
Modified: branches/gsoc_threads/compilers/imcc/imcparser.h
==============================================================================
--- branches/gsoc_threads/compilers/imcc/imcparser.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/imcparser.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -295,7 +295,7 @@
{
/* Line 1685 of yacc.c */
-#line 1068 "compilers/imcc/imcc.y"
+#line 1071 "compilers/imcc/imcc.y"
IdList * idlist;
int t;
Modified: branches/gsoc_threads/compilers/imcc/instructions.c
==============================================================================
--- branches/gsoc_threads/compilers/imcc/instructions.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/instructions.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -794,13 +794,11 @@
*/
-PARROT_EXPORT
int
emit_open(PARROT_INTERP, int type, ARGIN_NULLOK(const char *param))
{
ASSERT_ARGS(emit_open)
IMCC_INFO(interp)->emitter = type;
- IMCC_INFO(interp)->has_compile = 0;
IMCC_INFO(interp)->dont_optimize = 0;
return (emitters[IMCC_INFO(interp)->emitter]).open(interp, param);
@@ -817,7 +815,6 @@
*/
-PARROT_EXPORT
int
emit_flush(PARROT_INTERP, ARGIN_NULLOK(void *param), ARGIN(IMC_Unit *unit))
{
@@ -849,7 +846,6 @@
*/
-PARROT_EXPORT
int
emit_close(PARROT_INTERP, ARGIN_NULLOK(void *param))
{
Modified: branches/gsoc_threads/compilers/imcc/instructions.h
==============================================================================
--- branches/gsoc_threads/compilers/imcc/instructions.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/instructions.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -91,21 +91,6 @@
/* HEADERIZER BEGIN: compilers/imcc/instructions.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-PARROT_EXPORT
-int emit_close(PARROT_INTERP, ARGIN_NULLOK(void *param))
- __attribute__nonnull__(1);
-
-PARROT_EXPORT
-int emit_flush(PARROT_INTERP,
- ARGIN_NULLOK(void *param),
- ARGIN(IMC_Unit *unit))
- __attribute__nonnull__(1)
- __attribute__nonnull__(3);
-
-PARROT_EXPORT
-int emit_open(PARROT_INTERP, int type, ARGIN_NULLOK(const char *param))
- __attribute__nonnull__(1);
-
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
Instruction * _delete_ins(ARGMOD(IMC_Unit *unit), ARGIN(Instruction *ins))
@@ -133,6 +118,18 @@
FUNC_MODIFIES(*unit)
FUNC_MODIFIES(*ins);
+int emit_close(PARROT_INTERP, ARGIN_NULLOK(void *param))
+ __attribute__nonnull__(1);
+
+int emit_flush(PARROT_INTERP,
+ ARGIN_NULLOK(void *param),
+ ARGIN(IMC_Unit *unit))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3);
+
+int emit_open(PARROT_INTERP, int type, ARGIN_NULLOK(const char *param))
+ __attribute__nonnull__(1);
+
PARROT_CAN_RETURN_NULL
Instruction * emitb(PARROT_INTERP,
ARGMOD_NULLOK(IMC_Unit *unit),
@@ -215,13 +212,6 @@
FUNC_MODIFIES(*ins)
FUNC_MODIFIES(*tmp);
-#define ASSERT_ARGS_emit_close __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_emit_flush __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(unit))
-#define ASSERT_ARGS_emit_open __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS__delete_ins __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(unit) \
, PARROT_ASSERT_ARG(ins))
@@ -232,6 +222,13 @@
#define ASSERT_ARGS_delete_ins __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(unit) \
, PARROT_ASSERT_ARG(ins))
+#define ASSERT_ARGS_emit_close __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_emit_flush __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(unit))
+#define ASSERT_ARGS_emit_open __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_emitb __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_free_ins __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/gsoc_threads/compilers/imcc/main.c
==============================================================================
--- branches/gsoc_threads/compilers/imcc/main.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/main.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -47,24 +47,25 @@
static void compile_to_bytecode(PARROT_INTERP,
ARGIN(const char * const sourcefile),
- ARGIN_NULLOK(const char * const output_file))
+ ARGIN_NULLOK(const char * const output_file),
+ ARGIN(yyscan_t yyscanner))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(4);
static void determine_input_file_type(PARROT_INTERP,
- ARGIN(const char * const sourcefile))
+ ARGIN(const char * const sourcefile),
+ ARGIN(yyscan_t yyscanner))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
static void determine_output_file_type(PARROT_INTERP,
- ARGMOD(int *obj_file),
ARGIN(const char *output_file))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*obj_file);
+ __attribute__nonnull__(2);
-static void do_pre_process(PARROT_INTERP)
+static void do_pre_process(PARROT_INTERP, yyscan_t yyscanner)
__attribute__nonnull__(1);
static void imcc_get_optimization_description(
@@ -74,13 +75,11 @@
__attribute__nonnull__(3)
FUNC_MODIFIES(*opt_desc);
-static void imcc_run_pbc(PARROT_INTERP,
- int obj_file,
- ARGIN_NULLOK(const char *output_file),
+static void imcc_parseflags(PARROT_INTERP,
int argc,
ARGIN(const char **argv))
__attribute__nonnull__(1)
- __attribute__nonnull__(5);
+ __attribute__nonnull__(3);
static void imcc_write_pbc(PARROT_INTERP, ARGIN(const char *output_file))
__attribute__nonnull__(1)
@@ -93,20 +92,21 @@
#define ASSERT_ARGS_compile_to_bytecode __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(sourcefile))
+ , PARROT_ASSERT_ARG(sourcefile) \
+ , PARROT_ASSERT_ARG(yyscanner))
#define ASSERT_ARGS_determine_input_file_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(sourcefile))
+ , PARROT_ASSERT_ARG(sourcefile) \
+ , PARROT_ASSERT_ARG(yyscanner))
#define ASSERT_ARGS_determine_output_file_type __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(obj_file) \
, PARROT_ASSERT_ARG(output_file))
#define ASSERT_ARGS_do_pre_process __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_imcc_get_optimization_description \
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(opt_desc))
-#define ASSERT_ARGS_imcc_run_pbc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_imcc_parseflags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(argv))
#define ASSERT_ARGS_imcc_write_pbc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -149,119 +149,102 @@
/*
-=item C<void imcc_start_handling_flags(PARROT_INTERP)>
+=item C<static void imcc_parseflags(PARROT_INTERP, int argc, const char **argv)>
-Initialize handling of IMCC related command line flags.
+Parse flags ans set approptiate state(s)
=cut
*/
-void
-imcc_start_handling_flags(PARROT_INTERP)
-{
- SET_STATE_RUN_PBC(interp);
-}
-
-/*
-
-=item C<int imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt,
-Parrot_Run_core_t *core)>
-Handle Parrot's command line for IMCC related option and set appropriate flags.
+static void
+imcc_parseflags(PARROT_INTERP, int argc, ARGIN(const char **argv))
+{
+ ASSERT_ARGS(imcc_parseflags)
+ struct longopt_opt_info opt = LONGOPT_OPT_INFO_INIT;
-Return 1 if flag handled, 0 if not.
+ /* default state: run pbc */
+ SET_STATE_RUN_PBC(interp);
-=cut
+ while (longopt_get(interp, argc, argv, Parrot_cmd_options(), &opt) > 0) {
+ switch (opt.opt_id) {
+ case 'd':
+ if (opt.opt_arg && is_all_hex_digits(opt.opt_arg)) {
+ IMCC_INFO(interp)->debug = strtoul(opt.opt_arg, NULL, 16);
+ }
+ else {
+ IMCC_INFO(interp)->debug++;
+ }
+ break;
+ case 'w':
+ /* FIXME It's not best way to set warnings... */
+ Parrot_setwarnings(interp, PARROT_WARNINGS_ALL_FLAG);
+ IMCC_INFO(interp)->imcc_warn = 1;
+ break;
+ case 'G':
+ IMCC_INFO(interp)->gc_off = 1;
+ break;
+ case 'a':
+ SET_STATE_PASM_FILE(interp);
+ break;
+ case 'r':
+ if (STATE_RUN_PBC(interp))
+ SET_STATE_RUN_FROM_FILE(interp);
+ SET_STATE_RUN_PBC(interp);
+ break;
+ case 'c':
+ SET_STATE_LOAD_PBC(interp);
+ break;
+ case 'v':
+ IMCC_INFO(interp)->verbose++;
+ break;
+ case 'y':
+ yydebug = 1;
+ break;
+ case 'E':
+ SET_STATE_PRE_PROCESS(interp);
+ break;
+ case 'o':
+ UNSET_STATE_RUN_PBC(interp);
+ interp->output_file = opt.opt_arg;
+ break;
-*/
+ case OPT_PBC_OUTPUT:
+ UNSET_STATE_RUN_PBC(interp);
+ SET_STATE_WRITE_PBC(interp);
+ if (!interp->output_file)
+ interp->output_file = "-";
+ break;
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-int
-imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt,
- Parrot_Run_core_t *core)
-{
- PARROT_ASSERT(opt);
- PARROT_ASSERT(core);
+ case 'O':
+ if (!opt.opt_arg) {
+ IMCC_INFO(interp)->optimizer_level |= OPT_PRE;
+ break;
+ }
+ if (strchr(opt.opt_arg, 'p'))
+ IMCC_INFO(interp)->optimizer_level |= OPT_PASM;
+ if (strchr(opt.opt_arg, 'c'))
+ IMCC_INFO(interp)->optimizer_level |= OPT_SUB;
+
+ /* currently not ok due to different register allocation */
+ if (strchr(opt.opt_arg, '1')) {
+ IMCC_INFO(interp)->optimizer_level |= OPT_PRE;
+ }
+ if (strchr(opt.opt_arg, '2')) {
+ IMCC_INFO(interp)->optimizer_level |= (OPT_PRE | OPT_CFG);
+ }
+ break;
- switch (opt->opt_id) {
- case 'd':
- if (opt->opt_arg && is_all_hex_digits(opt->opt_arg)) {
- IMCC_INFO(interp)->debug = strtoul(opt->opt_arg, NULL, 16);
- }
- else {
- IMCC_INFO(interp)->debug++;
- }
- break;
- case 'w':
- /* FIXME It's not best way to set warnings... */
- Parrot_setwarnings(interp, PARROT_WARNINGS_ALL_FLAG);
- IMCC_INFO(interp)->imcc_warn = 1;
- break;
- case 'G':
- IMCC_INFO(interp)->gc_off = 1;
- break;
- case 'a':
- SET_STATE_PASM_FILE(interp);
- break;
- case 'r':
- if (STATE_RUN_PBC(interp))
- SET_STATE_RUN_FROM_FILE(interp);
- SET_STATE_RUN_PBC(interp);
- break;
- case 'c':
- SET_STATE_LOAD_PBC(interp);
- break;
- case 'v':
- IMCC_INFO(interp)->verbose++;
- break;
- case 'y':
- yydebug = 1;
- break;
- case 'E':
- SET_STATE_PRE_PROCESS(interp);
- break;
- case 'o':
- UNSET_STATE_RUN_PBC(interp);
- interp->output_file = opt->opt_arg;
- break;
-
- case OPT_PBC_OUTPUT:
- UNSET_STATE_RUN_PBC(interp);
- SET_STATE_WRITE_PBC(interp);
- if (!interp->output_file)
- interp->output_file = "-";
- break;
-
- case 'O':
- if (!opt->opt_arg) {
- IMCC_INFO(interp)->optimizer_level |= OPT_PRE;
+ default:
+ /* skip already processed arguments */
break;
}
- if (strchr(opt->opt_arg, 'p'))
- IMCC_INFO(interp)->optimizer_level |= OPT_PASM;
- if (strchr(opt->opt_arg, 'c'))
- IMCC_INFO(interp)->optimizer_level |= OPT_SUB;
-
- /* currently not ok due to different register allocation */
- if (strchr(opt->opt_arg, '1')) {
- IMCC_INFO(interp)->optimizer_level |= OPT_PRE;
- }
- if (strchr(opt->opt_arg, '2')) {
- IMCC_INFO(interp)->optimizer_level |= (OPT_PRE | OPT_CFG);
- }
- break;
-
- default:
- return 0;
}
-
- return 1;
}
/*
-=item C<static void do_pre_process(PARROT_INTERP)>
+=item C<static void do_pre_process(PARROT_INTERP, yyscan_t yyscanner)>
Pre-processor step. Turn parser's output codes into Parrot instructions.
@@ -270,14 +253,12 @@
*/
static void
-do_pre_process(PARROT_INTERP)
+do_pre_process(PARROT_INTERP, yyscan_t yyscanner)
{
ASSERT_ARGS(do_pre_process)
int c;
YYSTYPE val;
- const yyscan_t yyscanner = IMCC_INFO(interp)->yyscanner;
-
IMCC_push_parser_state(interp);
c = yylex(&val, yyscanner, interp); /* is reset at end of while loop */
while (c) {
@@ -409,42 +390,8 @@
/*
-=item C<void imcc_initialize(PARROT_INTERP)>
-
-Initialise interpreter and set optimisation level.
-
-=cut
-
-*/
-
-void
-imcc_initialize(PARROT_INTERP)
-{
- yyscan_t yyscanner = IMCC_INFO(interp)->yyscanner;
-
- do_yylex_init(interp, &yyscanner);
-
- Parrot_block_GC_mark(interp);
- Parrot_block_GC_sweep(interp);
-
- IMCC_INFO(interp)->yyscanner = yyscanner;
-
- /* Default optimization level is zero; see optimizer.c, imc.h */
- if (!IMCC_INFO(interp)->optimizer_level) {
-#if 1
- IMCC_INFO(interp)->optimizer_level = 0;
-#else
- /* won't even make with this: something with Data::Dumper and
- * set_i_p_i*/
- IMCC_INFO(interp)->optimizer_level = OPT_PRE;
-#endif
- }
-}
-
-/*
-
-=item C<static void imcc_run_pbc(PARROT_INTERP, int obj_file, const char
-*output_file, int argc, const char **argv)>
+=item C<void imcc_run_pbc(PARROT_INTERP, const char *output_file, int argc,
+const char **argv)>
Write out or run Parrot bytecode.
@@ -452,25 +399,13 @@
*/
-static void
-imcc_run_pbc(PARROT_INTERP, int obj_file, ARGIN_NULLOK(const char *output_file),
+void
+imcc_run_pbc(PARROT_INTERP, ARGIN_NULLOK(const char *output_file),
int argc, ARGIN(const char **argv))
{
- ASSERT_ARGS(imcc_run_pbc)
- if (IMCC_INFO(interp)->imcc_warn)
- PARROT_WARNINGS_on(interp, PARROT_WARNINGS_ALL_FLAG);
- else
- PARROT_WARNINGS_off(interp, PARROT_WARNINGS_ALL_FLAG);
+ /* ASSERT_ARGS(imcc_run_pbc) */
- if (!IMCC_INFO(interp)->gc_off) {
- Parrot_unblock_GC_mark(interp);
- Parrot_unblock_GC_sweep(interp);
- }
-
- if (obj_file)
- IMCC_info(interp, 1, "Writing %s\n", output_file);
- else
- IMCC_info(interp, 1, "Running...\n");
+ IMCC_info(interp, 1, "Running...\n");
/* runs :init functions */
PackFile_fixup_subs(interp, PBC_IMMEDIATE, NULL);
@@ -522,7 +457,7 @@
/*
=item C<static void determine_input_file_type(PARROT_INTERP, const char * const
-sourcefile)>
+sourcefile, yyscan_t yyscanner)>
Read in the source and determine whether it's Parrot bytecode or PASM
@@ -531,10 +466,10 @@
*/
static void
-determine_input_file_type(PARROT_INTERP, ARGIN(const char * const sourcefile))
+determine_input_file_type(PARROT_INTERP, ARGIN(const char * const sourcefile),
+ ARGIN(yyscan_t yyscanner))
{
ASSERT_ARGS(determine_input_file_type)
- yyscan_t yyscanner = IMCC_INFO(interp)->yyscanner;
/* Read in the source and check the file extension for the input type;
a file extension .pbc means it's parrot bytecode;
@@ -566,8 +501,8 @@
/*
-=item C<static void determine_output_file_type(PARROT_INTERP, int *obj_file,
-const char *output_file)>
+=item C<static void determine_output_file_type(PARROT_INTERP, const char
+*output_file)>
Decide what kind of file we are to output.
@@ -576,8 +511,7 @@
*/
static void
-determine_output_file_type(PARROT_INTERP,
- ARGMOD(int *obj_file), ARGIN(const char *output_file))
+determine_output_file_type(PARROT_INTERP, ARGIN(const char *output_file))
{
ASSERT_ARGS(determine_output_file_type)
const char * const ext = strrchr(output_file, '.');
@@ -585,17 +519,13 @@
if (ext) {
if (STREQ(ext, ".pbc"))
SET_STATE_WRITE_PBC(interp);
- else if (STREQ(ext, PARROT_OBJ_EXT)) {
- UNUSED(obj_file);
- IMCC_fatal_standalone(interp, 1, "main: can't produce object file");
- }
}
}
/*
=item C<static void compile_to_bytecode(PARROT_INTERP, const char * const
-sourcefile, const char * const output_file)>
+sourcefile, const char * const output_file, yyscan_t yyscanner)>
Compile source code into bytecode (or die trying).
@@ -606,11 +536,11 @@
static void
compile_to_bytecode(PARROT_INTERP,
ARGIN(const char * const sourcefile),
- ARGIN_NULLOK(const char * const output_file))
+ ARGIN_NULLOK(const char * const output_file),
+ ARGIN(yyscan_t yyscanner))
{
ASSERT_ARGS(compile_to_bytecode)
PackFile *pf;
- yyscan_t yyscanner = IMCC_INFO(interp)->yyscanner;
const int per_pbc = STATE_WRITE_PBC(interp) || STATE_RUN_PBC(interp);
const int opt_level = IMCC_INFO(interp)->optimizer_level;
@@ -672,29 +602,34 @@
imcc_run(PARROT_INTERP, ARGIN(const char *sourcefile), int argc,
ARGIN(const char **argv))
{
- int obj_file;
- yyscan_t yyscanner = IMCC_INFO(interp)->yyscanner;
+ yyscan_t yyscanner;
const char * const output_file = interp->output_file;
+ imcc_parseflags(interp, argc, argv);
+
+ /* PMCs in IMCC_INFO won't get marked */
+ Parrot_block_GC_mark(interp);
+ Parrot_block_GC_sweep(interp);
+
+ yylex_init_extra(interp, &yyscanner);
+
/* Figure out what kind of source file we have -- if we have one */
if (!sourcefile || !*sourcefile)
IMCC_fatal_standalone(interp, 1, "main: No source file specified.\n");
else
- determine_input_file_type(interp, sourcefile);
+ determine_input_file_type(interp, sourcefile, yyscanner);
if (STATE_PRE_PROCESS(interp)) {
- do_pre_process(interp);
+ do_pre_process(interp, yyscanner);
Parrot_destroy(interp);
yylex_destroy(yyscanner);
- IMCC_INFO(interp)->yyscanner = NULL;
return 0;
}
/* Do we need to produce an output file? If so, what type? */
- obj_file = 0;
if (output_file) {
- determine_output_file_type(interp, &obj_file, output_file);
+ determine_output_file_type(interp, output_file);
if (STREQ(sourcefile, output_file) && !STREQ(sourcefile, "-"))
IMCC_fatal_standalone(interp, 1, "main: outputfile is sourcefile\n");
@@ -718,7 +653,7 @@
Parrot_pbc_load(interp, pf);
}
else
- compile_to_bytecode(interp, sourcefile, output_file);
+ compile_to_bytecode(interp, sourcefile, output_file, yyscanner);
/* Produce a PBC output file, if one was requested */
if (STATE_WRITE_PBC(interp)) {
@@ -741,13 +676,24 @@
}
}
- /* Run the bytecode */
- if (STATE_RUN_PBC(interp))
- imcc_run_pbc(interp, obj_file, output_file, argc, argv);
+ /* tear down the compilation context */
+ if (IMCC_INFO(interp)->imcc_warn)
+ PARROT_WARNINGS_on(interp, PARROT_WARNINGS_ALL_FLAG);
+ else
+ PARROT_WARNINGS_off(interp, PARROT_WARNINGS_ALL_FLAG);
+
+ if (!IMCC_INFO(interp)->gc_off) {
+ Parrot_unblock_GC_mark(interp);
+ Parrot_unblock_GC_sweep(interp);
+ }
yylex_destroy(yyscanner);
- IMCC_INFO(interp)->yyscanner = NULL;
- return 0;
+
+ /* should the bytecode be run */
+ if (STATE_RUN_PBC(interp))
+ return 1;
+ else
+ return 0;
}
/*
Modified: branches/gsoc_threads/compilers/imcc/optimizer.c
==============================================================================
--- branches/gsoc_threads/compilers/imcc/optimizer.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/optimizer.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -824,18 +824,19 @@
case PARROT_ARG_S:
eval[i + 1] = i; /* regs used are I0, I1, I2 */
if (ops <= 2 || i) { /* fill source regs */
+ SymReg *r_ = r[i]->type & VT_CONSTP ? r[i]->reg : r[i];
switch (r[i]->set) {
case 'I':
- REG_INT(interp, i) = IMCC_int_from_reg(interp, r[i]);
+ REG_INT(interp, i) = IMCC_int_from_reg(interp, r_);
break;
case 'N':
{
- STRING * const s = Parrot_str_new(interp, r[i]->name, 0);
+ STRING * const s = Parrot_str_new(interp, r_->name, 0);
REG_NUM(interp, i) = Parrot_str_to_num(interp, s);
}
break;
case 'S':
- REG_STR(interp, i) = IMCC_string_from_reg(interp, r[i]);
+ REG_STR(interp, i) = IMCC_string_from_reg(interp, r_);
break;
default:
break;
@@ -1416,7 +1417,7 @@
Instruction *ins = unit->bb_list[i]->start;
if ((ins->type & ITLABEL) && *ins->symregs[0]->name != '_') {
const SymReg * const lab = ins->symregs[0];
- used = IMCC_INFO(interp)->has_compile ? 1 : 0;
+ used = 0;
if (!lab->first_ins)
continue;
Modified: branches/gsoc_threads/compilers/imcc/parser.h
==============================================================================
--- branches/gsoc_threads/compilers/imcc/parser.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/parser.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -27,11 +27,12 @@
SymReg * macro(PARROT_INTERP, char *name);
-PARROT_EXPORT int yyparse(yyscan_t, PARROT_INTERP);
-PARROT_EXPORT int yylex(YYSTYPE *, yyscan_t, PARROT_INTERP);
-PARROT_EXPORT int yylex_destroy(yyscan_t);
+int yyparse(yyscan_t, PARROT_INTERP);
+int yylex(YYSTYPE *, yyscan_t, PARROT_INTERP);
+int yylex_destroy(yyscan_t);
int yylex_init(yyscan_t*);
+int yylex_init_extra(PARROT_INTERP, yyscan_t*);
int yyget_column(yyscan_t);
void yyset_column(int column_no , yyscan_t);
int yyerror(yyscan_t, Interp*, const char *);
Modified: branches/gsoc_threads/compilers/imcc/parser_util.c
==============================================================================
--- branches/gsoc_threads/compilers/imcc/parser_util.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/parser_util.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -47,7 +47,7 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_WARN_UNUSED_RESULT
-static int change_op(PARROT_INTERP,
+static int change_op_arg_to_num(PARROT_INTERP,
ARGMOD(IMC_Unit *unit),
ARGMOD(SymReg **r),
int num,
@@ -58,15 +58,6 @@
FUNC_MODIFIES(*unit)
FUNC_MODIFIES(*r);
-PARROT_CANNOT_RETURN_NULL
-static void * imcc_compile_file(PARROT_INTERP,
- ARGIN(const char *fullname),
- ARGOUT(STRING **error_message))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*error_message);
-
static void imcc_destroy_macro_values(ARGMOD(void *value))
__attribute__nonnull__(1)
FUNC_MODIFIES(*value);
@@ -94,14 +85,10 @@
FUNC_MODIFIES(*unit)
FUNC_MODIFIES(*r);
-#define ASSERT_ARGS_change_op __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+#define ASSERT_ARGS_change_op_arg_to_num __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(unit) \
, PARROT_ASSERT_ARG(r))
-#define ASSERT_ARGS_imcc_compile_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(fullname) \
- , PARROT_ASSERT_ARG(error_message))
#define ASSERT_ARGS_imcc_destroy_macro_values __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(value))
#define ASSERT_ARGS_try_rev_cmp __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -232,6 +219,9 @@
=item C<static Instruction * var_arg_ins(PARROT_INTERP, IMC_Unit *unit, const
char *name, SymReg **r, int n, int emit)>
+Create an C<Instruction> object for an instruction that takes a variable
+number of arguments.
+
=cut
*/
@@ -479,8 +469,6 @@
if (r[0]->set == r[1]->set && REG_NEEDS_ALLOC(r[1]))
ins->type |= ITALIAS;
}
- else if (STREQ(name, "compile"))
- ++IMCC_INFO(interp)->has_compile;
found_ins:
if (emit)
@@ -494,28 +482,6 @@
/*
-=item C<int do_yylex_init(PARROT_INTERP, yyscan_t* yyscanner)>
-
-=cut
-
-*/
-
-PARROT_EXPORT
-int
-do_yylex_init(PARROT_INTERP, ARGOUT(yyscan_t* yyscanner))
-{
- ASSERT_ARGS(do_yylex_init)
- const int retval = yylex_init(yyscanner);
-
- /* This way we can get the interpreter via yyscanner */
- if (!retval)
- yyset_extra(interp, *yyscanner);
-
- return retval;
-}
-
-/*
-
=item C<PMC * imcc_compile(PARROT_INTERP, const char *s, int pasm_file, STRING
**error_message)>
@@ -547,7 +513,7 @@
UINTVAL regs_used[4] = {3, 3, 3, 3};
INTVAL eval_number;
- do_yylex_init(interp, &yyscanner);
+ yylex_init_extra(interp, &yyscanner);
/* we create not yet anchored PMCs - e.g. Subs: turn off GC */
Parrot_block_GC_mark(interp);
@@ -710,6 +676,8 @@
=item C<PMC * IMCC_compile_pir_s(PARROT_INTERP, const char *s, STRING
**error_message)>
+Compile PIR code from a C string. Returns errors in the <STRING> provided.
+
=cut
*/
@@ -729,6 +697,8 @@
=item C<PMC * IMCC_compile_pasm_s(PARROT_INTERP, const char *s, STRING
**error_message)>
+Compile PASM code from a C string. Returns errors in the <STRING> provided.
+
=cut
*/
@@ -747,6 +717,8 @@
=item C<PMC * imcc_compile_pasm_ex(PARROT_INTERP, const char *s)>
+Compile PASM code from a C string. Throws an exception upon errors.
+
=cut
*/
@@ -772,6 +744,8 @@
=item C<PMC * imcc_compile_pir_ex(PARROT_INTERP, const char *s)>
+Compile PIR code from a C string. Throws an exception upon errors.
+
=cut
*/
@@ -795,8 +769,8 @@
/*
-=item C<static void * imcc_compile_file(PARROT_INTERP, const char *fullname,
-STRING **error_message)>
+=item C<void * imcc_compile_file(PARROT_INTERP, const char *fullname, STRING
+**error_message)>
Compile a file by filename (can be either PASM or IMCC code)
@@ -804,8 +778,9 @@
*/
+PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
-static void *
+void *
imcc_compile_file(PARROT_INTERP, ARGIN(const char *fullname),
ARGOUT(STRING **error_message))
{
@@ -865,7 +840,7 @@
if (ext && STREQ(ext, ".pasm")) {
void *yyscanner;
- do_yylex_init(interp, &yyscanner);
+ yylex_init_extra(interp, &yyscanner);
IMCC_INFO(interp)->state->pasm_file = 1;
/* see imcc.l */
@@ -875,7 +850,7 @@
}
else {
void *yyscanner;
- do_yylex_init(interp, &yyscanner);
+ yylex_init_extra(interp, &yyscanner);
IMCC_INFO(interp)->state->pasm_file = 0;
compile_file(interp, fp, yyscanner);
@@ -910,44 +885,6 @@
/*
-=item C<void * IMCC_compile_file(PARROT_INTERP, const char *s)>
-
-Note: This function is provided for backward compatibility. This
-function can go away in future.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-void *
-IMCC_compile_file(PARROT_INTERP, ARGIN(const char *s))
-{
- ASSERT_ARGS(IMCC_compile_file)
- STRING *error_message;
- return imcc_compile_file(interp, s, &error_message);
-}
-
-/*
-
-=item C<void * IMCC_compile_file_s(PARROT_INTERP, const char *s, STRING
-**error_message)>
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-void *
-IMCC_compile_file_s(PARROT_INTERP, ARGIN(const char *s),
- ARGOUT(STRING **error_message))
-{
- ASSERT_ARGS(IMCC_compile_file_s)
- return imcc_compile_file(interp, s, error_message);
-}
-
-/*
-
=item C<void register_compilers(PARROT_INTERP)>
Register additional compilers with the interpreter
@@ -972,8 +909,11 @@
/*
-=item C<static int change_op(PARROT_INTERP, IMC_Unit *unit, SymReg **r, int num,
-int emit)>
+=item C<static int change_op_arg_to_num(PARROT_INTERP, IMC_Unit *unit, SymReg
+**r, int num, int emit)>
+
+Change one argument of an op to be numeric in stead of integral. Used when
+integer argument op variants don't exist.
=cut
@@ -981,9 +921,9 @@
PARROT_WARN_UNUSED_RESULT
static int
-change_op(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGMOD(SymReg **r), int num, int emit)
+change_op_arg_to_num(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGMOD(SymReg **r), int num, int emit)
{
- ASSERT_ARGS(change_op)
+ ASSERT_ARGS(change_op_arg_to_num)
int changed = 0;
if (r[num]->type & (VTCONST|VT_CONSTP)) {
@@ -1045,44 +985,11 @@
ASSERT_ARGS(try_find_op)
char fullname[64];
int changed = 0;
- /*
- * eq_str, eq_num => eq
- * ...
- */
- if (n == 3 && r[2]->type == VTADDRESS) {
- if (STREQ(name, "eq_str") || STREQ(name, "eq_num")) {
- name = "eq";
- changed = 1;
- }
- else if (STREQ(name, "ne_str") || STREQ(name, "ne_num")) {
- name = "ne";
- changed = 1;
- }
- else if (STREQ(name, "le_str") || STREQ(name, "le_num")) {
- name = "le";
- changed = 1;
- }
- else if (STREQ(name, "lt_str") || STREQ(name, "lt_num")) {
- name = "lt";
- changed = 1;
- }
- else if (STREQ(name, "ge_str") || STREQ(name, "ge_num")) {
- name = "ge";
- changed = 1;
- }
- else if (STREQ(name, "gt_str") || STREQ(name, "gt_num")) {
- name = "gt";
- changed = 1;
- }
- }
- else if (n == 3 && (STREQ(name, "cmp_str") || STREQ(name, "cmp_num"))) {
- name = "cmp";
- changed = 1;
- }
+
if (n == 3 && r[0]->set == 'N') {
if (r[1]->set == 'I') {
const SymReg * const r1 = r[1];
- changed |= change_op(interp, unit, r, 1, emit);
+ changed |= change_op_arg_to_num(interp, unit, r, 1, emit);
/* op Nx, Iy, Iy: reuse generated temp Nz */
if (r[2]->set == 'I' && r[2]->type != VTADDRESS && r[2] == r1)
@@ -1090,20 +997,20 @@
}
if (r[2]->set == 'I' && r[2]->type != VTADDRESS)
- changed |= change_op(interp, unit, r, 2, emit);
+ changed |= change_op_arg_to_num(interp, unit, r, 2, emit);
}
/* handle eq_i_n_ic */
else if (n == 3 && r[1]->set == 'N' && r[0]->set == 'I' &&
r[2]->type == VTADDRESS) {
- changed |= change_op(interp, unit, r, 0, emit);
+ changed |= change_op_arg_to_num(interp, unit, r, 0, emit);
}
else if (n == 2 && r[0]->set == 'N' && r[1]->set == 'I') {
/*
* transcendentals e.g. acos N, I
*/
if (!STREQ(name, "fact"))
- changed = change_op(interp, unit, r, 1, emit);
+ changed = change_op_arg_to_num(interp, unit, r, 1, emit);
}
if (changed) {
@@ -1118,6 +1025,8 @@
=item C<static const char * try_rev_cmp(const char *name, SymReg **r)>
+Try to find a valid op doing the same thing by reversing comparisons.
+
=cut
*/
@@ -1187,11 +1096,12 @@
=item C<void imcc_init(PARROT_INTERP)>
+Initialize IMCC with Parrot by registering it as a PIR and PASM compiler.
+
=cut
*/
-PARROT_EXPORT
void
imcc_init(PARROT_INTERP)
{
@@ -1236,11 +1146,12 @@
=item C<void imcc_destroy(PARROT_INTERP)>
+Deallocate memory associated with IMCC.
+
=cut
*/
-PARROT_EXPORT
void
imcc_destroy(PARROT_INTERP)
{
Modified: branches/gsoc_threads/compilers/imcc/pbc.c
==============================================================================
--- branches/gsoc_threads/compilers/imcc/pbc.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/pbc.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -736,6 +736,8 @@
=item C<static subs_t * find_sub_by_subid(PARROT_INTERP, const char *lookup,
const subs_t *sym, int *pc)>
+Find the first sub in the current code segment with a given subid.
+
=cut
*/
@@ -888,7 +890,7 @@
IMCC_string_from_reg(PARROT_INTERP, ARGIN(const SymReg *r))
{
ASSERT_ARGS(IMCC_string_from_reg)
- const char *buf = r->name;
+ char *buf = r->name;
if (r->type & VT_ENCODED) {
/*
@@ -896,19 +898,75 @@
* get first part as charset, rest as string
*/
STRING *s;
+ const CHARSET *s_charset;
+ const ENCODING *s_encoding = NULL;
+ const ENCODING *src_encoding;
const char *charset;
- char * const p = strchr(r->name, '"');
+ #define MAX_NAME 31
+ char charset_name[MAX_NAME + 1];
+ char encoding_name[MAX_NAME + 1];
+ char * p = strchr(r->name, '"');
+ char * p2 = strchr(r->name, ':');
PARROT_ASSERT(p && p[-1] == ':');
-
- p[-1] = 0;
- charset = r->name;
+ if (p2 < p -1) {
+ strncpy(encoding_name, buf, p2 - buf);
+ encoding_name[p2-buf] = '\0';
+ strncpy(charset_name, p2 +1, p - p2 - 2);
+ charset_name[p- p2 - 2] = '\0';
+ /*fprintf(stderr, "%s:%s\n", charset_name, encoding_name);*/
+ s_charset = Parrot_find_charset(interp, charset_name);
+ if (s_charset == NULL)
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_STRING_REPRESENTATION,
+ "Unknown charset '%s'", charset_name);
+ s_encoding = Parrot_find_encoding(interp, encoding_name);
+ if (s_encoding == NULL)
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_STRING_REPRESENTATION,
+ "Unknown encoding '%s'", encoding_name);
+ }
+ else {
+ strncpy(charset_name, buf, p - buf - 1);
+ charset_name[p - buf - 1] = '\0';
+ /*fprintf(stderr, "%s\n", charset_name);*/
+ s_charset = Parrot_find_charset(interp, charset_name);
+ if (s_charset == NULL)
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_STRING_REPRESENTATION,
+ "Unknown charset '%s'", charset_name);
+ }
+ if (strcmp(charset_name, "unicode") == 0)
+ src_encoding = Parrot_utf8_encoding_ptr;
+ else
+ src_encoding = Parrot_fixed_8_encoding_ptr;
+ if (s_encoding == NULL)
+ s_encoding = src_encoding;
/* past delim */
buf = p + 1;
- s = Parrot_str_unescape(interp, buf, '"', charset);
-
- /* restore colon, as we may reuse this string */
- p[-1] = ':';
+ if (strcmp(charset_name, "unicode") == 0 && strcmp(encoding_name, "utf8") == 0) {
+ /* Special case needed for backward compatibility with utf8 literals
+ * using \xHH\xHH byte sequences */
+ s = Parrot_str_unescape(interp, buf, '"', "utf8:unicode");
+ }
+ else {
+ p = buf;
+ p2 = strchr(buf, '"');
+ while (p2 != NULL) {
+ p = p2;
+ p2 = strchr(p + 1, '"');
+ }
+ {
+ STRING * aux = Parrot_str_new_init(interp, buf, p - buf,
+ src_encoding, s_charset, 0);
+ s = Parrot_str_unescape_string(interp, aux,
+ s_charset, s_encoding, PObj_constant_FLAG);
+ if (!CHARSET_VALIDATE(interp, s))
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_STRING_REPRESENTATION,
+ "Malformed string");
+ }
+ }
return s;
}
else if (*buf == '"') {
@@ -929,6 +987,9 @@
=item C<STRING * IMCC_string_from__STRINGC(PARROT_INTERP, char *buf)>
+Creates a Parrot C<STRING> from a string constant found in PIR or PASM. This
+includes cases where charset and/or encoding are specified.
+
=cut
*/
@@ -1267,7 +1328,7 @@
ASSERT_ARGS(add_const_pmc_sub)
PMC *ns_pmc;
PMC *sub_pmc;
- Parrot_Sub_attributes *sub, *outer_sub;
+ Parrot_Sub_attributes *sub;
PackFile_ConstTable * const ct = interp->code->const_table;
IMC_Unit * const unit =
@@ -1280,23 +1341,25 @@
SymReg * const ns = unit->_namespace->reg;
/* strip namespace off from front */
+ static const char ns_sep[] = "@@@";
+ char *real_name = strstr(r->name, ns_sep);
- static const char ns_sep[] = "@@@";
- char *real_name = strstr(r->name, ns_sep);
if (real_name) {
/* Unfortunately, there is no strrstr, then iterate until last */
char *aux = strstr(real_name + 3, ns_sep);
+
while (aux) {
- real_name = aux;
- aux = strstr(real_name + 3, ns_sep);
+ real_name = aux;
+ aux = strstr(real_name + 3, ns_sep);
}
+
real_name += 3;
}
IMCC_debug(interp, DEBUG_PBC_CONST,
"name space const = %d ns name '%s'\n", ns->color, ns->name);
- ns_const = ns->color;
+ ns_const = ns->color;
if (real_name) {
char * const p = mem_sys_strdup(real_name);
@@ -1327,15 +1390,17 @@
else {
/* use a possible type mapping for the Sub PMCs, and create it */
const INTVAL type = Parrot_get_ctx_HLL_type(interp,
- r->pcc_sub->yield ? enum_class_Coroutine : enum_class_Sub);
+ r->pcc_sub->yield
+ ? enum_class_Coroutine
+ : enum_class_Sub);
/* TODO create constant - see also src/packfile.c */
sub_pmc = Parrot_pmc_new(interp, type);
}
/* Set flags and get the sub info. */
- PObj_get_FLAGS(sub_pmc) |= (r->pcc_sub->pragma & SUB_FLAG_PF_MASK);
PMC_get_sub(interp, sub_pmc, sub);
+ PObj_get_FLAGS(sub_pmc) |= (r->pcc_sub->pragma & SUB_FLAG_PF_MASK);
Sub_comp_get_FLAGS(sub) |= (r->pcc_sub->pragma & SUB_COMP_FLAG_MASK);
r->color = add_const_str(interp, IMCC_string_from_reg(interp, r));
@@ -1352,7 +1417,8 @@
mem_sys_free(oldname);
/* create string constant for it. */
- unit->subid->color = add_const_str(interp, IMCC_string_from_reg(interp, unit->subid));
+ unit->subid->color = add_const_str(interp,
+ IMCC_string_from_reg(interp, unit->subid));
}
sub->subid = ct->constants[unit->subid->color]->u.string;
@@ -1365,7 +1431,8 @@
break;
case PFC_STRING:
ns_pmc = Parrot_pmc_new_constant(interp, enum_class_String);
- VTABLE_set_string_native(interp, ns_pmc, ct->constants[ns_const]->u.string);
+ VTABLE_set_string_native(interp, ns_pmc,
+ ct->constants[ns_const]->u.string);
break;
default:
break;
@@ -1381,7 +1448,7 @@
sub->n_regs_used[i] = unit->n_regs_used[i];
sub->lex_info = create_lexinfo(interp, unit, sub_pmc,
- r->pcc_sub->pragma & P_NEED_LEX);
+ r->pcc_sub->pragma & P_NEED_LEX);
sub->outer_sub = find_outer(interp, unit);
sub->vtable_index = -1;
@@ -1428,7 +1495,6 @@
else
sub->method_name = Parrot_str_new(interp, "", 0);
-
if (unit->has_ns_entry_name == 1) {
/* Work out the name of the ns entry. */
if (unit->ns_entry_name) {
@@ -1443,25 +1509,24 @@
Parrot_store_sub_in_namespace(interp, sub_pmc);
- if (sub->outer_sub)
- PMC_get_sub(interp, sub->outer_sub, outer_sub);
-
/*
* store the sub's strings
* XXX these need to occur before the sub to support thawing properly
*/
{
PMC *strings = Parrot_freeze_strings(interp, sub_pmc);
- int n = VTABLE_elements(interp, strings);
+ int n = VTABLE_elements(interp, strings);
+
for (i = 0; i < n; i++) {
- int unused = add_const_str(interp, VTABLE_get_string_keyed_int(interp, strings, i));
+ int unused = add_const_str(interp,
+ VTABLE_get_string_keyed_int(interp, strings, i));
}
}
/* store the sub */
{
- const int k = add_const_table(interp);
- PackFile_Constant * const pfc = ct->constants[k];
+ const int k = add_const_table(interp);
+ PackFile_Constant * const pfc = ct->constants[k];
pfc->type = PFC_PMC;
pfc->u.key = sub_pmc;
@@ -1469,14 +1534,20 @@
IMCC_INFO(interp)->globals->cs->subs->pmc_const = k;
- IMCC_debug(interp, DEBUG_PBC_CONST,
- "add_const_pmc_sub '%s' flags %x color %d (%Ss) "
- "lex_info %s :outer(%Ss)\n",
- r->name, r->pcc_sub->pragma, k,
- sub_pmc->vtable->whoami,
- sub->lex_info ? "yes" : "no",
- sub->outer_sub? outer_sub->name :
- Parrot_str_new(interp, "*none*", 0));
+ if (DEBUG_PBC_CONST & IMCC_INFO(interp)->debug) {
+ Parrot_Sub_attributes *outer_sub;
+ if (sub->outer_sub)
+ PMC_get_sub(interp, sub->outer_sub, outer_sub);
+
+ IMCC_debug(interp, DEBUG_PBC_CONST,
+ "add_const_pmc_sub '%s' flags %x color %d (%Ss) "
+ "lex_info %s :outer(%Ss)\n",
+ r->name, r->pcc_sub->pragma, k,
+ sub_pmc->vtable->whoami,
+ sub->lex_info ? "yes" : "no",
+ sub->outer_sub ? outer_sub->name
+ : Parrot_str_new(interp, "*none*", 0));
+ }
/*
* create entry in our fixup (=symbol) table
Modified: branches/gsoc_threads/compilers/imcc/pcc.c
==============================================================================
--- branches/gsoc_threads/compilers/imcc/pcc.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/pcc.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -526,6 +526,9 @@
=item C<static int pcc_reg_mov(PARROT_INTERP, unsigned char d, unsigned char s,
void *vinfo)>
+Callback for C<Parrot_register_move>. Inserts move instructions in stead of
+actually moving the registers.
+
=cut
*/
@@ -598,6 +601,8 @@
=item C<static Instruction * move_regs(PARROT_INTERP, IMC_Unit *unit,
Instruction *ins, size_t n, SymReg **dest, SymReg **src)>
+Insert instructions for moving C<n> registers from C<src> to C<dest>.
+
=cut
*/
@@ -720,6 +725,9 @@
=item C<static void insert_tail_call(PARROT_INTERP, IMC_Unit *unit, Instruction
*ins, SymReg *sub, SymReg *meth)>
+Creates and inserts an appropriate tailcall instruction for either a sub call
+or a method call.
+
=cut
*/
Modified: branches/gsoc_threads/compilers/imcc/reg_alloc.c
==============================================================================
--- branches/gsoc_threads/compilers/imcc/reg_alloc.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/reg_alloc.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -229,6 +229,8 @@
=item C<void free_reglist(IMC_Unit *unit)>
+Frees the register list associated with a compilation unit.
+
=cut
*/
@@ -405,6 +407,8 @@
=item C<static void sort_reglist(IMC_Unit *unit)>
+Sort a compilation unit's register list (by line number of first appearance).
+
=cut
*/
@@ -529,6 +533,8 @@
=item C<static void compute_one_du_chain(SymReg *r, IMC_Unit *unit)>
+Compute the DU-chain for one register within the compilation unit.
+
=cut
*/
@@ -691,6 +697,9 @@
=item C<static void vanilla_reg_alloc(PARROT_INTERP, IMC_Unit *unit)>
+Vanilla register allocator - assign every virtual register to an actual
+register.
+
=cut
*/
@@ -745,6 +754,9 @@
=item C<static void allocate_lexicals(PARROT_INTERP, IMC_Unit *unit)>
+Allocate registers for lexical variables. These must have unique registers
+because they are accessible through the LexPad.
+
=cut
*/
Modified: branches/gsoc_threads/compilers/imcc/symreg.c
==============================================================================
--- branches/gsoc_threads/compilers/imcc/symreg.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/imcc/symreg.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -824,6 +824,9 @@
=item C<static int int_overflows(const SymReg *r)>
+Determine whether an integer constant would overflow an C<INTVAL>
+register.
+
=cut
*/
Copied: branches/gsoc_threads/compilers/opsc/Defines.mak (from r47544, trunk/compilers/opsc/Defines.mak)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/Defines.mak Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/Defines.mak)
@@ -0,0 +1,24 @@
+OPSC_DIR = compilers/opsc
+
+OPSC_SOURCES_GENERATED = \
+ $(OPSC_DIR)/gen/Ops/Compiler.pir \
+ $(OPSC_DIR)/gen/Ops/Compiler/Actions.pir \
+ $(OPSC_DIR)/gen/Ops/Compiler/Grammar.pir \
+ $(OPSC_DIR)/gen/Ops/Emitter.pir \
+ $(OPSC_DIR)/gen/Ops/Trans.pir \
+ $(OPSC_DIR)/gen/Ops/Trans/C.pir \
+ $(OPSC_DIR)/gen/Ops/Op.pir \
+ $(OPSC_DIR)/gen/Ops/OpLib.pir \
+ $(OPSC_DIR)/gen/Ops/File.pir \
+ $(OPSC_DIR)/gen/Ops/Renumberer.pir
+
+OPSC_SOURCES = \
+ $(OPSC_DIR)/opsc.pir \
+ $(OPSC_DIR)/src/builtins.pir \
+ $(OPSC_SOURCES_GENERATED)
+
+OPSC_CLEANUPS = \
+ $(OPSC_DIR)/opsc.pbc \
+ $(LIBRARY_DIR)/opsc.pbc \
+ $(OPSC_SOURCES_GENERATED)
+
Copied: branches/gsoc_threads/compilers/opsc/Rules.mak (from r47544, trunk/compilers/opsc/Rules.mak)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/Rules.mak Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/Rules.mak)
@@ -0,0 +1,50 @@
+$(LIBRARY_DIR)/opsc.pbc: $(NQP_RX) $(OPSC_SOURCES) $(NQPRX_LIB_SETTING)
+ $(PARROT) -o $(LIBRARY_DIR)/opsc.pbc $(OPSC_DIR)/opsc.pir
+
+$(OPSC_DIR)/gen/Ops/Compiler.pir: $(OPSC_DIR)/src/Ops/Compiler.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Compiler.pm
+
+$(OPSC_DIR)/gen/Ops/Compiler/Actions.pir: $(OPSC_DIR)/src/Ops/Compiler/Actions.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Compiler/Actions.pm
+
+$(OPSC_DIR)/gen/Ops/Compiler/Grammar.pir: $(OPSC_DIR)/src/Ops/Compiler/Grammar.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Compiler/Grammar.pm
+
+$(OPSC_DIR)/gen/Ops/Emitter.pir: $(OPSC_DIR)/src/Ops/Emitter.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Emitter.pm
+
+$(OPSC_DIR)/gen/Ops/File.pir: $(OPSC_DIR)/src/Ops/File.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/File.pm
+
+$(OPSC_DIR)/gen/Ops/Op.pir: $(OPSC_DIR)/src/Ops/Op.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Op.pm
+
+$(OPSC_DIR)/gen/Ops/OpLib.pir: $(OPSC_DIR)/src/Ops/OpLib.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/OpLib.pm
+
+$(OPSC_DIR)/gen/Ops/Trans.pir: $(OPSC_DIR)/src/Ops/Trans.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Trans.pm
+
+$(OPSC_DIR)/gen/Ops/Trans/C.pir: $(OPSC_DIR)/src/Ops/Trans/C.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Trans/C.pm
+
+$(OPSC_DIR)/gen/Ops/Renumberer.pir: $(OPSC_DIR)/src/Ops/Renumberer.pm $(NQP_RX)
+ $(NQP_RX) --target=pir --output=$@ $(OPSC_DIR)/src/Ops/Renumberer.pm
+
+# Target to force rebuild opsc from main Makefile
+$(OPSC_DIR)/ops2c.nqp: $(LIBRARY_DIR)/opsc.pbc
+
+$(OPS2C): $(OPSC_DIR)/ops2c.nqp $(LIBRARY_DIR)/opsc.pbc $(NQP_RX) $(PBC_TO_EXE)
+ $(NQP_RX) --target=pir $(OPSC_DIR)/ops2c.nqp >ops2c.pir
+ $(PARROT) -o ops2c.pbc ops2c.pir
+ $(PBC_TO_EXE) ops2c.pbc
+
+$(INSTALLABLEOPS2C): $(OPS2C) src/install_config$(O)
+ $(PBC_TO_EXE) ops2c.pbc --install
+
+opsc: $(LIBRARY_DIR)/opsc.pbc
+
+# Local variables:
+# mode: makefile
+# End:
+# vim: ft=make:
Copied: branches/gsoc_threads/compilers/opsc/TODO (from r47544, trunk/compilers/opsc/TODO)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/TODO Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/TODO)
@@ -0,0 +1,14 @@
+Simple todo.
+
+Required for initial self-hosting:
+
+ * NONE! We are selfhosted now!
+
+Required for full implementation:
+ * Handling #line directives.
+ * A LOT OF DOCUMENTATION.
+ * Add tests for Trans::C independent from 06-emitter.t
+ * Add tests for dynamic mode of Emitter.
+
+Nice to have:
+ * Profiling and performance tuning of ops parsing (we need pmichaud).
Copied: branches/gsoc_threads/compilers/opsc/gen/Ops/Compiler/IGNOREME (from r47544, trunk/compilers/opsc/gen/Ops/Compiler/IGNOREME)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/gen/Ops/Compiler/IGNOREME Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/gen/Ops/Compiler/IGNOREME)
@@ -0,0 +1 @@
+I just dummy file. Please ignore me. Please...
Copied: branches/gsoc_threads/compilers/opsc/gen/Ops/Trans/IGNOREME (from r47544, trunk/compilers/opsc/gen/Ops/Trans/IGNOREME)
==============================================================================
Copied: branches/gsoc_threads/compilers/opsc/ops2c.nqp (from r47544, trunk/compilers/opsc/ops2c.nqp)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/ops2c.nqp Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/ops2c.nqp)
@@ -0,0 +1,125 @@
+#! ./parrot-nqp
+# $Id$
+
+pir::load_bytecode("opsc.pbc");
+pir::load_bytecode("Getopt/Obj.pbc");
+
+my $core := 0;
+my @files;
+my $emit_lines := 1;
+
+my $getopts := Q:PIR{ %r = new ['Getopt';'Obj'] };
+
+$getopts.notOptStop();
+
+# build core ops
+my $arg := $getopts.add();
+$arg.long('core');
+$arg.short('c');
+
+# build the dynops in one .ops file
+$arg := $getopts.add();
+$arg.long('dynamic');
+$arg.short('d');
+$arg.type('String');
+
+# don't write to any files
+$arg := $getopts.add();
+$arg.long('debug');
+$arg.short('g');
+
+# don't add line numbers to generated files (not implemented)
+$arg := $getopts.add();
+$arg.long('no-lines');
+$arg.short('n');
+
+# print anemic usage information and exit
+$arg := $getopts.add();
+$arg.long('help');
+$arg.short('h');
+
+# suppress timing and debug output on stdout
+$arg := $getopts.add();
+$arg.long('quiet');
+$arg.short('q');
+
+my $opts := $getopts.get_options(pir::getinterp__p()[2]);
+
+if $opts<core> {
+ @files := <
+ src/ops/core.ops
+ src/ops/bit.ops
+ src/ops/cmp.ops
+ src/ops/io.ops
+ src/ops/math.ops
+ src/ops/object.ops
+ src/ops/pmc.ops
+ src/ops/set.ops
+ src/ops/string.ops
+ src/ops/sys.ops
+ src/ops/var.ops
+ src/ops/experimental.ops
+ >;
+ $core := 1;
+}
+elsif $opts<dynamic> {
+ $core := 0;
+ @files.push( $opts<dynamic>);
+}
+elsif (+$opts == 0 || $opts<help>) {
+ say("This is ops2c, part of the Parrot VM's build infrastructure.
+normal options:
+ -c --core generate the C code for core ops (must be run from within Parrot's build directory)
+ -d --dynamic <file.ops> generate the C code for the dynamic ops in a single .ops file
+ -q --quiet don't report any non-error messages
+ -h --help print this usage information
+ -n --no-lines do not print #line directives in generated C code (line numbers are not currently supported)
+
+#debugging options:
+ -g --debug perform all processing but do not write to any files
+");
+ pir::exit(0);
+}
+
+if ($opts<no-lines>) {
+ #TODO: figure out how to generate line numbers
+ # $emit_lines is currently ignored
+ $emit_lines := 0;
+}
+
+my $trans := Ops::Trans::C.new();
+my $start_time := pir::time__N();
+my $debug := ?$opts<debug>;
+my $quiet := ?$opts<quiet>;
+my $f;
+my $renum;
+
+if $core {
+ my $lib := Ops::OpLib.new(
+ :skip_file('src/ops/ops.skip'),
+ :quiet($quiet)
+ );
+ $f := Ops::File.new(|@files, :oplib($lib), :core(1), :quiet($quiet));
+}
+else {
+ $f := Ops::File.new(|@files, :core(0), :quiet($quiet));
+}
+
+pir::sprintf(my $time, "%.3f", [pir::time__N() - $start_time] );
+$quiet || say("# Ops parsed in $time seconds.");
+
+my $emitter := Ops::Emitter.new(
+ :ops_file($f), :trans($trans),
+ :script('ops2c.nqp'), :file(@files[0]),
+ :flags( hash( core => $core, quiet => $quiet ) ),
+);
+
+unless $debug {
+ if $core {
+ $emitter.print_ops_num_files();
+ }
+ $emitter.print_c_header_files();
+ $emitter.print_c_source_file();
+}
+
+# vim: expandtab shiftwidth=4 ft=perl6:
Copied: branches/gsoc_threads/compilers/opsc/opsc.pir (from r47544, trunk/compilers/opsc/opsc.pir)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/opsc.pir Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/opsc.pir)
@@ -0,0 +1,37 @@
+#! parrot
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+.namespace [ 'Ops';'Compiler' ]
+
+.include 'compilers/opsc/src/builtins.pir'
+.include 'compilers/opsc/gen/Ops/Compiler/Grammar.pir'
+.include 'compilers/opsc/gen/Ops/Compiler/Actions.pir'
+.include 'compilers/opsc/gen/Ops/Compiler.pir'
+
+.include 'compilers/opsc/gen/Ops/Emitter.pir'
+.include 'compilers/opsc/gen/Ops/Trans.pir'
+.include 'compilers/opsc/gen/Ops/Trans/C.pir'
+
+.include 'compilers/opsc/gen/Ops/Op.pir'
+.include 'compilers/opsc/gen/Ops/OpLib.pir'
+.include 'compilers/opsc/gen/Ops/File.pir'
+.include 'compilers/opsc/gen/Ops/Renumberer.pir'
+
+
+.namespace []
+.sub 'main' :main
+ .param pmc args
+
+ $P0 = compreg 'Ops'
+ $P0.'command_line'(args)
+ exit 0
+.end
+
+
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/gsoc_threads/compilers/opsc/src/Ops/Compiler.pm (from r47544, trunk/compilers/opsc/src/Ops/Compiler.pm)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/src/Ops/Compiler.pm Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/src/Ops/Compiler.pm)
@@ -0,0 +1,17 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+class Ops::Compiler is HLL::Compiler;
+
+INIT {
+ Ops::Compiler.language('Ops');
+ Ops::Compiler.parsegrammar(Ops::Compiler::Grammar);
+ Ops::Compiler.parseactions(Ops::Compiler::Actions);
+}
+
+method set_oplib($oplib) {
+ $Ops::Compiler::Actions::OPLIB := $oplib;
+}
+
+# vim: ft=perl6 expandtab shiftwidth=4:
Copied: branches/gsoc_threads/compilers/opsc/src/Ops/Compiler/Actions.pm (from r47544, trunk/compilers/opsc/src/Ops/Compiler/Actions.pm)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/src/Ops/Compiler/Actions.pm Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/src/Ops/Compiler/Actions.pm)
@@ -0,0 +1,410 @@
+#! nqp
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+class Ops::Compiler::Actions is HLL::Actions;
+
+our $OPLIB;
+
+INIT {
+ pir::load_bytecode("nqp-setting.pbc");
+ $OPLIB := 0;
+}
+
+method TOP($/) {
+ make $<body>.ast;
+}
+
+method body($/) {
+ my $past := PAST::Stmts.new(
+ :node($/)
+ );
+
+ $past<preamble> := PAST::Stmts.new(
+ :node($/)
+ );
+ $past<ops> := PAST::Stmts.new(
+ :node($/)
+ );
+
+ for $<preamble> {
+ $past<preamble>.push($_<preamble_guts>);
+ }
+
+ for $<op> {
+ my $ops := $_.ast;
+ my $op_skip_table;
+ if $OPLIB {
+ $op_skip_table := $OPLIB.op_skip_table;
+ }
+ for @($ops) -> $op {
+ if $OPLIB && !$op_skip_table.exists($op.full_name) || !$OPLIB {
+ $past<ops>.push($op);
+ }
+ }
+ }
+
+ make $past;
+}
+
+method preamble($/) {
+ make PAST::Op.new(
+ :node($/),
+ :pasttype('preamble'),
+ ~$<preamble_guts>
+ );
+}
+
+method op($/) {
+
+ # Handling flags.
+ my %flags := hash();
+ for $<op_flag> {
+ %flags{~$_<identifier>} := 1;
+ }
+
+ my @args := @($<signature>.ast);
+
+ my @norm_args := normalize_args(@args);
+ # We have to clone @norm_args. Otherwise it will be destroyed...
+ my @variants := expand_args(pir::clone__PP(@norm_args));
+
+ my $op := Ops::Op.new(
+ :name(~$<op_name>),
+ );
+
+ # Flatten PAST::Stmts into Op.
+ for @($<op_body>.ast) {
+ $op.push($_);
+ }
+
+ for $<op_body>.ast<jump> {
+ $op.add_jump($_);
+ }
+ if ~$<op_name> eq 'runinterp' {
+ $op.add_jump('PARROT_JUMP_RELATIVE');
+ }
+ $op<flags> := %flags;
+ $op<args> := @args;
+ $op<type> := ~$<op_type>;
+ $op<normalized_args> := @norm_args;
+
+ if !%flags<flow> {
+ my $goto_next := PAST::Op.new(
+ :pasttype('call'),
+ :name('goto_offset'),
+ PAST::Op.new(
+ :pasttype<call>,
+ :name<OPSIZE>,
+ )
+ );
+
+ my $nl := "\n";
+ $op.push(PAST::Op.new(
+ :pasttype<inline>,
+ :inline($nl)
+ ));
+ $op.push($goto_next);
+ $op.push(PAST::Op.new(
+ :pasttype<inline>,
+ :inline<;>
+ ));
+ }
+
+ my $past := PAST::Stmts.new(
+ :node($/)
+ );
+
+ if @variants {
+ for @variants {
+ my $new_op := pir::clone__PP($op);
+ $new_op<arg_types> := $_;
+ $past.push($new_op);
+ }
+ }
+ else {
+ $past.push($op);
+ }
+
+ make $past;
+}
+
+# Normalize args
+# For each arg produce LoL of all available variants
+# E.g. "in" will produce "i" and "ic" variants
+#
+# type one of <i p s n>
+# direction one of <i o io>
+# is_label one of <0 1>
+
+sub normalize_args(@args) {
+ my @result;
+ for @args -> $arg {
+ my $res := PAST::Var.new(
+ :isdecl(1)
+ );
+
+ if $arg<type> eq 'LABEL' {
+ $res<type> := 'i';
+ $res<is_label> := 1;
+ }
+ else {
+ $res<is_label> := 0;
+ }
+
+ if $arg<type> eq 'INTKEY' {
+ $res<type> := 'ki';
+ }
+ elsif $arg<type> ne 'LABEL' {
+ $res<type> := lc(substr($arg<type>, 0, 1));
+ }
+
+ my $use := $arg<direction>;
+
+ if $use eq 'in' {
+ $res<variant> := $res<type> ~ "c";
+ $res<direction> := 'i';
+ }
+ elsif $use eq 'invar' {
+ $res<direction> := 'i';
+ }
+ elsif $use eq 'inconst' {
+ $res<type> := $res<type> ~ "c";
+ $res<direction> := 'i';
+ }
+ elsif $use eq 'inout' {
+ $res<direction> := 'io';
+ }
+ else {
+ $res<direction> := 'o';
+ }
+
+ @result.push($res);
+ }
+ @result;
+}
+
+=begin
+
+=item C<expand_args(@args)>
+
+Given an argument list, returns a list of all the possible argument
+combinations.
+
+=end
+sub expand_args(@args) {
+
+ return list() unless @args;
+
+ my $arg := @args.shift;
+
+ my @var := list($arg<type>);
+ if $arg<variant> {
+ @var.push($arg<variant>);
+ }
+
+ my @list := expand_args(@args);
+ unless + at list {
+ return @var;
+ }
+
+ my @results;
+ for @list -> $l {
+ for @var -> $v {
+ # NQP can't handle it automagically. So wrap $l into list.
+ my @l := pir::does__IPS($l, 'array') ?? $l !! list($l);
+ @results.push(list($v, |@l));
+ }
+ }
+
+ @results;
+}
+
+
+method signature($/) {
+ my $past := PAST::Stmts.new(
+ :node($/)
+ );
+
+ for $<op_param> {
+ $past.push($_.ast);
+ }
+
+ make $past;
+}
+
+method op_param($/) {
+ my $past := PAST::Var.new(
+ :node($/),
+ :isdecl(1)
+ );
+
+ # We have to store 2 "types". Just set 2 properties on Var for now
+ $past<direction> := ~$<op_param_direction>;
+ $past<type> := ~$<op_param_type>;
+
+ make $past;
+}
+
+method op_body($/) {
+ my $past := PAST::Stmts.new(
+ :node($/),
+ );
+ $past<jump> := list();
+ my $prev_words := '';
+ for $<body_word> {
+ if $prev_words && $_<word> {
+ $prev_words := $prev_words ~ ~$_<word>;
+ }
+ elsif $_<word> {
+ $prev_words := ~$_<word>;
+ }
+ else {
+ $past.push(PAST::Op.new(
+ :pasttype('inline'),
+ :inline($prev_words),
+ ));
+ $prev_words := '';
+
+ if $_<macro_param> {
+ $past.push($_<macro_param>.ast);
+ }
+ elsif $_<op_macro> {
+ $past.push($_<op_macro>.ast);
+ for $_<op_macro>.ast<jump> {
+ $past<jump>.push($_);
+ }
+ }
+ }
+ }
+ if $prev_words {
+ $past.push(PAST::Op.new(
+ :pasttype('inline'),
+ :inline($prev_words)
+ ));
+ }
+ make $past;
+}
+
+method macro_param($/) {
+ make PAST::Var.new(
+ :name(~$<num>),
+ :node($/),
+ );
+}
+
+method body_word($/) {
+ #say('# body_word: '~ ~$<word>);
+ my $past;
+ if $<word> {
+ $past := PAST::Op.new(
+ :pasttype('inline'),
+ :inline(~$<word>)
+ );
+ }
+ elsif $<macro_param> {
+ $past := $<macro_param>.ast;
+ }
+ elsif $<op_macro> {
+ $past := $<op_macro>.ast;
+ }
+ else {
+ die('horribly');
+ }
+ #_dumper($past);
+ make $past;
+}
+
+method op_macro($/) {
+ #say('# op_macro');
+ # Generate set of calls to Trans:
+ # goto NEXT() -> goto_offset(opsize())
+ # goto OFFSET($addr) -> goto_offset($addr)
+ # goto ADDRESS($addr) -> goto_address($addr)
+ # expr NEXT() -> expr_offset(opsize())
+ # expr OFFSET($addr) -> expr_offset($addr)
+ # expr ADDRERR($addr) -> expr_address($addr)
+ # restart NEXT() -> restart_offset(opsize()); goto_address(0)
+ # restart OFFSET() -> restart_offset($addr); goto_offset($addr)
+ # XXX In trunk "restart ADDRESS" equivalent of "goto ADDRESS".
+ # restart ADDRESS() -> restart_address($addr); goto_address($addr)
+
+ my $macro_type := ~$<macro_type>;
+ my $macro_dest := ~$<macro_destination>;
+ my $is_next := $macro_dest eq 'NEXT';
+ my $macro_name := $macro_type ~ '_' ~ lc($is_next ?? 'offset' !! $macro_dest);
+
+ my $past := PAST::Stmts.new;
+
+ my $macro := PAST::Op.new(
+ :pasttype('call'),
+ :name($macro_name),
+ );
+ $past.push($macro);
+
+ $past<jump> := list();
+
+ if $macro_type ne 'expr' && $macro_dest eq 'OFFSET' {
+ $past<jump>.push('PARROT_JUMP_RELATIVE');
+ }
+
+ if $macro_type eq 'expr' || $macro_type eq 'goto' {
+ if $is_next {
+ $macro.push(PAST::Op.new(
+ :pasttype<call>,
+ :name<OPSIZE>,
+ ));
+ }
+ else {
+ process_op_macro_body_word($/, $macro);
+ }
+ }
+ elsif $macro_type eq 'restart' {
+ if $is_next {
+ $macro.push(PAST::Op.new(
+ :pasttype<call>,
+ :name<OPSIZE>,
+ ));
+ }
+ else {
+ process_op_macro_body_word($/, $macro);
+ }
+
+ $macro := PAST::Op.new(
+ :pasttype<call>,
+ :name<goto_address>,
+ );
+ if $is_next {
+ $macro.push(PAST::Op.new(
+ :pasttype<inline>,
+ :inline<0>,
+ ));
+ }
+ else {
+ process_op_macro_body_word($/, $macro);
+ }
+ $past.push($macro);
+ }
+ else {
+ pir::die("Horribly");
+ }
+
+ make $past;
+}
+
+sub process_op_macro_body_word($/, $macro) {
+ #_dumper($<body_word>);
+ if $<body_word> {
+ for $<body_word> {
+ #say(' word ' ~ $_);
+ my $bit := $_.ast;
+ $macro.push($_.ast) if defined($bit);
+ }
+ }
+}
+
+# Local Variables:
+# mode: perl6
+# fill-column: 100
+# End:
+# vim: expandtab ft=perl6 shiftwidth=4:
Copied: branches/gsoc_threads/compilers/opsc/src/Ops/Compiler/Grammar.pm (from r47544, trunk/compilers/opsc/src/Ops/Compiler/Grammar.pm)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/src/Ops/Compiler/Grammar.pm Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/src/Ops/Compiler/Grammar.pm)
@@ -0,0 +1,151 @@
+#! nqp
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+INIT { pir::load_bytecode('HLL.pbc'); }
+
+grammar Ops::Compiler::Grammar is HLL::Grammar;
+
+rule TOP {
+ <body>
+ [ $ || <.panic: 'Syntax error'> ]
+}
+
+rule body {
+ [ <preamble> | <op> ]*
+}
+
+token preamble {
+ <begin_preamble>
+ <preamble_guts>
+ <end_preamble>
+}
+
+regex preamble_guts {
+ .*? <?end_preamble>
+}
+
+token begin_preamble {
+ ^^'BEGIN_OPS_PREAMBLE'
+}
+
+token end_preamble {
+ ^^'END_OPS_PREAMBLE'
+}
+
+rule op {
+ <op_type>? 'op' <op_name=identifier>
+ [ '(' <signature> ')' || <.panic: "Fail to parse signature"> ]
+ <op_flag>*
+ [ <op_body> || <.panic: "Fail to parse op body"> ]
+ {*}
+}
+
+token op_type {
+ [ 'inline' | 'function' ]
+}
+
+rule signature { [ [<.ws><op_param><.ws>] ** ',' ]? }
+
+rule op_param {
+ <op_param_direction> <op_param_type>
+}
+
+token op_param_direction {
+ # Order is crucial. NQP doesn't support LTM yet.
+ [
+ | 'inout'
+ | 'inconst'
+ | 'invar'
+ | 'in'
+ | 'out'
+ ]
+}
+
+token op_param_type {
+ # Order is crucial. NQP doesn't support LTM yet.
+ [
+ | 'INTKEY'
+ | 'INT'
+ | 'NUM'
+ | 'STR'
+ | 'PMC'
+ | 'KEY'
+ | 'LABEL'
+ ]
+}
+
+rule op_flag {
+ ':' <identifier>
+}
+
+# OpBody starts with '{' and ends with single '}' on line.
+regex op_body {
+ '{'
+ <body_word>*?
+ ^^ '}'
+}
+
+#Process op body by breaking it into "words" consisting entirely of whitespace,
+#alnums or a single punctuation, then checking for interesting macros (e.g $1
+#or goto NEXT() ) in the midst of the words.
+token body_word {
+ [
+ || <macro_param>
+ || <op_macro>
+ || <word>
+ ]
+}
+
+token word {
+ || <quote>
+ || <ident>
+ || <alnum>
+ || <punct>
+ || <ws>
+}
+
+proto token quote { <...> }
+token quote:sym<apos> { <?[']> <quote_EXPR: ':q'> }
+token quote:sym<dblq> { <?["]> <quote_EXPR: ':q'> }
+
+token macro_param {
+ '$' $<num>=<integer> # Up to nine params.
+}
+
+rule op_macro {
+ <macro_type> <macro_destination> '(' <body_word>*? ')'
+}
+
+token macro_type {
+ [
+ | 'goto'
+ | 'expr'
+ | 'restart'
+ ]
+}
+
+token macro_destination {
+ [
+ | 'OFFSET'
+ | 'ADDRESS'
+ | 'NEXT'
+ ]
+}
+
+token identifier {
+ <.ident>
+}
+
+# ws handles whitespace, pod and perl and C comments
+token ws {
+ [
+ | \s+
+ | '#' \N*
+ | ^^ '=' .*? \n '=cut'
+ | '/*' .*? '*/'
+ ]*
+}
+
+
+# vim: expandtab shiftwidth=4 ft=perl6:
Copied: branches/gsoc_threads/compilers/opsc/src/Ops/Emitter.pm (from r47544, trunk/compilers/opsc/src/Ops/Emitter.pm)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/src/Ops/Emitter.pm Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/src/Ops/Emitter.pm)
@@ -0,0 +1,384 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+class Ops::Emitter is Hash;
+
+=begin
+
+Emitter.
+
+=end
+
+method new(:$ops_file!, :$trans!, :$script!, :$file, :%flags!) {
+ self<ops_file> := $ops_file;
+ self<trans> := $trans;
+ self<script> := $script;
+ self<file> := $file;
+ self<flags> := %flags;
+ self<quiet> := %flags<quiet> // 0;
+
+ # Preparing various bits.
+ my $suffix := $trans.suffix();
+ my $base := 'core';
+
+ if !%flags<core> {
+ $base := subst( $file, /.ops$$/, '');
+ $base := subst( $base, /.*\//, '');
+ }
+
+ my $base_ops_stub := $base ~ '_ops' ~ $suffix;
+ my $base_ops_h := $base_ops_stub ~ '.h';
+
+ self<base> := $base;
+ self<suffix> := $suffix;
+ self<bs> := $base ~ $suffix ~ '_';
+
+ if %flags<core> {
+ self<include> := "parrot/oplib/$base_ops_h";
+ self<func_header> := (~%flags<dir>) ~ "include/" ~ self<include>;
+ self<enum_header> := (~%flags<dir>) ~ "include/parrot/oplib/ops.h";
+ self<source> := (~%flags<dir>) ~ "src/ops/$base_ops_stub.c";
+ }
+ else {
+ my $dynops_dir := subst( $file, /\w+\.ops$$/, '');
+ self<include> := $base ~ "_ops.h";
+ self<func_header> := $dynops_dir ~ self<include>;
+ self<source> := $dynops_dir ~ $base ~ "_ops.c";
+ }
+
+ self<sym_export> := %flags<core>
+ ?? ''
+ !! 'PARROT_DYNEXT_EXPORT';
+
+ self<init_func> := join('_',
+ 'Parrot', 'DynOp', $base ~ $suffix, |$ops_file.version );
+
+ # Prepare ops
+ $trans.prepare_ops(self, $ops_file);
+
+ self;
+};
+
+method ops_file() { self<ops_file> };
+method trans() { self<trans> };
+method script() { self<script> };
+method file() { self<file> };
+method flags() { self<flags> };
+method sym_export() { self<sym_export> };
+method init_func() { self<init_func> };
+
+method base() { self<base> };
+method suffix() { self<suffix> };
+method bs() { self<bs> };
+
+method print_c_header_files() {
+
+ my $fh := pir::new__Ps('FileHandle');
+ $fh.open(self<func_header>, 'w')
+ || die("Can't open "~ self<func_header>);
+ self.emit_c_op_func_header($fh);
+ $fh.close();
+
+ if self.ops_file<core> {
+ $fh := pir::new__Ps('FileHandle');
+ $fh.open(self<enum_header>, 'w')
+ || die("Can't open "~ self<enum_header>);
+ self.emit_c_op_enum_header($fh);
+ $fh.close();
+ }
+}
+
+method emit_c_op_func_header($fh) {
+
+ self._emit_guard_prefix($fh, self<func_header>);
+
+ self._emit_preamble($fh);
+
+ self._emit_includes($fh);
+
+ # Emit runcore specific part.
+ self.trans.emit_c_op_funcs_header_part($fh);
+
+ self._emit_guard_suffix($fh, self<func_header>);
+
+ self._emit_coda($fh);
+}
+
+method emit_c_op_enum_header($fh) {
+
+ self._emit_guard_prefix($fh, self<enum_header>);
+
+ self._emit_preamble($fh);
+
+ self._emit_c_op_enum_header_part($fh);
+
+ self._emit_guard_suffix($fh, self<enum_header>);
+
+ self._emit_coda($fh);
+}
+
+method print_ops_num_files() {
+
+ my $file := ~self<dir> ~ "include/parrot/opsenum.h";
+ my $fh := pir::new__Ps('FileHandle');
+ $fh.open($file, 'w')
+ || die("Can't open $file for writing: " ~ ~pir::err__s());
+ self.emit_c_opsenum_header($fh, $file);
+ $fh.close();
+}
+
+method emit_c_opsenum_header($fh, $file) {
+
+ self._emit_guard_prefix($fh, $file);
+
+ self._emit_preamble($fh);
+
+ self.emit_opsenum_h_body($fh);
+
+ self._emit_guard_suffix($fh, $file);
+
+ self._emit_coda($fh);
+}
+
+method emit_opsenum_h_body($fh) {
+
+ $fh.print("enum OPS_ENUM \{\n");
+
+ my $max_op_num := 0;
+ for self.ops_file.ops -> $op {
+ if !self.ops_file<core> || !self.ops_file.oplib.op_skip_table.exists( $op.full_name ) {
+ my $space := pir::repeat__SsI(' ', 30 - pir::length__Is($op.full_name));
+ $fh.print(" enum_ops_" ~ $op.full_name ~ $space ~ "=");
+ $space := pir::repeat__SsI(' ', 5 - pir::length__Is(~$max_op_num));
+ $fh.print($space ~ $max_op_num ~ ",\n");
+ $max_op_num++;
+ }
+ }
+
+ $fh.print("};\n");
+}
+
+method print_c_source_file() {
+ # Build file in memeory
+ my $fh := pir::new__Ps('StringHandle');
+ $fh.open('dummy.c', 'w');
+ self.emit_c_source_file($fh);
+ $fh.close();
+
+ # ... and write it to disk
+ my $final := pir::new__Ps('FileHandle');
+ $final.open(self<source>, 'w') || die("Can't open filehandle");
+ $final.print($fh.readall());
+ $final.close();
+ return self<source>;
+}
+
+method emit_c_source_file($fh) {
+ self._emit_source_preamble($fh);
+
+ self.trans.emit_source_part(self, $fh);
+
+ self._emit_op_lib_descriptor($fh);
+
+ self.trans.emit_op_lookup(self, $fh);
+
+ self._emit_init_func($fh);
+ self._emit_dymanic_lib_load($fh);
+ self._emit_coda($fh);
+}
+
+method _emit_c_op_enum_header_part($fh) {
+ my $sb := pir::new__Ps('StringBuilder');
+ my $last_op_code := +self.ops_file.ops - 1;
+ for self.ops_file.ops -> $op {
+ $sb.append_format(" PARROT_OP_%0%1 %2 /* %3 */\n",
+ $op.full_name,
+ ($op.code == $last_op_code ?? ' ' !! ','),
+ pir::repeat__SsI(' ', 30 - pir::length__Is($op.full_name)),
+ $op.code);
+ }
+ $fh.print(q|
+typedef enum {
+|);
+ $fh.print(~$sb);
+ $fh.print(q|
+} parrot_opcode_enums;
+|);
+}
+
+method _emit_source_preamble($fh) {
+
+ self._emit_preamble($fh);
+ $fh.print(qq|
+#include "{self<include>}"
+#include "pmc/pmc_parrotlibrary.h"
+#include "pmc/pmc_callcontext.h"
+
+{self.trans.defines(self)}
+
+|);
+
+ $fh.print(self.ops_file.preamble);
+}
+
+method _emit_op_lib_descriptor($fh) {
+
+ my $core_type := self.trans.core_type;
+ $fh.print(q|
+/*
+** op lib descriptor:
+*/
+
+static op_lib_t | ~ self.bs ~ q|op_lib = {| ~ qq|
+ "{self.base}", /* name */
+ "{self.suffix}", /* suffix */
+ $core_type, /* core_type = PARROT_XX_CORE */
+ 0, /* flags */
+ {self.ops_file.version_major}, /* major_version */
+ {self.ops_file.version_minor}, /* minor_version */
+ {self.ops_file.version_patch}, /* patch_version */
+ {+self.ops_file.ops}, /* op_count */
+ {self.trans.op_info(self)}, /* op_info_table */
+ {self.trans.op_func(self)}, /* op_func_table */
+ {self.trans.getop(self)} /* op_code() */ | ~ q|
+};
+|);
+}
+
+method _emit_init_func($fh) {
+
+ my $init1 := self.trans.init_func_init1;
+ my $dispatch := self.trans.init_func_disaptch;
+
+ # TODO There is a bug in NQP about \{
+ $fh.print(q|
+op_lib_t *
+| ~ self.init_func ~ q|(PARROT_INTERP, long init) {
+ /* initialize and return op_lib ptr */
+ if (init == 1) {
+| ~ $init1 ~ q|
+ return &| ~ self.bs ~q|op_lib;
+ }
+ /* set op_lib to the passed ptr (in init) */
+ else if (init) {
+| ~ $dispatch ~ q|
+ }
+ /* deinit - free resources */
+ else {
+ hop_deinit(interp);
+ }
+ return NULL;
+}
+
+|);
+}
+
+method _emit_dymanic_lib_load($fh) {
+
+ if self.flags<core> {
+ return;
+ }
+
+ my $load_func := join('_',
+ q{Parrot}, q{lib}, self.base, q{ops} ~ self.suffix, q{load}, );
+ $fh.print(qq|
+/*
+ * dynamic lib load function - called once
+ */
+{self.sym_export} PMC*
+$load_func(PARROT_INTERP);
+
+{self.sym_export} PMC*
+$load_func(PARROT_INTERP)
+| ~ q|
+{
+ PMC *const lib = Parrot_pmc_new(interp, enum_class_ParrotLibrary);
+ ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) | ~ self.init_func ~q|;
+ dynop_register(interp, lib);
+ return lib;
+}
+|);
+}
+
+# given a headerfile name like "include/parrot/oplib/core_ops.h", this
+# returns a string like "PARROT_OPLIB_CORE_OPS_H_GUARD"
+method _generate_guard_macro_name($filename) {
+ $filename := subst($filename, /.h$/, '');
+ #my @path = File::Spec->splitdir($filename);
+ my @path := split('/', $filename);
+ @path.shift if @path[0]~'/' eq self<flags><dir>;
+ @path.shift if @path[0] eq 'include';
+ @path.shift if @path[0] eq 'parrot';
+ uc( join( '_', 'parrot', |@path, 'h', 'guard' ) );
+}
+
+
+method _emit_guard_prefix($fh, $filename) {
+ my $guardname := self._generate_guard_macro_name($filename);
+ $fh.print('
+/* $Id' ~ '$ */
+');
+ $fh.print(qq/
+#ifndef $guardname
+#define $guardname
+
+/);
+}
+
+method _emit_guard_suffix($fh, $filename) {
+ my $guardname := self._generate_guard_macro_name($filename);
+ $fh.print(qq|
+
+#endif /* $guardname */
+|);
+}
+
+
+method _emit_coda($fh) {
+ $fh.print(q|
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * buffer-read-only: t
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
+|);
+}
+
+method _emit_includes($fh) {
+
+ $fh.print(qq|
+#include "parrot/parrot.h"
+#include "parrot/oplib.h"
+#include "parrot/runcore_api.h"
+
+{self.sym_export} op_lib_t *{self.init_func}(PARROT_INTERP, long init);
+
+|);
+}
+
+method _emit_preamble($fh) {
+
+ $fh.print(qq|
+/* ex: set ro:
+ * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ *
+ * This file is generated automatically from '{self<file>}' (and possibly other
+ * .ops files). by {self<script>}.
+ *
+ * Any changes made here will be lost! To regenerate this file after making
+ * changes to any ops, use the bootstap-ops makefile target.
+ *
+ */
+|);
+
+ if !self.flags<core> {
+ $fh.print("#define PARROT_IN_EXTENSION\n");
+ }
+
+}
+
+# vim: expandtab shiftwidth=4 ft=perl6:
Copied: branches/gsoc_threads/compilers/opsc/src/Ops/File.pm (from r47544, trunk/compilers/opsc/src/Ops/File.pm)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/src/Ops/File.pm Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/src/Ops/File.pm)
@@ -0,0 +1,313 @@
+#! nqp
+# Copyright (C) 2001-2009, Parrot Foundation.
+# $Id$
+
+# XXX Better to put this into docs/ somewhere.
+
+=begin
+
+=head1 NAME
+
+Ops::File - Ops To C Code Generation
+
+=head1 SYNOPSIS
+
+ use Ops::File;
+
+=head1 DESCRIPTION
+
+C<Ops::File> takes one or more files of op functions and
+creates real C code for them.
+
+This class is used by F<tools/build/ops2c.pl>.
+
+=head2 Op Functions
+
+For ops that have trivial bodies (such as just a call to some other
+function and a C<return> statement), opcode functions are in the format:
+
+ inline op opname (args) :flags {
+ ... body of function ...
+ }
+
+Note that currently the C<inline> op type is ignored.
+
+Alternately, for opcode functions that have more internal complexity the
+format is:
+
+ op opname (args) :flags {
+ ... body of function ...
+ }
+
+There may be more than one C<return>.
+
+In both cases the closing brace B<must> be on its own line.
+
+When specifying multiple flags, each flag gets its own prefixing colon.
+
+=head2 Op Arguments
+
+Op arguments are a comma-separated list of direction and type pairs.
+
+Argument direction is one of:
+
+ in the argument passes a value into the op
+ out the argument passes a value out of the op
+ inout the argument passes a value into and out of the op
+ inconst the argument passes a constant value into the op
+ invar the argument passes a variable value into the op
+
+Argument direction is used to determine the life times of symbols and
+their related register allocations. When an argument is passed into an
+op a register is read from, when it's passed out of an op a register is
+written to.
+
+Argument type is one of:
+
+ INT the argument is an integer
+ NUM the argument is an numeric
+ STR the argument is an string
+ PMC the argument is an PMC
+ KEY the argument is an aggregate PMC key
+ INTKEY the argument is an aggregate PMC integer key
+ LABEL the argument is an integer branch offset or address
+
+The size of the return offset is determined from the op function's
+signature.
+
+=head2 Op Flags
+
+The flags are of two types:
+
+=over 4
+
+=item 1 class
+
+The classification of ops is intended to facilitate the selection of
+suitable ops for a Parrot safe mode.
+
+=item 2 behavior
+
+The presence (or absence) of certain flags will change how the op behaves. For
+example, the lack of the C<flow> flag will cause the op to be implicitly
+terminated with C<goto NEXT()>. (See next section).
+
+The :deprecated flag will generate a diagnostic to standard error at
+runtime when a deprecated opcode is invoked and
+C<PARROT_WARNINGS_DEPRECATED_FLAG> has been set.
+
+=back
+
+=head2 Op Body (Macro Substitutions)
+
+In the following macro descriptions, C<PC> and C<PC'> are the current
+and next position within the Parrot code.
+
+=over 4
+
+=item C<goto OFFSET(X)>
+
+Transforms to C<PC' = PC + X>. This is used for branches.
+
+=item C<goto NEXT()>
+
+Transforms to C<PC' = PC + S>, where C<S> is the size of an op.
+
+=item C<goto ADDRESS(X)>
+
+Transforms to C<PC' = X>. This is used for absolute jumps.
+
+=item C<expr OFFSET(X)>
+
+Transforms to C<PC + X>. This is used to give a relative address.
+
+=item C<expr NEXT()>
+
+Transforms to C<PC + S>, the position of the next op.
+
+=item C<expr ADDRESS(X)>
+
+Transforms to C<X>, an absolute address.
+
+=item C<OP_SIZE>
+
+Transforms to C<S>, the size of an op.
+
+=item C<HALT()>
+
+Transforms to C<PC' = 0>. Halts run loop, and resets the current
+position to the start of the Parrot code, without resuming.
+
+=item C<restart OFFSET(X)>
+
+Transforms to C<PC' = 0> and restarts at C<PC + X>.
+
+=item C<restart NEXT()>
+
+Transforms to C<PC' = 0> and restarts at C<PC + S>.
+
+=item C<$n>
+
+Transforms to the op function's nth argument. C<$0> is the opcode itself.
+
+=back
+
+Note that, for ease of parsing, if the argument to one of the above
+notations in a ops file contains parentheses, then double the enclosing
+parentheses and add a space around the argument, like so:
+
+ goto OFFSET(( (void*)interp->happy_place ))
+
+=head2 Class Methods
+
+=over 4
+
+=end
+
+class Ops::File is Hash;
+
+pir::load_bytecode('config.pbc');
+
+=begin
+
+=item C<new(@files)>
+
+Returns a new instance initialized by calling C<read_ops()> on each of
+the specified op files.
+
+=item C<new_str($str)>
+
+Returns a new instance initialized by compiling C<$str> as the contents of an
+ops file.
+
+=end
+
+method new(*@files, :$oplib, :$core!, :$nolines, :$quiet? = 0) {
+ self<files> := @files;
+ self<core> := $core;
+ self<ops> := list(); # Ops
+ self<preamble>:= '';
+ self<compiler>:= pir::compreg__Ps('Ops');
+ self<op_order>:= 0;
+ self<quiet> := $quiet;
+
+ if $core {
+ self<oplib> := $oplib;
+ self<compiler>.set_oplib($oplib);
+ }
+ else {
+ self<file> := @files[0];
+ }
+
+ self._set_version();
+
+ for @files { self.read_ops( $_, $nolines ) }
+
+ self._calculate_op_codes();
+
+ self;
+}
+
+method new_str($str, :$oplib) {
+ self<ops> := list(); # Ops
+ self<preamble> := '';
+
+ self<compiler> := pir::compreg__Ps('Ops');
+ self<oplib> := $oplib;
+ self<compiler>.set_oplib($oplib);
+
+ self._set_version();
+
+ self._set_version();
+
+ self.compile_ops($str);
+
+ self;
+}
+
+
+=begin
+
+=back
+
+=head2 Instance Methods
+
+=over 4
+
+=item C<read_ops($file,$nolines)>
+
+Reads in the specified .ops file, gathering information about the ops.
+
+=end
+
+method read_ops($file, $nolines) {
+ $Ops::Compiler::Actions::OPLIB := self<oplib>;
+
+ self<quiet> || say("# Parsing $file...");
+ my $start_time := pir::time__N();
+ my $buffer := slurp($file);
+ my $start_ops := +self<ops>;
+ self.compile_ops($buffer, :experimental( $file ~~ /experimental\.ops/));
+ my $end_ops := +self<ops>;
+ pir::sprintf(my $time, "%.3f", [pir::time__N() - $start_time] );
+ self<quiet> || say("# Parsed $file in $time seconds; found "~
+ ($end_ops - $start_ops) ~" ops.");
+}
+
+method compile_ops($str, :$experimental? = 0) {
+ my $compiler := self<compiler>;
+ my $past := $compiler.compile($str, :target('past'));
+
+ for @($past<ops>) {
+ $_<experimental> := $experimental;
+ self<ops>.push($_);
+ #say($_.full_name ~ " is number " ~ self<op_order>);
+ self<op_order>++;
+ }
+
+ for @( $past<preamble> ) {
+ self<preamble> := self<preamble> ~ $_;
+ }
+ $past;
+}
+
+method get_parse_tree($str) {
+ my $compiler := pir::compreg__Ps('Ops');
+ $compiler.compile($str, :target('parse'));
+}
+
+method preamble() { self<preamble> };
+method ops() { self<ops> };
+method oplib() { self<oplib> };
+method version() { self<version>; }
+
+method version_major() { self<version_major> }
+method version_minor() { self<version_minor> }
+method version_patch() { self<version_patch> }
+
+method _calculate_op_codes() {
+
+ my $code := 0;
+
+ for self<ops> -> $op {
+ $op<code> := $code++;
+ }
+}
+
+method _set_version() {
+ my $config := _config();
+ my $version := $config<VERSION>;
+ #say("# $version");
+ my @bits := split('.', $version);
+ self<version_major> := @bits[0];
+ self<version_minor> := @bits[1];
+ self<version_patch> := @bits[2];
+ self<version> := @bits;
+}
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: ft=perl6 expandtab shiftwidth=4:
Copied: branches/gsoc_threads/compilers/opsc/src/Ops/Op.pm (from r47544, trunk/compilers/opsc/src/Ops/Op.pm)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/src/Ops/Op.pm Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/src/Ops/Op.pm)
@@ -0,0 +1,381 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=begin
+
+=head1 NAME
+
+Ops::Op - Parrot Operation
+
+=head1 SYNOPSIS
+
+ use Ops::Op;
+
+=head1 DESCRIPTION
+
+C<Ops::Op> represents a Parrot operation (op, for short), as read
+from an ops file via C<Ops::OpsFile>, or perhaps even generated by
+some other means. It is the Perl equivalent of the C<op_info_t> C
+C<struct> defined in F<include/parrot/op.h>.
+
+=head2 Op Type
+
+Ops are either I<auto> or I<manual>. Manual ops are responsible for
+having explicit next-op C<RETURN()> statements, while auto ops can count
+on an automatically generated next-op to be appended to the op body.
+
+Note that F<tools/build/ops2c.pl> supplies either 'inline' or 'function'
+as the op's type, depending on whether the C<inline> keyword is present
+in the op definition. This has the effect of causing all ops to be
+considered manual.
+
+=head2 Op Arguments
+
+Note that argument 0 is considered to be the op itself, with arguments
+1..9 being the arguments passed to the op.
+
+Op argument direction and type are represented by short one or two letter
+descriptors.
+
+Op Direction:
+
+ i The argument is incoming
+ o The argument is outgoing
+ io The argument is both incoming and outgoing
+
+Op Type:
+
+ i The argument is an integer register index.
+ n The argument is a number register index.
+ p The argument is a PMC register index.
+ s The argument is a string register index.
+ ic The argument is an integer constant (in-line).
+ nc The argument is a number constant index.
+ pc The argument is a PMC constant index.
+ sc The argument is a string constant index.
+ kc The argument is a key constant index.
+ ki The argument is a key integer register index.
+ kic The argument is a key integer constant (in-line).
+
+=head2 Class Methods
+
+=over 4
+
+=end
+
+class Ops::Op is PAST::Block;
+
+INIT {
+ pir::load_bytecode("dumper.pbc");
+}
+
+=begin
+
+=item C<new(:$code, :$type, :$name, :@args, :%flags)>
+
+Allocates a new bodyless op. A body must be provided eventually for the
+op to be usable.
+
+C<$code> is the integer identifier for the op.
+
+C<$type> is the type of op (see the note on op types above).
+
+C<$name> is the name of the op.
+
+C<@args> is a reference to an array of argument type descriptors.
+
+C<$flags> is a hash reference containing zero or more I<hints> or
+I<directives>.
+
+
+=back
+
+=head2 Instance Methods
+
+=over 4
+
+=item C<code()>
+
+Returns the op code.
+
+=item C<type()>
+
+The type of the op, either 'inline' or 'function'.
+
+=item C<name()>
+
+The (short or root) name of the op.
+
+=item C<full_name()>
+
+For argumentless ops, it's the same as C<name()>. For ops with
+arguments, an underscore followed by underscore-separated argument types
+are appended to the name.
+
+=item C<func_name()>
+
+The same as C<full_name()>, but with 'C<Parrot_>' prefixed.
+
+=end
+
+method code($code?) { self.attr('code', $code, defined($code)) }
+
+method type($type?) { self.attr('type', $type, defined($type)) }
+
+method name($name?) { self.attr('name', $name, defined($name)) }
+
+method args($args?) { self.attr('args', $args, defined($args)) }
+
+method arg_types($args?) {
+ my $res := self.attr('arg_types', $args, defined($args));
+
+ return list() if !defined($res);
+ pir::does__IPS($res, 'array') ?? $res !! list($res);
+}
+
+method arg_dirs($args?) { self.attr('arg_dirs', $args, defined($args)) }
+
+method arg_type($arg_num) {
+ my @arg_types := self.arg_types;
+ @arg_types[$arg_num];
+}
+
+method full_name() {
+ my $name := self.name;
+ my @arg_types := self.arg_types;
+
+ #say("# $name arg_types " ~ @arg_types);
+ join('_', $name, |@arg_types);
+}
+
+method func_name($trans) {
+ return $trans.prefix ~ self.full_name;
+}
+
+
+=begin
+
+=item C<flags()>
+
+Sets the op's flags. This returns a hash reference, whose keys are any
+flags (passed as ":flag") specified for the op.
+
+=end
+
+method flags(%flags?) { self.attr('flags', %flags, defined(%flags)) }
+
+=begin
+
+=item C<body($body)>
+
+=item C<body()>
+
+Sets/gets the op's code body.
+
+=end
+
+method body() {
+ my $res := '';
+ for @(self) -> $part {
+ $res := $res ~ $part<inline>;
+ }
+ $res;
+}
+
+=begin
+
+=item C<jump($jump)>
+
+=item C<jump()>
+
+Sets/gets a string containing one or more C<op_jump_t> values joined with
+C<|> (see F<include/parrot/op.h>). This indicates if and how an op
+may jump.
+
+=end
+
+method jump($jump?) { self.attr('jump', $jump, defined($jump)) }
+
+=begin
+
+=item C<add_jump($jump)>
+
+=item C<add_jump($jump)>
+
+Add a jump flag to this op if it's not there already.
+
+=end
+
+method add_jump($jump) {
+ my $found_jump := 0;
+
+ unless self.jump { self.jump(list()) }
+
+ for self.jump {
+ if $_ eq $jump { $found_jump := 1 }
+ }
+
+ unless $found_jump {
+ self.jump.push($jump);
+ }
+}
+
+=begin
+
+=item C<get_jump()>
+
+=item C<get_jump()>
+
+Get the jump flags that apply to this op.
+
+=end
+
+method get_jump() {
+
+ if self.jump {
+ return join( '|', |self.jump );
+ }
+ else {
+ return '0';
+ }
+}
+
+=begin
+
+=item C<source($trans, $op)>
+
+Returns the L<C<body()>> of the op with substitutions made by
+C<$trans> (a subclass of C<Ops::Trans>).
+
+=end
+
+method source( $trans ) {
+
+ my $prelude := $trans.body_prelude;
+ return $prelude ~ self.get_body( $trans );
+}
+
+=begin
+
+=item C<get_body($trans)>
+
+Performs the various macro substitutions using the specified transform,
+correctly handling nested substitions, and repeating over the whole string
+until no more substitutions can be made.
+
+C<VTABLE_> macros are enforced by converting C<<< I<< x >>->vtable->I<<
+method >> >>> to C<VTABLE_I<method>>.
+
+=end
+
+method get_body( $trans ) {
+
+ my @body := list();
+
+ #work through the op_body tree
+ for @(self) {
+ my $chunk := self.process_body_chunk($trans, $_);
+ #pir::say('# chunk ' ~ $chunk);
+ @body.push($chunk);
+ }
+
+ join('', |@body);
+}
+
+# Recursively process body chunks returning string.
+
+our multi method process_body_chunk($trans, PAST::Var $chunk) {
+ my $n := +$chunk.name;
+ $trans.access_arg( self.arg_type($n - 1), $n);
+}
+
+our multi method process_body_chunk($trans, PAST::Op $chunk) {
+ my $type := $chunk.pasttype;
+ #say('OP ' ~ $type);
+ if $type eq 'inline' {
+ #_dumper($chunk);
+ #pir::say('RET ' ~ $chunk<inline>);
+ return $chunk.inline;
+ }
+ elsif $type eq 'call' {
+ my $name := $chunk.name;
+ #say('NAME '~$name ~ ' ' ~ $is_next);
+ if $name eq 'OPSIZE' {
+ #say('is_next');
+ return ~self.size;
+ }
+
+ my @children := list();
+ for @($chunk) {
+ @children.push(self.process_body_chunk($trans, $_));
+ }
+ my $children := join('', |@children);
+
+ #pir::say('children ' ~ $children);
+ my $ret := Q:PIR<
+ $P0 = find_lex '$trans'
+ $P1 = find_lex '$name'
+ $S0 = $P1
+ $P1 = find_lex '$children'
+ %r = $P0.$S0($P1)
+ >;
+ #pir::say('RET ' ~ $ret);
+ return $ret;
+ }
+}
+
+our multi method process_body_chunk($trans, PAST::Stmts $chunk) {
+ my @children := list();
+ for @($chunk) {
+ @children.push(self.process_body_chunk($trans, $_));
+ }
+ join('', |@children);
+}
+
+=begin
+
+=item C<size()>
+
+Returns the op's number of arguments. Note that this also includes
+the op itself as one argument.
+
+=end
+
+method size() {
+ return pir::does__IPs(self.arg_types, 'array') ?? +self.arg_types + 1 !! 2;
+}
+
+=begin
+
+=back
+
+=head1 SEE ALSO
+
+=over 4
+
+=item C<Ops::OpsFile>
+
+=item C<Ops::OpTrans>
+
+=item F<tools/build/ops2c.pl>
+
+=back
+
+=head1 HISTORY
+
+Author: Gregor N. Purdy E<lt>gregor at focusresearch.comE<gt>
+
+Migrate to NQP: Vasily Chekalkin E<lt>bacek at bacek.comE<gt>
+
+=end
+
+1;
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: ft=perl6 expandtab shiftwidth=4:
+
Copied: branches/gsoc_threads/compilers/opsc/src/Ops/OpLib.pm (from r47544, trunk/compilers/opsc/src/Ops/OpLib.pm)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/src/Ops/OpLib.pm Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/src/Ops/OpLib.pm)
@@ -0,0 +1,133 @@
+#! nqp
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+INIT {
+ pir::load_bytecode("dumper.pbc");
+};
+
+class Ops::OpLib is Hash;
+
+=begin NAME
+
+C<Ops::OpLib> - library of Parrot Operations.
+
+=end NAME
+
+=begin DESCRIPTION
+
+Responsible for loading F<src/ops/ops.skip> files, parse F<.ops> files, sort
+them, etc.
+
+Heavily inspired by Perl5 Parrot::Ops2pm.
+
+=end DESCRIPTION
+
+=begin SYNOPSIS
+
+ my $oplib := Ops::OpLib.new(
+ :skip_file('../../src/ops/ops.skip'),
+ ));
+
+=end SYNOPSIS
+
+=begin ATTRIBUTES
+
+=over 4
+
+=item * C<%.op_skip_table>
+
+Reference to a 'seen-hash' of skipped opcodes.
+
+ 'op_skip_table' => {
+ 'bor_i_ic_ic' => 1,
+ 'xor_i_ic_ic' => 1,
+ 'tanh_n_nc' => 1,
+ # ...
+ },
+
+As F<src/ops/ops.skip> states, these are "... opcodes that could be listed in
+F<[src/ops/]ops.num> but aren't ever to be generated or implemented because
+they are useless and/or silly."
+
+=back
+
+=end ATTRIBUTES
+
+=begin METHODS
+
+=over 4
+
+=item C<new>
+
+Build OpLib.
+
+(It's NQP. In Perl 6 it should be submethod and invoked automatically)
+
+=end METHODS
+
+method new(:$skip_file, :$quiet? = 0) {
+ self<skip_file> := $skip_file // './src/ops/ops.skip';
+ self<quiet> := $quiet;
+
+ # Initialize self.
+ self<op_skip_table> := hash();
+ self<ops_past> := list();
+ self<regen_ops_num> := 0;
+
+ self.load_op_map_files();
+
+ self;
+}
+
+=begin METHODS
+
+=item C<load_op_map_files>
+
+Load ops.num and ops.skip files.
+
+=end METHODS
+
+method load_op_map_files() {
+ self._load_skip_file;
+}
+
+method _load_skip_file() {
+ my $buf := slurp(self<skip_file>);
+ grammar SKIP {
+ rule TOP { <op>+ }
+
+ rule op { $<name>=(\w+) }
+ token ws {
+ [
+ | \s+
+ | '#' \N*
+ ]*
+ }
+ }
+
+ my $lines := SKIP.parse($buf);
+
+ for $lines<op> {
+ self<op_skip_table>{$_<name>} := 1;
+ }
+}
+
+
+=begin ACCESSORS
+
+Various methods for accessing internals.
+
+=over 4
+
+=item * C<op_skip_table>
+
+=end ACCESSORS
+
+method op_skip_table() { self<op_skip_table>; }
+
+# Local Variables:
+# mode: perl6
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=perl6:
Copied: branches/gsoc_threads/compilers/opsc/src/Ops/Renumberer.pm (from r47544, trunk/compilers/opsc/src/Ops/Renumberer.pm)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/src/Ops/Renumberer.pm Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/src/Ops/Renumberer.pm)
@@ -0,0 +1,108 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+INIT {
+ pir::load_bytecode("dumper.pbc");
+};
+
+class Ops::Renumberer is Hash;
+
+=begin NAME
+
+C<Ops::Renumberer> - renumber ops.num.
+
+=end NAME
+
+=begin DESCRIPTION
+
+This class is responsible for regenerating src/ops/ops.num when the number or
+order of ops there needs to be changed.
+
+=end DESCRIPTION
+
+=begin SYNOPSIS
+
+ my $renum := Ops::Renumberer.new( :ops_file($f) );
+
+=end SYNOPSIS
+
+=begin ATTRIBUTES
+
+=over 4
+
+=item * C<$.max_op_num>
+
+Scalar holding number of highest non-experimental op. Example:
+
+ 'max_op_num' => 1246,
+
+=back
+
+=end ATTRIBUTES
+
+=begin METHODS
+
+=over 4
+
+=item C<new>
+
+Build an Ope::Renumberer.
+
+(It's NQP. In Perl 6 it should be submethod and invoked automatically)
+
+=end METHODS
+
+method new(:$ops_file!) {
+ self<ops_file> := $ops_file;
+
+ self;
+}
+
+=begin METHODS
+
+=item C<need_regeneration>
+
+Check if ops.num needs to be regenerated.
+
+=end METHODS
+
+method need_regeneration() {
+
+ #only need regeneration for core ops
+ unless self<ops_file>.oplib {
+ return 0;
+ }
+
+ #shortcut in case the oplib found an invalid ops.num
+ if self<ops_file>.oplib<regen_ops_num>{
+ return 1;
+ }
+
+ my $op_num_table := self<ops_file>.oplib.op_num_table;
+ my $opsfile_ops := self<ops_file>.ops;
+ my $opsfile_num := 0;
+ my $need_regeneration := 0;
+
+ #find out if the order in ops.num reflects the order in Ops::File
+ for $opsfile_ops -> $opsfile_op {
+
+ my $op_name := $opsfile_op.full_name;
+ my $op_num_table_num := +$op_num_table{ $op_name };
+ #say("ops.num says $op_name is $op_num_table_num, opsfile says $opsfile_num");
+
+ if (!$opsfile_op<experimental> && $opsfile_num != $op_num_table_num) {
+ say("# Opsfile and ops.num disagree about $op_name: $opsfile_num vs $op_num_table_num");
+ $need_regeneration := 1;
+ }
+ $opsfile_num++;
+ }
+
+ $need_regeneration;
+}
+
+# Local Variables:
+# mode: perl6
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=perl6:
Copied: branches/gsoc_threads/compilers/opsc/src/Ops/Trans.pm (from r47544, trunk/compilers/opsc/src/Ops/Trans.pm)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/src/Ops/Trans.pm Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/src/Ops/Trans.pm)
@@ -0,0 +1,58 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+class Ops::Trans is Hash;
+
+=begin
+
+Base class for Runcode transformations.
+
+=end
+
+method prefix() { 'Parrot_' };
+
+# We can't use yada-yada-yada
+method suffix() { die("...") }
+
+method core_type() { die("...") }
+
+# Prepare internal structures from Ops::File.ops.
+method prepare_ops($emitter, $ops_file) { die('...') }
+
+#
+method emit_c_op_funcs_header_part($fh) { die('...') }
+
+# Called from Ops::Op.
+method body_prelude() { '' }
+
+method defines($emitter) { die('...') }
+
+method emit_source_part($emitter, $fh) { die('...') }
+
+# Default op lookup do nothing. But op_deinit referenced anyway.
+method emit_op_lookup($fh) {
+ $fh.print(q|static void hop_deinit(SHIM_INTERP) {}|);
+}
+
+method init_func_init1() { '' }
+method init_func_disaptch() { '' }
+
+method op_info($emitter) { 'NULL' }
+method op_func($emitter) { 'NULL' }
+method getop($emitter) { '( int (*)(PARROT_INTERP, const char *, int) )NULL' };
+
+our %arg_maps := {};
+
+method access_arg($type, $num) { die('...'); }
+
+method restart_address($addr) { die('...'); }
+method restart_offset($offset) { die('...'); }
+
+method goto_address($addr) { die('...'); }
+method goto_offset($offset) { die('...'); }
+
+method expr_address($addr) { die('...'); }
+method expr_offset($offset) { die('...'); }
+
+# vim: expandtab shiftwidth=4 ft=perl6:
Copied: branches/gsoc_threads/compilers/opsc/src/Ops/Trans/C.pm (from r47544, trunk/compilers/opsc/src/Ops/Trans/C.pm)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/src/Ops/Trans/C.pm Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/src/Ops/Trans/C.pm)
@@ -0,0 +1,367 @@
+#! nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+class Ops::Trans::C is Ops::Trans;
+
+method new() {
+ # Storage for generated ops functions.
+ self<op_funcs> := list();
+ # Storage for generated ops functions prototypes.
+ self<op_protos> := list();
+
+ self<names> := hash();
+
+ self<num_entries> := 0;
+
+ self<arg_maps> := hash(
+ :op("cur_opcode[NUM]"),
+
+ :i("IREG(NUM)"),
+ :n("NREG(NUM)"),
+ :p("PREG(NUM)"),
+ :s("SREG(NUM)"),
+ :k("PREG(NUM)"),
+ :ki("IREG(NUM)"),
+
+ :ic("cur_opcode[NUM]"),
+ :nc("CONST(NUM)->u.number"),
+ :pc("CONST(NUM)->u.key"),
+ :sc("CONST(NUM)->u.string"),
+ :kc("CONST(NUM)->u.key"),
+ :kic("cur_opcode[NUM]")
+ );
+
+ self;
+}
+
+method suffix() { '' };
+
+method core_type() { 'PARROT_FUNCTION_CORE' }
+
+method prepare_ops($emitter, $ops_file) {
+
+ my $index := 0;
+ my @op_protos;
+ my @op_funcs;
+ my @op_func_table;
+
+ for $ops_file.ops -> $op {
+ #say("# preparing " ~ $op);
+ my $func_name := $op.func_name( self );
+ my $definition := "opcode_t *\n$func_name(opcode_t *cur_opcode, PARROT_INTERP)";
+ my $prototype := $emitter.sym_export
+ ~ " opcode_t * $func_name(opcode_t *, PARROT_INTERP);\n";
+
+ my $src := $op.source( self );
+
+ @op_func_table.push(sprintf( " %-50s /* %6ld */\n", "$func_name,", $index ));
+
+ my $body := join('', $definition, ' {', "\n", $src, '}', "\n\n");
+ @op_funcs.push($body);
+ @op_protos.push($prototype);
+ $index++;
+ }
+
+ self<op_funcs> := @op_funcs;
+ self<op_protos> := @op_protos;
+ self<op_func_table> := @op_func_table;
+ self<num_entries> := + at op_funcs + 1;
+}
+
+method emit_c_op_funcs_header_part($fh) {
+ for self<op_protos> -> $proto {
+ $fh.print($proto);
+ }
+}
+
+method access_arg($type, $num) {
+ my $access := self<arg_maps>{$type};
+ die("unrecognized arg type '$type'") unless $access;
+ subst($access, /NUM/, $num);
+}
+
+method restart_address($addr) {
+ "interp->resume_offset = $addr; interp->resume_flag = 1;";
+}
+
+method restart_offset($offset) {
+ "interp->resume_offset = REL_PC + $offset; interp->resume_flag = 1;";
+}
+
+method goto_address($addr) { "return (opcode_t *)$addr"; }
+
+method goto_offset($offset) { "return (opcode_t *)cur_opcode + $offset"; }
+
+method expr_address($addr) { $addr; }
+
+method expr_offset($offset) { "cur_opcode + $offset"; }
+
+=begin
+
+=item C<defines()>
+
+Returns the C C<#define> macros for register access etc.
+
+=end
+
+method defines($emitter) {
+ return qq|
+/* defines - Ops::Trans::C */
+#undef CONST
+#define REL_PC ((size_t)(cur_opcode - (opcode_t *)interp->code->base.data))
+#define CUR_OPCODE cur_opcode
+#define IREG(i) (CUR_CTX->bp.regs_i[cur_opcode[i]])
+#define NREG(i) (CUR_CTX->bp.regs_n[-1L - cur_opcode[i]])
+#define PREG(i) (CUR_CTX->bp_ps.regs_p[-1L - cur_opcode[i]])
+#define SREG(i) (CUR_CTX->bp_ps.regs_s[cur_opcode[i]])
+#define CONST(i) Parrot_pcc_get_constants(interp, interp->ctx)[cur_opcode[i]]
+
+static int get_op(PARROT_INTERP, const char * name, int full);
+|;
+}
+
+method op_info($emitter) { $emitter.bs ~ 'op_info_table' }
+method op_func($emitter) { $emitter.bs ~ 'op_func_table' }
+method getop($emitter) { 'get_op' };
+
+method body_prelude() { ' const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);' }
+
+method emit_source_part($emitter, $fh) {
+ self._emit_op_func_table($emitter, $fh);
+ self._emit_op_info_table($emitter, $fh);
+ self._emit_op_function_definitions($emitter, $fh);
+}
+
+method _emit_op_func_table($emitter, $fh) {
+
+ $fh.print(qq|
+
+INTVAL {$emitter.bs}numops{self.suffix} = {self<num_entries>};
+
+/*
+** Op Function Table:
+*/
+
+static op_func{self.suffix}_t {self.op_func($emitter)}[{self<num_entries>}] = | ~ '{' ~ "\n"
+);
+
+ for self<op_func_table> {
+ $fh.print($_)
+ }
+
+ $fh.print(q|
+ NULL /* NULL function pointer */
+};
+
+|);
+}
+
+
+method _emit_op_info_table($emitter, $fh) {
+
+ my %names := self<names>;
+ my %arg_dir_mapping := hash(
+ :i('PARROT_ARGDIR_IN'),
+ :o('PARROT_ARGDIR_OUT'),
+ :io('PARROT_ARGDIR_INOUT')
+ );
+
+ #
+ # Op Info Table:
+ #
+ $fh.print(qq|
+
+/*
+** Op Info Table:
+*/
+
+static op_info_t {self.op_info($emitter)}[{self<num_entries>}] = | ~ q|{
+|);
+
+ my $index := 0;
+
+ for $emitter.ops_file.ops -> $op {
+ my $type := sprintf( "PARROT_%s_OP", uc($op.type ?? 'INLINE' !! 'FUNCTION') );
+ my $name := $op.name;
+ %names{$name} := 1;
+ my $full_name := $op.full_name;
+ my $func_name := $op.func_name( self );
+ my $body := $op.body;
+ my $jump := $op.get_jump;
+ my $arg_count := $op.size;
+
+ ## 0 inserted if arrays are empty to prevent msvc compiler errors
+ my $arg_types := +$op.arg_types
+ ?? '{ ' ~ join( ", ",
+ |map( -> $t { sprintf( "PARROT_ARG_%s", uc($t) ) }, |$op.arg_types)
+ ) ~ ' }'
+ !! '{ (arg_type_t) 0 }';
+ my $arg_dirs := $op<normalized_args>
+ ?? '{ ' ~ join(", ",
+ |map( -> $d { %arg_dir_mapping{$d<direction>} }, |$op<normalized_args>)
+ ) ~ ' }'
+ !! '{ (arg_dir_t) 0 }';
+ my $labels := $op<normalized_args>
+ ?? '{ ' ~ join(", ",
+ |map( -> $d { $d<is_label> ?? 1 !! 0 }, |$op<normalized_args>)
+ ) ~ ' }'
+ !! '{ 0 }';
+
+ $fh.print(' { ' ~ qq|/* $index */
+ /* type $type, */
+ "$name",
+ "$full_name",
+ "$func_name",
+ /* "", body */
+ $jump,
+ $arg_count,
+ $arg_types,
+ $arg_dirs,
+ $labels
+ | ~ '},
+',
+ );
+
+ $index++;
+ }
+ $fh.print(q|
+};
+
+|);
+}
+
+method _emit_op_function_definitions($emitter, $fh) {
+ $fh.print(q|
+/*
+** Op Function Definitions:
+*/
+
+|);
+
+ for self<op_funcs> -> $op {
+ $fh.print($op);
+ }
+}
+
+method emit_op_lookup($emitter, $fh) {
+
+ if !$emitter.flags<core> {
+ return;
+ }
+
+ my $hash_size := 3041;
+# my $tot := $self->{index} + scalar keys( %{ $self->{names} } );
+# if ( $hash_size < $tot * 1.2 ) {
+# print STDERR "please increase hash_size ($hash_size) in lib/Parrot/Ops2c/Utils.pm "
+# . "to a prime number > ", $tot * 1.2, "\n";
+# }
+ # Due bug in NQP do it in two passes.
+ my $res := q|
+/*
+** Op lookup function:
+*/
+
+#define OP_HASH_SIZE 3041
+
+/* we could calculate a prime somewhat bigger than
+ * n of fullnames + n of names
+ * for now this should be ok
+ *
+ * look up an op_code: at first call to op_code() a hash
+ * of short and full opcode names is created
+ * hash functions are from imcc, thanks to Melvin.
+ */
+
+
+typedef struct hop {
+ op_info_t * info;
+ struct hop *next;
+} HOP;
+static HOP **hop;
+
+static void hop_init(PARROT_INTERP);
+static size_t hash_str(const char *str);
+static void store_op(PARROT_INTERP, op_info_t *info, int full);
+
+/* XXX on changing interpreters, this should be called,
+ through a hook */
+
+static void hop_deinit(PARROT_INTERP);
+
+/*
+ * find a short or full opcode
+ * usage:
+ *
+ * interp->op_lib->op_code("set", 0)
+ * interp->op_lib->op_code("set_i_i", 1)
+ *
+ * returns >= 0 (found idx into info_table), -1 if not
+ */
+
+static size_t hash_str(const char *str) {
+ size_t key = 0;
+ const char *s = str;
+
+ while (*s) {
+ key *= 65599;
+ key += *s++;
+ }
+
+ return key;
+}
+
+static void store_op(PARROT_INTERP, op_info_t *info, int full) {
+ HOP * const p = mem_gc_allocate_zeroed_typed(interp, HOP);
+ const size_t hidx =
+ hash_str(full ? info->full_name : info->name) % OP_HASH_SIZE;
+
+ p->info = info;
+ p->next = hop[hidx];
+ hop[hidx] = p;
+}
+static int get_op(PARROT_INTERP, const char * name, int full) {
+ const HOP * p;
+ const size_t hidx = hash_str(name) % OP_HASH_SIZE;
+ if (!hop) {
+ hop = mem_gc_allocate_n_zeroed_typed(interp, OP_HASH_SIZE,HOP *);
+ hop_init(interp);
+ }
+ for (p = hop[hidx]; p; p = p->next) {
+ if(STREQ(name, full ? p->info->full_name : p->info->name))
+ return p->info - [[BS]]op_lib.op_info_table;
+ }
+ return -1;
+}
+static void hop_init(PARROT_INTERP) {
+ size_t i;
+ op_info_t * const info = [[BS]]op_lib.op_info_table;
+ /* store full names */
+ for (i = 0; i < [[BS]]op_lib.op_count; i++)
+ store_op(interp, info + i, 1);
+ /* plus one short name */
+ for (i = 0; i < [[BS]]op_lib.op_count; i++)
+ if (get_op(interp, info[i].name, 0) == -1)
+ store_op(interp, info + i, 0);
+}
+static void hop_deinit(PARROT_INTERP)
+{
+ if (hop) {
+ size_t i;
+ for (i = 0; i < OP_HASH_SIZE; i++) {
+ HOP *p = hop[i];
+ while (p) {
+ HOP * const next = p->next;
+ mem_gc_free(interp, p);
+ p = next;
+ }
+ }
+ mem_sys_free(hop);
+ hop = NULL;
+ }
+}|;
+
+ $fh.print(subst($res, /'[[' BS ']]'/, $emitter.bs, :global));
+}
+
+# vim: expandtab shiftwidth=4 ft=perl6:
Copied: branches/gsoc_threads/compilers/opsc/src/builtins.pir (from r47544, trunk/compilers/opsc/src/builtins.pir)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/compilers/opsc/src/builtins.pir Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/compilers/opsc/src/builtins.pir)
@@ -0,0 +1,197 @@
+#! parrot
+# Copyright (C) 2009-2010, Parrot Foundation.
+# $Id$
+
+=head1 Builtins
+
+Variour helper builtins.
+
+=cut
+.namespace []
+
+.sub 'lc'
+ .param string arg
+ $S0 = downcase arg
+ .return ($S0)
+.end
+
+.sub 'uc'
+ .param string arg
+ $S0 = upcase arg
+ .return ($S0)
+.end
+
+.sub 'defined'
+ .param pmc thing
+ $I0 = defined thing
+ .return ($I0)
+.end
+
+.sub 'clone'
+ .param pmc what
+ $P0 = clone what
+ .return ($P0)
+.end
+
+.sub 'elements'
+ .param pmc p
+ $I0 = elements p
+ .return ($I0)
+.end
+
+
+.sub 'substr'
+ .param string orig
+ .param int from
+ .param int len
+ $S0 = substr orig, from, len
+ .return ($S0)
+.end
+
+.sub 'match'
+ .param string pattern
+ .param string subject
+
+ .local pmc recomp, resub, match, recache
+
+ load_bytecode 'PGE.pbc'
+
+ #hash cache mapping patterns to subs, avoiding unneeded recompilation
+ recache = get_hll_global ['Ops';'Op'], '%recache'
+ $I0 = isnull recache
+ if $I0 goto no_cache
+ $I0 = exists recache[pattern]
+ if $I0 goto found_re
+ goto no_re
+
+ no_cache:
+ recache = new ['Hash']
+
+ no_re:
+ recomp = compreg 'PGE::Perl6Regex'
+ resub = recomp(pattern)
+ recache[pattern] = resub
+
+ found_re:
+ resub = recache[pattern]
+ set_hll_global ['Ops';'Op'], '%recache', recache
+
+ match = resub(subject)
+ if match goto found_match
+ .return (0)
+ found_match:
+ .return (1)
+.end
+
+.sub 'die'
+ .param string why :optional
+ .param int has_why :opt_flag
+
+ die why
+.end
+
+.sub 'slurp'
+ .param string file
+ .local pmc pio
+ pio = new ['FileHandle']
+ pio.'open'(file)
+ $S0 = pio.'readall'()
+ pio.'close'()
+ .return ($S0)
+.end
+
+.sub 'split' :multi(_,_)
+ .param string splitter
+ .param string buf
+
+ $P0 = split splitter, buf
+ .return ($P0)
+.end
+
+.sub 'split' :multi('Sub', _)
+ .param pmc regex
+ .param pmc str
+ .param int count :optional
+ .param int has_count :opt_flag
+ .local pmc match
+ .local pmc retv
+ .local int start_pos
+ .local int end_pos
+ .local int zwm_start
+
+ $S0 = str
+ retv = new 'ResizableStringArray'
+ start_pos = 0
+
+ # per Perl 5's negative LIMIT behavior
+ unless has_count goto positive_count
+ if count < 1 goto done
+
+ positive_count:
+ match = regex($S0)
+ if match goto loop
+ retv.'push'($S0)
+ goto done
+
+ loop:
+ unless has_count goto skip_count
+ dec count
+ unless count < 1 goto skip_count
+ $S1 = substr $S0, start_pos
+ retv.'push'($S1)
+ goto done
+ next_zwm:
+ zwm_start = start_pos
+ inc_zwm:
+ inc start_pos
+ match = regex($S0, 'continue' => start_pos)
+ end_pos = match.'from'()
+ unless start_pos == end_pos goto inc_zwm
+ start_pos = zwm_start
+ end_pos -= start_pos
+ goto add_str
+ skip_count:
+ match = regex($S0, 'continue' => start_pos)
+ end_pos = match.'from'()
+ $I99 = match.'to'()
+ if $I99 == end_pos goto next_zwm
+ end_pos -= start_pos
+ add_str:
+ $S1 = substr $S0, start_pos, end_pos
+ retv.'push'($S1)
+ unless match goto done
+ $I0 = match.'to'()
+ if $I0 == start_pos goto zero_width
+ start_pos = $I0
+ goto loop
+ zero_width:
+ inc start_pos
+ goto loop
+
+ done:
+ .return(retv)
+.end
+
+.sub 'list'
+ .param pmc l :slurpy
+ .return (l)
+.end
+
+.sub 'sprintf'
+ .param string format
+ .param pmc args :slurpy
+
+ $S0 = sprintf format, args
+ .return($S0)
+.end
+
+.sub 'say'
+ .param string arg
+ say arg
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gsoc_threads/compilers/pct/Rules.mak
==============================================================================
--- branches/gsoc_threads/compilers/pct/Rules.mak Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/pct/Rules.mak Thu Jun 10 21:09:12 2010 (r47545)
@@ -4,7 +4,7 @@
$(LIBRARY_DIR)/PCT/Grammar.pbc $(LIBRARY_DIR)/PCT/PAST.pbc
$(PARROT) -o $@ compilers/pct/PCT.pir
-$(LIBRARY_DIR)/PCT/PAST.pbc : compilers/pct/src/PAST.pir $(PARROT) \
+$(LIBRARY_DIR)/PCT/PAST.pbc : compilers/pct/src/PAST.pir $(PARROT) $(PBC_MERGE) \
$(LIBRARY_DIR)/PCT/HLLCompiler.pbc \
compilers/pct/src/PCT/Node.pbc \
compilers/pct/src/PAST/Node.pbc \
Modified: branches/gsoc_threads/compilers/pct/src/PAST/Compiler.pir
==============================================================================
--- branches/gsoc_threads/compilers/pct/src/PAST/Compiler.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/pct/src/PAST/Compiler.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -126,54 +126,29 @@
valflags['String'] = 's~*:e'
valflags['Integer'] = 'i+*:'
valflags['Float'] = 'n+*:'
+ valflags['!cconst'] = 'i+*:c'
+ valflags['!except_severity'] = 'i+*:c'
+ valflags['!except_types'] = 'i+*:c'
+ valflags['!iterator'] = 'i+*:c'
+ valflags['!socket'] = 'i+*:c'
set_global '%valflags', valflags
## %!controltypes holds the list of exception types for each
## type of exception handler we support
.local pmc controltypes
controltypes = new 'Hash'
- $P0 = new 'ResizablePMCArray'
- $P0.'push'(.CONTROL_RETURN)
- $P0.'push'(.CONTROL_OK)
- $P0.'push'(.CONTROL_BREAK)
- $P0.'push'(.CONTROL_CONTINUE)
- #$P0.'push'(.CONTROL_ERROR)
- $P0.'push'(.CONTROL_TAKE)
- $P0.'push'(.CONTROL_LEAVE)
- $P0.'push'(.CONTROL_LOOP_NEXT)
- $P0.'push'(.CONTROL_LOOP_LAST)
- $P0.'push'(.CONTROL_LOOP_REDO)
- controltypes['CONTROL'] = $P0
- $P0 = new 'ResizablePMCArray'
- $P0.'push'(.CONTROL_RETURN)
- controltypes['RETURN'] = $P0
- $P0 = new 'ResizablePMCArray'
- $P0.'push'(.CONTROL_OK)
- controltypes['OK'] = $P0
- $P0 = new 'ResizablePMCArray'
- $P0.'push'(.CONTROL_BREAK)
- controltypes['BREAK'] = $P0
- $P0 = new 'ResizablePMCArray'
- $P0.'push'(.CONTROL_CONTINUE)
- controltypes['CONTINUE'] = $P0
- $P0 = new 'ResizablePMCArray'
- $P0.'push'(.CONTROL_ERROR)
- controltypes['ERROR'] = $P0
- $P0 = new 'ResizablePMCArray'
- $P0.'push'(.CONTROL_TAKE)
- controltypes['GATHER'] = $P0
- $P0 = new 'ResizablePMCArray'
- $P0.'push'(.CONTROL_LEAVE)
- controltypes['LEAVE'] = $P0
- $P0 = new 'ResizablePMCArray'
- $P0.'push'(.CONTROL_LOOP_NEXT)
- controltypes['NEXT'] = $P0
- $P0 = new 'ResizablePMCArray'
- $P0.'push'(.CONTROL_LOOP_LAST)
- controltypes['LAST'] = $P0
- $P0 = new 'ResizablePMCArray'
- $P0.'push'(.CONTROL_LOOP_REDO)
- controltypes['REDO'] = $P0
+ controltypes['CONTROL'] = '.CONTROL_RETURN, .CONTROL_OK, .CONTROL_BREAK, .CONTROL_CONTINUE, .CONTROL_TAKE, .CONTROL_LEAVE, .CONTROL_EXIT, .CONTROL_LOOP_NEXT, .CONTROL_LOOP_LAST, .CONTROL_LOOP_REDO'
+ controltypes['RETURN'] = '.CONTROL_RETURN'
+ controltypes['OK'] = '.CONTROL_OK'
+ controltypes['BREAK'] = '.CONTROL_BREAK'
+ controltypes['CONTINUE'] = '.CONTROL_CONTINUE'
+ controltypes['ERROR'] = '.CONTROL_ERROR'
+ controltypes['GATHER'] = '.CONTROL_TAKE'
+ controltypes['LEAVE'] = '.CONTROL_LEAVE'
+ controltypes['EXIT'] = '.CONTROL_EXIT'
+ controltypes['NEXT'] = '.CONTROL_NEXT'
+ controltypes['LAST'] = '.CONTROL_LAST'
+ controltypes['REDO'] = '.CONTROL_REDO'
set_global '%!controltypes', controltypes
$P0 = box 11
@@ -206,9 +181,11 @@
blockpast = new 'ResizablePMCArray'
set_global '@?BLOCK', blockpast
have_blockpast:
- null $P0
- set_global '$?SUB', $P0
- .tailcall self.'as_post'(past, 'rtype'=>'v')
+ .lex '@*BLOCKPAST', blockpast
+ null $P99
+ .lex '$*SUB', $P99
+ $P1 = self.'as_post'(past, 'rtype'=>'v')
+ .return ($P1)
.end
=item escape(str)
@@ -649,7 +626,7 @@
.local pmc eh
eh = node.'handlers'()
unless eh, no_eh
- ops = self.'wrap_handlers'(ops,eh,'rtype'=>rtype)
+ ops = self.'wrap_handlers'(ops, eh, 'rtype'=>rtype)
no_eh:
.return (ops)
.end
@@ -723,28 +700,34 @@
unless it, handler_loop_done
node = shift it
- .local pmc ehpir, types, label
+ .local pmc ehpir, label, controltypes, subpost
.local string ehreg, type
$P0 = get_hll_global ['POST'], 'Label'
$S0 = self.'unique'('control_')
label = $P0.'new'('result'=>$S0)
+ subpost = find_dynamic_lex '$*SUB'
+
ehreg = self.'uniquereg'('P')
ops.'push_pirop'('new', ehreg, "'ExceptionHandler'")
ops.'push_pirop'('set_addr', ehreg, label)
- $P0 = get_global '%!controltypes'
+ controltypes = get_global '%!controltypes'
type = node.'handle_types'()
- unless type, no_handle_types
- types = $P0[type]
- unless type, no_handle_types
- ops.'push_pirop'('callmethod', '"handle_types"', ehreg, types :flat)
- no_handle_types:
+ unless type, handle_types_done
+ type = controltypes[type]
+ unless type, handle_types_done
+ $P0 = split ',', type
+ ops.'push_pirop'('callmethod', '"handle_types"', ehreg, $P0 :flat)
+ subpost.'add_directive'('.include "except_types.pasm"')
+ handle_types_done:
type = node.'handle_types_except'()
- unless type, no_handle_types_except
- types = $P0[type]
- unless type, no_handle_types_except
- ops.'push_pirop'('callmethod', '"handle_types_except"', ehreg, types :flat)
- no_handle_types_except:
+ unless type, handle_types_except_done
+ type = controltypes[type]
+ unless type, handle_types_except_done
+ $P0 = split ',', type
+ ops.'push_pirop'('callmethod', '"handle_types_except"', ehreg, $P0 :flat)
+ subpost.'add_directive'('.include "except_types.pasm"')
+ handle_types_except_done:
ops.'push_pirop'('push_eh', ehreg)
# Add one pop_eh for every handler we push_eh
@@ -785,9 +768,9 @@
.param pmc node
.param pmc options :slurpy :named
- ## add current block node to @?BLOCK
+ ## add current block node to @*BLOCKPAST
.local pmc blockpast
- blockpast = get_global '@?BLOCK'
+ blockpast = find_dynamic_lex '@*BLOCKPAST'
unshift blockpast, node
.local string name, pirflags, blocktype
@@ -853,8 +836,8 @@
## determine the outer POST::Sub for the new one
.local pmc outerpost
- outerpost = get_global '$?SUB'
- set_global '$?SUB', bpost
+ outerpost = find_dynamic_lex '$*SUB'
+ .lex '$*SUB', bpost
.local int islexical
islexical = node.'lexical'()
@@ -912,8 +895,9 @@
$S0 = self.'uniquereg'('P')
bpost.'push_pirop'('new', $S0, "'ExceptionHandler'")
bpost.'push_pirop'('set_addr', $S0, ctrllabel)
- bpost.'push_pirop'('callmethod', '"handle_types"', $S0, .CONTROL_RETURN)
+ bpost.'push_pirop'('callmethod', '"handle_types"', $S0, '.CONTROL_RETURN')
bpost.'push_pirop'('push_eh', $S0)
+ bpost.'add_directive'('.include "except_types.pasm"')
children_past:
## all children but last are void context, last returns anything
@@ -930,7 +914,7 @@
unless eh, no_eh
$S0 = options['rtype']
retval = ops[-1]
- ops = self.'wrap_handlers'(ops,eh,'rtype'=>$S0)
+ ops = self.'wrap_handlers'(ops, eh, 'rtype'=>$S0)
goto had_eh
no_eh:
## result of last child is return from block
@@ -985,7 +969,6 @@
loadinit_done:
## restore previous outer scope and symtable
- set_global '$?SUB', outerpost
setattribute self, '%!symtable', outersym
## return block or block result
@@ -1026,7 +1009,7 @@
bpost.'push_pirop'('call', blockreg, arglist :flat, 'result'=>result)
block_done:
- ## remove current block from @?BLOCK
+ ## remove current block from @*BLOCKPAST
$P99 = shift blockpast
.return (bpost)
.end
@@ -1372,11 +1355,14 @@
$P0 = get_hll_global ['POST'], 'Ops'
ops = $P0.'new'()
+ $P0 = find_dynamic_lex '$*SUB'
+ $P0.'add_directive'('.include "except_types.pasm"')
+
.local string handreg
handreg = self.'uniquereg'('P')
ops.'push_pirop'('new', handreg, "'ExceptionHandler'")
ops.'push_pirop'('set_addr', handreg, handlabel)
- ops.'push_pirop'('callmethod', '"handle_types"', handreg, .CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ ops.'push_pirop'('callmethod', '"handle_types"', handreg, '.CONTROL_LOOP_NEXT', '.CONTROL_LOOP_REDO', '.CONTROL_LOOP_LAST')
ops.'push_pirop'('push_eh', handreg)
unless bodyfirst goto bodyfirst_done
@@ -1404,8 +1390,8 @@
ops.'push_pirop'('.get_results (exception)')
$S0 = self.'uniquereg'('P')
ops.'push_pirop'('getattribute', $S0, 'exception', "'type'")
- ops.'push_pirop'('eq', $S0, .CONTROL_LOOP_NEXT, nextlabel)
- ops.'push_pirop'('eq', $S0, .CONTROL_LOOP_REDO, redolabel)
+ ops.'push_pirop'('eq', $S0, '.CONTROL_LOOP_NEXT', nextlabel)
+ ops.'push_pirop'('eq', $S0, '.CONTROL_LOOP_REDO', redolabel)
ops.'push'(donelabel)
ops.'push_pirop'('pop_eh')
.return (ops)
@@ -1643,7 +1629,9 @@
exreg = self.'uniquereg'('P')
extype = concat exreg, "['type']"
ops.'push_pirop'('new', exreg, '"Exception"')
- ops.'push_pirop'('set', extype, .CONTROL_RETURN)
+ ops.'push_pirop'('set', extype, '.CONTROL_RETURN')
+ $P0 = find_dynamic_lex '$*SUB'
+ $P0.'add_directive'('.include "except_types.pasm"')
.local pmc cpast, cpost
cpast = node[0]
@@ -2038,7 +2026,7 @@
.local string blockname
blockname = ''
.local pmc it
- $P0 = get_global '@?BLOCK'
+ $P0 = find_dynamic_lex '@*BLOCKPAST'
it = iter $P0
scope_error_block_loop:
unless it goto scope_error_2
@@ -2108,7 +2096,7 @@
## get the current sub
.local pmc subpost
- subpost = get_global '$?SUB'
+ subpost = find_dynamic_lex '$*SUB'
## determine lexical, register, and parameter names
.local string named, pname, has_pname
@@ -2248,7 +2236,7 @@
# treat it as that type.
.local string name
name = node.'name'()
- $P0 = get_global '@?BLOCK'
+ $P0 = find_dynamic_lex '@*BLOCKPAST'
$P0 = $P0[0]
$P0 = $P0.'symtable'()
unless $P0 goto contextual
@@ -2473,6 +2461,22 @@
value = self.'escape'(value)
escape_done:
+ # See if this is a pasm constant type
+ $I0 = index valflags, 'c'
+ if $I0 < 0 goto const_done
+ # Add the directive for the appropriate .include statement.
+ $S0 = returns
+ $S0 = replace $S0, 0, 1, '.include "'
+ $S0 = concat $S0, '.pasm"'
+ $P0 = find_dynamic_lex '$*SUB'
+ $P0.'add_directive'($S0)
+ # Add a leading dot to the value if one isn't already there.
+ $S0 = substr value, 0, 1
+ if $S0 == '.' goto const_done
+ $P0 = box '.'
+ value = concat $P0, value
+ const_done:
+
.local string rtype
rtype = options['rtype']
$I0 = index valflags, rtype
Modified: branches/gsoc_threads/compilers/pct/src/PCT/HLLCompiler.pir
==============================================================================
--- branches/gsoc_threads/compilers/pct/src/PCT/HLLCompiler.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/pct/src/PCT/HLLCompiler.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -25,6 +25,7 @@
.namespace [ 'PCT';'HLLCompiler' ]
.include 'cclass.pasm'
+.include 'stdio.pasm'
.sub 'init' :vtable :method
load_bytecode 'config.pir'
@@ -329,11 +330,13 @@
result = self.stagename(result, adverbs :flat :named)
$N1 = time
$N2 = $N1 - $N0
- printerr "Stage '"
- printerr stagename
- printerr "': "
- printerr $N2
- printerr " sec\n"
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'("Stage '")
+ $P1.'print'(stagename)
+ $P1.'print'("': ")
+ $P1.'print'($N2)
+ $P1.'print'(" sec\n")
if target == stagename goto have_result
goto stagestats_loop
@@ -611,11 +614,14 @@
# on startup show the welcome message
$P0 = self.'commandline_banner'()
- printerr $P0
+ $P1 = getinterp
+ $P2 = $P1.'stdhandle'(.PIO_STDERR_FILENO)
+ $P2.'print'($P0)
.local pmc stdin
.local int has_readline
- stdin = getstdin
+ $P0 = getinterp
+ stdin = $P0.'stdhandle'(.PIO_STDIN_FILENO)
encoding = adverbs['encoding']
if encoding == 'fixed_8' goto interactive_loop
unless encoding goto interactive_loop
@@ -746,7 +752,7 @@
iter_loop_1:
$S0 = ifh.'readall'(iname)
code .= $S0
- close ifh
+ ifh.'close'()
goto iter_loop
iter_end:
$S0 = join ' ', files
@@ -799,6 +805,7 @@
=cut
+.include 'except_severity.pasm'
.sub 'command_line' :method
.param pmc args
.param pmc adverbs :slurpy :named
@@ -844,11 +851,15 @@
$I0 = adverbs['version']
if $I0 goto version
+ .local int can_backtrace
+ can_backtrace = can self, 'backtrace'
+ unless can_backtrace goto no_push_eh
+ push_eh uncaught_exception
+ no_push_eh:
$S0 = adverbs['e']
$I0 = exists adverbs['e']
if $I0 goto eval_line
-
.local pmc result
result = box ''
unless args goto interactive
@@ -867,6 +878,9 @@
result = self.'eval'($S0, '-e', args :flat, adverbs :flat :named)
save_output:
+ unless can_backtrace goto no_pop_eh
+ pop_eh
+ no_pop_eh:
if null result goto end
$I0 = defined result
unless $I0 goto end
@@ -876,15 +890,17 @@
if target != 'pir' goto end
.local string output
.local pmc ofh
- ofh = getstdout
+ $P0 = getinterp
+ ofh = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
output = adverbs['output']
if output == '' goto save_output_1
if output == '-' goto save_output_1
- ofh = open output, 'w'
+ ofh = new ['FileHandle']
+ ofh.'open'(output, 'w')
unless ofh goto err_output
save_output_1:
print ofh, result
- close ofh
+ ofh.'close'()
end:
.return ()
@@ -896,6 +912,29 @@
version:
self.'version'()
goto end
+
+ # If we get an uncaught exception in the program and the HLL provides
+ # a backtrace method, we end up here. We pass it the exception object
+ # so it can render a backtrace, unless the severity is exit or warning
+ # in which case it needs special handling.
+ uncaught_exception:
+ .get_results ($P0)
+ pop_eh
+ $P1 = getinterp
+ $P1 = $P1.'stdhandle'(.PIO_STDERR_FILENO)
+ $I0 = $P0['severity']
+ if $I0 == .EXCEPT_EXIT goto do_exit
+ $S0 = self.'backtrace'($P0)
+ print $P1, $S0
+ if $I0 <= .EXCEPT_WARNING goto do_warning
+ exit 1
+ do_exit:
+ $I0 = $P0['exit_code']
+ exit $I0
+ do_warning:
+ $P0 = $P0["resume"]
+ push_eh uncaught_exception # Otherwise we get errors about no handler to delete
+ $P0()
.end
Modified: branches/gsoc_threads/compilers/pct/src/POST/Compiler.pir
==============================================================================
--- branches/gsoc_threads/compilers/pct/src/POST/Compiler.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/pct/src/POST/Compiler.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -368,6 +368,11 @@
subpir.'append_format'("\n.HLL %0\n", $P0)
subpir_ns:
subpir.'append_format'("\n.namespace %0\n", nskey)
+ subpir_directives:
+ $S0 = node['directives']
+ unless $S0 goto subpir_decl
+ subpir.'append_format'("%0", $S0)
+ subpir_decl:
$S0 = self.'escape'(name)
subpir.'append_format'(".sub %0 %1\n", $S0, pirflags)
.local pmc paramlist
Modified: branches/gsoc_threads/compilers/pct/src/POST/Node.pir
==============================================================================
--- branches/gsoc_threads/compilers/pct/src/POST/Node.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/pct/src/POST/Node.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -291,6 +291,21 @@
.return ()
.end
+
+.sub 'add_directive' :method
+ .param string line
+ .local string dlist
+ dlist = self['directives']
+ $I0 = index dlist, line
+ unless $I0 < 0 goto done
+ dlist = concat dlist, line
+ dlist = concat dlist, "\n"
+ self['directives'] = dlist
+ done:
+ .return ()
+.end
+
+
=back
=head1 AUTHOR
Modified: branches/gsoc_threads/compilers/tge/tgc.pir
==============================================================================
--- branches/gsoc_threads/compilers/tge/tgc.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/compilers/tge/tgc.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -25,6 +25,8 @@
=cut
+.include 'stdio.pasm'
+
.sub "main" :main
.param pmc args
.local string prog
@@ -64,24 +66,27 @@
if ck_output goto OUTPUT_FILE
OUTPUT_STDOUT:
- outfh = getstdout
+ $P0 = getinterp
+ outfh = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
goto OUTPUT_DONE
OUTPUT_FILE:
outfile = opts['output']
- outfh = open outfile, 'w'
+ outfh = new ['FileHandle']
+ outfh.'open'(outfile, 'w')
unless outfh goto ERR_NO_OUTFILE
OUTPUT_DONE:
# Read grammar file and compile here
.local pmc infh
- infh = open infile, 'r'
+ infh = new ['FileHandle']
+ infh.'open'(infile, 'r')
unless infh goto ERR_NO_INFILE
.local string source
- source = read infh, 65535
- close infh
+ source = infh.'read'(65535)
+ infh.'close'()
.local pmc grammar
grammar = new ['TGE';'Compiler']
@@ -99,10 +104,12 @@
goto END
USAGE:
- printerr "Usage: "
- printerr prog
- printerr " [OPTIONS] FILE\n"
- printerr <<"OPTIONS"
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'("Usage: ")
+ $P1.'print'(prog)
+ $P1.'print'(" [OPTIONS] FILE\n")
+ $P1.'print'(<<"OPTIONS")
Options:
--output=OUTFILE -- redirect output to OUTFILE
--help -- print this message
@@ -110,19 +117,25 @@
exit 1
ERR_TOO_FEW_ARGS:
- printerr "Error: too few arguments\n\n"
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'("Error: too few arguments\n\n")
goto USAGE
ERR_NO_INFILE:
- printerr "Error: file not found: "
- printerr infile
- printerr "\n\n"
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'("Error: file not found: ")
+ $P1.'print'(infile)
+ $P1.'print'("\n\n")
goto USAGE
ERR_NO_OUTFILE:
- printerr "Error: file not found: "
- printerr outfile
- printerr "\n\n"
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'("Error: file not found: ")
+ $P1.'print'(outfile)
+ $P1.'print'("\n\n")
goto USAGE
END:
Modified: branches/gsoc_threads/config/auto/arch.pm
==============================================================================
--- branches/gsoc_threads/config/auto/arch.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/arch.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -42,8 +42,7 @@
sub runstep {
my ( $self, $conf ) = @_;
- my $verbose = $conf->options->get('verbose');
- $verbose and print "\n";
+ $conf->debug("\n");
my $archname = $conf->data->get('archname');
# This was added to convert IA64.ARCHREV_0 on HP-UX, TT #645, TT #653
@@ -51,10 +50,10 @@
my ( $cpuarch, $osname ) = split( /-/, $archname );
- if ($verbose) {
- print "determining operating system and cpu architecture\n";
- print "archname: $archname\n";
- }
+ $conf->debug(
+ "determining operating system and cpu architecture\n",
+ "archname: $archname\n")
+ ;
if ( !defined $osname ) {
( $osname, $cpuarch ) = ( $cpuarch, q{} );
@@ -127,12 +126,11 @@
sub _report_verbose {
my ($conf) = @_;
- my $verbose = $conf->options->get( 'verbose' );
- if ( $verbose ) {
- print "osname: ", $conf->data->get('osname'), "\n";
- print "cpuarch: ", $conf->data->get('cpuarch'), "\n";
- print "platform: ", $conf->data->get('platform'), "\n";
- }
+ $conf->debug(
+ "osname: ", $conf->data->get('osname'), "\n",
+ "cpuarch: ", $conf->data->get('cpuarch'), "\n",
+ "platform: ", $conf->data->get('platform'), "\n",
+ );
return 1;
}
Modified: branches/gsoc_threads/config/auto/attributes.pm
==============================================================================
--- branches/gsoc_threads/config/auto/attributes.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/attributes.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -49,21 +49,20 @@
sub runstep {
my ( $self, $conf ) = @_;
- my $verbose = $conf->options->get('verbose');
- print "\n" if $verbose;
+ $conf->debug("\n");
for my $maybe_attr (@potential_attributes) {
- $self->try_attr( $conf, $maybe_attr, $verbose );
+ $self->try_attr( $conf, $maybe_attr);
}
return 1;
}
sub try_attr {
- my ( $self, $conf, $attr, $verbose ) = @_;
+ my ( $self, $conf, $attr ) = @_;
my $output_file = 'test.cco';
- $verbose and print "trying attribute '$attr'\n";
+ $conf->debug("trying attribute '$attr'\n");
my $cc = $conf->option_or_data('cc');
$conf->cc_gen('config/auto/attributes/test_c.in');
@@ -79,29 +78,29 @@
my $tryflags = "$ccflags -D$attr $disable_warnings";
my $command_line = Parrot::Configure::Utils::_build_compile_command( $cc, $tryflags );
- $verbose and print " ", $command_line, "\n";
+ $conf->debug(" ", $command_line, "\n");
# Don't use cc_build, because failure is expected.
my $exit_code =
Parrot::Configure::Utils::_run_command( $command_line, $output_file, $output_file );
- $verbose and print " exit code: $exit_code\n";
+ $conf->debug(" exit code: $exit_code\n");
$conf->cc_clean();
$conf->data->set( $attr => !$exit_code | 0 );
if ($exit_code) {
unlink $output_file or die "Unable to unlink $output_file: $!";
- $verbose and print "Rejecting bogus attribute: $attr\n";
+ $conf->debug("Rejecting bogus attribute: $attr\n");
return;
}
my $output = Parrot::BuildUtil::slurp_file($output_file);
- $verbose and print " output: $output\n";
+ $conf->debug(" output: $output\n");
if ( $output !~ /error|warning/i ) {
$conf->data->set( ccflags => $tryflags );
my $ccflags = $conf->data->get("ccflags");
- $verbose and print " ccflags: $ccflags\n";
+ $conf->debug(" ccflags: $ccflags\n");
}
unlink $output_file or die "Unable to unlink $output_file: $!";
Modified: branches/gsoc_threads/config/auto/cpu.pm
==============================================================================
--- branches/gsoc_threads/config/auto/cpu.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/cpu.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -32,20 +32,18 @@
sub runstep {
my ( $self, $conf ) = @_;
- my $verbose = $conf->options->get('verbose');
-
$conf->data->add( ' ', TEMP_atomic_o => '' ); # assure a default
my $hints = "auto::cpu::" . $conf->data->get('cpuarch') . "::auto";
- print "\t(cpu hints = '$hints') " if $verbose;
+ $conf->debug("\t(cpu hints = '$hints') ");
eval "use $hints";
unless ($@) {
$hints->runstep( $conf, @_ );
}
else {
- print "(no cpu specific hints)" if $verbose;
+ $conf->debug("(no cpu specific hints)");
}
return 1;
Modified: branches/gsoc_threads/config/auto/cpu/i386/auto.pm
==============================================================================
--- branches/gsoc_threads/config/auto/cpu/i386/auto.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/cpu/i386/auto.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -22,21 +22,19 @@
sub runstep {
my ( $self, $conf ) = @_;
- my $verbose = $conf->options->get('verbose');
-
my @files = qw( test_gcc_cmpxchg_c.in );
for my $f (@files) {
- print " $f " if $verbose;
+ $conf->debug(" $f ");
my ($suffix) = $f =~ /test_(\w+)/;
my $path_f = "config/auto/cpu/i386/$f";
$conf->cc_gen($path_f);
eval { $conf->cc_build("-DPARROT_CONFIG_TEST") };
if ($@) {
- print " $@ " if $verbose;
+ $conf->debug(" $@ ");
}
else {
if ( $conf->cc_run() =~ /ok/ ) {
- _handle_cc_run_ok($conf, $suffix, $path_f, $verbose);
+ _handle_cc_run_ok($conf, $suffix, $path_f);
}
}
$conf->cc_clean();
@@ -45,12 +43,12 @@
}
sub _handle_cc_run_ok {
- my ($conf, $suffix, $path_f, $verbose) = @_;
+ my ($conf, $suffix, $path_f) = @_;
$conf->data->set(
"i386_has_$suffix" => '1',
"HAS_i386_$suffix" => '1',
);
- print " (\U$suffix) " if ($verbose);
+ $conf->debug(" (\U$suffix) ");
$conf->data->add( ' ', TEMP_generated => $path_f );
}
Modified: branches/gsoc_threads/config/auto/cpu/ppc/auto.pm
==============================================================================
--- branches/gsoc_threads/config/auto/cpu/ppc/auto.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/cpu/ppc/auto.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -19,17 +19,15 @@
sub runstep {
my ( $self, $conf ) = @_;
- my $verbose = $conf->options->get('verbose');
-
my @files = qw( test_gcc_cmpset_c.in );
for my $f (@files) {
- print " $f " if $verbose;
+ $conf->debug(" $f ");
my ($suffix) = $f =~ /test_(\w+)/;
$f = "config/auto/cpu/ppc/$f";
$conf->cc_gen($f);
eval { $conf->cc_build("-DPARROT_CONFIG_TEST") };
if ($@) {
- print " $@ " if $verbose;
+ $conf->debug(" $@ ");
}
else {
if ( $conf->cc_run() =~ /ok/ ) {
@@ -37,7 +35,7 @@
"ppc_has_$suffix" => '1',
"HAS_PPC_$suffix" => '1',
);
- print " (\U$suffix) " if ($verbose);
+ $conf->debug(" (\U$suffix) ");
$conf->data->add( ' ', TEMP_generated => $f );
}
}
Modified: branches/gsoc_threads/config/auto/cpu/sun4/auto.pm
==============================================================================
--- branches/gsoc_threads/config/auto/cpu/sun4/auto.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/cpu/sun4/auto.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -40,19 +40,17 @@
sub runstep {
my ( $self, $conf ) = @_;
- my $verbose = $conf->options->get('verbose');
-
build_asm( $self, $conf );
my @files = qw( test_atomic_c.in );
for my $f (@files) {
- print " $f " if $verbose;
+ $conf->debug(" $f ");
my ($suffix) = $f =~ /test_(\w+)/;
$f = "config/auto/cpu/sun4/$f";
$conf->cc_gen($f);
eval { $conf->cc_build("-DPARROT_CONFIG_TEST", "sparcasm" . $conf->data->get('o') ) };
if ($@) {
- print " $@ " if $verbose;
+ $conf->debug(" $@ ");
}
else {
if ( $conf->cc_run() =~ /ok/ ) {
@@ -60,7 +58,7 @@
"sparc_has_$suffix" => '1',
"HAS_SPARC_$suffix" => '1',
);
- print " (\U$suffix) " if ($verbose);
+ $conf->debug(" (\U$suffix) ");
$conf->data->add( ' ', TEMP_atomic_o => 'src/atomic/sparc_v9.o' );
}
}
Modified: branches/gsoc_threads/config/auto/cpu/x86_64/auto.pm
==============================================================================
--- branches/gsoc_threads/config/auto/cpu/x86_64/auto.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/cpu/x86_64/auto.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -20,8 +20,6 @@
my ( $self, $conf ) = @_;
# x86_64 is recently new and has cmpxchg
-
- my $verbose = $conf->options->get('verbose');
my $gcc = $conf->data->get('gccversion');
# when running on gcc, we just define the config item
Modified: branches/gsoc_threads/config/auto/ctags.pm
==============================================================================
--- branches/gsoc_threads/config/auto/ctags.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/ctags.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -40,11 +40,10 @@
sub runstep {
my ( $self, $conf ) = @_;
- my $verbose = $conf->options->get( 'verbose' );
- print "\n" if $verbose;
+ $conf->debug("\n");
my ($ctags, $has_ctags) =
- _probe_for_ctags($conf, [ @ctags_variations ], $verbose);
+ _probe_for_ctags($conf, [ @ctags_variations ]);
$self->_evaluate_ctags($conf, $ctags, $has_ctags);
return 1;
}
@@ -52,12 +51,11 @@
sub _probe_for_ctags {
my $conf = shift;
my $variations_ref = shift;
- my $verbose = shift;
my ($ctags, $has_ctags);
while (defined (my $t = shift(@$variations_ref))) {
my $output = capture_output( $t, '--version' ) || '';
- print $output, "\n" if $verbose;
- $has_ctags = _probe_for_ctags_output($output, $verbose);
+ $conf->debug("$output\n");
+ $has_ctags = _probe_for_ctags_output($conf, $output);
$ctags = $t if $has_ctags;
last if $has_ctags;
}
@@ -65,9 +63,9 @@
}
sub _probe_for_ctags_output {
- my ($output, $verbose) = @_;
+ my ($conf, $output) = @_;
my $has_ctags = ( $output =~ m/Exuberant Ctags/ ) ? 1 : 0;
- print $has_ctags, "\n" if $verbose;
+ $conf->debug("$has_ctags\n");
return $has_ctags;
}
Modified: branches/gsoc_threads/config/auto/env.pm
==============================================================================
--- branches/gsoc_threads/config/auto/env.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/env.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -57,26 +57,25 @@
sub _evaluate_env {
my ($self, $conf, $setenv, $unsetenv) = @_;
- my $verbose = $conf->options->get('verbose');
$conf->data->set(
setenv => $setenv,
unsetenv => $unsetenv
);
if ( $setenv && $unsetenv ) {
- print " (both) " if $verbose;
+ $conf->debug(" (both) ");
$self->set_result('both');
}
elsif ($setenv) {
- print " (setenv) " if $verbose;
+ $conf->debug(" (setenv) ");
$self->set_result('setenv');
}
elsif ($unsetenv) {
- print " (unsetenv) " if $verbose;
+ $conf->debug(" (unsetenv) ");
$self->set_result('unsetenv');
}
else {
- print " (no) " if $verbose;
+ $conf->debug(" (no) ");
$self->set_result('no');
}
}
Deleted: branches/gsoc_threads/config/auto/extra_nci_thunks.pm
==============================================================================
--- branches/gsoc_threads/config/auto/extra_nci_thunks.pm Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,55 +0,0 @@
-#! perl
-# Copyright (C) 2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-config/auto/extra_nci_thunks - Static NCI Frame Building
-
-=head1 DESCRIPTION
-
-If C<--without-extra-nci-thunks> is specified, builds parrot without NCI thunks
-not required by core.
-
-=cut
-
-package auto::extra_nci_thunks;
-
-use strict;
-use warnings;
-
-use base 'Parrot::Configure::Step';
-
-sub _init {
- my $self = shift;
- return {
- description => 'Determine whether to build extra NCI thunks',
- };
-}
-
-sub runstep {
- my ($self, $conf) = @_;
- my $without = $conf->options->get( 'without-extra-nci-thunks' );
-
- if ($without) {
- $conf->data->set( has_extra_nci_thunks => 0 );
- $conf->data->set( HAS_EXTRA_NCI_THUNKS => 0 );
- $self->set_result( 'no' );
- }
- else {
- $conf->data->set( has_extra_nci_thunks => 1 );
- $conf->data->set( HAS_EXTRA_NCI_THUNKS => 1 );
- $self->set_result( 'yes' );
- }
-
- return 1;
-}
-
-1;
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/gsoc_threads/config/auto/gc.pm
==============================================================================
--- branches/gsoc_threads/config/auto/gc.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/gc.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -50,7 +50,7 @@
TEMP_gc_o => "src/gc/alloc_resources\$(O)",
gc_flag => '',
);
- print(" ($gc) ") if $conf->options->get('verbose');
+ $conf->debug(" ($gc) ");
return 1;
}
Modified: branches/gsoc_threads/config/auto/gcc.pm
==============================================================================
--- branches/gsoc_threads/config/auto/gcc.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/gcc.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -62,9 +62,8 @@
my $minor = $gnucref->{__GNUC_MINOR__};
my $intel = $gnucref->{__INTEL_COMPILER};
- my $verbose = $conf->options->get('verbose');
if ( defined $intel || !defined $major ) {
- print " (no) " if $verbose;
+ $conf->debug(" (no) ");
$self->set_result('no');
$conf->data->set( gccversion => undef );
return 1;
@@ -76,7 +75,7 @@
undef $minor; # Don't use it
}
if ( ! defined $major ) {
- print " (no) " if $verbose;
+ $conf->debug(" (no) ");
$self->set_result('no');
$conf->data->set( gccversion => undef );
return 1;
Modified: branches/gsoc_threads/config/auto/gettext.pm
==============================================================================
--- branches/gsoc_threads/config/auto/gettext.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/gettext.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -37,12 +37,7 @@
sub runstep {
my ( $self, $conf ) = @_;
- my ( $verbose, $without ) = $conf->options->get(
- qw|
- verbose
- without-gettext
- |
- );
+ my $without = $conf->options->get( qw| without-gettext | );
if ($without) {
$conf->data->set( has_gettext => 0 );
@@ -66,10 +61,10 @@
my $has_gettext = 0;
if ( !$@ ) {
my $test = $conf->cc_run();
- $has_gettext = $self->_evaluate_cc_run($test, $verbose);
+ $has_gettext = $self->_evaluate_cc_run($conf, $test);
}
if ($has_gettext) {
- _handle_gettext($conf, $verbose, $extra_libs);
+ _handle_gettext($conf, $extra_libs);
}
$conf->data->set( HAS_GETTEXT => $has_gettext );
@@ -77,22 +72,21 @@
}
sub _evaluate_cc_run {
- my $self = shift;
- my ($test, $verbose) = @_;
+ my ($self, $conf, $test) = @_;
my $has_gettext = 0;
if ( $test eq "Hello, world!\n" ) {
$has_gettext = 1;
- print " (yes) " if $verbose;
+ $conf->debug(" (yes) ");
$self->set_result('yes');
}
return $has_gettext;
}
sub _handle_gettext {
- my ($conf, $verbose, $libs) = @_;
+ my ($conf, $libs) = @_;
$conf->data->add( ' ', ccflags => "-DHAS_GETTEXT" );
$conf->data->add( ' ', libs => $libs );
- $verbose and print "\n ccflags: ", $conf->data->get("ccflags"), "\n";
+ $conf->debug("\n ccflags: ", $conf->data->get("ccflags"), "\n");
return 1;
}
Modified: branches/gsoc_threads/config/auto/gmp.pm
==============================================================================
--- branches/gsoc_threads/config/auto/gmp.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/gmp.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -43,12 +43,7 @@
sub runstep {
my ( $self, $conf ) = @_;
- my ( $verbose, $without ) = $conf->options->get(
- qw|
- verbose
- without-gmp
- |
- );
+ my $without = $conf->options->get( qw| without-gmp | );
if ($without) {
$conf->data->set( has_gmp => 0 );
@@ -71,7 +66,7 @@
my $has_gmp = 0;
if ( !$@ ) {
my $test = $conf->cc_run();
- $has_gmp = $self->_evaluate_cc_run( $conf, $test, $has_gmp, $verbose );
+ $has_gmp = $self->_evaluate_cc_run( $conf, $test, $has_gmp );
}
if ($has_gmp) {
$conf->data->add( ' ', libs => $extra_libs );
@@ -82,10 +77,10 @@
}
sub _evaluate_cc_run {
- my ($self, $conf, $test, $has_gmp, $verbose) = @_;
+ my ($self, $conf, $test, $has_gmp) = @_;
if ( $test eq $self->{cc_run_expected} ) {
$has_gmp = 1;
- print " (yes) " if $verbose;
+ $conf->debug(" (yes) ");
$self->set_result('yes');
$conf->data->set(
Modified: branches/gsoc_threads/config/auto/headers.pm
==============================================================================
--- branches/gsoc_threads/config/auto/headers.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/headers.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -64,7 +64,7 @@
my $flag = "i_$header";
$flag =~ s/\.h$//g;
$flag =~ s/\///g;
- print "$flag: $pass\n" if defined $conf->options->get('verbose');
+ $conf->debug("$flag: $pass\n");
$conf->data->set( $flag => $pass ? 'define' : undef );
}
Modified: branches/gsoc_threads/config/auto/icu.pm
==============================================================================
--- branches/gsoc_threads/config/auto/icu.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/icu.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -46,9 +46,8 @@
sub runstep {
my ( $self, $conf ) = @_;
- my ( $verbose, $icushared_opt, $icuheaders_opt,
+ my ( $icushared_opt, $icuheaders_opt,
$icuconfig_opt, $without_opt ) = $conf->options->get( qw|
- verbose
icushared
icuheaders
icu-config
@@ -101,21 +100,21 @@
( ! defined($icuheaders) );
my $without = 0;
- ($icuconfig, $autodetect, $without) =
- $self->_handle_autodetect( {
+ ($icuconfig, $autodetect, $without) = $self->_handle_autodetect(
+ $conf,
+ {
icuconfig => $icuconfig,
autodetect => $autodetect,
without => $without,
- verbose => $verbose,
- } );
+ }
+ );
# Inside _handle_autodetect(), $without can be set to 1 by
# _handle_search_for_icu_config(). In that case, we're abandoning our
# attempt to configure with ICU and so may return here.
# 2nd possible return point
if ( $without ) {
$self->_set_no_configure_with_icu($conf, q{no icu-config});
- print "Could not locate an icu-config program\n"
- if $verbose;
+ $conf->debug("Could not locate an icu-config program\n");
return 1;
}
@@ -126,7 +125,6 @@
without => $without,
autodetect => $autodetect,
icuconfig => $icuconfig,
- verbose => $verbose,
icushared => $icushared,
icuheaders => $icuheaders,
},
@@ -137,7 +135,7 @@
return 1;
}
- _verbose_report($verbose, $icuconfig, $icushared, $icuheaders);
+ _verbose_report($conf, $icuconfig, $icushared, $icuheaders);
$icuheaders = $self->_handle_icuconfig_errors( {
icushared => $icushared,
@@ -169,7 +167,6 @@
$conf,
{
ccflags_status => $ccflags_status,
- verbose => $verbose,
icuheaders => $icuheaders,
},
);
@@ -222,8 +219,7 @@
}
sub _handle_search_for_icu_config {
- my $self = shift;
- my $arg = shift;
+ my ($self, $conf, $arg) = @_;
if ( $arg->{ret} ) {
undef $arg->{icuconfig};
$arg->{autodetect} = 0;
@@ -231,40 +227,38 @@
}
else {
$arg->{icuconfig} = $self->{icuconfig_default};
- if ($arg->{verbose}) {
- print "icu-config found... good!\n";
- }
+ $conf->debug("icu-config found... good!\n");
}
return ( $arg->{icuconfig}, $arg->{autodetect}, $arg->{without} );
}
sub _handle_autodetect {
- my $self = shift;
- my $arg = shift;
+ my ($self, $conf, $arg) = @_;
if ( $arg->{autodetect} ) {
if ( ! $arg->{icuconfig} ) {
my ( undef, undef, $ret ) =
capture_output( $self->{icuconfig_default}, "--exists" );
- print "Discovered $self->{icuconfig_default} --exists returns $ret\n"
- if $arg->{verbose};
+ $conf->debug("Discovered $self->{icuconfig_default} --exists returns $ret\n");
($arg->{icuconfig}, $arg->{autodetect}, $arg->{without}) =
- $self->_handle_search_for_icu_config( {
- icuconfig => $arg->{icuconfig},
- autodetect => $arg->{autodetect},
- without => $arg->{without},
- verbose => $arg->{verbose},
- ret => $ret,
- } );
+ $self->_handle_search_for_icu_config(
+ $conf,
+ {
+ icuconfig => $arg->{icuconfig},
+ autodetect => $arg->{autodetect},
+ without => $arg->{without},
+ ret => $ret,
+ }
+ );
}
} # end $autodetect true
else {
- if ($arg->{verbose}) {
- print "Specified an ICU config parameter,\n";
- print "ICU autodetection disabled.\n";
- }
+ $conf->debug(
+ "Specified an ICU config parameter,\n",
+ "ICU autodetection disabled.\n",
+ );
} # end $autodetect false
return ( $arg->{icuconfig}, $arg->{autodetect}, $arg->{without} );
}
@@ -285,28 +279,22 @@
$arg->{icuconfig}
) {
# ldflags
- print "Trying $arg->{icuconfig} with '--ldflags'\n"
- if $arg->{verbose};
+ $conf->debug("Trying $arg->{icuconfig} with '--ldflags'\n");
$icushared = capture_output("$arg->{icuconfig} --ldflags");
chomp $icushared;
- print "icushared: captured $icushared\n"
- if $arg->{verbose};
+ $conf->debug("icushared: captured $icushared\n");
($icushared, $arg->{without}) =
$self->_handle_icushared($icushared, $arg->{without});
- print "For icushared, found $icushared and $arg->{without}\n"
- if $arg->{verbose};
+ $conf->debug("For icushared, found $icushared and $arg->{without}\n");
# location of header files
- print "Trying $arg->{icuconfig} with '--prefix'\n"
- if $arg->{verbose};
+ $conf->debug("Trying $arg->{icuconfig} with '--prefix'\n");
$icuheaders = capture_output("$arg->{icuconfig} --prefix");
chomp($icuheaders);
- print "icuheaders: captured $icuheaders\n"
- if $arg->{verbose};
+ $conf->debug("icuheaders: captured $icuheaders\n");
($icuheaders, $arg->{without}) =
$self->_handle_icuheaders($conf, $icuheaders, $arg->{without});
- print "For icuheaders, found $icuheaders and $arg->{without}\n"
- if $arg->{verbose};
+ $conf->debug("For icuheaders, found $icuheaders and $arg->{without}\n");
}
return ($arg->{without}, $icushared, $icuheaders);
@@ -348,8 +336,8 @@
}
sub _verbose_report {
- my ($verbose, $icuconfig, $icushared, $icuheaders) = @_;
- if ($verbose) {
+ my ($conf, $icuconfig, $icushared, $icuheaders) = @_;
+ if ($conf->options->get('verbose')) {
print "icuconfig: $icuconfig\n" if defined $icuconfig;
print "icushared='$icushared'\n" if defined $icushared;
print "headers='$icuheaders'\n" if defined $icuheaders;
@@ -395,9 +383,7 @@
my $arg = shift;
if ($arg->{ccflags_status}) {
# Ok, we don't need anything more.
- if ($arg->{verbose}) {
- print "Your compiler found the icu headers... good!\n";
- }
+ $conf->debug("Your compiler found the icu headers... good!\n");
}
else {
my $icuheaders = $arg->{icuheaders};
@@ -410,9 +396,7 @@
$icuflags = "-I $arg->{icuheaders}";
}
- if ($arg->{verbose}) {
- print "Adding $icuflags to ccflags for icu headers.\n";
- }
+ $conf->debug( "Adding $icuflags to ccflags for icu headers.\n");
$conf->data->add( ' ', ccflags => $icuflags );
}
}
Modified: branches/gsoc_threads/config/auto/inline.pm
==============================================================================
--- branches/gsoc_threads/config/auto/inline.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/inline.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -79,13 +79,12 @@
sub _evaluate_inline {
my ($self, $conf, $test) = @_;
- my $verbose = $conf->options->get(qw(verbose));
if ($test) {
- print " ($test) " if $verbose;
+ $conf->debug(" ($test) ");
$self->set_result('yes');
}
else {
- print " no " if $verbose;
+ $conf->debug(" no ");
$self->set_result('no');
$test = '';
}
Modified: branches/gsoc_threads/config/auto/isreg.pm
==============================================================================
--- branches/gsoc_threads/config/auto/isreg.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/isreg.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -63,7 +63,8 @@
my $test;
$test = (! defined $anyerror) ? 1 : 0;
$conf->data->set( isreg => $test );
- print( $test ? " (Yep) " : " (no) " ) if $conf->options->get('verbose');
+ my $test_str = $test ? " (Yep) " : " (no) ";
+ $conf->debug($test_str);
$self->set_result( $test ? 'yes' : 'no' );
return 1;
}
Modified: branches/gsoc_threads/config/auto/memalign.pm
==============================================================================
--- branches/gsoc_threads/config/auto/memalign.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/memalign.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -95,7 +95,8 @@
: $test ? 'memalign'
: '';
$conf->data->set( memalign => $f );
- print( $test ? " (Yep:$f) " : " (no) " ) if $conf->options->get('verbose');
+ my $test_str = $test ? " (Yep:$f) " : " (no) ";
+ $conf->debug($test_str);
$self->set_result( $test ? 'yes' : 'no' );
}
Modified: branches/gsoc_threads/config/auto/msvc.pm
==============================================================================
--- branches/gsoc_threads/config/auto/msvc.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/msvc.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -33,8 +33,7 @@
my ( $self, $conf ) = ( shift, shift );
if ($conf->data->get('gccversion')) {
- my $verbose = $conf->options->get('verbose');
- print " (skipped) " if $verbose;
+ $conf->debug(" (skipped) ");
$self->set_result('skipped');
$conf->data->set( msvcversion => undef );
return 1;
@@ -57,7 +56,6 @@
sub _evaluate_msvc {
my ($self, $conf, $msvcref) = @_;
- my $verbose = $conf->options->get('verbose');
# Set msvcversion to undef. This will also trigger any hints-file
# callbacks that depend on knowing whether or not we're using Visual C++.
@@ -73,10 +71,10 @@
my $major = int( $msvcref->{_MSC_VER} / 100 );
my $minor = $msvcref->{_MSC_VER} % 100;
- my $status = $self->_handle_not_msvc($conf, $major, $minor, $verbose);
+ my $status = $self->_handle_not_msvc($conf, $major, $minor);
return 1 if $status;
- my $msvcversion = $self->_compose_msvcversion($major, $minor, $verbose);
+ my $msvcversion = $self->_compose_msvcversion($major, $minor);
$conf->data->set( msvcversion => $msvcversion );
@@ -96,10 +94,10 @@
sub _handle_not_msvc {
my $self = shift;
- my ($conf, $major, $minor, $verbose) = @_;
+ my ($conf, $major, $minor) = @_;
my $status;
unless ( defined $major && defined $minor ) {
- print " (no) " if $verbose;
+ $conf->debug(" (no) ");
$self->set_result('no');
$conf->data->set( msvcversion => undef );
$status++;
@@ -109,7 +107,7 @@
sub _compose_msvcversion {
my $self = shift;
- my ($major, $minor, $verbose) = @_;
+ my ($major, $minor) = @_;
my $msvcversion = "$major.$minor";
$self->set_result("yes, $msvcversion");
return $msvcversion;
Modified: branches/gsoc_threads/config/auto/neg_0.pm
==============================================================================
--- branches/gsoc_threads/config/auto/neg_0.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/neg_0.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -33,7 +33,6 @@
sub runstep {
my ( $self, $conf ) = @_;
- my ( $verbose ) = $conf->options->get('verbose');
$conf->cc_gen('config/auto/neg_0/test_c.in');
eval { $conf->cc_build( q{} ); };
my $has_neg_0 = 0;
@@ -43,7 +42,6 @@
$conf,
$test,
$has_neg_0,
- $verbose,
);
}
$conf->cc_clean();
@@ -54,10 +52,11 @@
sub _evaluate_cc_run {
my $self = shift;
- my ($conf, $test, $has_neg_0, $verbose) = @_;
+ my ($conf, $test, $has_neg_0) = @_;
$has_neg_0 = ($test =~ m/^-0/ ? 1 : 0);
$self->set_result( $has_neg_0 ? 'yes' : 'no' );
- print $has_neg_0 ? ' (yes) ' : ' (no) ' if $verbose;
+ my $output = $has_neg_0 ? ' (yes) ' : ' (no) ';
+ $conf->debug($output);
return $has_neg_0;
}
Modified: branches/gsoc_threads/config/auto/opengl.pm
==============================================================================
--- branches/gsoc_threads/config/auto/opengl.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/opengl.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -158,12 +158,7 @@
sub runstep {
my ( $self, $conf ) = @_;
- my ( $verbose, $without ) = $conf->options->get(
- qw|
- verbose
- without-opengl
- |
- );
+ my $without = $conf->options->get( qw| without-opengl | );
return $self->_handle_no_opengl($conf) if $without;
@@ -192,15 +187,15 @@
}
else {
my $test = $conf->cc_run();
- return _handle_glut($conf, $extra_libs, $self->_evaluate_cc_run($test, $verbose));
+ return _handle_glut($conf, $extra_libs, $self->_evaluate_cc_run($conf, $test));
}
}
sub _evaluate_cc_run {
- my ($self, $test, $verbose) = @_;
+ my ($self, $conf, $test) = @_;
my ($glut_api_version, $glut_brand) = split ' ', $test;
- print " (yes, $glut_brand API version $glut_api_version) " if $verbose;
+ $conf->debug(" (yes, $glut_brand API version $glut_api_version) ");
$self->set_result("yes, $glut_brand $glut_api_version");
return ($glut_api_version, $glut_brand);
Modified: branches/gsoc_threads/config/auto/pcre.pm
==============================================================================
--- branches/gsoc_threads/config/auto/pcre.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/pcre.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -33,12 +33,7 @@
sub runstep {
my ( $self, $conf ) = @_;
- my ( $verbose, $without ) = $conf->options->get(
- qw|
- verbose
- without-pcre
- |
- );
+ my $without = $conf->options->get( qw| without-pcre | );
if ($without) {
$conf->data->set( HAS_PCRE => 0 );
@@ -61,7 +56,7 @@
my $has_pcre = 0;
if ( !$@ ) {
my $test = $conf->cc_run();
- $has_pcre = $self->_evaluate_cc_run($test, $verbose);
+ $has_pcre = $self->_evaluate_cc_run($conf, $test);
}
$conf->data->set( HAS_PCRE => $has_pcre);
@@ -70,12 +65,12 @@
sub _evaluate_cc_run {
my $self = shift;
- my ($test, $verbose) = @_;
+ my ($conf, $test) = @_;
my $has_pcre = 0;
if ( $test =~ /pcre (\d+\.\d+)/ ) {
my $pcre_version = $1;
$has_pcre = 1;
- print " (yes, $pcre_version) " if $verbose;
+ $conf->debug(" (yes, $pcre_version) ");
$self->set_result("yes, $pcre_version");
}
return $has_pcre;
Modified: branches/gsoc_threads/config/auto/readline.pm
==============================================================================
--- branches/gsoc_threads/config/auto/readline.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/readline.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -36,8 +36,6 @@
sub runstep {
my ( $self, $conf ) = @_;
- my $verbose = $conf->options->get('verbose');
-
my $cc = $conf->data->get('cc');
my $osname = $conf->data->get('osname');
@@ -54,7 +52,7 @@
eval { $conf->cc_build( q{}, $extra_libs ) };
if ( !$@ ) {
if ( $conf->cc_run() ) {
- $has_readline = $self->_evaluate_cc_run($verbose);
+ $has_readline = $self->_evaluate_cc_run($conf);
}
_handle_readline($conf, $extra_libs);
}
@@ -71,7 +69,7 @@
eval { $conf->cc_build( q{}, $extra_libs) };
if ( !$@ ) {
if ( $conf->cc_run() ) {
- $has_readline = $self->_evaluate_cc_run($verbose);
+ $has_readline = $self->_evaluate_cc_run($conf);
}
_handle_readline($conf, $extra_libs);
}
@@ -83,9 +81,9 @@
}
sub _evaluate_cc_run {
- my ($self, $verbose) = @_;
+ my ($self, $conf) = @_;
my $has_readline = 1;
- print " (yes) " if $verbose;
+ $conf->debug(" (yes) ");
$self->set_result('yes');
return $has_readline;
}
Modified: branches/gsoc_threads/config/auto/signal.pm
==============================================================================
--- branches/gsoc_threads/config/auto/signal.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/signal.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -39,26 +39,24 @@
has_setitimer => undef
);
- my $verbose = $conf->options->get('verbose');
-
$conf->cc_gen('config/auto/signal/test1_c.in');
eval { $conf->cc_build(); };
unless ( $@ || $conf->cc_run() !~ /ok/ ) {
- _handle__sighandler_t($conf, $verbose);
+ _handle__sighandler_t($conf);
}
$conf->cc_clean();
$conf->cc_gen('config/auto/signal/test2_c.in');
eval { $conf->cc_build(); };
unless ( $@ || $conf->cc_run() !~ /ok/ ) {
- _handle_sigaction($conf, $verbose);
+ _handle_sigaction($conf);
}
$conf->cc_clean();
$conf->cc_gen('config/auto/signal/test_itimer_c.in');
eval { $conf->cc_build(); };
unless ( $@ || $conf->cc_run() !~ /ok/ ) {
- _handle_setitimer($conf, $verbose);
+ _handle_setitimer($conf);
}
$conf->cc_clean();
@@ -70,26 +68,26 @@
}
sub _handle__sighandler_t {
- my ($conf, $verbose) = @_;
+ my ($conf) = @_;
$conf->data->set( has___sighandler_t => 'define' );
- print " (__sighandler_t)" if $verbose;
+ $conf->debug(" (__sighandler_t)");
return 1;
}
sub _handle_sigaction {
- my ($conf, $verbose) = @_;
+ my ($conf) = @_;
$conf->data->set( has_sigaction => 'define' );
- print " (sigaction)" if $verbose;
+ $conf->debug(" (sigaction)");
return 1;
}
sub _handle_setitimer {
- my ($conf, $verbose) = @_;
+ my ($conf) = @_;
$conf->data->set(
has_setitimer => 'define',
has_sig_atomic_t => 'define',
);
- print " (setitimer) " if $verbose;
+ $conf->debug(" (setitimer) ");
return 1;
}
Modified: branches/gsoc_threads/config/auto/snprintf.pm
==============================================================================
--- branches/gsoc_threads/config/auto/snprintf.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/snprintf.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -56,7 +56,7 @@
elsif ( $res =~ /^old snprintf/ ) {
$conf->data->set( HAS_OLD_SNPRINTF => 1 );
}
- print " ($res) " if $conf->options->get('verbose');
+ $conf->debug(" ($res) ");
return 1;
}
Modified: branches/gsoc_threads/config/auto/thread.pm
==============================================================================
--- branches/gsoc_threads/config/auto/thread.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/thread.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -31,12 +31,7 @@
sub runstep {
my ( $self, $conf ) = @_;
- my ( $verbose, $without ) = $conf->options->get(
- qw|
- verbose
- without-threads
- |
- );
+ my $without = $conf->options->get( qw| without-threads |);
if ($without) {
$conf->data->set( HAS_THREADS => 0 );
Modified: branches/gsoc_threads/config/auto/warnings.pm
==============================================================================
--- branches/gsoc_threads/config/auto/warnings.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/warnings.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -182,6 +182,8 @@
-Wdeprecated-declarations
-Wno-format-extra-args
-Wno-import
+ -Wsuggest-attribute=pure
+ -Wsuggest-attribute=const
-Wunreachable-code
-Wunused
-Wunused-function
@@ -272,8 +274,7 @@
sub runstep {
my ( $self, $conf ) = @_;
- my $verbose = $conf->options->get('verbose');
- print "\n" if $verbose;
+ $conf->debug("\n");
my $compiler = '';
if ( defined $conf->data->get('gccversion') ) {
@@ -287,8 +288,7 @@
}
if ($compiler eq '') {
- print "We do not (yet) probe for warnings for your compiler\n"
- if $verbose;
+ $conf->debug("We do not (yet) probe for warnings for your compiler\n");
$self->set_result('skipped');
return 1;
}
@@ -355,12 +355,10 @@
sub valid_warning {
my ( $self, $conf, $warning ) = @_;
- my $verbose = $conf->options->get('verbose');
-
# This should be using a temp file name.
my $output_file = 'test.cco';
- $verbose and print "trying attribute '$warning'\n";
+ $conf->debug("trying attribute '$warning'\n");
my $cc = $conf->option_or_data('cc');
$conf->cc_gen('config/auto/warnings/test_c.in');
@@ -370,7 +368,7 @@
my $tryflags = "$ccflags $warnings $warning";
my $command_line = Parrot::Configure::Utils::_build_compile_command( $cc, $tryflags );
- $verbose and print ' ', $command_line, "\n";
+ $conf->debug(" ", $command_line, "\n");
# Don't use cc_build, because failure is expected.
my $exit_code = Parrot::Configure::Utils::_run_command(
@@ -388,15 +386,15 @@
my $output = Parrot::BuildUtil::slurp_file($output_file);
unlink $output_file or die "Unable to unlink $output_file: $!";
- $verbose and print " output: $output\n";
+ $conf->debug(" output: $output\n");
if ( $output !~ /\berror|warning|not supported|ignoring (unknown )?option\b/i ) {
push @{$self->{'validated'}}, $warning;
- $verbose and print " valid warning: '$warning'\n";
+ $conf->debug(" valid warning: '$warning'\n");
return 1;
}
else {
- $verbose and print " invalid warning: '$warning'\n";
+ $conf->debug(" invalid warning: '$warning'\n");
return 0;
}
}
Modified: branches/gsoc_threads/config/auto/zlib.pm
==============================================================================
--- branches/gsoc_threads/config/auto/zlib.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/auto/zlib.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -32,12 +32,7 @@
sub runstep {
my ( $self, $conf ) = @_;
- my ( $verbose, $without ) = $conf->options->get(
- qw|
- verbose
- without-zlib
- |
- );
+ my $without = $conf->options->get( qw| without-zlib | );
if ($without) {
$conf->data->set( has_zlib => 0 );
@@ -60,7 +55,7 @@
my $has_zlib = 0;
if ( !$@ ) {
my $test = $conf->cc_run();
- $has_zlib = $self->_evaluate_cc_run($conf, $test, $has_zlib, $verbose);
+ $has_zlib = $self->_evaluate_cc_run($conf, $test, $has_zlib);
}
$conf->data->set( has_zlib => $has_zlib );
$self->set_result($has_zlib ? 'yes' : 'no');
@@ -70,11 +65,11 @@
sub _evaluate_cc_run {
my $self = shift;
- my ($conf, $test, $has_zlib, $verbose) = @_;
+ my ($conf, $test, $has_zlib) = @_;
if ( $test =~ m/^(\d\.\d\.\d)/ ) {
my $version = $1;
$has_zlib = 1;
- print " (yes) " if $verbose;
+ $conf->debug(" (yes) ");
$self->set_result("yes, $version");
}
return $has_zlib;
Modified: branches/gsoc_threads/config/gen/config_pm/config_pir.in
==============================================================================
--- branches/gsoc_threads/config/gen/config_pm/config_pir.in Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/gen/config_pm/config_pir.in Thu Jun 10 21:09:12 2010 (r47545)
@@ -40,20 +40,32 @@
=cut
.include "interpinfo.pasm"
-.include "stat.pasm"
.sub _config
.local string prefix, conf_file
prefix = interpinfo .INTERPINFO_RUNTIME_PREFIX
$S0 = concat prefix, "/runtime"
- $I0 = stat $S0, .STAT_EXISTS
- if $I0 goto L1
+
+ push_eh L1
+ # 'os' is dynop and can be absent at this point.
+ # Treat it as developers mode.
+ $P0 = loadlib 'os'
+ $P0 = new ['OS']
+ pop_eh
+
+ push_eh file_not_found
+ # OS.stat throws on file not found
+ $P0.'stat'($S0)
+ goto L1
+ file_not_found:
+ # Treat it as installed parrot.
conf_file = "@libdir@@versiondir@/include/config.fpmc"
goto L2
L1:
conf_file = prefix . "/runtime/parrot/include/config.fpmc"
L2:
+ pop_eh
.local pmc CONF
CONF = new 'FileHandle'
Modified: branches/gsoc_threads/config/gen/makefiles/root.in
==============================================================================
--- branches/gsoc_threads/config/gen/makefiles/root.in Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/gen/makefiles/root.in Thu Jun 10 21:09:12 2010 (r47545)
@@ -125,6 +125,7 @@
include compilers/tge/Defines.mak
include compilers/pge/Defines.mak
include compilers/pct/Defines.mak
+include compilers/opsc/Defines.mak
include ext/nqp-rx/Defines.mak
include compilers/data_json/Defines.mak
@@ -172,8 +173,7 @@
config_lib.pir \
parrot.pc \
compilers/imcc/imcc.y.flag \
- compilers/imcc/imcc.l.flag \
- src/ops/core_ops.c
+ compilers/imcc/imcc.l.flag
GEN_PASM_INCLUDES = \
runtime/parrot/include/cclass.pasm \
@@ -233,17 +233,12 @@
#
###############################################################################
-GEN_OPSFILES =
-
GEN_HEADERS = \
$(INC_DIR)/vtable.h \
- $(INC_DIR)/oplib/core_ops.h \
- $(INC_DIR)/oplib/ops.h \
$(INC_DIR)/extend_vtable.h \
$(INC_DIR)/pbcversion.h
GEN_SOURCES = \
- src/core_ops.c \
src/nci.c \
src/glut_nci_thunks.c \
src/parrot_config.c \
@@ -253,7 +248,6 @@
src/extra_nci_thunks.c
GEN_MODULES = \
- lib/Parrot/OpLib/core.pm
GEN_LIBRARY = \
$(LIBRARY_DIR)/Archive/Tar.pbc \
@@ -274,7 +268,8 @@
$(LIBRARY_DIR)/HTTP/Message.pbc \
$(LIBRARY_DIR)/Iter.pbc \
$(LIBRARY_DIR)/JSON.pbc \
- $(LIBRARY_DIR)/LWP.pbc \
+ $(LIBRARY_DIR)/LWP/Protocol.pbc \
+ $(LIBRARY_DIR)/LWP/UserAgent.pbc \
$(LIBRARY_DIR)/Math/Rand.pbc \
$(LIBRARY_DIR)/MIME/Base64.pbc \
$(LIBRARY_DIR)/NCI/Utils.pbc \
@@ -334,7 +329,6 @@
$(LIBRARY_DIR)/postgres.pbc
FLUID_FILES_1 = \
- $(GEN_OPSFILES) \
$(GEN_HEADERS) \
$(GEN_SOURCES) \
$(GEN_MODULES) \
@@ -356,61 +350,61 @@
# parrot.h and all the includes it causes to be included
PARROT_H_HEADERS = \
- $(INC_DIR)/parrot.h \
- $(INC_DIR)/config.h \
- $(INC_DIR)/settings.h \
- $(INC_DIR)/enums.h \
- $(INC_DIR)/platform.h \
- $(INC_DIR)/platform_interface.h \
- $(INC_DIR)/global_setup.h \
- $(INC_DIR)/caches.h \
- $(INC_DIR)/interpreter.h \
- $(INC_DIR)/datatypes.h \
- $(INC_DIR)/encoding.h \
- $(INC_DIR)/charset.h \
- $(INC_DIR)/string.h \
- $(INC_DIR)/string_primitives.h \
- $(INC_DIR)/hash.h \
- $(INC_DIR)/pmc_freeze.h \
- $(INC_DIR)/vtable.h \
- $(INC_DIR)/context.h \
- $(INC_DIR)/exceptions.h \
- $(INC_DIR)/warnings.h \
- $(INC_DIR)/memory.h \
- $(INC_DIR)/packfile.h \
- $(INC_DIR)/io.h \
- $(INC_DIR)/op.h \
- $(INC_DIR)/pmc.h \
- $(INC_DIR)/gc_api.h \
- $(INC_DIR)/string_funcs.h \
- $(INC_DIR)/misc.h \
- $(INC_DIR)/sub.h \
- $(INC_DIR)/call.h \
- $(INC_DIR)/key.h \
- $(INC_DIR)/exit.h \
- $(INC_DIR)/nci.h \
- $(INC_DIR)/thread.h \
- $(INC_DIR)/scheduler.h \
- $(INC_DIR)/longopt.h \
- $(INC_DIR)/oo.h \
- $(INC_DIR)/vtables.h \
- $(INC_DIR)/multidispatch.h \
- $(INC_DIR)/library.h \
- $(INC_DIR)/global.h \
- $(INC_DIR)/stat.h \
- $(INC_DIR)/hll.h \
- $(INC_DIR)/pbcversion.h \
- $(INC_DIR)/pobj.h \
- $(INC_DIR)/platform_limits.h \
- $(INC_DIR)/has_header.h \
- $(INC_DIR)/oplib.h \
- $(INC_DIR)/feature.h \
- $(INC_DIR)/debugger.h \
- $(INC_DIR)/core_types.h \
- $(INC_DIR)/core_pmcs.h \
- $(INC_DIR)/compiler.h \
- $(INC_DIR)/cclass.h \
- include/pmc/pmc_callcontext.h
+ $(INC_DIR)/parrot.h \
+ $(INC_DIR)/config.h \
+ $(INC_DIR)/settings.h \
+ $(INC_DIR)/enums.h \
+ $(INC_DIR)/platform.h \
+ $(INC_DIR)/platform_interface.h \
+ $(INC_DIR)/global_setup.h \
+ $(INC_DIR)/caches.h \
+ $(INC_DIR)/interpreter.h \
+ $(INC_DIR)/datatypes.h \
+ $(INC_DIR)/encoding.h \
+ $(INC_DIR)/charset.h \
+ $(INC_DIR)/string.h \
+ $(INC_DIR)/string_primitives.h \
+ $(INC_DIR)/hash.h \
+ $(INC_DIR)/pmc_freeze.h \
+ $(INC_DIR)/vtable.h \
+ $(INC_DIR)/context.h \
+ $(INC_DIR)/exceptions.h \
+ $(INC_DIR)/warnings.h \
+ $(INC_DIR)/memory.h \
+ $(INC_DIR)/packfile.h \
+ $(INC_DIR)/io.h \
+ $(INC_DIR)/op.h \
+ $(INC_DIR)/pmc.h \
+ $(INC_DIR)/gc_api.h \
+ $(INC_DIR)/string_funcs.h \
+ $(INC_DIR)/misc.h \
+ $(INC_DIR)/sub.h \
+ $(INC_DIR)/call.h \
+ $(INC_DIR)/key.h \
+ $(INC_DIR)/exit.h \
+ $(INC_DIR)/nci.h \
+ $(INC_DIR)/thread.h \
+ $(INC_DIR)/scheduler.h \
+ $(INC_DIR)/longopt.h \
+ $(INC_DIR)/oo.h \
+ $(INC_DIR)/vtables.h \
+ $(INC_DIR)/multidispatch.h \
+ $(INC_DIR)/library.h \
+ $(INC_DIR)/global.h \
+ $(INC_DIR)/stat.h \
+ $(INC_DIR)/hll.h \
+ $(INC_DIR)/pbcversion.h \
+ $(INC_DIR)/pobj.h \
+ $(INC_DIR)/platform_limits.h \
+ $(INC_DIR)/has_header.h \
+ $(INC_DIR)/oplib.h \
+ $(INC_DIR)/feature.h \
+ $(INC_DIR)/debugger.h \
+ $(INC_DIR)/core_types.h \
+ $(INC_DIR)/core_pmcs.h \
+ $(INC_DIR)/compiler.h \
+ $(INC_DIR)/cclass.h \
+ include/pmc/pmc_callcontext.h
# generated list of header files
GENERAL_H_FILES = $(NONGEN_HEADERS) $(GEN_HEADERS) \
@@ -503,7 +497,7 @@
#IF(platform_asm): src/platform_asm$(O) \
-OPS_FILES = @ops@ $(GEN_OPSFILES)
+OPS_FILES = @ops@
###############################################################################
#
@@ -524,6 +518,7 @@
NQP_RX = . at slash@parrot-nqp$(EXE)
NCI_THUNK_GEN = . at slash@parrot_nci_thunk_gen$(EXE)
PROVE = . at slash@parrot-prove$(EXE)
+OPS2C = . at slash@ops2c$(EXE)
# Installable executables
INSTALLABLEPARROT = . at slash@installable_parrot$(EXE)
@@ -536,6 +531,7 @@
INSTALLABLENQP = . at slash@installable_parrot-nqp$(EXE)
INSTALLABLENCITHUNKGEN = . at slash@installable_parrot_nci_thunk_gen$(EXE)
INSTALLABLEPROVE = . at slash@installable_parrot-prove$(EXE)
+INSTALLABLEOPS2C = . at slash@installable_ops2c$(EXE)
# Libraries
LIBPARROT_STATIC = @blib_dir@/@libparrot_static@
@@ -618,20 +614,45 @@
$(DATA_JSON_LIB_PBCS) \
$(NQP_LIB_PBCS) \
$(GEN_LIBRARY) \
+ $(DYNOPLIBS_TARGETS) \
$(LIBNCI_TEST_SO)
+# We build DYNPMC_TARGET in corevm. It's kinda hack to test t/pmc/threads.t CLONE_LIBRARIES
corevm : \
$(GEN_PM_INCLUDES) \
PARROT_LIBS \
$(PARROT) \
runtime/parrot/include/parrotlib.pbc \
runtime/parrot/include/config.fpmc \
- $(LIBRARY_DIR)/Test/More.pbc \
$(DYNPMC_TARGETS) \
- $(DYNOPLIBS_TARGETS)
+ $(LIBRARY_DIR)/Test/More.pbc
$(GEN_LIBRARY) : $(PARROT) $(GEN_PASM_INCLUDES)
+$(LIBRARY_DIR)/Digest/MD5.pbc: $(DYNEXT_DIR)/bit_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/Archive/Zip.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT) $(DYNEXT_DIR)/io_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/Configure/genfile.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/HTTP/Message.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/distutils.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/pcre.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/LWP/Protocol.pbc: $(DYNEXT_DIR)/io_ops$(LOAD_EXT) $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/Test/More.pbc:
+
+$(LIBRARY_DIR)/Archive/Tar.pbc: $(DYNEXT_DIR)/io_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/osutils.pbc: $(DYNEXT_DIR)/io_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/Config/JSON.pbc: $(DYNEXT_DIR)/io_ops$(LOAD_EXT) $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/LWP/UserAgent.pbc: $(DYNEXT_DIR)/io_ops$(LOAD_EXT)
+
# constant string support
.c.str : # suffix rule (limited support)
$(PERL) $(BUILD_TOOLS_DIR)/c2str.pl $< > $@
@@ -786,6 +807,7 @@
@echo " tags-vi: Create tags for the vi editor."
@echo " tags-emacs: Create tags for the Emacs editor."
@echo " perlcritic: Check Perl code with Perl::Critic."
+ @echo " bootstrap-ops: Generate C code from .ops files."
@echo ""
@echo "Release:"
@echo " release: Create a tarball."
@@ -797,10 +819,13 @@
world : all parrot_utils
-parrot_utils : $(PDUMP) $(DIS) $(PDB) $(PBC_MERGE) $(PBC_TO_EXE) $(PARROT_CONFIG) src/install_config$(O) $(PROVE)
+parrot_utils : $(PDUMP) $(DIS) $(PDB) $(PBC_MERGE) $(PBC_TO_EXE) $(PARROT_CONFIG) src/install_config$(O) $(PROVE) $(OPS2C)
-installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPDB) $(INSTALLABLEPBC_MERGE) $(INSTALLABLEPBCTOEXE) $(INSTALLABLECONFIG) $(INSTALLABLENQP) $(INSTALLABLENCITHUNKGEN) $(INSTALLABLEPROVE)
+installable: all $(INSTALLABLEPARROT) $(INSTALLABLEPDUMP) $(INSTALLABLEDIS) $(INSTALLABLEPDB) $(INSTALLABLEPBC_MERGE) $(INSTALLABLEPBCTOEXE) $(INSTALLABLECONFIG) $(INSTALLABLENQP) $(INSTALLABLENCITHUNKGEN) $(INSTALLABLEPROVE) $(INSTALLABLEOPS2C)
+bootstrap-ops : $(OPS2C)
+ $(OPS2C) --core --quiet
+ $(MAKE) .
runtime/parrot/include/parrotlib.pbc: runtime/parrot/library/parrotlib.pir $(PARROT) $(GEN_PASM_INCLUDES)
$(PARROT) -o $@ runtime/parrot/library/parrotlib.pir
@@ -810,14 +835,14 @@
$(MINIPARROT) -Iruntime/parrot/include config_lib.pir > $@
$(PARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
- lib/Parrot/OpLib/core.pm src/parrot_config$(O) \
+ src/parrot_config$(O) \
$(MINIPARROT)
$(LINK) @ld_out@$@ \
src/main$(O) src/parrot_config$(O) \
@rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS) $(LINK_DYNAMIC)
#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
-$(PBC_TO_EXE) : tools/dev/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT) $(DYNEXT_DIR)/os$(LOAD_EXT)
+$(PBC_TO_EXE) : tools/dev/pbc_to_exe.pir runtime/parrot/library/config.pir $(PARROT) $(DYNEXT_DIR)/os$(LOAD_EXT) $(DYNEXT_DIR)/file$(LOAD_EXT)
$(PARROT) -o pbc_to_exe.pbc tools/dev/pbc_to_exe.pir
$(PARROT) pbc_to_exe.pbc pbc_to_exe.pbc
@@ -838,13 +863,13 @@
$(PARROT) pbc_to_exe.pbc parrot_config.pbc
$(MINIPARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
- lib/Parrot/OpLib/core.pm src/null_config$(O)
+ src/null_config$(O)
$(LINK) @ld_out@$@ src/main$(O) src/null_config$(O) \
@rpath_blib@ $(ALL_PARROT_LIBS) $(LINKFLAGS)
#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
$(INSTALLABLEPARROT) : src/main$(O) $(GEN_HEADERS) $(LIBPARROT) \
- lib/Parrot/OpLib/core.pm src/install_config$(O) \
+ src/install_config$(O) \
$(PARROT)
$(LINK) @ld_out@$@ \
src/main$(O) src/install_config$(O) \
@@ -884,10 +909,10 @@
include/pmc/pmc_object.h src/oo.str $(INC_DIR)/oo_private.h
src/scheduler$(O) : $(PARROT_H_HEADERS) src/scheduler.str src/scheduler.c \
- include/pmc/pmc_scheduler.h include/pmc/pmc_task.h \
- include/pmc/pmc_timer.h \
- $(INC_DIR)/scheduler_private.h \
- $(INC_DIR)/runcore_api.h
+ include/pmc/pmc_scheduler.h include/pmc/pmc_task.h \
+ include/pmc/pmc_timer.h \
+ $(INC_DIR)/scheduler_private.h \
+ $(INC_DIR)/runcore_api.h
src/io/core$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/io/core.c
@@ -898,9 +923,9 @@
src/io/io_private.h src/io/socket_unix.c
src/io/socket_win32$(O) : $(PARROT_H_HEADERS) \
- src/io/io_private.h \
- include/pmc/pmc_socket.h \
- src/io/socket_win32.c
+ src/io/io_private.h \
+ include/pmc/pmc_socket.h \
+ src/io/socket_win32.c
O_FILES = \
$(INTERP_O_FILES) \
@@ -961,17 +986,17 @@
#
src/parrot_debugger$(O) : $(INC_DIR)/embed.h \
- src/parrot_debugger.c \
- $(INC_DIR)/runcore_api.h \
- compilers/imcc/imc.h $(PARROT_H_HEADERS) compilers/imcc/parser.h \
- compilers/imcc/cfg.h \
- compilers/imcc/debug.h \
- compilers/imcc/imcparser.h \
- compilers/imcc/instructions.h \
- compilers/imcc/sets.h \
- compilers/imcc/symreg.h \
- compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h
+ src/parrot_debugger.c \
+ $(INC_DIR)/runcore_api.h \
+ compilers/imcc/imc.h $(PARROT_H_HEADERS) compilers/imcc/parser.h \
+ compilers/imcc/cfg.h \
+ compilers/imcc/debug.h \
+ compilers/imcc/imcparser.h \
+ compilers/imcc/instructions.h \
+ compilers/imcc/sets.h \
+ compilers/imcc/symreg.h \
+ compilers/imcc/unit.h \
+ $(INC_DIR)/oplib/ops.h
$(PDB) : src/parrot_debugger$(O) src/parrot_config$(O) $(LIBPARROT)
$(LINK) @ld_out@$@ \
@@ -1020,7 +1045,7 @@
#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
src/pbc_dump$(O) : $(INC_DIR)/embed.h $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS) src/pbc_dump.c
+ $(PARROT_H_HEADERS) src/pbc_dump.c
$(INSTALLABLEPDUMP) : src/pbc_dump$(O) src/packdump$(O) \
src/install_config$(O) $(LIBPARROT)
@@ -1179,15 +1204,6 @@
$(PERL) $(H2INC) src/utils.c $@
-# ops.h is built by ops2pm.pl after it builds core.pm
-$(INC_DIR)/oplib/ops.h: lib/Parrot/OpLib/core.pm
-
-$(BUILD_TOOLS_DIR)/ops2c.pl: lib/Parrot/OpLib/core.pm
-
-lib/Parrot/OpLib/core.pm : $(OPS_FILES) $(BUILD_TOOLS_DIR)/ops2pm.pl \
- lib/Parrot/OpsFile.pm lib/Parrot/Op.pm src/ops/ops.num src/ops/ops.skip
- $(PERL) $(BUILD_TOOLS_DIR)/ops2pm.pl @no_lines_flag@ $(OPS_FILES)
-
###############################################################################
#
# Examples (Assembly):
@@ -1233,7 +1249,7 @@
src/datatypes$(O) : $(PARROT_H_HEADERS) src/datatypes.c
src/extend_vtable$(O) : $(PARROT_H_HEADERS) \
- $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h src/extend_vtable.c
+ $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h src/extend_vtable.c
src/global_setup$(O) : $(PARROT_H_HEADERS) src/global_setup.str src/global_setup.c
@@ -1248,13 +1264,13 @@
src/hash$(O) : $(PARROT_H_HEADERS) include/pmc/pmc_key.h src/hash.c
src/library$(O) : $(PARROT_H_HEADERS) src/library.str src/library.c\
- $(INC_DIR)/dynext.h
+ $(INC_DIR)/dynext.h
$(INC_DIR)/extend_vtable.h src/extend_vtable.c src/vtable.h : src/vtable.tbl $(BUILD_TOOLS_DIR)/vtable_extend.pl lib/Parrot/Vtable.pm
$(PERL) $(BUILD_TOOLS_DIR)/vtable_extend.pl
src/key$(O) : $(PARROT_H_HEADERS) src/key.str src/key.c \
- include/pmc/pmc_key.h
+ include/pmc/pmc_key.h
src/gc/mark_sweep$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/mark_sweep.c
@@ -1265,7 +1281,7 @@
src/gc/api$(O) : $(PARROT_H_HEADERS) src/gc/gc_private.h src/gc/api.c
src/gc/alloc_resources$(O) : $(PARROT_H_HEADERS) \
- src/gc/gc_private.h src/gc/alloc_resources.c
+ src/gc/gc_private.h src/gc/alloc_resources.c
src/hll$(O) : $(PARROT_H_HEADERS) src/hll.str $(INC_DIR)/dynext.h src/hll.c
@@ -1276,37 +1292,37 @@
src/core_pmcs$(O) : $(PARROT_H_HEADERS) src/core_pmcs.c
src/runcore/trace$(O) : include/pmc/pmc_sub.h src/runcore/trace.c \
- $(INC_DIR)/oplib/ops.h $(INC_DIR)/runcore_trace.h \
- $(PARROT_H_HEADERS)
+ $(INC_DIR)/oplib/ops.h $(INC_DIR)/runcore_trace.h \
+ $(PARROT_H_HEADERS)
src/debug$(O) : $(INC_DIR)/embed.h $(INC_DIR)/extend.h \
- $(PARROT_H_HEADERS) src/debug.c \
- $(INC_DIR)/oplib/ops.h \
- $(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
- src/debug.str include/pmc/pmc_key.h \
- include/pmc/pmc_continuation.h \
- $(INC_DIR)/extend_vtable.h
+ $(PARROT_H_HEADERS) src/debug.c \
+ $(INC_DIR)/oplib/ops.h \
+ $(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
+ src/debug.str include/pmc/pmc_key.h \
+ include/pmc/pmc_continuation.h \
+ $(INC_DIR)/extend_vtable.h
src/sub$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/oplib/ops.h \
- src/sub.str src/sub.c \
+ src/sub.str src/sub.c \
include/pmc/pmc_sub.h include/pmc/pmc_continuation.h
src/string/api$(O) : $(PARROT_H_HEADERS) src/string/api.str \
- src/string/private_cstring.h src/string/api.c
+ src/string/private_cstring.h src/string/api.c
src/string/primitives$(O) : $(PARROT_H_HEADERS) src/string/primitives.c
src/longopt$(O) : $(PARROT_H_HEADERS) src/longopt.c
src/dynext$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/dynext.h \
- src/dynext.str include/pmc/pmc_parrotlibrary.h src/dynext.c
+ src/dynext.str include/pmc/pmc_parrotlibrary.h src/dynext.c
src/exceptions$(O) : $(PARROT_H_HEADERS) \
- src/exceptions.str src/exceptions.c \
+ src/exceptions.str src/exceptions.c \
include/pmc/pmc_continuation.h
src/thread$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/atomic.h src/thread.c \
- include/pmc/pmc_sub.h \
+ include/pmc/pmc_sub.h \
include/pmc/pmc_parrotinterpreter.h \
$(INC_DIR)/runcore_api.h
@@ -1319,31 +1335,31 @@
src/runcore/main.c \
src/runcore/main.str \
include/pmc/pmc_parrotlibrary.h \
- $(INC_DIR)/dynext.h $(INC_DIR)/oplib/core_ops.h \
- $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS) $(INC_DIR)/runcore_api.h \
- $(INC_DIR)/runcore_profiling.h
+ $(INC_DIR)/dynext.h $(INC_DIR)/oplib/core_ops.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS) $(INC_DIR)/runcore_api.h \
+ $(INC_DIR)/runcore_profiling.h
src/runcore/profiling$(O) : src/runcore/profiling.str src/runcore/profiling.c \
include/pmc/pmc_sub.h \
include/pmc/pmc_namespace.h \
- $(INC_DIR)/oplib/core_ops.h $(INC_DIR)/runcore_api.h \
- $(INC_DIR)/runcore_profiling.h $(INC_DIR)/embed.h \
- $(PARROT_H_HEADERS)
+ $(INC_DIR)/oplib/core_ops.h $(INC_DIR)/runcore_api.h \
+ $(INC_DIR)/runcore_profiling.h $(INC_DIR)/embed.h \
+ $(PARROT_H_HEADERS)
src/call/args$(O) : \
- $(PARROT_H_HEADERS) $(INC_DIR)/oplib/ops.h \
+ $(PARROT_H_HEADERS) $(INC_DIR)/oplib/ops.h \
src/call/args.c \
src/call/args.str \
include/pmc/pmc_key.h \
include/pmc/pmc_fixedintegerarray.h
src/call/context_accessors$(O): $(PARROT_H_HEADERS) \
- src/call/context_accessors.c
+ src/call/context_accessors.c
src/call/pcc$(O) : $(INC_DIR)/oplib/ops.h \
- $(PARROT_H_HEADERS) \
- $(INC_DIR)/runcore_api.h \
+ $(PARROT_H_HEADERS) \
+ $(INC_DIR)/runcore_api.h \
src/call/pcc.c \
src/call/pcc.str \
include/pmc/pmc_key.h include/pmc/pmc_continuation.h
@@ -1352,12 +1368,12 @@
include/pmc/pmc_sub.h src/call/context.c
src/interp/inter_cb$(O) : $(PARROT_H_HEADERS) \
- include/pmc/pmc_parrotinterpreter.h \
+ include/pmc/pmc_parrotinterpreter.h \
src/interp/inter_cb.str src/interp/inter_cb.c
src/interp/inter_misc$(O) : $(PARROT_H_HEADERS) \
- src/interp/inter_misc.c \
- src/interp/inter_misc.str \
+ src/interp/inter_misc.c \
+ src/interp/inter_misc.str \
compilers/imcc/imc.h \
compilers/imcc/cfg.h \
compilers/imcc/debug.h \
@@ -1365,14 +1381,14 @@
compilers/imcc/sets.h \
compilers/imcc/symreg.h \
compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(INC_DIR)/runcore_api.h
+ $(INC_DIR)/oplib/ops.h \
+ $(INC_DIR)/runcore_api.h
src/interp/inter_create$(O) : $(PARROT_H_HEADERS) \
$(INC_DIR)/oplib/core_ops.h \
src/gc/gc_private.h \
- src/interp/inter_create.c \
- src/interp/inter_create.str \
+ src/interp/inter_create.c \
+ src/interp/inter_create.str \
compilers/imcc/imc.h \
compilers/imcc/cfg.h \
compilers/imcc/debug.h \
@@ -1380,19 +1396,19 @@
compilers/imcc/sets.h \
compilers/imcc/symreg.h \
compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(INC_DIR)/runcore_api.h
+ $(INC_DIR)/oplib/ops.h \
+ $(INC_DIR)/runcore_api.h
src/call/ops$(O) : $(INC_DIR)/oplib/ops.h \
$(PARROT_H_HEADERS) include/pmc/pmc_continuation.h \
- $(INC_DIR)/runcore_api.h src/call/ops.c
+ $(INC_DIR)/runcore_api.h src/call/ops.c
src/io/api$(O) : $(PARROT_H_HEADERS) src/io/io_private.h \
- src/io/api.c \
- src/io/api.str include/pmc/pmc_filehandle.h \
- include/pmc/pmc_stringhandle.h \
- $(INC_DIR)/extend.h \
- $(INC_DIR)/extend_vtable.h
+ src/io/api.c \
+ src/io/api.str include/pmc/pmc_filehandle.h \
+ include/pmc/pmc_stringhandle.h \
+ $(INC_DIR)/extend.h \
+ $(INC_DIR)/extend_vtable.h
src/io/buffer$(O) : $(PARROT_H_HEADERS) src/io/io_private.h src/io/buffer.c
@@ -1410,28 +1426,28 @@
src/gc/alloc_memory$(O) : $(PARROT_H_HEADERS) src/gc/alloc_memory.c
src/main$(O) : $(INC_DIR)/imcc.h $(PARROT_H_HEADERS) \
- $(INC_DIR)/embed.h $(INC_DIR)/runcore_api.h src/gc/gc_private.h \
- src/main.c
+ $(INC_DIR)/embed.h $(INC_DIR)/runcore_api.h src/gc/gc_private.h \
+ src/main.c
src/multidispatch$(O) : \
- src/multidispatch.c \
- src/multidispatch.str \
- $(INC_DIR)/oplib/ops.h $(PARROT_H_HEADERS) \
+ src/multidispatch.c \
+ src/multidispatch.str \
+ $(INC_DIR)/oplib/ops.h $(PARROT_H_HEADERS) \
include/pmc/pmc_nci.h include/pmc/pmc_sub.h
src/packfile$(O) : src/packfile.str \
- src/packfile.c \
+ src/packfile.c \
include/pmc/pmc_sub.h include/pmc/pmc_key.h \
- compilers/imcc/imc.h \
+ compilers/imcc/imc.h \
compilers/imcc/cfg.h \
compilers/imcc/debug.h \
compilers/imcc/instructions.h \
compilers/imcc/sets.h \
compilers/imcc/symreg.h \
compilers/imcc/unit.h \
- $(INC_DIR)/oplib/ops.h \
- $(INC_DIR)/embed.h $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h \
- $(PARROT_H_HEADERS) $(INC_DIR)/runcore_api.h
+ $(INC_DIR)/oplib/ops.h \
+ $(INC_DIR)/embed.h $(INC_DIR)/extend.h $(INC_DIR)/extend_vtable.h \
+ $(PARROT_H_HEADERS) $(INC_DIR)/runcore_api.h
src/packfile/pf_items$(O) : $(PARROT_H_HEADERS) src/packfile/pf_items.c
@@ -1440,12 +1456,12 @@
src/parrot$(O) : $(GENERAL_H_FILES)
src/runcore/cores$(O) : src/runcore/cores.str \
- src/runcore/cores.c \
+ src/runcore/cores.c \
include/pmc/pmc_sub.h \
- $(INC_DIR)/dynext.h $(INC_DIR)/embed.h $(INC_DIR)/oplib/core_ops.h \
- $(INC_DIR)/oplib/ops.h \
- $(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
- $(PARROT_H_HEADERS)
+ $(INC_DIR)/dynext.h $(INC_DIR)/embed.h $(INC_DIR)/oplib/core_ops.h \
+ $(INC_DIR)/oplib/ops.h \
+ $(INC_DIR)/runcore_api.h $(INC_DIR)/runcore_trace.h \
+ $(PARROT_H_HEADERS)
src/embed$(O) : $(PARROT_H_HEADERS) $(INC_DIR)/embed.h \
src/embed.c src/embed.str \
@@ -1457,19 +1473,19 @@
compilers/imcc/sets.h \
compilers/imcc/symreg.h \
compilers/imcc/unit.h \
- include/pmc/pmc_sub.h
+ include/pmc/pmc_sub.h
src/dataypes$(O) : $(GENERAL_H_FILES) src/dataypes.c
src/exit$(O) : $(PARROT_H_HEADERS) src/exit.c
src/nci/api$(O) : src/nci/api.str \
- src/nci/api.c \
- $(PARROT_H_HEADERS)
+ src/nci/api.c \
+ $(PARROT_H_HEADERS)
src/nci/core_thunks$(O) : src/nci/core_thunks.c \
- $(PARROT_H_HEADERS) \
- include/pmc/pmc_nci.h
+ $(PARROT_H_HEADERS) \
+ include/pmc/pmc_nci.h
## SUFFIX OVERRIDE
src/nci/extra_thunks$(O) : \
@@ -1479,11 +1495,11 @@
$(CC) $(CFLAGS) @optimize::src/nci/extra_thunks.c@ @ccwarn::src/nci/extra_thunks.c@ @cc_shared@ -I$(@D) @cc_o_out@$@ -c src/nci/extra_thunks.c
src/frame_builder$(O) : $(PARROT_H_HEADERS) src/frame_builder.h \
- src/frame_builder.c \
- include/pmc/pmc_fixedintegerarray.h \
- include/pmc/pmc_unmanagedstruct.h \
- include/pmc/pmc_managedstruct.h \
- $(INC_DIR)/oplib/ops.h
+ src/frame_builder.c \
+ include/pmc/pmc_fixedintegerarray.h \
+ include/pmc/pmc_unmanagedstruct.h \
+ include/pmc/pmc_managedstruct.h \
+ $(INC_DIR)/oplib/ops.h
src/vtables$(O) : $(PARROT_H_HEADERS) src/vtables.c
@@ -1510,14 +1526,15 @@
src/string/encoding$(O) : $(PARROT_H_HEADERS) src/string/encoding.c
src/string/charset$(O) : $(PARROT_H_HEADERS) src/string/charset.c \
- src/string/encoding/fixed_8.h \
- src/string/encoding/utf8.h \
- src/string/encoding/utf16.h \
- src/string/encoding/ucs2.h \
- src/string/charset/ascii.h \
- src/string/charset/binary.h \
- src/string/charset/iso-8859-1.h \
- src/string/charset/unicode.h
+ src/string/encoding/fixed_8.h \
+ src/string/encoding/utf8.h \
+ src/string/encoding/utf16.h \
+ src/string/encoding/ucs2.h \
+ src/string/encoding/ucs4.h \
+ src/string/charset/ascii.h \
+ src/string/charset/binary.h \
+ src/string/charset/iso-8859-1.h \
+ src/string/charset/unicode.h
src/pbc_merge$(O) : $(INC_DIR)/embed.h src/pbc_merge.c \
include/pmc/pmc_sub.h $(INC_DIR)/oplib/ops.h $(PARROT_H_HEADERS)
@@ -1544,15 +1561,6 @@
include/pmc/pmc_parrotlibrary.h \
src/io/io_private.h
-# .h files are built along with .c
-$(INC_DIR)/oplib/core_ops.h: src/ops/core_ops.c
-
-src/ops/core_ops.c : $(OPS_FILES) $(BUILD_TOOLS_DIR)/ops2c.pl \
- lib/Parrot/OpsFile.pm lib/Parrot/Op.pm $(INC_DIR)/config.h \
- lib/Parrot/OpLib/core.pm lib/Parrot/OpTrans/C.pm \
- include/pmc/pmc_continuation.h
- $(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl C --core @no_lines_flag@
-
@TEMP_gc_c@
@TEMP_pmc_build@
@@ -1660,13 +1668,9 @@
t/tools/*.t
LIBRARY_TEST_FILES = @library_tests@
PMC2CUTILS_DIR = t/tools/pmc2cutils
-OPS2PMUTILS_DIR = t/tools/ops2pm
-OPS2CUTILS_DIR = t/tools/ops2cutils
HARNESS_DIR = t/pharness
BUILDTOOLS_TEST_FILES = \
$(PMC2CUTILS_DIR)/*.t \
- $(OPS2PMUTILS_DIR)/*.t \
- $(OPS2CUTILS_DIR)/*.t \
$(HARNESS_DIR)/*.t
MANIFEST_DIR = t/manifest
INSTALL_TOOLS_DIR = t/tools/install
@@ -1833,7 +1837,6 @@
ext-clean \
#UNLESS(win32): cover-clean \
editor-clean
- $(RM_F) $(INC_DIR)/oplib/core_ops_cg.h src/ops/core_ops_cg.c
$(RM_F) chartypes "*.s" "*~"
$(RM_F) $(FLUID_FILES_1)
$(RM_F) $(FLUID_FILES_2)
@@ -1843,7 +1846,7 @@
$(RM_F) $(PIRC_CLEANUPS) $(PCT_CLEANUPS) $(DATA_JSON_CLEANUPS)
$(RM_F) $(DYNOPLIBS_CLEANUPS) $(DYNPMC_CLEANUPS)
$(RM_F) $(GEN_PASM_INCLUDES) $(GEN_PM_INCLUDES)
- $(RM_F) $(NQPRX_CLEANUPS)
+ $(RM_F) $(NQPRX_CLEANUPS) $(OPSC_CLEANUPS)
prog-clean :
$(RM_F) \
@@ -1851,6 +1854,7 @@
$(PARROT) \
$(MINIPARROT) \
$(LIBPARROT) \
+ $(INSTALLABLEOPS2C) \
$(INSTALLABLEPARROT) \
$(INSTALLABLEDIS) \
$(INSTALLABLEPDUMP) \
@@ -1863,6 +1867,7 @@
$(INSTALLABLEPROVE) \
pbc_to_exe.pbc pbc_to_exe.c pbc_to_exe$(O) pbc_to_exe$(EXE) \
$(NCI_THUNK_GEN) parrot_nci_thunk_gen.c parrot_nci_thunk_gen$(O) parrot_nci_thunk_gen.pbc \
+ ops2c.pbc ops2c.c ops2c$(O) ops2c$(EXE) ops2c.pir \
parrot-prove.pbc parrot-prove.c parrot-prove$(O) parrot-prove$(EXE) \
parrot_config$(EXE) parrot_config.c parrot_config$(O) parrot_config.pbc \
compilers/imcc/main$(O) \
@@ -1945,20 +1950,14 @@
# XXX Is there a danger of too long command lines in the $(RM_F) commands,
# or is there an automatic xargs?
test-clean :
- $(RM_F) \
- "t/compilers/*/*.out" \
- "t/compilers/*/*.pasm" \
- "t/compilers/*/*.pbc" \
- "t/compilers/*/*_pbcexe*" \
- "t/compilers/*/*.pir" \
- "t/compilers/*/*.stabs.s"
- $(RM_F) \
- "t/compilers/*/*/*.out" \
- "t/compilers/*/*/*.pasm" \
- "t/compilers/*/*/*.pbc" \
- "t/compilers/*/*/*_pbcexe*" \
- "t/compilers/*/*/*.pir" \
- "t/compilers/*/*/*.stabs.s"
+ $(RM_F) t/compilers/data_json/*.pir
+ $(RM_F) t/compilers/imcc/imcpasm/*.pir
+ $(RM_F) t/compilers/imcc/syn/*.pir t/compilers/imcc/syn/*.pasm
+ $(RM_F) t/compilers/imcc/reg/*.pir t/compilers/imcc/reg/*.pasm
+ $(RM_F) t/compilers/pct/*.pir
+ $(RM_F) t/compilers/pge/perl6regex/*.pir
+ $(RM_F) t/compilers/pge/*.pir
+ $(RM_F) t/compilers/tge/*.pir
$(RM_F) \
"t/*/*$(O)" \
"t/*/*.out" \
@@ -2300,10 +2299,10 @@
build_dir=$$PWD; \
for dir in $(COVER_DIRS); \
do \
- cd $$dir; \
- gcov *.c; \
- cd $$build_dir; \
- gcov2perl $$dir/*.gcov; \
+ cd $$dir; \
+ gcov *.c; \
+ cd $$build_dir; \
+ gcov2perl $$dir/*.gcov; \
done
cover -ignore_re '^\/usr\/local\/bin'
@@ -2417,7 +2416,7 @@
$(PERL) -lane 'print"parrot-$(VERSION)/$$F[0]"unless!length||/#/' MANIFEST | \
tar -zcv -T - -f parrot-$(VERSION).tar.gz
$(PERL) -lane 'print"parrot-$(VERSION)/$$F[0]"unless!length||/#/' \
- MANIFEST | tar -jcv -T - -f parrot-$(VERSION).tar.bz2
+ MANIFEST | tar -jcv -T - -f parrot-$(VERSION).tar.bz2
mv MANIFEST.real MANIFEST
rm parrot-$(VERSION)
@@ -2451,10 +2450,10 @@
src/glut_nci_thunks.c: $(NCI_THUNK_GEN)
$(NCI_THUNK_GEN) \
- --loader-name=Parrot_glut_nci_loader \
- --loader-storage-class=PARROT_DYNEXT_EXPORT \
- --output=src/glut_nci_thunks.c \
- <src/glut_nci_thunks.nci
+ --loader-name=Parrot_glut_nci_loader \
+ --loader-storage-class=PARROT_DYNEXT_EXPORT \
+ --output=src/glut_nci_thunks.c \
+ <src/glut_nci_thunks.nci
src/glut_nci_thunks$(O) : $(PARROT_H_HEADERS) \
src/glut_nci_thunks.c \
@@ -2467,7 +2466,7 @@
src/extra_nci_thunks.c : src/nci/extra_thunks.nci $(NCI_THUNK_GEN)
$(NCI_THUNK_GEN) --dynext --no-warn-dups \
- --output=src/extra_nci_thunks.c <src/nci/extra_thunks.nci
+ --output=src/extra_nci_thunks.c <src/nci/extra_thunks.nci
## SUFFIX OVERRIDE
src/extra_nci_thunks$(O) : $(PARROT_H_HEADERS) src/extra_nci_thunks.c \
@@ -2485,17 +2484,17 @@
tags-emacs: tags.emacs.dummy
$(RM_F) TAGS
@ctags@ -e \
- --links=no --totals \
- -R --exclude=blib --exclude=.svn \
- --languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
- -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK,ARGFREE,ARGFREE_NOTNULL \
- .
+ --links=no --totals \
+ -R --exclude=blib --exclude=.svn \
+ --languages=c,perl --langmap=c:+.h,c:+.pmc,c:+.ops \
+ -I NOTNULL,NULLOK,ARGIN,ARGMOD,ARGOUT,ARGINOUT,ARGIN_NULLOK,ARGOUT_NULLOK,ARGMOD_NULLOK,ARGFREE,ARGFREE_NOTNULL \
+ .
# this works with an old etags (XEmacs 21.5*)
tags-xemacs: tags.emacs.dummy
$(RM_F) TAGS
find . \
- -name \*.c -o -name \*.h -o -name \*.pmc -o -name \*.ops | etags -l c - -o TAGS
+ -name \*.c -o -name \*.h -o -name \*.pmc -o -name \*.ops | etags -l c - -o TAGS
tags.emacs.dummy:
@@ -2555,6 +2554,7 @@
include compilers/pirc/Rules.mak
include compilers/pge/Rules.mak
include compilers/pct/Rules.mak
+include compilers/opsc/Rules.mak
include compilers/tge/Rules.mak
include compilers/data_json/Rules.mak
include ext/nqp-rx/Rules.mak
Modified: branches/gsoc_threads/config/gen/opengl.pm
==============================================================================
--- branches/gsoc_threads/config/gen/opengl.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/gen/opengl.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -457,8 +457,6 @@
return 1;
}
- my $verbose = $conf->options->get('verbose') || 0;
-
my @include_paths_win32 = grep /\S/ => split /;/ => ($ENV{INCLUDE} || '');
my $osname = $conf->data->get('osname');
@@ -522,22 +520,28 @@
# X freeglut only if DISPLAY is set, otherwise use native w32api GLUT
shift @header_globs if $^O eq 'cygwin' and !$ENV{DISPLAY};
- print "\nChecking for OpenGL headers using the following globs:\n\t",
- join("\n\t", @header_globs), "\n"
- if $verbose;
+ my $globs_str = join("\n\t", @header_globs) . "\n";
+ $conf->debug(
+ "\n",
+ "Checking for OpenGL headers using the following globs:\n",
+ "\t$globs_str"
+ );
my @header_files = sort map {File::Glob::bsd_glob($_)} @header_globs;
my %skip = map {($_ => 1)} @SKIP;
- @header_files = grep {my ($file) = m{([^/]+)$}; !$skip{$file}} @header_files;
-
- print "\nFound the following OpenGL headers:\n\t",
- join("\n\t", @header_files), "\n"
- if $verbose;
-
+ @header_files =
+ grep {my ($file) = m{([^/]+)$}; !$skip{$file}} @header_files;
die "OpenGL enabled and detected, but no OpenGL headers found!"
unless @header_files;
+ my $files_str = join("\n\t", @header_files) . "\n";
+ $conf->debug(
+ "\n",
+ "Found the following OpenGL headers:\n",
+ "\t$files_str\n",
+ );
+
my $autogen_header = <<'HEADER';
# DO NOT EDIT THIS FILE.
#
@@ -550,15 +554,15 @@
$autogen_header .= "# $_\n" foreach @header_files;
- $self->gen_opengl_defines ($conf, \@header_files, $autogen_header, $verbose);
- $self->gen_opengl_wrappers($conf, \@header_files, $autogen_header, $verbose);
+ $self->gen_opengl_defines ($conf, \@header_files, $autogen_header);
+ $self->gen_opengl_wrappers($conf, \@header_files, $autogen_header);
$self->gen_glut_callbacks ($conf);
return 1;
}
sub gen_opengl_defines {
- my ($self, $conf, $header_files, $autogen_header, $verbose) = @_;
+ my ($self, $conf, $header_files, $autogen_header) = @_;
my (%defs, @macros, %non_numeric);
my $max_len = 0;
@@ -590,7 +594,7 @@
}
else {
$non_numeric{$F[1]}++;
- print "\nNon-numeric value for '$F[1]': '$F[2]'\n" if $verbose;
+ $conf->debug("Non-numeric value for '$F[1]': '$F[2]'\n");
}
}
}
@@ -630,7 +634,8 @@
}
sub gen_opengl_wrappers {
- my ($self, $conf, $header_files, $autogen_header, $verbose) = @_;
+ my ($self, $conf, $header_files, $autogen_header) = @_;
+ my $verbose = $conf->options->get('verbose') || 0;
my %IGNORE = map {($_ => 1)} @IGNORE;
@@ -772,7 +777,8 @@
$sigs{$nci_sig}++;
push @{$funcs{$group}}, [$name, $nci_sig];
- print "$group\t$nci_sig\t$return $name($params);\n" if $verbose >= 3;
+ print "$group\t$nci_sig\t$return $name($params);\n"
+ if $verbose >= 3;
}
}
Modified: branches/gsoc_threads/config/gen/platform.pm
==============================================================================
--- branches/gsoc_threads/config/gen/platform.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/gen/platform.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -39,35 +39,32 @@
sub runstep {
my ( $self, $conf ) = @_;
- my $verbose = $conf->options->get('verbose');
- my $generated = $self->_get_generated($conf, $verbose);
-
+ my $generated = $self->_get_generated($conf);
# headers are merged into platform.h
- $self->_set_headers($conf, $verbose, $generated);
+ $self->_set_headers($conf, $generated);
# implementation files are merged into platform.c
- $self->_set_implementations($conf, $verbose, $generated);
+ $self->_set_implementations($conf, $generated);
$self->_handle_asm($conf);
- $self->_set_limits($conf, $verbose);
+ $self->_set_limits($conf);
return 1;
}
sub _get_generated {
- my $self = shift;
- my ($conf, $verbose) = @_;
+ my ($self, $conf) = @_;
my $generated = $conf->data->get('TEMP_generated');
$generated = '' unless defined $generated;
- print " ($generated) " if $verbose;
+ $conf->debug(" ($generated) \n");
return $generated;
}
sub _set_headers {
my $self = shift;
- my ($conf, $verbose, $generated) = @_;
+ my ($conf, $generated) = @_;
my $platform = $conf->data->get('platform');
my @headers = qw/
io.h
@@ -112,7 +109,7 @@
if ( -e $header_file ) {
local $/ = undef;
- print("\t$header_file\n") if $verbose;
+ $conf->debug("\t$header_file\n");
open my $IN_H, "<", "$header_file"
or die "Can't open $header_file: $!";
@@ -144,7 +141,7 @@
for my $h (@headers) {
if ( -e $h ) {
local $/ = undef;
- print("\t$h\n") if $verbose;
+ $conf->debug("\t$h\n");
open my $IN_H, "<", $h or die "Can't open $h: $!";
print {$PLATFORM_H} <<"END_HERE";
/*
@@ -186,7 +183,7 @@
sub _set_implementations {
my $self = shift;
- my ($conf, $verbose, $generated) = @_;
+ my ($conf, $generated) = @_;
my $platform = $conf->data->get('platform');
my @impls = qw/
time.c
@@ -238,7 +235,7 @@
if ( -e $impl_file ) {
local $/ = undef;
- print("\t$impl_file\n") if $verbose;
+ $conf->debug("\t$impl_file\n");
open my $IN_C, "<", $impl_file or die "Can't open $impl_file: $!";
# slurp in the C file
@@ -263,7 +260,7 @@
for my $im (@impls) {
if ( -e $im ) {
local $/ = undef;
- print("\t$im\n") if $verbose;
+ $conf->debug("\t$im\n");
open my $IN_C, "<", $im or die "Can't open $im: $!";
print {$PLATFORM_C} <<"END_HERE";
/*
Modified: branches/gsoc_threads/config/gen/platform/ansi/time.c
==============================================================================
--- branches/gsoc_threads/config/gen/platform/ansi/time.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/gen/platform/ansi/time.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -60,6 +60,8 @@
=item C<void Parrot_sleep(unsigned int seconds)>
+Sleep for at least the specified number of seconds.
+
=cut
*/
Modified: branches/gsoc_threads/config/gen/platform/generic/time.c
==============================================================================
--- branches/gsoc_threads/config/gen/platform/generic/time.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/gen/platform/generic/time.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -94,6 +94,7 @@
*/
+PARROT_EXPORT
struct tm *
Parrot_gmtime_r(const time_t *t, struct tm *tm)
{
@@ -108,6 +109,7 @@
*/
+PARROT_EXPORT
struct tm *
Parrot_localtime_r(const time_t *t, struct tm *tm)
{
@@ -122,6 +124,7 @@
*/
+PARROT_EXPORT
char*
Parrot_asctime_r(const struct tm *tm, char *buffer)
{
Modified: branches/gsoc_threads/config/gen/platform/solaris/time.c
==============================================================================
--- branches/gsoc_threads/config/gen/platform/solaris/time.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/gen/platform/solaris/time.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -94,6 +94,7 @@
*/
+PARROT_EXPORT
struct tm *
Parrot_gmtime_r(const time_t *t, struct tm *tm)
{
@@ -108,6 +109,7 @@
*/
+PARROT_EXPORT
struct tm *
Parrot_localtime_r(const time_t *t, struct tm *tm)
{
@@ -122,6 +124,7 @@
*/
+PARROT_EXPORT
char*
Parrot_asctime_r(const struct tm *tm, char *buffer)
{
Modified: branches/gsoc_threads/config/gen/platform/win32/dl.c
==============================================================================
--- branches/gsoc_threads/config/gen/platform/win32/dl.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/gen/platform/win32/dl.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -42,7 +42,7 @@
=item C<const char * Parrot_dlerror(void)>
-System-dependant error code that indicates failure in opening a DL.
+System-dependent error code that indicates failure in opening a DL.
=cut
Modified: branches/gsoc_threads/config/gen/platform/win32/time.c
==============================================================================
--- branches/gsoc_threads/config/gen/platform/win32/time.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/gen/platform/win32/time.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -122,6 +122,7 @@
*/
+PARROT_EXPORT
struct tm *
Parrot_gmtime_r(const time_t *t, struct tm *tm)
{
@@ -139,6 +140,7 @@
*/
+PARROT_EXPORT
struct tm *
Parrot_localtime_r(const time_t *t, struct tm *tm)
{
@@ -157,6 +159,7 @@
*/
+PARROT_EXPORT
char*
Parrot_asctime_r(const struct tm *tm, char *buffer)
{
Modified: branches/gsoc_threads/config/init/defaults.pm
==============================================================================
--- branches/gsoc_threads/config/init/defaults.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/init/defaults.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -258,6 +258,13 @@
$conf->data->set( 'archname', $Config{archname});
+ $conf->data->set( has_extra_nci_thunks => 1 );
+ $conf->data->set( HAS_EXTRA_NCI_THUNKS => 1 );
+ if ( $conf->options->get( 'without-extra-nci-thunks' ) ) {
+ $conf->data->set( has_extra_nci_thunks => 0 );
+ $conf->data->set( HAS_EXTRA_NCI_THUNKS => 0 );
+ }
+
# adjust archname, cc and libs for e.g. --m=32
# remember corrected archname - jit.pm was using $Config('archname')
_64_bit_adjustments($conf);
Modified: branches/gsoc_threads/config/init/hints.pm
==============================================================================
--- branches/gsoc_threads/config/init/hints.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/init/hints.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -31,8 +31,7 @@
sub runstep {
my ( $self, $conf ) = @_;
- my $verbose = $conf->options->get('verbose');
- print "\n[ " if $verbose;
+ $conf->debug("\n[ ");
my $hints_used = 0;
my $hints_file;
@@ -46,7 +45,7 @@
if ( -f $hints_file ) {
my $hints_pkg = "init::hints::" . $hints_file_name;
- print "$hints_pkg " if $verbose;
+ $conf->debug("$hints_pkg ");
eval "use $hints_pkg";
die $@ if $@;
@@ -57,7 +56,7 @@
$hints_used++;
$hints_pkg = "init::hints::local";
- print "$hints_pkg " if $verbose;
+ $conf->debug("$hints_pkg ");
eval "use $hints_pkg";
unless ($@) {
@@ -66,14 +65,14 @@
}
}
else {
- print "No $hints_file found. " if $verbose;
+ $conf->debug("No $hints_file found. ");
}
- if ( $hints_used == 0 and $verbose ) {
- print "(no hints) ";
+ if ( $hints_used == 0 ) {
+ $conf->debug("(no hints) ");
}
- print "]" if $verbose;
+ $conf->debug("]");
return 1;
}
Modified: branches/gsoc_threads/config/init/hints/darwin.pm
==============================================================================
--- branches/gsoc_threads/config/init/hints/darwin.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/init/hints/darwin.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -25,7 +25,6 @@
my $share_ext = $conf->option_or_data('share_ext');
my $version = $conf->option_or_data('VERSION');
- my $verbose = $conf->options->get('verbose');
# The hash referenced by $flagsref is the list of options that have -arch
# flags added to them implicitly through config/init/defaults.pm when
@@ -35,7 +34,7 @@
# friends. So, it's time to remove all -arch flags set in $conf->data and
# force a single, native architecture to being the default build.
- my $flagsref = _strip_arch_flags($conf, $verbose);
+ my $flagsref = _strip_arch_flags($conf);
# And now, after possibly losing a few undesired compiler and linker
# flags, on to the main Darwin config.
@@ -98,11 +97,11 @@
#################### INTERNAL SUBROUTINES ####################
sub _precheck {
- my ($flag, $stored, $verbose) = @_;
- if ($verbose) {
- print "Checking $flag...\n";
- print "Pre-check: " . ($stored || '(nil)') . "\n";
- }
+ my ($conf, $flag, $stored) = @_;
+ $conf->debug(
+ "Checking $flag...\n",
+ "Pre-check: " . ($stored || '(nil)') . "\n",
+ );
}
sub _strip_arch_flags_engine {
@@ -116,27 +115,26 @@
}
sub _postcheck {
- my ($flagsref, $flag, $verbose) = @_;
- if ($verbose) {
- print "Post-check: ", ( $flagsref->{$flag} or '(nil)' ), "\n";
- }
+ my ($conf, $flagsref, $flag) = @_;
+ my $f = $flagsref->{$flag} || '(nil)';
+ $conf->debug("Post-check: $f\n");
}
sub _strip_arch_flags {
- my ($conf, $verbose) = @_;
+ my ($conf) = @_;
my $flagsref = { map { $_ => '' } @{ $defaults{problem_flags} } };
- print "\nStripping -arch flags due to Apple multi-architecture build problems:\n" if $verbose;
+ $conf->debug("\nStripping -arch flags due to Apple multi-architecture build problems:\n");
for my $flag ( keys %{ $flagsref } ) {
my $stored = $conf->data->get($flag) || '';
- _precheck($flag, $stored, $verbose);
+ _precheck($conf, $flag, $stored);
$flagsref = _strip_arch_flags_engine(
$defaults{architectures}, $stored, $flagsref, $flag
);
- _postcheck($flagsref, $flag, $verbose);
+ _postcheck($conf, $flagsref, $flag);
}
return $flagsref;
}
@@ -167,12 +165,11 @@
sub _probe_for_fink {
my $conf = shift;
- my $verbose = $conf->options->get( 'verbose' );
# Per fink(8), this is location for Fink configuration file, presumably
# regardless of where Fink itself is installed.
my $fink_conf = $defaults{fink_conf};
unless (-f $fink_conf) {
- print "Fink configuration file not located\n" if $verbose;
+ $conf->debug("Fink configuration file not located\n");
return;
}
my $fink_conf_str = Parrot::BuildUtil::slurp_file($fink_conf);
@@ -185,8 +182,7 @@
last;
}
unless (defined $fink_base_dir) {
- print "Fink configuration file defective: no 'Basepath'\n"
- if $verbose;
+ $conf->debug("Fink configuration file defective: no 'Basepath'\n");
return;
}
my $fink_lib_dir = qq{$fink_base_dir/lib};
@@ -196,8 +192,7 @@
push @unlocateables, $dir unless (-d $dir);
}
if (@unlocateables) {
- print "Could not locate Fink directories: @unlocateables\n"
- if $verbose;
+ $conf->debug("Could not locate Fink directories: @unlocateables\n");
return;
}
else {
@@ -212,7 +207,6 @@
sub _probe_for_macports {
my $conf = shift;
- my $verbose = $conf->options->get( 'verbose' );
my $ports_base_dir = $defaults{ports_base_dir};
my $ports_lib_dir = qq{$ports_base_dir/lib};
my $ports_include_dir = qq{$ports_base_dir/include};
@@ -221,8 +215,7 @@
push @unlocateables, $dir unless (-d $dir);
}
if (@unlocateables) {
- print "Could not locate Macports directories: @unlocateables\n"
- if $verbose;
+ $conf->debug("Could not locate Macports directories: @unlocateables\n");
return;
}
else {
@@ -239,7 +232,6 @@
my ($conf, $flagsref, $library) = @_;
my $no_library_option = "darwin_no_$library";
my $title = ucfirst(lc($library));
- my $verbose = $conf->options->get( 'verbose' );
unless ($conf->options->get( $no_library_option ) ) {
my $addl_flags_ref;
if ($library eq 'fink') {
@@ -248,14 +240,14 @@
if ($library eq 'macports') {
$addl_flags_ref = _probe_for_macports($conf);
}
- my $rv = _add_to_flags( $addl_flags_ref, $flagsref, $title, $verbose );
+ my $rv = _add_to_flags( $conf, $addl_flags_ref, $flagsref, $title );
return $rv;
}
return;
}
sub _add_to_flags {
- my ( $addl_flags_ref, $flagsref, $title, $verbose ) = @_;
+ my ( $conf, $addl_flags_ref, $flagsref, $title ) = @_;
if ( defined $addl_flags_ref ) {
foreach my $addl ( keys %{ $addl_flags_ref } ) {
my %seen;
@@ -266,10 +258,10 @@
$flagsref->{$addl} .= " $addl_flags_ref->{$addl}"
unless $seen{ $addl_flags_ref->{$addl} };
}
- print "Probe for $title successful\n" if $verbose;
+ $conf->debug("Probe for $title successful\n");
}
else {
- print "Probe for $title unsuccessful\n" if $verbose;
+ $conf->debug("Probe for $title unsuccessful\n");
}
return 1;
}
Modified: branches/gsoc_threads/config/init/hints/linux.pm
==============================================================================
--- branches/gsoc_threads/config/init/hints/linux.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/init/hints/linux.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -15,10 +15,8 @@
my $linkflags = $conf->option_or_data('linkflags');
my $share_ext = $conf->option_or_data('share_ext');
my $version = $conf->option_or_data('VERSION');
- my $verbose;
- $verbose = $conf->options->get('verbose');
- print "\n" if $verbose;
+ $conf->debug("\n");
# should find g++ in most cases
my $link = $conf->data->get('link') || 'c++';
@@ -39,7 +37,7 @@
$ld_share_flags = ' -shared -g -pipe -fexceptions -fPIC';
$cc_shared .= ' -fPIC';
- $ccflags = _handle_icc_ccflags($ccflags, $verbose);
+ $ccflags = _handle_icc_ccflags($conf, $ccflags);
}
elsif ( $cc =~ /suncc/ ) {
@@ -96,7 +94,7 @@
}
sub _handle_icc_ccflags {
- my ($ccflags, $verbose) = @_;
+ my ($conf, $ccflags) = @_;
# enable correct floating point behavior
# which is *not* the default behavior. ahem.
@@ -106,7 +104,7 @@
# for negative zero without this.
$ccflags .= ' -fp-model source';
- $verbose and print " ccflags: $ccflags\n";
+ $conf->debug(" ccflags: $ccflags\n");
return $ccflags;
}
Modified: branches/gsoc_threads/config/init/optimize.pm
==============================================================================
--- branches/gsoc_threads/config/init/optimize.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/init/optimize.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -27,16 +27,12 @@
};
}
-our $verbose;
-
sub runstep {
my ( $self, $conf ) = @_;
- $verbose = $conf->options->get( 'verbose' );
- print "\n" if $verbose;
+ $conf->debug("\n");
- print "(optimization options: init::optimize)\n"
- if $verbose;
+ $conf->debug("(optimization options: init::optimize)\n");
# A plain --optimize means use perl5's $Config{optimize}. If an argument
# is given, however, use that instead.
@@ -44,7 +40,7 @@
if (! defined $optimize) {
$self->set_result('no');
- print "(none requested) " if $conf->options->get('verbose');
+ $conf->debug("(none requested) ");
return 1;
}
@@ -68,7 +64,7 @@
# save the options, however we got them.
$conf->data->set( optimize => $options );
- print "optimize options: ", $options, "\n" if $verbose;
+ $conf->debug("optimize options: ", $options, "\n");
# disable debug flags.
$conf->data->set( cc_debug => '' );
Modified: branches/gsoc_threads/config/inter/libparrot.pm
==============================================================================
--- branches/gsoc_threads/config/inter/libparrot.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/inter/libparrot.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -46,27 +46,8 @@
# Parrot can't necessarily handle a pre-existing installed shared
# libparrot.so. At this point, we don't know the actual name
# of the shared parrot library. So we try some candidates.
- my @libs = ('libparrot.so');
- my @libpaths = ('/usr/local/lib', '/usr/lib', $conf->data->get('libdir'));
- if ($^O eq 'MSWin32') {
- push @libpaths, (split /;/, $ENV{PATH});
- @libs = ('libparrot.dll', 'libparrot.lib', 'libparrot.dll.a');
- }
- if ($^O eq 'cygwin') {
- @libs = ('libparrot.dll.a');
- }
- if ($^O eq 'darwin'){
- @libs = qw/libparrot.dylib libparrot.a/;
- }
- if (defined $ENV{LD_LIBRARY_PATH}) {
- push @libpaths, (split /:/, $ENV{LD_LIBRARY_PATH});
- }
- if (defined $ENV{LD_RUN_PATH}) {
- push @libpaths, (split /:/, $ENV{LD_RUN_PATH});
- }
- if (defined $ENV{DYLD_LIBRARY_PATH}) {
- push @libpaths, (split /:/, $ENV{DYLD_LIBRARY_PATH});
- }
+ my @libs = get_libs();
+ my @libpaths = get_libpaths($conf);
foreach my $f (@libs) {
foreach my $d (@libpaths) {
my $oldversion = File::Spec->catfile($d, $f);
@@ -164,6 +145,38 @@
return 1;
}
+sub get_libs {
+ my @libs = ('libparrot.so');
+ if ($^O eq 'MSWin32') {
+ @libs = ('libparrot.dll', 'libparrot.lib', 'libparrot.dll.a');
+ }
+ if ($^O eq 'cygwin') {
+ @libs = ('libparrot.dll.a');
+ }
+ if ($^O eq 'darwin'){
+ @libs = qw/libparrot.dylib libparrot.a/;
+ }
+ return @libs;
+}
+
+sub get_libpaths {
+ my $conf = shift;
+ my @libpaths = ('/usr/local/lib', '/usr/lib', $conf->data->get('libdir'));
+ if ($^O eq 'MSWin32') {
+ push @libpaths, (split /;/, $ENV{PATH});
+ }
+ if (defined $ENV{LD_LIBRARY_PATH}) {
+ push @libpaths, (split /:/, $ENV{LD_LIBRARY_PATH});
+ }
+ if (defined $ENV{LD_RUN_PATH}) {
+ push @libpaths, (split /:/, $ENV{LD_RUN_PATH});
+ }
+ if (defined $ENV{DYLD_LIBRARY_PATH}) {
+ push @libpaths, (split /:/, $ENV{DYLD_LIBRARY_PATH});
+ }
+ return @libpaths
+}
+
1;
# Local Variables:
Modified: branches/gsoc_threads/config/inter/progs.pm
==============================================================================
--- branches/gsoc_threads/config/inter/progs.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/config/inter/progs.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -100,7 +100,7 @@
if $ask;
$conf->data->set( ccflags => $ccflags );
- $conf->options->get('verbose') and print "\nccflags: $ccflags\n";
+ $conf->debug("\nccflags: $ccflags\n");
$linkflags = $conf->data->get('linkflags');
$linkflags =~ s/-libpath:\S+//g; # TT #854: No idea why.
Modified: branches/gsoc_threads/docs/book/draft/chXX_hlls.pod
==============================================================================
--- branches/gsoc_threads/docs/book/draft/chXX_hlls.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/book/draft/chXX_hlls.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -126,12 +126,15 @@
=begin PIR
+ .include 'stdio.pasm'
+
.sub main
- $P0 = getstdin
+ $P0 = getinterp
+ $P0 = $P0.'stdhandle'(.PIO_STDIN_FILENO)
$P1 = compreg 'PIR'
loop_top:
- $S0 = readline $P0
+ $S0 = $P0.'readline'()
$S0 = ".sub '' :anon\n" . $S0
$S0 = $S0 . "\n.end\n"
$P2 = $P1($S0)
Modified: branches/gsoc_threads/docs/book/pir/ch04_variables.pod
==============================================================================
--- branches/gsoc_threads/docs/book/pir/ch04_variables.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/book/pir/ch04_variables.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -133,12 +133,16 @@
C<vers>X<vers opcode> (versine). All angle arguments for the X<trigonometric
opcodes> trigonometric opcodes are in radians:
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'trans_ops'
+
+ # ...
$N0 = sin $N1
$N0 = exp 2
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
The majority of the floating-point operations have a single argument and a
single result. The arguments can generally be either an integer or number, but
@@ -167,14 +171,18 @@
The C<or>X<or opcode> opcode returns the first argument if
it's true and the second argument otherwise:
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'bit_ops'
+
+ # ...
$I0 = or 1, 0 # returns 1
$I0 = or 0, 2 # returns 2
$P0 = or $P1, $P2
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID[
Both C<and> and C<or> are short-circuiting ops. If they can determine what
value to return from the first argument, they'll never evaluate the second.
@@ -210,30 +218,42 @@
value that is the logical AND, OR, or XOR of each bit in the source arguments.
They each take two arguments.
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'bit_ops'
+
+ # ...
$I0 = bor $I1, $I2
$P0 = bxor $P1, $I2
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
C<band>, C<bor>, and C<bxor> also have variants that modify the result
in place.
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'bit_ops'
+
+ # ...
$I0 = band $I1
$P0 = bor $P1
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
C<bnot>X<bnot opcode> is the logical NOT of each bit in the source argument.
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'bit_ops'
+
+ # ...
$I0 = bnot $I1
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
X<shl opcode>
X<shr opcode>
@@ -241,13 +261,17 @@
The logical and arithmetic shift operations shift their values by a specified
number of bits:
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'bit_ops'
+
+ # ...
$I0 = shl $I1, $I2 # shift $I1 left by count $I2
$I0 = shr $I1, $I2 # arithmetic shift right
$P0 = lsr $P1, $P2 # logical shift right
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
=head2 Working with Strings
@@ -889,14 +913,18 @@
operation on each byte of the strings to produce the result string.
Remember that in-place string operations are no longer available.
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'bit_ops'
+
+ # ...
$P0 = bors $P1
$P0 = bands $P1
$S0 = bors $S1, $S2
$P0 = bxors $P1, $S2
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
The bitwise string opcodes produce meaningful results only when used with
simple ASCII strings, because Parrot performs bitwise operations per byte.
Modified: branches/gsoc_threads/docs/book/pir/ch08_io.pod
==============================================================================
--- branches/gsoc_threads/docs/book/pir/ch08_io.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/book/pir/ch08_io.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -12,24 +12,32 @@
The C<open>X<open opcode> opcode opens a new filehandle. It takes a
string argument, which is the path to the file:
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'io_ops'
+
+ # ...
$P0 = open 'my/file/name.txt'
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
By default, it opens the filehandle as read-only, but an optional second string
argument can specify the mode for the file. The modes are C<r> for read, C<w>
for write, C<a> for append, and C<p> for pipe:N<These are the same as the C
language read-modes, so may be familiar.>
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'io_ops'
+
+ # ...
$P0 = open 'my/file/name.txt', 'a'
$P0 = open 'myfile.txt', 'r'
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
You can combine modes; a handle that can read and write uses the mode string
C<rw>. A handle that can read and write but will not overwrite the existing
@@ -42,11 +50,15 @@
input, standard output, or standard error filehandles, though you can
recreate them.>
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'io_ops'
+
+ # ...
close $P0
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
The C<print>X<print opcode> opcode prints a string argument or the
string form of an integer, number, or PMC to a filehandle:
@@ -71,13 +83,19 @@
mentioning is the C<printerr>X<printerr opcode> opcode, which prints an
argument to the standard error instead of standard output:
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
say 'Turnip'
+ # ...
+
+ .loadlib 'io_ops'
+
+ # ...
+
printerr 'Blancmange'
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
The C<read>X<read opcode> and C<readline>X<readline opcode> opcodes read
values from a filehandle. C<read> takes an integer value and returns a
@@ -85,44 +103,58 @@
of input from a filehandle and returns the string without the trailing
newline:
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'io_ops'
$S0 = read $P0, 10
$S0 = readline $P0
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
The C<read> opcode has a one-argument variant that reads from standard input:
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
- $S0 = read 10
+ .loadlib 'io_ops'
-=end PIR_FRAGMENT
+ # ...
+
+ $S0 = read 10
+
+=end PIR_FRAGMENT_INVALID
The C<getstdin>X<getstdin opcode>, C<getstdout>X<getstdout opcode>, and
C<getstderr>X<getstderr opcode> opcodes fetch the filehandle objects for
the standard streams: standard input, standard output, and standard
error:
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'io_ops'
+
+ # ...
$P0 = getstdin # Standard input handle
$P1 = getstdout # Standard output handle
$P2 = getstderr # Standard error handle
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
Once you have the filehandle for one of the standard streams, you can use it
just like any other filehandle object:
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'io_ops'
+
+ # ...
$P0 = getstdout
print $P0, 'hello'
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
This following example reads data from the file F<myfile.txt> one line at a
time using the C<readline> opcode. As it loops over the lines of the file, it
@@ -131,6 +163,8 @@
=begin PIR
+ .loadlib 'io_ops'
+
.sub 'main'
$P0 = getstdout
$P1 = open 'myfile.txt', 'r'
Modified: branches/gsoc_threads/docs/compiler_faq.pod
==============================================================================
--- branches/gsoc_threads/docs/compiler_faq.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/compiler_faq.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -526,7 +526,9 @@
or with the class object:
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+
+ .loadlib 'io_ops'
$P1 = get_class 'Dog' # find the 'Dog' class
unless null $P1 goto have_dog_class
@@ -535,7 +537,7 @@
have_dog_class:
new $P0, $P1 # creates a Dog object and stores it in register $P0
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
The chief difference is that using a string constant will produce the
specific error "Class 'Dog' not found" if that happens to be the case;
Modified: branches/gsoc_threads/docs/parrotbyte.pod
==============================================================================
--- branches/gsoc_threads/docs/parrotbyte.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/parrotbyte.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -166,10 +166,7 @@
| label offset |
+----------+----------+----------+----------+
-Fixup type B<0>, known as enum_fixup_label, has a label symbol and an offset
-into the bytecode.
-
-Fixup type B<1>, known as enum_fixup_sub, has a label symbol that is the name
+Fixup type B<enum_fixup_sub>, has a label symbol that is the name
of the "sub" and an offset into the constant table, referencing a Sub, Closure
or Coroutine PMC.
Modified: branches/gsoc_threads/docs/parrothist.pod
==============================================================================
--- branches/gsoc_threads/docs/parrothist.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/parrothist.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -104,7 +104,7 @@
chromatic 2.0.0 * 2010-Jan-19 "Inevitable"
darbelo 2.1.0 2010-Feb-16 "As Scheduled"
- coke 2.1.1 2010-Feb-19
+ coke 2.1.1 2010-Feb-19 (bugfix release)
cotto 2.2.0 2010-Mar-16 "Like Clockwork"
Gerd 2.3.0 * 2010-Apr-20 "Samoan Lory"
Modified: branches/gsoc_threads/docs/pdds/draft/pdd31_hll.pod
==============================================================================
--- branches/gsoc_threads/docs/pdds/draft/pdd31_hll.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/pdds/draft/pdd31_hll.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -77,11 +77,11 @@
=item C<eval>
- $P0 = compiler.'eval'(source [, options :named :slurpy])
+ $P0 = compiler.'eval'(source [, args :slurpy] [, options :named :slurpy])
Compile and evaluate (execute) the code given by C<source>
-according to C<options>. The available options are generally
-the same as for the C<compile> method above; in particular,
+with C<args> and according to C<options>. The available options
+are generally the same as for the C<compile> method above; in particular,
the C<outer_ctx> option can be used to specify the outer lexical
context for the evaluated source.
Modified: branches/gsoc_threads/docs/pdds/pdd13_bytecode.pod
==============================================================================
--- branches/gsoc_threads/docs/pdds/pdd13_bytecode.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/pdds/pdd13_bytecode.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -389,7 +389,9 @@
| 5 | n | String data with trailing zero padding as required. |
+--------+--------+--------------------------------------------------------+
-Note: The encoding field is not implemented yet and is set to 0.
+Note: The encoding and charset are currently packed together with the Flags,
+using an unique field of Length 1.
+
=item * PMC Constants
Modified: branches/gsoc_threads/docs/pdds/pdd20_lexical_vars.pod
==============================================================================
--- branches/gsoc_threads/docs/pdds/pdd20_lexical_vars.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/pdds/pdd20_lexical_vars.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -14,7 +14,7 @@
=head2 Synopsis
-=begin PIR
+=begin PIR_INVALID
.sub 'foo'
.lex "$a", $P0
@@ -52,7 +52,7 @@
$P0 = find_lex "x" # SUCCEEDS
.end
-=end PIR
+=end PIR_INVALID
=head2 Description
Modified: branches/gsoc_threads/docs/pdds/pdd21_namespaces.pod
==============================================================================
--- branches/gsoc_threads/docs/pdds/pdd21_namespaces.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/pdds/pdd21_namespaces.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -585,7 +585,7 @@
should map roughly to this PIR:
-=begin PIR
+=begin PIR_INVALID
.HLL "Perl5"
.loadlib "perl5_group"
@@ -596,7 +596,7 @@
set_global "$x", $P0
.end
-=end PIR
+=end PIR_INVALID
In this case, the C<main> sub would be tied to Perl 5 by the C<.HLL>
directive, so a Perl 5 namespace would be created.
@@ -613,7 +613,7 @@
these cases, Parrot should create the namespace based on the HLL of the PIR
subroutine that calls the store function.
-=begin PIR
+=begin PIR_INVALID
.HLL "Perl5"
.loadlib "perl5_group"
@@ -635,7 +635,7 @@
set_global $P2, $S0, $P3
.end
-=end PIR
+=end PIR_INVALID
In this case, C<set_global> should see that it was called from "main",
which is in a Perl 5 namespace, so it will create the "Foo" namespace as
Modified: branches/gsoc_threads/docs/pdds/pdd22_io.pod
==============================================================================
--- branches/gsoc_threads/docs/pdds/pdd22_io.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/pdds/pdd22_io.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -464,6 +464,8 @@
=begin PIR_FRAGMENT_INVALID
+ .loadlib 'io_ops'
+ ...
$P0 = open $S1
$P0 = open $S1, $S2
$P0 = open $P1
@@ -488,6 +490,8 @@
=begin PIR_FRAGMENT_INVALID
+ .loadlib 'io_ops'
+ ...
close $P0
close $P0, $P1
@@ -554,14 +558,16 @@
=item C<printerr>
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+ .loadlib 'io_ops'
+ ...
printerr $I0
printerr $N0
printerr $S0
printerr $P0
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
Writes an integer, float, string, or PMC value to standard error.
@@ -578,6 +584,8 @@
=begin PIR_FRAGMENT_INVALID
+ .loadlib 'io_ops'
+ ...
$S0 = read $I1
$S0 = read $P1, $I2
$P0 = read $P1, $I2, $P3
@@ -598,6 +606,8 @@
=begin PIR_FRAGMENT_INVALID
+ .loadlib 'io_ops'
+ ...
$S0 = readline $P1
$P0 = readline $P1, $P2
@@ -613,12 +623,14 @@
=item C<peek>
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+ .loadlib 'io_ops'
+ ...
$S0 = peek
$S0 = peek $P1
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
[C<peek>, C<seek>, C<tell>, and C<poll> are all candidates for moving from
opcodes to FileHandle object methods.]
@@ -641,6 +653,8 @@
=begin PIR_FRAGMENT_INVALID
+ .loadlib 'io_ops'
+ ...
seek $P0, $I1, $I2
seek $P0, $I1, $I2, $I3
seek $P0, $I1, $I2, $P3
@@ -664,6 +678,8 @@
=begin PIR_FRAGMENT_INVALID
+ .loadlib 'io_ops'
+ ...
$I0 = tell $P1
($I0, $I1) = tell $P2
Modified: branches/gsoc_threads/docs/pdds/pdd28_strings.pod
==============================================================================
--- branches/gsoc_threads/docs/pdds/pdd28_strings.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/pdds/pdd28_strings.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -161,7 +161,7 @@
code must always assume a variable-byte encoding, and use expensive
lookaheads. The cost is incurred on every operation, though the particular
string operated on might not contain combining characters. It's particularly
-noticeable in parsing and regular expression matches, where backtracking
+noticeable in parsing and regular expres699sion matches, where backtracking
operations may re-traverse the characters of a simple string hundreds of
times.
@@ -296,7 +296,7 @@
may be variably sized.}}
=item hashval
-
+699
A cache of the hash value of the string, for rapid lookups when the string is
used as a hash key.
Modified: branches/gsoc_threads/docs/running.pod
==============================================================================
--- branches/gsoc_threads/docs/running.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/running.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -169,6 +169,11 @@
Turn on interpreter debug flag. See C<parrot --help-debug> for available flag
bits.
+=item --hash-seed <hexnum>
+
+Sets the hash seed to the provided value. Only useful for debugging
+intermittent failures, and harmful in production.
+
=item --gc-debug
Turn on GC (Garbage Collection) debugging. This imposes some stress on the GC
Modified: branches/gsoc_threads/docs/tests.pod
==============================================================================
--- branches/gsoc_threads/docs/tests.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/tests.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -111,7 +111,7 @@
Parrot_run_native(interp, the_test);
printf("done\n");
- fflush(stdout);
+ fflush(stdout);
return 0;
}
@@ -190,10 +190,9 @@
The files in F<t/postconfigure> are tests for build system. The build tools
tests are intended to be run after someone has made changes in modules such as
-F<lib/Parrot/Pmc2cUtils/>, F<Ops2cUtils/> and F<Ops2pmutils/>. They're set up
-to be run after F<Configure.pl> has completed but before make has been invoked.
-(In fact, they will generate errors if make has completed.) You can run them
-with any of the following:
+F<lib/Parrot/Pmc2cUtils/>. They're set up to be run after F<Configure.pl> has
+completed but before make has been invoked. (In fact, they will generate
+errors if make has completed.) You can run them with any of the following:
perl Configure.pl --test
perl Configure.pl --test=build
Modified: branches/gsoc_threads/docs/user/pir/intro.pod
==============================================================================
--- branches/gsoc_threads/docs/user/pir/intro.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/docs/user/pir/intro.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -410,22 +410,26 @@
pass it a string register or variable where you wish the characters
read to be placed and the number of characters you wish to read:
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+ .loadlib 'io_ops'
+ ...
read $S1, 100
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
This line will read 100 characters (or until the end of the line) and
put the read string into C<$S1>. In case you need a number, just
assign the string to the correct register type:
-=begin PIR_FRAGMENT
+=begin PIR_FRAGMENT_INVALID
+ .loadlib 'io_ops'
read $S1, 100
+ ...
$I1 = $S1
-=end PIR_FRAGMENT
+=end PIR_FRAGMENT_INVALID
With the PIR syntax shown in this article you should be able to start
writing simple programs. Next article we will look into available
Modified: branches/gsoc_threads/editor/pir-mode.el
==============================================================================
--- branches/gsoc_threads/editor/pir-mode.el Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/editor/pir-mode.el Thu Jun 10 21:09:12 2010 (r47545)
@@ -66,7 +66,7 @@
:type 'boolean
:group 'pir)
-(defcustom pir-basic-indent 8
+(defcustom pir-basic-indent 4
"*Extra indentation applied to statements in PIR block structures."
:type 'integer
:group 'pir)
Modified: branches/gsoc_threads/examples/benchmarks/primes.pasm
==============================================================================
--- branches/gsoc_threads/examples/benchmarks/primes.pasm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/benchmarks/primes.pasm Thu Jun 10 21:09:12 2010 (r47545)
@@ -42,6 +42,7 @@
div P4, P1, 2
# Check if P3 is a factor of P1
LOOP:
+.loadlib 'math_ops' # cmod is a dynop
cmod P5, P1, P3
if P5, OK
Modified: branches/gsoc_threads/examples/benchmarks/primes_i.pasm
==============================================================================
--- branches/gsoc_threads/examples/benchmarks/primes_i.pasm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/benchmarks/primes_i.pasm Thu Jun 10 21:09:12 2010 (r47545)
@@ -30,6 +30,7 @@
set I3, 2
div I4, I1, 2
LOOP: # Check if I3 is a factor of I1
+.loadlib 'math_ops' # cmod is a dynop
cmod I5, I1, I3
if I5, OK
# We've found a factor, so it can't be a prime and
Modified: branches/gsoc_threads/examples/embed/cotorra.c
==============================================================================
--- branches/gsoc_threads/examples/embed/cotorra.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/embed/cotorra.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -227,18 +227,18 @@
if (stname) {
Parrot_PMC rootns = Parrot_get_root_namespace(interp);
Parrot_String parrotname = create_string(interp, "parrot");
- Parrot_PMC parrotns = Parrot_PMC_get_pmc_strkey(interp, rootns, parrotname);
+ Parrot_PMC parrotns = Parrot_PMC_get_pmc_keyed_str(interp, rootns, parrotname);
Parrot_String name = create_string(interp, stname);
- Parrot_PMC start = Parrot_PMC_get_pmc_strkey(interp, parrotns, name);
+ Parrot_PMC start = Parrot_PMC_get_pmc_keyed_str(interp, parrotns, name);
if (Parrot_pmc_is_null(interp, start))
fail("start sub not found");
if (i < argc) {
int pos;
Parrot_PMC arg = Parrot_PMC_new(interp,
Parrot_PMC_typenum(interp, "FixedStringArray"));
- Parrot_PMC_set_intval(interp, arg, argc - i);
+ Parrot_PMC_set_integer_native(interp, arg, argc - i);
for (pos = 0; i < argc; ++i, ++pos) {
- Parrot_PMC_set_string_intkey(interp, arg, pos, create_string(interp, argv[i]));
+ Parrot_PMC_set_string_keyed_int(interp, arg, pos, create_string(interp, argv[i]));
}
Parrot_ext_call(interp, start, "P->", arg);
}
Modified: branches/gsoc_threads/examples/io/get.pir
==============================================================================
--- branches/gsoc_threads/examples/io/get.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/io/get.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -21,12 +21,13 @@
.sub 'main' :main
.param pmc args
- load_bytecode 'LWP.pir'
+ load_bytecode 'LWP/UserAgent.pir'
$S0 = shift args
.local string url
url = shift args
.local pmc ua, response
ua = new ['LWP';'UserAgent']
+ ua.'env_proxy'()
ua.'show_progress'(1)
response = ua.'get'(url, 'close' :named('Connection'))
$S0 = response.'content'()
Modified: branches/gsoc_threads/examples/io/http.pir
==============================================================================
--- branches/gsoc_threads/examples/io/http.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/io/http.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -53,7 +53,7 @@
print "Socket error\n"
end
END:
- close sock
+ sock.'close'()
end
.end
Modified: branches/gsoc_threads/examples/io/httpd.pir
==============================================================================
--- branches/gsoc_threads/examples/io/httpd.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/io/httpd.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -95,6 +95,9 @@
.include 'except_types.pasm'
.include 'socket.pasm'
+.loadlib 'io_ops'
+.loadlib 'sys_ops'
+
.sub main :main
.local pmc listener, work, fp
.local pmc fp # read requested files from disk
Modified: branches/gsoc_threads/examples/io/post.pir
==============================================================================
--- branches/gsoc_threads/examples/io/post.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/io/post.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -30,10 +30,11 @@
set $P0, 1
$P0[0] = 'parrot_test_run.tar.gz'
push contents, $P0
- load_bytecode 'LWP.pir'
+ load_bytecode 'LWP/UserAgent.pir'
.const string url = 'http://smolder.plusthree.com/app/projects/process_add_report/8'
.local pmc ua, response
ua = new ['LWP';'UserAgent']
+ ua.'env_proxy'()
ua.'show_progress'(1)
response = ua.'post'(url, contents :flat, 'form-data' :named('Content-Type'), 'close' :named('Connection'))
$I0 = response.'code'()
Modified: branches/gsoc_threads/examples/json/postalcodes.pir
==============================================================================
--- branches/gsoc_threads/examples/json/postalcodes.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/json/postalcodes.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -18,6 +18,7 @@
=cut
.include 'socket.pasm'
+.loadlib 'io_ops'
.sub _main :main
.param pmc argv
Modified: branches/gsoc_threads/examples/languages/abc/abc.pir
==============================================================================
--- branches/gsoc_threads/examples/languages/abc/abc.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/languages/abc/abc.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -56,8 +56,6 @@
.namespace [ 'abc'; 'Compiler' ]
-.loadlib 'abc_group'
-
.sub '' :anon :load :init
.local pmc abc
$P0 = get_root_global ['parrot'], 'P6metaclass'
Modified: branches/gsoc_threads/examples/languages/squaak/doc/tutorial_episode_1.pod
==============================================================================
--- branches/gsoc_threads/examples/languages/squaak/doc/tutorial_episode_1.pod Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/languages/squaak/doc/tutorial_episode_1.pod Thu Jun 10 21:09:12 2010 (r47545)
@@ -9,7 +9,7 @@
Parrot Compiler Tools. If you're interested in virtual machines, you've
probably heard of the Parrot virtual machine. Parrot is a generic virtual
machine designed for dynamic languages. This is in contrast with the Java
-virtual machine (JVM) and Microsoft's Common Language Runtime (CLR), both of
+virtual machine (JVM) and Microsoft's B<C>ommon B<L>anguage B<R>untime (CLR), both of
which were designed to run static languages. Both the JVM and Microsoft
(through the Dynamic Language Runtime -- DLR) are adding support for dynamic
languages, but their primary focus is still static languages.
@@ -17,7 +17,7 @@
=head2 High Level Languages
The main purpose of a virtual machine is to run programs. These programs are
-typically written in some High Level Language (HLL). Some well-known dynamic
+typically written in some B<H>igh B<L>evel B<L>anguage (HLL). Some well-known dynamic
languages (sometimes referred to as scripting languages) are Lua, Perl, PHP,
Python, Ruby, and Tcl. Parrot is designed to be able to run all these languages.
Each language that Parrot hosts, needs a compiler to parse the syntax of the
@@ -34,7 +34,7 @@
=head2 The Parrot Compiler Toolkit
-Enter the Parrot Compiler Toolkit (PCT). In order to make Parrot an interesting
+Enter the B<P>arrot B<C>ompiler B<T>oolkit (PCT). In order to make Parrot an interesting
target for language developers, the process of constructing a compiler should be
supported by the right tools. Just as any construction task becomes much easier
if you have the right tools (you wouldn't build a house using only your bare
@@ -99,13 +99,13 @@
=over 4
-=item Parrot Grammar Engine (PGE).
+=item B<P>arrot B<G>rammar B<E>ngine (PGE).
The PGE is an advanced engine for regular expressions. Besides regexes as found
in Perl 5, it can also be used to define language grammars, using Perl 6 syntax.
(Check the references for the specification.)
-=item Parrot Abstract Syntax Tree (PAST).
+=item B<P>arrot B<A>bstract B<S>yntax B<T>ree (PAST).
The PAST nodes are a set of classes defining generic abstract syntax tree nodes
that represent common language constructs.
@@ -114,7 +114,7 @@
This class is the compiler driver for any PCT-based compiler.
-=item Not Quite Perl (6) (NQP).
+=item B<N>ot B<Q>uite B<P>erl (6) (NQP).
NQP is a lightweight language inspired by Perl 6 and can be used to write the
methods that must be executed during the parsing phase, just as you can write
@@ -140,18 +140,18 @@
$ perl tools/dev/mk_language_shell.pl Squaak languages/squaak
(Note: if you're on Windows, you should use backslashes.) This will generate the
-files in a directory languages/squaak, and use the name Squaak as the language's
-name. The last config step is to create the Makefile for your new language:
+files in a directory F<languages/squaak>, and use the name Squaak as the language's
+name.
- $ perl Configure.pl --languages=squaak
+After this, go to the directory F<languages/squaak> and type:
-After this, go to the directory languages/squaak and type:
-
- $ make test
+ $ parrot setup.pir test
This will compile the generated files and run the test suite. If you want more
information on what files are being generated, please check out the references
-at the end of this episode.
+at the end of this episode or read the documentation included in the file
+F<mk_language_shell.pl>. For that you can use an installed parrot executable
+from your distribution or one you have just compiled.
Note that we didn't write a single line of code, and already we have the basic
infrastructure in place to get us started. Of course, the generated compiler
@@ -163,7 +163,7 @@
say "Squaak!";
-Save the file (for instance as test.sq) and type:
+Save it the as file F<test.sq> and type:
$ ../../parrot squaak.pbc test.sq
Modified: branches/gsoc_threads/examples/languages/squaak/squaak.pir
==============================================================================
--- branches/gsoc_threads/examples/languages/squaak/squaak.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/languages/squaak/squaak.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -26,8 +26,6 @@
.namespace [ 'Squaak';'Compiler' ]
-.loadlib 'squaak_group'
-
.sub 'onload' :anon :load :init
load_bytecode 'PCT.pbc'
Modified: branches/gsoc_threads/examples/languages/squaak/src/builtins/say.pir
==============================================================================
--- branches/gsoc_threads/examples/languages/squaak/src/builtins/say.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/languages/squaak/src/builtins/say.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -24,9 +24,13 @@
.return ()
.end
+.include 'stdio.pasm'
+
.sub 'read'
- $P0 = getstdin
- $S0 = readline $P0
+ .local pmc stdin
+ $P0 = getinterp
+ stdin = $P0.'stdhandle'(.PIO_STDIN_FILENO)
+ $S0 = stdin.'readline'()
.return ($S0)
.end
Modified: branches/gsoc_threads/examples/languages/squaak/t/00-sanity.t
==============================================================================
--- branches/gsoc_threads/examples/languages/squaak/t/00-sanity.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/languages/squaak/t/00-sanity.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -88,7 +88,6 @@
# for-statement
-var i = 1
for var i = 18, 20 do
print("ok ", i)
@@ -104,11 +103,11 @@
#end
-i = 0
-while i < 5 do
+var j = 0
+while j < 5 do
- print("ok ", i + g)
- i = i + 1
+ print("ok ", j + g)
+ j = j + 1
end
Modified: branches/gsoc_threads/examples/library/md5sum.pir
==============================================================================
--- branches/gsoc_threads/examples/library/md5sum.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/library/md5sum.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -24,6 +24,8 @@
=cut
+.loadlib 'os' # OS object
+
.sub _main :main
.param pmc args
@@ -34,9 +36,9 @@
$I0 = $I0 - 1
if $I0 > 0 goto has_args
$S0 = args[0]
- printerr "(parrot) "
- printerr $S0
- printerr " filename [filename ...]\n"
+ print "(parrot) "
+ print $S0
+ print " filename [filename ...]\n"
exit 1
has_args:
@@ -50,7 +52,10 @@
file = args[$I1]
.include "stat.pasm"
# Get size of file
- size = stat file, .STAT_FILESIZE
+ .local pmc os, stat_buf
+ os = new ['OS']
+ stat_buf = os.'stat'(file)
+ size = stat_buf[7]
.local pmc pio, cl
cl = new 'FileHandle'
# slurp the file into memory
@@ -60,8 +65,12 @@
$I2 = length contents
if $I2 == size goto size_ok
- printerr file
- printerr ": size mismatch\n"
+ print file
+ print ": size mismatch ("
+ print size
+ print " vs "
+ print $I2
+ print ")\n"
goto iter_cont
size_ok:
Modified: branches/gsoc_threads/examples/library/ncurses_life.pir
==============================================================================
--- branches/gsoc_threads/examples/library/ncurses_life.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/library/ncurses_life.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -56,6 +56,8 @@
=cut
+.loadlib 'io_ops'
+
.sub _MAIN :main
.param pmc argv
# the command line
Modified: branches/gsoc_threads/examples/nci/xlibtest.pir
==============================================================================
--- branches/gsoc_threads/examples/nci/xlibtest.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/nci/xlibtest.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -277,13 +277,14 @@
push_eh newfile
.local pmc handle
- handle = open filename, 'r'
+ handle = new 'FileHandle'
+ handle.'open'(filename, 'r')
pop_eh
push_eh failed
.local string jsonfile
jsonfile = handle.'readall'()
- close handle
+ handle.'close'()
load_language 'data_json'
.local pmc json, jsonobject, jsondata
@@ -322,10 +323,11 @@
.local string jsonfile
jsonfile = _json(jsondata)
.local pmc handle
- handle = open filename, 'w'
+ handle = new 'FileHandle'
+ handle.'open'(filename, 'w')
print handle, jsonfile
print handle, "\n"
- close handle
+ handle.'close'()
.return()
failed:
.local pmc exception
Modified: branches/gsoc_threads/examples/pasm/cat.pasm
==============================================================================
--- branches/gsoc_threads/examples/pasm/cat.pasm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pasm/cat.pasm Thu Jun 10 21:09:12 2010 (r47545)
@@ -19,6 +19,8 @@
=cut
+.loadlib 'io_ops'
+
getstdin P0
getstdout P1
REDO:
Modified: branches/gsoc_threads/examples/pge/demo.pir
==============================================================================
--- branches/gsoc_threads/examples/pge/demo.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pge/demo.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -2,6 +2,7 @@
# $Id$
.include "errors.pasm"
+.include 'stdio.pasm'
.sub _main
.local string x
.local string pattern
@@ -34,8 +35,9 @@
read_loop:
print "\ninput \"regex <pattern>\", \"glob <pattern>\", \"save <name>\",\n"
print "target string, \"pir\", \"exp\", \"trace\", \"next\"\n"
- getstdin stdin
- readline x, stdin
+ $P0 = getinterp
+ stdin = $P0.'stdhandle'(.PIO_STDIN_FILENO)
+ x = stdin.'readline'()
length $I0, x
if $I0 < 1 goto end_demo
$I0 = index x, " "
Modified: branches/gsoc_threads/examples/pir/befunge/befunge.pir
==============================================================================
--- branches/gsoc_threads/examples/pir/befunge/befunge.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pir/befunge/befunge.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,6 +1,9 @@
# Copyright (C) 2002-2009, Parrot Foundation.
# $Id$
+.loadlib 'io_ops'
+
+.include "stdio.pasm"
.include "debug.pir"
.include "flow.pir"
.include "io.pir"
@@ -15,7 +18,8 @@
# disable buffering on stdout
.local pmc stdout
- getstdout stdout
+ $P0 = getinterp
+ stdout = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
stdout.'buffer_type'("unbuffered")
# parsing argv
Modified: branches/gsoc_threads/examples/pir/befunge/debug.pir
==============================================================================
--- branches/gsoc_threads/examples/pir/befunge/debug.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pir/befunge/debug.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -179,8 +179,9 @@
_debug__print_status()
print "bef> "
- $P0 = getstdin
- $S0 = readline $P0
+ $P0 = getinterp
+ $P0 = $P0.'stdhandle'(.PIO_STDIN_FILENO)
+ $S0 = $P0.'readline'()
$S0 = chopn $S0, 1
$I0 = length $S0
Modified: branches/gsoc_threads/examples/pir/befunge/io.pir
==============================================================================
--- branches/gsoc_threads/examples/pir/befunge/io.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pir/befunge/io.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -39,8 +39,9 @@
$I0 = length $S0
if $I0 > 0 goto _IO__INPUT_CHAR__SUBSTR
- $P1 = getstdin
- $S0 = readline $P1
+ $P1 = getinterp
+ $P1 = $P1.'stdhandle'(.PIO_STDIN_FILENO)
+ $S0 = $P1.'readline'()
$S0 = chopn $S0, 1
_IO__INPUT_CHAR__SUBSTR:
@@ -71,8 +72,9 @@
len = length $S0
if len > 0 goto _IO__INPUT_INT__PARSE_INPUT
- $P1 = getstdin
- $S0 = readline $P1
+ $P1 = getinterp
+ $P1 = $P1.'stdhandle'(.PIO_STDIN_FILENO)
+ $S0 = $P1.'readline'()
$S0 = chopn $S0, 1
len = length $S0
Added: branches/gsoc_threads/examples/pir/coop_threads.pir
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/examples/pir/coop_threads.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -0,0 +1,169 @@
+
+
+=head1 Cooperative threads in pure PIR
+
+This file demonstrates cooperative concurrency using continuations
+on Parrot.
+
+See also
+http://www.parrot.org/content/threads-are-continuations
+
+=cut
+
+=head1 th_init
+
+First, we create an array to store unscheduled threads in. For simplicity,
+this is stored in a global.
+
+=cut
+
+.include 'interpinfo.pasm'
+
+.sub th_init
+ $P0 = new 'ResizablePMCArray'
+ set_global 'threads', $P0
+.end
+
+=head1 th_create
+
+This is the 'spawn' call. It takes a sub and schedules it to run as a
+thread.
+
+=cut
+
+.sub th_create
+ .param pmc in_sub
+ $P0 = get_global 'threads'
+ push $P0, in_sub
+.end
+
+=head1 th_resched
+
+This is the 'yield' call. When called from a running thread, it saves the
+current point in the computation as a continuation and runs the next thread.
+
+=cut
+
+.sub th_resched
+ .local pmc cur_th, next_th, ths
+ ths = get_global 'threads'
+
+ # This gets the return continuation for the currently running sub.
+ # When this continuation is invoked, it will be as if this call
+ # to th_resched just returned.
+ cur_th = interpinfo .INTERPINFO_CURRENT_CONT
+ push ths, cur_th
+
+again:
+ next_th = shift ths
+ invokecc next_th
+
+ $I0 = ths
+ if $I0 > 0 goto again
+.end
+
+=head1 th_main
+
+This starts up the thread system (after some threads have been scheduled) and makes
+sure the program doesn't exit before all the threads have run to completion.
+
+=cut
+
+.sub th_main
+ .local pmc ths
+
+again1:
+ ths = get_global 'threads'
+
+ $I0 = ths
+ if $I0 <= 0 goto done
+
+ th_resched()
+
+ goto again1
+done:
+.end
+
+=head1
+
+That's it. All we need now is some test threads and a main function to run them.
+
+=cut
+
+.sub sub1
+ say "sub1: Hallo"
+ th_resched()
+
+ say "sub1: Dance! <(\"< >\")> <(\"<"
+ th_resched()
+
+ say "sub1: Bye"
+.end
+
+.sub sub2
+ say "sub2: Hallo"
+ th_resched()
+
+ say "sub2: Dance! >\")> <(\"< >\")>"
+ th_resched()
+
+ say "sub2: Bye"
+.end
+
+.sub sub3
+ say "sub3: Good morning"
+
+ th_resched()
+
+ $I0 = 5
+ $I1 = $I0 + 3
+
+ th_resched()
+
+ print "sub3: 5 + 3 = "
+ say $I1
+
+ th_resched()
+
+ say "sub3: Is leaving."
+.end
+
+.sub main :main
+ th_init()
+
+ $P0 = get_global 'sub1'
+ th_create($P0)
+
+ $P0 = get_global 'sub3'
+ th_create($P0)
+
+ $P0 = get_global 'sub2'
+ th_create($P0)
+
+ th_main()
+
+ say "All done"
+.end
+
+=head1 Expected Output
+
+The program should (and does) produce this output:
+
+sub1: Hallo
+sub3: Good morning
+sub2: Hallo
+sub1: Dance! <("< >")> <("<
+sub2: Dance! >")> <("< >")>
+sub1: Bye
+sub3: 5 + 3 = 8
+sub2: Bye
+sub3: Is leaving.
+All done
+
+=cut
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gsoc_threads/examples/pir/io.pir
==============================================================================
--- branches/gsoc_threads/examples/pir/io.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pir/io.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -17,6 +17,8 @@
=cut
+.loadlib 'io_ops' # convenient I/O dynamic opcodes
+
.sub 'example' :main
.local string test_fn
test_fn = "tmp_example_io.tmp"
Modified: branches/gsoc_threads/examples/pir/life.pir
==============================================================================
--- branches/gsoc_threads/examples/pir/life.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pir/life.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -86,7 +86,10 @@
inc $I0
mod $I31,$I0,100
if $I31, skip
- printerr "."
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ print $P1, "."
skip:
local_branch jmpstack, generate
Modified: branches/gsoc_threads/examples/pir/make_hello_pbc.pir
==============================================================================
--- branches/gsoc_threads/examples/pir/make_hello_pbc.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pir/make_hello_pbc.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -84,9 +84,10 @@
# Now pack Packfile and save it
$S0 = pf
- $P1 = open "generated_hello.pbc", "w"
+ $P1 = new ['FileHandle']
+ $P1.'open'("generated_hello.pbc", "w")
$P1.'puts'($S0)
- close $P1
+ $P1.'close'()
# And check it!
load_bytecode 'generated_hello.pbc'
Modified: branches/gsoc_threads/examples/pir/pirric.pir
==============================================================================
--- branches/gsoc_threads/examples/pir/pirric.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pir/pirric.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -49,6 +49,10 @@
.include 'warnings.pasm'
+.loadlib 'io_ops'
+.loadlib 'debug_ops'
+.loadlib 'trans_ops'
+
#-----------------------------------------------------------------------
.sub pirric_aux_loadbytecode
Modified: branches/gsoc_threads/examples/pir/quine_ord.pir
==============================================================================
--- branches/gsoc_threads/examples/pir/quine_ord.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pir/quine_ord.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,6 +1,9 @@
# Copyright (C) 2006-2010, Parrot Foundation.
# ATT no autoexpanding svn markers please
+# XXX currently broken
+.loadlib 'io_ops'
+
.sub quine :main
.param pmc argv
Modified: branches/gsoc_threads/examples/pir/readline.pir
==============================================================================
--- branches/gsoc_threads/examples/pir/readline.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pir/readline.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -19,6 +19,7 @@
=cut
.include 'cclass.pasm'
+.loadlib 'io_ops'
.sub "example" :main
.local pmc stdin
Modified: branches/gsoc_threads/examples/pir/sudoku.pir
==============================================================================
--- branches/gsoc_threads/examples/pir/sudoku.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pir/sudoku.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -151,6 +151,9 @@
.const string VERSION="0.2.3"
+.loadlib 'bit_ops'
+.loadlib 'io_ops'
+
.sub _main :main
.param pmc argv
.local int argc
Modified: branches/gsoc_threads/examples/pir/uniq.pir
==============================================================================
--- branches/gsoc_threads/examples/pir/uniq.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/pir/uniq.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -41,6 +41,8 @@
=cut
+.loadlib 'io_ops' # convenient I/O dynamic opcodes
+
.sub "uniq" :main
.param pmc argv
Modified: branches/gsoc_threads/examples/sdl/lcd/clock.pir
==============================================================================
--- branches/gsoc_threads/examples/sdl/lcd/clock.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/sdl/lcd/clock.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -20,6 +20,8 @@
.include "tm.pasm"
.include "timer.pasm"
+.loadlib 'sys_ops'
+.loadlib 'math_ops'
=item _main
Modified: branches/gsoc_threads/examples/sdl/minesweeper/field.pir
==============================================================================
--- branches/gsoc_threads/examples/sdl/minesweeper/field.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/sdl/minesweeper/field.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -35,6 +35,7 @@
=cut
.include "iterator.pasm"
+.loadlib 'math_ops'
.namespace ["Mines::Field"]
# size of a single mine field, in pixels
Modified: branches/gsoc_threads/examples/shootout/binarytrees.pir
==============================================================================
--- branches/gsoc_threads/examples/shootout/binarytrees.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/shootout/binarytrees.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -6,6 +6,8 @@
# by Joshua Isom, modified by Leopold Toetsch
# modified by karl : default value of N=10 to match shootout output
+.loadlib 'trans_ops'
+
.sub itemcheck
.param pmc node
$I0 = exists node[0]
Modified: branches/gsoc_threads/examples/shootout/fasta.pir
==============================================================================
--- branches/gsoc_threads/examples/shootout/fasta.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/shootout/fasta.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -160,10 +160,12 @@
.sub main :main
.param pmc argv
- .local pmc stdout
+ .local pmc interp, stdout
.local int n
# stdout is linebuffered per default - make it block buffered
- stdout = getstdout
+ .include 'stdio.pasm'
+ interp = getinterp
+ stdout = interp.'stdhandle'(.PIO_STDOUT_FILENO)
stdout.'buffer_size'(40960)
$I0 = argv
if $I0 > 1 goto argsok
Modified: branches/gsoc_threads/examples/shootout/knucleotide.pir
==============================================================================
--- branches/gsoc_threads/examples/shootout/knucleotide.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/shootout/knucleotide.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,6 +1,8 @@
# Copyright (C) 2005-2010, Parrot Foundation.
# $Id$
+.loadlib 'io_ops'
+
.sub main :main
.local pmc stdin
.local string line
Modified: branches/gsoc_threads/examples/shootout/nbody.pir
==============================================================================
--- branches/gsoc_threads/examples/shootout/nbody.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/shootout/nbody.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -9,6 +9,8 @@
# speed up from 1m25 to 6s by Leopold Toetsch
# changed default value to 1000 to match shootout default (karl)
+.loadlib 'trans_ops'
+
.const int x = 0
.const int y = 1
.const int z = 2
Modified: branches/gsoc_threads/examples/shootout/partialsums-2.pir
==============================================================================
--- branches/gsoc_threads/examples/shootout/partialsums-2.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/shootout/partialsums-2.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -7,6 +7,8 @@
# By Joshua Isom
# changed default value to N=25000 (shootout test default) Karl Forner
+.loadlib 'trans_ops'
+
.sub main :main
.param pmc argv
.local int k, n
Modified: branches/gsoc_threads/examples/shootout/partialsums.pir
==============================================================================
--- branches/gsoc_threads/examples/shootout/partialsums.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/shootout/partialsums.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -7,6 +7,8 @@
# By Joshua Isom
# changed default value to N=25000 (shootout test default) Karl Forner
+.loadlib 'trans_ops'
+
.sub main :main
.param pmc argv
.local int k, n
Modified: branches/gsoc_threads/examples/shootout/regexdna.pir
==============================================================================
--- branches/gsoc_threads/examples/shootout/regexdna.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/shootout/regexdna.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -61,8 +61,11 @@
############################################
# Read in the file
beginwhile:
- chunk = read 65535
- chunklen = length chunk
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ $P1 = $P0.'stdhandle'(.PIO_STDIN_FILENO)
+ chunk = $P1.'read'(65535)
+ chunklen = length chunk
unless chunklen goto endwhile
# They don't say you have to match case insenitive...
chunk = downcase chunk
Modified: branches/gsoc_threads/examples/shootout/revcomp.pir
==============================================================================
--- branches/gsoc_threads/examples/shootout/revcomp.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/shootout/revcomp.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -35,15 +35,17 @@
.sub main :main
.local pmc stdin, stdout
.local string line, seq
- stdin = getstdin
- stdout = getstdout
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ stdin = $P0.'stdhandle'(.PIO_STDIN_FILENO)
+ stdout = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
# stdout is linebuffered per default - make it block buffered
stdout.'buffer_size'(8192)
seq = ''
beginwhile:
- line = readline stdin
+ line = stdin.'readline'()
unless line goto endwhile
$I0 = ord line
unless $I0 == 62 goto else # '>'
Modified: branches/gsoc_threads/examples/shootout/sumcol.pir
==============================================================================
--- branches/gsoc_threads/examples/shootout/sumcol.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/shootout/sumcol.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -7,17 +7,19 @@
# N.B. it is called the sum-file benchmark on the computer shootout (KF)
.sub main :main
- .local pmc stdin
+ .local pmc interp, stdin
.local string line
.local int count, tmp, linelen
- count = 0
- stdin = getstdin
+ count = 0
+ interp = getinterp
+ .include 'stdio.pasm'
+ stdin = interp.'stdhandle'(.PIO_STDIN_FILENO)
beginwhile:
- line = readline stdin
+ line = stdin.'readline'()
linelen = length line
unless linelen goto endwhile
- tmp = line
- count += tmp
+ tmp = line
+ count += tmp
goto beginwhile
endwhile:
print count
Modified: branches/gsoc_threads/examples/tge/branch/transform.pir
==============================================================================
--- branches/gsoc_threads/examples/tge/branch/transform.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/tge/branch/transform.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -105,21 +105,24 @@
$I0 = argv
if $I0 == 2 goto fromfile
- filehandle = getstdin
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ filehandle = $P0.'stdhandle'(.PIO_STDIN_FILENO)
goto grabline
fromfile:
# Read in the source file
filename = argv[1]
- filehandle = open filename, 'r'
+ filehandle = new ['FileHandle']
+ filehandle.'open'(filename, 'r')
grabline:
- $S1 = read filehandle, 65535
+ $S1 = filehandle.'read'(65535)
# $S1 = readline filehandle
# print $S1
if $I0 != 2 goto finished
- close filehandle
+ filehandle.'close'()
finished:
.return ($S1)
Modified: branches/gsoc_threads/examples/tools/pbc_checker.cpp
==============================================================================
--- branches/gsoc_threads/examples/tools/pbc_checker.cpp Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/tools/pbc_checker.cpp Thu Jun 10 21:09:12 2010 (r47545)
@@ -728,10 +728,16 @@
{
opcode flags;
opcode charset;
+ const opcode encoding_none = 0xFFFF;
+ opcode encoding = encoding_none;
if (pbc_major > 5 && pbc_minor > 11) {
opcode flags_charset = read_opcode(pbcfile);
flags = flags_charset & 0xFF;
charset = flags_charset >> 8;
+ if (pbc_major > 6 || pbc_minor >= 17) {
+ encoding = charset >> 8;
+ charset &= 0xFF;
+ }
}
else {
flags = read_opcode(pbcfile);
@@ -740,6 +746,8 @@
cout << "Flags: 0x" << hex << setw(6) << flags << dec;
cout << " Charset: " << charset;
+ if (encoding != encoding_none)
+ cout << " Encoding: " << encoding;
// Encoding not saved, see TT #468
//opcode encoding = read_opcode(pbcfile);
Modified: branches/gsoc_threads/examples/tutorial/40_file_ops.pir
==============================================================================
--- branches/gsoc_threads/examples/tutorial/40_file_ops.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/examples/tutorial/40_file_ops.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -10,14 +10,16 @@
.sub main :main
.local pmc fileout, filein
- fileout = open '40_file_ops_data.txt', 'w'
- print fileout, "The quick brown fox jumps over the lazy dog.\n"
- close fileout
+ fileout = new ['FileHandle']
+ fileout.'open'('40_file_ops_data.txt', 'w')
+ fileout.'print'("The quick brown fox jumps over the lazy dog.\n")
+ fileout.'close'()
- filein = open '40_file_ops_data.txt', 'r'
- $S0 = readline filein
+ filein = new ['FileHandle']
+ filein.'open'('40_file_ops_data.txt', 'r')
+ $S0 = filein.'readline'()
say $S0
- close filein
+ filein.'close'()
# Be nice and remove the temporary file we created.
$P0 = loadlib 'os'
Modified: branches/gsoc_threads/ext/nqp-rx/src/stage0/HLL-s0.pir
==============================================================================
--- branches/gsoc_threads/ext/nqp-rx/src/stage0/HLL-s0.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/ext/nqp-rx/src/stage0/HLL-s0.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -121,6 +121,27 @@
# return the result
.return (ns)
.end
+
+
+# This sub serves as a cumulative "outer context" for code
+# executed in HLL::Compiler's interactive REPL. It's invoked
+# exactly once upon load/init to obtain a context, and its
+# default LexPad is replaced with a Hash that we can use to
+# cumulatively store outer context information. Both the
+# context and hash are then made available via package
+# variables.
+.namespace []
+.sub '&interactive_outer' :lex :init :load
+ .local pmc ctx, pad
+ $P0 = getinterp
+ ctx = $P0['context']
+ set_global ['HLL';'Compiler'], '$interactive_ctx', ctx
+ pad = getattribute ctx, 'lex_pad'
+ $P1 = new ['Hash']
+ copy pad, $P1
+ set_global ['HLL';'Compiler'], '%interactive_pad', pad
+.end
+
### .include 'src/cheats/hll-grammar.pir'
# Copyright (C) 2009, The Perl Foundation.
@@ -851,124 +872,166 @@
# End:
# vim: expandtab shiftwidth=4 ft=pir:
+### .include 'src/cheats/parrot-callcontext.pir'
+.namespace ['CallContext']
+.sub 'lexpad_full' :method
+ .local pmc ctx, lexall, lexpad, lexpad_it
+ ctx = self
+ lexall = root_new ['parrot';'Hash']
+
+ context_loop:
+ if null ctx goto context_done
+ lexpad = getattribute ctx, 'lex_pad'
+ if null lexpad goto lexpad_done
+ lexpad_it = iter lexpad
+ lexpad_loop:
+ unless lexpad_it goto lexpad_done
+ $S0 = shift lexpad_it
+ $I0 = exists lexall[$S0]
+ if $I0 goto lexpad_loop
+ $P0 = lexpad[$S0]
+ lexall[$S0] = $P0
+ goto lexpad_loop
+ lexpad_done:
+ ctx = getattribute ctx, 'outer_ctx'
+ goto context_loop
+ context_done:
+ .return (lexall)
+.end
+
### .include 'gen/hllgrammar-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1274022878.64768")
+.sub "_block11" :anon :subid("10_1275811471.14938")
.annotate 'line', 0
get_hll_global $P14, ["HLL";"Grammar"], "_block13"
capture_lex $P14
+.annotate 'line', 1
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
.annotate 'line', 5
get_hll_global $P14, ["HLL";"Grammar"], "_block13"
capture_lex $P14
- $P343 = $P14()
+ $P348 = $P14()
.annotate 'line', 1
- .return ($P343)
- .const 'Sub' $P345 = "104_1274022878.64768"
- .return ($P345)
+ .return ($P348)
+ .const 'Sub' $P350 = "106_1275811471.14938"
+ .return ($P350)
.end
.namespace []
-.sub "" :load :init :subid("post105") :outer("10_1274022878.64768")
+.sub "" :load :init :subid("post107") :outer("10_1275811471.14938")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1274022878.64768"
+ .const 'Sub' $P12 = "10_1275811471.14938"
.local pmc block
set block, $P12
- $P348 = get_root_global ["parrot"], "P6metaclass"
- $P348."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
+ $P353 = get_root_global ["parrot"], "P6metaclass"
+ $P353."new_class"("HLL::Grammar", "Regex::Cursor" :named("parent"))
.end
.namespace ["HLL";"Grammar"]
-.sub "_block13" :subid("11_1274022878.64768") :outer("10_1274022878.64768")
+.sub "_block13" :subid("11_1275811471.14938") :outer("10_1275811471.14938")
.annotate 'line', 5
- .const 'Sub' $P329 = "101_1274022878.64768"
- capture_lex $P329
- .const 'Sub' $P322 = "99_1274022878.64768"
- capture_lex $P322
- .const 'Sub' $P309 = "96_1274022878.64768"
- capture_lex $P309
- .const 'Sub' $P277 = "91_1274022878.64768"
- capture_lex $P277
- .const 'Sub' $P271 = "89_1274022878.64768"
+ .const 'Sub' $P334 = "103_1275811471.14938"
+ capture_lex $P334
+ .const 'Sub' $P327 = "101_1275811471.14938"
+ capture_lex $P327
+ .const 'Sub' $P314 = "98_1275811471.14938"
+ capture_lex $P314
+ .const 'Sub' $P282 = "93_1275811471.14938"
+ capture_lex $P282
+ .const 'Sub' $P276 = "91_1275811471.14938"
+ capture_lex $P276
+ .const 'Sub' $P271 = "89_1275811471.14938"
capture_lex $P271
- .const 'Sub' $P266 = "87_1274022878.64768"
- capture_lex $P266
- .const 'Sub' $P260 = "85_1274022878.64768"
- capture_lex $P260
- .const 'Sub' $P254 = "83_1274022878.64768"
+ .const 'Sub' $P265 = "87_1275811471.14938"
+ capture_lex $P265
+ .const 'Sub' $P259 = "85_1275811471.14938"
+ capture_lex $P259
+ .const 'Sub' $P254 = "83_1275811471.14938"
capture_lex $P254
- .const 'Sub' $P249 = "81_1274022878.64768"
+ .const 'Sub' $P249 = "81_1275811471.14938"
capture_lex $P249
- .const 'Sub' $P244 = "79_1274022878.64768"
+ .const 'Sub' $P244 = "79_1275811471.14938"
capture_lex $P244
- .const 'Sub' $P239 = "77_1274022878.64768"
+ .const 'Sub' $P239 = "77_1275811471.14938"
capture_lex $P239
- .const 'Sub' $P234 = "75_1274022878.64768"
+ .const 'Sub' $P234 = "75_1275811471.14938"
capture_lex $P234
- .const 'Sub' $P229 = "73_1274022878.64768"
+ .const 'Sub' $P229 = "73_1275811471.14938"
capture_lex $P229
- .const 'Sub' $P224 = "71_1274022878.64768"
+ .const 'Sub' $P224 = "71_1275811471.14938"
capture_lex $P224
- .const 'Sub' $P219 = "69_1274022878.64768"
+ .const 'Sub' $P219 = "69_1275811471.14938"
capture_lex $P219
- .const 'Sub' $P208 = "65_1274022878.64768"
+ .const 'Sub' $P208 = "65_1275811471.14938"
capture_lex $P208
- .const 'Sub' $P195 = "63_1274022878.64768"
+ .const 'Sub' $P195 = "63_1275811471.14938"
capture_lex $P195
- .const 'Sub' $P183 = "61_1274022878.64768"
+ .const 'Sub' $P183 = "61_1275811471.14938"
capture_lex $P183
- .const 'Sub' $P176 = "59_1274022878.64768"
+ .const 'Sub' $P176 = "59_1275811471.14938"
capture_lex $P176
- .const 'Sub' $P167 = "57_1274022878.64768"
+ .const 'Sub' $P167 = "57_1275811471.14938"
capture_lex $P167
- .const 'Sub' $P160 = "55_1274022878.64768"
+ .const 'Sub' $P160 = "55_1275811471.14938"
capture_lex $P160
- .const 'Sub' $P151 = "53_1274022878.64768"
+ .const 'Sub' $P151 = "53_1275811471.14938"
capture_lex $P151
- .const 'Sub' $P144 = "51_1274022878.64768"
+ .const 'Sub' $P144 = "51_1275811471.14938"
capture_lex $P144
- .const 'Sub' $P135 = "49_1274022878.64768"
+ .const 'Sub' $P135 = "49_1275811471.14938"
capture_lex $P135
- .const 'Sub' $P128 = "47_1274022878.64768"
+ .const 'Sub' $P128 = "47_1275811471.14938"
capture_lex $P128
- .const 'Sub' $P121 = "45_1274022878.64768"
+ .const 'Sub' $P121 = "45_1275811471.14938"
capture_lex $P121
- .const 'Sub' $P111 = "43_1274022878.64768"
+ .const 'Sub' $P111 = "43_1275811471.14938"
capture_lex $P111
- .const 'Sub' $P103 = "41_1274022878.64768"
+ .const 'Sub' $P103 = "41_1275811471.14938"
capture_lex $P103
- .const 'Sub' $P93 = "40_1274022878.64768"
+ .const 'Sub' $P93 = "40_1275811471.14938"
capture_lex $P93
- .const 'Sub' $P87 = "38_1274022878.64768"
+ .const 'Sub' $P87 = "38_1275811471.14938"
capture_lex $P87
- .const 'Sub' $P82 = "36_1274022878.64768"
+ .const 'Sub' $P82 = "36_1275811471.14938"
capture_lex $P82
- .const 'Sub' $P74 = "34_1274022878.64768"
+ .const 'Sub' $P74 = "34_1275811471.14938"
capture_lex $P74
- .const 'Sub' $P68 = "32_1274022878.64768"
+ .const 'Sub' $P68 = "32_1275811471.14938"
capture_lex $P68
- .const 'Sub' $P62 = "30_1274022878.64768"
+ .const 'Sub' $P62 = "30_1275811471.14938"
capture_lex $P62
- .const 'Sub' $P56 = "28_1274022878.64768"
+ .const 'Sub' $P56 = "28_1275811471.14938"
capture_lex $P56
- .const 'Sub' $P23 = "14_1274022878.64768"
+ .const 'Sub' $P23 = "14_1275811471.14938"
capture_lex $P23
- .const 'Sub' $P15 = "12_1274022878.64768"
+ .const 'Sub' $P15 = "12_1275811471.14938"
capture_lex $P15
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
.annotate 'line', 33
- .const 'Sub' $P329 = "101_1274022878.64768"
- capture_lex $P329
+ .const 'Sub' $P334 = "103_1275811471.14938"
+ capture_lex $P334
.annotate 'line', 5
- .return ($P329)
- .const 'Sub' $P340 = "103_1274022878.64768"
- .return ($P340)
+ .return ($P334)
+ .const 'Sub' $P345 = "105_1275811471.14938"
+ .return ($P345)
.end
.namespace ["HLL";"Grammar"]
-.sub "ws" :subid("12_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "ws" :subid("12_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 5
.local string rx16_tgt
.local int rx16_pos
@@ -982,6 +1045,7 @@
.local pmc match
.lex "$/", match
length rx16_eos, rx16_tgt
+ gt rx16_pos, rx16_eos, rx16_done
set rx16_off, 0
lt rx16_pos, 2, rx16_start
sub rx16_off, rx16_pos, 1
@@ -1052,7 +1116,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__ws" :subid("13_1274022878.64768") :method
+.sub "!PREFIX__ws" :subid("13_1275811471.14938") :method
.annotate 'line', 5
new $P18, "ResizablePMCArray"
push $P18, ""
@@ -1061,7 +1125,7 @@
.namespace ["HLL";"Grammar"]
-.sub "termish" :subid("14_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "termish" :subid("14_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 5
.local string rx24_tgt
.local int rx24_pos
@@ -1076,6 +1140,7 @@
.local pmc match
.lex "$/", match
length rx24_eos, rx24_tgt
+ gt rx24_pos, rx24_eos, rx24_done
set rx24_off, 0
lt rx24_pos, 2, rx24_start
sub rx24_off, rx24_pos, 1
@@ -1153,7 +1218,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__termish" :subid("15_1274022878.64768") :method
+.sub "!PREFIX__termish" :subid("15_1275811471.14938") :method
.annotate 'line', 5
new $P26, "ResizablePMCArray"
push $P26, ""
@@ -1162,7 +1227,7 @@
.namespace ["HLL";"Grammar"]
-.sub "term" :subid("16_1274022878.64768") :method
+.sub "term" :subid("16_1275811471.14938") :method
.annotate 'line', 13
$P33 = self."!protoregex"("term")
.return ($P33)
@@ -1170,7 +1235,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term" :subid("17_1274022878.64768") :method
+.sub "!PREFIX__term" :subid("17_1275811471.14938") :method
.annotate 'line', 13
$P35 = self."!PREFIX__!protoregex"("term")
.return ($P35)
@@ -1178,7 +1243,7 @@
.namespace ["HLL";"Grammar"]
-.sub "infix" :subid("18_1274022878.64768") :method
+.sub "infix" :subid("18_1275811471.14938") :method
.annotate 'line', 14
$P37 = self."!protoregex"("infix")
.return ($P37)
@@ -1186,7 +1251,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infix" :subid("19_1274022878.64768") :method
+.sub "!PREFIX__infix" :subid("19_1275811471.14938") :method
.annotate 'line', 14
$P39 = self."!PREFIX__!protoregex"("infix")
.return ($P39)
@@ -1194,7 +1259,7 @@
.namespace ["HLL";"Grammar"]
-.sub "prefix" :subid("20_1274022878.64768") :method
+.sub "prefix" :subid("20_1275811471.14938") :method
.annotate 'line', 15
$P41 = self."!protoregex"("prefix")
.return ($P41)
@@ -1202,7 +1267,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefix" :subid("21_1274022878.64768") :method
+.sub "!PREFIX__prefix" :subid("21_1275811471.14938") :method
.annotate 'line', 15
$P43 = self."!PREFIX__!protoregex"("prefix")
.return ($P43)
@@ -1210,7 +1275,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postfix" :subid("22_1274022878.64768") :method
+.sub "postfix" :subid("22_1275811471.14938") :method
.annotate 'line', 16
$P45 = self."!protoregex"("postfix")
.return ($P45)
@@ -1218,7 +1283,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfix" :subid("23_1274022878.64768") :method
+.sub "!PREFIX__postfix" :subid("23_1275811471.14938") :method
.annotate 'line', 16
$P47 = self."!PREFIX__!protoregex"("postfix")
.return ($P47)
@@ -1226,7 +1291,7 @@
.namespace ["HLL";"Grammar"]
-.sub "circumfix" :subid("24_1274022878.64768") :method
+.sub "circumfix" :subid("24_1275811471.14938") :method
.annotate 'line', 17
$P49 = self."!protoregex"("circumfix")
.return ($P49)
@@ -1234,7 +1299,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__circumfix" :subid("25_1274022878.64768") :method
+.sub "!PREFIX__circumfix" :subid("25_1275811471.14938") :method
.annotate 'line', 17
$P51 = self."!PREFIX__!protoregex"("circumfix")
.return ($P51)
@@ -1242,7 +1307,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postcircumfix" :subid("26_1274022878.64768") :method
+.sub "postcircumfix" :subid("26_1275811471.14938") :method
.annotate 'line', 18
$P53 = self."!protoregex"("postcircumfix")
.return ($P53)
@@ -1250,7 +1315,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postcircumfix" :subid("27_1274022878.64768") :method
+.sub "!PREFIX__postcircumfix" :subid("27_1275811471.14938") :method
.annotate 'line', 18
$P55 = self."!PREFIX__!protoregex"("postcircumfix")
.return ($P55)
@@ -1258,7 +1323,7 @@
.namespace ["HLL";"Grammar"]
-.sub "term:sym<circumfix>" :subid("28_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "term:sym<circumfix>" :subid("28_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 5
.local string rx57_tgt
.local int rx57_pos
@@ -1272,6 +1337,7 @@
.local pmc match
.lex "$/", match
length rx57_eos, rx57_tgt
+ gt rx57_pos, rx57_eos, rx57_done
set rx57_off, 0
lt rx57_pos, 2, rx57_start
sub rx57_off, rx57_pos, 1
@@ -1316,7 +1382,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__term:sym<circumfix>" :subid("29_1274022878.64768") :method
+.sub "!PREFIX__term:sym<circumfix>" :subid("29_1275811471.14938") :method
.annotate 'line', 5
$P59 = self."!PREFIX__!subrule"("circumfix", "")
new $P60, "ResizablePMCArray"
@@ -1326,7 +1392,7 @@
.namespace ["HLL";"Grammar"]
-.sub "infixish" :subid("30_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "infixish" :subid("30_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 5
.local string rx63_tgt
.local int rx63_pos
@@ -1340,6 +1406,7 @@
.local pmc match
.lex "$/", match
length rx63_eos, rx63_tgt
+ gt rx63_pos, rx63_eos, rx63_done
set rx63_off, 0
lt rx63_pos, 2, rx63_start
sub rx63_off, rx63_pos, 1
@@ -1384,9 +1451,9 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__infixish" :subid("31_1274022878.64768") :method
+.sub "!PREFIX__infixish" :subid("31_1275811471.14938") :method
.annotate 'line', 5
- $P65 = self."!PREFIX__!subrule"("OPER=infix", "")
+ $P65 = self."!PREFIX__!subrule"("infix", "")
new $P66, "ResizablePMCArray"
push $P66, $P65
.return ($P66)
@@ -1394,7 +1461,7 @@
.namespace ["HLL";"Grammar"]
-.sub "prefixish" :subid("32_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "prefixish" :subid("32_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 5
.local string rx69_tgt
.local int rx69_pos
@@ -1408,6 +1475,7 @@
.local pmc match
.lex "$/", match
length rx69_eos, rx69_tgt
+ gt rx69_pos, rx69_eos, rx69_done
set rx69_off, 0
lt rx69_pos, 2, rx69_start
sub rx69_off, rx69_pos, 1
@@ -1457,9 +1525,9 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__prefixish" :subid("33_1274022878.64768") :method
+.sub "!PREFIX__prefixish" :subid("33_1275811471.14938") :method
.annotate 'line', 5
- $P71 = self."!PREFIX__!subrule"("OPER=prefix", "")
+ $P71 = self."!PREFIX__!subrule"("prefix", "")
new $P72, "ResizablePMCArray"
push $P72, $P71
.return ($P72)
@@ -1467,7 +1535,7 @@
.namespace ["HLL";"Grammar"]
-.sub "postfixish" :subid("34_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "postfixish" :subid("34_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 5
.local string rx75_tgt
.local int rx75_pos
@@ -1481,6 +1549,7 @@
.local pmc match
.lex "$/", match
length rx75_eos, rx75_tgt
+ gt rx75_pos, rx75_eos, rx75_done
set rx75_off, 0
lt rx75_pos, 2, rx75_start
sub rx75_off, rx75_pos, 1
@@ -1541,10 +1610,10 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__postfixish" :subid("35_1274022878.64768") :method
+.sub "!PREFIX__postfixish" :subid("35_1275811471.14938") :method
.annotate 'line', 5
- $P77 = self."!PREFIX__!subrule"("OPER=postcircumfix", "")
- $P78 = self."!PREFIX__!subrule"("OPER=postfix", "")
+ $P77 = self."!PREFIX__!subrule"("postcircumfix", "")
+ $P78 = self."!PREFIX__!subrule"("postfix", "")
new $P79, "ResizablePMCArray"
push $P79, $P77
push $P79, $P78
@@ -1553,7 +1622,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nullterm" :subid("36_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "nullterm" :subid("36_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 5
.local string rx83_tgt
.local int rx83_pos
@@ -1567,6 +1636,7 @@
.local pmc match
.lex "$/", match
length rx83_eos, rx83_tgt
+ gt rx83_pos, rx83_eos, rx83_done
set rx83_off, 0
lt rx83_pos, 2, rx83_start
sub rx83_off, rx83_pos, 1
@@ -1604,7 +1674,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm" :subid("37_1274022878.64768") :method
+.sub "!PREFIX__nullterm" :subid("37_1275811471.14938") :method
.annotate 'line', 5
new $P85, "ResizablePMCArray"
push $P85, ""
@@ -1613,7 +1683,7 @@
.namespace ["HLL";"Grammar"]
-.sub "nullterm_alt" :subid("38_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "nullterm_alt" :subid("38_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 5
.local string rx88_tgt
.local int rx88_pos
@@ -1627,6 +1697,7 @@
.local pmc match
.lex "$/", match
length rx88_eos, rx88_tgt
+ gt rx88_pos, rx88_eos, rx88_done
set rx88_off, 0
lt rx88_pos, 2, rx88_start
sub rx88_off, rx88_pos, 1
@@ -1671,9 +1742,9 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__nullterm_alt" :subid("39_1274022878.64768") :method
+.sub "!PREFIX__nullterm_alt" :subid("39_1275811471.14938") :method
.annotate 'line', 5
- $P90 = self."!PREFIX__!subrule"("term", "")
+ $P90 = self."!PREFIX__!subrule"("nullterm", "")
new $P91, "ResizablePMCArray"
push $P91, $P90
.return ($P91)
@@ -1681,11 +1752,12 @@
.namespace ["HLL";"Grammar"]
-.sub "nulltermish" :subid("40_1274022878.64768") :method :outer("11_1274022878.64768")
+.include "except_types.pasm"
+.sub "nulltermish" :subid("40_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
new $P95, 'ExceptionHandler'
set_addr $P95, control_94
- $P95."handle_types"(57)
+ $P95."handle_types"(.CONTROL_RETURN)
push_eh $P95
.lex "self", self
find_lex $P98, "self"
@@ -1708,7 +1780,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_delimited" :subid("41_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_delimited" :subid("41_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx104_tgt
.local int rx104_pos
@@ -1723,6 +1795,7 @@
.local pmc match
.lex "$/", match
length rx104_eos, rx104_tgt
+ gt rx104_pos, rx104_eos, rx104_done
set rx104_off, 0
lt rx104_pos, 2, rx104_start
sub rx104_off, rx104_pos, 1
@@ -1790,7 +1863,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_delimited" :subid("42_1274022878.64768") :method
+.sub "!PREFIX__quote_delimited" :subid("42_1275811471.14938") :method
.annotate 'line', 33
$P106 = self."!PREFIX__!subrule"("starter", "")
new $P107, "ResizablePMCArray"
@@ -1800,7 +1873,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_atom" :subid("43_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_atom" :subid("43_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx112_tgt
.local int rx112_pos
@@ -1814,6 +1887,7 @@
.local pmc match
.lex "$/", match
length rx112_eos, rx112_tgt
+ gt rx112_pos, rx112_eos, rx112_done
set rx112_off, 0
lt rx112_pos, 2, rx112_start
sub rx112_off, rx112_pos, 1
@@ -1891,7 +1965,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_atom" :subid("44_1274022878.64768") :method
+.sub "!PREFIX__quote_atom" :subid("44_1275811471.14938") :method
.annotate 'line', 33
new $P114, "ResizablePMCArray"
push $P114, ""
@@ -1900,7 +1974,7 @@
.namespace ["HLL";"Grammar"]
-.sub "decint" :subid("45_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "decint" :subid("45_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx122_tgt
.local int rx122_pos
@@ -1914,6 +1988,7 @@
.local pmc match
.lex "$/", match
length rx122_eos, rx122_tgt
+ gt rx122_pos, rx122_eos, rx122_done
set rx122_off, 0
lt rx122_pos, 2, rx122_start
sub rx122_off, rx122_pos, 1
@@ -1972,7 +2047,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decint" :subid("46_1274022878.64768") :method
+.sub "!PREFIX__decint" :subid("46_1275811471.14938") :method
.annotate 'line', 33
new $P124, "ResizablePMCArray"
push $P124, ""
@@ -1981,7 +2056,7 @@
.namespace ["HLL";"Grammar"]
-.sub "decints" :subid("47_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "decints" :subid("47_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx129_tgt
.local int rx129_pos
@@ -1996,6 +2071,7 @@
.local pmc match
.lex "$/", match
length rx129_eos, rx129_tgt
+ gt rx129_pos, rx129_eos, rx129_done
set rx129_off, 0
lt rx129_pos, 2, rx129_start
sub rx129_off, rx129_pos, 1
@@ -2065,7 +2141,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__decints" :subid("48_1274022878.64768") :method
+.sub "!PREFIX__decints" :subid("48_1275811471.14938") :method
.annotate 'line', 33
new $P131, "ResizablePMCArray"
push $P131, ""
@@ -2074,7 +2150,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexint" :subid("49_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "hexint" :subid("49_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx136_tgt
.local int rx136_pos
@@ -2088,6 +2164,7 @@
.local pmc match
.lex "$/", match
length rx136_eos, rx136_tgt
+ gt rx136_pos, rx136_eos, rx136_done
set rx136_off, 0
lt rx136_pos, 2, rx136_start
sub rx136_off, rx136_pos, 1
@@ -2155,7 +2232,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexint" :subid("50_1274022878.64768") :method
+.sub "!PREFIX__hexint" :subid("50_1275811471.14938") :method
.annotate 'line', 33
new $P138, "ResizablePMCArray"
push $P138, ""
@@ -2164,7 +2241,7 @@
.namespace ["HLL";"Grammar"]
-.sub "hexints" :subid("51_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "hexints" :subid("51_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx145_tgt
.local int rx145_pos
@@ -2179,6 +2256,7 @@
.local pmc match
.lex "$/", match
length rx145_eos, rx145_tgt
+ gt rx145_pos, rx145_eos, rx145_done
set rx145_off, 0
lt rx145_pos, 2, rx145_start
sub rx145_off, rx145_pos, 1
@@ -2248,7 +2326,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__hexints" :subid("52_1274022878.64768") :method
+.sub "!PREFIX__hexints" :subid("52_1275811471.14938") :method
.annotate 'line', 33
new $P147, "ResizablePMCArray"
push $P147, ""
@@ -2257,7 +2335,7 @@
.namespace ["HLL";"Grammar"]
-.sub "octint" :subid("53_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "octint" :subid("53_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx152_tgt
.local int rx152_pos
@@ -2271,6 +2349,7 @@
.local pmc match
.lex "$/", match
length rx152_eos, rx152_tgt
+ gt rx152_pos, rx152_eos, rx152_done
set rx152_off, 0
lt rx152_pos, 2, rx152_start
sub rx152_off, rx152_pos, 1
@@ -2338,7 +2417,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octint" :subid("54_1274022878.64768") :method
+.sub "!PREFIX__octint" :subid("54_1275811471.14938") :method
.annotate 'line', 33
new $P154, "ResizablePMCArray"
push $P154, ""
@@ -2347,7 +2426,7 @@
.namespace ["HLL";"Grammar"]
-.sub "octints" :subid("55_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "octints" :subid("55_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx161_tgt
.local int rx161_pos
@@ -2362,6 +2441,7 @@
.local pmc match
.lex "$/", match
length rx161_eos, rx161_tgt
+ gt rx161_pos, rx161_eos, rx161_done
set rx161_off, 0
lt rx161_pos, 2, rx161_start
sub rx161_off, rx161_pos, 1
@@ -2431,7 +2511,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__octints" :subid("56_1274022878.64768") :method
+.sub "!PREFIX__octints" :subid("56_1275811471.14938") :method
.annotate 'line', 33
new $P163, "ResizablePMCArray"
push $P163, ""
@@ -2440,7 +2520,7 @@
.namespace ["HLL";"Grammar"]
-.sub "binint" :subid("57_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "binint" :subid("57_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx168_tgt
.local int rx168_pos
@@ -2454,6 +2534,7 @@
.local pmc match
.lex "$/", match
length rx168_eos, rx168_tgt
+ gt rx168_pos, rx168_eos, rx168_done
set rx168_off, 0
lt rx168_pos, 2, rx168_start
sub rx168_off, rx168_pos, 1
@@ -2521,7 +2602,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binint" :subid("58_1274022878.64768") :method
+.sub "!PREFIX__binint" :subid("58_1275811471.14938") :method
.annotate 'line', 33
new $P170, "ResizablePMCArray"
push $P170, ""
@@ -2530,7 +2611,7 @@
.namespace ["HLL";"Grammar"]
-.sub "binints" :subid("59_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "binints" :subid("59_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx177_tgt
.local int rx177_pos
@@ -2545,6 +2626,7 @@
.local pmc match
.lex "$/", match
length rx177_eos, rx177_tgt
+ gt rx177_pos, rx177_eos, rx177_done
set rx177_off, 0
lt rx177_pos, 2, rx177_start
sub rx177_off, rx177_pos, 1
@@ -2614,7 +2696,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__binints" :subid("60_1274022878.64768") :method
+.sub "!PREFIX__binints" :subid("60_1275811471.14938") :method
.annotate 'line', 33
new $P179, "ResizablePMCArray"
push $P179, ""
@@ -2623,7 +2705,7 @@
.namespace ["HLL";"Grammar"]
-.sub "integer" :subid("61_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "integer" :subid("61_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx184_tgt
.local int rx184_pos
@@ -2637,6 +2719,7 @@
.local pmc match
.lex "$/", match
length rx184_eos, rx184_tgt
+ gt rx184_pos, rx184_eos, rx184_done
set rx184_off, 0
lt rx184_pos, 2, rx184_start
sub rx184_off, rx184_pos, 1
@@ -2771,13 +2854,13 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__integer" :subid("62_1274022878.64768") :method
+.sub "!PREFIX__integer" :subid("62_1275811471.14938") :method
.annotate 'line', 33
- $P186 = self."!PREFIX__!subrule"("VALUE=decint", "")
- $P187 = self."!PREFIX__!subrule"("VALUE=decint", "0d")
- $P188 = self."!PREFIX__!subrule"("VALUE=hexint", "0x")
- $P189 = self."!PREFIX__!subrule"("VALUE=octint", "0o")
- $P190 = self."!PREFIX__!subrule"("VALUE=binint", "0b")
+ $P186 = self."!PREFIX__!subrule"("decint", "")
+ $P187 = self."!PREFIX__!subrule"("decint", "0d")
+ $P188 = self."!PREFIX__!subrule"("hexint", "0x")
+ $P189 = self."!PREFIX__!subrule"("octint", "0o")
+ $P190 = self."!PREFIX__!subrule"("binint", "0b")
new $P191, "ResizablePMCArray"
push $P191, $P186
push $P191, $P187
@@ -2789,7 +2872,7 @@
.namespace ["HLL";"Grammar"]
-.sub "dec_number" :subid("63_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "dec_number" :subid("63_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx196_tgt
.local int rx196_pos
@@ -2804,6 +2887,7 @@
.local pmc match
.lex "$/", match
length rx196_eos, rx196_tgt
+ gt rx196_pos, rx196_eos, rx196_done
set rx196_off, 0
lt rx196_pos, 2, rx196_start
sub rx196_off, rx196_pos, 1
@@ -2968,7 +3052,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__dec_number" :subid("64_1274022878.64768") :method
+.sub "!PREFIX__dec_number" :subid("64_1275811471.14938") :method
.annotate 'line', 33
new $P198, "ResizablePMCArray"
push $P198, ""
@@ -2979,7 +3063,7 @@
.namespace ["HLL";"Grammar"]
-.sub "escale" :subid("65_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "escale" :subid("65_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx209_tgt
.local int rx209_pos
@@ -2993,6 +3077,7 @@
.local pmc match
.lex "$/", match
length rx209_eos, rx209_tgt
+ gt rx209_pos, rx209_eos, rx209_done
set rx209_off, 0
lt rx209_pos, 2, rx209_start
sub rx209_off, rx209_pos, 1
@@ -3056,7 +3141,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__escale" :subid("66_1274022878.64768") :method
+.sub "!PREFIX__escale" :subid("66_1275811471.14938") :method
.annotate 'line', 33
new $P211, "ResizablePMCArray"
push $P211, "e"
@@ -3066,7 +3151,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape" :subid("67_1274022878.64768") :method
+.sub "quote_escape" :subid("67_1275811471.14938") :method
.annotate 'line', 79
$P216 = self."!protoregex"("quote_escape")
.return ($P216)
@@ -3074,7 +3159,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape" :subid("68_1274022878.64768") :method
+.sub "!PREFIX__quote_escape" :subid("68_1275811471.14938") :method
.annotate 'line', 79
$P218 = self."!PREFIX__!protoregex"("quote_escape")
.return ($P218)
@@ -3082,7 +3167,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<backslash>" :subid("69_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<backslash>" :subid("69_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx220_tgt
.local int rx220_pos
@@ -3096,6 +3181,7 @@
.local pmc match
.lex "$/", match
length rx220_eos, rx220_tgt
+ gt rx220_pos, rx220_eos, rx220_done
set rx220_off, 0
lt rx220_pos, 2, rx220_start
sub rx220_off, rx220_pos, 1
@@ -3144,7 +3230,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<backslash>" :subid("70_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<backslash>" :subid("70_1275811471.14938") :method
.annotate 'line', 33
new $P222, "ResizablePMCArray"
push $P222, "\\\\"
@@ -3153,7 +3239,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<stopper>" :subid("71_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<stopper>" :subid("71_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx225_tgt
.local int rx225_pos
@@ -3167,6 +3253,7 @@
.local pmc match
.lex "$/", match
length rx225_eos, rx225_tgt
+ gt rx225_pos, rx225_eos, rx225_done
set rx225_off, 0
lt rx225_pos, 2, rx225_start
sub rx225_off, rx225_pos, 1
@@ -3222,7 +3309,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<stopper>" :subid("72_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<stopper>" :subid("72_1275811471.14938") :method
.annotate 'line', 33
new $P227, "ResizablePMCArray"
push $P227, "\\"
@@ -3231,7 +3318,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<bs>" :subid("73_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<bs>" :subid("73_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx230_tgt
.local int rx230_pos
@@ -3245,6 +3332,7 @@
.local pmc match
.lex "$/", match
length rx230_eos, rx230_tgt
+ gt rx230_pos, rx230_eos, rx230_done
set rx230_off, 0
lt rx230_pos, 2, rx230_start
sub rx230_off, rx230_pos, 1
@@ -3293,7 +3381,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<bs>" :subid("74_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<bs>" :subid("74_1275811471.14938") :method
.annotate 'line', 33
new $P232, "ResizablePMCArray"
push $P232, "\\b"
@@ -3302,7 +3390,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<nl>" :subid("75_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<nl>" :subid("75_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx235_tgt
.local int rx235_pos
@@ -3316,6 +3404,7 @@
.local pmc match
.lex "$/", match
length rx235_eos, rx235_tgt
+ gt rx235_pos, rx235_eos, rx235_done
set rx235_off, 0
lt rx235_pos, 2, rx235_start
sub rx235_off, rx235_pos, 1
@@ -3364,7 +3453,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<nl>" :subid("76_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<nl>" :subid("76_1275811471.14938") :method
.annotate 'line', 33
new $P237, "ResizablePMCArray"
push $P237, "\\n"
@@ -3373,7 +3462,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<cr>" :subid("77_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<cr>" :subid("77_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx240_tgt
.local int rx240_pos
@@ -3387,6 +3476,7 @@
.local pmc match
.lex "$/", match
length rx240_eos, rx240_tgt
+ gt rx240_pos, rx240_eos, rx240_done
set rx240_off, 0
lt rx240_pos, 2, rx240_start
sub rx240_off, rx240_pos, 1
@@ -3435,7 +3525,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<cr>" :subid("78_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<cr>" :subid("78_1275811471.14938") :method
.annotate 'line', 33
new $P242, "ResizablePMCArray"
push $P242, "\\r"
@@ -3444,7 +3534,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<tab>" :subid("79_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<tab>" :subid("79_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx245_tgt
.local int rx245_pos
@@ -3458,6 +3548,7 @@
.local pmc match
.lex "$/", match
length rx245_eos, rx245_tgt
+ gt rx245_pos, rx245_eos, rx245_done
set rx245_off, 0
lt rx245_pos, 2, rx245_start
sub rx245_off, rx245_pos, 1
@@ -3506,7 +3597,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<tab>" :subid("80_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<tab>" :subid("80_1275811471.14938") :method
.annotate 'line', 33
new $P247, "ResizablePMCArray"
push $P247, "\\t"
@@ -3515,7 +3606,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<ff>" :subid("81_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<ff>" :subid("81_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx250_tgt
.local int rx250_pos
@@ -3529,6 +3620,7 @@
.local pmc match
.lex "$/", match
length rx250_eos, rx250_tgt
+ gt rx250_pos, rx250_eos, rx250_done
set rx250_off, 0
lt rx250_pos, 2, rx250_start
sub rx250_off, rx250_pos, 1
@@ -3577,7 +3669,7 @@
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<ff>" :subid("82_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<ff>" :subid("82_1275811471.14938") :method
.annotate 'line', 33
new $P252, "ResizablePMCArray"
push $P252, "\\f"
@@ -3586,7 +3678,7 @@
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<hex>" :subid("83_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<esc>" :subid("83_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx255_tgt
.local int rx255_pos
@@ -3595,11 +3687,12 @@
.local int rx255_rep
.local pmc rx255_cur
(rx255_cur, rx255_pos, rx255_tgt) = self."!cursor_start"()
- rx255_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
+ rx255_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
.lex unicode:"$\x{a2}", rx255_cur
.local pmc match
.lex "$/", match
length rx255_eos, rx255_tgt
+ gt rx255_pos, rx255_eos, rx255_done
set rx255_off, 0
lt rx255_pos, 2, rx255_start
sub rx255_off, rx255_pos, 1
@@ -3617,57 +3710,21 @@
set_addr $I10, rxscan258_loop
rx255_cur."!mark_push"(0, rx255_pos, $I10)
rxscan258_done:
-.annotate 'line', 89
- # rx literal unicode:"\\x"
+.annotate 'line', 88
+ # rx literal "\\e"
add $I11, rx255_pos, 2
gt $I11, rx255_eos, rx255_fail
sub $I11, rx255_pos, rx255_off
substr $S10, rx255_tgt, $I11, 2
- ne $S10, unicode:"\\x", rx255_fail
+ ne $S10, "\\e", rx255_fail
add rx255_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
rx255_cur."!cursor_pos"(rx255_pos)
$P10 = rx255_cur."quotemod_check"("b")
unless $P10, rx255_fail
- alt259_0:
-.annotate 'line', 90
- set_addr $I10, alt259_1
- rx255_cur."!mark_push"(0, rx255_pos, $I10)
- # rx subrule "hexint" subtype=capture negate=
- rx255_cur."!cursor_pos"(rx255_pos)
- $P10 = rx255_cur."hexint"()
- unless $P10, rx255_fail
- rx255_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("hexint")
- rx255_pos = $P10."pos"()
- goto alt259_end
- alt259_1:
- # rx literal "["
- add $I11, rx255_pos, 1
- gt $I11, rx255_eos, rx255_fail
- sub $I11, rx255_pos, rx255_off
- substr $S10, rx255_tgt, $I11, 1
- ne $S10, "[", rx255_fail
- add rx255_pos, 1
- # rx subrule "hexints" subtype=capture negate=
- rx255_cur."!cursor_pos"(rx255_pos)
- $P10 = rx255_cur."hexints"()
- unless $P10, rx255_fail
- rx255_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("hexints")
- rx255_pos = $P10."pos"()
- # rx literal "]"
- add $I11, rx255_pos, 1
- gt $I11, rx255_eos, rx255_fail
- sub $I11, rx255_pos, rx255_off
- substr $S10, rx255_tgt, $I11, 1
- ne $S10, "]", rx255_fail
- add rx255_pos, 1
- alt259_end:
-.annotate 'line', 88
# rx pass
- rx255_cur."!cursor_pass"(rx255_pos, "quote_escape:sym<hex>")
- rx255_cur."!cursor_debug"("PASS ", "quote_escape:sym<hex>", " at pos=", rx255_pos)
+ rx255_cur."!cursor_pass"(rx255_pos, "quote_escape:sym<esc>")
+ rx255_cur."!cursor_debug"("PASS ", "quote_escape:sym<esc>", " at pos=", rx255_pos)
.return (rx255_cur)
rx255_fail:
.annotate 'line', 33
@@ -3677,208 +3734,239 @@
jump $I10
rx255_done:
rx255_cur."!cursor_fail"()
- rx255_cur."!cursor_debug"("FAIL ", "quote_escape:sym<hex>")
+ rx255_cur."!cursor_debug"("FAIL ", "quote_escape:sym<esc>")
.return (rx255_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<hex>" :subid("84_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<esc>" :subid("84_1275811471.14938") :method
.annotate 'line', 33
new $P257, "ResizablePMCArray"
- push $P257, unicode:"\\x"
+ push $P257, "\\e"
.return ($P257)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<oct>" :subid("85_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<hex>" :subid("85_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
- .local string rx261_tgt
- .local int rx261_pos
- .local int rx261_off
- .local int rx261_eos
- .local int rx261_rep
- .local pmc rx261_cur
- (rx261_cur, rx261_pos, rx261_tgt) = self."!cursor_start"()
- rx261_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
- .lex unicode:"$\x{a2}", rx261_cur
+ .local string rx260_tgt
+ .local int rx260_pos
+ .local int rx260_off
+ .local int rx260_eos
+ .local int rx260_rep
+ .local pmc rx260_cur
+ (rx260_cur, rx260_pos, rx260_tgt) = self."!cursor_start"()
+ rx260_cur."!cursor_debug"("START ", "quote_escape:sym<hex>")
+ .lex unicode:"$\x{a2}", rx260_cur
.local pmc match
.lex "$/", match
- length rx261_eos, rx261_tgt
- set rx261_off, 0
- lt rx261_pos, 2, rx261_start
- sub rx261_off, rx261_pos, 1
- substr rx261_tgt, rx261_tgt, rx261_off
- rx261_start:
+ length rx260_eos, rx260_tgt
+ gt rx260_pos, rx260_eos, rx260_done
+ set rx260_off, 0
+ lt rx260_pos, 2, rx260_start
+ sub rx260_off, rx260_pos, 1
+ substr rx260_tgt, rx260_tgt, rx260_off
+ rx260_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan264_done
- goto rxscan264_scan
- rxscan264_loop:
- ($P10) = rx261_cur."from"()
+ ne $I10, -1, rxscan263_done
+ goto rxscan263_scan
+ rxscan263_loop:
+ ($P10) = rx260_cur."from"()
inc $P10
- set rx261_pos, $P10
- ge rx261_pos, rx261_eos, rxscan264_done
- rxscan264_scan:
- set_addr $I10, rxscan264_loop
- rx261_cur."!mark_push"(0, rx261_pos, $I10)
- rxscan264_done:
-.annotate 'line', 93
- # rx literal "\\o"
- add $I11, rx261_pos, 2
- gt $I11, rx261_eos, rx261_fail
- sub $I11, rx261_pos, rx261_off
- substr $S10, rx261_tgt, $I11, 2
- ne $S10, "\\o", rx261_fail
- add rx261_pos, 2
+ set rx260_pos, $P10
+ ge rx260_pos, rx260_eos, rxscan263_done
+ rxscan263_scan:
+ set_addr $I10, rxscan263_loop
+ rx260_cur."!mark_push"(0, rx260_pos, $I10)
+ rxscan263_done:
+.annotate 'line', 90
+ # rx literal unicode:"\\x"
+ add $I11, rx260_pos, 2
+ gt $I11, rx260_eos, rx260_fail
+ sub $I11, rx260_pos, rx260_off
+ substr $S10, rx260_tgt, $I11, 2
+ ne $S10, unicode:"\\x", rx260_fail
+ add rx260_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx261_cur."!cursor_pos"(rx261_pos)
- $P10 = rx261_cur."quotemod_check"("b")
- unless $P10, rx261_fail
- alt265_0:
-.annotate 'line', 94
- set_addr $I10, alt265_1
- rx261_cur."!mark_push"(0, rx261_pos, $I10)
- # rx subrule "octint" subtype=capture negate=
- rx261_cur."!cursor_pos"(rx261_pos)
- $P10 = rx261_cur."octint"()
- unless $P10, rx261_fail
- rx261_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("octint")
- rx261_pos = $P10."pos"()
- goto alt265_end
- alt265_1:
+ rx260_cur."!cursor_pos"(rx260_pos)
+ $P10 = rx260_cur."quotemod_check"("b")
+ unless $P10, rx260_fail
+ alt264_0:
+.annotate 'line', 91
+ set_addr $I10, alt264_1
+ rx260_cur."!mark_push"(0, rx260_pos, $I10)
+ # rx subrule "hexint" subtype=capture negate=
+ rx260_cur."!cursor_pos"(rx260_pos)
+ $P10 = rx260_cur."hexint"()
+ unless $P10, rx260_fail
+ rx260_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("hexint")
+ rx260_pos = $P10."pos"()
+ goto alt264_end
+ alt264_1:
# rx literal "["
- add $I11, rx261_pos, 1
- gt $I11, rx261_eos, rx261_fail
- sub $I11, rx261_pos, rx261_off
- substr $S10, rx261_tgt, $I11, 1
- ne $S10, "[", rx261_fail
- add rx261_pos, 1
- # rx subrule "octints" subtype=capture negate=
- rx261_cur."!cursor_pos"(rx261_pos)
- $P10 = rx261_cur."octints"()
- unless $P10, rx261_fail
- rx261_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("octints")
- rx261_pos = $P10."pos"()
+ add $I11, rx260_pos, 1
+ gt $I11, rx260_eos, rx260_fail
+ sub $I11, rx260_pos, rx260_off
+ substr $S10, rx260_tgt, $I11, 1
+ ne $S10, "[", rx260_fail
+ add rx260_pos, 1
+ # rx subrule "hexints" subtype=capture negate=
+ rx260_cur."!cursor_pos"(rx260_pos)
+ $P10 = rx260_cur."hexints"()
+ unless $P10, rx260_fail
+ rx260_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("hexints")
+ rx260_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx261_pos, 1
- gt $I11, rx261_eos, rx261_fail
- sub $I11, rx261_pos, rx261_off
- substr $S10, rx261_tgt, $I11, 1
- ne $S10, "]", rx261_fail
- add rx261_pos, 1
- alt265_end:
-.annotate 'line', 92
+ add $I11, rx260_pos, 1
+ gt $I11, rx260_eos, rx260_fail
+ sub $I11, rx260_pos, rx260_off
+ substr $S10, rx260_tgt, $I11, 1
+ ne $S10, "]", rx260_fail
+ add rx260_pos, 1
+ alt264_end:
+.annotate 'line', 89
# rx pass
- rx261_cur."!cursor_pass"(rx261_pos, "quote_escape:sym<oct>")
- rx261_cur."!cursor_debug"("PASS ", "quote_escape:sym<oct>", " at pos=", rx261_pos)
- .return (rx261_cur)
- rx261_fail:
-.annotate 'line', 33
- (rx261_rep, rx261_pos, $I10, $P10) = rx261_cur."!mark_fail"(0)
- lt rx261_pos, -1, rx261_done
- eq rx261_pos, -1, rx261_fail
+ rx260_cur."!cursor_pass"(rx260_pos, "quote_escape:sym<hex>")
+ rx260_cur."!cursor_debug"("PASS ", "quote_escape:sym<hex>", " at pos=", rx260_pos)
+ .return (rx260_cur)
+ rx260_fail:
+.annotate 'line', 33
+ (rx260_rep, rx260_pos, $I10, $P10) = rx260_cur."!mark_fail"(0)
+ lt rx260_pos, -1, rx260_done
+ eq rx260_pos, -1, rx260_fail
jump $I10
- rx261_done:
- rx261_cur."!cursor_fail"()
- rx261_cur."!cursor_debug"("FAIL ", "quote_escape:sym<oct>")
- .return (rx261_cur)
+ rx260_done:
+ rx260_cur."!cursor_fail"()
+ rx260_cur."!cursor_debug"("FAIL ", "quote_escape:sym<hex>")
+ .return (rx260_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<oct>" :subid("86_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<hex>" :subid("86_1275811471.14938") :method
.annotate 'line', 33
- new $P263, "ResizablePMCArray"
- push $P263, "\\o"
- .return ($P263)
+ new $P262, "ResizablePMCArray"
+ push $P262, unicode:"\\x"
+ .return ($P262)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<chr>" :subid("87_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<oct>" :subid("87_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
- .local string rx267_tgt
- .local int rx267_pos
- .local int rx267_off
- .local int rx267_eos
- .local int rx267_rep
- .local pmc rx267_cur
- (rx267_cur, rx267_pos, rx267_tgt) = self."!cursor_start"()
- rx267_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
- .lex unicode:"$\x{a2}", rx267_cur
+ .local string rx266_tgt
+ .local int rx266_pos
+ .local int rx266_off
+ .local int rx266_eos
+ .local int rx266_rep
+ .local pmc rx266_cur
+ (rx266_cur, rx266_pos, rx266_tgt) = self."!cursor_start"()
+ rx266_cur."!cursor_debug"("START ", "quote_escape:sym<oct>")
+ .lex unicode:"$\x{a2}", rx266_cur
.local pmc match
.lex "$/", match
- length rx267_eos, rx267_tgt
- set rx267_off, 0
- lt rx267_pos, 2, rx267_start
- sub rx267_off, rx267_pos, 1
- substr rx267_tgt, rx267_tgt, rx267_off
- rx267_start:
+ length rx266_eos, rx266_tgt
+ gt rx266_pos, rx266_eos, rx266_done
+ set rx266_off, 0
+ lt rx266_pos, 2, rx266_start
+ sub rx266_off, rx266_pos, 1
+ substr rx266_tgt, rx266_tgt, rx266_off
+ rx266_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan270_done
- goto rxscan270_scan
- rxscan270_loop:
- ($P10) = rx267_cur."from"()
+ ne $I10, -1, rxscan269_done
+ goto rxscan269_scan
+ rxscan269_loop:
+ ($P10) = rx266_cur."from"()
inc $P10
- set rx267_pos, $P10
- ge rx267_pos, rx267_eos, rxscan270_done
- rxscan270_scan:
- set_addr $I10, rxscan270_loop
- rx267_cur."!mark_push"(0, rx267_pos, $I10)
- rxscan270_done:
-.annotate 'line', 96
- # rx literal "\\c"
- add $I11, rx267_pos, 2
- gt $I11, rx267_eos, rx267_fail
- sub $I11, rx267_pos, rx267_off
- substr $S10, rx267_tgt, $I11, 2
- ne $S10, "\\c", rx267_fail
- add rx267_pos, 2
+ set rx266_pos, $P10
+ ge rx266_pos, rx266_eos, rxscan269_done
+ rxscan269_scan:
+ set_addr $I10, rxscan269_loop
+ rx266_cur."!mark_push"(0, rx266_pos, $I10)
+ rxscan269_done:
+.annotate 'line', 94
+ # rx literal "\\o"
+ add $I11, rx266_pos, 2
+ gt $I11, rx266_eos, rx266_fail
+ sub $I11, rx266_pos, rx266_off
+ substr $S10, rx266_tgt, $I11, 2
+ ne $S10, "\\o", rx266_fail
+ add rx266_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
- rx267_cur."!cursor_pos"(rx267_pos)
- $P10 = rx267_cur."quotemod_check"("b")
- unless $P10, rx267_fail
- # rx subrule "charspec" subtype=capture negate=
- rx267_cur."!cursor_pos"(rx267_pos)
- $P10 = rx267_cur."charspec"()
- unless $P10, rx267_fail
- rx267_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("charspec")
- rx267_pos = $P10."pos"()
+ rx266_cur."!cursor_pos"(rx266_pos)
+ $P10 = rx266_cur."quotemod_check"("b")
+ unless $P10, rx266_fail
+ alt270_0:
+.annotate 'line', 95
+ set_addr $I10, alt270_1
+ rx266_cur."!mark_push"(0, rx266_pos, $I10)
+ # rx subrule "octint" subtype=capture negate=
+ rx266_cur."!cursor_pos"(rx266_pos)
+ $P10 = rx266_cur."octint"()
+ unless $P10, rx266_fail
+ rx266_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("octint")
+ rx266_pos = $P10."pos"()
+ goto alt270_end
+ alt270_1:
+ # rx literal "["
+ add $I11, rx266_pos, 1
+ gt $I11, rx266_eos, rx266_fail
+ sub $I11, rx266_pos, rx266_off
+ substr $S10, rx266_tgt, $I11, 1
+ ne $S10, "[", rx266_fail
+ add rx266_pos, 1
+ # rx subrule "octints" subtype=capture negate=
+ rx266_cur."!cursor_pos"(rx266_pos)
+ $P10 = rx266_cur."octints"()
+ unless $P10, rx266_fail
+ rx266_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("octints")
+ rx266_pos = $P10."pos"()
+ # rx literal "]"
+ add $I11, rx266_pos, 1
+ gt $I11, rx266_eos, rx266_fail
+ sub $I11, rx266_pos, rx266_off
+ substr $S10, rx266_tgt, $I11, 1
+ ne $S10, "]", rx266_fail
+ add rx266_pos, 1
+ alt270_end:
+.annotate 'line', 93
# rx pass
- rx267_cur."!cursor_pass"(rx267_pos, "quote_escape:sym<chr>")
- rx267_cur."!cursor_debug"("PASS ", "quote_escape:sym<chr>", " at pos=", rx267_pos)
- .return (rx267_cur)
- rx267_fail:
-.annotate 'line', 33
- (rx267_rep, rx267_pos, $I10, $P10) = rx267_cur."!mark_fail"(0)
- lt rx267_pos, -1, rx267_done
- eq rx267_pos, -1, rx267_fail
+ rx266_cur."!cursor_pass"(rx266_pos, "quote_escape:sym<oct>")
+ rx266_cur."!cursor_debug"("PASS ", "quote_escape:sym<oct>", " at pos=", rx266_pos)
+ .return (rx266_cur)
+ rx266_fail:
+.annotate 'line', 33
+ (rx266_rep, rx266_pos, $I10, $P10) = rx266_cur."!mark_fail"(0)
+ lt rx266_pos, -1, rx266_done
+ eq rx266_pos, -1, rx266_fail
jump $I10
- rx267_done:
- rx267_cur."!cursor_fail"()
- rx267_cur."!cursor_debug"("FAIL ", "quote_escape:sym<chr>")
- .return (rx267_cur)
+ rx266_done:
+ rx266_cur."!cursor_fail"()
+ rx266_cur."!cursor_debug"("FAIL ", "quote_escape:sym<oct>")
+ .return (rx266_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<chr>" :subid("88_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<oct>" :subid("88_1275811471.14938") :method
.annotate 'line', 33
- new $P269, "ResizablePMCArray"
- push $P269, "\\c"
- .return ($P269)
+ new $P268, "ResizablePMCArray"
+ push $P268, "\\o"
+ .return ($P268)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<0>" :subid("89_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<chr>" :subid("89_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
.local string rx272_tgt
.local int rx272_pos
@@ -3887,11 +3975,12 @@
.local int rx272_rep
.local pmc rx272_cur
(rx272_cur, rx272_pos, rx272_tgt) = self."!cursor_start"()
- rx272_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
+ rx272_cur."!cursor_debug"("START ", "quote_escape:sym<chr>")
.lex unicode:"$\x{a2}", rx272_cur
.local pmc match
.lex "$/", match
length rx272_eos, rx272_tgt
+ gt rx272_pos, rx272_eos, rx272_done
set rx272_off, 0
lt rx272_pos, 2, rx272_start
sub rx272_off, rx272_pos, 1
@@ -3910,41 +3999,27 @@
rx272_cur."!mark_push"(0, rx272_pos, $I10)
rxscan275_done:
.annotate 'line', 97
- # rx literal "\\"
- add $I11, rx272_pos, 1
- gt $I11, rx272_eos, rx272_fail
- sub $I11, rx272_pos, rx272_off
- substr $S10, rx272_tgt, $I11, 1
- ne $S10, "\\", rx272_fail
- add rx272_pos, 1
- # rx subcapture "sym"
- set_addr $I10, rxcap_276_fail
- rx272_cur."!mark_push"(0, rx272_pos, $I10)
- # rx literal "0"
- add $I11, rx272_pos, 1
+ # rx literal "\\c"
+ add $I11, rx272_pos, 2
gt $I11, rx272_eos, rx272_fail
sub $I11, rx272_pos, rx272_off
- substr $S10, rx272_tgt, $I11, 1
- ne $S10, "0", rx272_fail
- add rx272_pos, 1
- set_addr $I10, rxcap_276_fail
- ($I12, $I11) = rx272_cur."!mark_peek"($I10)
- rx272_cur."!cursor_pos"($I11)
- ($P10) = rx272_cur."!cursor_start"()
- $P10."!cursor_pass"(rx272_pos, "")
- rx272_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_276_done
- rxcap_276_fail:
- goto rx272_fail
- rxcap_276_done:
+ substr $S10, rx272_tgt, $I11, 2
+ ne $S10, "\\c", rx272_fail
+ add rx272_pos, 2
# rx subrule "quotemod_check" subtype=zerowidth negate=
rx272_cur."!cursor_pos"(rx272_pos)
$P10 = rx272_cur."quotemod_check"("b")
unless $P10, rx272_fail
+ # rx subrule "charspec" subtype=capture negate=
+ rx272_cur."!cursor_pos"(rx272_pos)
+ $P10 = rx272_cur."charspec"()
+ unless $P10, rx272_fail
+ rx272_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("charspec")
+ rx272_pos = $P10."pos"()
# rx pass
- rx272_cur."!cursor_pass"(rx272_pos, "quote_escape:sym<0>")
- rx272_cur."!cursor_debug"("PASS ", "quote_escape:sym<0>", " at pos=", rx272_pos)
+ rx272_cur."!cursor_pass"(rx272_pos, "quote_escape:sym<chr>")
+ rx272_cur."!cursor_debug"("PASS ", "quote_escape:sym<chr>", " at pos=", rx272_pos)
.return (rx272_cur)
rx272_fail:
.annotate 'line', 33
@@ -3954,884 +4029,1002 @@
jump $I10
rx272_done:
rx272_cur."!cursor_fail"()
- rx272_cur."!cursor_debug"("FAIL ", "quote_escape:sym<0>")
+ rx272_cur."!cursor_debug"("FAIL ", "quote_escape:sym<chr>")
.return (rx272_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<0>" :subid("90_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<chr>" :subid("90_1275811471.14938") :method
.annotate 'line', 33
new $P274, "ResizablePMCArray"
- push $P274, "\\0"
+ push $P274, "\\c"
.return ($P274)
.end
.namespace ["HLL";"Grammar"]
-.sub "quote_escape:sym<misc>" :subid("91_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "quote_escape:sym<0>" :subid("91_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
- .const 'Sub' $P297 = "95_1274022878.64768"
- capture_lex $P297
- .const 'Sub' $P290 = "94_1274022878.64768"
- capture_lex $P290
- .const 'Sub' $P285 = "93_1274022878.64768"
- capture_lex $P285
- .local string rx278_tgt
- .local int rx278_pos
- .local int rx278_off
- .local int rx278_eos
- .local int rx278_rep
- .local pmc rx278_cur
- (rx278_cur, rx278_pos, rx278_tgt) = self."!cursor_start"()
- rx278_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
- .lex unicode:"$\x{a2}", rx278_cur
+ .local string rx277_tgt
+ .local int rx277_pos
+ .local int rx277_off
+ .local int rx277_eos
+ .local int rx277_rep
+ .local pmc rx277_cur
+ (rx277_cur, rx277_pos, rx277_tgt) = self."!cursor_start"()
+ rx277_cur."!cursor_debug"("START ", "quote_escape:sym<0>")
+ .lex unicode:"$\x{a2}", rx277_cur
.local pmc match
.lex "$/", match
- length rx278_eos, rx278_tgt
- set rx278_off, 0
- lt rx278_pos, 2, rx278_start
- sub rx278_off, rx278_pos, 1
- substr rx278_tgt, rx278_tgt, rx278_off
- rx278_start:
+ length rx277_eos, rx277_tgt
+ gt rx277_pos, rx277_eos, rx277_done
+ set rx277_off, 0
+ lt rx277_pos, 2, rx277_start
+ sub rx277_off, rx277_pos, 1
+ substr rx277_tgt, rx277_tgt, rx277_off
+ rx277_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan281_done
- goto rxscan281_scan
- rxscan281_loop:
- ($P10) = rx278_cur."from"()
+ ne $I10, -1, rxscan280_done
+ goto rxscan280_scan
+ rxscan280_loop:
+ ($P10) = rx277_cur."from"()
inc $P10
- set rx278_pos, $P10
- ge rx278_pos, rx278_eos, rxscan281_done
- rxscan281_scan:
- set_addr $I10, rxscan281_loop
- rx278_cur."!mark_push"(0, rx278_pos, $I10)
- rxscan281_done:
+ set rx277_pos, $P10
+ ge rx277_pos, rx277_eos, rxscan280_done
+ rxscan280_scan:
+ set_addr $I10, rxscan280_loop
+ rx277_cur."!mark_push"(0, rx277_pos, $I10)
+ rxscan280_done:
.annotate 'line', 98
- rx278_cur."!cursor_pos"(rx278_pos)
- find_lex $P282, unicode:"$\x{a2}"
- $P283 = $P282."MATCH"()
- store_lex "$/", $P283
-.annotate 'line', 99
- .const 'Sub' $P285 = "93_1274022878.64768"
- capture_lex $P285
- $P286 = $P285()
# rx literal "\\"
- add $I11, rx278_pos, 1
- gt $I11, rx278_eos, rx278_fail
- sub $I11, rx278_pos, rx278_off
- substr $S10, rx278_tgt, $I11, 1
- ne $S10, "\\", rx278_fail
- add rx278_pos, 1
- alt287_0:
+ add $I11, rx277_pos, 1
+ gt $I11, rx277_eos, rx277_fail
+ sub $I11, rx277_pos, rx277_off
+ substr $S10, rx277_tgt, $I11, 1
+ ne $S10, "\\", rx277_fail
+ add rx277_pos, 1
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_281_fail
+ rx277_cur."!mark_push"(0, rx277_pos, $I10)
+ # rx literal "0"
+ add $I11, rx277_pos, 1
+ gt $I11, rx277_eos, rx277_fail
+ sub $I11, rx277_pos, rx277_off
+ substr $S10, rx277_tgt, $I11, 1
+ ne $S10, "0", rx277_fail
+ add rx277_pos, 1
+ set_addr $I10, rxcap_281_fail
+ ($I12, $I11) = rx277_cur."!mark_peek"($I10)
+ rx277_cur."!cursor_pos"($I11)
+ ($P10) = rx277_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx277_pos, "")
+ rx277_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_281_done
+ rxcap_281_fail:
+ goto rx277_fail
+ rxcap_281_done:
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
+ rx277_cur."!cursor_pos"(rx277_pos)
+ $P10 = rx277_cur."quotemod_check"("b")
+ unless $P10, rx277_fail
+ # rx pass
+ rx277_cur."!cursor_pass"(rx277_pos, "quote_escape:sym<0>")
+ rx277_cur."!cursor_debug"("PASS ", "quote_escape:sym<0>", " at pos=", rx277_pos)
+ .return (rx277_cur)
+ rx277_fail:
+.annotate 'line', 33
+ (rx277_rep, rx277_pos, $I10, $P10) = rx277_cur."!mark_fail"(0)
+ lt rx277_pos, -1, rx277_done
+ eq rx277_pos, -1, rx277_fail
+ jump $I10
+ rx277_done:
+ rx277_cur."!cursor_fail"()
+ rx277_cur."!cursor_debug"("FAIL ", "quote_escape:sym<0>")
+ .return (rx277_cur)
+ .return ()
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "!PREFIX__quote_escape:sym<0>" :subid("92_1275811471.14938") :method
+.annotate 'line', 33
+ new $P279, "ResizablePMCArray"
+ push $P279, "\\0"
+ .return ($P279)
+.end
+
+
+.namespace ["HLL";"Grammar"]
+.sub "quote_escape:sym<misc>" :subid("93_1275811471.14938") :method :outer("11_1275811471.14938")
+.annotate 'line', 33
+ .const 'Sub' $P302 = "97_1275811471.14938"
+ capture_lex $P302
+ .const 'Sub' $P295 = "96_1275811471.14938"
+ capture_lex $P295
+ .const 'Sub' $P290 = "95_1275811471.14938"
+ capture_lex $P290
+ .local string rx283_tgt
+ .local int rx283_pos
+ .local int rx283_off
+ .local int rx283_eos
+ .local int rx283_rep
+ .local pmc rx283_cur
+ (rx283_cur, rx283_pos, rx283_tgt) = self."!cursor_start"()
+ rx283_cur."!cursor_debug"("START ", "quote_escape:sym<misc>")
+ .lex unicode:"$\x{a2}", rx283_cur
+ .local pmc match
+ .lex "$/", match
+ length rx283_eos, rx283_tgt
+ gt rx283_pos, rx283_eos, rx283_done
+ set rx283_off, 0
+ lt rx283_pos, 2, rx283_start
+ sub rx283_off, rx283_pos, 1
+ substr rx283_tgt, rx283_tgt, rx283_off
+ rx283_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan286_done
+ goto rxscan286_scan
+ rxscan286_loop:
+ ($P10) = rx283_cur."from"()
+ inc $P10
+ set rx283_pos, $P10
+ ge rx283_pos, rx283_eos, rxscan286_done
+ rxscan286_scan:
+ set_addr $I10, rxscan286_loop
+ rx283_cur."!mark_push"(0, rx283_pos, $I10)
+ rxscan286_done:
.annotate 'line', 100
- set_addr $I10, alt287_1
- rx278_cur."!mark_push"(0, rx278_pos, $I10)
+ rx283_cur."!cursor_pos"(rx283_pos)
+ find_lex $P287, unicode:"$\x{a2}"
+ $P288 = $P287."MATCH"()
+ store_lex "$/", $P288
+ .const 'Sub' $P290 = "95_1275811471.14938"
+ capture_lex $P290
+ $P291 = $P290()
+ # rx literal "\\"
+ add $I11, rx283_pos, 1
+ gt $I11, rx283_eos, rx283_fail
+ sub $I11, rx283_pos, rx283_off
+ substr $S10, rx283_tgt, $I11, 1
+ ne $S10, "\\", rx283_fail
+ add rx283_pos, 1
+ alt292_0:
.annotate 'line', 101
- # rx subrule "quotemod_check" subtype=zerowidth negate=
- rx278_cur."!cursor_pos"(rx278_pos)
- $P10 = rx278_cur."quotemod_check"("b")
- unless $P10, rx278_fail
- alt288_0:
+ set_addr $I10, alt292_1
+ rx283_cur."!mark_push"(0, rx283_pos, $I10)
.annotate 'line', 102
- set_addr $I10, alt288_1
- rx278_cur."!mark_push"(0, rx278_pos, $I10)
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
+ rx283_cur."!cursor_pos"(rx283_pos)
+ $P10 = rx283_cur."quotemod_check"("b")
+ unless $P10, rx283_fail
+ alt293_0:
.annotate 'line', 103
- # rx subrule $P290 subtype=capture negate=
- rx278_cur."!cursor_pos"(rx278_pos)
- .const 'Sub' $P290 = "94_1274022878.64768"
- capture_lex $P290
- $P10 = rx278_cur.$P290()
- unless $P10, rx278_fail
- rx278_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("textqq")
- rx278_pos = $P10."pos"()
- goto alt288_end
- alt288_1:
+ set_addr $I10, alt293_1
+ rx283_cur."!mark_push"(0, rx283_pos, $I10)
.annotate 'line', 104
+ # rx subrule $P295 subtype=capture negate=
+ rx283_cur."!cursor_pos"(rx283_pos)
+ .const 'Sub' $P295 = "96_1275811471.14938"
+ capture_lex $P295
+ $P10 = rx283_cur.$P295()
+ unless $P10, rx283_fail
+ rx283_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("textqq")
+ rx283_pos = $P10."pos"()
+ goto alt293_end
+ alt293_1:
+.annotate 'line', 105
# rx subcapture "x"
- set_addr $I10, rxcap_293_fail
- rx278_cur."!mark_push"(0, rx278_pos, $I10)
+ set_addr $I10, rxcap_298_fail
+ rx283_cur."!mark_push"(0, rx283_pos, $I10)
# rx charclass w
- ge rx278_pos, rx278_eos, rx278_fail
- sub $I10, rx278_pos, rx278_off
- is_cclass $I11, 8192, rx278_tgt, $I10
- unless $I11, rx278_fail
- inc rx278_pos
- set_addr $I10, rxcap_293_fail
- ($I12, $I11) = rx278_cur."!mark_peek"($I10)
- rx278_cur."!cursor_pos"($I11)
- ($P10) = rx278_cur."!cursor_start"()
- $P10."!cursor_pass"(rx278_pos, "")
- rx278_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx283_pos, rx283_eos, rx283_fail
+ sub $I10, rx283_pos, rx283_off
+ is_cclass $I11, 8192, rx283_tgt, $I10
+ unless $I11, rx283_fail
+ inc rx283_pos
+ set_addr $I10, rxcap_298_fail
+ ($I12, $I11) = rx283_cur."!mark_peek"($I10)
+ rx283_cur."!cursor_pos"($I11)
+ ($P10) = rx283_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx283_pos, "")
+ rx283_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("x")
- goto rxcap_293_done
- rxcap_293_fail:
- goto rx278_fail
- rxcap_293_done:
- rx278_cur."!cursor_pos"(rx278_pos)
- find_lex $P294, unicode:"$\x{a2}"
- $P295 = $P294."MATCH"()
- store_lex "$/", $P295
- .const 'Sub' $P297 = "95_1274022878.64768"
- capture_lex $P297
- $P307 = $P297()
- alt288_end:
-.annotate 'line', 101
- goto alt287_end
- alt287_1:
-.annotate 'line', 106
+ goto rxcap_298_done
+ rxcap_298_fail:
+ goto rx283_fail
+ rxcap_298_done:
+ rx283_cur."!cursor_pos"(rx283_pos)
+ find_lex $P299, unicode:"$\x{a2}"
+ $P300 = $P299."MATCH"()
+ store_lex "$/", $P300
+ .const 'Sub' $P302 = "97_1275811471.14938"
+ capture_lex $P302
+ $P312 = $P302()
+ alt293_end:
+.annotate 'line', 102
+ goto alt292_end
+ alt292_1:
+.annotate 'line', 107
# rx subcapture "textq"
- set_addr $I10, rxcap_308_fail
- rx278_cur."!mark_push"(0, rx278_pos, $I10)
+ set_addr $I10, rxcap_313_fail
+ rx283_cur."!mark_push"(0, rx283_pos, $I10)
# rx charclass .
- ge rx278_pos, rx278_eos, rx278_fail
- inc rx278_pos
- set_addr $I10, rxcap_308_fail
- ($I12, $I11) = rx278_cur."!mark_peek"($I10)
- rx278_cur."!cursor_pos"($I11)
- ($P10) = rx278_cur."!cursor_start"()
- $P10."!cursor_pass"(rx278_pos, "")
- rx278_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx283_pos, rx283_eos, rx283_fail
+ inc rx283_pos
+ set_addr $I10, rxcap_313_fail
+ ($I12, $I11) = rx283_cur."!mark_peek"($I10)
+ rx283_cur."!cursor_pos"($I11)
+ ($P10) = rx283_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx283_pos, "")
+ rx283_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("textq")
- goto rxcap_308_done
- rxcap_308_fail:
- goto rx278_fail
- rxcap_308_done:
- alt287_end:
-.annotate 'line', 98
+ goto rxcap_313_done
+ rxcap_313_fail:
+ goto rx283_fail
+ rxcap_313_done:
+ alt292_end:
+.annotate 'line', 99
# rx pass
- rx278_cur."!cursor_pass"(rx278_pos, "quote_escape:sym<misc>")
- rx278_cur."!cursor_debug"("PASS ", "quote_escape:sym<misc>", " at pos=", rx278_pos)
- .return (rx278_cur)
- rx278_fail:
-.annotate 'line', 33
- (rx278_rep, rx278_pos, $I10, $P10) = rx278_cur."!mark_fail"(0)
- lt rx278_pos, -1, rx278_done
- eq rx278_pos, -1, rx278_fail
+ rx283_cur."!cursor_pass"(rx283_pos, "quote_escape:sym<misc>")
+ rx283_cur."!cursor_debug"("PASS ", "quote_escape:sym<misc>", " at pos=", rx283_pos)
+ .return (rx283_cur)
+ rx283_fail:
+.annotate 'line', 33
+ (rx283_rep, rx283_pos, $I10, $P10) = rx283_cur."!mark_fail"(0)
+ lt rx283_pos, -1, rx283_done
+ eq rx283_pos, -1, rx283_fail
jump $I10
- rx278_done:
- rx278_cur."!cursor_fail"()
- rx278_cur."!cursor_debug"("FAIL ", "quote_escape:sym<misc>")
- .return (rx278_cur)
+ rx283_done:
+ rx283_cur."!cursor_fail"()
+ rx283_cur."!cursor_debug"("FAIL ", "quote_escape:sym<misc>")
+ .return (rx283_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<misc>" :subid("92_1274022878.64768") :method
+.sub "!PREFIX__quote_escape:sym<misc>" :subid("94_1275811471.14938") :method
.annotate 'line', 33
- new $P280, "ResizablePMCArray"
- push $P280, ""
- .return ($P280)
+ new $P285, "ResizablePMCArray"
+ push $P285, ""
+ .return ($P285)
.end
.namespace ["HLL";"Grammar"]
-.sub "_block284" :anon :subid("93_1274022878.64768") :outer("91_1274022878.64768")
-.annotate 'line', 99
+.sub "_block289" :anon :subid("95_1275811471.14938") :outer("93_1275811471.14938")
+.annotate 'line', 100
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "_block289" :anon :subid("94_1274022878.64768") :method :outer("91_1274022878.64768")
-.annotate 'line', 103
- .local string rx291_tgt
- .local int rx291_pos
- .local int rx291_off
- .local int rx291_eos
- .local int rx291_rep
- .local pmc rx291_cur
- (rx291_cur, rx291_pos, rx291_tgt) = self."!cursor_start"()
- rx291_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx291_cur
+.sub "_block294" :anon :subid("96_1275811471.14938") :method :outer("93_1275811471.14938")
+.annotate 'line', 104
+ .local string rx296_tgt
+ .local int rx296_pos
+ .local int rx296_off
+ .local int rx296_eos
+ .local int rx296_rep
+ .local pmc rx296_cur
+ (rx296_cur, rx296_pos, rx296_tgt) = self."!cursor_start"()
+ rx296_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx296_cur
.local pmc match
.lex "$/", match
- length rx291_eos, rx291_tgt
- set rx291_off, 0
- lt rx291_pos, 2, rx291_start
- sub rx291_off, rx291_pos, 1
- substr rx291_tgt, rx291_tgt, rx291_off
- rx291_start:
+ length rx296_eos, rx296_tgt
+ gt rx296_pos, rx296_eos, rx296_done
+ set rx296_off, 0
+ lt rx296_pos, 2, rx296_start
+ sub rx296_off, rx296_pos, 1
+ substr rx296_tgt, rx296_tgt, rx296_off
+ rx296_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan292_done
- goto rxscan292_scan
- rxscan292_loop:
- ($P10) = rx291_cur."from"()
+ ne $I10, -1, rxscan297_done
+ goto rxscan297_scan
+ rxscan297_loop:
+ ($P10) = rx296_cur."from"()
inc $P10
- set rx291_pos, $P10
- ge rx291_pos, rx291_eos, rxscan292_done
- rxscan292_scan:
- set_addr $I10, rxscan292_loop
- rx291_cur."!mark_push"(0, rx291_pos, $I10)
- rxscan292_done:
+ set rx296_pos, $P10
+ ge rx296_pos, rx296_eos, rxscan297_done
+ rxscan297_scan:
+ set_addr $I10, rxscan297_loop
+ rx296_cur."!mark_push"(0, rx296_pos, $I10)
+ rxscan297_done:
# rx charclass W
- ge rx291_pos, rx291_eos, rx291_fail
- sub $I10, rx291_pos, rx291_off
- is_cclass $I11, 8192, rx291_tgt, $I10
- if $I11, rx291_fail
- inc rx291_pos
+ ge rx296_pos, rx296_eos, rx296_fail
+ sub $I10, rx296_pos, rx296_off
+ is_cclass $I11, 8192, rx296_tgt, $I10
+ if $I11, rx296_fail
+ inc rx296_pos
# rx pass
- rx291_cur."!cursor_pass"(rx291_pos, "")
- rx291_cur."!cursor_debug"("PASS ", "", " at pos=", rx291_pos)
- .return (rx291_cur)
- rx291_fail:
- (rx291_rep, rx291_pos, $I10, $P10) = rx291_cur."!mark_fail"(0)
- lt rx291_pos, -1, rx291_done
- eq rx291_pos, -1, rx291_fail
+ rx296_cur."!cursor_pass"(rx296_pos, "")
+ rx296_cur."!cursor_debug"("PASS ", "", " at pos=", rx296_pos)
+ .return (rx296_cur)
+ rx296_fail:
+ (rx296_rep, rx296_pos, $I10, $P10) = rx296_cur."!mark_fail"(0)
+ lt rx296_pos, -1, rx296_done
+ eq rx296_pos, -1, rx296_fail
jump $I10
- rx291_done:
- rx291_cur."!cursor_fail"()
- rx291_cur."!cursor_debug"("FAIL ", "")
- .return (rx291_cur)
+ rx296_done:
+ rx296_cur."!cursor_fail"()
+ rx296_cur."!cursor_debug"("FAIL ", "")
+ .return (rx296_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "_block296" :anon :subid("95_1274022878.64768") :outer("91_1274022878.64768")
-.annotate 'line', 104
- find_lex $P298, "$/"
- $P299 = $P298."CURSOR"()
- new $P300, "String"
- assign $P300, "Unrecognized backslash sequence: '\\"
- find_lex $P301, "$/"
- unless_null $P301, vivify_106
- $P301 = root_new ['parrot';'Hash']
- vivify_106:
- set $P302, $P301["x"]
- unless_null $P302, vivify_107
- new $P302, "Undef"
- vivify_107:
- $S303 = $P302."Str"()
- concat $P304, $P300, $S303
- concat $P305, $P304, "'"
- $P306 = $P299."panic"($P305)
- .return ($P306)
+.sub "_block301" :anon :subid("97_1275811471.14938") :outer("93_1275811471.14938")
+.annotate 'line', 105
+ find_lex $P303, "$/"
+ $P304 = $P303."CURSOR"()
+ new $P305, "String"
+ assign $P305, "Unrecognized backslash sequence: '\\"
+ find_lex $P306, "$/"
+ unless_null $P306, vivify_108
+ $P306 = root_new ['parrot';'Hash']
+ vivify_108:
+ set $P307, $P306["x"]
+ unless_null $P307, vivify_109
+ new $P307, "Undef"
+ vivify_109:
+ $S308 = $P307."Str"()
+ concat $P309, $P305, $S308
+ concat $P310, $P309, "'"
+ $P311 = $P304."panic"($P310)
+ .return ($P311)
.end
.namespace ["HLL";"Grammar"]
-.sub "charname" :subid("96_1274022878.64768") :method :outer("11_1274022878.64768")
-.annotate 'line', 33
- .const 'Sub' $P319 = "98_1274022878.64768"
- capture_lex $P319
- .local string rx310_tgt
- .local int rx310_pos
- .local int rx310_off
- .local int rx310_eos
- .local int rx310_rep
- .local pmc rx310_cur
- (rx310_cur, rx310_pos, rx310_tgt) = self."!cursor_start"()
- rx310_cur."!cursor_debug"("START ", "charname")
- .lex unicode:"$\x{a2}", rx310_cur
+.sub "charname" :subid("98_1275811471.14938") :method :outer("11_1275811471.14938")
+.annotate 'line', 33
+ .const 'Sub' $P324 = "100_1275811471.14938"
+ capture_lex $P324
+ .local string rx315_tgt
+ .local int rx315_pos
+ .local int rx315_off
+ .local int rx315_eos
+ .local int rx315_rep
+ .local pmc rx315_cur
+ (rx315_cur, rx315_pos, rx315_tgt) = self."!cursor_start"()
+ rx315_cur."!cursor_debug"("START ", "charname")
+ .lex unicode:"$\x{a2}", rx315_cur
.local pmc match
.lex "$/", match
- length rx310_eos, rx310_tgt
- set rx310_off, 0
- lt rx310_pos, 2, rx310_start
- sub rx310_off, rx310_pos, 1
- substr rx310_tgt, rx310_tgt, rx310_off
- rx310_start:
+ length rx315_eos, rx315_tgt
+ gt rx315_pos, rx315_eos, rx315_done
+ set rx315_off, 0
+ lt rx315_pos, 2, rx315_start
+ sub rx315_off, rx315_pos, 1
+ substr rx315_tgt, rx315_tgt, rx315_off
+ rx315_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan314_done
- goto rxscan314_scan
- rxscan314_loop:
- ($P10) = rx310_cur."from"()
+ ne $I10, -1, rxscan319_done
+ goto rxscan319_scan
+ rxscan319_loop:
+ ($P10) = rx315_cur."from"()
inc $P10
- set rx310_pos, $P10
- ge rx310_pos, rx310_eos, rxscan314_done
- rxscan314_scan:
- set_addr $I10, rxscan314_loop
- rx310_cur."!mark_push"(0, rx310_pos, $I10)
- rxscan314_done:
- alt315_0:
-.annotate 'line', 110
- set_addr $I10, alt315_1
- rx310_cur."!mark_push"(0, rx310_pos, $I10)
+ set rx315_pos, $P10
+ ge rx315_pos, rx315_eos, rxscan319_done
+ rxscan319_scan:
+ set_addr $I10, rxscan319_loop
+ rx315_cur."!mark_push"(0, rx315_pos, $I10)
+ rxscan319_done:
+ alt320_0:
.annotate 'line', 111
+ set_addr $I10, alt320_1
+ rx315_cur."!mark_push"(0, rx315_pos, $I10)
+.annotate 'line', 112
# rx subrule "integer" subtype=capture negate=
- rx310_cur."!cursor_pos"(rx310_pos)
- $P10 = rx310_cur."integer"()
- unless $P10, rx310_fail
- rx310_cur."!mark_push"(0, -1, 0, $P10)
+ rx315_cur."!cursor_pos"(rx315_pos)
+ $P10 = rx315_cur."integer"()
+ unless $P10, rx315_fail
+ rx315_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("integer")
- rx310_pos = $P10."pos"()
- goto alt315_end
- alt315_1:
-.annotate 'line', 112
+ rx315_pos = $P10."pos"()
+ goto alt320_end
+ alt320_1:
+.annotate 'line', 113
# rx enumcharlist negate=0
- ge rx310_pos, rx310_eos, rx310_fail
- sub $I10, rx310_pos, rx310_off
- substr $S10, rx310_tgt, $I10, 1
+ ge rx315_pos, rx315_eos, rx315_fail
+ sub $I10, rx315_pos, rx315_off
+ substr $S10, rx315_tgt, $I10, 1
index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
- lt $I11, 0, rx310_fail
- inc rx310_pos
- # rx rxquantf316 ** 0..*
- set_addr $I10, rxquantf316_loop
- rx310_cur."!mark_push"(0, rx310_pos, $I10)
- goto rxquantf316_done
- rxquantf316_loop:
+ lt $I11, 0, rx315_fail
+ inc rx315_pos
+ # rx rxquantf321 ** 0..*
+ set_addr $I10, rxquantf321_loop
+ rx315_cur."!mark_push"(0, rx315_pos, $I10)
+ goto rxquantf321_done
+ rxquantf321_loop:
# rx enumcharlist negate=1
- ge rx310_pos, rx310_eos, rx310_fail
- sub $I10, rx310_pos, rx310_off
- substr $S10, rx310_tgt, $I10, 1
+ ge rx315_pos, rx315_eos, rx315_fail
+ sub $I10, rx315_pos, rx315_off
+ substr $S10, rx315_tgt, $I10, 1
index $I11, "],#", $S10
- ge $I11, 0, rx310_fail
- inc rx310_pos
- set_addr $I10, rxquantf316_loop
- rx310_cur."!mark_push"($I317, rx310_pos, $I10)
- rxquantf316_done:
+ ge $I11, 0, rx315_fail
+ inc rx315_pos
+ set_addr $I10, rxquantf321_loop
+ rx315_cur."!mark_push"($I322, rx315_pos, $I10)
+ rxquantf321_done:
# rx enumcharlist negate=0
- ge rx310_pos, rx310_eos, rx310_fail
- sub $I10, rx310_pos, rx310_off
- substr $S10, rx310_tgt, $I10, 1
+ ge rx315_pos, rx315_eos, rx315_fail
+ sub $I10, rx315_pos, rx315_off
+ substr $S10, rx315_tgt, $I10, 1
index $I11, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)", $S10
- lt $I11, 0, rx310_fail
- inc rx310_pos
-.annotate 'line', 113
+ lt $I11, 0, rx315_fail
+ inc rx315_pos
+.annotate 'line', 114
# rx subrule "before" subtype=zerowidth negate=
- rx310_cur."!cursor_pos"(rx310_pos)
- .const 'Sub' $P319 = "98_1274022878.64768"
- capture_lex $P319
- $P10 = rx310_cur."before"($P319)
- unless $P10, rx310_fail
- alt315_end:
-.annotate 'line', 110
+ rx315_cur."!cursor_pos"(rx315_pos)
+ .const 'Sub' $P324 = "100_1275811471.14938"
+ capture_lex $P324
+ $P10 = rx315_cur."before"($P324)
+ unless $P10, rx315_fail
+ alt320_end:
+.annotate 'line', 111
# rx pass
- rx310_cur."!cursor_pass"(rx310_pos, "charname")
- rx310_cur."!cursor_debug"("PASS ", "charname", " at pos=", rx310_pos)
- .return (rx310_cur)
- rx310_fail:
-.annotate 'line', 33
- (rx310_rep, rx310_pos, $I10, $P10) = rx310_cur."!mark_fail"(0)
- lt rx310_pos, -1, rx310_done
- eq rx310_pos, -1, rx310_fail
+ rx315_cur."!cursor_pass"(rx315_pos, "charname")
+ rx315_cur."!cursor_debug"("PASS ", "charname", " at pos=", rx315_pos)
+ .return (rx315_cur)
+ rx315_fail:
+.annotate 'line', 33
+ (rx315_rep, rx315_pos, $I10, $P10) = rx315_cur."!mark_fail"(0)
+ lt rx315_pos, -1, rx315_done
+ eq rx315_pos, -1, rx315_fail
jump $I10
- rx310_done:
- rx310_cur."!cursor_fail"()
- rx310_cur."!cursor_debug"("FAIL ", "charname")
- .return (rx310_cur)
+ rx315_done:
+ rx315_cur."!cursor_fail"()
+ rx315_cur."!cursor_debug"("FAIL ", "charname")
+ .return (rx315_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charname" :subid("97_1274022878.64768") :method
-.annotate 'line', 33
- $P312 = self."!PREFIX__!subrule"("integer", "")
- new $P313, "ResizablePMCArray"
- push $P313, "Z"
- push $P313, "Y"
- push $P313, "X"
- push $P313, "W"
- push $P313, "V"
- push $P313, "U"
- push $P313, "T"
- push $P313, "S"
- push $P313, "R"
- push $P313, "Q"
- push $P313, "P"
- push $P313, "O"
- push $P313, "N"
- push $P313, "M"
- push $P313, "L"
- push $P313, "K"
- push $P313, "J"
- push $P313, "I"
- push $P313, "H"
- push $P313, "G"
- push $P313, "F"
- push $P313, "E"
- push $P313, "D"
- push $P313, "C"
- push $P313, "B"
- push $P313, "A"
- push $P313, "z"
- push $P313, "y"
- push $P313, "x"
- push $P313, "w"
- push $P313, "v"
- push $P313, "u"
- push $P313, "t"
- push $P313, "s"
- push $P313, "r"
- push $P313, "q"
- push $P313, "p"
- push $P313, "o"
- push $P313, "n"
- push $P313, "m"
- push $P313, "l"
- push $P313, "k"
- push $P313, "j"
- push $P313, "i"
- push $P313, "h"
- push $P313, "g"
- push $P313, "f"
- push $P313, "e"
- push $P313, "d"
- push $P313, "c"
- push $P313, "b"
- push $P313, "a"
- push $P313, $P312
- .return ($P313)
+.sub "!PREFIX__charname" :subid("99_1275811471.14938") :method
+.annotate 'line', 33
+ $P317 = self."!PREFIX__!subrule"("integer", "")
+ new $P318, "ResizablePMCArray"
+ push $P318, "Z"
+ push $P318, "Y"
+ push $P318, "X"
+ push $P318, "W"
+ push $P318, "V"
+ push $P318, "U"
+ push $P318, "T"
+ push $P318, "S"
+ push $P318, "R"
+ push $P318, "Q"
+ push $P318, "P"
+ push $P318, "O"
+ push $P318, "N"
+ push $P318, "M"
+ push $P318, "L"
+ push $P318, "K"
+ push $P318, "J"
+ push $P318, "I"
+ push $P318, "H"
+ push $P318, "G"
+ push $P318, "F"
+ push $P318, "E"
+ push $P318, "D"
+ push $P318, "C"
+ push $P318, "B"
+ push $P318, "A"
+ push $P318, "z"
+ push $P318, "y"
+ push $P318, "x"
+ push $P318, "w"
+ push $P318, "v"
+ push $P318, "u"
+ push $P318, "t"
+ push $P318, "s"
+ push $P318, "r"
+ push $P318, "q"
+ push $P318, "p"
+ push $P318, "o"
+ push $P318, "n"
+ push $P318, "m"
+ push $P318, "l"
+ push $P318, "k"
+ push $P318, "j"
+ push $P318, "i"
+ push $P318, "h"
+ push $P318, "g"
+ push $P318, "f"
+ push $P318, "e"
+ push $P318, "d"
+ push $P318, "c"
+ push $P318, "b"
+ push $P318, "a"
+ push $P318, $P317
+ .return ($P318)
.end
.namespace ["HLL";"Grammar"]
-.sub "_block318" :anon :subid("98_1274022878.64768") :method :outer("96_1274022878.64768")
-.annotate 'line', 113
- .local string rx320_tgt
- .local int rx320_pos
- .local int rx320_off
- .local int rx320_eos
- .local int rx320_rep
- .local pmc rx320_cur
- (rx320_cur, rx320_pos, rx320_tgt) = self."!cursor_start"()
- rx320_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx320_cur
+.sub "_block323" :anon :subid("100_1275811471.14938") :method :outer("98_1275811471.14938")
+.annotate 'line', 114
+ .local string rx325_tgt
+ .local int rx325_pos
+ .local int rx325_off
+ .local int rx325_eos
+ .local int rx325_rep
+ .local pmc rx325_cur
+ (rx325_cur, rx325_pos, rx325_tgt) = self."!cursor_start"()
+ rx325_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx325_cur
.local pmc match
.lex "$/", match
- length rx320_eos, rx320_tgt
- set rx320_off, 0
- lt rx320_pos, 2, rx320_start
- sub rx320_off, rx320_pos, 1
- substr rx320_tgt, rx320_tgt, rx320_off
- rx320_start:
+ length rx325_eos, rx325_tgt
+ gt rx325_pos, rx325_eos, rx325_done
+ set rx325_off, 0
+ lt rx325_pos, 2, rx325_start
+ sub rx325_off, rx325_pos, 1
+ substr rx325_tgt, rx325_tgt, rx325_off
+ rx325_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan321_done
- goto rxscan321_scan
- rxscan321_loop:
- ($P10) = rx320_cur."from"()
+ ne $I10, -1, rxscan326_done
+ goto rxscan326_scan
+ rxscan326_loop:
+ ($P10) = rx325_cur."from"()
inc $P10
- set rx320_pos, $P10
- ge rx320_pos, rx320_eos, rxscan321_done
- rxscan321_scan:
- set_addr $I10, rxscan321_loop
- rx320_cur."!mark_push"(0, rx320_pos, $I10)
- rxscan321_done:
+ set rx325_pos, $P10
+ ge rx325_pos, rx325_eos, rxscan326_done
+ rxscan326_scan:
+ set_addr $I10, rxscan326_loop
+ rx325_cur."!mark_push"(0, rx325_pos, $I10)
+ rxscan326_done:
# rx charclass_q s r 0..-1
- sub $I10, rx320_pos, rx320_off
- find_not_cclass $I11, 32, rx320_tgt, $I10, rx320_eos
- add rx320_pos, rx320_off, $I11
+ sub $I10, rx325_pos, rx325_off
+ find_not_cclass $I11, 32, rx325_tgt, $I10, rx325_eos
+ add rx325_pos, rx325_off, $I11
# rx enumcharlist negate=0
- ge rx320_pos, rx320_eos, rx320_fail
- sub $I10, rx320_pos, rx320_off
- substr $S10, rx320_tgt, $I10, 1
+ ge rx325_pos, rx325_eos, rx325_fail
+ sub $I10, rx325_pos, rx325_off
+ substr $S10, rx325_tgt, $I10, 1
index $I11, "],#", $S10
- lt $I11, 0, rx320_fail
- inc rx320_pos
+ lt $I11, 0, rx325_fail
+ inc rx325_pos
# rx pass
- rx320_cur."!cursor_pass"(rx320_pos, "")
- rx320_cur."!cursor_debug"("PASS ", "", " at pos=", rx320_pos)
- .return (rx320_cur)
- rx320_fail:
- (rx320_rep, rx320_pos, $I10, $P10) = rx320_cur."!mark_fail"(0)
- lt rx320_pos, -1, rx320_done
- eq rx320_pos, -1, rx320_fail
+ rx325_cur."!cursor_pass"(rx325_pos, "")
+ rx325_cur."!cursor_debug"("PASS ", "", " at pos=", rx325_pos)
+ .return (rx325_cur)
+ rx325_fail:
+ (rx325_rep, rx325_pos, $I10, $P10) = rx325_cur."!mark_fail"(0)
+ lt rx325_pos, -1, rx325_done
+ eq rx325_pos, -1, rx325_fail
jump $I10
- rx320_done:
- rx320_cur."!cursor_fail"()
- rx320_cur."!cursor_debug"("FAIL ", "")
- .return (rx320_cur)
+ rx325_done:
+ rx325_cur."!cursor_fail"()
+ rx325_cur."!cursor_debug"("FAIL ", "")
+ .return (rx325_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "charnames" :subid("99_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "charnames" :subid("101_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
- .local string rx323_tgt
- .local int rx323_pos
- .local int rx323_off
- .local int rx323_eos
- .local int rx323_rep
- .local pmc rx323_cur
- (rx323_cur, rx323_pos, rx323_tgt) = self."!cursor_start"()
- rx323_cur."!cursor_debug"("START ", "charnames")
- rx323_cur."!cursor_caparray"("charname")
- .lex unicode:"$\x{a2}", rx323_cur
+ .local string rx328_tgt
+ .local int rx328_pos
+ .local int rx328_off
+ .local int rx328_eos
+ .local int rx328_rep
+ .local pmc rx328_cur
+ (rx328_cur, rx328_pos, rx328_tgt) = self."!cursor_start"()
+ rx328_cur."!cursor_debug"("START ", "charnames")
+ rx328_cur."!cursor_caparray"("charname")
+ .lex unicode:"$\x{a2}", rx328_cur
.local pmc match
.lex "$/", match
- length rx323_eos, rx323_tgt
- set rx323_off, 0
- lt rx323_pos, 2, rx323_start
- sub rx323_off, rx323_pos, 1
- substr rx323_tgt, rx323_tgt, rx323_off
- rx323_start:
+ length rx328_eos, rx328_tgt
+ gt rx328_pos, rx328_eos, rx328_done
+ set rx328_off, 0
+ lt rx328_pos, 2, rx328_start
+ sub rx328_off, rx328_pos, 1
+ substr rx328_tgt, rx328_tgt, rx328_off
+ rx328_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan326_done
- goto rxscan326_scan
- rxscan326_loop:
- ($P10) = rx323_cur."from"()
+ ne $I10, -1, rxscan331_done
+ goto rxscan331_scan
+ rxscan331_loop:
+ ($P10) = rx328_cur."from"()
inc $P10
- set rx323_pos, $P10
- ge rx323_pos, rx323_eos, rxscan326_done
- rxscan326_scan:
- set_addr $I10, rxscan326_loop
- rx323_cur."!mark_push"(0, rx323_pos, $I10)
- rxscan326_done:
-.annotate 'line', 115
- # rx rxquantr327 ** 1..*
- set_addr $I328, rxquantr327_done
- rx323_cur."!mark_push"(0, -1, $I328)
- rxquantr327_loop:
+ set rx328_pos, $P10
+ ge rx328_pos, rx328_eos, rxscan331_done
+ rxscan331_scan:
+ set_addr $I10, rxscan331_loop
+ rx328_cur."!mark_push"(0, rx328_pos, $I10)
+ rxscan331_done:
+.annotate 'line', 116
+ # rx rxquantr332 ** 1..*
+ set_addr $I333, rxquantr332_done
+ rx328_cur."!mark_push"(0, -1, $I333)
+ rxquantr332_loop:
# rx subrule "ws" subtype=method negate=
- rx323_cur."!cursor_pos"(rx323_pos)
- $P10 = rx323_cur."ws"()
- unless $P10, rx323_fail
- rx323_pos = $P10."pos"()
+ rx328_cur."!cursor_pos"(rx328_pos)
+ $P10 = rx328_cur."ws"()
+ unless $P10, rx328_fail
+ rx328_pos = $P10."pos"()
# rx subrule "charname" subtype=capture negate=
- rx323_cur."!cursor_pos"(rx323_pos)
- $P10 = rx323_cur."charname"()
- unless $P10, rx323_fail
- rx323_cur."!mark_push"(0, -1, 0, $P10)
+ rx328_cur."!cursor_pos"(rx328_pos)
+ $P10 = rx328_cur."charname"()
+ unless $P10, rx328_fail
+ rx328_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("charname")
- rx323_pos = $P10."pos"()
+ rx328_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx323_cur."!cursor_pos"(rx323_pos)
- $P10 = rx323_cur."ws"()
- unless $P10, rx323_fail
- rx323_pos = $P10."pos"()
- (rx323_rep) = rx323_cur."!mark_commit"($I328)
- rx323_cur."!mark_push"(rx323_rep, rx323_pos, $I328)
+ rx328_cur."!cursor_pos"(rx328_pos)
+ $P10 = rx328_cur."ws"()
+ unless $P10, rx328_fail
+ rx328_pos = $P10."pos"()
+ (rx328_rep) = rx328_cur."!mark_commit"($I333)
+ rx328_cur."!mark_push"(rx328_rep, rx328_pos, $I333)
# rx literal ","
- add $I11, rx323_pos, 1
- gt $I11, rx323_eos, rx323_fail
- sub $I11, rx323_pos, rx323_off
- substr $S10, rx323_tgt, $I11, 1
- ne $S10, ",", rx323_fail
- add rx323_pos, 1
- goto rxquantr327_loop
- rxquantr327_done:
+ add $I11, rx328_pos, 1
+ gt $I11, rx328_eos, rx328_fail
+ sub $I11, rx328_pos, rx328_off
+ substr $S10, rx328_tgt, $I11, 1
+ ne $S10, ",", rx328_fail
+ add rx328_pos, 1
+ goto rxquantr332_loop
+ rxquantr332_done:
# rx pass
- rx323_cur."!cursor_pass"(rx323_pos, "charnames")
- rx323_cur."!cursor_debug"("PASS ", "charnames", " at pos=", rx323_pos)
- .return (rx323_cur)
- rx323_fail:
-.annotate 'line', 33
- (rx323_rep, rx323_pos, $I10, $P10) = rx323_cur."!mark_fail"(0)
- lt rx323_pos, -1, rx323_done
- eq rx323_pos, -1, rx323_fail
+ rx328_cur."!cursor_pass"(rx328_pos, "charnames")
+ rx328_cur."!cursor_debug"("PASS ", "charnames", " at pos=", rx328_pos)
+ .return (rx328_cur)
+ rx328_fail:
+.annotate 'line', 33
+ (rx328_rep, rx328_pos, $I10, $P10) = rx328_cur."!mark_fail"(0)
+ lt rx328_pos, -1, rx328_done
+ eq rx328_pos, -1, rx328_fail
jump $I10
- rx323_done:
- rx323_cur."!cursor_fail"()
- rx323_cur."!cursor_debug"("FAIL ", "charnames")
- .return (rx323_cur)
+ rx328_done:
+ rx328_cur."!cursor_fail"()
+ rx328_cur."!cursor_debug"("FAIL ", "charnames")
+ .return (rx328_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charnames" :subid("100_1274022878.64768") :method
+.sub "!PREFIX__charnames" :subid("102_1275811471.14938") :method
.annotate 'line', 33
- new $P325, "ResizablePMCArray"
- push $P325, ""
- .return ($P325)
+ new $P330, "ResizablePMCArray"
+ push $P330, ""
+ .return ($P330)
.end
.namespace ["HLL";"Grammar"]
-.sub "charspec" :subid("101_1274022878.64768") :method :outer("11_1274022878.64768")
+.sub "charspec" :subid("103_1275811471.14938") :method :outer("11_1275811471.14938")
.annotate 'line', 33
- .local string rx330_tgt
- .local int rx330_pos
- .local int rx330_off
- .local int rx330_eos
- .local int rx330_rep
- .local pmc rx330_cur
- (rx330_cur, rx330_pos, rx330_tgt) = self."!cursor_start"()
- rx330_cur."!cursor_debug"("START ", "charspec")
- .lex unicode:"$\x{a2}", rx330_cur
+ .local string rx335_tgt
+ .local int rx335_pos
+ .local int rx335_off
+ .local int rx335_eos
+ .local int rx335_rep
+ .local pmc rx335_cur
+ (rx335_cur, rx335_pos, rx335_tgt) = self."!cursor_start"()
+ rx335_cur."!cursor_debug"("START ", "charspec")
+ .lex unicode:"$\x{a2}", rx335_cur
.local pmc match
.lex "$/", match
- length rx330_eos, rx330_tgt
- set rx330_off, 0
- lt rx330_pos, 2, rx330_start
- sub rx330_off, rx330_pos, 1
- substr rx330_tgt, rx330_tgt, rx330_off
- rx330_start:
+ length rx335_eos, rx335_tgt
+ gt rx335_pos, rx335_eos, rx335_done
+ set rx335_off, 0
+ lt rx335_pos, 2, rx335_start
+ sub rx335_off, rx335_pos, 1
+ substr rx335_tgt, rx335_tgt, rx335_off
+ rx335_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan335_done
- goto rxscan335_scan
- rxscan335_loop:
- ($P10) = rx330_cur."from"()
+ ne $I10, -1, rxscan340_done
+ goto rxscan340_scan
+ rxscan340_loop:
+ ($P10) = rx335_cur."from"()
inc $P10
- set rx330_pos, $P10
- ge rx330_pos, rx330_eos, rxscan335_done
- rxscan335_scan:
- set_addr $I10, rxscan335_loop
- rx330_cur."!mark_push"(0, rx330_pos, $I10)
- rxscan335_done:
- alt336_0:
-.annotate 'line', 117
- set_addr $I10, alt336_1
- rx330_cur."!mark_push"(0, rx330_pos, $I10)
+ set rx335_pos, $P10
+ ge rx335_pos, rx335_eos, rxscan340_done
+ rxscan340_scan:
+ set_addr $I10, rxscan340_loop
+ rx335_cur."!mark_push"(0, rx335_pos, $I10)
+ rxscan340_done:
+ alt341_0:
.annotate 'line', 118
+ set_addr $I10, alt341_1
+ rx335_cur."!mark_push"(0, rx335_pos, $I10)
+.annotate 'line', 119
# rx literal "["
- add $I11, rx330_pos, 1
- gt $I11, rx330_eos, rx330_fail
- sub $I11, rx330_pos, rx330_off
- substr $S10, rx330_tgt, $I11, 1
- ne $S10, "[", rx330_fail
- add rx330_pos, 1
+ add $I11, rx335_pos, 1
+ gt $I11, rx335_eos, rx335_fail
+ sub $I11, rx335_pos, rx335_off
+ substr $S10, rx335_tgt, $I11, 1
+ ne $S10, "[", rx335_fail
+ add rx335_pos, 1
# rx subrule "charnames" subtype=capture negate=
- rx330_cur."!cursor_pos"(rx330_pos)
- $P10 = rx330_cur."charnames"()
- unless $P10, rx330_fail
- rx330_cur."!mark_push"(0, -1, 0, $P10)
+ rx335_cur."!cursor_pos"(rx335_pos)
+ $P10 = rx335_cur."charnames"()
+ unless $P10, rx335_fail
+ rx335_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("charnames")
- rx330_pos = $P10."pos"()
+ rx335_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx330_pos, 1
- gt $I11, rx330_eos, rx330_fail
- sub $I11, rx330_pos, rx330_off
- substr $S10, rx330_tgt, $I11, 1
- ne $S10, "]", rx330_fail
- add rx330_pos, 1
- goto alt336_end
- alt336_1:
- set_addr $I10, alt336_2
- rx330_cur."!mark_push"(0, rx330_pos, $I10)
-.annotate 'line', 119
+ add $I11, rx335_pos, 1
+ gt $I11, rx335_eos, rx335_fail
+ sub $I11, rx335_pos, rx335_off
+ substr $S10, rx335_tgt, $I11, 1
+ ne $S10, "]", rx335_fail
+ add rx335_pos, 1
+ goto alt341_end
+ alt341_1:
+ set_addr $I10, alt341_2
+ rx335_cur."!mark_push"(0, rx335_pos, $I10)
+.annotate 'line', 120
# rx charclass_q d r 1..-1
- sub $I10, rx330_pos, rx330_off
- find_not_cclass $I11, 8, rx330_tgt, $I10, rx330_eos
+ sub $I10, rx335_pos, rx335_off
+ find_not_cclass $I11, 8, rx335_tgt, $I10, rx335_eos
add $I12, $I10, 1
- lt $I11, $I12, rx330_fail
- add rx330_pos, rx330_off, $I11
- # rx rxquantr337 ** 0..*
- set_addr $I338, rxquantr337_done
- rx330_cur."!mark_push"(0, rx330_pos, $I338)
- rxquantr337_loop:
+ lt $I11, $I12, rx335_fail
+ add rx335_pos, rx335_off, $I11
+ # rx rxquantr342 ** 0..*
+ set_addr $I343, rxquantr342_done
+ rx335_cur."!mark_push"(0, rx335_pos, $I343)
+ rxquantr342_loop:
# rx literal "_"
- add $I11, rx330_pos, 1
- gt $I11, rx330_eos, rx330_fail
- sub $I11, rx330_pos, rx330_off
- substr $S10, rx330_tgt, $I11, 1
- ne $S10, "_", rx330_fail
- add rx330_pos, 1
+ add $I11, rx335_pos, 1
+ gt $I11, rx335_eos, rx335_fail
+ sub $I11, rx335_pos, rx335_off
+ substr $S10, rx335_tgt, $I11, 1
+ ne $S10, "_", rx335_fail
+ add rx335_pos, 1
# rx charclass_q d r 1..-1
- sub $I10, rx330_pos, rx330_off
- find_not_cclass $I11, 8, rx330_tgt, $I10, rx330_eos
+ sub $I10, rx335_pos, rx335_off
+ find_not_cclass $I11, 8, rx335_tgt, $I10, rx335_eos
add $I12, $I10, 1
- lt $I11, $I12, rx330_fail
- add rx330_pos, rx330_off, $I11
- (rx330_rep) = rx330_cur."!mark_commit"($I338)
- rx330_cur."!mark_push"(rx330_rep, rx330_pos, $I338)
- goto rxquantr337_loop
- rxquantr337_done:
- goto alt336_end
- alt336_2:
- set_addr $I10, alt336_3
- rx330_cur."!mark_push"(0, rx330_pos, $I10)
-.annotate 'line', 120
+ lt $I11, $I12, rx335_fail
+ add rx335_pos, rx335_off, $I11
+ (rx335_rep) = rx335_cur."!mark_commit"($I343)
+ rx335_cur."!mark_push"(rx335_rep, rx335_pos, $I343)
+ goto rxquantr342_loop
+ rxquantr342_done:
+ goto alt341_end
+ alt341_2:
+ set_addr $I10, alt341_3
+ rx335_cur."!mark_push"(0, rx335_pos, $I10)
+.annotate 'line', 121
# rx enumcharlist negate=0
- ge rx330_pos, rx330_eos, rx330_fail
- sub $I10, rx330_pos, rx330_off
- substr $S10, rx330_tgt, $I10, 1
+ ge rx335_pos, rx335_eos, rx335_fail
+ sub $I10, rx335_pos, rx335_off
+ substr $S10, rx335_tgt, $I10, 1
index $I11, "?@ABCDEFGHIJKLMNOPQRSTUVWXYZ", $S10
- lt $I11, 0, rx330_fail
- inc rx330_pos
- goto alt336_end
- alt336_3:
-.annotate 'line', 121
+ lt $I11, 0, rx335_fail
+ inc rx335_pos
+ goto alt341_end
+ alt341_3:
+.annotate 'line', 122
# rx subrule "panic" subtype=method negate=
- rx330_cur."!cursor_pos"(rx330_pos)
- $P10 = rx330_cur."panic"("Unrecognized \\c character")
- unless $P10, rx330_fail
- rx330_pos = $P10."pos"()
- alt336_end:
-.annotate 'line', 116
+ rx335_cur."!cursor_pos"(rx335_pos)
+ $P10 = rx335_cur."panic"("Unrecognized \\c character")
+ unless $P10, rx335_fail
+ rx335_pos = $P10."pos"()
+ alt341_end:
+.annotate 'line', 117
# rx pass
- rx330_cur."!cursor_pass"(rx330_pos, "charspec")
- rx330_cur."!cursor_debug"("PASS ", "charspec", " at pos=", rx330_pos)
- .return (rx330_cur)
- rx330_fail:
-.annotate 'line', 33
- (rx330_rep, rx330_pos, $I10, $P10) = rx330_cur."!mark_fail"(0)
- lt rx330_pos, -1, rx330_done
- eq rx330_pos, -1, rx330_fail
+ rx335_cur."!cursor_pass"(rx335_pos, "charspec")
+ rx335_cur."!cursor_debug"("PASS ", "charspec", " at pos=", rx335_pos)
+ .return (rx335_cur)
+ rx335_fail:
+.annotate 'line', 33
+ (rx335_rep, rx335_pos, $I10, $P10) = rx335_cur."!mark_fail"(0)
+ lt rx335_pos, -1, rx335_done
+ eq rx335_pos, -1, rx335_fail
jump $I10
- rx330_done:
- rx330_cur."!cursor_fail"()
- rx330_cur."!cursor_debug"("FAIL ", "charspec")
- .return (rx330_cur)
+ rx335_done:
+ rx335_cur."!cursor_fail"()
+ rx335_cur."!cursor_debug"("FAIL ", "charspec")
+ .return (rx335_cur)
.return ()
.end
.namespace ["HLL";"Grammar"]
-.sub "!PREFIX__charspec" :subid("102_1274022878.64768") :method
-.annotate 'line', 33
- $P332 = self."!PREFIX__!subrule"("", "")
- $P333 = self."!PREFIX__!subrule"("charnames", "[")
- new $P334, "ResizablePMCArray"
- push $P334, $P332
- push $P334, "Z"
- push $P334, "Y"
- push $P334, "X"
- push $P334, "W"
- push $P334, "V"
- push $P334, "U"
- push $P334, "T"
- push $P334, "S"
- push $P334, "R"
- push $P334, "Q"
- push $P334, "P"
- push $P334, "O"
- push $P334, "N"
- push $P334, "M"
- push $P334, "L"
- push $P334, "K"
- push $P334, "J"
- push $P334, "I"
- push $P334, "H"
- push $P334, "G"
- push $P334, "F"
- push $P334, "E"
- push $P334, "D"
- push $P334, "C"
- push $P334, "B"
- push $P334, "A"
- push $P334, "@"
- push $P334, "?"
- push $P334, ""
- push $P334, $P333
- .return ($P334)
+.sub "!PREFIX__charspec" :subid("104_1275811471.14938") :method
+.annotate 'line', 33
+ $P337 = self."!PREFIX__!subrule"("panic", "")
+ $P338 = self."!PREFIX__!subrule"("charnames", "[")
+ new $P339, "ResizablePMCArray"
+ push $P339, $P337
+ push $P339, "Z"
+ push $P339, "Y"
+ push $P339, "X"
+ push $P339, "W"
+ push $P339, "V"
+ push $P339, "U"
+ push $P339, "T"
+ push $P339, "S"
+ push $P339, "R"
+ push $P339, "Q"
+ push $P339, "P"
+ push $P339, "O"
+ push $P339, "N"
+ push $P339, "M"
+ push $P339, "L"
+ push $P339, "K"
+ push $P339, "J"
+ push $P339, "I"
+ push $P339, "H"
+ push $P339, "G"
+ push $P339, "F"
+ push $P339, "E"
+ push $P339, "D"
+ push $P339, "C"
+ push $P339, "B"
+ push $P339, "A"
+ push $P339, "@"
+ push $P339, "?"
+ push $P339, ""
+ push $P339, $P338
+ .return ($P339)
.end
.namespace ["HLL";"Grammar"]
-.sub "_block339" :load :anon :subid("103_1274022878.64768")
+.sub "_block344" :load :anon :subid("105_1275811471.14938")
.annotate 'line', 5
- .const 'Sub' $P341 = "11_1274022878.64768"
- $P342 = $P341()
- .return ($P342)
+ .const 'Sub' $P346 = "11_1275811471.14938"
+ $P347 = $P346()
+ .return ($P347)
.end
.namespace []
-.sub "_block344" :load :anon :subid("104_1274022878.64768")
+.sub "_block349" :load :anon :subid("106_1275811471.14938")
.annotate 'line', 1
- .const 'Sub' $P346 = "10_1274022878.64768"
- $P347 = $P346()
- .return ($P347)
+ .const 'Sub' $P351 = "10_1275811471.14938"
+ $P352 = $P351()
+ .return ($P352)
.end
### .include 'gen/hllgrammar-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1274022880.65586")
+.sub "_block11" :anon :subid("10_1275811473.30481")
.annotate 'line', 0
get_hll_global $P14, ["HLL";"Actions"], "_block13"
capture_lex $P14
+.annotate 'line', 1
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
.annotate 'line', 3
get_hll_global $P14, ["HLL";"Actions"], "_block13"
capture_lex $P14
- $P575 = $P14()
+ $P627 = $P14()
.annotate 'line', 1
- .return ($P575)
- .const 'Sub' $P577 = "50_1274022880.65586"
- .return ($P577)
+ .return ($P627)
+ .const 'Sub' $P629 = "55_1275811473.30481"
+ .return ($P629)
.end
.namespace []
-.sub "" :load :init :subid("post51") :outer("10_1274022880.65586")
+.sub "" :load :init :subid("post56") :outer("10_1275811473.30481")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1274022880.65586"
+ .const 'Sub' $P12 = "10_1275811473.30481"
.local pmc block
set block, $P12
- $P580 = get_root_global ["parrot"], "P6metaclass"
- $P580."new_class"("HLL::Actions")
+ $P632 = get_root_global ["parrot"], "P6metaclass"
+ $P632."new_class"("HLL::Actions")
.end
.namespace ["HLL";"Actions"]
-.sub "_block13" :subid("11_1274022880.65586") :outer("10_1274022880.65586")
+.sub "_block13" :subid("11_1275811473.30481") :outer("10_1275811473.30481")
.annotate 'line', 3
- .const 'Sub' $P553 = "48_1274022880.65586"
- capture_lex $P553
- .const 'Sub' $P528 = "46_1274022880.65586"
- capture_lex $P528
- .const 'Sub' $P498 = "45_1274022880.65586"
- capture_lex $P498
- .const 'Sub' $P479 = "44_1274022880.65586"
- capture_lex $P479
- .const 'Sub' $P472 = "43_1274022880.65586"
- capture_lex $P472
- .const 'Sub' $P462 = "42_1274022880.65586"
- capture_lex $P462
- .const 'Sub' $P445 = "41_1274022880.65586"
+ .const 'Sub' $P605 = "53_1275811473.30481"
+ capture_lex $P605
+ .const 'Sub' $P580 = "51_1275811473.30481"
+ capture_lex $P580
+ .const 'Sub' $P550 = "50_1275811473.30481"
+ capture_lex $P550
+ .const 'Sub' $P531 = "49_1275811473.30481"
+ capture_lex $P531
+ .const 'Sub' $P524 = "48_1275811473.30481"
+ capture_lex $P524
+ .const 'Sub' $P514 = "47_1275811473.30481"
+ capture_lex $P514
+ .const 'Sub' $P497 = "46_1275811473.30481"
+ capture_lex $P497
+ .const 'Sub' $P480 = "45_1275811473.30481"
+ capture_lex $P480
+ .const 'Sub' $P473 = "44_1275811473.30481"
+ capture_lex $P473
+ .const 'Sub' $P466 = "43_1275811473.30481"
+ capture_lex $P466
+ .const 'Sub' $P459 = "42_1275811473.30481"
+ capture_lex $P459
+ .const 'Sub' $P452 = "41_1275811473.30481"
+ capture_lex $P452
+ .const 'Sub' $P445 = "40_1275811473.30481"
capture_lex $P445
- .const 'Sub' $P428 = "40_1274022880.65586"
+ .const 'Sub' $P438 = "39_1275811473.30481"
+ capture_lex $P438
+ .const 'Sub' $P428 = "38_1275811473.30481"
capture_lex $P428
- .const 'Sub' $P421 = "39_1274022880.65586"
+ .const 'Sub' $P421 = "37_1275811473.30481"
capture_lex $P421
- .const 'Sub' $P414 = "38_1274022880.65586"
- capture_lex $P414
- .const 'Sub' $P407 = "37_1274022880.65586"
- capture_lex $P407
- .const 'Sub' $P400 = "36_1274022880.65586"
- capture_lex $P400
- .const 'Sub' $P393 = "35_1274022880.65586"
- capture_lex $P393
- .const 'Sub' $P383 = "34_1274022880.65586"
- capture_lex $P383
- .const 'Sub' $P376 = "33_1274022880.65586"
- capture_lex $P376
- .const 'Sub' $P360 = "32_1274022880.65586"
- capture_lex $P360
- .const 'Sub' $P285 = "30_1274022880.65586"
- capture_lex $P285
- .const 'Sub' $P222 = "27_1274022880.65586"
+ .const 'Sub' $P405 = "36_1275811473.30481"
+ capture_lex $P405
+ .const 'Sub' $P330 = "34_1275811473.30481"
+ capture_lex $P330
+ .const 'Sub' $P267 = "31_1275811473.30481"
+ capture_lex $P267
+ .const 'Sub' $P258 = "30_1275811473.30481"
+ capture_lex $P258
+ .const 'Sub' $P249 = "29_1275811473.30481"
+ capture_lex $P249
+ .const 'Sub' $P240 = "28_1275811473.30481"
+ capture_lex $P240
+ .const 'Sub' $P231 = "27_1275811473.30481"
+ capture_lex $P231
+ .const 'Sub' $P222 = "26_1275811473.30481"
capture_lex $P222
- .const 'Sub' $P213 = "26_1274022880.65586"
- capture_lex $P213
- .const 'Sub' $P204 = "25_1274022880.65586"
- capture_lex $P204
- .const 'Sub' $P195 = "24_1274022880.65586"
- capture_lex $P195
- .const 'Sub' $P186 = "23_1274022880.65586"
- capture_lex $P186
- .const 'Sub' $P177 = "22_1274022880.65586"
- capture_lex $P177
- .const 'Sub' $P167 = "21_1274022880.65586"
- capture_lex $P167
- .const 'Sub' $P157 = "20_1274022880.65586"
- capture_lex $P157
- .const 'Sub' $P149 = "19_1274022880.65586"
- capture_lex $P149
- .const 'Sub' $P139 = "18_1274022880.65586"
- capture_lex $P139
- .const 'Sub' $P129 = "17_1274022880.65586"
- capture_lex $P129
- .const 'Sub' $P28 = "14_1274022880.65586"
+ .const 'Sub' $P212 = "25_1275811473.30481"
+ capture_lex $P212
+ .const 'Sub' $P202 = "24_1275811473.30481"
+ capture_lex $P202
+ .const 'Sub' $P194 = "23_1275811473.30481"
+ capture_lex $P194
+ .const 'Sub' $P184 = "22_1275811473.30481"
+ capture_lex $P184
+ .const 'Sub' $P174 = "21_1275811473.30481"
+ capture_lex $P174
+ .const 'Sub' $P73 = "18_1275811473.30481"
+ capture_lex $P73
+ .const 'Sub' $P35 = "15_1275811473.30481"
+ capture_lex $P35
+ .const 'Sub' $P28 = "14_1275811473.30481"
capture_lex $P28
- .const 'Sub' $P22 = "13_1274022880.65586"
+ .const 'Sub' $P22 = "13_1275811473.30481"
capture_lex $P22
- .const 'Sub' $P15 = "12_1274022880.65586"
+ .const 'Sub' $P15 = "12_1275811473.30481"
capture_lex $P15
-.annotate 'line', 197
- .const 'Sub' $P553 = "48_1274022880.65586"
- newclosure $P570, $P553
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
+.annotate 'line', 225
+ .const 'Sub' $P605 = "53_1275811473.30481"
+ newclosure $P622, $P605
.annotate 'line', 3
- .return ($P570)
- .const 'Sub' $P572 = "49_1274022880.65586"
- .return ($P572)
+ .return ($P622)
+ .const 'Sub' $P624 = "54_1275811473.30481"
+ .return ($P624)
.end
.namespace ["HLL";"Actions"]
-.sub "string_to_int" :subid("12_1274022880.65586") :outer("11_1274022880.65586")
+.include "except_types.pasm"
+.sub "string_to_int" :subid("12_1275811473.30481") :outer("11_1275811473.30481")
.param pmc param_18
.param pmc param_19
.annotate 'line', 3
new $P17, 'ExceptionHandler'
set_addr $P17, control_16
- $P17."handle_types"(57)
+ $P17."handle_types"(.CONTROL_RETURN)
push_eh $P17
.lex "$src", param_18
.lex "$base", param_19
@@ -4878,12 +5071,13 @@
.namespace ["HLL";"Actions"]
-.sub "ints_to_string" :subid("13_1274022880.65586") :outer("11_1274022880.65586")
+.include "except_types.pasm"
+.sub "ints_to_string" :subid("13_1275811473.30481") :outer("11_1275811473.30481")
.param pmc param_25
.annotate 'line', 37
new $P24, 'ExceptionHandler'
set_addr $P24, control_23
- $P24."handle_types"(57)
+ $P24."handle_types"(.CONTROL_RETURN)
push_eh $P24
.lex "$ints", param_25
.annotate 'line', 38
@@ -4919,539 +5113,583 @@
.namespace ["HLL";"Actions"]
-.sub "EXPR" :subid("14_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_31
- .param pmc param_32 :optional
- .param int has_param_32 :opt_flag
+.include "except_types.pasm"
+.sub "CTXSAVE" :subid("14_1275811473.30481") :method :outer("11_1275811473.30481")
.annotate 'line', 62
- .const 'Sub' $P111 = "16_1274022880.65586"
- capture_lex $P111
- .const 'Sub' $P78 = "15_1274022880.65586"
- capture_lex $P78
new $P30, 'ExceptionHandler'
set_addr $P30, control_29
- $P30."handle_types"(57)
+ $P30."handle_types"(.CONTROL_RETURN)
push_eh $P30
.lex "self", self
- .lex "$/", param_31
- if has_param_32, optparam_52
- new $P33, "Undef"
- set param_32, $P33
- optparam_52:
- .lex "$key", param_32
-.annotate 'line', 64
- new $P34, "Undef"
- .lex "$past", $P34
.annotate 'line', 63
- find_lex $P36, "$key"
- if $P36, unless_35_end
- new $P37, "Exception"
- set $P37['type'], 57
- new $P38, "Integer"
- assign $P38, 0
- setattribute $P37, 'payload', $P38
- throw $P37
- unless_35_end:
-.annotate 'line', 64
- find_lex $P40, "$/"
- $P41 = $P40."ast"()
- set $P39, $P41
- defined $I43, $P39
- if $I43, default_42
- find_lex $P44, "$/"
- unless_null $P44, vivify_53
- $P44 = root_new ['parrot';'Hash']
- vivify_53:
- set $P45, $P44["OPER"]
- unless_null $P45, vivify_54
- new $P45, "Undef"
- vivify_54:
- $P46 = $P45."ast"()
- set $P39, $P46
- default_42:
- store_lex "$past", $P39
-.annotate 'line', 65
- find_lex $P48, "$past"
- if $P48, unless_47_end
-.annotate 'line', 66
- get_hll_global $P49, ["PAST"], "Op"
- find_lex $P50, "$/"
- $P51 = $P49."new"($P50 :named("node"))
- store_lex "$past", $P51
-.annotate 'line', 67
- find_lex $P53, "$/"
- unless_null $P53, vivify_55
- $P53 = root_new ['parrot';'Hash']
- vivify_55:
- set $P54, $P53["OPER"]
- unless_null $P54, vivify_56
- $P54 = root_new ['parrot';'Hash']
- vivify_56:
- set $P55, $P54["O"]
- unless_null $P55, vivify_57
- $P55 = root_new ['parrot';'Hash']
- vivify_57:
- set $P56, $P55["pasttype"]
- unless_null $P56, vivify_58
- new $P56, "Undef"
- vivify_58:
- if $P56, if_52
-.annotate 'line', 68
- find_lex $P64, "$/"
- unless_null $P64, vivify_59
- $P64 = root_new ['parrot';'Hash']
- vivify_59:
- set $P65, $P64["OPER"]
- unless_null $P65, vivify_60
- $P65 = root_new ['parrot';'Hash']
- vivify_60:
- set $P66, $P65["O"]
- unless_null $P66, vivify_61
- $P66 = root_new ['parrot';'Hash']
- vivify_61:
- set $P67, $P66["pirop"]
- unless_null $P67, vivify_62
- new $P67, "Undef"
- vivify_62:
- unless $P67, if_63_end
- find_lex $P68, "$past"
- find_lex $P69, "$/"
- unless_null $P69, vivify_63
- $P69 = root_new ['parrot';'Hash']
- vivify_63:
- set $P70, $P69["OPER"]
- unless_null $P70, vivify_64
- $P70 = root_new ['parrot';'Hash']
- vivify_64:
- set $P71, $P70["O"]
- unless_null $P71, vivify_65
- $P71 = root_new ['parrot';'Hash']
- vivify_65:
- set $P72, $P71["pirop"]
- unless_null $P72, vivify_66
- new $P72, "Undef"
- vivify_66:
- set $S73, $P72
- $P68."pirop"($S73)
- if_63_end:
- goto if_52_end
- if_52:
-.annotate 'line', 67
- find_lex $P57, "$past"
- find_lex $P58, "$/"
- unless_null $P58, vivify_67
- $P58 = root_new ['parrot';'Hash']
- vivify_67:
- set $P59, $P58["OPER"]
- unless_null $P59, vivify_68
- $P59 = root_new ['parrot';'Hash']
- vivify_68:
- set $P60, $P59["O"]
- unless_null $P60, vivify_69
- $P60 = root_new ['parrot';'Hash']
- vivify_69:
- set $P61, $P60["pasttype"]
- unless_null $P61, vivify_70
- new $P61, "Undef"
- vivify_70:
- set $S62, $P61
- $P57."pasttype"($S62)
- if_52_end:
+ get_hll_global $P31, ["PAST"], "Op"
.annotate 'line', 69
- find_lex $P75, "$past"
- $P76 = $P75."name"()
- if $P76, unless_74_end
- .const 'Sub' $P78 = "15_1274022880.65586"
- capture_lex $P78
- $P78()
- unless_74_end:
- unless_47_end:
-.annotate 'line', 80
- find_lex $P98, "$key"
- set $S99, $P98
- iseq $I100, $S99, "POSTFIX"
- if $I100, if_97
-.annotate 'line', 82
- find_lex $P106, "$/"
- $P107 = $P106."list"()
- defined $I108, $P107
- unless $I108, for_undef_74
- iter $P105, $P107
- new $P123, 'ExceptionHandler'
- set_addr $P123, loop122_handler
- $P123."handle_types"(64, 66, 65)
- push_eh $P123
- loop122_test:
- unless $P105, loop122_done
- shift $P109, $P105
- loop122_redo:
- .const 'Sub' $P111 = "16_1274022880.65586"
- capture_lex $P111
- $P111($P109)
- loop122_next:
- goto loop122_test
- loop122_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P124, exception, 'type'
- eq $P124, 64, loop122_next
- eq $P124, 66, loop122_redo
- loop122_done:
- pop_eh
- for_undef_74:
-.annotate 'line', 81
- goto if_97_end
- if_97:
-.annotate 'line', 80
- find_lex $P101, "$past"
- find_lex $P102, "$/"
- unless_null $P102, vivify_75
- $P102 = root_new ['parrot';'ResizablePMCArray']
- vivify_75:
- set $P103, $P102[0]
- unless_null $P103, vivify_76
- new $P103, "Undef"
- vivify_76:
- $P104 = $P103."ast"()
- $P101."unshift"($P104)
- if_97_end:
-.annotate 'line', 84
- find_lex $P125, "$/"
- find_lex $P126, "$past"
- $P127 = $P125."!make"($P126)
+ new $P32, "ResizablePMCArray"
+ push $P32, " $P0 = find_dynamic_lex \"$*CTXSAVE\""
+ push $P32, " if null $P0 goto ctxsave_done"
+ push $P32, " $I0 = can $P0, \"ctxsave\""
+ push $P32, " unless $I0 goto ctxsave_done"
+ push $P32, " $P0.\"ctxsave\"()"
+ push $P32, " ctxsave_done:"
+ $P33 = $P31."new"($P32 :named("inline"))
.annotate 'line', 62
- .return ($P127)
+ .return ($P33)
control_29:
.local pmc exception
.get_results (exception)
- getattribute $P128, exception, "payload"
- .return ($P128)
+ getattribute $P34, exception, "payload"
+ .return ($P34)
.end
.namespace ["HLL";"Actions"]
-.sub "_block77" :anon :subid("15_1274022880.65586") :outer("14_1274022880.65586")
-.annotate 'line', 71
- new $P79, "Undef"
- .lex "$name", $P79
-.annotate 'line', 70
- find_lex $P81, "$key"
- set $S82, $P81
- iseq $I83, $S82, "LIST"
- unless $I83, if_80_end
- new $P84, "String"
- assign $P84, "infix"
- store_lex "$key", $P84
- if_80_end:
-.annotate 'line', 71
-
- $P0 = find_lex '$key'
- $S0 = $P0
- $S0 = downcase $S0
- $P85 = box $S0
-
- concat $P86, $P85, ":<"
+.include "except_types.pasm"
+.sub "SET_BLOCK_OUTER_CTX" :subid("15_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_38
.annotate 'line', 76
- find_lex $P87, "$/"
- unless_null $P87, vivify_71
- $P87 = root_new ['parrot';'Hash']
- vivify_71:
- set $P88, $P87["OPER"]
- unless_null $P88, vivify_72
- $P88 = root_new ['parrot';'Hash']
- vivify_72:
- set $P89, $P88["sym"]
- unless_null $P89, vivify_73
- new $P89, "Undef"
- vivify_73:
- concat $P90, $P86, $P89
- concat $P91, $P90, ">"
- store_lex "$name", $P91
+ .const 'Sub' $P48 = "16_1275811473.30481"
+ capture_lex $P48
+ new $P37, 'ExceptionHandler'
+ set_addr $P37, control_36
+ $P37."handle_types"(.CONTROL_RETURN)
+ push_eh $P37
+ .lex "self", self
+ .lex "$block", param_38
.annotate 'line', 77
- find_lex $P92, "$past"
- new $P93, "String"
- assign $P93, "&"
- find_lex $P94, "$name"
- concat $P95, $P93, $P94
- $P96 = $P92."name"($P95)
-.annotate 'line', 69
- .return ($P96)
+ new $P39, "Undef"
+ .lex "$outer_ctx", $P39
+ find_dynamic_lex $P40, "%*COMPILING"
+ unless_null $P40, vivify_57
+ get_hll_global $P40, "%COMPILING"
+ unless_null $P40, vivify_58
+ die "Contextual %*COMPILING not found"
+ vivify_58:
+ vivify_57:
+ set $P41, $P40["%?OPTIONS"]
+ unless_null $P41, vivify_59
+ $P41 = root_new ['parrot';'Hash']
+ vivify_59:
+ set $P42, $P41["outer_ctx"]
+ unless_null $P42, vivify_60
+ new $P42, "Undef"
+ vivify_60:
+ store_lex "$outer_ctx", $P42
+.annotate 'line', 78
+ find_lex $P45, "$outer_ctx"
+ defined $I46, $P45
+ if $I46, if_44
+ new $P43, 'Integer'
+ set $P43, $I46
+ goto if_44_end
+ if_44:
+ .const 'Sub' $P48 = "16_1275811473.30481"
+ capture_lex $P48
+ $P71 = $P48()
+ set $P43, $P71
+ if_44_end:
+.annotate 'line', 76
+ .return ($P43)
+ control_36:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P72, exception, "payload"
+ .return ($P72)
.end
.namespace ["HLL";"Actions"]
-.sub "_block110" :anon :subid("16_1274022880.65586") :outer("14_1274022880.65586")
- .param pmc param_112
+.include "except_types.pasm"
+.sub "_block47" :anon :subid("16_1275811473.30481") :outer("15_1275811473.30481")
+.annotate 'line', 78
+ .const 'Sub' $P62 = "17_1275811473.30481"
+ capture_lex $P62
+.annotate 'line', 79
+ $P49 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@ns", $P49
+ find_lex $P50, "$outer_ctx"
+ getattribute $P51, $P50, "current_namespace"
+ $P52 = $P51."get_name"()
+ store_lex "@ns", $P52
+.annotate 'line', 80
+ find_lex $P53, "@ns"
+ $P53."shift"()
+.annotate 'line', 81
+ find_lex $P54, "$block"
+ find_lex $P55, "@ns"
+ $P54."namespace"($P55)
.annotate 'line', 82
- .lex "$_", param_112
- find_lex $P115, "$_"
- $P116 = $P115."ast"()
- defined $I117, $P116
- if $I117, if_114
- new $P113, 'Integer'
- set $P113, $I117
- goto if_114_end
- if_114:
- find_lex $P118, "$past"
- find_lex $P119, "$_"
- $P120 = $P119."ast"()
- $P121 = $P118."push"($P120)
- set $P113, $P121
- if_114_end:
- .return ($P113)
+ find_lex $P57, "$outer_ctx"
+ $P58 = $P57."lexpad_full"()
+ defined $I59, $P58
+ unless $I59, for_undef_61
+ iter $P56, $P58
+ new $P69, 'ExceptionHandler'
+ set_addr $P69, loop68_handler
+ $P69."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P69
+ loop68_test:
+ unless $P56, loop68_done
+ shift $P60, $P56
+ loop68_redo:
+ .const 'Sub' $P62 = "17_1275811473.30481"
+ capture_lex $P62
+ $P62($P60)
+ loop68_next:
+ goto loop68_test
+ loop68_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P70, exception, 'type'
+ eq $P70, .CONTROL_LOOP_NEXT, loop68_next
+ eq $P70, .CONTROL_LOOP_REDO, loop68_redo
+ loop68_done:
+ pop_eh
+ for_undef_61:
+.annotate 'line', 78
+ .return ($P56)
.end
.namespace ["HLL";"Actions"]
-.sub "term:sym<circumfix>" :subid("17_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_132
-.annotate 'line', 87
- new $P131, 'ExceptionHandler'
- set_addr $P131, control_130
- $P131."handle_types"(57)
- push_eh $P131
- .lex "self", self
- .lex "$/", param_132
- find_lex $P133, "$/"
- find_lex $P134, "$/"
- unless_null $P134, vivify_77
- $P134 = root_new ['parrot';'Hash']
- vivify_77:
- set $P135, $P134["circumfix"]
- unless_null $P135, vivify_78
- new $P135, "Undef"
- vivify_78:
- $P136 = $P135."ast"()
- $P137 = $P133."!make"($P136)
- .return ($P137)
- control_130:
- .local pmc exception
- .get_results (exception)
- getattribute $P138, exception, "payload"
- .return ($P138)
+.sub "_block61" :anon :subid("17_1275811473.30481") :outer("16_1275811473.30481")
+ .param pmc param_63
+.annotate 'line', 82
+ .lex "$_", param_63
+.annotate 'line', 83
+ find_lex $P64, "$block"
+ find_lex $P65, "$_"
+ $P66 = $P65."key"()
+ $P67 = $P64."symbol"($P66, "lexical" :named("scope"))
+.annotate 'line', 82
+ .return ($P67)
.end
.namespace ["HLL";"Actions"]
-.sub "termish" :subid("18_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_142
+.include "except_types.pasm"
+.sub "EXPR" :subid("18_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_76
+ .param pmc param_77 :optional
+ .param int has_param_77 :opt_flag
.annotate 'line', 89
- new $P141, 'ExceptionHandler'
- set_addr $P141, control_140
- $P141."handle_types"(57)
- push_eh $P141
- .lex "self", self
- .lex "$/", param_142
- find_lex $P143, "$/"
- find_lex $P144, "$/"
- unless_null $P144, vivify_79
- $P144 = root_new ['parrot';'Hash']
- vivify_79:
- set $P145, $P144["term"]
- unless_null $P145, vivify_80
- new $P145, "Undef"
- vivify_80:
- $P146 = $P145."ast"()
- $P147 = $P143."!make"($P146)
- .return ($P147)
- control_140:
- .local pmc exception
- .get_results (exception)
- getattribute $P148, exception, "payload"
- .return ($P148)
-.end
-
-
-.namespace ["HLL";"Actions"]
-.sub "nullterm" :subid("19_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_152
-.annotate 'line', 90
- new $P151, 'ExceptionHandler'
- set_addr $P151, control_150
- $P151."handle_types"(57)
- push_eh $P151
+ .const 'Sub' $P156 = "20_1275811473.30481"
+ capture_lex $P156
+ .const 'Sub' $P123 = "19_1275811473.30481"
+ capture_lex $P123
+ new $P75, 'ExceptionHandler'
+ set_addr $P75, control_74
+ $P75."handle_types"(.CONTROL_RETURN)
+ push_eh $P75
.lex "self", self
- .lex "$/", param_152
- find_lex $P153, "$/"
- $P154 = new ['Undef']
- $P155 = $P153."!make"($P154)
- .return ($P155)
- control_150:
+ .lex "$/", param_76
+ if has_param_77, optparam_62
+ new $P78, "Undef"
+ set param_77, $P78
+ optparam_62:
+ .lex "$key", param_77
+.annotate 'line', 91
+ new $P79, "Undef"
+ .lex "$past", $P79
+.annotate 'line', 90
+ find_lex $P81, "$key"
+ if $P81, unless_80_end
+ new $P82, "Exception"
+ set $P82['type'], .CONTROL_RETURN
+ new $P83, "Integer"
+ assign $P83, 0
+ setattribute $P82, 'payload', $P83
+ throw $P82
+ unless_80_end:
+.annotate 'line', 91
+ find_lex $P85, "$/"
+ $P86 = $P85."ast"()
+ set $P84, $P86
+ defined $I88, $P84
+ if $I88, default_87
+ find_lex $P89, "$/"
+ unless_null $P89, vivify_63
+ $P89 = root_new ['parrot';'Hash']
+ vivify_63:
+ set $P90, $P89["OPER"]
+ unless_null $P90, vivify_64
+ new $P90, "Undef"
+ vivify_64:
+ $P91 = $P90."ast"()
+ set $P84, $P91
+ default_87:
+ store_lex "$past", $P84
+.annotate 'line', 92
+ find_lex $P93, "$past"
+ if $P93, unless_92_end
+.annotate 'line', 93
+ get_hll_global $P94, ["PAST"], "Op"
+ find_lex $P95, "$/"
+ $P96 = $P94."new"($P95 :named("node"))
+ store_lex "$past", $P96
+.annotate 'line', 94
+ find_lex $P98, "$/"
+ unless_null $P98, vivify_65
+ $P98 = root_new ['parrot';'Hash']
+ vivify_65:
+ set $P99, $P98["OPER"]
+ unless_null $P99, vivify_66
+ $P99 = root_new ['parrot';'Hash']
+ vivify_66:
+ set $P100, $P99["O"]
+ unless_null $P100, vivify_67
+ $P100 = root_new ['parrot';'Hash']
+ vivify_67:
+ set $P101, $P100["pasttype"]
+ unless_null $P101, vivify_68
+ new $P101, "Undef"
+ vivify_68:
+ if $P101, if_97
+.annotate 'line', 95
+ find_lex $P109, "$/"
+ unless_null $P109, vivify_69
+ $P109 = root_new ['parrot';'Hash']
+ vivify_69:
+ set $P110, $P109["OPER"]
+ unless_null $P110, vivify_70
+ $P110 = root_new ['parrot';'Hash']
+ vivify_70:
+ set $P111, $P110["O"]
+ unless_null $P111, vivify_71
+ $P111 = root_new ['parrot';'Hash']
+ vivify_71:
+ set $P112, $P111["pirop"]
+ unless_null $P112, vivify_72
+ new $P112, "Undef"
+ vivify_72:
+ unless $P112, if_108_end
+ find_lex $P113, "$past"
+ find_lex $P114, "$/"
+ unless_null $P114, vivify_73
+ $P114 = root_new ['parrot';'Hash']
+ vivify_73:
+ set $P115, $P114["OPER"]
+ unless_null $P115, vivify_74
+ $P115 = root_new ['parrot';'Hash']
+ vivify_74:
+ set $P116, $P115["O"]
+ unless_null $P116, vivify_75
+ $P116 = root_new ['parrot';'Hash']
+ vivify_75:
+ set $P117, $P116["pirop"]
+ unless_null $P117, vivify_76
+ new $P117, "Undef"
+ vivify_76:
+ set $S118, $P117
+ $P113."pirop"($S118)
+ if_108_end:
+ goto if_97_end
+ if_97:
+.annotate 'line', 94
+ find_lex $P102, "$past"
+ find_lex $P103, "$/"
+ unless_null $P103, vivify_77
+ $P103 = root_new ['parrot';'Hash']
+ vivify_77:
+ set $P104, $P103["OPER"]
+ unless_null $P104, vivify_78
+ $P104 = root_new ['parrot';'Hash']
+ vivify_78:
+ set $P105, $P104["O"]
+ unless_null $P105, vivify_79
+ $P105 = root_new ['parrot';'Hash']
+ vivify_79:
+ set $P106, $P105["pasttype"]
+ unless_null $P106, vivify_80
+ new $P106, "Undef"
+ vivify_80:
+ set $S107, $P106
+ $P102."pasttype"($S107)
+ if_97_end:
+.annotate 'line', 96
+ find_lex $P120, "$past"
+ $P121 = $P120."name"()
+ if $P121, unless_119_end
+ .const 'Sub' $P123 = "19_1275811473.30481"
+ capture_lex $P123
+ $P123()
+ unless_119_end:
+ unless_92_end:
+.annotate 'line', 107
+ find_lex $P143, "$key"
+ set $S144, $P143
+ iseq $I145, $S144, "POSTFIX"
+ if $I145, if_142
+.annotate 'line', 109
+ find_lex $P151, "$/"
+ $P152 = $P151."list"()
+ defined $I153, $P152
+ unless $I153, for_undef_84
+ iter $P150, $P152
+ new $P168, 'ExceptionHandler'
+ set_addr $P168, loop167_handler
+ $P168."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P168
+ loop167_test:
+ unless $P150, loop167_done
+ shift $P154, $P150
+ loop167_redo:
+ .const 'Sub' $P156 = "20_1275811473.30481"
+ capture_lex $P156
+ $P156($P154)
+ loop167_next:
+ goto loop167_test
+ loop167_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P169, exception, 'type'
+ eq $P169, .CONTROL_LOOP_NEXT, loop167_next
+ eq $P169, .CONTROL_LOOP_REDO, loop167_redo
+ loop167_done:
+ pop_eh
+ for_undef_84:
+.annotate 'line', 108
+ goto if_142_end
+ if_142:
+.annotate 'line', 107
+ find_lex $P146, "$past"
+ find_lex $P147, "$/"
+ unless_null $P147, vivify_85
+ $P147 = root_new ['parrot';'ResizablePMCArray']
+ vivify_85:
+ set $P148, $P147[0]
+ unless_null $P148, vivify_86
+ new $P148, "Undef"
+ vivify_86:
+ $P149 = $P148."ast"()
+ $P146."unshift"($P149)
+ if_142_end:
+.annotate 'line', 111
+ find_lex $P170, "$/"
+ find_lex $P171, "$past"
+ $P172 = $P170."!make"($P171)
+.annotate 'line', 89
+ .return ($P172)
+ control_74:
.local pmc exception
.get_results (exception)
- getattribute $P156, exception, "payload"
- .return ($P156)
+ getattribute $P173, exception, "payload"
+ .return ($P173)
.end
.namespace ["HLL";"Actions"]
-.sub "nullterm_alt" :subid("20_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_160
-.annotate 'line', 91
- new $P159, 'ExceptionHandler'
- set_addr $P159, control_158
- $P159."handle_types"(57)
- push_eh $P159
- .lex "self", self
- .lex "$/", param_160
- find_lex $P161, "$/"
- find_lex $P162, "$/"
- unless_null $P162, vivify_81
- $P162 = root_new ['parrot';'Hash']
+.sub "_block122" :anon :subid("19_1275811473.30481") :outer("18_1275811473.30481")
+.annotate 'line', 98
+ new $P124, "Undef"
+ .lex "$name", $P124
+.annotate 'line', 97
+ find_lex $P126, "$key"
+ set $S127, $P126
+ iseq $I128, $S127, "LIST"
+ unless $I128, if_125_end
+ new $P129, "String"
+ assign $P129, "infix"
+ store_lex "$key", $P129
+ if_125_end:
+.annotate 'line', 98
+
+ $P0 = find_lex '$key'
+ $S0 = $P0
+ $S0 = downcase $S0
+ $P130 = box $S0
+
+ concat $P131, $P130, ":<"
+.annotate 'line', 103
+ find_lex $P132, "$/"
+ unless_null $P132, vivify_81
+ $P132 = root_new ['parrot';'Hash']
vivify_81:
- set $P163, $P162["term"]
- unless_null $P163, vivify_82
- new $P163, "Undef"
+ set $P133, $P132["OPER"]
+ unless_null $P133, vivify_82
+ $P133 = root_new ['parrot';'Hash']
vivify_82:
- $P164 = $P163."ast"()
- $P165 = $P161."!make"($P164)
- .return ($P165)
- control_158:
- .local pmc exception
- .get_results (exception)
- getattribute $P166, exception, "payload"
- .return ($P166)
+ set $P134, $P133["sym"]
+ unless_null $P134, vivify_83
+ new $P134, "Undef"
+ vivify_83:
+ concat $P135, $P131, $P134
+ concat $P136, $P135, ">"
+ store_lex "$name", $P136
+.annotate 'line', 104
+ find_lex $P137, "$past"
+ new $P138, "String"
+ assign $P138, "&"
+ find_lex $P139, "$name"
+ concat $P140, $P138, $P139
+ $P141 = $P137."name"($P140)
+.annotate 'line', 96
+ .return ($P141)
.end
.namespace ["HLL";"Actions"]
-.sub "integer" :subid("21_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_170
-.annotate 'line', 93
- new $P169, 'ExceptionHandler'
- set_addr $P169, control_168
- $P169."handle_types"(57)
- push_eh $P169
- .lex "self", self
- .lex "$/", param_170
- find_lex $P171, "$/"
- find_lex $P172, "$/"
- unless_null $P172, vivify_83
- $P172 = root_new ['parrot';'Hash']
- vivify_83:
- set $P173, $P172["VALUE"]
- unless_null $P173, vivify_84
- new $P173, "Undef"
- vivify_84:
- $P174 = $P173."ast"()
- $P175 = $P171."!make"($P174)
- .return ($P175)
- control_168:
- .local pmc exception
- .get_results (exception)
- getattribute $P176, exception, "payload"
- .return ($P176)
+.sub "_block155" :anon :subid("20_1275811473.30481") :outer("18_1275811473.30481")
+ .param pmc param_157
+.annotate 'line', 109
+ .lex "$_", param_157
+ find_lex $P160, "$_"
+ $P161 = $P160."ast"()
+ defined $I162, $P161
+ if $I162, if_159
+ new $P158, 'Integer'
+ set $P158, $I162
+ goto if_159_end
+ if_159:
+ find_lex $P163, "$past"
+ find_lex $P164, "$_"
+ $P165 = $P164."ast"()
+ $P166 = $P163."push"($P165)
+ set $P158, $P166
+ if_159_end:
+ .return ($P158)
.end
.namespace ["HLL";"Actions"]
-.sub "dec_number" :subid("22_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_180
-.annotate 'line', 95
- new $P179, 'ExceptionHandler'
- set_addr $P179, control_178
- $P179."handle_types"(57)
- push_eh $P179
+.include "except_types.pasm"
+.sub "term:sym<circumfix>" :subid("21_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_177
+.annotate 'line', 114
+ new $P176, 'ExceptionHandler'
+ set_addr $P176, control_175
+ $P176."handle_types"(.CONTROL_RETURN)
+ push_eh $P176
.lex "self", self
- .lex "$/", param_180
- find_lex $P181, "$/"
- find_lex $P182, "$/"
- set $N183, $P182
- $P184 = $P181."!make"($N183)
- .return ($P184)
- control_178:
+ .lex "$/", param_177
+ find_lex $P178, "$/"
+ find_lex $P179, "$/"
+ unless_null $P179, vivify_87
+ $P179 = root_new ['parrot';'Hash']
+ vivify_87:
+ set $P180, $P179["circumfix"]
+ unless_null $P180, vivify_88
+ new $P180, "Undef"
+ vivify_88:
+ $P181 = $P180."ast"()
+ $P182 = $P178."!make"($P181)
+ .return ($P182)
+ control_175:
.local pmc exception
.get_results (exception)
- getattribute $P185, exception, "payload"
- .return ($P185)
+ getattribute $P183, exception, "payload"
+ .return ($P183)
.end
.namespace ["HLL";"Actions"]
-.sub "decint" :subid("23_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_189
-.annotate 'line', 97
- new $P188, 'ExceptionHandler'
- set_addr $P188, control_187
- $P188."handle_types"(57)
- push_eh $P188
- .lex "self", self
- .lex "$/", param_189
- find_lex $P190, "$/"
- find_lex $P191, "$/"
- $P192 = "string_to_int"($P191, 10)
- $P193 = $P190."!make"($P192)
- .return ($P193)
- control_187:
+.include "except_types.pasm"
+.sub "termish" :subid("22_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_187
+.annotate 'line', 116
+ new $P186, 'ExceptionHandler'
+ set_addr $P186, control_185
+ $P186."handle_types"(.CONTROL_RETURN)
+ push_eh $P186
+ .lex "self", self
+ .lex "$/", param_187
+ find_lex $P188, "$/"
+ find_lex $P189, "$/"
+ unless_null $P189, vivify_89
+ $P189 = root_new ['parrot';'Hash']
+ vivify_89:
+ set $P190, $P189["term"]
+ unless_null $P190, vivify_90
+ new $P190, "Undef"
+ vivify_90:
+ $P191 = $P190."ast"()
+ $P192 = $P188."!make"($P191)
+ .return ($P192)
+ control_185:
.local pmc exception
.get_results (exception)
- getattribute $P194, exception, "payload"
- .return ($P194)
+ getattribute $P193, exception, "payload"
+ .return ($P193)
.end
.namespace ["HLL";"Actions"]
-.sub "hexint" :subid("24_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_198
-.annotate 'line', 98
- new $P197, 'ExceptionHandler'
- set_addr $P197, control_196
- $P197."handle_types"(57)
- push_eh $P197
+.include "except_types.pasm"
+.sub "nullterm" :subid("23_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_197
+.annotate 'line', 117
+ new $P196, 'ExceptionHandler'
+ set_addr $P196, control_195
+ $P196."handle_types"(.CONTROL_RETURN)
+ push_eh $P196
.lex "self", self
- .lex "$/", param_198
- find_lex $P199, "$/"
- find_lex $P200, "$/"
- $P201 = "string_to_int"($P200, 16)
- $P202 = $P199."!make"($P201)
- .return ($P202)
- control_196:
+ .lex "$/", param_197
+ find_lex $P198, "$/"
+ $P199 = new ['Undef']
+ $P200 = $P198."!make"($P199)
+ .return ($P200)
+ control_195:
.local pmc exception
.get_results (exception)
- getattribute $P203, exception, "payload"
- .return ($P203)
+ getattribute $P201, exception, "payload"
+ .return ($P201)
.end
.namespace ["HLL";"Actions"]
-.sub "octint" :subid("25_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_207
-.annotate 'line', 99
- new $P206, 'ExceptionHandler'
- set_addr $P206, control_205
- $P206."handle_types"(57)
- push_eh $P206
- .lex "self", self
- .lex "$/", param_207
- find_lex $P208, "$/"
- find_lex $P209, "$/"
- $P210 = "string_to_int"($P209, 8)
- $P211 = $P208."!make"($P210)
- .return ($P211)
- control_205:
+.include "except_types.pasm"
+.sub "nullterm_alt" :subid("24_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_205
+.annotate 'line', 118
+ new $P204, 'ExceptionHandler'
+ set_addr $P204, control_203
+ $P204."handle_types"(.CONTROL_RETURN)
+ push_eh $P204
+ .lex "self", self
+ .lex "$/", param_205
+ find_lex $P206, "$/"
+ find_lex $P207, "$/"
+ unless_null $P207, vivify_91
+ $P207 = root_new ['parrot';'Hash']
+ vivify_91:
+ set $P208, $P207["term"]
+ unless_null $P208, vivify_92
+ new $P208, "Undef"
+ vivify_92:
+ $P209 = $P208."ast"()
+ $P210 = $P206."!make"($P209)
+ .return ($P210)
+ control_203:
.local pmc exception
.get_results (exception)
- getattribute $P212, exception, "payload"
- .return ($P212)
+ getattribute $P211, exception, "payload"
+ .return ($P211)
.end
.namespace ["HLL";"Actions"]
-.sub "binint" :subid("26_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_216
-.annotate 'line', 100
- new $P215, 'ExceptionHandler'
- set_addr $P215, control_214
- $P215."handle_types"(57)
- push_eh $P215
+.include "except_types.pasm"
+.sub "integer" :subid("25_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_215
+.annotate 'line', 120
+ new $P214, 'ExceptionHandler'
+ set_addr $P214, control_213
+ $P214."handle_types"(.CONTROL_RETURN)
+ push_eh $P214
.lex "self", self
- .lex "$/", param_216
+ .lex "$/", param_215
+ find_lex $P216, "$/"
find_lex $P217, "$/"
- find_lex $P218, "$/"
- $P219 = "string_to_int"($P218, 2)
- $P220 = $P217."!make"($P219)
+ unless_null $P217, vivify_93
+ $P217 = root_new ['parrot';'Hash']
+ vivify_93:
+ set $P218, $P217["VALUE"]
+ unless_null $P218, vivify_94
+ new $P218, "Undef"
+ vivify_94:
+ $P219 = $P218."ast"()
+ $P220 = $P216."!make"($P219)
.return ($P220)
- control_214:
+ control_213:
.local pmc exception
.get_results (exception)
getattribute $P221, exception, "payload"
@@ -5460,537 +5698,526 @@
.namespace ["HLL";"Actions"]
-.sub "quote_EXPR" :subid("27_1274022880.65586") :method :outer("11_1274022880.65586")
+.include "except_types.pasm"
+.sub "dec_number" :subid("26_1275811473.30481") :method :outer("11_1275811473.30481")
.param pmc param_225
-.annotate 'line', 102
- .const 'Sub' $P241 = "28_1274022880.65586"
- capture_lex $P241
+.annotate 'line', 122
new $P224, 'ExceptionHandler'
set_addr $P224, control_223
- $P224."handle_types"(57)
+ $P224."handle_types"(.CONTROL_RETURN)
push_eh $P224
.lex "self", self
.lex "$/", param_225
-.annotate 'line', 103
- new $P226, "Undef"
- .lex "$past", $P226
+ find_lex $P226, "$/"
find_lex $P227, "$/"
- unless_null $P227, vivify_85
- $P227 = root_new ['parrot';'Hash']
- vivify_85:
- set $P228, $P227["quote_delimited"]
- unless_null $P228, vivify_86
- new $P228, "Undef"
- vivify_86:
- $P229 = $P228."ast"()
- store_lex "$past", $P229
-.annotate 'line', 104
- find_lex $P231, "$/"
- $P232 = $P231."CURSOR"()
- $P233 = $P232."quotemod_check"("w")
- unless $P233, if_230_end
-.annotate 'line', 105
- get_hll_global $P235, ["PAST"], "Node"
- find_lex $P236, "$past"
- $P237 = $P235."ACCEPTS"($P236)
- if $P237, if_234
-.annotate 'line', 108
- .const 'Sub' $P241 = "28_1274022880.65586"
- capture_lex $P241
- $P241()
- goto if_234_end
- if_234:
-.annotate 'line', 106
- find_lex $P238, "$/"
- $P239 = $P238."CURSOR"()
- $P239."panic"("Can't form :w list from non-constant strings (yet)")
- if_234_end:
- if_230_end:
-.annotate 'line', 119
- get_hll_global $P273, ["PAST"], "Node"
- find_lex $P274, "$past"
- $P275 = $P273."ACCEPTS"($P274)
- isfalse $I276, $P275
- unless $I276, if_272_end
-.annotate 'line', 120
- get_hll_global $P277, ["PAST"], "Val"
- find_lex $P278, "$past"
- set $S279, $P278
- $P280 = $P277."new"($S279 :named("value"))
- store_lex "$past", $P280
- if_272_end:
-.annotate 'line', 122
- find_lex $P281, "$/"
- find_lex $P282, "$past"
- $P283 = $P281."!make"($P282)
-.annotate 'line', 102
- .return ($P283)
+ set $N228, $P227
+ $P229 = $P226."!make"($N228)
+ .return ($P229)
control_223:
.local pmc exception
.get_results (exception)
- getattribute $P284, exception, "payload"
- .return ($P284)
-.end
-
-
-.namespace ["HLL";"Actions"]
-.sub "_block240" :anon :subid("28_1274022880.65586") :outer("27_1274022880.65586")
-.annotate 'line', 108
- .const 'Sub' $P260 = "29_1274022880.65586"
- capture_lex $P260
-.annotate 'line', 109
- $P242 = root_new ['parrot';'ResizablePMCArray']
- .lex "@words", $P242
- get_hll_global $P243, ["HLL";"Grammar"], "split_words"
- find_lex $P244, "$/"
- find_lex $P245, "$past"
- $P246 = $P243($P244, $P245)
- store_lex "@words", $P246
-.annotate 'line', 110
- find_lex $P249, "@words"
- set $N250, $P249
- isgt $I251, $N250, 1.0
- if $I251, if_248
-.annotate 'line', 115
- find_lex $P268, "@words"
- unless_null $P268, vivify_87
- $P268 = root_new ['parrot';'ResizablePMCArray']
- vivify_87:
- set $P269, $P268[0]
- unless_null $P269, vivify_88
- new $P269, "Undef"
- vivify_88:
- set $S270, $P269
- new $P271, 'String'
- set $P271, $S270
- store_lex "$past", $P271
-.annotate 'line', 114
- set $P247, $P271
-.annotate 'line', 110
- goto if_248_end
- if_248:
-.annotate 'line', 111
- get_hll_global $P252, ["PAST"], "Op"
- find_lex $P253, "$/"
- $P254 = $P252."new"("list" :named("pasttype"), $P253 :named("node"))
- store_lex "$past", $P254
-.annotate 'line', 112
- find_lex $P256, "@words"
- defined $I257, $P256
- unless $I257, for_undef_89
- iter $P255, $P256
- new $P266, 'ExceptionHandler'
- set_addr $P266, loop265_handler
- $P266."handle_types"(64, 66, 65)
- push_eh $P266
- loop265_test:
- unless $P255, loop265_done
- shift $P258, $P255
- loop265_redo:
- .const 'Sub' $P260 = "29_1274022880.65586"
- capture_lex $P260
- $P260($P258)
- loop265_next:
- goto loop265_test
- loop265_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P267, exception, 'type'
- eq $P267, 64, loop265_next
- eq $P267, 66, loop265_redo
- loop265_done:
- pop_eh
- for_undef_89:
-.annotate 'line', 110
- set $P247, $P255
- if_248_end:
-.annotate 'line', 108
- .return ($P247)
+ getattribute $P230, exception, "payload"
+ .return ($P230)
.end
.namespace ["HLL";"Actions"]
-.sub "_block259" :anon :subid("29_1274022880.65586") :outer("28_1274022880.65586")
- .param pmc param_261
-.annotate 'line', 112
- .lex "$_", param_261
- find_lex $P262, "$past"
- find_lex $P263, "$_"
- $P264 = $P262."push"($P263)
- .return ($P264)
+.include "except_types.pasm"
+.sub "decint" :subid("27_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_234
+.annotate 'line', 124
+ new $P233, 'ExceptionHandler'
+ set_addr $P233, control_232
+ $P233."handle_types"(.CONTROL_RETURN)
+ push_eh $P233
+ .lex "self", self
+ .lex "$/", param_234
+ find_lex $P235, "$/"
+ find_lex $P236, "$/"
+ $P237 = "string_to_int"($P236, 10)
+ $P238 = $P235."!make"($P237)
+ .return ($P238)
+ control_232:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P239, exception, "payload"
+ .return ($P239)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_delimited" :subid("30_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_288
+.include "except_types.pasm"
+.sub "hexint" :subid("28_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_243
.annotate 'line', 125
- .const 'Sub' $P300 = "31_1274022880.65586"
- capture_lex $P300
- new $P287, 'ExceptionHandler'
- set_addr $P287, control_286
- $P287."handle_types"(57)
- push_eh $P287
+ new $P242, 'ExceptionHandler'
+ set_addr $P242, control_241
+ $P242."handle_types"(.CONTROL_RETURN)
+ push_eh $P242
.lex "self", self
- .lex "$/", param_288
-.annotate 'line', 126
- $P289 = root_new ['parrot';'ResizablePMCArray']
- .lex "@parts", $P289
-.annotate 'line', 127
- new $P290, "Undef"
- .lex "$lastlit", $P290
-.annotate 'line', 143
- new $P291, "Undef"
- .lex "$past", $P291
-.annotate 'line', 125
- find_lex $P292, "@parts"
-.annotate 'line', 127
- new $P293, "String"
- assign $P293, ""
- store_lex "$lastlit", $P293
-.annotate 'line', 128
- find_lex $P295, "$/"
- unless_null $P295, vivify_90
- $P295 = root_new ['parrot';'Hash']
- vivify_90:
- set $P296, $P295["quote_atom"]
- unless_null $P296, vivify_91
- new $P296, "Undef"
- vivify_91:
- defined $I297, $P296
- unless $I297, for_undef_92
- iter $P294, $P296
- new $P333, 'ExceptionHandler'
- set_addr $P333, loop332_handler
- $P333."handle_types"(64, 66, 65)
- push_eh $P333
- loop332_test:
- unless $P294, loop332_done
- shift $P298, $P294
- loop332_redo:
- .const 'Sub' $P300 = "31_1274022880.65586"
- capture_lex $P300
- $P300($P298)
- loop332_next:
- goto loop332_test
- loop332_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P334, exception, 'type'
- eq $P334, 64, loop332_next
- eq $P334, 66, loop332_redo
- loop332_done:
- pop_eh
- for_undef_92:
-.annotate 'line', 142
- find_lex $P336, "$lastlit"
- set $S337, $P336
- isgt $I338, $S337, ""
- unless $I338, if_335_end
- find_lex $P339, "@parts"
- find_lex $P340, "$lastlit"
- $P339."push"($P340)
- if_335_end:
-.annotate 'line', 143
- find_lex $P343, "@parts"
- if $P343, if_342
- new $P346, "String"
- assign $P346, ""
- set $P341, $P346
- goto if_342_end
- if_342:
- find_lex $P344, "@parts"
- $P345 = $P344."shift"()
- set $P341, $P345
- if_342_end:
- store_lex "$past", $P341
-.annotate 'line', 144
- new $P354, 'ExceptionHandler'
- set_addr $P354, loop353_handler
- $P354."handle_types"(64, 66, 65)
- push_eh $P354
- loop353_test:
- find_lex $P347, "@parts"
- unless $P347, loop353_done
- loop353_redo:
-.annotate 'line', 145
- get_hll_global $P348, ["PAST"], "Op"
- find_lex $P349, "$past"
- find_lex $P350, "@parts"
- $P351 = $P350."shift"()
- $P352 = $P348."new"($P349, $P351, "concat" :named("pirop"))
- store_lex "$past", $P352
- loop353_next:
-.annotate 'line', 144
- goto loop353_test
- loop353_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P355, exception, 'type'
- eq $P355, 64, loop353_next
- eq $P355, 66, loop353_redo
- loop353_done:
- pop_eh
-.annotate 'line', 147
- find_lex $P356, "$/"
- find_lex $P357, "$past"
- $P358 = $P356."!make"($P357)
-.annotate 'line', 125
- .return ($P358)
- control_286:
+ .lex "$/", param_243
+ find_lex $P244, "$/"
+ find_lex $P245, "$/"
+ $P246 = "string_to_int"($P245, 16)
+ $P247 = $P244."!make"($P246)
+ .return ($P247)
+ control_241:
.local pmc exception
.get_results (exception)
- getattribute $P359, exception, "payload"
- .return ($P359)
+ getattribute $P248, exception, "payload"
+ .return ($P248)
.end
.namespace ["HLL";"Actions"]
-.sub "_block299" :anon :subid("31_1274022880.65586") :outer("30_1274022880.65586")
- .param pmc param_302
-.annotate 'line', 129
- new $P301, "Undef"
- .lex "$ast", $P301
- .lex "$_", param_302
- find_lex $P303, "$_"
- $P304 = $P303."ast"()
- store_lex "$ast", $P304
-.annotate 'line', 130
- get_hll_global $P307, ["PAST"], "Node"
- find_lex $P308, "$ast"
- $P309 = $P307."ACCEPTS"($P308)
- isfalse $I310, $P309
- if $I310, if_306
-.annotate 'line', 133
- find_lex $P316, "$ast"
- get_hll_global $P317, ["PAST"], "Val"
- $P318 = $P316."isa"($P317)
- if $P318, if_315
-.annotate 'line', 137
- find_lex $P324, "$lastlit"
- set $S325, $P324
- isgt $I326, $S325, ""
- unless $I326, if_323_end
- find_lex $P327, "@parts"
- find_lex $P328, "$lastlit"
- $P327."push"($P328)
- if_323_end:
-.annotate 'line', 138
- find_lex $P329, "@parts"
- find_lex $P330, "$ast"
- $P329."push"($P330)
-.annotate 'line', 139
- new $P331, "String"
- assign $P331, ""
- store_lex "$lastlit", $P331
-.annotate 'line', 136
- set $P314, $P331
-.annotate 'line', 133
- goto if_315_end
- if_315:
-.annotate 'line', 134
- find_lex $P319, "$lastlit"
- find_lex $P320, "$ast"
- $S321 = $P320."value"()
- concat $P322, $P319, $S321
- store_lex "$lastlit", $P322
-.annotate 'line', 133
- set $P314, $P322
- if_315_end:
- set $P305, $P314
-.annotate 'line', 130
- goto if_306_end
- if_306:
-.annotate 'line', 131
- find_lex $P311, "$lastlit"
- find_lex $P312, "$ast"
- concat $P313, $P311, $P312
- store_lex "$lastlit", $P313
-.annotate 'line', 130
- set $P305, $P313
- if_306_end:
-.annotate 'line', 128
- .return ($P305)
+.include "except_types.pasm"
+.sub "octint" :subid("29_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_252
+.annotate 'line', 126
+ new $P251, 'ExceptionHandler'
+ set_addr $P251, control_250
+ $P251."handle_types"(.CONTROL_RETURN)
+ push_eh $P251
+ .lex "self", self
+ .lex "$/", param_252
+ find_lex $P253, "$/"
+ find_lex $P254, "$/"
+ $P255 = "string_to_int"($P254, 8)
+ $P256 = $P253."!make"($P255)
+ .return ($P256)
+ control_250:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P257, exception, "payload"
+ .return ($P257)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_atom" :subid("32_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_363
-.annotate 'line', 150
- new $P362, 'ExceptionHandler'
- set_addr $P362, control_361
- $P362."handle_types"(57)
- push_eh $P362
+.include "except_types.pasm"
+.sub "binint" :subid("30_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_261
+.annotate 'line', 127
+ new $P260, 'ExceptionHandler'
+ set_addr $P260, control_259
+ $P260."handle_types"(.CONTROL_RETURN)
+ push_eh $P260
.lex "self", self
- .lex "$/", param_363
-.annotate 'line', 151
- find_lex $P364, "$/"
- find_lex $P367, "$/"
- unless_null $P367, vivify_93
- $P367 = root_new ['parrot';'Hash']
- vivify_93:
- set $P368, $P367["quote_escape"]
- unless_null $P368, vivify_94
- new $P368, "Undef"
- vivify_94:
- if $P368, if_366
- find_lex $P372, "$/"
- set $S373, $P372
- new $P365, 'String'
- set $P365, $S373
- goto if_366_end
- if_366:
- find_lex $P369, "$/"
- unless_null $P369, vivify_95
- $P369 = root_new ['parrot';'Hash']
- vivify_95:
- set $P370, $P369["quote_escape"]
- unless_null $P370, vivify_96
- new $P370, "Undef"
- vivify_96:
- $P371 = $P370."ast"()
- set $P365, $P371
- if_366_end:
- $P374 = $P364."!make"($P365)
-.annotate 'line', 150
- .return ($P374)
- control_361:
+ .lex "$/", param_261
+ find_lex $P262, "$/"
+ find_lex $P263, "$/"
+ $P264 = "string_to_int"($P263, 2)
+ $P265 = $P262."!make"($P264)
+ .return ($P265)
+ control_259:
.local pmc exception
.get_results (exception)
- getattribute $P375, exception, "payload"
- .return ($P375)
+ getattribute $P266, exception, "payload"
+ .return ($P266)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<backslash>" :subid("33_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_379
-.annotate 'line', 154
- new $P378, 'ExceptionHandler'
- set_addr $P378, control_377
- $P378."handle_types"(57)
- push_eh $P378
+.include "except_types.pasm"
+.sub "quote_EXPR" :subid("31_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_270
+.annotate 'line', 129
+ .const 'Sub' $P286 = "32_1275811473.30481"
+ capture_lex $P286
+ new $P269, 'ExceptionHandler'
+ set_addr $P269, control_268
+ $P269."handle_types"(.CONTROL_RETURN)
+ push_eh $P269
.lex "self", self
- .lex "$/", param_379
- find_lex $P380, "$/"
- $P381 = $P380."!make"("\\")
- .return ($P381)
- control_377:
+ .lex "$/", param_270
+.annotate 'line', 130
+ new $P271, "Undef"
+ .lex "$past", $P271
+ find_lex $P272, "$/"
+ unless_null $P272, vivify_95
+ $P272 = root_new ['parrot';'Hash']
+ vivify_95:
+ set $P273, $P272["quote_delimited"]
+ unless_null $P273, vivify_96
+ new $P273, "Undef"
+ vivify_96:
+ $P274 = $P273."ast"()
+ store_lex "$past", $P274
+.annotate 'line', 131
+ find_lex $P276, "$/"
+ $P277 = $P276."CURSOR"()
+ $P278 = $P277."quotemod_check"("w")
+ unless $P278, if_275_end
+.annotate 'line', 132
+ get_hll_global $P280, ["PAST"], "Node"
+ find_lex $P281, "$past"
+ $P282 = $P280."ACCEPTS"($P281)
+ if $P282, if_279
+.annotate 'line', 135
+ .const 'Sub' $P286 = "32_1275811473.30481"
+ capture_lex $P286
+ $P286()
+ goto if_279_end
+ if_279:
+.annotate 'line', 133
+ find_lex $P283, "$/"
+ $P284 = $P283."CURSOR"()
+ $P284."panic"("Can't form :w list from non-constant strings (yet)")
+ if_279_end:
+ if_275_end:
+.annotate 'line', 146
+ get_hll_global $P318, ["PAST"], "Node"
+ find_lex $P319, "$past"
+ $P320 = $P318."ACCEPTS"($P319)
+ isfalse $I321, $P320
+ unless $I321, if_317_end
+.annotate 'line', 147
+ get_hll_global $P322, ["PAST"], "Val"
+ find_lex $P323, "$past"
+ set $S324, $P323
+ $P325 = $P322."new"($S324 :named("value"))
+ store_lex "$past", $P325
+ if_317_end:
+.annotate 'line', 149
+ find_lex $P326, "$/"
+ find_lex $P327, "$past"
+ $P328 = $P326."!make"($P327)
+.annotate 'line', 129
+ .return ($P328)
+ control_268:
.local pmc exception
.get_results (exception)
- getattribute $P382, exception, "payload"
- .return ($P382)
+ getattribute $P329, exception, "payload"
+ .return ($P329)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<stopper>" :subid("34_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_386
-.annotate 'line', 155
- new $P385, 'ExceptionHandler'
- set_addr $P385, control_384
- $P385."handle_types"(57)
- push_eh $P385
- .lex "self", self
- .lex "$/", param_386
- find_lex $P387, "$/"
- find_lex $P388, "$/"
- unless_null $P388, vivify_97
- $P388 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "_block285" :anon :subid("32_1275811473.30481") :outer("31_1275811473.30481")
+.annotate 'line', 135
+ .const 'Sub' $P305 = "33_1275811473.30481"
+ capture_lex $P305
+.annotate 'line', 136
+ $P287 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@words", $P287
+ get_hll_global $P288, ["HLL";"Grammar"], "split_words"
+ find_lex $P289, "$/"
+ find_lex $P290, "$past"
+ $P291 = $P288($P289, $P290)
+ store_lex "@words", $P291
+.annotate 'line', 137
+ find_lex $P294, "@words"
+ set $N295, $P294
+ isgt $I296, $N295, 1.0
+ if $I296, if_293
+.annotate 'line', 142
+ find_lex $P313, "@words"
+ unless_null $P313, vivify_97
+ $P313 = root_new ['parrot';'ResizablePMCArray']
vivify_97:
- set $P389, $P388["stopper"]
- unless_null $P389, vivify_98
- new $P389, "Undef"
+ set $P314, $P313[0]
+ unless_null $P314, vivify_98
+ new $P314, "Undef"
vivify_98:
- set $S390, $P389
- $P391 = $P387."!make"($S390)
- .return ($P391)
- control_384:
- .local pmc exception
- .get_results (exception)
- getattribute $P392, exception, "payload"
- .return ($P392)
+ set $S315, $P314
+ new $P316, 'String'
+ set $P316, $S315
+ store_lex "$past", $P316
+.annotate 'line', 141
+ set $P292, $P316
+.annotate 'line', 137
+ goto if_293_end
+ if_293:
+.annotate 'line', 138
+ get_hll_global $P297, ["PAST"], "Op"
+ find_lex $P298, "$/"
+ $P299 = $P297."new"("list" :named("pasttype"), $P298 :named("node"))
+ store_lex "$past", $P299
+.annotate 'line', 139
+ find_lex $P301, "@words"
+ defined $I302, $P301
+ unless $I302, for_undef_99
+ iter $P300, $P301
+ new $P311, 'ExceptionHandler'
+ set_addr $P311, loop310_handler
+ $P311."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P311
+ loop310_test:
+ unless $P300, loop310_done
+ shift $P303, $P300
+ loop310_redo:
+ .const 'Sub' $P305 = "33_1275811473.30481"
+ capture_lex $P305
+ $P305($P303)
+ loop310_next:
+ goto loop310_test
+ loop310_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P312, exception, 'type'
+ eq $P312, .CONTROL_LOOP_NEXT, loop310_next
+ eq $P312, .CONTROL_LOOP_REDO, loop310_redo
+ loop310_done:
+ pop_eh
+ for_undef_99:
+.annotate 'line', 137
+ set $P292, $P300
+ if_293_end:
+.annotate 'line', 135
+ .return ($P292)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<bs>" :subid("35_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_396
-.annotate 'line', 157
- new $P395, 'ExceptionHandler'
- set_addr $P395, control_394
- $P395."handle_types"(57)
- push_eh $P395
- .lex "self", self
- .lex "$/", param_396
- find_lex $P397, "$/"
- $P398 = $P397."!make"("\b")
- .return ($P398)
- control_394:
- .local pmc exception
- .get_results (exception)
- getattribute $P399, exception, "payload"
- .return ($P399)
+.sub "_block304" :anon :subid("33_1275811473.30481") :outer("32_1275811473.30481")
+ .param pmc param_306
+.annotate 'line', 139
+ .lex "$_", param_306
+ find_lex $P307, "$past"
+ find_lex $P308, "$_"
+ $P309 = $P307."push"($P308)
+ .return ($P309)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<nl>" :subid("36_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_403
-.annotate 'line', 158
- new $P402, 'ExceptionHandler'
- set_addr $P402, control_401
- $P402."handle_types"(57)
- push_eh $P402
+.include "except_types.pasm"
+.sub "quote_delimited" :subid("34_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_333
+.annotate 'line', 152
+ .const 'Sub' $P345 = "35_1275811473.30481"
+ capture_lex $P345
+ new $P332, 'ExceptionHandler'
+ set_addr $P332, control_331
+ $P332."handle_types"(.CONTROL_RETURN)
+ push_eh $P332
.lex "self", self
- .lex "$/", param_403
- find_lex $P404, "$/"
- $P405 = $P404."!make"("\n")
- .return ($P405)
- control_401:
+ .lex "$/", param_333
+.annotate 'line', 153
+ $P334 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@parts", $P334
+.annotate 'line', 154
+ new $P335, "Undef"
+ .lex "$lastlit", $P335
+.annotate 'line', 170
+ new $P336, "Undef"
+ .lex "$past", $P336
+.annotate 'line', 152
+ find_lex $P337, "@parts"
+.annotate 'line', 154
+ new $P338, "String"
+ assign $P338, ""
+ store_lex "$lastlit", $P338
+.annotate 'line', 155
+ find_lex $P340, "$/"
+ unless_null $P340, vivify_100
+ $P340 = root_new ['parrot';'Hash']
+ vivify_100:
+ set $P341, $P340["quote_atom"]
+ unless_null $P341, vivify_101
+ new $P341, "Undef"
+ vivify_101:
+ defined $I342, $P341
+ unless $I342, for_undef_102
+ iter $P339, $P341
+ new $P378, 'ExceptionHandler'
+ set_addr $P378, loop377_handler
+ $P378."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P378
+ loop377_test:
+ unless $P339, loop377_done
+ shift $P343, $P339
+ loop377_redo:
+ .const 'Sub' $P345 = "35_1275811473.30481"
+ capture_lex $P345
+ $P345($P343)
+ loop377_next:
+ goto loop377_test
+ loop377_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P379, exception, 'type'
+ eq $P379, .CONTROL_LOOP_NEXT, loop377_next
+ eq $P379, .CONTROL_LOOP_REDO, loop377_redo
+ loop377_done:
+ pop_eh
+ for_undef_102:
+.annotate 'line', 169
+ find_lex $P381, "$lastlit"
+ set $S382, $P381
+ isgt $I383, $S382, ""
+ unless $I383, if_380_end
+ find_lex $P384, "@parts"
+ find_lex $P385, "$lastlit"
+ $P384."push"($P385)
+ if_380_end:
+.annotate 'line', 170
+ find_lex $P388, "@parts"
+ if $P388, if_387
+ new $P391, "String"
+ assign $P391, ""
+ set $P386, $P391
+ goto if_387_end
+ if_387:
+ find_lex $P389, "@parts"
+ $P390 = $P389."shift"()
+ set $P386, $P390
+ if_387_end:
+ store_lex "$past", $P386
+.annotate 'line', 171
+ new $P399, 'ExceptionHandler'
+ set_addr $P399, loop398_handler
+ $P399."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P399
+ loop398_test:
+ find_lex $P392, "@parts"
+ unless $P392, loop398_done
+ loop398_redo:
+.annotate 'line', 172
+ get_hll_global $P393, ["PAST"], "Op"
+ find_lex $P394, "$past"
+ find_lex $P395, "@parts"
+ $P396 = $P395."shift"()
+ $P397 = $P393."new"($P394, $P396, "concat" :named("pirop"))
+ store_lex "$past", $P397
+ loop398_next:
+.annotate 'line', 171
+ goto loop398_test
+ loop398_handler:
.local pmc exception
.get_results (exception)
- getattribute $P406, exception, "payload"
- .return ($P406)
+ getattribute $P400, exception, 'type'
+ eq $P400, .CONTROL_LOOP_NEXT, loop398_next
+ eq $P400, .CONTROL_LOOP_REDO, loop398_redo
+ loop398_done:
+ pop_eh
+.annotate 'line', 174
+ find_lex $P401, "$/"
+ find_lex $P402, "$past"
+ $P403 = $P401."!make"($P402)
+.annotate 'line', 152
+ .return ($P403)
+ control_331:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P404, exception, "payload"
+ .return ($P404)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<cr>" :subid("37_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_410
-.annotate 'line', 159
- new $P409, 'ExceptionHandler'
- set_addr $P409, control_408
- $P409."handle_types"(57)
- push_eh $P409
- .lex "self", self
- .lex "$/", param_410
- find_lex $P411, "$/"
- $P412 = $P411."!make"("\r")
- .return ($P412)
- control_408:
- .local pmc exception
- .get_results (exception)
- getattribute $P413, exception, "payload"
- .return ($P413)
+.sub "_block344" :anon :subid("35_1275811473.30481") :outer("34_1275811473.30481")
+ .param pmc param_347
+.annotate 'line', 156
+ new $P346, "Undef"
+ .lex "$ast", $P346
+ .lex "$_", param_347
+ find_lex $P348, "$_"
+ $P349 = $P348."ast"()
+ store_lex "$ast", $P349
+.annotate 'line', 157
+ get_hll_global $P352, ["PAST"], "Node"
+ find_lex $P353, "$ast"
+ $P354 = $P352."ACCEPTS"($P353)
+ isfalse $I355, $P354
+ if $I355, if_351
+.annotate 'line', 160
+ find_lex $P361, "$ast"
+ get_hll_global $P362, ["PAST"], "Val"
+ $P363 = $P361."isa"($P362)
+ if $P363, if_360
+.annotate 'line', 164
+ find_lex $P369, "$lastlit"
+ set $S370, $P369
+ isgt $I371, $S370, ""
+ unless $I371, if_368_end
+ find_lex $P372, "@parts"
+ find_lex $P373, "$lastlit"
+ $P372."push"($P373)
+ if_368_end:
+.annotate 'line', 165
+ find_lex $P374, "@parts"
+ find_lex $P375, "$ast"
+ $P374."push"($P375)
+.annotate 'line', 166
+ new $P376, "String"
+ assign $P376, ""
+ store_lex "$lastlit", $P376
+.annotate 'line', 163
+ set $P359, $P376
+.annotate 'line', 160
+ goto if_360_end
+ if_360:
+.annotate 'line', 161
+ find_lex $P364, "$lastlit"
+ find_lex $P365, "$ast"
+ $S366 = $P365."value"()
+ concat $P367, $P364, $S366
+ store_lex "$lastlit", $P367
+.annotate 'line', 160
+ set $P359, $P367
+ if_360_end:
+ set $P350, $P359
+.annotate 'line', 157
+ goto if_351_end
+ if_351:
+.annotate 'line', 158
+ find_lex $P356, "$lastlit"
+ find_lex $P357, "$ast"
+ concat $P358, $P356, $P357
+ store_lex "$lastlit", $P358
+.annotate 'line', 157
+ set $P350, $P358
+ if_351_end:
+.annotate 'line', 155
+ .return ($P350)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<tab>" :subid("38_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_417
-.annotate 'line', 160
- new $P416, 'ExceptionHandler'
- set_addr $P416, control_415
- $P416."handle_types"(57)
- push_eh $P416
- .lex "self", self
- .lex "$/", param_417
- find_lex $P418, "$/"
- $P419 = $P418."!make"("\t")
+.include "except_types.pasm"
+.sub "quote_atom" :subid("36_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_408
+.annotate 'line', 177
+ new $P407, 'ExceptionHandler'
+ set_addr $P407, control_406
+ $P407."handle_types"(.CONTROL_RETURN)
+ push_eh $P407
+ .lex "self", self
+ .lex "$/", param_408
+.annotate 'line', 178
+ find_lex $P409, "$/"
+ find_lex $P412, "$/"
+ unless_null $P412, vivify_103
+ $P412 = root_new ['parrot';'Hash']
+ vivify_103:
+ set $P413, $P412["quote_escape"]
+ unless_null $P413, vivify_104
+ new $P413, "Undef"
+ vivify_104:
+ if $P413, if_411
+ find_lex $P417, "$/"
+ set $S418, $P417
+ new $P410, 'String'
+ set $P410, $S418
+ goto if_411_end
+ if_411:
+ find_lex $P414, "$/"
+ unless_null $P414, vivify_105
+ $P414 = root_new ['parrot';'Hash']
+ vivify_105:
+ set $P415, $P414["quote_escape"]
+ unless_null $P415, vivify_106
+ new $P415, "Undef"
+ vivify_106:
+ $P416 = $P415."ast"()
+ set $P410, $P416
+ if_411_end:
+ $P419 = $P409."!make"($P410)
+.annotate 'line', 177
.return ($P419)
- control_415:
+ control_406:
.local pmc exception
.get_results (exception)
getattribute $P420, exception, "payload"
@@ -5999,17 +6226,18 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<ff>" :subid("39_1274022880.65586") :method :outer("11_1274022880.65586")
+.include "except_types.pasm"
+.sub "quote_escape:sym<backslash>" :subid("37_1275811473.30481") :method :outer("11_1275811473.30481")
.param pmc param_424
-.annotate 'line', 161
+.annotate 'line', 181
new $P423, 'ExceptionHandler'
set_addr $P423, control_422
- $P423."handle_types"(57)
+ $P423."handle_types"(.CONTROL_RETURN)
push_eh $P423
.lex "self", self
.lex "$/", param_424
find_lex $P425, "$/"
- $P426 = $P425."!make"("\f")
+ $P426 = $P425."!make"("\\")
.return ($P426)
control_422:
.local pmc exception
@@ -6020,536 +6248,723 @@
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<hex>" :subid("40_1274022880.65586") :method :outer("11_1274022880.65586")
+.include "except_types.pasm"
+.sub "quote_escape:sym<stopper>" :subid("38_1275811473.30481") :method :outer("11_1275811473.30481")
.param pmc param_431
-.annotate 'line', 163
+.annotate 'line', 182
new $P430, 'ExceptionHandler'
set_addr $P430, control_429
- $P430."handle_types"(57)
+ $P430."handle_types"(.CONTROL_RETURN)
push_eh $P430
.lex "self", self
.lex "$/", param_431
-.annotate 'line', 164
find_lex $P432, "$/"
- find_lex $P435, "$/"
- unless_null $P435, vivify_99
- $P435 = root_new ['parrot';'Hash']
- vivify_99:
- set $P436, $P435["hexint"]
- unless_null $P436, vivify_100
- new $P436, "Undef"
- vivify_100:
- if $P436, if_434
- find_lex $P439, "$/"
- unless_null $P439, vivify_101
- $P439 = root_new ['parrot';'Hash']
- vivify_101:
- set $P440, $P439["hexints"]
- unless_null $P440, vivify_102
- $P440 = root_new ['parrot';'Hash']
- vivify_102:
- set $P441, $P440["hexint"]
- unless_null $P441, vivify_103
- new $P441, "Undef"
- vivify_103:
- set $P433, $P441
- goto if_434_end
- if_434:
- find_lex $P437, "$/"
- unless_null $P437, vivify_104
- $P437 = root_new ['parrot';'Hash']
- vivify_104:
- set $P438, $P437["hexint"]
- unless_null $P438, vivify_105
- new $P438, "Undef"
- vivify_105:
- set $P433, $P438
- if_434_end:
- $P442 = "ints_to_string"($P433)
- $P443 = $P432."!make"($P442)
-.annotate 'line', 163
- .return ($P443)
+ find_lex $P433, "$/"
+ unless_null $P433, vivify_107
+ $P433 = root_new ['parrot';'Hash']
+ vivify_107:
+ set $P434, $P433["stopper"]
+ unless_null $P434, vivify_108
+ new $P434, "Undef"
+ vivify_108:
+ set $S435, $P434
+ $P436 = $P432."!make"($S435)
+ .return ($P436)
control_429:
.local pmc exception
.get_results (exception)
+ getattribute $P437, exception, "payload"
+ .return ($P437)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<bs>" :subid("39_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_441
+.annotate 'line', 184
+ new $P440, 'ExceptionHandler'
+ set_addr $P440, control_439
+ $P440."handle_types"(.CONTROL_RETURN)
+ push_eh $P440
+ .lex "self", self
+ .lex "$/", param_441
+ find_lex $P442, "$/"
+ $P443 = $P442."!make"("\b")
+ .return ($P443)
+ control_439:
+ .local pmc exception
+ .get_results (exception)
getattribute $P444, exception, "payload"
.return ($P444)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<oct>" :subid("41_1274022880.65586") :method :outer("11_1274022880.65586")
+.include "except_types.pasm"
+.sub "quote_escape:sym<nl>" :subid("40_1275811473.30481") :method :outer("11_1275811473.30481")
.param pmc param_448
-.annotate 'line', 167
+.annotate 'line', 185
new $P447, 'ExceptionHandler'
set_addr $P447, control_446
- $P447."handle_types"(57)
+ $P447."handle_types"(.CONTROL_RETURN)
push_eh $P447
.lex "self", self
.lex "$/", param_448
-.annotate 'line', 168
find_lex $P449, "$/"
- find_lex $P452, "$/"
- unless_null $P452, vivify_106
- $P452 = root_new ['parrot';'Hash']
- vivify_106:
- set $P453, $P452["octint"]
- unless_null $P453, vivify_107
- new $P453, "Undef"
- vivify_107:
- if $P453, if_451
- find_lex $P456, "$/"
- unless_null $P456, vivify_108
- $P456 = root_new ['parrot';'Hash']
- vivify_108:
- set $P457, $P456["octints"]
- unless_null $P457, vivify_109
- $P457 = root_new ['parrot';'Hash']
- vivify_109:
- set $P458, $P457["octint"]
- unless_null $P458, vivify_110
- new $P458, "Undef"
- vivify_110:
- set $P450, $P458
- goto if_451_end
- if_451:
- find_lex $P454, "$/"
- unless_null $P454, vivify_111
- $P454 = root_new ['parrot';'Hash']
- vivify_111:
- set $P455, $P454["octint"]
- unless_null $P455, vivify_112
- new $P455, "Undef"
- vivify_112:
- set $P450, $P455
- if_451_end:
- $P459 = "ints_to_string"($P450)
- $P460 = $P449."!make"($P459)
-.annotate 'line', 167
- .return ($P460)
+ $P450 = $P449."!make"("\n")
+ .return ($P450)
control_446:
.local pmc exception
.get_results (exception)
- getattribute $P461, exception, "payload"
- .return ($P461)
+ getattribute $P451, exception, "payload"
+ .return ($P451)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<cr>" :subid("41_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_455
+.annotate 'line', 186
+ new $P454, 'ExceptionHandler'
+ set_addr $P454, control_453
+ $P454."handle_types"(.CONTROL_RETURN)
+ push_eh $P454
+ .lex "self", self
+ .lex "$/", param_455
+ find_lex $P456, "$/"
+ $P457 = $P456."!make"("\r")
+ .return ($P457)
+ control_453:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P458, exception, "payload"
+ .return ($P458)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<tab>" :subid("42_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_462
+.annotate 'line', 187
+ new $P461, 'ExceptionHandler'
+ set_addr $P461, control_460
+ $P461."handle_types"(.CONTROL_RETURN)
+ push_eh $P461
+ .lex "self", self
+ .lex "$/", param_462
+ find_lex $P463, "$/"
+ $P464 = $P463."!make"("\t")
+ .return ($P464)
+ control_460:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P465, exception, "payload"
+ .return ($P465)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<chr>" :subid("42_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_465
-.annotate 'line', 171
- new $P464, 'ExceptionHandler'
- set_addr $P464, control_463
- $P464."handle_types"(57)
- push_eh $P464
+.include "except_types.pasm"
+.sub "quote_escape:sym<ff>" :subid("43_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_469
+.annotate 'line', 188
+ new $P468, 'ExceptionHandler'
+ set_addr $P468, control_467
+ $P468."handle_types"(.CONTROL_RETURN)
+ push_eh $P468
.lex "self", self
- .lex "$/", param_465
-.annotate 'line', 172
- find_lex $P466, "$/"
- find_lex $P467, "$/"
- unless_null $P467, vivify_113
- $P467 = root_new ['parrot';'Hash']
- vivify_113:
- set $P468, $P467["charspec"]
- unless_null $P468, vivify_114
- new $P468, "Undef"
- vivify_114:
- $P469 = $P468."ast"()
- $P470 = $P466."!make"($P469)
-.annotate 'line', 171
- .return ($P470)
- control_463:
+ .lex "$/", param_469
+ find_lex $P470, "$/"
+ $P471 = $P470."!make"("\f")
+ .return ($P471)
+ control_467:
.local pmc exception
.get_results (exception)
- getattribute $P471, exception, "payload"
- .return ($P471)
+ getattribute $P472, exception, "payload"
+ .return ($P472)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<0>" :subid("43_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_475
-.annotate 'line', 175
- new $P474, 'ExceptionHandler'
- set_addr $P474, control_473
- $P474."handle_types"(57)
- push_eh $P474
- .lex "self", self
- .lex "$/", param_475
-.annotate 'line', 176
- find_lex $P476, "$/"
- $P477 = $P476."!make"(unicode:"\x{0}")
-.annotate 'line', 175
- .return ($P477)
- control_473:
+.include "except_types.pasm"
+.sub "quote_escape:sym<esc>" :subid("44_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_476
+.annotate 'line', 189
+ new $P475, 'ExceptionHandler'
+ set_addr $P475, control_474
+ $P475."handle_types"(.CONTROL_RETURN)
+ push_eh $P475
+ .lex "self", self
+ .lex "$/", param_476
+ find_lex $P477, "$/"
+ $P478 = $P477."!make"("\e")
+ .return ($P478)
+ control_474:
.local pmc exception
.get_results (exception)
- getattribute $P478, exception, "payload"
- .return ($P478)
+ getattribute $P479, exception, "payload"
+ .return ($P479)
.end
.namespace ["HLL";"Actions"]
-.sub "quote_escape:sym<misc>" :subid("44_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_482
-.annotate 'line', 179
- new $P481, 'ExceptionHandler'
- set_addr $P481, control_480
- $P481."handle_types"(57)
- push_eh $P481
- .lex "self", self
- .lex "$/", param_482
-.annotate 'line', 180
- find_lex $P483, "$/"
- find_lex $P486, "$/"
- unless_null $P486, vivify_115
- $P486 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "quote_escape:sym<hex>" :subid("45_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_483
+.annotate 'line', 191
+ new $P482, 'ExceptionHandler'
+ set_addr $P482, control_481
+ $P482."handle_types"(.CONTROL_RETURN)
+ push_eh $P482
+ .lex "self", self
+ .lex "$/", param_483
+.annotate 'line', 192
+ find_lex $P484, "$/"
+ find_lex $P487, "$/"
+ unless_null $P487, vivify_109
+ $P487 = root_new ['parrot';'Hash']
+ vivify_109:
+ set $P488, $P487["hexint"]
+ unless_null $P488, vivify_110
+ new $P488, "Undef"
+ vivify_110:
+ if $P488, if_486
+ find_lex $P491, "$/"
+ unless_null $P491, vivify_111
+ $P491 = root_new ['parrot';'Hash']
+ vivify_111:
+ set $P492, $P491["hexints"]
+ unless_null $P492, vivify_112
+ $P492 = root_new ['parrot';'Hash']
+ vivify_112:
+ set $P493, $P492["hexint"]
+ unless_null $P493, vivify_113
+ new $P493, "Undef"
+ vivify_113:
+ set $P485, $P493
+ goto if_486_end
+ if_486:
+ find_lex $P489, "$/"
+ unless_null $P489, vivify_114
+ $P489 = root_new ['parrot';'Hash']
+ vivify_114:
+ set $P490, $P489["hexint"]
+ unless_null $P490, vivify_115
+ new $P490, "Undef"
vivify_115:
- set $P487, $P486["textq"]
- unless_null $P487, vivify_116
- new $P487, "Undef"
+ set $P485, $P490
+ if_486_end:
+ $P494 = "ints_to_string"($P485)
+ $P495 = $P484."!make"($P494)
+.annotate 'line', 191
+ .return ($P495)
+ control_481:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P496, exception, "payload"
+ .return ($P496)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<oct>" :subid("46_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_500
+.annotate 'line', 195
+ new $P499, 'ExceptionHandler'
+ set_addr $P499, control_498
+ $P499."handle_types"(.CONTROL_RETURN)
+ push_eh $P499
+ .lex "self", self
+ .lex "$/", param_500
+.annotate 'line', 196
+ find_lex $P501, "$/"
+ find_lex $P504, "$/"
+ unless_null $P504, vivify_116
+ $P504 = root_new ['parrot';'Hash']
vivify_116:
- if $P487, if_485
- find_lex $P493, "$/"
- unless_null $P493, vivify_117
- $P493 = root_new ['parrot';'Hash']
+ set $P505, $P504["octint"]
+ unless_null $P505, vivify_117
+ new $P505, "Undef"
vivify_117:
- set $P494, $P493["textqq"]
- unless_null $P494, vivify_118
- new $P494, "Undef"
+ if $P505, if_503
+ find_lex $P508, "$/"
+ unless_null $P508, vivify_118
+ $P508 = root_new ['parrot';'Hash']
vivify_118:
- $P495 = $P494."Str"()
- set $P484, $P495
- goto if_485_end
- if_485:
- new $P488, "String"
- assign $P488, "\\"
- find_lex $P489, "$/"
- unless_null $P489, vivify_119
- $P489 = root_new ['parrot';'Hash']
+ set $P509, $P508["octints"]
+ unless_null $P509, vivify_119
+ $P509 = root_new ['parrot';'Hash']
vivify_119:
- set $P490, $P489["textq"]
- unless_null $P490, vivify_120
- new $P490, "Undef"
+ set $P510, $P509["octint"]
+ unless_null $P510, vivify_120
+ new $P510, "Undef"
vivify_120:
- $S491 = $P490."Str"()
- concat $P492, $P488, $S491
- set $P484, $P492
- if_485_end:
- $P496 = $P483."!make"($P484)
-.annotate 'line', 179
- .return ($P496)
- control_480:
+ set $P502, $P510
+ goto if_503_end
+ if_503:
+ find_lex $P506, "$/"
+ unless_null $P506, vivify_121
+ $P506 = root_new ['parrot';'Hash']
+ vivify_121:
+ set $P507, $P506["octint"]
+ unless_null $P507, vivify_122
+ new $P507, "Undef"
+ vivify_122:
+ set $P502, $P507
+ if_503_end:
+ $P511 = "ints_to_string"($P502)
+ $P512 = $P501."!make"($P511)
+.annotate 'line', 195
+ .return ($P512)
+ control_498:
.local pmc exception
.get_results (exception)
- getattribute $P497, exception, "payload"
- .return ($P497)
+ getattribute $P513, exception, "payload"
+ .return ($P513)
.end
.namespace ["HLL";"Actions"]
-.sub "charname" :subid("45_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_501
-.annotate 'line', 183
- new $P500, 'ExceptionHandler'
- set_addr $P500, control_499
- $P500."handle_types"(57)
- push_eh $P500
+.include "except_types.pasm"
+.sub "quote_escape:sym<chr>" :subid("47_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_517
+.annotate 'line', 199
+ new $P516, 'ExceptionHandler'
+ set_addr $P516, control_515
+ $P516."handle_types"(.CONTROL_RETURN)
+ push_eh $P516
.lex "self", self
- .lex "$/", param_501
-.annotate 'line', 184
- new $P502, "Undef"
- .lex "$codepoint", $P502
-.annotate 'line', 185
- find_lex $P505, "$/"
- unless_null $P505, vivify_121
- $P505 = root_new ['parrot';'Hash']
- vivify_121:
- set $P506, $P505["integer"]
- unless_null $P506, vivify_122
- new $P506, "Undef"
- vivify_122:
- if $P506, if_504
-.annotate 'line', 186
- find_lex $P510, "$/"
- set $S511, $P510
- find_codepoint $I512, $S511
- new $P503, 'Integer'
- set $P503, $I512
-.annotate 'line', 185
- goto if_504_end
- if_504:
- find_lex $P507, "$/"
- unless_null $P507, vivify_123
- $P507 = root_new ['parrot';'Hash']
+ .lex "$/", param_517
+.annotate 'line', 200
+ find_lex $P518, "$/"
+ find_lex $P519, "$/"
+ unless_null $P519, vivify_123
+ $P519 = root_new ['parrot';'Hash']
vivify_123:
- set $P508, $P507["integer"]
- unless_null $P508, vivify_124
- new $P508, "Undef"
+ set $P520, $P519["charspec"]
+ unless_null $P520, vivify_124
+ new $P520, "Undef"
vivify_124:
- $P509 = $P508."ast"()
- set $P503, $P509
- if_504_end:
- store_lex "$codepoint", $P503
-.annotate 'line', 187
- find_lex $P514, "$codepoint"
- set $N515, $P514
- islt $I516, $N515, 0.0
- unless $I516, if_513_end
- find_lex $P517, "$/"
- $P518 = $P517."CURSOR"()
- new $P519, 'String'
- set $P519, "Unrecognized character name "
- find_lex $P520, "$/"
- concat $P521, $P519, $P520
- $P518."panic"($P521)
- if_513_end:
-.annotate 'line', 188
- find_lex $P522, "$/"
- find_lex $P523, "$codepoint"
- set $I524, $P523
- chr $S525, $I524
- $P526 = $P522."!make"($S525)
-.annotate 'line', 183
- .return ($P526)
- control_499:
+ $P521 = $P520."ast"()
+ $P522 = $P518."!make"($P521)
+.annotate 'line', 199
+ .return ($P522)
+ control_515:
.local pmc exception
.get_results (exception)
- getattribute $P527, exception, "payload"
- .return ($P527)
+ getattribute $P523, exception, "payload"
+ .return ($P523)
.end
.namespace ["HLL";"Actions"]
-.sub "charnames" :subid("46_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_531
-.annotate 'line', 191
- .const 'Sub' $P540 = "47_1274022880.65586"
- capture_lex $P540
- new $P530, 'ExceptionHandler'
- set_addr $P530, control_529
- $P530."handle_types"(57)
- push_eh $P530
+.include "except_types.pasm"
+.sub "quote_escape:sym<0>" :subid("48_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_527
+.annotate 'line', 203
+ new $P526, 'ExceptionHandler'
+ set_addr $P526, control_525
+ $P526."handle_types"(.CONTROL_RETURN)
+ push_eh $P526
.lex "self", self
- .lex "$/", param_531
-.annotate 'line', 192
- new $P532, "Undef"
- .lex "$str", $P532
- new $P533, "String"
- assign $P533, ""
- store_lex "$str", $P533
-.annotate 'line', 193
+ .lex "$/", param_527
+.annotate 'line', 204
+ find_lex $P528, "$/"
+ $P529 = $P528."!make"(unicode:"\x{0}")
+.annotate 'line', 203
+ .return ($P529)
+ control_525:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P530, exception, "payload"
+ .return ($P530)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<misc>" :subid("49_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_534
+.annotate 'line', 207
+ new $P533, 'ExceptionHandler'
+ set_addr $P533, control_532
+ $P533."handle_types"(.CONTROL_RETURN)
+ push_eh $P533
+ .lex "self", self
+ .lex "$/", param_534
+.annotate 'line', 208
find_lex $P535, "$/"
- unless_null $P535, vivify_125
- $P535 = root_new ['parrot';'Hash']
+ find_lex $P538, "$/"
+ unless_null $P538, vivify_125
+ $P538 = root_new ['parrot';'Hash']
vivify_125:
- set $P536, $P535["charname"]
- unless_null $P536, vivify_126
- new $P536, "Undef"
+ set $P539, $P538["textq"]
+ unless_null $P539, vivify_126
+ new $P539, "Undef"
vivify_126:
- defined $I537, $P536
- unless $I537, for_undef_127
- iter $P534, $P536
- new $P547, 'ExceptionHandler'
- set_addr $P547, loop546_handler
- $P547."handle_types"(64, 66, 65)
- push_eh $P547
- loop546_test:
- unless $P534, loop546_done
- shift $P538, $P534
- loop546_redo:
- .const 'Sub' $P540 = "47_1274022880.65586"
- capture_lex $P540
- $P540($P538)
- loop546_next:
- goto loop546_test
- loop546_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P548, exception, 'type'
- eq $P548, 64, loop546_next
- eq $P548, 66, loop546_redo
- loop546_done:
+ if $P539, if_537
+ find_lex $P545, "$/"
+ unless_null $P545, vivify_127
+ $P545 = root_new ['parrot';'Hash']
+ vivify_127:
+ set $P546, $P545["textqq"]
+ unless_null $P546, vivify_128
+ new $P546, "Undef"
+ vivify_128:
+ $P547 = $P546."Str"()
+ set $P536, $P547
+ goto if_537_end
+ if_537:
+ new $P540, "String"
+ assign $P540, "\\"
+ find_lex $P541, "$/"
+ unless_null $P541, vivify_129
+ $P541 = root_new ['parrot';'Hash']
+ vivify_129:
+ set $P542, $P541["textq"]
+ unless_null $P542, vivify_130
+ new $P542, "Undef"
+ vivify_130:
+ $S543 = $P542."Str"()
+ concat $P544, $P540, $S543
+ set $P536, $P544
+ if_537_end:
+ $P548 = $P535."!make"($P536)
+.annotate 'line', 207
+ .return ($P548)
+ control_532:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P549, exception, "payload"
+ .return ($P549)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.include "except_types.pasm"
+.sub "charname" :subid("50_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_553
+.annotate 'line', 211
+ new $P552, 'ExceptionHandler'
+ set_addr $P552, control_551
+ $P552."handle_types"(.CONTROL_RETURN)
+ push_eh $P552
+ .lex "self", self
+ .lex "$/", param_553
+.annotate 'line', 212
+ new $P554, "Undef"
+ .lex "$codepoint", $P554
+.annotate 'line', 213
+ find_lex $P557, "$/"
+ unless_null $P557, vivify_131
+ $P557 = root_new ['parrot';'Hash']
+ vivify_131:
+ set $P558, $P557["integer"]
+ unless_null $P558, vivify_132
+ new $P558, "Undef"
+ vivify_132:
+ if $P558, if_556
+.annotate 'line', 214
+ find_lex $P562, "$/"
+ set $S563, $P562
+ find_codepoint $I564, $S563
+ new $P555, 'Integer'
+ set $P555, $I564
+.annotate 'line', 213
+ goto if_556_end
+ if_556:
+ find_lex $P559, "$/"
+ unless_null $P559, vivify_133
+ $P559 = root_new ['parrot';'Hash']
+ vivify_133:
+ set $P560, $P559["integer"]
+ unless_null $P560, vivify_134
+ new $P560, "Undef"
+ vivify_134:
+ $P561 = $P560."ast"()
+ set $P555, $P561
+ if_556_end:
+ store_lex "$codepoint", $P555
+.annotate 'line', 215
+ find_lex $P566, "$codepoint"
+ set $N567, $P566
+ islt $I568, $N567, 0.0
+ unless $I568, if_565_end
+ find_lex $P569, "$/"
+ $P570 = $P569."CURSOR"()
+ new $P571, 'String'
+ set $P571, "Unrecognized character name "
+ find_lex $P572, "$/"
+ concat $P573, $P571, $P572
+ $P570."panic"($P573)
+ if_565_end:
+.annotate 'line', 216
+ find_lex $P574, "$/"
+ find_lex $P575, "$codepoint"
+ set $I576, $P575
+ chr $S577, $I576
+ $P578 = $P574."!make"($S577)
+.annotate 'line', 211
+ .return ($P578)
+ control_551:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P579, exception, "payload"
+ .return ($P579)
+.end
+
+
+.namespace ["HLL";"Actions"]
+.include "except_types.pasm"
+.sub "charnames" :subid("51_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_583
+.annotate 'line', 219
+ .const 'Sub' $P592 = "52_1275811473.30481"
+ capture_lex $P592
+ new $P582, 'ExceptionHandler'
+ set_addr $P582, control_581
+ $P582."handle_types"(.CONTROL_RETURN)
+ push_eh $P582
+ .lex "self", self
+ .lex "$/", param_583
+.annotate 'line', 220
+ new $P584, "Undef"
+ .lex "$str", $P584
+ new $P585, "String"
+ assign $P585, ""
+ store_lex "$str", $P585
+.annotate 'line', 221
+ find_lex $P587, "$/"
+ unless_null $P587, vivify_135
+ $P587 = root_new ['parrot';'Hash']
+ vivify_135:
+ set $P588, $P587["charname"]
+ unless_null $P588, vivify_136
+ new $P588, "Undef"
+ vivify_136:
+ defined $I589, $P588
+ unless $I589, for_undef_137
+ iter $P586, $P588
+ new $P599, 'ExceptionHandler'
+ set_addr $P599, loop598_handler
+ $P599."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P599
+ loop598_test:
+ unless $P586, loop598_done
+ shift $P590, $P586
+ loop598_redo:
+ .const 'Sub' $P592 = "52_1275811473.30481"
+ capture_lex $P592
+ $P592($P590)
+ loop598_next:
+ goto loop598_test
+ loop598_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P600, exception, 'type'
+ eq $P600, .CONTROL_LOOP_NEXT, loop598_next
+ eq $P600, .CONTROL_LOOP_REDO, loop598_redo
+ loop598_done:
pop_eh
- for_undef_127:
-.annotate 'line', 194
- find_lex $P549, "$/"
- find_lex $P550, "$str"
- $P551 = $P549."!make"($P550)
-.annotate 'line', 191
- .return ($P551)
- control_529:
+ for_undef_137:
+.annotate 'line', 222
+ find_lex $P601, "$/"
+ find_lex $P602, "$str"
+ $P603 = $P601."!make"($P602)
+.annotate 'line', 219
+ .return ($P603)
+ control_581:
.local pmc exception
.get_results (exception)
- getattribute $P552, exception, "payload"
- .return ($P552)
+ getattribute $P604, exception, "payload"
+ .return ($P604)
.end
.namespace ["HLL";"Actions"]
-.sub "_block539" :anon :subid("47_1274022880.65586") :outer("46_1274022880.65586")
- .param pmc param_541
-.annotate 'line', 193
- .lex "$_", param_541
- find_lex $P542, "$str"
- find_lex $P543, "$_"
- $S544 = $P543."ast"()
- concat $P545, $P542, $S544
- store_lex "$str", $P545
- .return ($P545)
+.sub "_block591" :anon :subid("52_1275811473.30481") :outer("51_1275811473.30481")
+ .param pmc param_593
+.annotate 'line', 221
+ .lex "$_", param_593
+ find_lex $P594, "$str"
+ find_lex $P595, "$_"
+ $S596 = $P595."ast"()
+ concat $P597, $P594, $S596
+ store_lex "$str", $P597
+ .return ($P597)
.end
.namespace ["HLL";"Actions"]
-.sub "charspec" :subid("48_1274022880.65586") :method :outer("11_1274022880.65586")
- .param pmc param_556
-.annotate 'line', 197
- new $P555, 'ExceptionHandler'
- set_addr $P555, control_554
- $P555."handle_types"(57)
- push_eh $P555
+.include "except_types.pasm"
+.sub "charspec" :subid("53_1275811473.30481") :method :outer("11_1275811473.30481")
+ .param pmc param_608
+.annotate 'line', 225
+ new $P607, 'ExceptionHandler'
+ set_addr $P607, control_606
+ $P607."handle_types"(.CONTROL_RETURN)
+ push_eh $P607
.lex "self", self
- .lex "$/", param_556
-.annotate 'line', 198
- find_lex $P557, "$/"
- find_lex $P560, "$/"
- unless_null $P560, vivify_128
- $P560 = root_new ['parrot';'Hash']
- vivify_128:
- set $P561, $P560["charnames"]
- unless_null $P561, vivify_129
- new $P561, "Undef"
- vivify_129:
- if $P561, if_559
- find_lex $P565, "$/"
- $I566 = "string_to_int"($P565, 10)
- chr $S567, $I566
- new $P558, 'String'
- set $P558, $S567
- goto if_559_end
- if_559:
- find_lex $P562, "$/"
- unless_null $P562, vivify_130
- $P562 = root_new ['parrot';'Hash']
- vivify_130:
- set $P563, $P562["charnames"]
- unless_null $P563, vivify_131
- new $P563, "Undef"
- vivify_131:
- $P564 = $P563."ast"()
- set $P558, $P564
- if_559_end:
- $P568 = $P557."!make"($P558)
-.annotate 'line', 197
- .return ($P568)
- control_554:
+ .lex "$/", param_608
+.annotate 'line', 226
+ find_lex $P609, "$/"
+ find_lex $P612, "$/"
+ unless_null $P612, vivify_138
+ $P612 = root_new ['parrot';'Hash']
+ vivify_138:
+ set $P613, $P612["charnames"]
+ unless_null $P613, vivify_139
+ new $P613, "Undef"
+ vivify_139:
+ if $P613, if_611
+ find_lex $P617, "$/"
+ $I618 = "string_to_int"($P617, 10)
+ chr $S619, $I618
+ new $P610, 'String'
+ set $P610, $S619
+ goto if_611_end
+ if_611:
+ find_lex $P614, "$/"
+ unless_null $P614, vivify_140
+ $P614 = root_new ['parrot';'Hash']
+ vivify_140:
+ set $P615, $P614["charnames"]
+ unless_null $P615, vivify_141
+ new $P615, "Undef"
+ vivify_141:
+ $P616 = $P615."ast"()
+ set $P610, $P616
+ if_611_end:
+ $P620 = $P609."!make"($P610)
+.annotate 'line', 225
+ .return ($P620)
+ control_606:
.local pmc exception
.get_results (exception)
- getattribute $P569, exception, "payload"
- .return ($P569)
+ getattribute $P621, exception, "payload"
+ .return ($P621)
.end
.namespace ["HLL";"Actions"]
-.sub "_block571" :load :anon :subid("49_1274022880.65586")
+.sub "_block623" :load :anon :subid("54_1275811473.30481")
.annotate 'line', 3
- .const 'Sub' $P573 = "11_1274022880.65586"
- $P574 = $P573()
- .return ($P574)
+ .const 'Sub' $P625 = "11_1275811473.30481"
+ $P626 = $P625()
+ .return ($P626)
.end
.namespace []
-.sub "_block576" :load :anon :subid("50_1274022880.65586")
+.sub "_block628" :load :anon :subid("55_1275811473.30481")
.annotate 'line', 1
- .const 'Sub' $P578 = "10_1274022880.65586"
- $P579 = $P578()
- .return ($P579)
+ .const 'Sub' $P630 = "10_1275811473.30481"
+ $P631 = $P630()
+ .return ($P631)
.end
### .include 'gen/hllcompiler.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1274022881.57388")
+.sub "_block11" :anon :subid("10_1275811474.72541")
.annotate 'line', 0
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
capture_lex $P14
+.annotate 'line', 1
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
.annotate 'line', 6
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
capture_lex $P14
- $P285 = $P14()
+ $P492 = $P14()
.annotate 'line', 1
- .return ($P285)
- .const 'Sub' $P287 = "25_1274022881.57388"
- .return ($P287)
+ .return ($P492)
+ .const 'Sub' $P494 = "35_1275811474.72541"
+ .return ($P494)
.end
.namespace []
-.sub "" :load :init :subid("post26") :outer("10_1274022881.57388")
+.sub "" :load :init :subid("post36") :outer("10_1275811474.72541")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1274022881.57388"
+ .const 'Sub' $P12 = "10_1275811474.72541"
.local pmc block
set block, $P12
.annotate 'line', 2
load_bytecode "PCT/HLLCompiler.pbc"
.annotate 'line', 1
- $P290 = get_root_global ["parrot"], "P6metaclass"
- new $P291, "ResizablePMCArray"
- push $P291, "$!language"
- $P290."new_class"("HLL::Compiler", "PCT::HLLCompiler" :named("parent"), $P291 :named("attr"))
+ $P497 = get_root_global ["parrot"], "P6metaclass"
+ new $P498, "ResizablePMCArray"
+ push $P498, "$!language"
+ $P497."new_class"("HLL::Compiler", "PCT::HLLCompiler" :named("parent"), $P498 :named("attr"))
.end
.namespace ["HLL";"Compiler"]
-.sub "_block13" :subid("11_1274022881.57388") :outer("10_1274022881.57388")
+.sub "_block13" :subid("11_1275811474.72541") :outer("10_1275811474.72541")
.annotate 'line', 6
- .const 'Sub' $P188 = "20_1274022881.57388"
+ .const 'Sub' $P484 = "34_1275811474.72541"
+ capture_lex $P484
+ .const 'Sub' $P442 = "32_1275811474.72541"
+ capture_lex $P442
+ .const 'Sub' $P298 = "26_1275811474.72541"
+ capture_lex $P298
+ .const 'Sub' $P283 = "25_1275811474.72541"
+ capture_lex $P283
+ .const 'Sub' $P188 = "20_1275811474.72541"
capture_lex $P188
- .const 'Sub' $P153 = "18_1274022881.57388"
+ .const 'Sub' $P153 = "18_1275811474.72541"
capture_lex $P153
- .const 'Sub' $P138 = "17_1274022881.57388"
+ .const 'Sub' $P138 = "17_1275811474.72541"
capture_lex $P138
- .const 'Sub' $P122 = "16_1274022881.57388"
+ .const 'Sub' $P122 = "16_1275811474.72541"
capture_lex $P122
- .const 'Sub' $P33 = "13_1274022881.57388"
+ .const 'Sub' $P33 = "13_1275811474.72541"
capture_lex $P33
- .const 'Sub' $P15 = "12_1274022881.57388"
+ .const 'Sub' $P15 = "12_1275811474.72541"
capture_lex $P15
.annotate 'line', 14
- .const 'Sub' $P15 = "12_1274022881.57388"
+ .const 'Sub' $P15 = "12_1275811474.72541"
newclosure $P31, $P15
.lex "value_type", $P31
.annotate 'line', 10
find_lex $P32, "value_type"
-.annotate 'line', 69
- .const 'Sub' $P188 = "20_1274022881.57388"
- newclosure $P283, $P188
+.annotate 'line', 163
+ .const 'Sub' $P484 = "34_1275811474.72541"
+ newclosure $P490, $P484
.annotate 'line', 6
- .return ($P283)
+ .return ($P490)
.end
.namespace ["HLL";"Compiler"]
-.sub "" :load :init :subid("post27") :outer("11_1274022881.57388")
+.sub "" :load :init :subid("post37") :outer("11_1275811474.72541")
.annotate 'line', 6
get_hll_global $P14, ["HLL";"Compiler"], "_block13"
.local pmc block
set block, $P14
.annotate 'line', 11
- get_hll_global $P284, ["HLL"], "Compiler"
- $P284."language"("parrot")
+ get_hll_global $P491, ["HLL"], "Compiler"
+ $P491."language"("parrot")
.end
.namespace ["HLL";"Compiler"]
-.sub "value_type" :subid("12_1274022881.57388") :outer("11_1274022881.57388")
+.include "except_types.pasm"
+.sub "value_type" :subid("12_1275811474.72541") :outer("11_1275811474.72541")
.param pmc param_18
.annotate 'line', 14
new $P17, 'ExceptionHandler'
set_addr $P17, control_16
- $P17."handle_types"(57)
+ $P17."handle_types"(.CONTROL_RETURN)
push_eh $P17
.lex "$value", param_18
.annotate 'line', 15
@@ -6588,26 +7003,27 @@
.namespace ["HLL";"Compiler"]
-.sub "get_exports" :subid("13_1274022881.57388") :method :outer("11_1274022881.57388")
+.include "except_types.pasm"
+.sub "get_exports" :subid("13_1275811474.72541") :method :outer("11_1275811474.72541")
.param pmc param_36
.param pmc param_39 :slurpy
.param pmc param_37 :optional :named("tagset")
.param int has_param_37 :opt_flag
.annotate 'line', 20
- .const 'Sub' $P105 = "15_1274022881.57388"
+ .const 'Sub' $P105 = "15_1275811474.72541"
capture_lex $P105
- .const 'Sub' $P84 = "14_1274022881.57388"
+ .const 'Sub' $P84 = "14_1275811474.72541"
capture_lex $P84
new $P35, 'ExceptionHandler'
set_addr $P35, control_34
- $P35."handle_types"(57)
+ $P35."handle_types"(.CONTROL_RETURN)
push_eh $P35
.lex "self", self
.lex "$module", param_36
- if has_param_37, optparam_28
+ if has_param_37, optparam_38
new $P38, "Undef"
set param_37, $P38
- optparam_28:
+ optparam_38:
.lex "$tagset", param_37
.lex "@symbols", param_39
.annotate 'line', 27
@@ -6653,17 +7069,17 @@
find_lex $P60, "$tagset"
set $S61, $P60
find_lex $P62, "$module"
- unless_null $P62, vivify_29
+ unless_null $P62, vivify_39
$P62 = root_new ['parrot';'Hash']
- vivify_29:
+ vivify_39:
set $P63, $P62["EXPORT"]
- unless_null $P63, vivify_30
+ unless_null $P63, vivify_40
$P63 = root_new ['parrot';'Hash']
- vivify_30:
+ vivify_40:
set $P64, $P63[$S61]
- unless_null $P64, vivify_31
+ unless_null $P64, vivify_41
new $P64, "Undef"
- vivify_31:
+ vivify_41:
store_lex "%source", $P64
.annotate 'line', 29
find_lex $P66, "%source"
@@ -6692,17 +7108,17 @@
.annotate 'line', 39
find_lex $P101, "%source"
defined $I102, $P101
- unless $I102, for_undef_32
+ unless $I102, for_undef_42
iter $P100, $P101
new $P118, 'ExceptionHandler'
set_addr $P118, loop117_handler
- $P118."handle_types"(64, 66, 65)
+ $P118."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P118
loop117_test:
unless $P100, loop117_done
shift $P103, $P100
loop117_redo:
- .const 'Sub' $P105 = "15_1274022881.57388"
+ .const 'Sub' $P105 = "15_1275811474.72541"
capture_lex $P105
$P105($P103)
loop117_next:
@@ -6711,28 +7127,28 @@
.local pmc exception
.get_results (exception)
getattribute $P119, exception, 'type'
- eq $P119, 64, loop117_next
- eq $P119, 66, loop117_redo
+ eq $P119, .CONTROL_LOOP_NEXT, loop117_next
+ eq $P119, .CONTROL_LOOP_REDO, loop117_redo
loop117_done:
pop_eh
- for_undef_32:
+ for_undef_42:
.annotate 'line', 38
goto if_77_end
if_77:
.annotate 'line', 33
find_lex $P80, "@symbols"
defined $I81, $P80
- unless $I81, for_undef_35
+ unless $I81, for_undef_45
iter $P79, $P80
new $P98, 'ExceptionHandler'
set_addr $P98, loop97_handler
- $P98."handle_types"(64, 66, 65)
+ $P98."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P98
loop97_test:
unless $P79, loop97_done
shift $P82, $P79
loop97_redo:
- .const 'Sub' $P84 = "14_1274022881.57388"
+ .const 'Sub' $P84 = "14_1275811474.72541"
capture_lex $P84
$P84($P82)
loop97_next:
@@ -6741,11 +7157,11 @@
.local pmc exception
.get_results (exception)
getattribute $P99, exception, 'type'
- eq $P99, 64, loop97_next
- eq $P99, 66, loop97_redo
+ eq $P99, .CONTROL_LOOP_NEXT, loop97_next
+ eq $P99, .CONTROL_LOOP_REDO, loop97_redo
loop97_done:
pop_eh
- for_undef_35:
+ for_undef_45:
if_77_end:
.annotate 'line', 32
find_lex $P120, "%exports"
@@ -6760,7 +7176,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block104" :anon :subid("15_1274022881.57388") :outer("13_1274022881.57388")
+.sub "_block104" :anon :subid("15_1275811474.72541") :outer("13_1275811474.72541")
.param pmc param_107
.annotate 'line', 40
new $P106, "Undef"
@@ -6776,15 +7192,15 @@
find_lex $P113, "$value"
$P114 = "value_type"($P113)
find_lex $P115, "%exports"
- unless_null $P115, vivify_33
+ unless_null $P115, vivify_43
$P115 = root_new ['parrot';'Hash']
store_lex "%exports", $P115
- vivify_33:
+ vivify_43:
set $P116, $P115[$P114]
- unless_null $P116, vivify_34
+ unless_null $P116, vivify_44
$P116 = root_new ['parrot';'Hash']
set $P115[$P114], $P116
- vivify_34:
+ vivify_44:
set $P116[$P112], $P110
.annotate 'line', 39
.return ($P110)
@@ -6792,7 +7208,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block83" :anon :subid("14_1274022881.57388") :outer("13_1274022881.57388")
+.sub "_block83" :anon :subid("14_1275811474.72541") :outer("13_1275811474.72541")
.param pmc param_86
.annotate 'line', 34
new $P85, "Undef"
@@ -6801,13 +7217,13 @@
find_lex $P87, "$_"
set $S88, $P87
find_lex $P89, "%source"
- unless_null $P89, vivify_36
+ unless_null $P89, vivify_46
$P89 = root_new ['parrot';'Hash']
- vivify_36:
+ vivify_46:
set $P90, $P89[$S88]
- unless_null $P90, vivify_37
+ unless_null $P90, vivify_47
new $P90, "Undef"
- vivify_37:
+ vivify_47:
store_lex "$value", $P90
.annotate 'line', 35
find_lex $P91, "$value"
@@ -6815,15 +7231,15 @@
find_lex $P93, "$value"
$P94 = "value_type"($P93)
find_lex $P95, "%exports"
- unless_null $P95, vivify_38
+ unless_null $P95, vivify_48
$P95 = root_new ['parrot';'Hash']
store_lex "%exports", $P95
- vivify_38:
+ vivify_48:
set $P96, $P95[$P94]
- unless_null $P96, vivify_39
+ unless_null $P96, vivify_49
$P96 = root_new ['parrot';'Hash']
set $P95[$P94], $P96
- vivify_39:
+ vivify_49:
set $P96[$P92], $P91
.annotate 'line', 33
.return ($P91)
@@ -6831,12 +7247,13 @@
.namespace ["HLL";"Compiler"]
-.sub "get_module" :subid("16_1274022881.57388") :method :outer("11_1274022881.57388")
+.include "except_types.pasm"
+.sub "get_module" :subid("16_1275811474.72541") :method :outer("11_1275811474.72541")
.param pmc param_125
.annotate 'line', 47
new $P124, 'ExceptionHandler'
set_addr $P124, control_123
- $P124."handle_types"(57)
+ $P124."handle_types"(.CONTROL_RETURN)
push_eh $P124
.lex "self", self
.lex "$name", param_125
@@ -6851,9 +7268,9 @@
find_lex $P130, "@name"
find_lex $P131, "self"
getattribute $P132, $P131, "$!language"
- unless_null $P132, vivify_40
+ unless_null $P132, vivify_50
new $P132, "Undef"
- vivify_40:
+ vivify_50:
set $S133, $P132
downcase $S134, $S133
$P130."unshift"($S134)
@@ -6871,19 +7288,20 @@
.namespace ["HLL";"Compiler"]
-.sub "language" :subid("17_1274022881.57388") :method :outer("11_1274022881.57388")
+.include "except_types.pasm"
+.sub "language" :subid("17_1275811474.72541") :method :outer("11_1275811474.72541")
.param pmc param_141 :optional
.param int has_param_141 :opt_flag
.annotate 'line', 53
new $P140, 'ExceptionHandler'
set_addr $P140, control_139
- $P140."handle_types"(57)
+ $P140."handle_types"(.CONTROL_RETURN)
push_eh $P140
.lex "self", self
- if has_param_141, optparam_41
+ if has_param_141, optparam_51
new $P142, "Undef"
set param_141, $P142
- optparam_41:
+ optparam_51:
.lex "$name", param_141
.annotate 'line', 54
find_lex $P144, "$name"
@@ -6901,9 +7319,9 @@
.annotate 'line', 54
find_lex $P150, "self"
getattribute $P151, $P150, "$!language"
- unless_null $P151, vivify_42
+ unless_null $P151, vivify_52
new $P151, "Undef"
- vivify_42:
+ vivify_52:
.annotate 'line', 53
.return ($P151)
control_139:
@@ -6915,14 +7333,15 @@
.namespace ["HLL";"Compiler"]
-.sub "load_module" :subid("18_1274022881.57388") :method :outer("11_1274022881.57388")
+.include "except_types.pasm"
+.sub "load_module" :subid("18_1275811474.72541") :method :outer("11_1275811474.72541")
.param pmc param_156
.annotate 'line', 61
- .const 'Sub' $P166 = "19_1274022881.57388"
+ .const 'Sub' $P166 = "19_1275811474.72541"
capture_lex $P166
new $P155, 'ExceptionHandler'
set_addr $P155, control_154
- $P155."handle_types"(57)
+ $P155."handle_types"(.CONTROL_RETURN)
push_eh $P155
.lex "self", self
.lex "$name", param_156
@@ -6945,7 +7364,7 @@
assign $P164, 0
store_lex "$loaded", $P164
.annotate 'line', 64
- .const 'Sub' $P166 = "19_1274022881.57388"
+ .const 'Sub' $P166 = "19_1275811474.72541"
capture_lex $P166
$P166()
.annotate 'line', 65
@@ -6974,11 +7393,12 @@
.namespace ["HLL";"Compiler"]
-.sub "_block165" :anon :subid("19_1274022881.57388") :outer("18_1274022881.57388")
+.include "except_types.pasm"
+.sub "_block165" :anon :subid("19_1275811474.72541") :outer("18_1275811474.72541")
.annotate 'line', 64
new $P173, 'ExceptionHandler'
set_addr $P173, control_172
- $P173."handle_types_except"(57, 58, 59, 60, 62, 63, 64, 65, 66)
+ $P173."handle_types_except"(.CONTROL_RETURN, .CONTROL_OK, .CONTROL_BREAK, .CONTROL_CONTINUE, .CONTROL_TAKE, .CONTROL_LEAVE, .CONTROL_EXIT, .CONTROL_LOOP_NEXT, .CONTROL_LOOP_LAST, .CONTROL_LOOP_REDO)
push_eh $P173
find_lex $P167, "$base"
concat $P168, $P167, ".pbc"
@@ -7007,15 +7427,16 @@
.namespace ["HLL";"Compiler"]
-.sub "import" :subid("20_1274022881.57388") :method :outer("11_1274022881.57388")
+.include "except_types.pasm"
+.sub "import" :subid("20_1275811474.72541") :method :outer("11_1275811474.72541")
.param pmc param_191
.param pmc param_192
.annotate 'line', 69
- .const 'Sub' $P198 = "21_1274022881.57388"
+ .const 'Sub' $P198 = "21_1275811474.72541"
capture_lex $P198
new $P190, 'ExceptionHandler'
set_addr $P190, control_189
- $P190."handle_types"(57)
+ $P190."handle_types"(.CONTROL_RETURN)
push_eh $P190
.lex "self", self
.lex "$target", param_191
@@ -7023,17 +7444,17 @@
.annotate 'line', 70
find_lex $P194, "%exports"
defined $I195, $P194
- unless $I195, for_undef_43
+ unless $I195, for_undef_53
iter $P193, $P194
new $P280, 'ExceptionHandler'
set_addr $P280, loop279_handler
- $P280."handle_types"(64, 66, 65)
+ $P280."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P280
loop279_test:
unless $P193, loop279_done
shift $P196, $P193
loop279_redo:
- .const 'Sub' $P198 = "21_1274022881.57388"
+ .const 'Sub' $P198 = "21_1275811474.72541"
capture_lex $P198
$P198($P196)
loop279_next:
@@ -7042,11 +7463,11 @@
.local pmc exception
.get_results (exception)
getattribute $P281, exception, 'type'
- eq $P281, 64, loop279_next
- eq $P281, 66, loop279_redo
+ eq $P281, .CONTROL_LOOP_NEXT, loop279_next
+ eq $P281, .CONTROL_LOOP_REDO, loop279_redo
loop279_done:
pop_eh
- for_undef_43:
+ for_undef_53:
.annotate 'line', 69
.return ($P193)
control_189:
@@ -7058,14 +7479,15 @@
.namespace ["HLL";"Compiler"]
-.sub "_block197" :anon :subid("21_1274022881.57388") :outer("20_1274022881.57388")
+.include "except_types.pasm"
+.sub "_block197" :anon :subid("21_1275811474.72541") :outer("20_1275811474.72541")
.param pmc param_201
.annotate 'line', 70
- .const 'Sub' $P268 = "24_1274022881.57388"
+ .const 'Sub' $P268 = "24_1275811474.72541"
capture_lex $P268
- .const 'Sub' $P248 = "23_1274022881.57388"
+ .const 'Sub' $P248 = "23_1275811474.72541"
capture_lex $P248
- .const 'Sub' $P219 = "22_1274022881.57388"
+ .const 'Sub' $P219 = "22_1275811474.72541"
capture_lex $P219
.annotate 'line', 71
new $P199, "Undef"
@@ -7103,17 +7525,17 @@
.annotate 'line', 80
find_lex $P264, "%items"
defined $I265, $P264
- unless $I265, for_undef_44
+ unless $I265, for_undef_54
iter $P263, $P264
new $P277, 'ExceptionHandler'
set_addr $P277, loop276_handler
- $P277."handle_types"(64, 66, 65)
+ $P277."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P277
loop276_test:
unless $P263, loop276_done
shift $P266, $P263
loop276_redo:
- .const 'Sub' $P268 = "24_1274022881.57388"
+ .const 'Sub' $P268 = "24_1275811474.72541"
capture_lex $P268
$P268($P266)
loop276_next:
@@ -7122,11 +7544,11 @@
.local pmc exception
.get_results (exception)
getattribute $P278, exception, 'type'
- eq $P278, 64, loop276_next
- eq $P278, 66, loop276_redo
+ eq $P278, .CONTROL_LOOP_NEXT, loop276_next
+ eq $P278, .CONTROL_LOOP_REDO, loop276_redo
loop276_done:
pop_eh
- for_undef_44:
+ for_undef_54:
.annotate 'line', 79
set $P235, $P263
.annotate 'line', 76
@@ -7135,17 +7557,17 @@
.annotate 'line', 77
find_lex $P244, "%items"
defined $I245, $P244
- unless $I245, for_undef_46
+ unless $I245, for_undef_56
iter $P243, $P244
new $P261, 'ExceptionHandler'
set_addr $P261, loop260_handler
- $P261."handle_types"(64, 66, 65)
+ $P261."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P261
loop260_test:
unless $P243, loop260_done
shift $P246, $P243
loop260_redo:
- .const 'Sub' $P248 = "23_1274022881.57388"
+ .const 'Sub' $P248 = "23_1275811474.72541"
capture_lex $P248
$P248($P246)
loop260_next:
@@ -7154,11 +7576,11 @@
.local pmc exception
.get_results (exception)
getattribute $P262, exception, 'type'
- eq $P262, 64, loop260_next
- eq $P262, 66, loop260_redo
+ eq $P262, .CONTROL_LOOP_NEXT, loop260_next
+ eq $P262, .CONTROL_LOOP_REDO, loop260_redo
loop260_done:
pop_eh
- for_undef_46:
+ for_undef_56:
.annotate 'line', 76
set $P235, $P243
if_236_end:
@@ -7169,17 +7591,17 @@
.annotate 'line', 74
find_lex $P215, "%items"
defined $I216, $P215
- unless $I216, for_undef_47
+ unless $I216, for_undef_57
iter $P214, $P215
new $P233, 'ExceptionHandler'
set_addr $P233, loop232_handler
- $P233."handle_types"(64, 66, 65)
+ $P233."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P233
loop232_test:
unless $P214, loop232_done
shift $P217, $P214
loop232_redo:
- .const 'Sub' $P219 = "22_1274022881.57388"
+ .const 'Sub' $P219 = "22_1275811474.72541"
capture_lex $P219
$P219($P217)
loop232_next:
@@ -7188,11 +7610,11 @@
.local pmc exception
.get_results (exception)
getattribute $P234, exception, 'type'
- eq $P234, 64, loop232_next
- eq $P234, 66, loop232_redo
+ eq $P234, .CONTROL_LOOP_NEXT, loop232_next
+ eq $P234, .CONTROL_LOOP_REDO, loop232_redo
loop232_done:
pop_eh
- for_undef_47:
+ for_undef_57:
.annotate 'line', 73
set $P206, $P214
if_207_end:
@@ -7202,7 +7624,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block267" :anon :subid("24_1274022881.57388") :outer("21_1274022881.57388")
+.sub "_block267" :anon :subid("24_1275811474.72541") :outer("21_1275811474.72541")
.param pmc param_269
.annotate 'line', 80
.lex "$_", param_269
@@ -7212,17 +7634,17 @@
$P273 = $P272."key"()
set $S274, $P273
find_lex $P275, "$target"
- unless_null $P275, vivify_45
+ unless_null $P275, vivify_55
$P275 = root_new ['parrot';'Hash']
store_lex "$target", $P275
- vivify_45:
+ vivify_55:
set $P275[$S274], $P271
.return ($P271)
.end
.namespace ["HLL";"Compiler"]
-.sub "_block247" :anon :subid("23_1274022881.57388") :outer("21_1274022881.57388")
+.sub "_block247" :anon :subid("23_1275811474.72541") :outer("21_1275811474.72541")
.param pmc param_249
.annotate 'line', 77
.lex "$_", param_249
@@ -7242,7 +7664,7 @@
.namespace ["HLL";"Compiler"]
-.sub "_block218" :anon :subid("22_1274022881.57388") :outer("21_1274022881.57388")
+.sub "_block218" :anon :subid("22_1275811474.72541") :outer("21_1275811474.72541")
.param pmc param_220
.annotate 'line', 74
.lex "$_", param_220
@@ -7262,12 +7684,613 @@
.end
+.namespace ["HLL";"Compiler"]
+.include "except_types.pasm"
+.sub "autoprint" :subid("25_1275811474.72541") :method :outer("11_1275811474.72541")
+ .param pmc param_286
+.annotate 'line', 85
+ new $P285, 'ExceptionHandler'
+ set_addr $P285, control_284
+ $P285."handle_types"(.CONTROL_RETURN)
+ push_eh $P285
+ .lex "self", self
+ .lex "$value", param_286
+.annotate 'line', 87
+ getinterp $P289
+ $P290 = $P289."stdhandle"(1)
+ $N291 = $P290."tell"()
+ find_dynamic_lex $P292, "$*AUTOPRINTPOS"
+ unless_null $P292, vivify_58
+ get_hll_global $P292, "$AUTOPRINTPOS"
+ unless_null $P292, vivify_59
+ die "Contextual $*AUTOPRINTPOS not found"
+ vivify_59:
+ vivify_58:
+ set $N293, $P292
+ isgt $I294, $N291, $N293
+ unless $I294, unless_288
+ new $P287, 'Integer'
+ set $P287, $I294
+ goto unless_288_end
+ unless_288:
+.annotate 'line', 86
+ find_lex $P295, "$value"
+ set $S296, $P295
+ say $S296
+ unless_288_end:
+.annotate 'line', 85
+ .return ($P287)
+ control_284:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P297, exception, "payload"
+ .return ($P297)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.include "except_types.pasm"
+.sub "interactive" :subid("26_1275811474.72541") :method :outer("11_1275811474.72541")
+ .param pmc param_301 :slurpy :named
+.annotate 'line', 90
+ .const 'Sub' $P331 = "27_1275811474.72541"
+ capture_lex $P331
+ new $P300, 'ExceptionHandler'
+ set_addr $P300, control_299
+ $P300."handle_types"(.CONTROL_RETURN)
+ push_eh $P300
+ .lex "self", self
+ .lex "%adverbs", param_301
+.annotate 'line', 91
+ new $P302, "Undef"
+ .lex "$target", $P302
+.annotate 'line', 95
+ new $P303, "Undef"
+ .lex "$stdin", $P303
+.annotate 'line', 96
+ new $P304, "Undef"
+ .lex "$encoding", $P304
+.annotate 'line', 91
+ find_lex $P305, "%adverbs"
+ unless_null $P305, vivify_60
+ $P305 = root_new ['parrot';'Hash']
+ vivify_60:
+ set $P306, $P305["target"]
+ unless_null $P306, vivify_61
+ new $P306, "Undef"
+ vivify_61:
+ set $S307, $P306
+ downcase $S308, $S307
+ new $P309, 'String'
+ set $P309, $S308
+ store_lex "$target", $P309
+.annotate 'line', 93
+ getinterp $P310
+ $P311 = $P310."stdhandle"(2)
+ find_lex $P312, "self"
+ $S313 = $P312."commandline_banner"()
+ print $P311, $S313
+.annotate 'line', 95
+ getinterp $P314
+ $P315 = $P314."stdhandle"(0)
+ store_lex "$stdin", $P315
+.annotate 'line', 96
+ find_lex $P316, "%adverbs"
+ unless_null $P316, vivify_62
+ $P316 = root_new ['parrot';'Hash']
+ vivify_62:
+ set $P317, $P316["encoding"]
+ unless_null $P317, vivify_63
+ new $P317, "Undef"
+ vivify_63:
+ set $S318, $P317
+ new $P319, 'String'
+ set $P319, $S318
+ store_lex "$encoding", $P319
+.annotate 'line', 97
+ find_lex $P323, "$encoding"
+ if $P323, if_322
+ set $P321, $P323
+ goto if_322_end
+ if_322:
+ find_lex $P324, "$encoding"
+ set $S325, $P324
+ isne $I326, $S325, "fixed_8"
+ new $P321, 'Integer'
+ set $P321, $I326
+ if_322_end:
+ unless $P321, if_320_end
+.annotate 'line', 98
+ find_lex $P327, "$stdin"
+ find_lex $P328, "$encoding"
+ $P327."encoding"($P328)
+ if_320_end:
+.annotate 'line', 101
+ new $P439, 'ExceptionHandler'
+ set_addr $P439, loop438_handler
+ $P439."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P439
+ loop438_test:
+ new $P329, "Integer"
+ assign $P329, 1
+ unless $P329, loop438_done
+ loop438_redo:
+ .const 'Sub' $P331 = "27_1275811474.72541"
+ capture_lex $P331
+ $P331()
+ loop438_next:
+ goto loop438_test
+ loop438_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P440, exception, 'type'
+ eq $P440, .CONTROL_LOOP_NEXT, loop438_next
+ eq $P440, .CONTROL_LOOP_REDO, loop438_redo
+ loop438_done:
+ pop_eh
+.annotate 'line', 90
+ .return ($P329)
+ control_299:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P441, exception, "payload"
+ .return ($P441)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.include "except_types.pasm"
+.sub "_block330" :anon :subid("27_1275811474.72541") :outer("26_1275811474.72541")
+.annotate 'line', 101
+ .const 'Sub' $P367 = "28_1275811474.72541"
+ capture_lex $P367
+.annotate 'line', 104
+ new $P332, "Undef"
+ .lex "$prompt", $P332
+.annotate 'line', 105
+ new $P333, "Undef"
+ .lex "$code", $P333
+.annotate 'line', 110
+ new $P334, "Undef"
+ .lex "$*AUTOPRINTPOS", $P334
+.annotate 'line', 111
+ get_global $P335, "$interactive_ctx"
+ unless_null $P335, vivify_64
+ new $P335, "Undef"
+ set_global "$interactive_ctx", $P335
+ vivify_64:
+.annotate 'line', 112
+ get_global $P336, "%interactive_pad"
+ unless_null $P336, vivify_65
+ $P336 = root_new ['parrot';'Hash']
+ set_global "%interactive_pad", $P336
+ vivify_65:
+.annotate 'line', 113
+ new $P337, "Undef"
+ .lex "$*CTXSAVE", $P337
+.annotate 'line', 114
+ new $P338, "Undef"
+ .lex "$*MAIN_CTX", $P338
+.annotate 'line', 102
+ find_lex $P340, "$stdin"
+ if $P340, unless_339_end
+ set $I341, .CONTROL_LOOP_LAST
+ die 0, $I341
+ unless_339_end:
+.annotate 'line', 104
+ find_lex $P343, "self"
+ $P344 = $P343."commandline_prompt"()
+ set $P342, $P344
+ defined $I346, $P342
+ if $I346, default_345
+ new $P347, "String"
+ assign $P347, "> "
+ set $P342, $P347
+ default_345:
+ store_lex "$prompt", $P342
+.annotate 'line', 105
+ find_lex $P348, "$stdin"
+ find_lex $P349, "$prompt"
+ set $S350, $P349
+ $P351 = $P348."readline_interactive"($S350)
+ store_lex "$code", $P351
+.annotate 'line', 107
+ find_lex $P353, "$code"
+ isnull $I354, $P353
+ unless $I354, if_352_end
+ set $I355, .CONTROL_LOOP_LAST
+ die 0, $I355
+ if_352_end:
+.annotate 'line', 110
+ getinterp $P356
+ $P357 = $P356."stdhandle"(1)
+ $P358 = $P357."tell"()
+ store_lex "$*AUTOPRINTPOS", $P358
+ get_global $P359, "$interactive_ctx"
+ get_global $P360, "%interactive_pad"
+.annotate 'line', 113
+ find_lex $P361, "self"
+ store_lex "$*CTXSAVE", $P361
+ find_lex $P362, "$*MAIN_CTX"
+ unless_null $P362, vivify_66
+ get_hll_global $P362, "$MAIN_CTX"
+ unless_null $P362, vivify_67
+ die "Contextual $*MAIN_CTX not found"
+ vivify_67:
+ vivify_66:
+.annotate 'line', 116
+ find_lex $P365, "$code"
+ if $P365, if_364
+ set $P363, $P365
+ goto if_364_end
+ if_364:
+ .const 'Sub' $P367 = "28_1275811474.72541"
+ capture_lex $P367
+ $P437 = $P367()
+ set $P363, $P437
+ if_364_end:
+.annotate 'line', 101
+ .return ($P363)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.include "except_types.pasm"
+.sub "_block366" :anon :subid("28_1275811474.72541") :outer("27_1275811474.72541")
+.annotate 'line', 116
+ .const 'Sub' $P405 = "31_1275811474.72541"
+ capture_lex $P405
+ .const 'Sub' $P373 = "29_1275811474.72541"
+ capture_lex $P373
+.annotate 'line', 118
+ new $P368, "Undef"
+ .lex "$output", $P368
+.annotate 'line', 117
+ find_lex $P369, "$code"
+ concat $P370, $P369, "\n"
+ store_lex "$code", $P370
+ find_lex $P371, "$output"
+.annotate 'line', 119
+ .const 'Sub' $P373 = "29_1275811474.72541"
+ capture_lex $P373
+ $P373()
+.annotate 'line', 126
+ find_dynamic_lex $P397, "$*MAIN_CTX"
+ unless_null $P397, vivify_68
+ get_hll_global $P397, "$MAIN_CTX"
+ unless_null $P397, vivify_69
+ die "Contextual $*MAIN_CTX not found"
+ vivify_69:
+ vivify_68:
+ defined $I398, $P397
+ unless $I398, if_396_end
+.annotate 'line', 127
+ find_dynamic_lex $P400, "$*MAIN_CTX"
+ unless_null $P400, vivify_70
+ get_hll_global $P400, "$MAIN_CTX"
+ unless_null $P400, vivify_71
+ die "Contextual $*MAIN_CTX not found"
+ vivify_71:
+ vivify_70:
+ $P401 = $P400."lexpad_full"()
+ defined $I402, $P401
+ unless $I402, for_undef_72
+ iter $P399, $P401
+ new $P413, 'ExceptionHandler'
+ set_addr $P413, loop412_handler
+ $P413."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P413
+ loop412_test:
+ unless $P399, loop412_done
+ shift $P403, $P399
+ loop412_redo:
+ .const 'Sub' $P405 = "31_1275811474.72541"
+ capture_lex $P405
+ $P405($P403)
+ loop412_next:
+ goto loop412_test
+ loop412_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P414, exception, 'type'
+ eq $P414, .CONTROL_LOOP_NEXT, loop412_next
+ eq $P414, .CONTROL_LOOP_REDO, loop412_redo
+ loop412_done:
+ pop_eh
+ for_undef_72:
+ if_396_end:
+.annotate 'line', 131
+ find_lex $P416, "$output"
+ isnull $I417, $P416
+ unless $I417, if_415_end
+ set $I418, .CONTROL_LOOP_NEXT
+ die 0, $I418
+ if_415_end:
+.annotate 'line', 133
+ find_lex $P421, "$target"
+ isfalse $I422, $P421
+ if $I422, if_420
+.annotate 'line', 135
+ find_lex $P428, "$target"
+ set $S429, $P428
+ iseq $I430, $S429, "pir"
+ if $I430, if_427
+.annotate 'line', 138
+ find_lex $P432, "self"
+ find_lex $P433, "$output"
+ find_lex $P434, "$target"
+ find_lex $P435, "%adverbs"
+ $P436 = $P432."dumper"($P433, $P434, $P435 :flat)
+.annotate 'line', 137
+ set $P426, $P436
+.annotate 'line', 135
+ goto if_427_end
+ if_427:
+.annotate 'line', 136
+ find_lex $P431, "$output"
+ say $P431
+ if_427_end:
+.annotate 'line', 135
+ set $P419, $P426
+.annotate 'line', 133
+ goto if_420_end
+ if_420:
+.annotate 'line', 134
+ find_lex $P423, "self"
+ find_lex $P424, "$output"
+ $P425 = $P423."autoprint"($P424)
+.annotate 'line', 133
+ set $P419, $P425
+ if_420_end:
+.annotate 'line', 116
+ .return ($P419)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.include "except_types.pasm"
+.sub "_block372" :anon :subid("29_1275811474.72541") :outer("28_1275811474.72541")
+.annotate 'line', 119
+ .const 'Sub' $P385 = "30_1275811474.72541"
+ capture_lex $P385
+ new $P381, 'ExceptionHandler'
+ set_addr $P381, control_380
+ $P381."handle_types_except"(.CONTROL_RETURN, .CONTROL_OK, .CONTROL_BREAK, .CONTROL_CONTINUE, .CONTROL_TAKE, .CONTROL_LEAVE, .CONTROL_EXIT, .CONTROL_LOOP_NEXT, .CONTROL_LOOP_LAST, .CONTROL_LOOP_REDO)
+ push_eh $P381
+.annotate 'line', 120
+ find_lex $P374, "self"
+ find_lex $P375, "$code"
+ get_global $P376, "$interactive_ctx"
+ find_lex $P377, "%adverbs"
+ $P378 = $P374."eval"($P375, $P377 :flat, $P376 :named("outer_ctx"))
+ store_lex "$output", $P378
+.annotate 'line', 119
+ pop_eh
+ goto skip_handler_379
+ control_380:
+.annotate 'line', 121
+ .local pmc exception
+ .get_results (exception)
+ .const 'Sub' $P385 = "30_1275811474.72541"
+ newclosure $P393, $P385
+ $P393(exception)
+ new $P394, 'Integer'
+ set $P394, 1
+ set exception["handled"], $P394
+ set $I395, exception["handled"]
+ ne $I395, 1, nothandled_383
+ handled_382:
+ .return (exception)
+ nothandled_383:
+ rethrow exception
+ skip_handler_379:
+.annotate 'line', 119
+ .return ()
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.include "except_types.pasm"
+.sub "_block384" :anon :subid("30_1275811474.72541") :outer("29_1275811474.72541")
+ .param pmc param_386
+.annotate 'line', 121
+ .lex "$_", param_386
+ find_lex $P387, "$_"
+ .lex "$!", $P387
+.annotate 'line', 122
+ find_lex $P388, "$!"
+ set $S389, $P388
+ new $P390, 'String'
+ set $P390, $S389
+ concat $P391, $P390, "\n"
+ print $P391
+.annotate 'line', 123
+ set $I392, .CONTROL_LOOP_NEXT
+ die 0, $I392
+.annotate 'line', 121
+ .return ()
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.sub "_block404" :anon :subid("31_1275811474.72541") :outer("28_1275811474.72541")
+ .param pmc param_406
+.annotate 'line', 127
+ .lex "$_", param_406
+.annotate 'line', 128
+ find_lex $P407, "$_"
+ $P408 = $P407."value"()
+ find_lex $P409, "$_"
+ $P410 = $P409."key"()
+ get_global $P411, "%interactive_pad"
+ unless_null $P411, vivify_73
+ $P411 = root_new ['parrot';'Hash']
+ set_global "%interactive_pad", $P411
+ vivify_73:
+ set $P411[$P410], $P408
+.annotate 'line', 127
+ .return ($P408)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.include "except_types.pasm"
+.sub "eval" :subid("32_1275811474.72541") :method :outer("11_1275811474.72541")
+ .param pmc param_445
+ .param pmc param_446 :slurpy
+ .param pmc param_447 :slurpy :named
+.annotate 'line', 144
+ .const 'Sub' $P466 = "33_1275811474.72541"
+ capture_lex $P466
+ new $P444, 'ExceptionHandler'
+ set_addr $P444, control_443
+ $P444."handle_types"(.CONTROL_RETURN)
+ push_eh $P444
+ .lex "self", self
+ .lex "$code", param_445
+ .lex "@args", param_446
+ .lex "%adverbs", param_447
+.annotate 'line', 145
+ new $P448, "Undef"
+ .lex "$output", $P448
+.annotate 'line', 144
+ find_lex $P449, "$output"
+.annotate 'line', 146
+ find_lex $P450, "self"
+ find_lex $P451, "$code"
+ find_lex $P452, "%adverbs"
+ $P453 = $P450."compile"($P451, $P452 :flat)
+ store_lex "$output", $P453
+.annotate 'line', 148
+ find_lex $P457, "$output"
+ isa $I458, $P457, "String"
+ new $P459, 'Integer'
+ set $P459, $I458
+ isfalse $I460, $P459
+ if $I460, if_456
+ new $P455, 'Integer'
+ set $P455, $I460
+ goto if_456_end
+ if_456:
+.annotate 'line', 149
+ find_lex $P461, "%adverbs"
+ unless_null $P461, vivify_74
+ $P461 = root_new ['parrot';'Hash']
+ vivify_74:
+ set $P462, $P461["target"]
+ unless_null $P462, vivify_75
+ new $P462, "Undef"
+ vivify_75:
+ set $S463, $P462
+ iseq $I464, $S463, ""
+ new $P455, 'Integer'
+ set $P455, $I464
+ if_456_end:
+ unless $P455, if_454_end
+ .const 'Sub' $P466 = "33_1275811474.72541"
+ capture_lex $P466
+ $P466()
+ if_454_end:
+.annotate 'line', 148
+ find_lex $P482, "$output"
+.annotate 'line', 144
+ .return ($P482)
+ control_443:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P483, exception, "payload"
+ .return ($P483)
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.sub "_block465" :anon :subid("33_1275811474.72541") :outer("32_1275811474.72541")
+.annotate 'line', 150
+ new $P467, "Undef"
+ .lex "$outer_ctx", $P467
+ find_lex $P468, "%adverbs"
+ unless_null $P468, vivify_76
+ $P468 = root_new ['parrot';'Hash']
+ vivify_76:
+ set $P469, $P468["outer_ctx"]
+ unless_null $P469, vivify_77
+ new $P469, "Undef"
+ vivify_77:
+ store_lex "$outer_ctx", $P469
+.annotate 'line', 151
+ find_lex $P471, "$outer_ctx"
+ defined $I472, $P471
+ unless $I472, if_470_end
+.annotate 'line', 152
+ find_lex $P473, "$output"
+ unless_null $P473, vivify_78
+ $P473 = root_new ['parrot';'ResizablePMCArray']
+ vivify_78:
+ set $P474, $P473[0]
+ unless_null $P474, vivify_79
+ new $P474, "Undef"
+ vivify_79:
+ find_lex $P475, "$outer_ctx"
+ $P474."set_outer_ctx"($P475)
+ if_470_end:
+.annotate 'line', 155
+ find_lex $P476, "%adverbs"
+ unless_null $P476, vivify_80
+ $P476 = root_new ['parrot';'Hash']
+ vivify_80:
+ set $P477, $P476["trace"]
+ unless_null $P477, vivify_81
+ new $P477, "Undef"
+ vivify_81:
+ set $I478, $P477
+ trace $I478
+.annotate 'line', 156
+ find_lex $P479, "$output"
+ find_lex $P480, "@args"
+ $P481 = $P479($P480 :flat)
+ store_lex "$output", $P481
+.annotate 'line', 157
+ trace 0
+.annotate 'line', 149
+ .return ()
+.end
+
+
+.namespace ["HLL";"Compiler"]
+.include "except_types.pasm"
+.sub "ctxsave" :subid("34_1275811474.72541") :method :outer("11_1275811474.72541")
+.annotate 'line', 163
+ new $P486, 'ExceptionHandler'
+ set_addr $P486, control_485
+ $P486."handle_types"(.CONTROL_RETURN)
+ push_eh $P486
+ .lex "self", self
+.annotate 'line', 165
+
+ $P0 = getinterp
+ $P487 = $P0['context';1]
+
+ store_dynamic_lex "$*MAIN_CTX", $P487
+.annotate 'line', 169
+ new $P488, "Integer"
+ assign $P488, 0
+ store_dynamic_lex "$*CTXSAVE", $P488
+.annotate 'line', 163
+ .return ($P488)
+ control_485:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P489, exception, "payload"
+ .return ($P489)
+.end
+
+
.namespace []
-.sub "_block286" :load :anon :subid("25_1274022881.57388")
+.sub "_block493" :load :anon :subid("35_1275811474.72541")
.annotate 'line', 1
- .const 'Sub' $P288 = "10_1274022881.57388"
- $P289 = $P288()
- .return ($P289)
+ .const 'Sub' $P495 = "10_1275811474.72541"
+ $P496 = $P495()
+ .return ($P496)
.end
Modified: branches/gsoc_threads/ext/nqp-rx/src/stage0/NQP-s0.pir
==============================================================================
--- branches/gsoc_threads/ext/nqp-rx/src/stage0/NQP-s0.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/ext/nqp-rx/src/stage0/NQP-s0.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -15,407 +15,429 @@
### .include 'gen/nqp-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1274022894.43745")
+.sub "_block11" :anon :subid("10_1275811487.95429")
.annotate 'line', 0
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
capture_lex $P14
+.annotate 'line', 1
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
.annotate 'line', 4
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
capture_lex $P14
- $P1350 = $P14()
+ $P1424 = $P14()
.annotate 'line', 1
- .return ($P1350)
- .const 'Sub' $P1352 = "344_1274022894.43745"
- .return ($P1352)
+ .return ($P1424)
+ .const 'Sub' $P1426 = "363_1275811487.95429"
+ .return ($P1426)
.end
.namespace []
-.sub "" :load :init :subid("post345") :outer("10_1274022894.43745")
+.sub "" :load :init :subid("post364") :outer("10_1275811487.95429")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1274022894.43745"
+ .const 'Sub' $P12 = "10_1275811487.95429"
.local pmc block
set block, $P12
- $P1355 = get_root_global ["parrot"], "P6metaclass"
- $P1355."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
+ $P1429 = get_root_global ["parrot"], "P6metaclass"
+ $P1429."new_class"("NQP::Grammar", "HLL::Grammar" :named("parent"))
.end
.namespace ["NQP";"Grammar"]
-.sub "_block13" :subid("11_1274022894.43745") :outer("10_1274022894.43745")
+.sub "_block13" :subid("11_1275811487.95429") :outer("10_1275811487.95429")
.annotate 'line', 4
- get_hll_global $P1290, ["NQP";"Regex"], "_block1289"
- capture_lex $P1290
- .const 'Sub' $P1276 = "329_1274022894.43745"
- capture_lex $P1276
- .const 'Sub' $P1270 = "327_1274022894.43745"
- capture_lex $P1270
- .const 'Sub' $P1264 = "325_1274022894.43745"
- capture_lex $P1264
- .const 'Sub' $P1258 = "323_1274022894.43745"
- capture_lex $P1258
- .const 'Sub' $P1252 = "321_1274022894.43745"
- capture_lex $P1252
- .const 'Sub' $P1246 = "319_1274022894.43745"
- capture_lex $P1246
- .const 'Sub' $P1239 = "317_1274022894.43745"
- capture_lex $P1239
- .const 'Sub' $P1232 = "315_1274022894.43745"
- capture_lex $P1232
- .const 'Sub' $P1225 = "313_1274022894.43745"
- capture_lex $P1225
- .const 'Sub' $P1218 = "311_1274022894.43745"
- capture_lex $P1218
- .const 'Sub' $P1212 = "309_1274022894.43745"
- capture_lex $P1212
- .const 'Sub' $P1205 = "307_1274022894.43745"
- capture_lex $P1205
- .const 'Sub' $P1198 = "305_1274022894.43745"
- capture_lex $P1198
- .const 'Sub' $P1191 = "303_1274022894.43745"
- capture_lex $P1191
- .const 'Sub' $P1184 = "301_1274022894.43745"
- capture_lex $P1184
- .const 'Sub' $P1177 = "299_1274022894.43745"
- capture_lex $P1177
- .const 'Sub' $P1170 = "297_1274022894.43745"
- capture_lex $P1170
- .const 'Sub' $P1163 = "295_1274022894.43745"
- capture_lex $P1163
- .const 'Sub' $P1156 = "293_1274022894.43745"
- capture_lex $P1156
- .const 'Sub' $P1149 = "291_1274022894.43745"
- capture_lex $P1149
- .const 'Sub' $P1142 = "289_1274022894.43745"
- capture_lex $P1142
- .const 'Sub' $P1135 = "287_1274022894.43745"
- capture_lex $P1135
- .const 'Sub' $P1128 = "285_1274022894.43745"
- capture_lex $P1128
- .const 'Sub' $P1121 = "283_1274022894.43745"
- capture_lex $P1121
- .const 'Sub' $P1114 = "281_1274022894.43745"
- capture_lex $P1114
- .const 'Sub' $P1107 = "279_1274022894.43745"
- capture_lex $P1107
- .const 'Sub' $P1100 = "277_1274022894.43745"
- capture_lex $P1100
- .const 'Sub' $P1093 = "275_1274022894.43745"
- capture_lex $P1093
- .const 'Sub' $P1086 = "273_1274022894.43745"
- capture_lex $P1086
- .const 'Sub' $P1079 = "271_1274022894.43745"
- capture_lex $P1079
- .const 'Sub' $P1072 = "269_1274022894.43745"
- capture_lex $P1072
- .const 'Sub' $P1065 = "267_1274022894.43745"
- capture_lex $P1065
- .const 'Sub' $P1058 = "265_1274022894.43745"
- capture_lex $P1058
- .const 'Sub' $P1051 = "263_1274022894.43745"
- capture_lex $P1051
- .const 'Sub' $P1044 = "261_1274022894.43745"
- capture_lex $P1044
- .const 'Sub' $P1037 = "259_1274022894.43745"
- capture_lex $P1037
- .const 'Sub' $P1030 = "257_1274022894.43745"
- capture_lex $P1030
- .const 'Sub' $P1024 = "255_1274022894.43745"
- capture_lex $P1024
- .const 'Sub' $P1017 = "253_1274022894.43745"
- capture_lex $P1017
- .const 'Sub' $P1010 = "251_1274022894.43745"
- capture_lex $P1010
- .const 'Sub' $P1003 = "249_1274022894.43745"
- capture_lex $P1003
- .const 'Sub' $P996 = "247_1274022894.43745"
+ get_hll_global $P1340, ["NQP";"Regex"], "_block1339"
+ capture_lex $P1340
+ .const 'Sub' $P1326 = "340_1275811487.95429"
+ capture_lex $P1326
+ .const 'Sub' $P1320 = "338_1275811487.95429"
+ capture_lex $P1320
+ .const 'Sub' $P1314 = "336_1275811487.95429"
+ capture_lex $P1314
+ .const 'Sub' $P1308 = "334_1275811487.95429"
+ capture_lex $P1308
+ .const 'Sub' $P1302 = "332_1275811487.95429"
+ capture_lex $P1302
+ .const 'Sub' $P1296 = "330_1275811487.95429"
+ capture_lex $P1296
+ .const 'Sub' $P1289 = "328_1275811487.95429"
+ capture_lex $P1289
+ .const 'Sub' $P1282 = "326_1275811487.95429"
+ capture_lex $P1282
+ .const 'Sub' $P1275 = "324_1275811487.95429"
+ capture_lex $P1275
+ .const 'Sub' $P1268 = "322_1275811487.95429"
+ capture_lex $P1268
+ .const 'Sub' $P1262 = "320_1275811487.95429"
+ capture_lex $P1262
+ .const 'Sub' $P1255 = "318_1275811487.95429"
+ capture_lex $P1255
+ .const 'Sub' $P1248 = "316_1275811487.95429"
+ capture_lex $P1248
+ .const 'Sub' $P1241 = "314_1275811487.95429"
+ capture_lex $P1241
+ .const 'Sub' $P1234 = "312_1275811487.95429"
+ capture_lex $P1234
+ .const 'Sub' $P1227 = "310_1275811487.95429"
+ capture_lex $P1227
+ .const 'Sub' $P1220 = "308_1275811487.95429"
+ capture_lex $P1220
+ .const 'Sub' $P1213 = "306_1275811487.95429"
+ capture_lex $P1213
+ .const 'Sub' $P1206 = "304_1275811487.95429"
+ capture_lex $P1206
+ .const 'Sub' $P1199 = "302_1275811487.95429"
+ capture_lex $P1199
+ .const 'Sub' $P1192 = "300_1275811487.95429"
+ capture_lex $P1192
+ .const 'Sub' $P1185 = "298_1275811487.95429"
+ capture_lex $P1185
+ .const 'Sub' $P1178 = "296_1275811487.95429"
+ capture_lex $P1178
+ .const 'Sub' $P1171 = "294_1275811487.95429"
+ capture_lex $P1171
+ .const 'Sub' $P1164 = "292_1275811487.95429"
+ capture_lex $P1164
+ .const 'Sub' $P1157 = "290_1275811487.95429"
+ capture_lex $P1157
+ .const 'Sub' $P1150 = "288_1275811487.95429"
+ capture_lex $P1150
+ .const 'Sub' $P1143 = "286_1275811487.95429"
+ capture_lex $P1143
+ .const 'Sub' $P1136 = "284_1275811487.95429"
+ capture_lex $P1136
+ .const 'Sub' $P1129 = "282_1275811487.95429"
+ capture_lex $P1129
+ .const 'Sub' $P1122 = "280_1275811487.95429"
+ capture_lex $P1122
+ .const 'Sub' $P1115 = "278_1275811487.95429"
+ capture_lex $P1115
+ .const 'Sub' $P1108 = "276_1275811487.95429"
+ capture_lex $P1108
+ .const 'Sub' $P1101 = "274_1275811487.95429"
+ capture_lex $P1101
+ .const 'Sub' $P1094 = "272_1275811487.95429"
+ capture_lex $P1094
+ .const 'Sub' $P1087 = "270_1275811487.95429"
+ capture_lex $P1087
+ .const 'Sub' $P1080 = "268_1275811487.95429"
+ capture_lex $P1080
+ .const 'Sub' $P1074 = "266_1275811487.95429"
+ capture_lex $P1074
+ .const 'Sub' $P1067 = "264_1275811487.95429"
+ capture_lex $P1067
+ .const 'Sub' $P1060 = "262_1275811487.95429"
+ capture_lex $P1060
+ .const 'Sub' $P1053 = "260_1275811487.95429"
+ capture_lex $P1053
+ .const 'Sub' $P1046 = "258_1275811487.95429"
+ capture_lex $P1046
+ .const 'Sub' $P1039 = "256_1275811487.95429"
+ capture_lex $P1039
+ .const 'Sub' $P1032 = "254_1275811487.95429"
+ capture_lex $P1032
+ .const 'Sub' $P1025 = "252_1275811487.95429"
+ capture_lex $P1025
+ .const 'Sub' $P1019 = "250_1275811487.95429"
+ capture_lex $P1019
+ .const 'Sub' $P1013 = "248_1275811487.95429"
+ capture_lex $P1013
+ .const 'Sub' $P1008 = "246_1275811487.95429"
+ capture_lex $P1008
+ .const 'Sub' $P1002 = "244_1275811487.95429"
+ capture_lex $P1002
+ .const 'Sub' $P996 = "242_1275811487.95429"
capture_lex $P996
- .const 'Sub' $P989 = "245_1274022894.43745"
- capture_lex $P989
- .const 'Sub' $P982 = "243_1274022894.43745"
- capture_lex $P982
- .const 'Sub' $P975 = "241_1274022894.43745"
- capture_lex $P975
- .const 'Sub' $P969 = "239_1274022894.43745"
- capture_lex $P969
- .const 'Sub' $P963 = "237_1274022894.43745"
- capture_lex $P963
- .const 'Sub' $P958 = "235_1274022894.43745"
- capture_lex $P958
- .const 'Sub' $P952 = "233_1274022894.43745"
- capture_lex $P952
- .const 'Sub' $P946 = "231_1274022894.43745"
- capture_lex $P946
- .const 'Sub' $P941 = "229_1274022894.43745"
- capture_lex $P941
- .const 'Sub' $P936 = "227_1274022894.43745"
- capture_lex $P936
- .const 'Sub' $P929 = "225_1274022894.43745"
+ .const 'Sub' $P991 = "240_1275811487.95429"
+ capture_lex $P991
+ .const 'Sub' $P986 = "238_1275811487.95429"
+ capture_lex $P986
+ .const 'Sub' $P978 = "236_1275811487.95429"
+ capture_lex $P978
+ .const 'Sub' $P970 = "234_1275811487.95429"
+ capture_lex $P970
+ .const 'Sub' $P965 = "232_1275811487.95429"
+ capture_lex $P965
+ .const 'Sub' $P960 = "230_1275811487.95429"
+ capture_lex $P960
+ .const 'Sub' $P955 = "228_1275811487.95429"
+ capture_lex $P955
+ .const 'Sub' $P947 = "226_1275811487.95429"
+ capture_lex $P947
+ .const 'Sub' $P939 = "224_1275811487.95429"
+ capture_lex $P939
+ .const 'Sub' $P934 = "222_1275811487.95429"
+ capture_lex $P934
+ .const 'Sub' $P929 = "220_1275811487.95429"
capture_lex $P929
- .const 'Sub' $P921 = "223_1274022894.43745"
- capture_lex $P921
- .const 'Sub' $P916 = "221_1274022894.43745"
- capture_lex $P916
- .const 'Sub' $P911 = "219_1274022894.43745"
- capture_lex $P911
- .const 'Sub' $P906 = "217_1274022894.43745"
+ .const 'Sub' $P924 = "218_1275811487.95429"
+ capture_lex $P924
+ .const 'Sub' $P918 = "216_1275811487.95429"
+ capture_lex $P918
+ .const 'Sub' $P912 = "214_1275811487.95429"
+ capture_lex $P912
+ .const 'Sub' $P906 = "212_1275811487.95429"
capture_lex $P906
- .const 'Sub' $P898 = "215_1274022894.43745"
- capture_lex $P898
- .const 'Sub' $P890 = "213_1274022894.43745"
- capture_lex $P890
- .const 'Sub' $P885 = "211_1274022894.43745"
- capture_lex $P885
- .const 'Sub' $P880 = "209_1274022894.43745"
- capture_lex $P880
- .const 'Sub' $P875 = "207_1274022894.43745"
- capture_lex $P875
- .const 'Sub' $P869 = "205_1274022894.43745"
- capture_lex $P869
- .const 'Sub' $P863 = "203_1274022894.43745"
+ .const 'Sub' $P900 = "210_1275811487.95429"
+ capture_lex $P900
+ .const 'Sub' $P894 = "208_1275811487.95429"
+ capture_lex $P894
+ .const 'Sub' $P889 = "206_1275811487.95429"
+ capture_lex $P889
+ .const 'Sub' $P884 = "204_1275811487.95429"
+ capture_lex $P884
+ .const 'Sub' $P871 = "200_1275811487.95429"
+ capture_lex $P871
+ .const 'Sub' $P863 = "198_1275811487.95429"
capture_lex $P863
- .const 'Sub' $P857 = "201_1274022894.43745"
+ .const 'Sub' $P857 = "196_1275811487.95429"
capture_lex $P857
- .const 'Sub' $P851 = "199_1274022894.43745"
- capture_lex $P851
- .const 'Sub' $P845 = "197_1274022894.43745"
- capture_lex $P845
- .const 'Sub' $P840 = "195_1274022894.43745"
- capture_lex $P840
- .const 'Sub' $P835 = "193_1274022894.43745"
- capture_lex $P835
- .const 'Sub' $P822 = "189_1274022894.43745"
+ .const 'Sub' $P850 = "194_1275811487.95429"
+ capture_lex $P850
+ .const 'Sub' $P844 = "192_1275811487.95429"
+ capture_lex $P844
+ .const 'Sub' $P836 = "190_1275811487.95429"
+ capture_lex $P836
+ .const 'Sub' $P828 = "188_1275811487.95429"
+ capture_lex $P828
+ .const 'Sub' $P822 = "186_1275811487.95429"
capture_lex $P822
- .const 'Sub' $P814 = "187_1274022894.43745"
- capture_lex $P814
- .const 'Sub' $P808 = "185_1274022894.43745"
- capture_lex $P808
- .const 'Sub' $P801 = "183_1274022894.43745"
+ .const 'Sub' $P816 = "184_1275811487.95429"
+ capture_lex $P816
+ .const 'Sub' $P801 = "180_1275811487.95429"
capture_lex $P801
- .const 'Sub' $P795 = "181_1274022894.43745"
- capture_lex $P795
- .const 'Sub' $P787 = "179_1274022894.43745"
- capture_lex $P787
- .const 'Sub' $P779 = "177_1274022894.43745"
- capture_lex $P779
- .const 'Sub' $P773 = "175_1274022894.43745"
- capture_lex $P773
- .const 'Sub' $P767 = "173_1274022894.43745"
- capture_lex $P767
- .const 'Sub' $P752 = "169_1274022894.43745"
- capture_lex $P752
- .const 'Sub' $P715 = "167_1274022894.43745"
+ .const 'Sub' $P763 = "178_1275811487.95429"
+ capture_lex $P763
+ .const 'Sub' $P754 = "176_1275811487.95429"
+ capture_lex $P754
+ .const 'Sub' $P748 = "174_1275811487.95429"
+ capture_lex $P748
+ .const 'Sub' $P738 = "172_1275811487.95429"
+ capture_lex $P738
+ .const 'Sub' $P724 = "170_1275811487.95429"
+ capture_lex $P724
+ .const 'Sub' $P715 = "168_1275811487.95429"
capture_lex $P715
- .const 'Sub' $P707 = "165_1274022894.43745"
+ .const 'Sub' $P707 = "166_1275811487.95429"
capture_lex $P707
- .const 'Sub' $P701 = "163_1274022894.43745"
- capture_lex $P701
- .const 'Sub' $P691 = "161_1274022894.43745"
- capture_lex $P691
- .const 'Sub' $P677 = "159_1274022894.43745"
- capture_lex $P677
- .const 'Sub' $P668 = "157_1274022894.43745"
- capture_lex $P668
- .const 'Sub' $P649 = "155_1274022894.43745"
- capture_lex $P649
- .const 'Sub' $P625 = "153_1274022894.43745"
- capture_lex $P625
- .const 'Sub' $P618 = "151_1274022894.43745"
- capture_lex $P618
- .const 'Sub' $P611 = "149_1274022894.43745"
- capture_lex $P611
- .const 'Sub' $P601 = "145_1274022894.43745"
- capture_lex $P601
- .const 'Sub' $P593 = "143_1274022894.43745"
- capture_lex $P593
- .const 'Sub' $P587 = "141_1274022894.43745"
- capture_lex $P587
- .const 'Sub' $P573 = "139_1274022894.43745"
- capture_lex $P573
- .const 'Sub' $P566 = "137_1274022894.43745"
- capture_lex $P566
- .const 'Sub' $P559 = "135_1274022894.43745"
- capture_lex $P559
- .const 'Sub' $P552 = "133_1274022894.43745"
- capture_lex $P552
- .const 'Sub' $P525 = "129_1274022894.43745"
- capture_lex $P525
- .const 'Sub' $P516 = "127_1274022894.43745"
- capture_lex $P516
- .const 'Sub' $P509 = "125_1274022894.43745"
- capture_lex $P509
- .const 'Sub' $P500 = "121_1274022894.43745"
- capture_lex $P500
- .const 'Sub' $P495 = "119_1274022894.43745"
- capture_lex $P495
- .const 'Sub' $P483 = "117_1274022894.43745"
- capture_lex $P483
- .const 'Sub' $P471 = "115_1274022894.43745"
- capture_lex $P471
- .const 'Sub' $P463 = "113_1274022894.43745"
- capture_lex $P463
- .const 'Sub' $P458 = "111_1274022894.43745"
- capture_lex $P458
- .const 'Sub' $P452 = "109_1274022894.43745"
- capture_lex $P452
- .const 'Sub' $P446 = "107_1274022894.43745"
- capture_lex $P446
- .const 'Sub' $P440 = "105_1274022894.43745"
- capture_lex $P440
- .const 'Sub' $P434 = "103_1274022894.43745"
- capture_lex $P434
- .const 'Sub' $P428 = "101_1274022894.43745"
- capture_lex $P428
- .const 'Sub' $P422 = "99_1274022894.43745"
- capture_lex $P422
- .const 'Sub' $P416 = "97_1274022894.43745"
- capture_lex $P416
- .const 'Sub' $P410 = "95_1274022894.43745"
- capture_lex $P410
- .const 'Sub' $P402 = "93_1274022894.43745"
- capture_lex $P402
- .const 'Sub' $P394 = "91_1274022894.43745"
- capture_lex $P394
- .const 'Sub' $P382 = "87_1274022894.43745"
- capture_lex $P382
- .const 'Sub' $P374 = "85_1274022894.43745"
- capture_lex $P374
- .const 'Sub' $P364 = "81_1274022894.43745"
- capture_lex $P364
- .const 'Sub' $P357 = "79_1274022894.43745"
- capture_lex $P357
- .const 'Sub' $P350 = "77_1274022894.43745"
- capture_lex $P350
- .const 'Sub' $P338 = "73_1274022894.43745"
- capture_lex $P338
- .const 'Sub' $P330 = "71_1274022894.43745"
- capture_lex $P330
- .const 'Sub' $P322 = "69_1274022894.43745"
- capture_lex $P322
- .const 'Sub' $P302 = "67_1274022894.43745"
+ .const 'Sub' $P697 = "164_1275811487.95429"
+ capture_lex $P697
+ .const 'Sub' $P673 = "160_1275811487.95429"
+ capture_lex $P673
+ .const 'Sub' $P648 = "158_1275811487.95429"
+ capture_lex $P648
+ .const 'Sub' $P641 = "156_1275811487.95429"
+ capture_lex $P641
+ .const 'Sub' $P634 = "154_1275811487.95429"
+ capture_lex $P634
+ .const 'Sub' $P624 = "150_1275811487.95429"
+ capture_lex $P624
+ .const 'Sub' $P616 = "148_1275811487.95429"
+ capture_lex $P616
+ .const 'Sub' $P610 = "146_1275811487.95429"
+ capture_lex $P610
+ .const 'Sub' $P597 = "144_1275811487.95429"
+ capture_lex $P597
+ .const 'Sub' $P590 = "142_1275811487.95429"
+ capture_lex $P590
+ .const 'Sub' $P583 = "140_1275811487.95429"
+ capture_lex $P583
+ .const 'Sub' $P576 = "138_1275811487.95429"
+ capture_lex $P576
+ .const 'Sub' $P548 = "134_1275811487.95429"
+ capture_lex $P548
+ .const 'Sub' $P539 = "132_1275811487.95429"
+ capture_lex $P539
+ .const 'Sub' $P532 = "130_1275811487.95429"
+ capture_lex $P532
+ .const 'Sub' $P523 = "126_1275811487.95429"
+ capture_lex $P523
+ .const 'Sub' $P518 = "124_1275811487.95429"
+ capture_lex $P518
+ .const 'Sub' $P506 = "122_1275811487.95429"
+ capture_lex $P506
+ .const 'Sub' $P494 = "120_1275811487.95429"
+ capture_lex $P494
+ .const 'Sub' $P486 = "118_1275811487.95429"
+ capture_lex $P486
+ .const 'Sub' $P481 = "116_1275811487.95429"
+ capture_lex $P481
+ .const 'Sub' $P475 = "114_1275811487.95429"
+ capture_lex $P475
+ .const 'Sub' $P469 = "112_1275811487.95429"
+ capture_lex $P469
+ .const 'Sub' $P459 = "109_1275811487.95429"
+ capture_lex $P459
+ .const 'Sub' $P453 = "107_1275811487.95429"
+ capture_lex $P453
+ .const 'Sub' $P447 = "105_1275811487.95429"
+ capture_lex $P447
+ .const 'Sub' $P441 = "103_1275811487.95429"
+ capture_lex $P441
+ .const 'Sub' $P435 = "101_1275811487.95429"
+ capture_lex $P435
+ .const 'Sub' $P429 = "99_1275811487.95429"
+ capture_lex $P429
+ .const 'Sub' $P423 = "97_1275811487.95429"
+ capture_lex $P423
+ .const 'Sub' $P414 = "95_1275811487.95429"
+ capture_lex $P414
+ .const 'Sub' $P405 = "93_1275811487.95429"
+ capture_lex $P405
+ .const 'Sub' $P392 = "89_1275811487.95429"
+ capture_lex $P392
+ .const 'Sub' $P383 = "87_1275811487.95429"
+ capture_lex $P383
+ .const 'Sub' $P373 = "83_1275811487.95429"
+ capture_lex $P373
+ .const 'Sub' $P366 = "81_1275811487.95429"
+ capture_lex $P366
+ .const 'Sub' $P359 = "79_1275811487.95429"
+ capture_lex $P359
+ .const 'Sub' $P347 = "75_1275811487.95429"
+ capture_lex $P347
+ .const 'Sub' $P339 = "73_1275811487.95429"
+ capture_lex $P339
+ .const 'Sub' $P331 = "71_1275811487.95429"
+ capture_lex $P331
+ .const 'Sub' $P311 = "69_1275811487.95429"
+ capture_lex $P311
+ .const 'Sub' $P302 = "67_1275811487.95429"
capture_lex $P302
- .const 'Sub' $P293 = "65_1274022894.43745"
- capture_lex $P293
- .const 'Sub' $P275 = "62_1274022894.43745"
- capture_lex $P275
- .const 'Sub' $P255 = "60_1274022894.43745"
+ .const 'Sub' $P284 = "64_1275811487.95429"
+ capture_lex $P284
+ .const 'Sub' $P264 = "62_1275811487.95429"
+ capture_lex $P264
+ .const 'Sub' $P255 = "58_1275811487.95429"
capture_lex $P255
- .const 'Sub' $P246 = "56_1274022894.43745"
- capture_lex $P246
- .const 'Sub' $P241 = "54_1274022894.43745"
+ .const 'Sub' $P250 = "56_1275811487.95429"
+ capture_lex $P250
+ .const 'Sub' $P241 = "52_1275811487.95429"
capture_lex $P241
- .const 'Sub' $P232 = "50_1274022894.43745"
- capture_lex $P232
- .const 'Sub' $P227 = "48_1274022894.43745"
- capture_lex $P227
- .const 'Sub' $P219 = "46_1274022894.43745"
- capture_lex $P219
- .const 'Sub' $P212 = "44_1274022894.43745"
- capture_lex $P212
- .const 'Sub' $P206 = "42_1274022894.43745"
- capture_lex $P206
- .const 'Sub' $P198 = "40_1274022894.43745"
- capture_lex $P198
- .const 'Sub' $P192 = "38_1274022894.43745"
- capture_lex $P192
- .const 'Sub' $P186 = "36_1274022894.43745"
- capture_lex $P186
- .const 'Sub' $P170 = "33_1274022894.43745"
- capture_lex $P170
- .const 'Sub' $P157 = "31_1274022894.43745"
- capture_lex $P157
- .const 'Sub' $P150 = "29_1274022894.43745"
- capture_lex $P150
- .const 'Sub' $P100 = "26_1274022894.43745"
- capture_lex $P100
- .const 'Sub' $P82 = "23_1274022894.43745"
- capture_lex $P82
- .const 'Sub' $P68 = "21_1274022894.43745"
- capture_lex $P68
- .const 'Sub' $P54 = "19_1274022894.43745"
- capture_lex $P54
- .const 'Sub' $P46 = "17_1274022894.43745"
- capture_lex $P46
- .const 'Sub' $P39 = "15_1274022894.43745"
- capture_lex $P39
- .const 'Sub' $P33 = "13_1274022894.43745"
- capture_lex $P33
- .const 'Sub' $P15 = "12_1274022894.43745"
+ .const 'Sub' $P236 = "50_1275811487.95429"
+ capture_lex $P236
+ .const 'Sub' $P231 = "48_1275811487.95429"
+ capture_lex $P231
+ .const 'Sub' $P223 = "46_1275811487.95429"
+ capture_lex $P223
+ .const 'Sub' $P216 = "44_1275811487.95429"
+ capture_lex $P216
+ .const 'Sub' $P210 = "42_1275811487.95429"
+ capture_lex $P210
+ .const 'Sub' $P202 = "40_1275811487.95429"
+ capture_lex $P202
+ .const 'Sub' $P196 = "38_1275811487.95429"
+ capture_lex $P196
+ .const 'Sub' $P190 = "36_1275811487.95429"
+ capture_lex $P190
+ .const 'Sub' $P174 = "33_1275811487.95429"
+ capture_lex $P174
+ .const 'Sub' $P159 = "31_1275811487.95429"
+ capture_lex $P159
+ .const 'Sub' $P152 = "29_1275811487.95429"
+ capture_lex $P152
+ .const 'Sub' $P102 = "26_1275811487.95429"
+ capture_lex $P102
+ .const 'Sub' $P84 = "23_1275811487.95429"
+ capture_lex $P84
+ .const 'Sub' $P70 = "21_1275811487.95429"
+ capture_lex $P70
+ .const 'Sub' $P56 = "19_1275811487.95429"
+ capture_lex $P56
+ .const 'Sub' $P48 = "17_1275811487.95429"
+ capture_lex $P48
+ .const 'Sub' $P41 = "15_1275811487.95429"
+ capture_lex $P41
+ .const 'Sub' $P35 = "13_1275811487.95429"
+ capture_lex $P35
+ .const 'Sub' $P15 = "12_1275811487.95429"
capture_lex $P15
-.annotate 'line', 548
- get_hll_global $P1290, ["NQP";"Regex"], "_block1289"
- capture_lex $P1290
- $P1329 = $P1290()
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
+.annotate 'line', 563
+ get_hll_global $P1340, ["NQP";"Regex"], "_block1339"
+ capture_lex $P1340
+ $P1403 = $P1340()
.annotate 'line', 4
- .return ($P1329)
- .const 'Sub' $P1331 = "343_1274022894.43745"
- .return ($P1331)
+ .return ($P1403)
+ .const 'Sub' $P1405 = "362_1275811487.95429"
+ .return ($P1405)
.end
.namespace ["NQP";"Grammar"]
-.sub "" :load :init :subid("post346") :outer("11_1274022894.43745")
+.sub "" :load :init :subid("post365") :outer("11_1275811487.95429")
.annotate 'line', 4
get_hll_global $P14, ["NQP";"Grammar"], "_block13"
.local pmc block
set block, $P14
-.annotate 'line', 432
- get_hll_global $P1334, ["NQP"], "Grammar"
- $P1334."O"(":prec<y=>, :assoc<unary>", "%methodop")
-.annotate 'line', 433
- get_hll_global $P1335, ["NQP"], "Grammar"
- $P1335."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
-.annotate 'line', 434
- get_hll_global $P1336, ["NQP"], "Grammar"
- $P1336."O"(":prec<w=>, :assoc<left>", "%exponentiation")
-.annotate 'line', 435
- get_hll_global $P1337, ["NQP"], "Grammar"
- $P1337."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
-.annotate 'line', 436
- get_hll_global $P1338, ["NQP"], "Grammar"
- $P1338."O"(":prec<u=>, :assoc<left>", "%multiplicative")
-.annotate 'line', 437
- get_hll_global $P1339, ["NQP"], "Grammar"
- $P1339."O"(":prec<t=>, :assoc<left>", "%additive")
-.annotate 'line', 438
- get_hll_global $P1340, ["NQP"], "Grammar"
- $P1340."O"(":prec<r=>, :assoc<left>", "%concatenation")
-.annotate 'line', 439
- get_hll_global $P1341, ["NQP"], "Grammar"
- $P1341."O"(":prec<m=>, :assoc<left>", "%relational")
-.annotate 'line', 440
- get_hll_global $P1342, ["NQP"], "Grammar"
- $P1342."O"(":prec<l=>, :assoc<left>", "%tight_and")
-.annotate 'line', 441
- get_hll_global $P1343, ["NQP"], "Grammar"
- $P1343."O"(":prec<k=>, :assoc<left>", "%tight_or")
-.annotate 'line', 442
- get_hll_global $P1344, ["NQP"], "Grammar"
- $P1344."O"(":prec<j=>, :assoc<right>", "%conditional")
-.annotate 'line', 443
- get_hll_global $P1345, ["NQP"], "Grammar"
- $P1345."O"(":prec<i=>, :assoc<right>", "%assignment")
-.annotate 'line', 444
- get_hll_global $P1346, ["NQP"], "Grammar"
- $P1346."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
-.annotate 'line', 445
- get_hll_global $P1347, ["NQP"], "Grammar"
- $P1347."O"(":prec<f=>, :assoc<list>", "%list_infix")
+.annotate 'line', 447
+ get_hll_global $P1408, ["NQP"], "Grammar"
+ $P1408."O"(":prec<y=>, :assoc<unary>", "%methodop")
+.annotate 'line', 448
+ get_hll_global $P1409, ["NQP"], "Grammar"
+ $P1409."O"(":prec<x=>, :assoc<unary>", "%autoincrement")
+.annotate 'line', 449
+ get_hll_global $P1410, ["NQP"], "Grammar"
+ $P1410."O"(":prec<w=>, :assoc<left>", "%exponentiation")
+.annotate 'line', 450
+ get_hll_global $P1411, ["NQP"], "Grammar"
+ $P1411."O"(":prec<v=>, :assoc<unary>", "%symbolic_unary")
+.annotate 'line', 451
+ get_hll_global $P1412, ["NQP"], "Grammar"
+ $P1412."O"(":prec<u=>, :assoc<left>", "%multiplicative")
+.annotate 'line', 452
+ get_hll_global $P1413, ["NQP"], "Grammar"
+ $P1413."O"(":prec<t=>, :assoc<left>", "%additive")
+.annotate 'line', 453
+ get_hll_global $P1414, ["NQP"], "Grammar"
+ $P1414."O"(":prec<r=>, :assoc<left>", "%concatenation")
+.annotate 'line', 454
+ get_hll_global $P1415, ["NQP"], "Grammar"
+ $P1415."O"(":prec<m=>, :assoc<left>", "%relational")
+.annotate 'line', 455
+ get_hll_global $P1416, ["NQP"], "Grammar"
+ $P1416."O"(":prec<l=>, :assoc<left>", "%tight_and")
+.annotate 'line', 456
+ get_hll_global $P1417, ["NQP"], "Grammar"
+ $P1417."O"(":prec<k=>, :assoc<left>", "%tight_or")
+.annotate 'line', 457
+ get_hll_global $P1418, ["NQP"], "Grammar"
+ $P1418."O"(":prec<j=>, :assoc<right>", "%conditional")
+.annotate 'line', 458
+ get_hll_global $P1419, ["NQP"], "Grammar"
+ $P1419."O"(":prec<i=>, :assoc<right>", "%assignment")
+.annotate 'line', 459
+ get_hll_global $P1420, ["NQP"], "Grammar"
+ $P1420."O"(":prec<g=>, :assoc<list>, :nextterm<nulltermish>", "%comma")
+.annotate 'line', 460
+ get_hll_global $P1421, ["NQP"], "Grammar"
+ $P1421."O"(":prec<f=>, :assoc<list>", "%list_infix")
+.annotate 'line', 461
+ get_hll_global $P1422, ["NQP"], "Grammar"
+ $P1422."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
.annotate 'line', 446
- get_hll_global $P1348, ["NQP"], "Grammar"
- $P1348."O"(":prec<e=>, :assoc<unary>", "%list_prefix")
-.annotate 'line', 431
- $P1349 = get_root_global ["parrot"], "P6metaclass"
- $P1349."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
+ $P1423 = get_root_global ["parrot"], "P6metaclass"
+ $P1423."new_class"("NQP::Regex", "Regex::P6Regex::Grammar" :named("parent"))
.end
.namespace ["NQP";"Grammar"]
-.sub "TOP" :subid("12_1274022894.43745") :method :outer("11_1274022894.43745")
+.include "except_types.pasm"
+.sub "TOP" :subid("12_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
new $P17, 'ExceptionHandler'
set_addr $P17, control_16
- $P17."handle_types"(57)
+ $P17."handle_types"(.CONTROL_RETURN)
push_eh $P17
.lex "self", self
.annotate 'line', 5
@@ -424,2662 +446,2682 @@
.annotate 'line', 10
new $P19, "Undef"
.lex "$*SCOPE", $P19
+.annotate 'line', 11
+ new $P20, "Undef"
+ .lex "$*MULTINESS", $P20
.annotate 'line', 4
- find_lex $P20, "%*LANG"
- unless_null $P20, vivify_347
- get_hll_global $P20, "%LANG"
- unless_null $P20, vivify_348
+ find_lex $P21, "%*LANG"
+ unless_null $P21, vivify_366
+ get_hll_global $P21, "%LANG"
+ unless_null $P21, vivify_367
die "Contextual %*LANG not found"
- vivify_348:
- vivify_347:
+ vivify_367:
+ vivify_366:
.annotate 'line', 6
- get_hll_global $P21, ["NQP"], "Regex"
- find_lex $P22, "%*LANG"
- unless_null $P22, vivify_349
- get_hll_global $P22, "%LANG"
- unless_null $P22, vivify_350
+ get_hll_global $P22, ["NQP"], "Regex"
+ find_lex $P23, "%*LANG"
+ unless_null $P23, vivify_368
+ get_hll_global $P23, "%LANG"
+ unless_null $P23, vivify_369
die "Contextual %*LANG not found"
- vivify_350:
- store_lex "%*LANG", $P22
- vivify_349:
- set $P22["Regex"], $P21
+ vivify_369:
+ store_lex "%*LANG", $P23
+ vivify_368:
+ set $P23["Regex"], $P22
.annotate 'line', 7
- get_hll_global $P23, ["NQP"], "RegexActions"
- find_lex $P24, "%*LANG"
- unless_null $P24, vivify_351
- get_hll_global $P24, "%LANG"
- unless_null $P24, vivify_352
+ get_hll_global $P24, ["NQP"], "RegexActions"
+ find_lex $P25, "%*LANG"
+ unless_null $P25, vivify_370
+ get_hll_global $P25, "%LANG"
+ unless_null $P25, vivify_371
die "Contextual %*LANG not found"
- vivify_352:
- store_lex "%*LANG", $P24
- vivify_351:
- set $P24["Regex-actions"], $P23
+ vivify_371:
+ store_lex "%*LANG", $P25
+ vivify_370:
+ set $P25["Regex-actions"], $P24
.annotate 'line', 8
- get_hll_global $P25, ["NQP"], "Grammar"
- find_lex $P26, "%*LANG"
- unless_null $P26, vivify_353
- get_hll_global $P26, "%LANG"
- unless_null $P26, vivify_354
+ get_hll_global $P26, ["NQP"], "Grammar"
+ find_lex $P27, "%*LANG"
+ unless_null $P27, vivify_372
+ get_hll_global $P27, "%LANG"
+ unless_null $P27, vivify_373
die "Contextual %*LANG not found"
- vivify_354:
- store_lex "%*LANG", $P26
- vivify_353:
- set $P26["MAIN"], $P25
+ vivify_373:
+ store_lex "%*LANG", $P27
+ vivify_372:
+ set $P27["MAIN"], $P26
.annotate 'line', 9
- get_hll_global $P27, ["NQP"], "Actions"
- find_lex $P28, "%*LANG"
- unless_null $P28, vivify_355
- get_hll_global $P28, "%LANG"
- unless_null $P28, vivify_356
+ get_hll_global $P28, ["NQP"], "Actions"
+ find_lex $P29, "%*LANG"
+ unless_null $P29, vivify_374
+ get_hll_global $P29, "%LANG"
+ unless_null $P29, vivify_375
die "Contextual %*LANG not found"
- vivify_356:
- store_lex "%*LANG", $P28
- vivify_355:
- set $P28["MAIN-actions"], $P27
+ vivify_375:
+ store_lex "%*LANG", $P29
+ vivify_374:
+ set $P29["MAIN-actions"], $P28
.annotate 'line', 10
- new $P29, "String"
- assign $P29, ""
- store_lex "$*SCOPE", $P29
+ new $P30, "String"
+ assign $P30, ""
+ store_lex "$*SCOPE", $P30
.annotate 'line', 11
- find_lex $P30, "self"
- $P31 = $P30."comp_unit"()
+ new $P31, "String"
+ assign $P31, ""
+ store_lex "$*MULTINESS", $P31
+.annotate 'line', 12
+ find_lex $P32, "self"
+ $P33 = $P32."comp_unit"()
.annotate 'line', 4
- .return ($P31)
+ .return ($P33)
control_16:
.local pmc exception
.get_results (exception)
- getattribute $P32, exception, "payload"
- .return ($P32)
+ getattribute $P34, exception, "payload"
+ .return ($P34)
.end
.namespace ["NQP";"Grammar"]
-.sub "identifier" :subid("13_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "identifier" :subid("13_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx34_tgt
- .local int rx34_pos
- .local int rx34_off
- .local int rx34_eos
- .local int rx34_rep
- .local pmc rx34_cur
- (rx34_cur, rx34_pos, rx34_tgt) = self."!cursor_start"()
- rx34_cur."!cursor_debug"("START ", "identifier")
- .lex unicode:"$\x{a2}", rx34_cur
- .local pmc match
- .lex "$/", match
- length rx34_eos, rx34_tgt
- set rx34_off, 0
- lt rx34_pos, 2, rx34_start
- sub rx34_off, rx34_pos, 1
- substr rx34_tgt, rx34_tgt, rx34_off
- rx34_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan38_done
- goto rxscan38_scan
- rxscan38_loop:
- ($P10) = rx34_cur."from"()
- inc $P10
- set rx34_pos, $P10
- ge rx34_pos, rx34_eos, rxscan38_done
- rxscan38_scan:
- set_addr $I10, rxscan38_loop
- rx34_cur."!mark_push"(0, rx34_pos, $I10)
- rxscan38_done:
-.annotate 'line', 16
+ .local string rx36_tgt
+ .local int rx36_pos
+ .local int rx36_off
+ .local int rx36_eos
+ .local int rx36_rep
+ .local pmc rx36_cur
+ (rx36_cur, rx36_pos, rx36_tgt) = self."!cursor_start"()
+ rx36_cur."!cursor_debug"("START ", "identifier")
+ .lex unicode:"$\x{a2}", rx36_cur
+ .local pmc match
+ .lex "$/", match
+ length rx36_eos, rx36_tgt
+ gt rx36_pos, rx36_eos, rx36_done
+ set rx36_off, 0
+ lt rx36_pos, 2, rx36_start
+ sub rx36_off, rx36_pos, 1
+ substr rx36_tgt, rx36_tgt, rx36_off
+ rx36_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan40_done
+ goto rxscan40_scan
+ rxscan40_loop:
+ ($P10) = rx36_cur."from"()
+ inc $P10
+ set rx36_pos, $P10
+ ge rx36_pos, rx36_eos, rxscan40_done
+ rxscan40_scan:
+ set_addr $I10, rxscan40_loop
+ rx36_cur."!mark_push"(0, rx36_pos, $I10)
+ rxscan40_done:
+.annotate 'line', 17
# rx subrule "ident" subtype=capture negate=
- rx34_cur."!cursor_pos"(rx34_pos)
- $P10 = rx34_cur."ident"()
- unless $P10, rx34_fail
- rx34_cur."!mark_push"(0, -1, 0, $P10)
+ rx36_cur."!cursor_pos"(rx36_pos)
+ $P10 = rx36_cur."ident"()
+ unless $P10, rx36_fail
+ rx36_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("ident")
- rx34_pos = $P10."pos"()
+ rx36_pos = $P10."pos"()
# rx pass
- rx34_cur."!cursor_pass"(rx34_pos, "identifier")
- rx34_cur."!cursor_debug"("PASS ", "identifier", " at pos=", rx34_pos)
- .return (rx34_cur)
- rx34_fail:
+ rx36_cur."!cursor_pass"(rx36_pos, "identifier")
+ rx36_cur."!cursor_debug"("PASS ", "identifier", " at pos=", rx36_pos)
+ .return (rx36_cur)
+ rx36_fail:
.annotate 'line', 4
- (rx34_rep, rx34_pos, $I10, $P10) = rx34_cur."!mark_fail"(0)
- lt rx34_pos, -1, rx34_done
- eq rx34_pos, -1, rx34_fail
+ (rx36_rep, rx36_pos, $I10, $P10) = rx36_cur."!mark_fail"(0)
+ lt rx36_pos, -1, rx36_done
+ eq rx36_pos, -1, rx36_fail
jump $I10
- rx34_done:
- rx34_cur."!cursor_fail"()
- rx34_cur."!cursor_debug"("FAIL ", "identifier")
- .return (rx34_cur)
+ rx36_done:
+ rx36_cur."!cursor_fail"()
+ rx36_cur."!cursor_debug"("FAIL ", "identifier")
+ .return (rx36_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__identifier" :subid("14_1274022894.43745") :method
+.sub "!PREFIX__identifier" :subid("14_1275811487.95429") :method
.annotate 'line', 4
- $P36 = self."!PREFIX__!subrule"("ident", "")
- new $P37, "ResizablePMCArray"
- push $P37, $P36
- .return ($P37)
+ $P38 = self."!PREFIX__!subrule"("ident", "")
+ new $P39, "ResizablePMCArray"
+ push $P39, $P38
+ .return ($P39)
.end
.namespace ["NQP";"Grammar"]
-.sub "name" :subid("15_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "name" :subid("15_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx40_tgt
- .local int rx40_pos
- .local int rx40_off
- .local int rx40_eos
- .local int rx40_rep
- .local pmc rx40_cur
- (rx40_cur, rx40_pos, rx40_tgt) = self."!cursor_start"()
- rx40_cur."!cursor_debug"("START ", "name")
- rx40_cur."!cursor_caparray"("identifier")
- .lex unicode:"$\x{a2}", rx40_cur
+ .local string rx42_tgt
+ .local int rx42_pos
+ .local int rx42_off
+ .local int rx42_eos
+ .local int rx42_rep
+ .local pmc rx42_cur
+ (rx42_cur, rx42_pos, rx42_tgt) = self."!cursor_start"()
+ rx42_cur."!cursor_debug"("START ", "name")
+ rx42_cur."!cursor_caparray"("identifier")
+ .lex unicode:"$\x{a2}", rx42_cur
.local pmc match
.lex "$/", match
- length rx40_eos, rx40_tgt
- set rx40_off, 0
- lt rx40_pos, 2, rx40_start
- sub rx40_off, rx40_pos, 1
- substr rx40_tgt, rx40_tgt, rx40_off
- rx40_start:
+ length rx42_eos, rx42_tgt
+ gt rx42_pos, rx42_eos, rx42_done
+ set rx42_off, 0
+ lt rx42_pos, 2, rx42_start
+ sub rx42_off, rx42_pos, 1
+ substr rx42_tgt, rx42_tgt, rx42_off
+ rx42_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan43_done
- goto rxscan43_scan
- rxscan43_loop:
- ($P10) = rx40_cur."from"()
+ ne $I10, -1, rxscan45_done
+ goto rxscan45_scan
+ rxscan45_loop:
+ ($P10) = rx42_cur."from"()
inc $P10
- set rx40_pos, $P10
- ge rx40_pos, rx40_eos, rxscan43_done
- rxscan43_scan:
- set_addr $I10, rxscan43_loop
- rx40_cur."!mark_push"(0, rx40_pos, $I10)
- rxscan43_done:
-.annotate 'line', 18
- # rx rxquantr44 ** 1..*
- set_addr $I45, rxquantr44_done
- rx40_cur."!mark_push"(0, -1, $I45)
- rxquantr44_loop:
+ set rx42_pos, $P10
+ ge rx42_pos, rx42_eos, rxscan45_done
+ rxscan45_scan:
+ set_addr $I10, rxscan45_loop
+ rx42_cur."!mark_push"(0, rx42_pos, $I10)
+ rxscan45_done:
+.annotate 'line', 19
+ # rx rxquantr46 ** 1..*
+ set_addr $I47, rxquantr46_done
+ rx42_cur."!mark_push"(0, -1, $I47)
+ rxquantr46_loop:
# rx subrule "identifier" subtype=capture negate=
- rx40_cur."!cursor_pos"(rx40_pos)
- $P10 = rx40_cur."identifier"()
- unless $P10, rx40_fail
- rx40_cur."!mark_push"(0, -1, 0, $P10)
+ rx42_cur."!cursor_pos"(rx42_pos)
+ $P10 = rx42_cur."identifier"()
+ unless $P10, rx42_fail
+ rx42_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx40_pos = $P10."pos"()
- (rx40_rep) = rx40_cur."!mark_commit"($I45)
- rx40_cur."!mark_push"(rx40_rep, rx40_pos, $I45)
+ rx42_pos = $P10."pos"()
+ (rx42_rep) = rx42_cur."!mark_commit"($I47)
+ rx42_cur."!mark_push"(rx42_rep, rx42_pos, $I47)
# rx literal "::"
- add $I11, rx40_pos, 2
- gt $I11, rx40_eos, rx40_fail
- sub $I11, rx40_pos, rx40_off
- substr $S10, rx40_tgt, $I11, 2
- ne $S10, "::", rx40_fail
- add rx40_pos, 2
- goto rxquantr44_loop
- rxquantr44_done:
+ add $I11, rx42_pos, 2
+ gt $I11, rx42_eos, rx42_fail
+ sub $I11, rx42_pos, rx42_off
+ substr $S10, rx42_tgt, $I11, 2
+ ne $S10, "::", rx42_fail
+ add rx42_pos, 2
+ goto rxquantr46_loop
+ rxquantr46_done:
# rx pass
- rx40_cur."!cursor_pass"(rx40_pos, "name")
- rx40_cur."!cursor_debug"("PASS ", "name", " at pos=", rx40_pos)
- .return (rx40_cur)
- rx40_fail:
+ rx42_cur."!cursor_pass"(rx42_pos, "name")
+ rx42_cur."!cursor_debug"("PASS ", "name", " at pos=", rx42_pos)
+ .return (rx42_cur)
+ rx42_fail:
.annotate 'line', 4
- (rx40_rep, rx40_pos, $I10, $P10) = rx40_cur."!mark_fail"(0)
- lt rx40_pos, -1, rx40_done
- eq rx40_pos, -1, rx40_fail
+ (rx42_rep, rx42_pos, $I10, $P10) = rx42_cur."!mark_fail"(0)
+ lt rx42_pos, -1, rx42_done
+ eq rx42_pos, -1, rx42_fail
jump $I10
- rx40_done:
- rx40_cur."!cursor_fail"()
- rx40_cur."!cursor_debug"("FAIL ", "name")
- .return (rx40_cur)
+ rx42_done:
+ rx42_cur."!cursor_fail"()
+ rx42_cur."!cursor_debug"("FAIL ", "name")
+ .return (rx42_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__name" :subid("16_1274022894.43745") :method
+.sub "!PREFIX__name" :subid("16_1275811487.95429") :method
.annotate 'line', 4
- new $P42, "ResizablePMCArray"
- push $P42, ""
- .return ($P42)
+ new $P44, "ResizablePMCArray"
+ push $P44, ""
+ .return ($P44)
.end
.namespace ["NQP";"Grammar"]
-.sub "deflongname" :subid("17_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "deflongname" :subid("17_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx47_tgt
- .local int rx47_pos
- .local int rx47_off
- .local int rx47_eos
- .local int rx47_rep
- .local pmc rx47_cur
- (rx47_cur, rx47_pos, rx47_tgt) = self."!cursor_start"()
- rx47_cur."!cursor_debug"("START ", "deflongname")
- rx47_cur."!cursor_caparray"("colonpair")
- .lex unicode:"$\x{a2}", rx47_cur
+ .local string rx49_tgt
+ .local int rx49_pos
+ .local int rx49_off
+ .local int rx49_eos
+ .local int rx49_rep
+ .local pmc rx49_cur
+ (rx49_cur, rx49_pos, rx49_tgt) = self."!cursor_start"()
+ rx49_cur."!cursor_debug"("START ", "deflongname")
+ rx49_cur."!cursor_caparray"("colonpair")
+ .lex unicode:"$\x{a2}", rx49_cur
.local pmc match
.lex "$/", match
- length rx47_eos, rx47_tgt
- set rx47_off, 0
- lt rx47_pos, 2, rx47_start
- sub rx47_off, rx47_pos, 1
- substr rx47_tgt, rx47_tgt, rx47_off
- rx47_start:
+ length rx49_eos, rx49_tgt
+ gt rx49_pos, rx49_eos, rx49_done
+ set rx49_off, 0
+ lt rx49_pos, 2, rx49_start
+ sub rx49_off, rx49_pos, 1
+ substr rx49_tgt, rx49_tgt, rx49_off
+ rx49_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan51_done
- goto rxscan51_scan
- rxscan51_loop:
- ($P10) = rx47_cur."from"()
+ ne $I10, -1, rxscan53_done
+ goto rxscan53_scan
+ rxscan53_loop:
+ ($P10) = rx49_cur."from"()
inc $P10
- set rx47_pos, $P10
- ge rx47_pos, rx47_eos, rxscan51_done
- rxscan51_scan:
- set_addr $I10, rxscan51_loop
- rx47_cur."!mark_push"(0, rx47_pos, $I10)
- rxscan51_done:
-.annotate 'line', 21
+ set rx49_pos, $P10
+ ge rx49_pos, rx49_eos, rxscan53_done
+ rxscan53_scan:
+ set_addr $I10, rxscan53_loop
+ rx49_cur."!mark_push"(0, rx49_pos, $I10)
+ rxscan53_done:
+.annotate 'line', 22
# rx subrule "identifier" subtype=capture negate=
- rx47_cur."!cursor_pos"(rx47_pos)
- $P10 = rx47_cur."identifier"()
- unless $P10, rx47_fail
- rx47_cur."!mark_push"(0, -1, 0, $P10)
+ rx49_cur."!cursor_pos"(rx49_pos)
+ $P10 = rx49_cur."identifier"()
+ unless $P10, rx49_fail
+ rx49_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx47_pos = $P10."pos"()
- # rx rxquantr52 ** 0..1
- set_addr $I53, rxquantr52_done
- rx47_cur."!mark_push"(0, rx47_pos, $I53)
- rxquantr52_loop:
+ rx49_pos = $P10."pos"()
+ # rx rxquantr54 ** 0..1
+ set_addr $I55, rxquantr54_done
+ rx49_cur."!mark_push"(0, rx49_pos, $I55)
+ rxquantr54_loop:
# rx subrule "colonpair" subtype=capture negate=
- rx47_cur."!cursor_pos"(rx47_pos)
- $P10 = rx47_cur."colonpair"()
- unless $P10, rx47_fail
- rx47_cur."!mark_push"(0, -1, 0, $P10)
+ rx49_cur."!cursor_pos"(rx49_pos)
+ $P10 = rx49_cur."colonpair"()
+ unless $P10, rx49_fail
+ rx49_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("colonpair")
- rx47_pos = $P10."pos"()
- (rx47_rep) = rx47_cur."!mark_commit"($I53)
- rxquantr52_done:
-.annotate 'line', 20
+ rx49_pos = $P10."pos"()
+ (rx49_rep) = rx49_cur."!mark_commit"($I55)
+ rxquantr54_done:
+.annotate 'line', 21
# rx pass
- rx47_cur."!cursor_pass"(rx47_pos, "deflongname")
- rx47_cur."!cursor_debug"("PASS ", "deflongname", " at pos=", rx47_pos)
- .return (rx47_cur)
- rx47_fail:
+ rx49_cur."!cursor_pass"(rx49_pos, "deflongname")
+ rx49_cur."!cursor_debug"("PASS ", "deflongname", " at pos=", rx49_pos)
+ .return (rx49_cur)
+ rx49_fail:
.annotate 'line', 4
- (rx47_rep, rx47_pos, $I10, $P10) = rx47_cur."!mark_fail"(0)
- lt rx47_pos, -1, rx47_done
- eq rx47_pos, -1, rx47_fail
+ (rx49_rep, rx49_pos, $I10, $P10) = rx49_cur."!mark_fail"(0)
+ lt rx49_pos, -1, rx49_done
+ eq rx49_pos, -1, rx49_fail
jump $I10
- rx47_done:
- rx47_cur."!cursor_fail"()
- rx47_cur."!cursor_debug"("FAIL ", "deflongname")
- .return (rx47_cur)
+ rx49_done:
+ rx49_cur."!cursor_fail"()
+ rx49_cur."!cursor_debug"("FAIL ", "deflongname")
+ .return (rx49_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__deflongname" :subid("18_1274022894.43745") :method
+.sub "!PREFIX__deflongname" :subid("18_1275811487.95429") :method
.annotate 'line', 4
- $P49 = self."!PREFIX__!subrule"("identifier", "")
- new $P50, "ResizablePMCArray"
- push $P50, $P49
- .return ($P50)
+ $P51 = self."!PREFIX__!subrule"("identifier", "")
+ new $P52, "ResizablePMCArray"
+ push $P52, $P51
+ .return ($P52)
.end
.namespace ["NQP";"Grammar"]
-.sub "ENDSTMT" :subid("19_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "ENDSTMT" :subid("19_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx55_tgt
- .local int rx55_pos
- .local int rx55_off
- .local int rx55_eos
- .local int rx55_rep
- .local pmc rx55_cur
- (rx55_cur, rx55_pos, rx55_tgt) = self."!cursor_start"()
- rx55_cur."!cursor_debug"("START ", "ENDSTMT")
- .lex unicode:"$\x{a2}", rx55_cur
+ .local string rx57_tgt
+ .local int rx57_pos
+ .local int rx57_off
+ .local int rx57_eos
+ .local int rx57_rep
+ .local pmc rx57_cur
+ (rx57_cur, rx57_pos, rx57_tgt) = self."!cursor_start"()
+ rx57_cur."!cursor_debug"("START ", "ENDSTMT")
+ .lex unicode:"$\x{a2}", rx57_cur
.local pmc match
.lex "$/", match
- length rx55_eos, rx55_tgt
- set rx55_off, 0
- lt rx55_pos, 2, rx55_start
- sub rx55_off, rx55_pos, 1
- substr rx55_tgt, rx55_tgt, rx55_off
- rx55_start:
+ length rx57_eos, rx57_tgt
+ gt rx57_pos, rx57_eos, rx57_done
+ set rx57_off, 0
+ lt rx57_pos, 2, rx57_start
+ sub rx57_off, rx57_pos, 1
+ substr rx57_tgt, rx57_tgt, rx57_off
+ rx57_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan58_done
- goto rxscan58_scan
- rxscan58_loop:
- ($P10) = rx55_cur."from"()
+ ne $I10, -1, rxscan60_done
+ goto rxscan60_scan
+ rxscan60_loop:
+ ($P10) = rx57_cur."from"()
inc $P10
- set rx55_pos, $P10
- ge rx55_pos, rx55_eos, rxscan58_done
- rxscan58_scan:
- set_addr $I10, rxscan58_loop
- rx55_cur."!mark_push"(0, rx55_pos, $I10)
- rxscan58_done:
-.annotate 'line', 28
- # rx rxquantr59 ** 0..1
- set_addr $I67, rxquantr59_done
- rx55_cur."!mark_push"(0, rx55_pos, $I67)
- rxquantr59_loop:
- alt60_0:
-.annotate 'line', 25
- set_addr $I10, alt60_1
- rx55_cur."!mark_push"(0, rx55_pos, $I10)
-.annotate 'line', 26
- # rx rxquantr61 ** 0..*
- set_addr $I62, rxquantr61_done
- rx55_cur."!mark_push"(0, rx55_pos, $I62)
+ set rx57_pos, $P10
+ ge rx57_pos, rx57_eos, rxscan60_done
+ rxscan60_scan:
+ set_addr $I10, rxscan60_loop
+ rx57_cur."!mark_push"(0, rx57_pos, $I10)
+ rxscan60_done:
+.annotate 'line', 29
+ # rx rxquantr61 ** 0..1
+ set_addr $I69, rxquantr61_done
+ rx57_cur."!mark_push"(0, rx57_pos, $I69)
rxquantr61_loop:
+ alt62_0:
+.annotate 'line', 26
+ set_addr $I10, alt62_1
+ rx57_cur."!mark_push"(0, rx57_pos, $I10)
+.annotate 'line', 27
+ # rx rxquantr63 ** 0..*
+ set_addr $I64, rxquantr63_done
+ rx57_cur."!mark_push"(0, rx57_pos, $I64)
+ rxquantr63_loop:
# rx enumcharlist negate=0
- ge rx55_pos, rx55_eos, rx55_fail
- sub $I10, rx55_pos, rx55_off
- substr $S10, rx55_tgt, $I10, 1
+ ge rx57_pos, rx57_eos, rx57_fail
+ sub $I10, rx57_pos, rx57_off
+ substr $S10, rx57_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx55_fail
- inc rx55_pos
- (rx55_rep) = rx55_cur."!mark_commit"($I62)
- rx55_cur."!mark_push"(rx55_rep, rx55_pos, $I62)
- goto rxquantr61_loop
- rxquantr61_done:
+ lt $I11, 0, rx57_fail
+ inc rx57_pos
+ (rx57_rep) = rx57_cur."!mark_commit"($I64)
+ rx57_cur."!mark_push"(rx57_rep, rx57_pos, $I64)
+ goto rxquantr63_loop
+ rxquantr63_done:
# rxanchor eol
- sub $I10, rx55_pos, rx55_off
- is_cclass $I11, 4096, rx55_tgt, $I10
- if $I11, rxanchor63_done
- ne rx55_pos, rx55_eos, rx55_fail
- eq rx55_pos, 0, rxanchor63_done
+ sub $I10, rx57_pos, rx57_off
+ is_cclass $I11, 4096, rx57_tgt, $I10
+ if $I11, rxanchor65_done
+ ne rx57_pos, rx57_eos, rx57_fail
+ eq rx57_pos, 0, rxanchor65_done
dec $I10
- is_cclass $I11, 4096, rx55_tgt, $I10
- if $I11, rx55_fail
- rxanchor63_done:
- # rx subrule "ws" subtype=method negate=
- rx55_cur."!cursor_pos"(rx55_pos)
- $P10 = rx55_cur."ws"()
- unless $P10, rx55_fail
- rx55_pos = $P10."pos"()
+ is_cclass $I11, 4096, rx57_tgt, $I10
+ if $I11, rx57_fail
+ rxanchor65_done:
+ # rx subrule "ws" subtype=method negate=
+ rx57_cur."!cursor_pos"(rx57_pos)
+ $P10 = rx57_cur."ws"()
+ unless $P10, rx57_fail
+ rx57_pos = $P10."pos"()
# rx subrule "MARKER" subtype=zerowidth negate=
- rx55_cur."!cursor_pos"(rx55_pos)
- $P10 = rx55_cur."MARKER"("endstmt")
- unless $P10, rx55_fail
- goto alt60_end
- alt60_1:
-.annotate 'line', 27
- # rx rxquantr64 ** 0..1
- set_addr $I65, rxquantr64_done
- rx55_cur."!mark_push"(0, rx55_pos, $I65)
- rxquantr64_loop:
+ rx57_cur."!cursor_pos"(rx57_pos)
+ $P10 = rx57_cur."MARKER"("endstmt")
+ unless $P10, rx57_fail
+ goto alt62_end
+ alt62_1:
+.annotate 'line', 28
+ # rx rxquantr66 ** 0..1
+ set_addr $I67, rxquantr66_done
+ rx57_cur."!mark_push"(0, rx57_pos, $I67)
+ rxquantr66_loop:
# rx subrule "unv" subtype=method negate=
- rx55_cur."!cursor_pos"(rx55_pos)
- $P10 = rx55_cur."unv"()
- unless $P10, rx55_fail
- rx55_pos = $P10."pos"()
- (rx55_rep) = rx55_cur."!mark_commit"($I65)
- rxquantr64_done:
+ rx57_cur."!cursor_pos"(rx57_pos)
+ $P10 = rx57_cur."unv"()
+ unless $P10, rx57_fail
+ rx57_pos = $P10."pos"()
+ (rx57_rep) = rx57_cur."!mark_commit"($I67)
+ rxquantr66_done:
# rxanchor eol
- sub $I10, rx55_pos, rx55_off
- is_cclass $I11, 4096, rx55_tgt, $I10
- if $I11, rxanchor66_done
- ne rx55_pos, rx55_eos, rx55_fail
- eq rx55_pos, 0, rxanchor66_done
+ sub $I10, rx57_pos, rx57_off
+ is_cclass $I11, 4096, rx57_tgt, $I10
+ if $I11, rxanchor68_done
+ ne rx57_pos, rx57_eos, rx57_fail
+ eq rx57_pos, 0, rxanchor68_done
dec $I10
- is_cclass $I11, 4096, rx55_tgt, $I10
- if $I11, rx55_fail
- rxanchor66_done:
- # rx subrule "ws" subtype=method negate=
- rx55_cur."!cursor_pos"(rx55_pos)
- $P10 = rx55_cur."ws"()
- unless $P10, rx55_fail
- rx55_pos = $P10."pos"()
+ is_cclass $I11, 4096, rx57_tgt, $I10
+ if $I11, rx57_fail
+ rxanchor68_done:
+ # rx subrule "ws" subtype=method negate=
+ rx57_cur."!cursor_pos"(rx57_pos)
+ $P10 = rx57_cur."ws"()
+ unless $P10, rx57_fail
+ rx57_pos = $P10."pos"()
# rx subrule "MARKER" subtype=zerowidth negate=
- rx55_cur."!cursor_pos"(rx55_pos)
- $P10 = rx55_cur."MARKER"("endstmt")
- unless $P10, rx55_fail
- alt60_end:
-.annotate 'line', 28
- (rx55_rep) = rx55_cur."!mark_commit"($I67)
- rxquantr59_done:
-.annotate 'line', 24
+ rx57_cur."!cursor_pos"(rx57_pos)
+ $P10 = rx57_cur."MARKER"("endstmt")
+ unless $P10, rx57_fail
+ alt62_end:
+.annotate 'line', 29
+ (rx57_rep) = rx57_cur."!mark_commit"($I69)
+ rxquantr61_done:
+.annotate 'line', 25
# rx pass
- rx55_cur."!cursor_pass"(rx55_pos, "ENDSTMT")
- rx55_cur."!cursor_debug"("PASS ", "ENDSTMT", " at pos=", rx55_pos)
- .return (rx55_cur)
- rx55_fail:
+ rx57_cur."!cursor_pass"(rx57_pos, "ENDSTMT")
+ rx57_cur."!cursor_debug"("PASS ", "ENDSTMT", " at pos=", rx57_pos)
+ .return (rx57_cur)
+ rx57_fail:
.annotate 'line', 4
- (rx55_rep, rx55_pos, $I10, $P10) = rx55_cur."!mark_fail"(0)
- lt rx55_pos, -1, rx55_done
- eq rx55_pos, -1, rx55_fail
+ (rx57_rep, rx57_pos, $I10, $P10) = rx57_cur."!mark_fail"(0)
+ lt rx57_pos, -1, rx57_done
+ eq rx57_pos, -1, rx57_fail
jump $I10
- rx55_done:
- rx55_cur."!cursor_fail"()
- rx55_cur."!cursor_debug"("FAIL ", "ENDSTMT")
- .return (rx55_cur)
+ rx57_done:
+ rx57_cur."!cursor_fail"()
+ rx57_cur."!cursor_debug"("FAIL ", "ENDSTMT")
+ .return (rx57_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ENDSTMT" :subid("20_1274022894.43745") :method
+.sub "!PREFIX__ENDSTMT" :subid("20_1275811487.95429") :method
.annotate 'line', 4
- new $P57, "ResizablePMCArray"
- push $P57, ""
- .return ($P57)
+ new $P59, "ResizablePMCArray"
+ push $P59, ""
+ .return ($P59)
.end
.namespace ["NQP";"Grammar"]
-.sub "ws" :subid("21_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "ws" :subid("21_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx69_tgt
- .local int rx69_pos
- .local int rx69_off
- .local int rx69_eos
- .local int rx69_rep
- .local pmc rx69_cur
- (rx69_cur, rx69_pos, rx69_tgt) = self."!cursor_start"()
- rx69_cur."!cursor_debug"("START ", "ws")
- .lex unicode:"$\x{a2}", rx69_cur
- .local pmc match
- .lex "$/", match
- length rx69_eos, rx69_tgt
- set rx69_off, 0
- lt rx69_pos, 2, rx69_start
- sub rx69_off, rx69_pos, 1
- substr rx69_tgt, rx69_tgt, rx69_off
- rx69_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan72_done
- goto rxscan72_scan
- rxscan72_loop:
- ($P10) = rx69_cur."from"()
- inc $P10
- set rx69_pos, $P10
- ge rx69_pos, rx69_eos, rxscan72_done
- rxscan72_scan:
- set_addr $I10, rxscan72_loop
- rx69_cur."!mark_push"(0, rx69_pos, $I10)
- rxscan72_done:
- alt73_0:
-.annotate 'line', 31
- set_addr $I10, alt73_1
- rx69_cur."!mark_push"(0, rx69_pos, $I10)
+ .local string rx71_tgt
+ .local int rx71_pos
+ .local int rx71_off
+ .local int rx71_eos
+ .local int rx71_rep
+ .local pmc rx71_cur
+ (rx71_cur, rx71_pos, rx71_tgt) = self."!cursor_start"()
+ rx71_cur."!cursor_debug"("START ", "ws")
+ .lex unicode:"$\x{a2}", rx71_cur
+ .local pmc match
+ .lex "$/", match
+ length rx71_eos, rx71_tgt
+ gt rx71_pos, rx71_eos, rx71_done
+ set rx71_off, 0
+ lt rx71_pos, 2, rx71_start
+ sub rx71_off, rx71_pos, 1
+ substr rx71_tgt, rx71_tgt, rx71_off
+ rx71_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan74_done
+ goto rxscan74_scan
+ rxscan74_loop:
+ ($P10) = rx71_cur."from"()
+ inc $P10
+ set rx71_pos, $P10
+ ge rx71_pos, rx71_eos, rxscan74_done
+ rxscan74_scan:
+ set_addr $I10, rxscan74_loop
+ rx71_cur."!mark_push"(0, rx71_pos, $I10)
+ rxscan74_done:
+ alt75_0:
.annotate 'line', 32
- # rx subrule "MARKED" subtype=zerowidth negate=
- rx69_cur."!cursor_pos"(rx69_pos)
- $P10 = rx69_cur."MARKED"("ws")
- unless $P10, rx69_fail
- goto alt73_end
- alt73_1:
+ set_addr $I10, alt75_1
+ rx71_cur."!mark_push"(0, rx71_pos, $I10)
.annotate 'line', 33
- # rx subrule "ww" subtype=zerowidth negate=1
- rx69_cur."!cursor_pos"(rx69_pos)
- $P10 = rx69_cur."ww"()
- if $P10, rx69_fail
-.annotate 'line', 38
- # rx rxquantr74 ** 0..*
- set_addr $I81, rxquantr74_done
- rx69_cur."!mark_push"(0, rx69_pos, $I81)
- rxquantr74_loop:
- alt75_0:
+ # rx subrule "MARKED" subtype=zerowidth negate=
+ rx71_cur."!cursor_pos"(rx71_pos)
+ $P10 = rx71_cur."MARKED"("ws")
+ unless $P10, rx71_fail
+ goto alt75_end
+ alt75_1:
.annotate 'line', 34
- set_addr $I10, alt75_1
- rx69_cur."!mark_push"(0, rx69_pos, $I10)
- # rx rxquantr76 ** 1..*
- set_addr $I77, rxquantr76_done
- rx69_cur."!mark_push"(0, -1, $I77)
+ # rx subrule "ww" subtype=zerowidth negate=1
+ rx71_cur."!cursor_pos"(rx71_pos)
+ $P10 = rx71_cur."ww"()
+ if $P10, rx71_fail
+.annotate 'line', 39
+ # rx rxquantr76 ** 0..*
+ set_addr $I83, rxquantr76_done
+ rx71_cur."!mark_push"(0, rx71_pos, $I83)
rxquantr76_loop:
+ alt77_0:
+.annotate 'line', 35
+ set_addr $I10, alt77_1
+ rx71_cur."!mark_push"(0, rx71_pos, $I10)
+ # rx rxquantr78 ** 1..*
+ set_addr $I79, rxquantr78_done
+ rx71_cur."!mark_push"(0, -1, $I79)
+ rxquantr78_loop:
# rx enumcharlist negate=0
- ge rx69_pos, rx69_eos, rx69_fail
- sub $I10, rx69_pos, rx69_off
- substr $S10, rx69_tgt, $I10, 1
+ ge rx71_pos, rx71_eos, rx71_fail
+ sub $I10, rx71_pos, rx71_off
+ substr $S10, rx71_tgt, $I10, 1
index $I11, unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", $S10
- lt $I11, 0, rx69_fail
- inc rx69_pos
- (rx69_rep) = rx69_cur."!mark_commit"($I77)
- rx69_cur."!mark_push"(rx69_rep, rx69_pos, $I77)
- goto rxquantr76_loop
- rxquantr76_done:
- goto alt75_end
- alt75_1:
- set_addr $I10, alt75_2
- rx69_cur."!mark_push"(0, rx69_pos, $I10)
-.annotate 'line', 35
+ lt $I11, 0, rx71_fail
+ inc rx71_pos
+ (rx71_rep) = rx71_cur."!mark_commit"($I79)
+ rx71_cur."!mark_push"(rx71_rep, rx71_pos, $I79)
+ goto rxquantr78_loop
+ rxquantr78_done:
+ goto alt77_end
+ alt77_1:
+ set_addr $I10, alt77_2
+ rx71_cur."!mark_push"(0, rx71_pos, $I10)
+.annotate 'line', 36
# rx literal "#"
- add $I11, rx69_pos, 1
- gt $I11, rx69_eos, rx69_fail
- sub $I11, rx69_pos, rx69_off
- substr $S10, rx69_tgt, $I11, 1
- ne $S10, "#", rx69_fail
- add rx69_pos, 1
+ add $I11, rx71_pos, 1
+ gt $I11, rx71_eos, rx71_fail
+ sub $I11, rx71_pos, rx71_off
+ substr $S10, rx71_tgt, $I11, 1
+ ne $S10, "#", rx71_fail
+ add rx71_pos, 1
# rx charclass_q N r 0..-1
- sub $I10, rx69_pos, rx69_off
- find_cclass $I11, 4096, rx69_tgt, $I10, rx69_eos
- add rx69_pos, rx69_off, $I11
- goto alt75_end
- alt75_2:
- set_addr $I10, alt75_3
- rx69_cur."!mark_push"(0, rx69_pos, $I10)
-.annotate 'line', 36
+ sub $I10, rx71_pos, rx71_off
+ find_cclass $I11, 4096, rx71_tgt, $I10, rx71_eos
+ add rx71_pos, rx71_off, $I11
+ goto alt77_end
+ alt77_2:
+ set_addr $I10, alt77_3
+ rx71_cur."!mark_push"(0, rx71_pos, $I10)
+.annotate 'line', 37
# rxanchor bol
- eq rx69_pos, 0, rxanchor78_done
- ge rx69_pos, rx69_eos, rx69_fail
- sub $I10, rx69_pos, rx69_off
+ eq rx71_pos, 0, rxanchor80_done
+ ge rx71_pos, rx71_eos, rx71_fail
+ sub $I10, rx71_pos, rx71_off
dec $I10
- is_cclass $I11, 4096, rx69_tgt, $I10
- unless $I11, rx69_fail
- rxanchor78_done:
+ is_cclass $I11, 4096, rx71_tgt, $I10
+ unless $I11, rx71_fail
+ rxanchor80_done:
# rx subrule "pod_comment" subtype=method negate=
- rx69_cur."!cursor_pos"(rx69_pos)
- $P10 = rx69_cur."pod_comment"()
- unless $P10, rx69_fail
- rx69_pos = $P10."pos"()
- goto alt75_end
- alt75_3:
-.annotate 'line', 37
- # rx rxquantr79 ** 1..*
- set_addr $I80, rxquantr79_done
- rx69_cur."!mark_push"(0, -1, $I80)
- rxquantr79_loop:
+ rx71_cur."!cursor_pos"(rx71_pos)
+ $P10 = rx71_cur."pod_comment"()
+ unless $P10, rx71_fail
+ rx71_pos = $P10."pos"()
+ goto alt77_end
+ alt77_3:
+.annotate 'line', 38
+ # rx rxquantr81 ** 1..*
+ set_addr $I82, rxquantr81_done
+ rx71_cur."!mark_push"(0, -1, $I82)
+ rxquantr81_loop:
# rx enumcharlist negate=0
- ge rx69_pos, rx69_eos, rx69_fail
- sub $I10, rx69_pos, rx69_off
- substr $S10, rx69_tgt, $I10, 1
+ ge rx71_pos, rx71_eos, rx71_fail
+ sub $I10, rx71_pos, rx71_off
+ substr $S10, rx71_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx69_fail
- inc rx69_pos
- (rx69_rep) = rx69_cur."!mark_commit"($I80)
- rx69_cur."!mark_push"(rx69_rep, rx69_pos, $I80)
- goto rxquantr79_loop
- rxquantr79_done:
- alt75_end:
-.annotate 'line', 38
- (rx69_rep) = rx69_cur."!mark_commit"($I81)
- rx69_cur."!mark_push"(rx69_rep, rx69_pos, $I81)
- goto rxquantr74_loop
- rxquantr74_done:
+ lt $I11, 0, rx71_fail
+ inc rx71_pos
+ (rx71_rep) = rx71_cur."!mark_commit"($I82)
+ rx71_cur."!mark_push"(rx71_rep, rx71_pos, $I82)
+ goto rxquantr81_loop
+ rxquantr81_done:
+ alt77_end:
.annotate 'line', 39
+ (rx71_rep) = rx71_cur."!mark_commit"($I83)
+ rx71_cur."!mark_push"(rx71_rep, rx71_pos, $I83)
+ goto rxquantr76_loop
+ rxquantr76_done:
+.annotate 'line', 40
# rx subrule "MARKER" subtype=zerowidth negate=
- rx69_cur."!cursor_pos"(rx69_pos)
- $P10 = rx69_cur."MARKER"("ws")
- unless $P10, rx69_fail
- alt73_end:
-.annotate 'line', 31
+ rx71_cur."!cursor_pos"(rx71_pos)
+ $P10 = rx71_cur."MARKER"("ws")
+ unless $P10, rx71_fail
+ alt75_end:
+.annotate 'line', 32
# rx pass
- rx69_cur."!cursor_pass"(rx69_pos, "ws")
- rx69_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx69_pos)
- .return (rx69_cur)
- rx69_fail:
+ rx71_cur."!cursor_pass"(rx71_pos, "ws")
+ rx71_cur."!cursor_debug"("PASS ", "ws", " at pos=", rx71_pos)
+ .return (rx71_cur)
+ rx71_fail:
.annotate 'line', 4
- (rx69_rep, rx69_pos, $I10, $P10) = rx69_cur."!mark_fail"(0)
- lt rx69_pos, -1, rx69_done
- eq rx69_pos, -1, rx69_fail
+ (rx71_rep, rx71_pos, $I10, $P10) = rx71_cur."!mark_fail"(0)
+ lt rx71_pos, -1, rx71_done
+ eq rx71_pos, -1, rx71_fail
jump $I10
- rx69_done:
- rx69_cur."!cursor_fail"()
- rx69_cur."!cursor_debug"("FAIL ", "ws")
- .return (rx69_cur)
+ rx71_done:
+ rx71_cur."!cursor_fail"()
+ rx71_cur."!cursor_debug"("FAIL ", "ws")
+ .return (rx71_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__ws" :subid("22_1274022894.43745") :method
+.sub "!PREFIX__ws" :subid("22_1275811487.95429") :method
.annotate 'line', 4
- new $P71, "ResizablePMCArray"
- push $P71, ""
- push $P71, ""
- .return ($P71)
+ new $P73, "ResizablePMCArray"
+ push $P73, ""
+ push $P73, ""
+ .return ($P73)
.end
.namespace ["NQP";"Grammar"]
-.sub "unv" :subid("23_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "unv" :subid("23_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .const 'Sub' $P90 = "25_1274022894.43745"
- capture_lex $P90
- .local string rx83_tgt
- .local int rx83_pos
- .local int rx83_off
- .local int rx83_eos
- .local int rx83_rep
- .local pmc rx83_cur
- (rx83_cur, rx83_pos, rx83_tgt) = self."!cursor_start"()
- rx83_cur."!cursor_debug"("START ", "unv")
- .lex unicode:"$\x{a2}", rx83_cur
+ .const 'Sub' $P92 = "25_1275811487.95429"
+ capture_lex $P92
+ .local string rx85_tgt
+ .local int rx85_pos
+ .local int rx85_off
+ .local int rx85_eos
+ .local int rx85_rep
+ .local pmc rx85_cur
+ (rx85_cur, rx85_pos, rx85_tgt) = self."!cursor_start"()
+ rx85_cur."!cursor_debug"("START ", "unv")
+ .lex unicode:"$\x{a2}", rx85_cur
.local pmc match
.lex "$/", match
- length rx83_eos, rx83_tgt
- set rx83_off, 0
- lt rx83_pos, 2, rx83_start
- sub rx83_off, rx83_pos, 1
- substr rx83_tgt, rx83_tgt, rx83_off
- rx83_start:
+ length rx85_eos, rx85_tgt
+ gt rx85_pos, rx85_eos, rx85_done
+ set rx85_off, 0
+ lt rx85_pos, 2, rx85_start
+ sub rx85_off, rx85_pos, 1
+ substr rx85_tgt, rx85_tgt, rx85_off
+ rx85_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan86_done
- goto rxscan86_scan
- rxscan86_loop:
- ($P10) = rx83_cur."from"()
+ ne $I10, -1, rxscan88_done
+ goto rxscan88_scan
+ rxscan88_loop:
+ ($P10) = rx85_cur."from"()
inc $P10
- set rx83_pos, $P10
- ge rx83_pos, rx83_eos, rxscan86_done
- rxscan86_scan:
- set_addr $I10, rxscan86_loop
- rx83_cur."!mark_push"(0, rx83_pos, $I10)
- rxscan86_done:
- alt87_0:
-.annotate 'line', 44
- set_addr $I10, alt87_1
- rx83_cur."!mark_push"(0, rx83_pos, $I10)
+ set rx85_pos, $P10
+ ge rx85_pos, rx85_eos, rxscan88_done
+ rxscan88_scan:
+ set_addr $I10, rxscan88_loop
+ rx85_cur."!mark_push"(0, rx85_pos, $I10)
+ rxscan88_done:
+ alt89_0:
.annotate 'line', 45
+ set_addr $I10, alt89_1
+ rx85_cur."!mark_push"(0, rx85_pos, $I10)
+.annotate 'line', 46
# rxanchor bol
- eq rx83_pos, 0, rxanchor88_done
- ge rx83_pos, rx83_eos, rx83_fail
- sub $I10, rx83_pos, rx83_off
+ eq rx85_pos, 0, rxanchor90_done
+ ge rx85_pos, rx85_eos, rx85_fail
+ sub $I10, rx85_pos, rx85_off
dec $I10
- is_cclass $I11, 4096, rx83_tgt, $I10
- unless $I11, rx83_fail
- rxanchor88_done:
+ is_cclass $I11, 4096, rx85_tgt, $I10
+ unless $I11, rx85_fail
+ rxanchor90_done:
# rx subrule "before" subtype=zerowidth negate=
- rx83_cur."!cursor_pos"(rx83_pos)
- .const 'Sub' $P90 = "25_1274022894.43745"
- capture_lex $P90
- $P10 = rx83_cur."before"($P90)
- unless $P10, rx83_fail
+ rx85_cur."!cursor_pos"(rx85_pos)
+ .const 'Sub' $P92 = "25_1275811487.95429"
+ capture_lex $P92
+ $P10 = rx85_cur."before"($P92)
+ unless $P10, rx85_fail
# rx subrule "pod_comment" subtype=method negate=
- rx83_cur."!cursor_pos"(rx83_pos)
- $P10 = rx83_cur."pod_comment"()
- unless $P10, rx83_fail
- rx83_pos = $P10."pos"()
- goto alt87_end
- alt87_1:
- set_addr $I10, alt87_2
- rx83_cur."!mark_push"(0, rx83_pos, $I10)
-.annotate 'line', 46
- # rx rxquantr96 ** 0..*
- set_addr $I97, rxquantr96_done
- rx83_cur."!mark_push"(0, rx83_pos, $I97)
- rxquantr96_loop:
- # rx enumcharlist negate=0
- ge rx83_pos, rx83_eos, rx83_fail
- sub $I10, rx83_pos, rx83_off
- substr $S10, rx83_tgt, $I10, 1
- index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx83_fail
- inc rx83_pos
- (rx83_rep) = rx83_cur."!mark_commit"($I97)
- rx83_cur."!mark_push"(rx83_rep, rx83_pos, $I97)
- goto rxquantr96_loop
- rxquantr96_done:
- # rx literal "#"
- add $I11, rx83_pos, 1
- gt $I11, rx83_eos, rx83_fail
- sub $I11, rx83_pos, rx83_off
- substr $S10, rx83_tgt, $I11, 1
- ne $S10, "#", rx83_fail
- add rx83_pos, 1
- # rx charclass_q N r 0..-1
- sub $I10, rx83_pos, rx83_off
- find_cclass $I11, 4096, rx83_tgt, $I10, rx83_eos
- add rx83_pos, rx83_off, $I11
- goto alt87_end
- alt87_2:
+ rx85_cur."!cursor_pos"(rx85_pos)
+ $P10 = rx85_cur."pod_comment"()
+ unless $P10, rx85_fail
+ rx85_pos = $P10."pos"()
+ goto alt89_end
+ alt89_1:
+ set_addr $I10, alt89_2
+ rx85_cur."!mark_push"(0, rx85_pos, $I10)
.annotate 'line', 47
- # rx rxquantr98 ** 1..*
+ # rx rxquantr98 ** 0..*
set_addr $I99, rxquantr98_done
- rx83_cur."!mark_push"(0, -1, $I99)
+ rx85_cur."!mark_push"(0, rx85_pos, $I99)
rxquantr98_loop:
# rx enumcharlist negate=0
- ge rx83_pos, rx83_eos, rx83_fail
- sub $I10, rx83_pos, rx83_off
- substr $S10, rx83_tgt, $I10, 1
+ ge rx85_pos, rx85_eos, rx85_fail
+ sub $I10, rx85_pos, rx85_off
+ substr $S10, rx85_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx83_fail
- inc rx83_pos
- (rx83_rep) = rx83_cur."!mark_commit"($I99)
- rx83_cur."!mark_push"(rx83_rep, rx83_pos, $I99)
+ lt $I11, 0, rx85_fail
+ inc rx85_pos
+ (rx85_rep) = rx85_cur."!mark_commit"($I99)
+ rx85_cur."!mark_push"(rx85_rep, rx85_pos, $I99)
goto rxquantr98_loop
rxquantr98_done:
- alt87_end:
-.annotate 'line', 42
+ # rx literal "#"
+ add $I11, rx85_pos, 1
+ gt $I11, rx85_eos, rx85_fail
+ sub $I11, rx85_pos, rx85_off
+ substr $S10, rx85_tgt, $I11, 1
+ ne $S10, "#", rx85_fail
+ add rx85_pos, 1
+ # rx charclass_q N r 0..-1
+ sub $I10, rx85_pos, rx85_off
+ find_cclass $I11, 4096, rx85_tgt, $I10, rx85_eos
+ add rx85_pos, rx85_off, $I11
+ goto alt89_end
+ alt89_2:
+.annotate 'line', 48
+ # rx rxquantr100 ** 1..*
+ set_addr $I101, rxquantr100_done
+ rx85_cur."!mark_push"(0, -1, $I101)
+ rxquantr100_loop:
+ # rx enumcharlist negate=0
+ ge rx85_pos, rx85_eos, rx85_fail
+ sub $I10, rx85_pos, rx85_off
+ substr $S10, rx85_tgt, $I10, 1
+ index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
+ lt $I11, 0, rx85_fail
+ inc rx85_pos
+ (rx85_rep) = rx85_cur."!mark_commit"($I101)
+ rx85_cur."!mark_push"(rx85_rep, rx85_pos, $I101)
+ goto rxquantr100_loop
+ rxquantr100_done:
+ alt89_end:
+.annotate 'line', 43
# rx pass
- rx83_cur."!cursor_pass"(rx83_pos, "unv")
- rx83_cur."!cursor_debug"("PASS ", "unv", " at pos=", rx83_pos)
- .return (rx83_cur)
- rx83_fail:
+ rx85_cur."!cursor_pass"(rx85_pos, "unv")
+ rx85_cur."!cursor_debug"("PASS ", "unv", " at pos=", rx85_pos)
+ .return (rx85_cur)
+ rx85_fail:
.annotate 'line', 4
- (rx83_rep, rx83_pos, $I10, $P10) = rx83_cur."!mark_fail"(0)
- lt rx83_pos, -1, rx83_done
- eq rx83_pos, -1, rx83_fail
+ (rx85_rep, rx85_pos, $I10, $P10) = rx85_cur."!mark_fail"(0)
+ lt rx85_pos, -1, rx85_done
+ eq rx85_pos, -1, rx85_fail
jump $I10
- rx83_done:
- rx83_cur."!cursor_fail"()
- rx83_cur."!cursor_debug"("FAIL ", "unv")
- .return (rx83_cur)
+ rx85_done:
+ rx85_cur."!cursor_fail"()
+ rx85_cur."!cursor_debug"("FAIL ", "unv")
+ .return (rx85_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__unv" :subid("24_1274022894.43745") :method
+.sub "!PREFIX__unv" :subid("24_1275811487.95429") :method
.annotate 'line', 4
- new $P85, "ResizablePMCArray"
- push $P85, ""
- push $P85, ""
- push $P85, ""
- .return ($P85)
+ new $P87, "ResizablePMCArray"
+ push $P87, ""
+ push $P87, ""
+ push $P87, ""
+ .return ($P87)
.end
.namespace ["NQP";"Grammar"]
-.sub "_block89" :anon :subid("25_1274022894.43745") :method :outer("23_1274022894.43745")
-.annotate 'line', 45
- .local string rx91_tgt
- .local int rx91_pos
- .local int rx91_off
- .local int rx91_eos
- .local int rx91_rep
- .local pmc rx91_cur
- (rx91_cur, rx91_pos, rx91_tgt) = self."!cursor_start"()
- rx91_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx91_cur
- .local pmc match
- .lex "$/", match
- length rx91_eos, rx91_tgt
- set rx91_off, 0
- lt rx91_pos, 2, rx91_start
- sub rx91_off, rx91_pos, 1
- substr rx91_tgt, rx91_tgt, rx91_off
- rx91_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan92_done
- goto rxscan92_scan
- rxscan92_loop:
- ($P10) = rx91_cur."from"()
- inc $P10
- set rx91_pos, $P10
- ge rx91_pos, rx91_eos, rxscan92_done
- rxscan92_scan:
- set_addr $I10, rxscan92_loop
- rx91_cur."!mark_push"(0, rx91_pos, $I10)
- rxscan92_done:
- # rx rxquantr93 ** 0..*
- set_addr $I94, rxquantr93_done
- rx91_cur."!mark_push"(0, rx91_pos, $I94)
- rxquantr93_loop:
+.sub "_block91" :anon :subid("25_1275811487.95429") :method :outer("23_1275811487.95429")
+.annotate 'line', 46
+ .local string rx93_tgt
+ .local int rx93_pos
+ .local int rx93_off
+ .local int rx93_eos
+ .local int rx93_rep
+ .local pmc rx93_cur
+ (rx93_cur, rx93_pos, rx93_tgt) = self."!cursor_start"()
+ rx93_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx93_cur
+ .local pmc match
+ .lex "$/", match
+ length rx93_eos, rx93_tgt
+ gt rx93_pos, rx93_eos, rx93_done
+ set rx93_off, 0
+ lt rx93_pos, 2, rx93_start
+ sub rx93_off, rx93_pos, 1
+ substr rx93_tgt, rx93_tgt, rx93_off
+ rx93_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan94_done
+ goto rxscan94_scan
+ rxscan94_loop:
+ ($P10) = rx93_cur."from"()
+ inc $P10
+ set rx93_pos, $P10
+ ge rx93_pos, rx93_eos, rxscan94_done
+ rxscan94_scan:
+ set_addr $I10, rxscan94_loop
+ rx93_cur."!mark_push"(0, rx93_pos, $I10)
+ rxscan94_done:
+ # rx rxquantr95 ** 0..*
+ set_addr $I96, rxquantr95_done
+ rx93_cur."!mark_push"(0, rx93_pos, $I96)
+ rxquantr95_loop:
# rx enumcharlist negate=0
- ge rx91_pos, rx91_eos, rx91_fail
- sub $I10, rx91_pos, rx91_off
- substr $S10, rx91_tgt, $I10, 1
+ ge rx93_pos, rx93_eos, rx93_fail
+ sub $I10, rx93_pos, rx93_off
+ substr $S10, rx93_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx91_fail
- inc rx91_pos
- (rx91_rep) = rx91_cur."!mark_commit"($I94)
- rx91_cur."!mark_push"(rx91_rep, rx91_pos, $I94)
- goto rxquantr93_loop
- rxquantr93_done:
+ lt $I11, 0, rx93_fail
+ inc rx93_pos
+ (rx93_rep) = rx93_cur."!mark_commit"($I96)
+ rx93_cur."!mark_push"(rx93_rep, rx93_pos, $I96)
+ goto rxquantr95_loop
+ rxquantr95_done:
# rx literal "="
- add $I11, rx91_pos, 1
- gt $I11, rx91_eos, rx91_fail
- sub $I11, rx91_pos, rx91_off
- substr $S10, rx91_tgt, $I11, 1
- ne $S10, "=", rx91_fail
- add rx91_pos, 1
- alt95_0:
- set_addr $I10, alt95_1
- rx91_cur."!mark_push"(0, rx91_pos, $I10)
+ add $I11, rx93_pos, 1
+ gt $I11, rx93_eos, rx93_fail
+ sub $I11, rx93_pos, rx93_off
+ substr $S10, rx93_tgt, $I11, 1
+ ne $S10, "=", rx93_fail
+ add rx93_pos, 1
+ alt97_0:
+ set_addr $I10, alt97_1
+ rx93_cur."!mark_push"(0, rx93_pos, $I10)
# rx charclass w
- ge rx91_pos, rx91_eos, rx91_fail
- sub $I10, rx91_pos, rx91_off
- is_cclass $I11, 8192, rx91_tgt, $I10
- unless $I11, rx91_fail
- inc rx91_pos
- goto alt95_end
- alt95_1:
+ ge rx93_pos, rx93_eos, rx93_fail
+ sub $I10, rx93_pos, rx93_off
+ is_cclass $I11, 8192, rx93_tgt, $I10
+ unless $I11, rx93_fail
+ inc rx93_pos
+ goto alt97_end
+ alt97_1:
# rx literal "\\"
- add $I11, rx91_pos, 1
- gt $I11, rx91_eos, rx91_fail
- sub $I11, rx91_pos, rx91_off
- substr $S10, rx91_tgt, $I11, 1
- ne $S10, "\\", rx91_fail
- add rx91_pos, 1
- alt95_end:
- # rx pass
- rx91_cur."!cursor_pass"(rx91_pos, "")
- rx91_cur."!cursor_debug"("PASS ", "", " at pos=", rx91_pos)
- .return (rx91_cur)
- rx91_fail:
- (rx91_rep, rx91_pos, $I10, $P10) = rx91_cur."!mark_fail"(0)
- lt rx91_pos, -1, rx91_done
- eq rx91_pos, -1, rx91_fail
- jump $I10
- rx91_done:
- rx91_cur."!cursor_fail"()
- rx91_cur."!cursor_debug"("FAIL ", "")
- .return (rx91_cur)
+ add $I11, rx93_pos, 1
+ gt $I11, rx93_eos, rx93_fail
+ sub $I11, rx93_pos, rx93_off
+ substr $S10, rx93_tgt, $I11, 1
+ ne $S10, "\\", rx93_fail
+ add rx93_pos, 1
+ alt97_end:
+ # rx pass
+ rx93_cur."!cursor_pass"(rx93_pos, "")
+ rx93_cur."!cursor_debug"("PASS ", "", " at pos=", rx93_pos)
+ .return (rx93_cur)
+ rx93_fail:
+ (rx93_rep, rx93_pos, $I10, $P10) = rx93_cur."!mark_fail"(0)
+ lt rx93_pos, -1, rx93_done
+ eq rx93_pos, -1, rx93_fail
+ jump $I10
+ rx93_done:
+ rx93_cur."!cursor_fail"()
+ rx93_cur."!cursor_debug"("FAIL ", "")
+ .return (rx93_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "pod_comment" :subid("26_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .const 'Sub' $P141 = "28_1274022894.43745"
- capture_lex $P141
- .local string rx101_tgt
- .local int rx101_pos
- .local int rx101_off
- .local int rx101_eos
- .local int rx101_rep
- .local pmc rx101_cur
- (rx101_cur, rx101_pos, rx101_tgt) = self."!cursor_start"()
- rx101_cur."!cursor_debug"("START ", "pod_comment")
- .lex unicode:"$\x{a2}", rx101_cur
- .local pmc match
- .lex "$/", match
- length rx101_eos, rx101_tgt
- set rx101_off, 0
- lt rx101_pos, 2, rx101_start
- sub rx101_off, rx101_pos, 1
- substr rx101_tgt, rx101_tgt, rx101_off
- rx101_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan104_done
- goto rxscan104_scan
- rxscan104_loop:
- ($P10) = rx101_cur."from"()
- inc $P10
- set rx101_pos, $P10
- ge rx101_pos, rx101_eos, rxscan104_done
- rxscan104_scan:
- set_addr $I10, rxscan104_loop
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
- rxscan104_done:
-.annotate 'line', 52
+.sub "pod_comment" :subid("26_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .const 'Sub' $P143 = "28_1275811487.95429"
+ capture_lex $P143
+ .local string rx103_tgt
+ .local int rx103_pos
+ .local int rx103_off
+ .local int rx103_eos
+ .local int rx103_rep
+ .local pmc rx103_cur
+ (rx103_cur, rx103_pos, rx103_tgt) = self."!cursor_start"()
+ rx103_cur."!cursor_debug"("START ", "pod_comment")
+ .lex unicode:"$\x{a2}", rx103_cur
+ .local pmc match
+ .lex "$/", match
+ length rx103_eos, rx103_tgt
+ gt rx103_pos, rx103_eos, rx103_done
+ set rx103_off, 0
+ lt rx103_pos, 2, rx103_start
+ sub rx103_off, rx103_pos, 1
+ substr rx103_tgt, rx103_tgt, rx103_off
+ rx103_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan106_done
+ goto rxscan106_scan
+ rxscan106_loop:
+ ($P10) = rx103_cur."from"()
+ inc $P10
+ set rx103_pos, $P10
+ ge rx103_pos, rx103_eos, rxscan106_done
+ rxscan106_scan:
+ set_addr $I10, rxscan106_loop
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ rxscan106_done:
+.annotate 'line', 53
# rxanchor bol
- eq rx101_pos, 0, rxanchor105_done
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
+ eq rx103_pos, 0, rxanchor107_done
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
dec $I10
- is_cclass $I11, 4096, rx101_tgt, $I10
- unless $I11, rx101_fail
- rxanchor105_done:
- # rx rxquantr106 ** 0..*
- set_addr $I107, rxquantr106_done
- rx101_cur."!mark_push"(0, rx101_pos, $I107)
- rxquantr106_loop:
+ is_cclass $I11, 4096, rx103_tgt, $I10
+ unless $I11, rx103_fail
+ rxanchor107_done:
+ # rx rxquantr108 ** 0..*
+ set_addr $I109, rxquantr108_done
+ rx103_cur."!mark_push"(0, rx103_pos, $I109)
+ rxquantr108_loop:
# rx enumcharlist negate=0
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I10, 1
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx101_fail
- inc rx101_pos
- (rx101_rep) = rx101_cur."!mark_commit"($I107)
- rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I107)
- goto rxquantr106_loop
- rxquantr106_done:
+ lt $I11, 0, rx103_fail
+ inc rx103_pos
+ (rx103_rep) = rx103_cur."!mark_commit"($I109)
+ rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I109)
+ goto rxquantr108_loop
+ rxquantr108_done:
# rx literal "="
- add $I11, rx101_pos, 1
- gt $I11, rx101_eos, rx101_fail
- sub $I11, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I11, 1
- ne $S10, "=", rx101_fail
- add rx101_pos, 1
- alt108_0:
-.annotate 'line', 53
- set_addr $I10, alt108_1
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
+ add $I11, rx103_pos, 1
+ gt $I11, rx103_eos, rx103_fail
+ sub $I11, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I11, 1
+ ne $S10, "=", rx103_fail
+ add rx103_pos, 1
+ alt110_0:
.annotate 'line', 54
+ set_addr $I10, alt110_1
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+.annotate 'line', 55
# rx literal "begin"
- add $I11, rx101_pos, 5
- gt $I11, rx101_eos, rx101_fail
- sub $I11, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I11, 5
- ne $S10, "begin", rx101_fail
- add rx101_pos, 5
- # rx rxquantr109 ** 1..*
- set_addr $I110, rxquantr109_done
- rx101_cur."!mark_push"(0, -1, $I110)
- rxquantr109_loop:
+ add $I11, rx103_pos, 5
+ gt $I11, rx103_eos, rx103_fail
+ sub $I11, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I11, 5
+ ne $S10, "begin", rx103_fail
+ add rx103_pos, 5
+ # rx rxquantr111 ** 1..*
+ set_addr $I112, rxquantr111_done
+ rx103_cur."!mark_push"(0, -1, $I112)
+ rxquantr111_loop:
# rx enumcharlist negate=0
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I10, 1
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx101_fail
- inc rx101_pos
- (rx101_rep) = rx101_cur."!mark_commit"($I110)
- rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I110)
- goto rxquantr109_loop
- rxquantr109_done:
+ lt $I11, 0, rx103_fail
+ inc rx103_pos
+ (rx103_rep) = rx103_cur."!mark_commit"($I112)
+ rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I112)
+ goto rxquantr111_loop
+ rxquantr111_done:
# rx literal "END"
- add $I11, rx101_pos, 3
- gt $I11, rx101_eos, rx101_fail
- sub $I11, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I11, 3
- ne $S10, "END", rx101_fail
- add rx101_pos, 3
+ add $I11, rx103_pos, 3
+ gt $I11, rx103_eos, rx103_fail
+ sub $I11, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I11, 3
+ ne $S10, "END", rx103_fail
+ add rx103_pos, 3
# rxanchor rwb
- le rx101_pos, 0, rx101_fail
- sub $I10, rx101_pos, rx101_off
- is_cclass $I11, 8192, rx101_tgt, $I10
- if $I11, rx101_fail
+ le rx103_pos, 0, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ is_cclass $I11, 8192, rx103_tgt, $I10
+ if $I11, rx103_fail
dec $I10
- is_cclass $I11, 8192, rx101_tgt, $I10
- unless $I11, rx101_fail
- alt111_0:
-.annotate 'line', 55
- set_addr $I10, alt111_1
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
- # rx rxquantf112 ** 0..*
- set_addr $I10, rxquantf112_loop
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
- goto rxquantf112_done
- rxquantf112_loop:
+ is_cclass $I11, 8192, rx103_tgt, $I10
+ unless $I11, rx103_fail
+ alt113_0:
+.annotate 'line', 56
+ set_addr $I10, alt113_1
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ # rx rxquantf114 ** 0..*
+ set_addr $I10, rxquantf114_loop
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ goto rxquantf114_done
+ rxquantf114_loop:
# rx charclass .
- ge rx101_pos, rx101_eos, rx101_fail
- inc rx101_pos
- set_addr $I10, rxquantf112_loop
- rx101_cur."!mark_push"($I113, rx101_pos, $I10)
- rxquantf112_done:
+ ge rx103_pos, rx103_eos, rx103_fail
+ inc rx103_pos
+ set_addr $I10, rxquantf114_loop
+ rx103_cur."!mark_push"($I115, rx103_pos, $I10)
+ rxquantf114_done:
# rx charclass nl
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- is_cclass $I11, 4096, rx101_tgt, $I10
- unless $I11, rx101_fail
- substr $S10, rx101_tgt, $I10, 2
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ is_cclass $I11, 4096, rx103_tgt, $I10
+ unless $I11, rx103_fail
+ substr $S10, rx103_tgt, $I10, 2
iseq $I11, $S10, "\r\n"
- add rx101_pos, $I11
- inc rx101_pos
- # rx rxquantr114 ** 0..*
- set_addr $I115, rxquantr114_done
- rx101_cur."!mark_push"(0, rx101_pos, $I115)
- rxquantr114_loop:
- # rx enumcharlist negate=0
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I10, 1
- index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx101_fail
- inc rx101_pos
- (rx101_rep) = rx101_cur."!mark_commit"($I115)
- rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I115)
- goto rxquantr114_loop
- rxquantr114_done:
- # rx literal "=end"
- add $I11, rx101_pos, 4
- gt $I11, rx101_eos, rx101_fail
- sub $I11, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I11, 4
- ne $S10, "=end", rx101_fail
- add rx101_pos, 4
- # rx rxquantr116 ** 1..*
+ add rx103_pos, $I11
+ inc rx103_pos
+ # rx rxquantr116 ** 0..*
set_addr $I117, rxquantr116_done
- rx101_cur."!mark_push"(0, -1, $I117)
+ rx103_cur."!mark_push"(0, rx103_pos, $I117)
rxquantr116_loop:
# rx enumcharlist negate=0
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I10, 1
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx101_fail
- inc rx101_pos
- (rx101_rep) = rx101_cur."!mark_commit"($I117)
- rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I117)
+ lt $I11, 0, rx103_fail
+ inc rx103_pos
+ (rx103_rep) = rx103_cur."!mark_commit"($I117)
+ rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I117)
goto rxquantr116_loop
rxquantr116_done:
+ # rx literal "=end"
+ add $I11, rx103_pos, 4
+ gt $I11, rx103_eos, rx103_fail
+ sub $I11, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I11, 4
+ ne $S10, "=end", rx103_fail
+ add rx103_pos, 4
+ # rx rxquantr118 ** 1..*
+ set_addr $I119, rxquantr118_done
+ rx103_cur."!mark_push"(0, -1, $I119)
+ rxquantr118_loop:
+ # rx enumcharlist negate=0
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I10, 1
+ index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
+ lt $I11, 0, rx103_fail
+ inc rx103_pos
+ (rx103_rep) = rx103_cur."!mark_commit"($I119)
+ rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I119)
+ goto rxquantr118_loop
+ rxquantr118_done:
# rx literal "END"
- add $I11, rx101_pos, 3
- gt $I11, rx101_eos, rx101_fail
- sub $I11, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I11, 3
- ne $S10, "END", rx101_fail
- add rx101_pos, 3
+ add $I11, rx103_pos, 3
+ gt $I11, rx103_eos, rx103_fail
+ sub $I11, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I11, 3
+ ne $S10, "END", rx103_fail
+ add rx103_pos, 3
# rxanchor rwb
- le rx101_pos, 0, rx101_fail
- sub $I10, rx101_pos, rx101_off
- is_cclass $I11, 8192, rx101_tgt, $I10
- if $I11, rx101_fail
+ le rx103_pos, 0, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ is_cclass $I11, 8192, rx103_tgt, $I10
+ if $I11, rx103_fail
dec $I10
- is_cclass $I11, 8192, rx101_tgt, $I10
- unless $I11, rx101_fail
+ is_cclass $I11, 8192, rx103_tgt, $I10
+ unless $I11, rx103_fail
# rx charclass_q N r 0..-1
- sub $I10, rx101_pos, rx101_off
- find_cclass $I11, 4096, rx101_tgt, $I10, rx101_eos
- add rx101_pos, rx101_off, $I11
- goto alt111_end
- alt111_1:
+ sub $I10, rx103_pos, rx103_off
+ find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
+ add rx103_pos, rx103_off, $I11
+ goto alt113_end
+ alt113_1:
# rx charclass_q . r 0..-1
- sub $I10, rx101_pos, rx101_off
- find_not_cclass $I11, 65535, rx101_tgt, $I10, rx101_eos
- add rx101_pos, rx101_off, $I11
- alt111_end:
-.annotate 'line', 54
- goto alt108_end
- alt108_1:
- set_addr $I10, alt108_2
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
-.annotate 'line', 56
+ sub $I10, rx103_pos, rx103_off
+ find_not_cclass $I11, 65535, rx103_tgt, $I10, rx103_eos
+ add rx103_pos, rx103_off, $I11
+ alt113_end:
+.annotate 'line', 55
+ goto alt110_end
+ alt110_1:
+ set_addr $I10, alt110_2
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+.annotate 'line', 57
# rx literal "begin"
- add $I11, rx101_pos, 5
- gt $I11, rx101_eos, rx101_fail
- sub $I11, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I11, 5
- ne $S10, "begin", rx101_fail
- add rx101_pos, 5
- # rx rxquantr118 ** 1..*
- set_addr $I119, rxquantr118_done
- rx101_cur."!mark_push"(0, -1, $I119)
- rxquantr118_loop:
+ add $I11, rx103_pos, 5
+ gt $I11, rx103_eos, rx103_fail
+ sub $I11, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I11, 5
+ ne $S10, "begin", rx103_fail
+ add rx103_pos, 5
+ # rx rxquantr120 ** 1..*
+ set_addr $I121, rxquantr120_done
+ rx103_cur."!mark_push"(0, -1, $I121)
+ rxquantr120_loop:
# rx enumcharlist negate=0
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I10, 1
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx101_fail
- inc rx101_pos
- (rx101_rep) = rx101_cur."!mark_commit"($I119)
- rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I119)
- goto rxquantr118_loop
- rxquantr118_done:
+ lt $I11, 0, rx103_fail
+ inc rx103_pos
+ (rx103_rep) = rx103_cur."!mark_commit"($I121)
+ rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I121)
+ goto rxquantr120_loop
+ rxquantr120_done:
# rx subrule "identifier" subtype=capture negate=
- rx101_cur."!cursor_pos"(rx101_pos)
- $P10 = rx101_cur."identifier"()
- unless $P10, rx101_fail
- rx101_cur."!mark_push"(0, -1, 0, $P10)
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."identifier"()
+ unless $P10, rx103_fail
+ rx103_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx101_pos = $P10."pos"()
- alt120_0:
-.annotate 'line', 57
- set_addr $I10, alt120_1
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
+ rx103_pos = $P10."pos"()
+ alt122_0:
.annotate 'line', 58
- # rx rxquantf121 ** 0..*
- set_addr $I10, rxquantf121_loop
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
- goto rxquantf121_done
- rxquantf121_loop:
+ set_addr $I10, alt122_1
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+.annotate 'line', 59
+ # rx rxquantf123 ** 0..*
+ set_addr $I10, rxquantf123_loop
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ goto rxquantf123_done
+ rxquantf123_loop:
# rx charclass .
- ge rx101_pos, rx101_eos, rx101_fail
- inc rx101_pos
- set_addr $I10, rxquantf121_loop
- rx101_cur."!mark_push"($I122, rx101_pos, $I10)
- rxquantf121_done:
+ ge rx103_pos, rx103_eos, rx103_fail
+ inc rx103_pos
+ set_addr $I10, rxquantf123_loop
+ rx103_cur."!mark_push"($I124, rx103_pos, $I10)
+ rxquantf123_done:
# rx charclass nl
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- is_cclass $I11, 4096, rx101_tgt, $I10
- unless $I11, rx101_fail
- substr $S10, rx101_tgt, $I10, 2
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ is_cclass $I11, 4096, rx103_tgt, $I10
+ unless $I11, rx103_fail
+ substr $S10, rx103_tgt, $I10, 2
iseq $I11, $S10, "\r\n"
- add rx101_pos, $I11
- inc rx101_pos
- # rx rxquantr123 ** 0..*
- set_addr $I124, rxquantr123_done
- rx101_cur."!mark_push"(0, rx101_pos, $I124)
- rxquantr123_loop:
- # rx enumcharlist negate=0
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I10, 1
- index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx101_fail
- inc rx101_pos
- (rx101_rep) = rx101_cur."!mark_commit"($I124)
- rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I124)
- goto rxquantr123_loop
- rxquantr123_done:
- # rx literal "=end"
- add $I11, rx101_pos, 4
- gt $I11, rx101_eos, rx101_fail
- sub $I11, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I11, 4
- ne $S10, "=end", rx101_fail
- add rx101_pos, 4
- # rx rxquantr125 ** 1..*
+ add rx103_pos, $I11
+ inc rx103_pos
+ # rx rxquantr125 ** 0..*
set_addr $I126, rxquantr125_done
- rx101_cur."!mark_push"(0, -1, $I126)
+ rx103_cur."!mark_push"(0, rx103_pos, $I126)
rxquantr125_loop:
# rx enumcharlist negate=0
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I10, 1
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx101_fail
- inc rx101_pos
- (rx101_rep) = rx101_cur."!mark_commit"($I126)
- rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I126)
+ lt $I11, 0, rx103_fail
+ inc rx103_pos
+ (rx103_rep) = rx103_cur."!mark_commit"($I126)
+ rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I126)
goto rxquantr125_loop
rxquantr125_done:
+ # rx literal "=end"
+ add $I11, rx103_pos, 4
+ gt $I11, rx103_eos, rx103_fail
+ sub $I11, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I11, 4
+ ne $S10, "=end", rx103_fail
+ add rx103_pos, 4
+ # rx rxquantr127 ** 1..*
+ set_addr $I128, rxquantr127_done
+ rx103_cur."!mark_push"(0, -1, $I128)
+ rxquantr127_loop:
+ # rx enumcharlist negate=0
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I10, 1
+ index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
+ lt $I11, 0, rx103_fail
+ inc rx103_pos
+ (rx103_rep) = rx103_cur."!mark_commit"($I128)
+ rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I128)
+ goto rxquantr127_loop
+ rxquantr127_done:
# rx subrule "!BACKREF" subtype=method negate=
- rx101_cur."!cursor_pos"(rx101_pos)
- $P10 = rx101_cur."!BACKREF"("identifier")
- unless $P10, rx101_fail
- rx101_pos = $P10."pos"()
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."!BACKREF"("identifier")
+ unless $P10, rx103_fail
+ rx103_pos = $P10."pos"()
# rxanchor rwb
- le rx101_pos, 0, rx101_fail
- sub $I10, rx101_pos, rx101_off
- is_cclass $I11, 8192, rx101_tgt, $I10
- if $I11, rx101_fail
+ le rx103_pos, 0, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ is_cclass $I11, 8192, rx103_tgt, $I10
+ if $I11, rx103_fail
dec $I10
- is_cclass $I11, 8192, rx101_tgt, $I10
- unless $I11, rx101_fail
+ is_cclass $I11, 8192, rx103_tgt, $I10
+ unless $I11, rx103_fail
# rx charclass_q N r 0..-1
- sub $I10, rx101_pos, rx101_off
- find_cclass $I11, 4096, rx101_tgt, $I10, rx101_eos
- add rx101_pos, rx101_off, $I11
- goto alt120_end
- alt120_1:
-.annotate 'line', 59
+ sub $I10, rx103_pos, rx103_off
+ find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
+ add rx103_pos, rx103_off, $I11
+ goto alt122_end
+ alt122_1:
+.annotate 'line', 60
# rx subrule "panic" subtype=method negate=
- rx101_cur."!cursor_pos"(rx101_pos)
- $P10 = rx101_cur."panic"("=begin without matching =end")
- unless $P10, rx101_fail
- rx101_pos = $P10."pos"()
- alt120_end:
-.annotate 'line', 56
- goto alt108_end
- alt108_2:
- set_addr $I10, alt108_3
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
-.annotate 'line', 61
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."panic"("=begin without matching =end")
+ unless $P10, rx103_fail
+ rx103_pos = $P10."pos"()
+ alt122_end:
+.annotate 'line', 57
+ goto alt110_end
+ alt110_2:
+ set_addr $I10, alt110_3
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+.annotate 'line', 62
# rx literal "begin"
- add $I11, rx101_pos, 5
- gt $I11, rx101_eos, rx101_fail
- sub $I11, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I11, 5
- ne $S10, "begin", rx101_fail
- add rx101_pos, 5
+ add $I11, rx103_pos, 5
+ gt $I11, rx103_eos, rx103_fail
+ sub $I11, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I11, 5
+ ne $S10, "begin", rx103_fail
+ add rx103_pos, 5
# rxanchor rwb
- le rx101_pos, 0, rx101_fail
- sub $I10, rx101_pos, rx101_off
- is_cclass $I11, 8192, rx101_tgt, $I10
- if $I11, rx101_fail
+ le rx103_pos, 0, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ is_cclass $I11, 8192, rx103_tgt, $I10
+ if $I11, rx103_fail
dec $I10
- is_cclass $I11, 8192, rx101_tgt, $I10
- unless $I11, rx101_fail
- # rx rxquantr128 ** 0..*
- set_addr $I129, rxquantr128_done
- rx101_cur."!mark_push"(0, rx101_pos, $I129)
- rxquantr128_loop:
+ is_cclass $I11, 8192, rx103_tgt, $I10
+ unless $I11, rx103_fail
+ # rx rxquantr130 ** 0..*
+ set_addr $I131, rxquantr130_done
+ rx103_cur."!mark_push"(0, rx103_pos, $I131)
+ rxquantr130_loop:
# rx enumcharlist negate=0
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I10, 1
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx101_fail
- inc rx101_pos
- (rx101_rep) = rx101_cur."!mark_commit"($I129)
- rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I129)
- goto rxquantr128_loop
- rxquantr128_done:
- alt130_0:
-.annotate 'line', 62
- set_addr $I10, alt130_1
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
+ lt $I11, 0, rx103_fail
+ inc rx103_pos
+ (rx103_rep) = rx103_cur."!mark_commit"($I131)
+ rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I131)
+ goto rxquantr130_loop
+ rxquantr130_done:
+ alt132_0:
+.annotate 'line', 63
+ set_addr $I10, alt132_1
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
# rxanchor eol
- sub $I10, rx101_pos, rx101_off
- is_cclass $I11, 4096, rx101_tgt, $I10
- if $I11, rxanchor131_done
- ne rx101_pos, rx101_eos, rx101_fail
- eq rx101_pos, 0, rxanchor131_done
+ sub $I10, rx103_pos, rx103_off
+ is_cclass $I11, 4096, rx103_tgt, $I10
+ if $I11, rxanchor133_done
+ ne rx103_pos, rx103_eos, rx103_fail
+ eq rx103_pos, 0, rxanchor133_done
dec $I10
- is_cclass $I11, 4096, rx101_tgt, $I10
- if $I11, rx101_fail
- rxanchor131_done:
- goto alt130_end
- alt130_1:
- set_addr $I10, alt130_2
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
+ is_cclass $I11, 4096, rx103_tgt, $I10
+ if $I11, rx103_fail
+ rxanchor133_done:
+ goto alt132_end
+ alt132_1:
+ set_addr $I10, alt132_2
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
# rx literal "#"
- add $I11, rx101_pos, 1
- gt $I11, rx101_eos, rx101_fail
- sub $I11, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I11, 1
- ne $S10, "#", rx101_fail
- add rx101_pos, 1
- goto alt130_end
- alt130_2:
+ add $I11, rx103_pos, 1
+ gt $I11, rx103_eos, rx103_fail
+ sub $I11, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I11, 1
+ ne $S10, "#", rx103_fail
+ add rx103_pos, 1
+ goto alt132_end
+ alt132_2:
# rx subrule "panic" subtype=method negate=
- rx101_cur."!cursor_pos"(rx101_pos)
- $P10 = rx101_cur."panic"("Unrecognized token after =begin")
- unless $P10, rx101_fail
- rx101_pos = $P10."pos"()
- alt130_end:
- alt132_0:
-.annotate 'line', 63
- set_addr $I10, alt132_1
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."panic"("Unrecognized token after =begin")
+ unless $P10, rx103_fail
+ rx103_pos = $P10."pos"()
+ alt132_end:
+ alt134_0:
.annotate 'line', 64
- # rx rxquantf133 ** 0..*
- set_addr $I10, rxquantf133_loop
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
- goto rxquantf133_done
- rxquantf133_loop:
+ set_addr $I10, alt134_1
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+.annotate 'line', 65
+ # rx rxquantf135 ** 0..*
+ set_addr $I10, rxquantf135_loop
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ goto rxquantf135_done
+ rxquantf135_loop:
# rx charclass .
- ge rx101_pos, rx101_eos, rx101_fail
- inc rx101_pos
- set_addr $I10, rxquantf133_loop
- rx101_cur."!mark_push"($I134, rx101_pos, $I10)
- rxquantf133_done:
+ ge rx103_pos, rx103_eos, rx103_fail
+ inc rx103_pos
+ set_addr $I10, rxquantf135_loop
+ rx103_cur."!mark_push"($I136, rx103_pos, $I10)
+ rxquantf135_done:
# rx charclass nl
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- is_cclass $I11, 4096, rx101_tgt, $I10
- unless $I11, rx101_fail
- substr $S10, rx101_tgt, $I10, 2
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ is_cclass $I11, 4096, rx103_tgt, $I10
+ unless $I11, rx103_fail
+ substr $S10, rx103_tgt, $I10, 2
iseq $I11, $S10, "\r\n"
- add rx101_pos, $I11
- inc rx101_pos
- # rx rxquantr135 ** 0..*
- set_addr $I136, rxquantr135_done
- rx101_cur."!mark_push"(0, rx101_pos, $I136)
- rxquantr135_loop:
+ add rx103_pos, $I11
+ inc rx103_pos
+ # rx rxquantr137 ** 0..*
+ set_addr $I138, rxquantr137_done
+ rx103_cur."!mark_push"(0, rx103_pos, $I138)
+ rxquantr137_loop:
# rx enumcharlist negate=0
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I10, 1
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx101_fail
- inc rx101_pos
- (rx101_rep) = rx101_cur."!mark_commit"($I136)
- rx101_cur."!mark_push"(rx101_rep, rx101_pos, $I136)
- goto rxquantr135_loop
- rxquantr135_done:
+ lt $I11, 0, rx103_fail
+ inc rx103_pos
+ (rx103_rep) = rx103_cur."!mark_commit"($I138)
+ rx103_cur."!mark_push"(rx103_rep, rx103_pos, $I138)
+ goto rxquantr137_loop
+ rxquantr137_done:
# rx literal "=end"
- add $I11, rx101_pos, 4
- gt $I11, rx101_eos, rx101_fail
- sub $I11, rx101_pos, rx101_off
- substr $S10, rx101_tgt, $I11, 4
- ne $S10, "=end", rx101_fail
- add rx101_pos, 4
+ add $I11, rx103_pos, 4
+ gt $I11, rx103_eos, rx103_fail
+ sub $I11, rx103_pos, rx103_off
+ substr $S10, rx103_tgt, $I11, 4
+ ne $S10, "=end", rx103_fail
+ add rx103_pos, 4
# rxanchor rwb
- le rx101_pos, 0, rx101_fail
- sub $I10, rx101_pos, rx101_off
- is_cclass $I11, 8192, rx101_tgt, $I10
- if $I11, rx101_fail
+ le rx103_pos, 0, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ is_cclass $I11, 8192, rx103_tgt, $I10
+ if $I11, rx103_fail
dec $I10
- is_cclass $I11, 8192, rx101_tgt, $I10
- unless $I11, rx101_fail
+ is_cclass $I11, 8192, rx103_tgt, $I10
+ unless $I11, rx103_fail
# rx charclass_q N r 0..-1
- sub $I10, rx101_pos, rx101_off
- find_cclass $I11, 4096, rx101_tgt, $I10, rx101_eos
- add rx101_pos, rx101_off, $I11
- goto alt132_end
- alt132_1:
-.annotate 'line', 65
+ sub $I10, rx103_pos, rx103_off
+ find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
+ add rx103_pos, rx103_off, $I11
+ goto alt134_end
+ alt134_1:
+.annotate 'line', 66
# rx subrule "panic" subtype=method negate=
- rx101_cur."!cursor_pos"(rx101_pos)
- $P10 = rx101_cur."panic"("=begin without matching =end")
- unless $P10, rx101_fail
- rx101_pos = $P10."pos"()
- alt132_end:
-.annotate 'line', 61
- goto alt108_end
- alt108_3:
- set_addr $I10, alt108_4
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
-.annotate 'line', 67
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."panic"("=begin without matching =end")
+ unless $P10, rx103_fail
+ rx103_pos = $P10."pos"()
+ alt134_end:
+.annotate 'line', 62
+ goto alt110_end
+ alt110_3:
+ set_addr $I10, alt110_4
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+.annotate 'line', 68
# rx subrule "identifier" subtype=capture negate=
- rx101_cur."!cursor_pos"(rx101_pos)
- $P10 = rx101_cur."identifier"()
- unless $P10, rx101_fail
- rx101_cur."!mark_push"(0, -1, 0, $P10)
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."identifier"()
+ unless $P10, rx103_fail
+ rx103_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx101_pos = $P10."pos"()
-.annotate 'line', 68
- # rx rxquantf137 ** 0..*
- set_addr $I10, rxquantf137_loop
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
- goto rxquantf137_done
- rxquantf137_loop:
+ rx103_pos = $P10."pos"()
+.annotate 'line', 69
+ # rx rxquantf139 ** 0..*
+ set_addr $I10, rxquantf139_loop
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ goto rxquantf139_done
+ rxquantf139_loop:
# rx charclass .
- ge rx101_pos, rx101_eos, rx101_fail
- inc rx101_pos
- set_addr $I10, rxquantf137_loop
- rx101_cur."!mark_push"($I138, rx101_pos, $I10)
- rxquantf137_done:
+ ge rx103_pos, rx103_eos, rx103_fail
+ inc rx103_pos
+ set_addr $I10, rxquantf139_loop
+ rx103_cur."!mark_push"($I140, rx103_pos, $I10)
+ rxquantf139_done:
# rxanchor bol
- eq rx101_pos, 0, rxanchor139_done
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
+ eq rx103_pos, 0, rxanchor141_done
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
dec $I10
- is_cclass $I11, 4096, rx101_tgt, $I10
- unless $I11, rx101_fail
- rxanchor139_done:
+ is_cclass $I11, 4096, rx103_tgt, $I10
+ unless $I11, rx103_fail
+ rxanchor141_done:
# rx subrule "before" subtype=zerowidth negate=
- rx101_cur."!cursor_pos"(rx101_pos)
- .const 'Sub' $P141 = "28_1274022894.43745"
- capture_lex $P141
- $P10 = rx101_cur."before"($P141)
- unless $P10, rx101_fail
-.annotate 'line', 67
- goto alt108_end
- alt108_4:
- alt149_0:
-.annotate 'line', 74
- set_addr $I10, alt149_1
- rx101_cur."!mark_push"(0, rx101_pos, $I10)
+ rx103_cur."!cursor_pos"(rx103_pos)
+ .const 'Sub' $P143 = "28_1275811487.95429"
+ capture_lex $P143
+ $P10 = rx103_cur."before"($P143)
+ unless $P10, rx103_fail
+.annotate 'line', 68
+ goto alt110_end
+ alt110_4:
+ alt151_0:
+.annotate 'line', 75
+ set_addr $I10, alt151_1
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
# rx charclass s
- ge rx101_pos, rx101_eos, rx101_fail
- sub $I10, rx101_pos, rx101_off
- is_cclass $I11, 32, rx101_tgt, $I10
- unless $I11, rx101_fail
- inc rx101_pos
- goto alt149_end
- alt149_1:
+ ge rx103_pos, rx103_eos, rx103_fail
+ sub $I10, rx103_pos, rx103_off
+ is_cclass $I11, 32, rx103_tgt, $I10
+ unless $I11, rx103_fail
+ inc rx103_pos
+ goto alt151_end
+ alt151_1:
# rx subrule "panic" subtype=method negate=
- rx101_cur."!cursor_pos"(rx101_pos)
- $P10 = rx101_cur."panic"("Illegal pod directive")
- unless $P10, rx101_fail
- rx101_pos = $P10."pos"()
- alt149_end:
-.annotate 'line', 75
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."panic"("Illegal pod directive")
+ unless $P10, rx103_fail
+ rx103_pos = $P10."pos"()
+ alt151_end:
+.annotate 'line', 76
# rx charclass_q N r 0..-1
- sub $I10, rx101_pos, rx101_off
- find_cclass $I11, 4096, rx101_tgt, $I10, rx101_eos
- add rx101_pos, rx101_off, $I11
- alt108_end:
-.annotate 'line', 51
+ sub $I10, rx103_pos, rx103_off
+ find_cclass $I11, 4096, rx103_tgt, $I10, rx103_eos
+ add rx103_pos, rx103_off, $I11
+ alt110_end:
+.annotate 'line', 52
# rx pass
- rx101_cur."!cursor_pass"(rx101_pos, "pod_comment")
- rx101_cur."!cursor_debug"("PASS ", "pod_comment", " at pos=", rx101_pos)
- .return (rx101_cur)
- rx101_fail:
+ rx103_cur."!cursor_pass"(rx103_pos, "pod_comment")
+ rx103_cur."!cursor_debug"("PASS ", "pod_comment", " at pos=", rx103_pos)
+ .return (rx103_cur)
+ rx103_fail:
.annotate 'line', 4
- (rx101_rep, rx101_pos, $I10, $P10) = rx101_cur."!mark_fail"(0)
- lt rx101_pos, -1, rx101_done
- eq rx101_pos, -1, rx101_fail
+ (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
+ lt rx103_pos, -1, rx103_done
+ eq rx103_pos, -1, rx103_fail
jump $I10
- rx101_done:
- rx101_cur."!cursor_fail"()
- rx101_cur."!cursor_debug"("FAIL ", "pod_comment")
- .return (rx101_cur)
+ rx103_done:
+ rx103_cur."!cursor_fail"()
+ rx103_cur."!cursor_debug"("FAIL ", "pod_comment")
+ .return (rx103_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pod_comment" :subid("27_1274022894.43745") :method
+.sub "!PREFIX__pod_comment" :subid("27_1275811487.95429") :method
.annotate 'line', 4
- new $P103, "ResizablePMCArray"
- push $P103, ""
- .return ($P103)
+ new $P105, "ResizablePMCArray"
+ push $P105, ""
+ .return ($P105)
.end
.namespace ["NQP";"Grammar"]
-.sub "_block140" :anon :subid("28_1274022894.43745") :method :outer("26_1274022894.43745")
-.annotate 'line', 68
- .local string rx142_tgt
- .local int rx142_pos
- .local int rx142_off
- .local int rx142_eos
- .local int rx142_rep
- .local pmc rx142_cur
- (rx142_cur, rx142_pos, rx142_tgt) = self."!cursor_start"()
- rx142_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx142_cur
- .local pmc match
- .lex "$/", match
- length rx142_eos, rx142_tgt
- set rx142_off, 0
- lt rx142_pos, 2, rx142_start
- sub rx142_off, rx142_pos, 1
- substr rx142_tgt, rx142_tgt, rx142_off
- rx142_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan143_done
- goto rxscan143_scan
- rxscan143_loop:
- ($P10) = rx142_cur."from"()
- inc $P10
- set rx142_pos, $P10
- ge rx142_pos, rx142_eos, rxscan143_done
- rxscan143_scan:
- set_addr $I10, rxscan143_loop
- rx142_cur."!mark_push"(0, rx142_pos, $I10)
- rxscan143_done:
- # rx rxquantr144 ** 0..*
- set_addr $I145, rxquantr144_done
- rx142_cur."!mark_push"(0, rx142_pos, $I145)
- rxquantr144_loop:
+.sub "_block142" :anon :subid("28_1275811487.95429") :method :outer("26_1275811487.95429")
+.annotate 'line', 69
+ .local string rx144_tgt
+ .local int rx144_pos
+ .local int rx144_off
+ .local int rx144_eos
+ .local int rx144_rep
+ .local pmc rx144_cur
+ (rx144_cur, rx144_pos, rx144_tgt) = self."!cursor_start"()
+ rx144_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx144_cur
+ .local pmc match
+ .lex "$/", match
+ length rx144_eos, rx144_tgt
+ gt rx144_pos, rx144_eos, rx144_done
+ set rx144_off, 0
+ lt rx144_pos, 2, rx144_start
+ sub rx144_off, rx144_pos, 1
+ substr rx144_tgt, rx144_tgt, rx144_off
+ rx144_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan145_done
+ goto rxscan145_scan
+ rxscan145_loop:
+ ($P10) = rx144_cur."from"()
+ inc $P10
+ set rx144_pos, $P10
+ ge rx144_pos, rx144_eos, rxscan145_done
+ rxscan145_scan:
+ set_addr $I10, rxscan145_loop
+ rx144_cur."!mark_push"(0, rx144_pos, $I10)
+ rxscan145_done:
+ # rx rxquantr146 ** 0..*
+ set_addr $I147, rxquantr146_done
+ rx144_cur."!mark_push"(0, rx144_pos, $I147)
+ rxquantr146_loop:
# rx enumcharlist negate=0
- ge rx142_pos, rx142_eos, rx142_fail
- sub $I10, rx142_pos, rx142_off
- substr $S10, rx142_tgt, $I10, 1
+ ge rx144_pos, rx144_eos, rx144_fail
+ sub $I10, rx144_pos, rx144_off
+ substr $S10, rx144_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx142_fail
- inc rx142_pos
- (rx142_rep) = rx142_cur."!mark_commit"($I145)
- rx142_cur."!mark_push"(rx142_rep, rx142_pos, $I145)
- goto rxquantr144_loop
- rxquantr144_done:
- alt146_0:
- set_addr $I10, alt146_1
- rx142_cur."!mark_push"(0, rx142_pos, $I10)
-.annotate 'line', 69
+ lt $I11, 0, rx144_fail
+ inc rx144_pos
+ (rx144_rep) = rx144_cur."!mark_commit"($I147)
+ rx144_cur."!mark_push"(rx144_rep, rx144_pos, $I147)
+ goto rxquantr146_loop
+ rxquantr146_done:
+ alt148_0:
+ set_addr $I10, alt148_1
+ rx144_cur."!mark_push"(0, rx144_pos, $I10)
+.annotate 'line', 70
# rx literal "="
- add $I11, rx142_pos, 1
- gt $I11, rx142_eos, rx142_fail
- sub $I11, rx142_pos, rx142_off
- substr $S10, rx142_tgt, $I11, 1
- ne $S10, "=", rx142_fail
- add rx142_pos, 1
+ add $I11, rx144_pos, 1
+ gt $I11, rx144_eos, rx144_fail
+ sub $I11, rx144_pos, rx144_off
+ substr $S10, rx144_tgt, $I11, 1
+ ne $S10, "=", rx144_fail
+ add rx144_pos, 1
+.annotate 'line', 72
+ # rx rxquantr149 ** 0..1
+ set_addr $I150, rxquantr149_done
+ rx144_cur."!mark_push"(0, rx144_pos, $I150)
+ rxquantr149_loop:
.annotate 'line', 71
- # rx rxquantr147 ** 0..1
- set_addr $I148, rxquantr147_done
- rx142_cur."!mark_push"(0, rx142_pos, $I148)
- rxquantr147_loop:
-.annotate 'line', 70
# rx literal "cut"
- add $I11, rx142_pos, 3
- gt $I11, rx142_eos, rx142_fail
- sub $I11, rx142_pos, rx142_off
- substr $S10, rx142_tgt, $I11, 3
- ne $S10, "cut", rx142_fail
- add rx142_pos, 3
+ add $I11, rx144_pos, 3
+ gt $I11, rx144_eos, rx144_fail
+ sub $I11, rx144_pos, rx144_off
+ substr $S10, rx144_tgt, $I11, 3
+ ne $S10, "cut", rx144_fail
+ add rx144_pos, 3
# rxanchor rwb
- le rx142_pos, 0, rx142_fail
- sub $I10, rx142_pos, rx142_off
- is_cclass $I11, 8192, rx142_tgt, $I10
- if $I11, rx142_fail
+ le rx144_pos, 0, rx144_fail
+ sub $I10, rx144_pos, rx144_off
+ is_cclass $I11, 8192, rx144_tgt, $I10
+ if $I11, rx144_fail
dec $I10
- is_cclass $I11, 8192, rx142_tgt, $I10
- unless $I11, rx142_fail
-.annotate 'line', 71
- # rx subrule "panic" subtype=method negate=
- rx142_cur."!cursor_pos"(rx142_pos)
- $P10 = rx142_cur."panic"("Obsolete pod format, please use =begin/=end instead")
- unless $P10, rx142_fail
- rx142_pos = $P10."pos"()
- (rx142_rep) = rx142_cur."!mark_commit"($I148)
- rxquantr147_done:
-.annotate 'line', 68
- goto alt146_end
- alt146_1:
+ is_cclass $I11, 8192, rx144_tgt, $I10
+ unless $I11, rx144_fail
.annotate 'line', 72
+ # rx subrule "panic" subtype=method negate=
+ rx144_cur."!cursor_pos"(rx144_pos)
+ $P10 = rx144_cur."panic"("Obsolete pod format, please use =begin/=end instead")
+ unless $P10, rx144_fail
+ rx144_pos = $P10."pos"()
+ (rx144_rep) = rx144_cur."!mark_commit"($I150)
+ rxquantr149_done:
+.annotate 'line', 69
+ goto alt148_end
+ alt148_1:
+.annotate 'line', 73
# rx charclass nl
- ge rx142_pos, rx142_eos, rx142_fail
- sub $I10, rx142_pos, rx142_off
- is_cclass $I11, 4096, rx142_tgt, $I10
- unless $I11, rx142_fail
- substr $S10, rx142_tgt, $I10, 2
+ ge rx144_pos, rx144_eos, rx144_fail
+ sub $I10, rx144_pos, rx144_off
+ is_cclass $I11, 4096, rx144_tgt, $I10
+ unless $I11, rx144_fail
+ substr $S10, rx144_tgt, $I10, 2
iseq $I11, $S10, "\r\n"
- add rx142_pos, $I11
- inc rx142_pos
- alt146_end:
-.annotate 'line', 68
+ add rx144_pos, $I11
+ inc rx144_pos
+ alt148_end:
+.annotate 'line', 69
# rx pass
- rx142_cur."!cursor_pass"(rx142_pos, "")
- rx142_cur."!cursor_debug"("PASS ", "", " at pos=", rx142_pos)
- .return (rx142_cur)
- rx142_fail:
- (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
- lt rx142_pos, -1, rx142_done
- eq rx142_pos, -1, rx142_fail
- jump $I10
- rx142_done:
- rx142_cur."!cursor_fail"()
- rx142_cur."!cursor_debug"("FAIL ", "")
- .return (rx142_cur)
+ rx144_cur."!cursor_pass"(rx144_pos, "")
+ rx144_cur."!cursor_debug"("PASS ", "", " at pos=", rx144_pos)
+ .return (rx144_cur)
+ rx144_fail:
+ (rx144_rep, rx144_pos, $I10, $P10) = rx144_cur."!mark_fail"(0)
+ lt rx144_pos, -1, rx144_done
+ eq rx144_pos, -1, rx144_fail
+ jump $I10
+ rx144_done:
+ rx144_cur."!cursor_fail"()
+ rx144_cur."!cursor_debug"("FAIL ", "")
+ .return (rx144_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "comp_unit" :subid("29_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx151_tgt
- .local int rx151_pos
- .local int rx151_off
- .local int rx151_eos
- .local int rx151_rep
- .local pmc rx151_cur
- (rx151_cur, rx151_pos, rx151_tgt) = self."!cursor_start"()
- rx151_cur."!cursor_debug"("START ", "comp_unit")
- .lex unicode:"$\x{a2}", rx151_cur
- .local pmc match
- .lex "$/", match
- length rx151_eos, rx151_tgt
- set rx151_off, 0
- lt rx151_pos, 2, rx151_start
- sub rx151_off, rx151_pos, 1
- substr rx151_tgt, rx151_tgt, rx151_off
- rx151_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan155_done
- goto rxscan155_scan
- rxscan155_loop:
- ($P10) = rx151_cur."from"()
- inc $P10
- set rx151_pos, $P10
- ge rx151_pos, rx151_eos, rxscan155_done
- rxscan155_scan:
- set_addr $I10, rxscan155_loop
- rx151_cur."!mark_push"(0, rx151_pos, $I10)
- rxscan155_done:
-.annotate 'line', 83
- # rx subrule "newpad" subtype=method negate=
- rx151_cur."!cursor_pos"(rx151_pos)
- $P10 = rx151_cur."newpad"()
- unless $P10, rx151_fail
- rx151_pos = $P10."pos"()
+.sub "comp_unit" :subid("29_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx153_tgt
+ .local int rx153_pos
+ .local int rx153_off
+ .local int rx153_eos
+ .local int rx153_rep
+ .local pmc rx153_cur
+ (rx153_cur, rx153_pos, rx153_tgt) = self."!cursor_start"()
+ rx153_cur."!cursor_debug"("START ", "comp_unit")
+ .lex unicode:"$\x{a2}", rx153_cur
+ .local pmc match
+ .lex "$/", match
+ length rx153_eos, rx153_tgt
+ gt rx153_pos, rx153_eos, rx153_done
+ set rx153_off, 0
+ lt rx153_pos, 2, rx153_start
+ sub rx153_off, rx153_pos, 1
+ substr rx153_tgt, rx153_tgt, rx153_off
+ rx153_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan157_done
+ goto rxscan157_scan
+ rxscan157_loop:
+ ($P10) = rx153_cur."from"()
+ inc $P10
+ set rx153_pos, $P10
+ ge rx153_pos, rx153_eos, rxscan157_done
+ rxscan157_scan:
+ set_addr $I10, rxscan157_loop
+ rx153_cur."!mark_push"(0, rx153_pos, $I10)
+ rxscan157_done:
.annotate 'line', 84
+ # rx subrule "newpad" subtype=method negate=
+ rx153_cur."!cursor_pos"(rx153_pos)
+ $P10 = rx153_cur."newpad"()
+ unless $P10, rx153_fail
+ rx153_pos = $P10."pos"()
+.annotate 'line', 85
+ # rx subrule "outerctx" subtype=method negate=
+ rx153_cur."!cursor_pos"(rx153_pos)
+ $P10 = rx153_cur."outerctx"()
+ unless $P10, rx153_fail
+ rx153_pos = $P10."pos"()
+.annotate 'line', 86
# rx subrule "statementlist" subtype=capture negate=
- rx151_cur."!cursor_pos"(rx151_pos)
- $P10 = rx151_cur."statementlist"()
- unless $P10, rx151_fail
- rx151_cur."!mark_push"(0, -1, 0, $P10)
+ rx153_cur."!cursor_pos"(rx153_pos)
+ $P10 = rx153_cur."statementlist"()
+ unless $P10, rx153_fail
+ rx153_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statementlist")
- rx151_pos = $P10."pos"()
- alt156_0:
-.annotate 'line', 85
- set_addr $I10, alt156_1
- rx151_cur."!mark_push"(0, rx151_pos, $I10)
+ rx153_pos = $P10."pos"()
+ alt158_0:
+.annotate 'line', 87
+ set_addr $I10, alt158_1
+ rx153_cur."!mark_push"(0, rx153_pos, $I10)
# rxanchor eos
- ne rx151_pos, rx151_eos, rx151_fail
- goto alt156_end
- alt156_1:
+ ne rx153_pos, rx153_eos, rx153_fail
+ goto alt158_end
+ alt158_1:
# rx subrule "panic" subtype=method negate=
- rx151_cur."!cursor_pos"(rx151_pos)
- $P10 = rx151_cur."panic"("Confused")
- unless $P10, rx151_fail
- rx151_pos = $P10."pos"()
- alt156_end:
-.annotate 'line', 82
+ rx153_cur."!cursor_pos"(rx153_pos)
+ $P10 = rx153_cur."panic"("Confused")
+ unless $P10, rx153_fail
+ rx153_pos = $P10."pos"()
+ alt158_end:
+.annotate 'line', 83
# rx pass
- rx151_cur."!cursor_pass"(rx151_pos, "comp_unit")
- rx151_cur."!cursor_debug"("PASS ", "comp_unit", " at pos=", rx151_pos)
- .return (rx151_cur)
- rx151_fail:
+ rx153_cur."!cursor_pass"(rx153_pos, "comp_unit")
+ rx153_cur."!cursor_debug"("PASS ", "comp_unit", " at pos=", rx153_pos)
+ .return (rx153_cur)
+ rx153_fail:
.annotate 'line', 4
- (rx151_rep, rx151_pos, $I10, $P10) = rx151_cur."!mark_fail"(0)
- lt rx151_pos, -1, rx151_done
- eq rx151_pos, -1, rx151_fail
+ (rx153_rep, rx153_pos, $I10, $P10) = rx153_cur."!mark_fail"(0)
+ lt rx153_pos, -1, rx153_done
+ eq rx153_pos, -1, rx153_fail
jump $I10
- rx151_done:
- rx151_cur."!cursor_fail"()
- rx151_cur."!cursor_debug"("FAIL ", "comp_unit")
- .return (rx151_cur)
+ rx153_done:
+ rx153_cur."!cursor_fail"()
+ rx153_cur."!cursor_debug"("FAIL ", "comp_unit")
+ .return (rx153_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__comp_unit" :subid("30_1274022894.43745") :method
+.sub "!PREFIX__comp_unit" :subid("30_1275811487.95429") :method
.annotate 'line', 4
- $P153 = self."!PREFIX__!subrule"("", "")
- new $P154, "ResizablePMCArray"
- push $P154, $P153
- .return ($P154)
+ $P155 = self."!PREFIX__!subrule"("newpad", "")
+ new $P156, "ResizablePMCArray"
+ push $P156, $P155
+ .return ($P156)
.end
.namespace ["NQP";"Grammar"]
-.sub "statementlist" :subid("31_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statementlist" :subid("31_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx158_tgt
- .local int rx158_pos
- .local int rx158_off
- .local int rx158_eos
- .local int rx158_rep
- .local pmc rx158_cur
- (rx158_cur, rx158_pos, rx158_tgt) = self."!cursor_start"()
- rx158_cur."!cursor_debug"("START ", "statementlist")
- rx158_cur."!cursor_caparray"("statement")
- .lex unicode:"$\x{a2}", rx158_cur
+ .local string rx160_tgt
+ .local int rx160_pos
+ .local int rx160_off
+ .local int rx160_eos
+ .local int rx160_rep
+ .local pmc rx160_cur
+ (rx160_cur, rx160_pos, rx160_tgt) = self."!cursor_start"()
+ rx160_cur."!cursor_debug"("START ", "statementlist")
+ rx160_cur."!cursor_caparray"("statement")
+ .lex unicode:"$\x{a2}", rx160_cur
.local pmc match
.lex "$/", match
- length rx158_eos, rx158_tgt
- set rx158_off, 0
- lt rx158_pos, 2, rx158_start
- sub rx158_off, rx158_pos, 1
- substr rx158_tgt, rx158_tgt, rx158_off
- rx158_start:
+ length rx160_eos, rx160_tgt
+ gt rx160_pos, rx160_eos, rx160_done
+ set rx160_off, 0
+ lt rx160_pos, 2, rx160_start
+ sub rx160_off, rx160_pos, 1
+ substr rx160_tgt, rx160_tgt, rx160_off
+ rx160_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan161_done
- goto rxscan161_scan
- rxscan161_loop:
- ($P10) = rx158_cur."from"()
+ ne $I10, -1, rxscan165_done
+ goto rxscan165_scan
+ rxscan165_loop:
+ ($P10) = rx160_cur."from"()
inc $P10
- set rx158_pos, $P10
- ge rx158_pos, rx158_eos, rxscan161_done
- rxscan161_scan:
- set_addr $I10, rxscan161_loop
- rx158_cur."!mark_push"(0, rx158_pos, $I10)
- rxscan161_done:
- alt162_0:
-.annotate 'line', 88
- set_addr $I10, alt162_1
- rx158_cur."!mark_push"(0, rx158_pos, $I10)
-.annotate 'line', 89
+ set rx160_pos, $P10
+ ge rx160_pos, rx160_eos, rxscan165_done
+ rxscan165_scan:
+ set_addr $I10, rxscan165_loop
+ rx160_cur."!mark_push"(0, rx160_pos, $I10)
+ rxscan165_done:
+ alt166_0:
+.annotate 'line', 90
+ set_addr $I10, alt166_1
+ rx160_cur."!mark_push"(0, rx160_pos, $I10)
+.annotate 'line', 91
# rx subrule "ws" subtype=method negate=
- rx158_cur."!cursor_pos"(rx158_pos)
- $P10 = rx158_cur."ws"()
- unless $P10, rx158_fail
- rx158_pos = $P10."pos"()
+ rx160_cur."!cursor_pos"(rx160_pos)
+ $P10 = rx160_cur."ws"()
+ unless $P10, rx160_fail
+ rx160_pos = $P10."pos"()
# rxanchor eos
- ne rx158_pos, rx158_eos, rx158_fail
+ ne rx160_pos, rx160_eos, rx160_fail
# rx subrule "ws" subtype=method negate=
- rx158_cur."!cursor_pos"(rx158_pos)
- $P10 = rx158_cur."ws"()
- unless $P10, rx158_fail
- rx158_pos = $P10."pos"()
- goto alt162_end
- alt162_1:
-.annotate 'line', 90
+ rx160_cur."!cursor_pos"(rx160_pos)
+ $P10 = rx160_cur."ws"()
+ unless $P10, rx160_fail
+ rx160_pos = $P10."pos"()
+ goto alt166_end
+ alt166_1:
+.annotate 'line', 92
# rx subrule "ws" subtype=method negate=
- rx158_cur."!cursor_pos"(rx158_pos)
- $P10 = rx158_cur."ws"()
- unless $P10, rx158_fail
- rx158_pos = $P10."pos"()
- # rx rxquantr166 ** 0..*
- set_addr $I168, rxquantr166_done
- rx158_cur."!mark_push"(0, rx158_pos, $I168)
- rxquantr166_loop:
+ rx160_cur."!cursor_pos"(rx160_pos)
+ $P10 = rx160_cur."ws"()
+ unless $P10, rx160_fail
+ rx160_pos = $P10."pos"()
+ # rx rxquantr170 ** 0..*
+ set_addr $I172, rxquantr170_done
+ rx160_cur."!mark_push"(0, rx160_pos, $I172)
+ rxquantr170_loop:
# rx subrule "statement" subtype=capture negate=
- rx158_cur."!cursor_pos"(rx158_pos)
- $P10 = rx158_cur."statement"()
- unless $P10, rx158_fail
- rx158_cur."!mark_push"(0, -1, 0, $P10)
+ rx160_cur."!cursor_pos"(rx160_pos)
+ $P10 = rx160_cur."statement"()
+ unless $P10, rx160_fail
+ rx160_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement")
- rx158_pos = $P10."pos"()
+ rx160_pos = $P10."pos"()
# rx subrule "eat_terminator" subtype=method negate=
- rx158_cur."!cursor_pos"(rx158_pos)
- $P10 = rx158_cur."eat_terminator"()
- unless $P10, rx158_fail
- rx158_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx158_cur."!cursor_pos"(rx158_pos)
- $P10 = rx158_cur."ws"()
- unless $P10, rx158_fail
- rx158_pos = $P10."pos"()
- (rx158_rep) = rx158_cur."!mark_commit"($I168)
- rx158_cur."!mark_push"(rx158_rep, rx158_pos, $I168)
- goto rxquantr166_loop
- rxquantr166_done:
- # rx subrule "ws" subtype=method negate=
- rx158_cur."!cursor_pos"(rx158_pos)
- $P10 = rx158_cur."ws"()
- unless $P10, rx158_fail
- rx158_pos = $P10."pos"()
- alt162_end:
-.annotate 'line', 88
- # rx pass
- rx158_cur."!cursor_pass"(rx158_pos, "statementlist")
- rx158_cur."!cursor_debug"("PASS ", "statementlist", " at pos=", rx158_pos)
- .return (rx158_cur)
- rx158_fail:
-.annotate 'line', 4
- (rx158_rep, rx158_pos, $I10, $P10) = rx158_cur."!mark_fail"(0)
- lt rx158_pos, -1, rx158_done
- eq rx158_pos, -1, rx158_fail
- jump $I10
- rx158_done:
- rx158_cur."!cursor_fail"()
- rx158_cur."!cursor_debug"("FAIL ", "statementlist")
- .return (rx158_cur)
+ rx160_cur."!cursor_pos"(rx160_pos)
+ $P10 = rx160_cur."eat_terminator"()
+ unless $P10, rx160_fail
+ rx160_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx160_cur."!cursor_pos"(rx160_pos)
+ $P10 = rx160_cur."ws"()
+ unless $P10, rx160_fail
+ rx160_pos = $P10."pos"()
+ (rx160_rep) = rx160_cur."!mark_commit"($I172)
+ rx160_cur."!mark_push"(rx160_rep, rx160_pos, $I172)
+ goto rxquantr170_loop
+ rxquantr170_done:
+ # rx subrule "ws" subtype=method negate=
+ rx160_cur."!cursor_pos"(rx160_pos)
+ $P10 = rx160_cur."ws"()
+ unless $P10, rx160_fail
+ rx160_pos = $P10."pos"()
+ alt166_end:
+.annotate 'line', 90
+ # rx pass
+ rx160_cur."!cursor_pass"(rx160_pos, "statementlist")
+ rx160_cur."!cursor_debug"("PASS ", "statementlist", " at pos=", rx160_pos)
+ .return (rx160_cur)
+ rx160_fail:
+.annotate 'line', 4
+ (rx160_rep, rx160_pos, $I10, $P10) = rx160_cur."!mark_fail"(0)
+ lt rx160_pos, -1, rx160_done
+ eq rx160_pos, -1, rx160_fail
+ jump $I10
+ rx160_done:
+ rx160_cur."!cursor_fail"()
+ rx160_cur."!cursor_debug"("FAIL ", "statementlist")
+ .return (rx160_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statementlist" :subid("32_1274022894.43745") :method
-.annotate 'line', 4
- new $P160, "ResizablePMCArray"
- push $P160, ""
- push $P160, ""
- .return ($P160)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "statement" :subid("33_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .const 'Sub' $P176 = "35_1274022894.43745"
- capture_lex $P176
- .local string rx171_tgt
- .local int rx171_pos
- .local int rx171_off
- .local int rx171_eos
- .local int rx171_rep
- .local pmc rx171_cur
- (rx171_cur, rx171_pos, rx171_tgt) = self."!cursor_start"()
- rx171_cur."!cursor_debug"("START ", "statement")
- rx171_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
- .lex unicode:"$\x{a2}", rx171_cur
- .local pmc match
- .lex "$/", match
- length rx171_eos, rx171_tgt
- set rx171_off, 0
- lt rx171_pos, 2, rx171_start
- sub rx171_off, rx171_pos, 1
- substr rx171_tgt, rx171_tgt, rx171_off
- rx171_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan174_done
- goto rxscan174_scan
- rxscan174_loop:
- ($P10) = rx171_cur."from"()
- inc $P10
- set rx171_pos, $P10
- ge rx171_pos, rx171_eos, rxscan174_done
- rxscan174_scan:
- set_addr $I10, rxscan174_loop
- rx171_cur."!mark_push"(0, rx171_pos, $I10)
- rxscan174_done:
-.annotate 'line', 94
+.sub "!PREFIX__statementlist" :subid("32_1275811487.95429") :method
+.annotate 'line', 4
+ $P162 = self."!PREFIX__!subrule"("ws", "")
+ $P163 = self."!PREFIX__!subrule"("ws", "")
+ new $P164, "ResizablePMCArray"
+ push $P164, $P162
+ push $P164, $P163
+ .return ($P164)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "statement" :subid("33_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .const 'Sub' $P180 = "35_1275811487.95429"
+ capture_lex $P180
+ .local string rx175_tgt
+ .local int rx175_pos
+ .local int rx175_off
+ .local int rx175_eos
+ .local int rx175_rep
+ .local pmc rx175_cur
+ (rx175_cur, rx175_pos, rx175_tgt) = self."!cursor_start"()
+ rx175_cur."!cursor_debug"("START ", "statement")
+ rx175_cur."!cursor_caparray"("statement_mod_loop", "statement_mod_cond")
+ .lex unicode:"$\x{a2}", rx175_cur
+ .local pmc match
+ .lex "$/", match
+ length rx175_eos, rx175_tgt
+ gt rx175_pos, rx175_eos, rx175_done
+ set rx175_off, 0
+ lt rx175_pos, 2, rx175_start
+ sub rx175_off, rx175_pos, 1
+ substr rx175_tgt, rx175_tgt, rx175_off
+ rx175_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan178_done
+ goto rxscan178_scan
+ rxscan178_loop:
+ ($P10) = rx175_cur."from"()
+ inc $P10
+ set rx175_pos, $P10
+ ge rx175_pos, rx175_eos, rxscan178_done
+ rxscan178_scan:
+ set_addr $I10, rxscan178_loop
+ rx175_cur."!mark_push"(0, rx175_pos, $I10)
+ rxscan178_done:
+.annotate 'line', 96
# rx subrule "before" subtype=zerowidth negate=1
- rx171_cur."!cursor_pos"(rx171_pos)
- .const 'Sub' $P176 = "35_1274022894.43745"
- capture_lex $P176
- $P10 = rx171_cur."before"($P176)
- if $P10, rx171_fail
- alt180_0:
-.annotate 'line', 95
- set_addr $I10, alt180_1
- rx171_cur."!mark_push"(0, rx171_pos, $I10)
-.annotate 'line', 96
+ rx175_cur."!cursor_pos"(rx175_pos)
+ .const 'Sub' $P180 = "35_1275811487.95429"
+ capture_lex $P180
+ $P10 = rx175_cur."before"($P180)
+ if $P10, rx175_fail
+ alt184_0:
+.annotate 'line', 97
+ set_addr $I10, alt184_1
+ rx175_cur."!mark_push"(0, rx175_pos, $I10)
+.annotate 'line', 98
# rx subrule "statement_control" subtype=capture negate=
- rx171_cur."!cursor_pos"(rx171_pos)
- $P10 = rx171_cur."statement_control"()
- unless $P10, rx171_fail
- rx171_cur."!mark_push"(0, -1, 0, $P10)
+ rx175_cur."!cursor_pos"(rx175_pos)
+ $P10 = rx175_cur."statement_control"()
+ unless $P10, rx175_fail
+ rx175_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_control")
- rx171_pos = $P10."pos"()
- goto alt180_end
- alt180_1:
-.annotate 'line', 97
+ rx175_pos = $P10."pos"()
+ goto alt184_end
+ alt184_1:
+.annotate 'line', 99
# rx subrule "EXPR" subtype=capture negate=
- rx171_cur."!cursor_pos"(rx171_pos)
- $P10 = rx171_cur."EXPR"()
- unless $P10, rx171_fail
- rx171_cur."!mark_push"(0, -1, 0, $P10)
+ rx175_cur."!cursor_pos"(rx175_pos)
+ $P10 = rx175_cur."EXPR"()
+ unless $P10, rx175_fail
+ rx175_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx171_pos = $P10."pos"()
+ rx175_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx171_cur."!cursor_pos"(rx171_pos)
- $P10 = rx171_cur."ws"()
- unless $P10, rx171_fail
- rx171_pos = $P10."pos"()
-.annotate 'line', 102
- # rx rxquantr181 ** 0..1
- set_addr $I185, rxquantr181_done
- rx171_cur."!mark_push"(0, rx171_pos, $I185)
- rxquantr181_loop:
- alt182_0:
-.annotate 'line', 98
- set_addr $I10, alt182_1
- rx171_cur."!mark_push"(0, rx171_pos, $I10)
-.annotate 'line', 99
- # rx subrule "MARKED" subtype=zerowidth negate=
- rx171_cur."!cursor_pos"(rx171_pos)
- $P10 = rx171_cur."MARKED"("endstmt")
- unless $P10, rx171_fail
- goto alt182_end
- alt182_1:
- set_addr $I10, alt182_2
- rx171_cur."!mark_push"(0, rx171_pos, $I10)
+ rx175_cur."!cursor_pos"(rx175_pos)
+ $P10 = rx175_cur."ws"()
+ unless $P10, rx175_fail
+ rx175_pos = $P10."pos"()
+.annotate 'line', 104
+ # rx rxquantr185 ** 0..1
+ set_addr $I189, rxquantr185_done
+ rx175_cur."!mark_push"(0, rx175_pos, $I189)
+ rxquantr185_loop:
+ alt186_0:
.annotate 'line', 100
+ set_addr $I10, alt186_1
+ rx175_cur."!mark_push"(0, rx175_pos, $I10)
+.annotate 'line', 101
+ # rx subrule "MARKED" subtype=zerowidth negate=
+ rx175_cur."!cursor_pos"(rx175_pos)
+ $P10 = rx175_cur."MARKED"("endstmt")
+ unless $P10, rx175_fail
+ goto alt186_end
+ alt186_1:
+ set_addr $I10, alt186_2
+ rx175_cur."!mark_push"(0, rx175_pos, $I10)
+.annotate 'line', 102
# rx subrule "statement_mod_cond" subtype=capture negate=
- rx171_cur."!cursor_pos"(rx171_pos)
- $P10 = rx171_cur."statement_mod_cond"()
- unless $P10, rx171_fail
- rx171_cur."!mark_push"(0, -1, 0, $P10)
+ rx175_cur."!cursor_pos"(rx175_pos)
+ $P10 = rx175_cur."statement_mod_cond"()
+ unless $P10, rx175_fail
+ rx175_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_mod_cond")
- rx171_pos = $P10."pos"()
- # rx rxquantr183 ** 0..1
- set_addr $I184, rxquantr183_done
- rx171_cur."!mark_push"(0, rx171_pos, $I184)
- rxquantr183_loop:
+ rx175_pos = $P10."pos"()
+ # rx rxquantr187 ** 0..1
+ set_addr $I188, rxquantr187_done
+ rx175_cur."!mark_push"(0, rx175_pos, $I188)
+ rxquantr187_loop:
# rx subrule "statement_mod_loop" subtype=capture negate=
- rx171_cur."!cursor_pos"(rx171_pos)
- $P10 = rx171_cur."statement_mod_loop"()
- unless $P10, rx171_fail
- rx171_cur."!mark_push"(0, -1, 0, $P10)
+ rx175_cur."!cursor_pos"(rx175_pos)
+ $P10 = rx175_cur."statement_mod_loop"()
+ unless $P10, rx175_fail
+ rx175_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_mod_loop")
- rx171_pos = $P10."pos"()
- (rx171_rep) = rx171_cur."!mark_commit"($I184)
- rxquantr183_done:
- goto alt182_end
- alt182_2:
-.annotate 'line', 101
+ rx175_pos = $P10."pos"()
+ (rx175_rep) = rx175_cur."!mark_commit"($I188)
+ rxquantr187_done:
+ goto alt186_end
+ alt186_2:
+.annotate 'line', 103
# rx subrule "statement_mod_loop" subtype=capture negate=
- rx171_cur."!cursor_pos"(rx171_pos)
- $P10 = rx171_cur."statement_mod_loop"()
- unless $P10, rx171_fail
- rx171_cur."!mark_push"(0, -1, 0, $P10)
+ rx175_cur."!cursor_pos"(rx175_pos)
+ $P10 = rx175_cur."statement_mod_loop"()
+ unless $P10, rx175_fail
+ rx175_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_mod_loop")
- rx171_pos = $P10."pos"()
- alt182_end:
-.annotate 'line', 102
- (rx171_rep) = rx171_cur."!mark_commit"($I185)
- rxquantr181_done:
- alt180_end:
-.annotate 'line', 93
+ rx175_pos = $P10."pos"()
+ alt186_end:
+.annotate 'line', 104
+ (rx175_rep) = rx175_cur."!mark_commit"($I189)
+ rxquantr185_done:
+ alt184_end:
+.annotate 'line', 95
# rx pass
- rx171_cur."!cursor_pass"(rx171_pos, "statement")
- rx171_cur."!cursor_debug"("PASS ", "statement", " at pos=", rx171_pos)
- .return (rx171_cur)
- rx171_fail:
+ rx175_cur."!cursor_pass"(rx175_pos, "statement")
+ rx175_cur."!cursor_debug"("PASS ", "statement", " at pos=", rx175_pos)
+ .return (rx175_cur)
+ rx175_fail:
.annotate 'line', 4
- (rx171_rep, rx171_pos, $I10, $P10) = rx171_cur."!mark_fail"(0)
- lt rx171_pos, -1, rx171_done
- eq rx171_pos, -1, rx171_fail
+ (rx175_rep, rx175_pos, $I10, $P10) = rx175_cur."!mark_fail"(0)
+ lt rx175_pos, -1, rx175_done
+ eq rx175_pos, -1, rx175_fail
jump $I10
- rx171_done:
- rx171_cur."!cursor_fail"()
- rx171_cur."!cursor_debug"("FAIL ", "statement")
- .return (rx171_cur)
+ rx175_done:
+ rx175_cur."!cursor_fail"()
+ rx175_cur."!cursor_debug"("FAIL ", "statement")
+ .return (rx175_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement" :subid("34_1274022894.43745") :method
+.sub "!PREFIX__statement" :subid("34_1275811487.95429") :method
.annotate 'line', 4
- new $P173, "ResizablePMCArray"
- push $P173, ""
- .return ($P173)
+ new $P177, "ResizablePMCArray"
+ push $P177, ""
+ .return ($P177)
.end
.namespace ["NQP";"Grammar"]
-.sub "_block175" :anon :subid("35_1274022894.43745") :method :outer("33_1274022894.43745")
-.annotate 'line', 94
- .local string rx177_tgt
- .local int rx177_pos
- .local int rx177_off
- .local int rx177_eos
- .local int rx177_rep
- .local pmc rx177_cur
- (rx177_cur, rx177_pos, rx177_tgt) = self."!cursor_start"()
- rx177_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx177_cur
- .local pmc match
- .lex "$/", match
- length rx177_eos, rx177_tgt
- set rx177_off, 0
- lt rx177_pos, 2, rx177_start
- sub rx177_off, rx177_pos, 1
- substr rx177_tgt, rx177_tgt, rx177_off
- rx177_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan178_done
- goto rxscan178_scan
- rxscan178_loop:
- ($P10) = rx177_cur."from"()
- inc $P10
- set rx177_pos, $P10
- ge rx177_pos, rx177_eos, rxscan178_done
- rxscan178_scan:
- set_addr $I10, rxscan178_loop
- rx177_cur."!mark_push"(0, rx177_pos, $I10)
- rxscan178_done:
- alt179_0:
- set_addr $I10, alt179_1
- rx177_cur."!mark_push"(0, rx177_pos, $I10)
+.sub "_block179" :anon :subid("35_1275811487.95429") :method :outer("33_1275811487.95429")
+.annotate 'line', 96
+ .local string rx181_tgt
+ .local int rx181_pos
+ .local int rx181_off
+ .local int rx181_eos
+ .local int rx181_rep
+ .local pmc rx181_cur
+ (rx181_cur, rx181_pos, rx181_tgt) = self."!cursor_start"()
+ rx181_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx181_cur
+ .local pmc match
+ .lex "$/", match
+ length rx181_eos, rx181_tgt
+ gt rx181_pos, rx181_eos, rx181_done
+ set rx181_off, 0
+ lt rx181_pos, 2, rx181_start
+ sub rx181_off, rx181_pos, 1
+ substr rx181_tgt, rx181_tgt, rx181_off
+ rx181_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan182_done
+ goto rxscan182_scan
+ rxscan182_loop:
+ ($P10) = rx181_cur."from"()
+ inc $P10
+ set rx181_pos, $P10
+ ge rx181_pos, rx181_eos, rxscan182_done
+ rxscan182_scan:
+ set_addr $I10, rxscan182_loop
+ rx181_cur."!mark_push"(0, rx181_pos, $I10)
+ rxscan182_done:
+ alt183_0:
+ set_addr $I10, alt183_1
+ rx181_cur."!mark_push"(0, rx181_pos, $I10)
# rx enumcharlist negate=0
- ge rx177_pos, rx177_eos, rx177_fail
- sub $I10, rx177_pos, rx177_off
- substr $S10, rx177_tgt, $I10, 1
+ ge rx181_pos, rx181_eos, rx181_fail
+ sub $I10, rx181_pos, rx181_off
+ substr $S10, rx181_tgt, $I10, 1
index $I11, "])}", $S10
- lt $I11, 0, rx177_fail
- inc rx177_pos
- goto alt179_end
- alt179_1:
+ lt $I11, 0, rx181_fail
+ inc rx181_pos
+ goto alt183_end
+ alt183_1:
# rxanchor eos
- ne rx177_pos, rx177_eos, rx177_fail
- alt179_end:
+ ne rx181_pos, rx181_eos, rx181_fail
+ alt183_end:
# rx pass
- rx177_cur."!cursor_pass"(rx177_pos, "")
- rx177_cur."!cursor_debug"("PASS ", "", " at pos=", rx177_pos)
- .return (rx177_cur)
- rx177_fail:
- (rx177_rep, rx177_pos, $I10, $P10) = rx177_cur."!mark_fail"(0)
- lt rx177_pos, -1, rx177_done
- eq rx177_pos, -1, rx177_fail
- jump $I10
- rx177_done:
- rx177_cur."!cursor_fail"()
- rx177_cur."!cursor_debug"("FAIL ", "")
- .return (rx177_cur)
+ rx181_cur."!cursor_pass"(rx181_pos, "")
+ rx181_cur."!cursor_debug"("PASS ", "", " at pos=", rx181_pos)
+ .return (rx181_cur)
+ rx181_fail:
+ (rx181_rep, rx181_pos, $I10, $P10) = rx181_cur."!mark_fail"(0)
+ lt rx181_pos, -1, rx181_done
+ eq rx181_pos, -1, rx181_fail
+ jump $I10
+ rx181_done:
+ rx181_cur."!cursor_fail"()
+ rx181_cur."!cursor_debug"("FAIL ", "")
+ .return (rx181_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "eat_terminator" :subid("36_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx187_tgt
- .local int rx187_pos
- .local int rx187_off
- .local int rx187_eos
- .local int rx187_rep
- .local pmc rx187_cur
- (rx187_cur, rx187_pos, rx187_tgt) = self."!cursor_start"()
- rx187_cur."!cursor_debug"("START ", "eat_terminator")
- .lex unicode:"$\x{a2}", rx187_cur
- .local pmc match
- .lex "$/", match
- length rx187_eos, rx187_tgt
- set rx187_off, 0
- lt rx187_pos, 2, rx187_start
- sub rx187_off, rx187_pos, 1
- substr rx187_tgt, rx187_tgt, rx187_off
- rx187_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan190_done
- goto rxscan190_scan
- rxscan190_loop:
- ($P10) = rx187_cur."from"()
- inc $P10
- set rx187_pos, $P10
- ge rx187_pos, rx187_eos, rxscan190_done
- rxscan190_scan:
- set_addr $I10, rxscan190_loop
- rx187_cur."!mark_push"(0, rx187_pos, $I10)
- rxscan190_done:
- alt191_0:
-.annotate 'line', 106
- set_addr $I10, alt191_1
- rx187_cur."!mark_push"(0, rx187_pos, $I10)
-.annotate 'line', 107
- # rx literal ";"
- add $I11, rx187_pos, 1
- gt $I11, rx187_eos, rx187_fail
- sub $I11, rx187_pos, rx187_off
- substr $S10, rx187_tgt, $I11, 1
- ne $S10, ";", rx187_fail
- add rx187_pos, 1
- goto alt191_end
- alt191_1:
- set_addr $I10, alt191_2
- rx187_cur."!mark_push"(0, rx187_pos, $I10)
+.sub "eat_terminator" :subid("36_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx191_tgt
+ .local int rx191_pos
+ .local int rx191_off
+ .local int rx191_eos
+ .local int rx191_rep
+ .local pmc rx191_cur
+ (rx191_cur, rx191_pos, rx191_tgt) = self."!cursor_start"()
+ rx191_cur."!cursor_debug"("START ", "eat_terminator")
+ .lex unicode:"$\x{a2}", rx191_cur
+ .local pmc match
+ .lex "$/", match
+ length rx191_eos, rx191_tgt
+ gt rx191_pos, rx191_eos, rx191_done
+ set rx191_off, 0
+ lt rx191_pos, 2, rx191_start
+ sub rx191_off, rx191_pos, 1
+ substr rx191_tgt, rx191_tgt, rx191_off
+ rx191_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan194_done
+ goto rxscan194_scan
+ rxscan194_loop:
+ ($P10) = rx191_cur."from"()
+ inc $P10
+ set rx191_pos, $P10
+ ge rx191_pos, rx191_eos, rxscan194_done
+ rxscan194_scan:
+ set_addr $I10, rxscan194_loop
+ rx191_cur."!mark_push"(0, rx191_pos, $I10)
+ rxscan194_done:
+ alt195_0:
.annotate 'line', 108
- # rx subrule "MARKED" subtype=zerowidth negate=
- rx187_cur."!cursor_pos"(rx187_pos)
- $P10 = rx187_cur."MARKED"("endstmt")
- unless $P10, rx187_fail
- goto alt191_end
- alt191_2:
- set_addr $I10, alt191_3
- rx187_cur."!mark_push"(0, rx187_pos, $I10)
+ set_addr $I10, alt195_1
+ rx191_cur."!mark_push"(0, rx191_pos, $I10)
.annotate 'line', 109
- # rx subrule "terminator" subtype=zerowidth negate=
- rx187_cur."!cursor_pos"(rx187_pos)
- $P10 = rx187_cur."terminator"()
- unless $P10, rx187_fail
- goto alt191_end
- alt191_3:
+ # rx literal ";"
+ add $I11, rx191_pos, 1
+ gt $I11, rx191_eos, rx191_fail
+ sub $I11, rx191_pos, rx191_off
+ substr $S10, rx191_tgt, $I11, 1
+ ne $S10, ";", rx191_fail
+ add rx191_pos, 1
+ goto alt195_end
+ alt195_1:
+ set_addr $I10, alt195_2
+ rx191_cur."!mark_push"(0, rx191_pos, $I10)
.annotate 'line', 110
+ # rx subrule "MARKED" subtype=zerowidth negate=
+ rx191_cur."!cursor_pos"(rx191_pos)
+ $P10 = rx191_cur."MARKED"("endstmt")
+ unless $P10, rx191_fail
+ goto alt195_end
+ alt195_2:
+ set_addr $I10, alt195_3
+ rx191_cur."!mark_push"(0, rx191_pos, $I10)
+.annotate 'line', 111
+ # rx subrule "terminator" subtype=zerowidth negate=
+ rx191_cur."!cursor_pos"(rx191_pos)
+ $P10 = rx191_cur."terminator"()
+ unless $P10, rx191_fail
+ goto alt195_end
+ alt195_3:
+.annotate 'line', 112
# rxanchor eos
- ne rx187_pos, rx187_eos, rx187_fail
- alt191_end:
-.annotate 'line', 106
+ ne rx191_pos, rx191_eos, rx191_fail
+ alt195_end:
+.annotate 'line', 108
# rx pass
- rx187_cur."!cursor_pass"(rx187_pos, "eat_terminator")
- rx187_cur."!cursor_debug"("PASS ", "eat_terminator", " at pos=", rx187_pos)
- .return (rx187_cur)
- rx187_fail:
+ rx191_cur."!cursor_pass"(rx191_pos, "eat_terminator")
+ rx191_cur."!cursor_debug"("PASS ", "eat_terminator", " at pos=", rx191_pos)
+ .return (rx191_cur)
+ rx191_fail:
.annotate 'line', 4
- (rx187_rep, rx187_pos, $I10, $P10) = rx187_cur."!mark_fail"(0)
- lt rx187_pos, -1, rx187_done
- eq rx187_pos, -1, rx187_fail
+ (rx191_rep, rx191_pos, $I10, $P10) = rx191_cur."!mark_fail"(0)
+ lt rx191_pos, -1, rx191_done
+ eq rx191_pos, -1, rx191_fail
jump $I10
- rx187_done:
- rx187_cur."!cursor_fail"()
- rx187_cur."!cursor_debug"("FAIL ", "eat_terminator")
- .return (rx187_cur)
+ rx191_done:
+ rx191_cur."!cursor_fail"()
+ rx191_cur."!cursor_debug"("FAIL ", "eat_terminator")
+ .return (rx191_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__eat_terminator" :subid("37_1274022894.43745") :method
+.sub "!PREFIX__eat_terminator" :subid("37_1275811487.95429") :method
.annotate 'line', 4
- new $P189, "ResizablePMCArray"
- push $P189, ""
- push $P189, ""
- push $P189, ""
- push $P189, ";"
- .return ($P189)
+ new $P193, "ResizablePMCArray"
+ push $P193, ""
+ push $P193, ""
+ push $P193, ""
+ push $P193, ";"
+ .return ($P193)
.end
.namespace ["NQP";"Grammar"]
-.sub "xblock" :subid("38_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "xblock" :subid("38_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx193_tgt
- .local int rx193_pos
- .local int rx193_off
- .local int rx193_eos
- .local int rx193_rep
- .local pmc rx193_cur
- (rx193_cur, rx193_pos, rx193_tgt) = self."!cursor_start"()
- rx193_cur."!cursor_debug"("START ", "xblock")
- .lex unicode:"$\x{a2}", rx193_cur
+ .local string rx197_tgt
+ .local int rx197_pos
+ .local int rx197_off
+ .local int rx197_eos
+ .local int rx197_rep
+ .local pmc rx197_cur
+ (rx197_cur, rx197_pos, rx197_tgt) = self."!cursor_start"()
+ rx197_cur."!cursor_debug"("START ", "xblock")
+ .lex unicode:"$\x{a2}", rx197_cur
.local pmc match
.lex "$/", match
- length rx193_eos, rx193_tgt
- set rx193_off, 0
- lt rx193_pos, 2, rx193_start
- sub rx193_off, rx193_pos, 1
- substr rx193_tgt, rx193_tgt, rx193_off
- rx193_start:
+ length rx197_eos, rx197_tgt
+ gt rx197_pos, rx197_eos, rx197_done
+ set rx197_off, 0
+ lt rx197_pos, 2, rx197_start
+ sub rx197_off, rx197_pos, 1
+ substr rx197_tgt, rx197_tgt, rx197_off
+ rx197_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan197_done
- goto rxscan197_scan
- rxscan197_loop:
- ($P10) = rx193_cur."from"()
+ ne $I10, -1, rxscan201_done
+ goto rxscan201_scan
+ rxscan201_loop:
+ ($P10) = rx197_cur."from"()
inc $P10
- set rx193_pos, $P10
- ge rx193_pos, rx193_eos, rxscan197_done
- rxscan197_scan:
- set_addr $I10, rxscan197_loop
- rx193_cur."!mark_push"(0, rx193_pos, $I10)
- rxscan197_done:
-.annotate 'line', 114
+ set rx197_pos, $P10
+ ge rx197_pos, rx197_eos, rxscan201_done
+ rxscan201_scan:
+ set_addr $I10, rxscan201_loop
+ rx197_cur."!mark_push"(0, rx197_pos, $I10)
+ rxscan201_done:
+.annotate 'line', 116
# rx subrule "EXPR" subtype=capture negate=
- rx193_cur."!cursor_pos"(rx193_pos)
- $P10 = rx193_cur."EXPR"()
- unless $P10, rx193_fail
- rx193_cur."!mark_push"(0, -1, 0, $P10)
+ rx197_cur."!cursor_pos"(rx197_pos)
+ $P10 = rx197_cur."EXPR"()
+ unless $P10, rx197_fail
+ rx197_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx193_pos = $P10."pos"()
+ rx197_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx193_cur."!cursor_pos"(rx193_pos)
- $P10 = rx193_cur."ws"()
- unless $P10, rx193_fail
- rx193_pos = $P10."pos"()
+ rx197_cur."!cursor_pos"(rx197_pos)
+ $P10 = rx197_cur."ws"()
+ unless $P10, rx197_fail
+ rx197_pos = $P10."pos"()
# rx subrule "pblock" subtype=capture negate=
- rx193_cur."!cursor_pos"(rx193_pos)
- $P10 = rx193_cur."pblock"()
- unless $P10, rx193_fail
- rx193_cur."!mark_push"(0, -1, 0, $P10)
+ rx197_cur."!cursor_pos"(rx197_pos)
+ $P10 = rx197_cur."pblock"()
+ unless $P10, rx197_fail
+ rx197_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("pblock")
- rx193_pos = $P10."pos"()
-.annotate 'line', 113
+ rx197_pos = $P10."pos"()
+.annotate 'line', 115
# rx pass
- rx193_cur."!cursor_pass"(rx193_pos, "xblock")
- rx193_cur."!cursor_debug"("PASS ", "xblock", " at pos=", rx193_pos)
- .return (rx193_cur)
- rx193_fail:
+ rx197_cur."!cursor_pass"(rx197_pos, "xblock")
+ rx197_cur."!cursor_debug"("PASS ", "xblock", " at pos=", rx197_pos)
+ .return (rx197_cur)
+ rx197_fail:
.annotate 'line', 4
- (rx193_rep, rx193_pos, $I10, $P10) = rx193_cur."!mark_fail"(0)
- lt rx193_pos, -1, rx193_done
- eq rx193_pos, -1, rx193_fail
+ (rx197_rep, rx197_pos, $I10, $P10) = rx197_cur."!mark_fail"(0)
+ lt rx197_pos, -1, rx197_done
+ eq rx197_pos, -1, rx197_fail
jump $I10
- rx193_done:
- rx193_cur."!cursor_fail"()
- rx193_cur."!cursor_debug"("FAIL ", "xblock")
- .return (rx193_cur)
+ rx197_done:
+ rx197_cur."!cursor_fail"()
+ rx197_cur."!cursor_debug"("FAIL ", "xblock")
+ .return (rx197_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__xblock" :subid("39_1274022894.43745") :method
+.sub "!PREFIX__xblock" :subid("39_1275811487.95429") :method
.annotate 'line', 4
- $P195 = self."!PREFIX__!subrule"("EXPR", "")
- new $P196, "ResizablePMCArray"
- push $P196, $P195
- .return ($P196)
+ $P199 = self."!PREFIX__!subrule"("EXPR", "")
+ new $P200, "ResizablePMCArray"
+ push $P200, $P199
+ .return ($P200)
.end
.namespace ["NQP";"Grammar"]
-.sub "pblock" :subid("40_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "pblock" :subid("40_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx199_tgt
- .local int rx199_pos
- .local int rx199_off
- .local int rx199_eos
- .local int rx199_rep
- .local pmc rx199_cur
- (rx199_cur, rx199_pos, rx199_tgt) = self."!cursor_start"()
- rx199_cur."!cursor_debug"("START ", "pblock")
- .lex unicode:"$\x{a2}", rx199_cur
+ .local string rx203_tgt
+ .local int rx203_pos
+ .local int rx203_off
+ .local int rx203_eos
+ .local int rx203_rep
+ .local pmc rx203_cur
+ (rx203_cur, rx203_pos, rx203_tgt) = self."!cursor_start"()
+ rx203_cur."!cursor_debug"("START ", "pblock")
+ .lex unicode:"$\x{a2}", rx203_cur
.local pmc match
.lex "$/", match
- length rx199_eos, rx199_tgt
- set rx199_off, 0
- lt rx199_pos, 2, rx199_start
- sub rx199_off, rx199_pos, 1
- substr rx199_tgt, rx199_tgt, rx199_off
- rx199_start:
+ length rx203_eos, rx203_tgt
+ gt rx203_pos, rx203_eos, rx203_done
+ set rx203_off, 0
+ lt rx203_pos, 2, rx203_start
+ sub rx203_off, rx203_pos, 1
+ substr rx203_tgt, rx203_tgt, rx203_off
+ rx203_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan204_done
- goto rxscan204_scan
- rxscan204_loop:
- ($P10) = rx199_cur."from"()
+ ne $I10, -1, rxscan208_done
+ goto rxscan208_scan
+ rxscan208_loop:
+ ($P10) = rx203_cur."from"()
inc $P10
- set rx199_pos, $P10
- ge rx199_pos, rx199_eos, rxscan204_done
- rxscan204_scan:
- set_addr $I10, rxscan204_loop
- rx199_cur."!mark_push"(0, rx199_pos, $I10)
- rxscan204_done:
- alt205_0:
-.annotate 'line', 117
- set_addr $I10, alt205_1
- rx199_cur."!mark_push"(0, rx199_pos, $I10)
-.annotate 'line', 118
- # rx subrule "lambda" subtype=method negate=
- rx199_cur."!cursor_pos"(rx199_pos)
- $P10 = rx199_cur."lambda"()
- unless $P10, rx199_fail
- rx199_pos = $P10."pos"()
+ set rx203_pos, $P10
+ ge rx203_pos, rx203_eos, rxscan208_done
+ rxscan208_scan:
+ set_addr $I10, rxscan208_loop
+ rx203_cur."!mark_push"(0, rx203_pos, $I10)
+ rxscan208_done:
+ alt209_0:
.annotate 'line', 119
- # rx subrule "newpad" subtype=method negate=
- rx199_cur."!cursor_pos"(rx199_pos)
- $P10 = rx199_cur."newpad"()
- unless $P10, rx199_fail
- rx199_pos = $P10."pos"()
+ set_addr $I10, alt209_1
+ rx203_cur."!mark_push"(0, rx203_pos, $I10)
.annotate 'line', 120
+ # rx subrule "lambda" subtype=method negate=
+ rx203_cur."!cursor_pos"(rx203_pos)
+ $P10 = rx203_cur."lambda"()
+ unless $P10, rx203_fail
+ rx203_pos = $P10."pos"()
+.annotate 'line', 121
+ # rx subrule "newpad" subtype=method negate=
+ rx203_cur."!cursor_pos"(rx203_pos)
+ $P10 = rx203_cur."newpad"()
+ unless $P10, rx203_fail
+ rx203_pos = $P10."pos"()
+.annotate 'line', 122
# rx subrule "signature" subtype=capture negate=
- rx199_cur."!cursor_pos"(rx199_pos)
- $P10 = rx199_cur."signature"()
- unless $P10, rx199_fail
- rx199_cur."!mark_push"(0, -1, 0, $P10)
+ rx203_cur."!cursor_pos"(rx203_pos)
+ $P10 = rx203_cur."signature"()
+ unless $P10, rx203_fail
+ rx203_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("signature")
- rx199_pos = $P10."pos"()
-.annotate 'line', 121
+ rx203_pos = $P10."pos"()
+.annotate 'line', 123
# rx subrule "blockoid" subtype=capture negate=
- rx199_cur."!cursor_pos"(rx199_pos)
- $P10 = rx199_cur."blockoid"()
- unless $P10, rx199_fail
- rx199_cur."!mark_push"(0, -1, 0, $P10)
+ rx203_cur."!cursor_pos"(rx203_pos)
+ $P10 = rx203_cur."blockoid"()
+ unless $P10, rx203_fail
+ rx203_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx199_pos = $P10."pos"()
-.annotate 'line', 118
- goto alt205_end
- alt205_1:
- set_addr $I10, alt205_2
- rx199_cur."!mark_push"(0, rx199_pos, $I10)
-.annotate 'line', 122
+ rx203_pos = $P10."pos"()
+.annotate 'line', 120
+ goto alt209_end
+ alt209_1:
+ set_addr $I10, alt209_2
+ rx203_cur."!mark_push"(0, rx203_pos, $I10)
+.annotate 'line', 124
# rx enumcharlist negate=0 zerowidth
- ge rx199_pos, rx199_eos, rx199_fail
- sub $I10, rx199_pos, rx199_off
- substr $S10, rx199_tgt, $I10, 1
+ ge rx203_pos, rx203_eos, rx203_fail
+ sub $I10, rx203_pos, rx203_off
+ substr $S10, rx203_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx199_fail
-.annotate 'line', 123
+ lt $I11, 0, rx203_fail
+.annotate 'line', 125
# rx subrule "newpad" subtype=method negate=
- rx199_cur."!cursor_pos"(rx199_pos)
- $P10 = rx199_cur."newpad"()
- unless $P10, rx199_fail
- rx199_pos = $P10."pos"()
-.annotate 'line', 124
+ rx203_cur."!cursor_pos"(rx203_pos)
+ $P10 = rx203_cur."newpad"()
+ unless $P10, rx203_fail
+ rx203_pos = $P10."pos"()
+.annotate 'line', 126
# rx subrule "blockoid" subtype=capture negate=
- rx199_cur."!cursor_pos"(rx199_pos)
- $P10 = rx199_cur."blockoid"()
- unless $P10, rx199_fail
- rx199_cur."!mark_push"(0, -1, 0, $P10)
+ rx203_cur."!cursor_pos"(rx203_pos)
+ $P10 = rx203_cur."blockoid"()
+ unless $P10, rx203_fail
+ rx203_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx199_pos = $P10."pos"()
-.annotate 'line', 122
- goto alt205_end
- alt205_2:
-.annotate 'line', 125
+ rx203_pos = $P10."pos"()
+.annotate 'line', 124
+ goto alt209_end
+ alt209_2:
+.annotate 'line', 127
# rx subrule "panic" subtype=method negate=
- rx199_cur."!cursor_pos"(rx199_pos)
- $P10 = rx199_cur."panic"("Missing block")
- unless $P10, rx199_fail
- rx199_pos = $P10."pos"()
- alt205_end:
-.annotate 'line', 117
+ rx203_cur."!cursor_pos"(rx203_pos)
+ $P10 = rx203_cur."panic"("Missing block")
+ unless $P10, rx203_fail
+ rx203_pos = $P10."pos"()
+ alt209_end:
+.annotate 'line', 119
# rx pass
- rx199_cur."!cursor_pass"(rx199_pos, "pblock")
- rx199_cur."!cursor_debug"("PASS ", "pblock", " at pos=", rx199_pos)
- .return (rx199_cur)
- rx199_fail:
+ rx203_cur."!cursor_pass"(rx203_pos, "pblock")
+ rx203_cur."!cursor_debug"("PASS ", "pblock", " at pos=", rx203_pos)
+ .return (rx203_cur)
+ rx203_fail:
.annotate 'line', 4
- (rx199_rep, rx199_pos, $I10, $P10) = rx199_cur."!mark_fail"(0)
- lt rx199_pos, -1, rx199_done
- eq rx199_pos, -1, rx199_fail
+ (rx203_rep, rx203_pos, $I10, $P10) = rx203_cur."!mark_fail"(0)
+ lt rx203_pos, -1, rx203_done
+ eq rx203_pos, -1, rx203_fail
jump $I10
- rx199_done:
- rx199_cur."!cursor_fail"()
- rx199_cur."!cursor_debug"("FAIL ", "pblock")
- .return (rx199_cur)
+ rx203_done:
+ rx203_cur."!cursor_fail"()
+ rx203_cur."!cursor_debug"("FAIL ", "pblock")
+ .return (rx203_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__pblock" :subid("41_1274022894.43745") :method
+.sub "!PREFIX__pblock" :subid("41_1275811487.95429") :method
.annotate 'line', 4
- $P201 = self."!PREFIX__!subrule"("", "")
- $P202 = self."!PREFIX__!subrule"("", "")
- new $P203, "ResizablePMCArray"
- push $P203, $P201
- push $P203, "{"
- push $P203, $P202
- .return ($P203)
+ $P205 = self."!PREFIX__!subrule"("panic", "")
+ $P206 = self."!PREFIX__!subrule"("lambda", "")
+ new $P207, "ResizablePMCArray"
+ push $P207, $P205
+ push $P207, "{"
+ push $P207, $P206
+ .return ($P207)
.end
.namespace ["NQP";"Grammar"]
-.sub "lambda" :subid("42_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "lambda" :subid("42_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx207_tgt
- .local int rx207_pos
- .local int rx207_off
- .local int rx207_eos
- .local int rx207_rep
- .local pmc rx207_cur
- (rx207_cur, rx207_pos, rx207_tgt) = self."!cursor_start"()
- rx207_cur."!cursor_debug"("START ", "lambda")
- .lex unicode:"$\x{a2}", rx207_cur
+ .local string rx211_tgt
+ .local int rx211_pos
+ .local int rx211_off
+ .local int rx211_eos
+ .local int rx211_rep
+ .local pmc rx211_cur
+ (rx211_cur, rx211_pos, rx211_tgt) = self."!cursor_start"()
+ rx211_cur."!cursor_debug"("START ", "lambda")
+ .lex unicode:"$\x{a2}", rx211_cur
.local pmc match
.lex "$/", match
- length rx207_eos, rx207_tgt
- set rx207_off, 0
- lt rx207_pos, 2, rx207_start
- sub rx207_off, rx207_pos, 1
- substr rx207_tgt, rx207_tgt, rx207_off
- rx207_start:
+ length rx211_eos, rx211_tgt
+ gt rx211_pos, rx211_eos, rx211_done
+ set rx211_off, 0
+ lt rx211_pos, 2, rx211_start
+ sub rx211_off, rx211_pos, 1
+ substr rx211_tgt, rx211_tgt, rx211_off
+ rx211_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan210_done
- goto rxscan210_scan
- rxscan210_loop:
- ($P10) = rx207_cur."from"()
+ ne $I10, -1, rxscan214_done
+ goto rxscan214_scan
+ rxscan214_loop:
+ ($P10) = rx211_cur."from"()
inc $P10
- set rx207_pos, $P10
- ge rx207_pos, rx207_eos, rxscan210_done
- rxscan210_scan:
- set_addr $I10, rxscan210_loop
- rx207_cur."!mark_push"(0, rx207_pos, $I10)
- rxscan210_done:
- alt211_0:
-.annotate 'line', 128
- set_addr $I10, alt211_1
- rx207_cur."!mark_push"(0, rx207_pos, $I10)
+ set rx211_pos, $P10
+ ge rx211_pos, rx211_eos, rxscan214_done
+ rxscan214_scan:
+ set_addr $I10, rxscan214_loop
+ rx211_cur."!mark_push"(0, rx211_pos, $I10)
+ rxscan214_done:
+ alt215_0:
+.annotate 'line', 130
+ set_addr $I10, alt215_1
+ rx211_cur."!mark_push"(0, rx211_pos, $I10)
# rx literal "->"
- add $I11, rx207_pos, 2
- gt $I11, rx207_eos, rx207_fail
- sub $I11, rx207_pos, rx207_off
- substr $S10, rx207_tgt, $I11, 2
- ne $S10, "->", rx207_fail
- add rx207_pos, 2
- goto alt211_end
- alt211_1:
+ add $I11, rx211_pos, 2
+ gt $I11, rx211_eos, rx211_fail
+ sub $I11, rx211_pos, rx211_off
+ substr $S10, rx211_tgt, $I11, 2
+ ne $S10, "->", rx211_fail
+ add rx211_pos, 2
+ goto alt215_end
+ alt215_1:
# rx literal "<->"
- add $I11, rx207_pos, 3
- gt $I11, rx207_eos, rx207_fail
- sub $I11, rx207_pos, rx207_off
- substr $S10, rx207_tgt, $I11, 3
- ne $S10, "<->", rx207_fail
- add rx207_pos, 3
- alt211_end:
+ add $I11, rx211_pos, 3
+ gt $I11, rx211_eos, rx211_fail
+ sub $I11, rx211_pos, rx211_off
+ substr $S10, rx211_tgt, $I11, 3
+ ne $S10, "<->", rx211_fail
+ add rx211_pos, 3
+ alt215_end:
# rx pass
- rx207_cur."!cursor_pass"(rx207_pos, "lambda")
- rx207_cur."!cursor_debug"("PASS ", "lambda", " at pos=", rx207_pos)
- .return (rx207_cur)
- rx207_fail:
+ rx211_cur."!cursor_pass"(rx211_pos, "lambda")
+ rx211_cur."!cursor_debug"("PASS ", "lambda", " at pos=", rx211_pos)
+ .return (rx211_cur)
+ rx211_fail:
.annotate 'line', 4
- (rx207_rep, rx207_pos, $I10, $P10) = rx207_cur."!mark_fail"(0)
- lt rx207_pos, -1, rx207_done
- eq rx207_pos, -1, rx207_fail
+ (rx211_rep, rx211_pos, $I10, $P10) = rx211_cur."!mark_fail"(0)
+ lt rx211_pos, -1, rx211_done
+ eq rx211_pos, -1, rx211_fail
jump $I10
- rx207_done:
- rx207_cur."!cursor_fail"()
- rx207_cur."!cursor_debug"("FAIL ", "lambda")
- .return (rx207_cur)
+ rx211_done:
+ rx211_cur."!cursor_fail"()
+ rx211_cur."!cursor_debug"("FAIL ", "lambda")
+ .return (rx211_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__lambda" :subid("43_1274022894.43745") :method
+.sub "!PREFIX__lambda" :subid("43_1275811487.95429") :method
.annotate 'line', 4
- new $P209, "ResizablePMCArray"
- push $P209, "<->"
- push $P209, "->"
- .return ($P209)
+ new $P213, "ResizablePMCArray"
+ push $P213, "<->"
+ push $P213, "->"
+ .return ($P213)
.end
.namespace ["NQP";"Grammar"]
-.sub "block" :subid("44_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "block" :subid("44_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx213_tgt
- .local int rx213_pos
- .local int rx213_off
- .local int rx213_eos
- .local int rx213_rep
- .local pmc rx213_cur
- (rx213_cur, rx213_pos, rx213_tgt) = self."!cursor_start"()
- rx213_cur."!cursor_debug"("START ", "block")
- .lex unicode:"$\x{a2}", rx213_cur
+ .local string rx217_tgt
+ .local int rx217_pos
+ .local int rx217_off
+ .local int rx217_eos
+ .local int rx217_rep
+ .local pmc rx217_cur
+ (rx217_cur, rx217_pos, rx217_tgt) = self."!cursor_start"()
+ rx217_cur."!cursor_debug"("START ", "block")
+ .lex unicode:"$\x{a2}", rx217_cur
.local pmc match
.lex "$/", match
- length rx213_eos, rx213_tgt
- set rx213_off, 0
- lt rx213_pos, 2, rx213_start
- sub rx213_off, rx213_pos, 1
- substr rx213_tgt, rx213_tgt, rx213_off
- rx213_start:
+ length rx217_eos, rx217_tgt
+ gt rx217_pos, rx217_eos, rx217_done
+ set rx217_off, 0
+ lt rx217_pos, 2, rx217_start
+ sub rx217_off, rx217_pos, 1
+ substr rx217_tgt, rx217_tgt, rx217_off
+ rx217_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan217_done
- goto rxscan217_scan
- rxscan217_loop:
- ($P10) = rx213_cur."from"()
+ ne $I10, -1, rxscan221_done
+ goto rxscan221_scan
+ rxscan221_loop:
+ ($P10) = rx217_cur."from"()
inc $P10
- set rx213_pos, $P10
- ge rx213_pos, rx213_eos, rxscan217_done
- rxscan217_scan:
- set_addr $I10, rxscan217_loop
- rx213_cur."!mark_push"(0, rx213_pos, $I10)
- rxscan217_done:
- alt218_0:
-.annotate 'line', 131
- set_addr $I10, alt218_1
- rx213_cur."!mark_push"(0, rx213_pos, $I10)
+ set rx217_pos, $P10
+ ge rx217_pos, rx217_eos, rxscan221_done
+ rxscan221_scan:
+ set_addr $I10, rxscan221_loop
+ rx217_cur."!mark_push"(0, rx217_pos, $I10)
+ rxscan221_done:
+ alt222_0:
+.annotate 'line', 133
+ set_addr $I10, alt222_1
+ rx217_cur."!mark_push"(0, rx217_pos, $I10)
# rx enumcharlist negate=0 zerowidth
- ge rx213_pos, rx213_eos, rx213_fail
- sub $I10, rx213_pos, rx213_off
- substr $S10, rx213_tgt, $I10, 1
+ ge rx217_pos, rx217_eos, rx217_fail
+ sub $I10, rx217_pos, rx217_off
+ substr $S10, rx217_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx213_fail
- goto alt218_end
- alt218_1:
+ lt $I11, 0, rx217_fail
+ goto alt222_end
+ alt222_1:
# rx subrule "panic" subtype=method negate=
- rx213_cur."!cursor_pos"(rx213_pos)
- $P10 = rx213_cur."panic"("Missing block")
- unless $P10, rx213_fail
- rx213_pos = $P10."pos"()
- alt218_end:
-.annotate 'line', 132
+ rx217_cur."!cursor_pos"(rx217_pos)
+ $P10 = rx217_cur."panic"("Missing block")
+ unless $P10, rx217_fail
+ rx217_pos = $P10."pos"()
+ alt222_end:
+.annotate 'line', 134
# rx subrule "newpad" subtype=method negate=
- rx213_cur."!cursor_pos"(rx213_pos)
- $P10 = rx213_cur."newpad"()
- unless $P10, rx213_fail
- rx213_pos = $P10."pos"()
-.annotate 'line', 133
+ rx217_cur."!cursor_pos"(rx217_pos)
+ $P10 = rx217_cur."newpad"()
+ unless $P10, rx217_fail
+ rx217_pos = $P10."pos"()
+.annotate 'line', 135
# rx subrule "blockoid" subtype=capture negate=
- rx213_cur."!cursor_pos"(rx213_pos)
- $P10 = rx213_cur."blockoid"()
- unless $P10, rx213_fail
- rx213_cur."!mark_push"(0, -1, 0, $P10)
+ rx217_cur."!cursor_pos"(rx217_pos)
+ $P10 = rx217_cur."blockoid"()
+ unless $P10, rx217_fail
+ rx217_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx213_pos = $P10."pos"()
-.annotate 'line', 130
+ rx217_pos = $P10."pos"()
+.annotate 'line', 132
# rx pass
- rx213_cur."!cursor_pass"(rx213_pos, "block")
- rx213_cur."!cursor_debug"("PASS ", "block", " at pos=", rx213_pos)
- .return (rx213_cur)
- rx213_fail:
+ rx217_cur."!cursor_pass"(rx217_pos, "block")
+ rx217_cur."!cursor_debug"("PASS ", "block", " at pos=", rx217_pos)
+ .return (rx217_cur)
+ rx217_fail:
.annotate 'line', 4
- (rx213_rep, rx213_pos, $I10, $P10) = rx213_cur."!mark_fail"(0)
- lt rx213_pos, -1, rx213_done
- eq rx213_pos, -1, rx213_fail
+ (rx217_rep, rx217_pos, $I10, $P10) = rx217_cur."!mark_fail"(0)
+ lt rx217_pos, -1, rx217_done
+ eq rx217_pos, -1, rx217_fail
jump $I10
- rx213_done:
- rx213_cur."!cursor_fail"()
- rx213_cur."!cursor_debug"("FAIL ", "block")
- .return (rx213_cur)
+ rx217_done:
+ rx217_cur."!cursor_fail"()
+ rx217_cur."!cursor_debug"("FAIL ", "block")
+ .return (rx217_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__block" :subid("45_1274022894.43745") :method
+.sub "!PREFIX__block" :subid("45_1275811487.95429") :method
.annotate 'line', 4
- $P215 = self."!PREFIX__!subrule"("", "")
- new $P216, "ResizablePMCArray"
- push $P216, $P215
- push $P216, "{"
- .return ($P216)
+ $P219 = self."!PREFIX__!subrule"("panic", "")
+ new $P220, "ResizablePMCArray"
+ push $P220, $P219
+ push $P220, "{"
+ .return ($P220)
.end
.namespace ["NQP";"Grammar"]
-.sub "blockoid" :subid("46_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "blockoid" :subid("46_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx220_tgt
- .local int rx220_pos
- .local int rx220_off
- .local int rx220_eos
- .local int rx220_rep
- .local pmc rx220_cur
- (rx220_cur, rx220_pos, rx220_tgt) = self."!cursor_start"()
- rx220_cur."!cursor_debug"("START ", "blockoid")
- .lex unicode:"$\x{a2}", rx220_cur
+ .local string rx224_tgt
+ .local int rx224_pos
+ .local int rx224_off
+ .local int rx224_eos
+ .local int rx224_rep
+ .local pmc rx224_cur
+ (rx224_cur, rx224_pos, rx224_tgt) = self."!cursor_start"()
+ rx224_cur."!cursor_debug"("START ", "blockoid")
+ .lex unicode:"$\x{a2}", rx224_cur
.local pmc match
.lex "$/", match
- length rx220_eos, rx220_tgt
- set rx220_off, 0
- lt rx220_pos, 2, rx220_start
- sub rx220_off, rx220_pos, 1
- substr rx220_tgt, rx220_tgt, rx220_off
- rx220_start:
+ length rx224_eos, rx224_tgt
+ gt rx224_pos, rx224_eos, rx224_done
+ set rx224_off, 0
+ lt rx224_pos, 2, rx224_start
+ sub rx224_off, rx224_pos, 1
+ substr rx224_tgt, rx224_tgt, rx224_off
+ rx224_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan224_done
- goto rxscan224_scan
- rxscan224_loop:
- ($P10) = rx220_cur."from"()
+ ne $I10, -1, rxscan228_done
+ goto rxscan228_scan
+ rxscan228_loop:
+ ($P10) = rx224_cur."from"()
inc $P10
- set rx220_pos, $P10
- ge rx220_pos, rx220_eos, rxscan224_done
- rxscan224_scan:
- set_addr $I10, rxscan224_loop
- rx220_cur."!mark_push"(0, rx220_pos, $I10)
- rxscan224_done:
-.annotate 'line', 137
+ set rx224_pos, $P10
+ ge rx224_pos, rx224_eos, rxscan228_done
+ rxscan228_scan:
+ set_addr $I10, rxscan228_loop
+ rx224_cur."!mark_push"(0, rx224_pos, $I10)
+ rxscan228_done:
+.annotate 'line', 139
# rx subrule "finishpad" subtype=method negate=
- rx220_cur."!cursor_pos"(rx220_pos)
- $P10 = rx220_cur."finishpad"()
- unless $P10, rx220_fail
- rx220_pos = $P10."pos"()
-.annotate 'line', 138
+ rx224_cur."!cursor_pos"(rx224_pos)
+ $P10 = rx224_cur."finishpad"()
+ unless $P10, rx224_fail
+ rx224_pos = $P10."pos"()
+.annotate 'line', 140
# rx literal "{"
- add $I11, rx220_pos, 1
- gt $I11, rx220_eos, rx220_fail
- sub $I11, rx220_pos, rx220_off
- substr $S10, rx220_tgt, $I11, 1
- ne $S10, "{", rx220_fail
- add rx220_pos, 1
+ add $I11, rx224_pos, 1
+ gt $I11, rx224_eos, rx224_fail
+ sub $I11, rx224_pos, rx224_off
+ substr $S10, rx224_tgt, $I11, 1
+ ne $S10, "{", rx224_fail
+ add rx224_pos, 1
# rx subrule "statementlist" subtype=capture negate=
- rx220_cur."!cursor_pos"(rx220_pos)
- $P10 = rx220_cur."statementlist"()
- unless $P10, rx220_fail
- rx220_cur."!mark_push"(0, -1, 0, $P10)
+ rx224_cur."!cursor_pos"(rx224_pos)
+ $P10 = rx224_cur."statementlist"()
+ unless $P10, rx224_fail
+ rx224_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statementlist")
- rx220_pos = $P10."pos"()
- alt225_0:
- set_addr $I10, alt225_1
- rx220_cur."!mark_push"(0, rx220_pos, $I10)
+ rx224_pos = $P10."pos"()
+ alt229_0:
+ set_addr $I10, alt229_1
+ rx224_cur."!mark_push"(0, rx224_pos, $I10)
# rx literal "}"
- add $I11, rx220_pos, 1
- gt $I11, rx220_eos, rx220_fail
- sub $I11, rx220_pos, rx220_off
- substr $S10, rx220_tgt, $I11, 1
- ne $S10, "}", rx220_fail
- add rx220_pos, 1
- goto alt225_end
- alt225_1:
+ add $I11, rx224_pos, 1
+ gt $I11, rx224_eos, rx224_fail
+ sub $I11, rx224_pos, rx224_off
+ substr $S10, rx224_tgt, $I11, 1
+ ne $S10, "}", rx224_fail
+ add rx224_pos, 1
+ goto alt229_end
+ alt229_1:
# rx subrule "FAILGOAL" subtype=method negate=
- rx220_cur."!cursor_pos"(rx220_pos)
- $P10 = rx220_cur."FAILGOAL"("'}'")
- unless $P10, rx220_fail
- rx220_pos = $P10."pos"()
- alt225_end:
-.annotate 'line', 139
+ rx224_cur."!cursor_pos"(rx224_pos)
+ $P10 = rx224_cur."FAILGOAL"("'}'")
+ unless $P10, rx224_fail
+ rx224_pos = $P10."pos"()
+ alt229_end:
+.annotate 'line', 141
# rx subrule "ENDSTMT" subtype=zerowidth negate=
- rx220_cur."!cursor_pos"(rx220_pos)
- $P10 = rx220_cur."ENDSTMT"()
- unless $P10, rx220_fail
-.annotate 'line', 136
+ rx224_cur."!cursor_pos"(rx224_pos)
+ $P10 = rx224_cur."ENDSTMT"()
+ unless $P10, rx224_fail
+.annotate 'line', 138
# rx pass
- rx220_cur."!cursor_pass"(rx220_pos, "blockoid")
- rx220_cur."!cursor_debug"("PASS ", "blockoid", " at pos=", rx220_pos)
- .return (rx220_cur)
- rx220_fail:
+ rx224_cur."!cursor_pass"(rx224_pos, "blockoid")
+ rx224_cur."!cursor_debug"("PASS ", "blockoid", " at pos=", rx224_pos)
+ .return (rx224_cur)
+ rx224_fail:
.annotate 'line', 4
- (rx220_rep, rx220_pos, $I10, $P10) = rx220_cur."!mark_fail"(0)
- lt rx220_pos, -1, rx220_done
- eq rx220_pos, -1, rx220_fail
+ (rx224_rep, rx224_pos, $I10, $P10) = rx224_cur."!mark_fail"(0)
+ lt rx224_pos, -1, rx224_done
+ eq rx224_pos, -1, rx224_fail
jump $I10
- rx220_done:
- rx220_cur."!cursor_fail"()
- rx220_cur."!cursor_debug"("FAIL ", "blockoid")
- .return (rx220_cur)
+ rx224_done:
+ rx224_cur."!cursor_fail"()
+ rx224_cur."!cursor_debug"("FAIL ", "blockoid")
+ .return (rx224_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blockoid" :subid("47_1274022894.43745") :method
+.sub "!PREFIX__blockoid" :subid("47_1275811487.95429") :method
.annotate 'line', 4
- $P222 = self."!PREFIX__!subrule"("", "")
- new $P223, "ResizablePMCArray"
- push $P223, $P222
- .return ($P223)
+ $P226 = self."!PREFIX__!subrule"("finishpad", "")
+ new $P227, "ResizablePMCArray"
+ push $P227, $P226
+ .return ($P227)
.end
.namespace ["NQP";"Grammar"]
-.sub "newpad" :subid("48_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "newpad" :subid("48_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx228_tgt
- .local int rx228_pos
- .local int rx228_off
- .local int rx228_eos
- .local int rx228_rep
- .local pmc rx228_cur
- (rx228_cur, rx228_pos, rx228_tgt) = self."!cursor_start"()
- rx228_cur."!cursor_debug"("START ", "newpad")
- .lex unicode:"$\x{a2}", rx228_cur
+ .local string rx232_tgt
+ .local int rx232_pos
+ .local int rx232_off
+ .local int rx232_eos
+ .local int rx232_rep
+ .local pmc rx232_cur
+ (rx232_cur, rx232_pos, rx232_tgt) = self."!cursor_start"()
+ rx232_cur."!cursor_debug"("START ", "newpad")
+ .lex unicode:"$\x{a2}", rx232_cur
.local pmc match
.lex "$/", match
- length rx228_eos, rx228_tgt
- set rx228_off, 0
- lt rx228_pos, 2, rx228_start
- sub rx228_off, rx228_pos, 1
- substr rx228_tgt, rx228_tgt, rx228_off
- rx228_start:
+ length rx232_eos, rx232_tgt
+ gt rx232_pos, rx232_eos, rx232_done
+ set rx232_off, 0
+ lt rx232_pos, 2, rx232_start
+ sub rx232_off, rx232_pos, 1
+ substr rx232_tgt, rx232_tgt, rx232_off
+ rx232_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan231_done
- goto rxscan231_scan
- rxscan231_loop:
- ($P10) = rx228_cur."from"()
+ ne $I10, -1, rxscan235_done
+ goto rxscan235_scan
+ rxscan235_loop:
+ ($P10) = rx232_cur."from"()
inc $P10
- set rx228_pos, $P10
- ge rx228_pos, rx228_eos, rxscan231_done
- rxscan231_scan:
- set_addr $I10, rxscan231_loop
- rx228_cur."!mark_push"(0, rx228_pos, $I10)
- rxscan231_done:
-.annotate 'line', 142
+ set rx232_pos, $P10
+ ge rx232_pos, rx232_eos, rxscan235_done
+ rxscan235_scan:
+ set_addr $I10, rxscan235_loop
+ rx232_cur."!mark_push"(0, rx232_pos, $I10)
+ rxscan235_done:
+.annotate 'line', 144
# rx pass
- rx228_cur."!cursor_pass"(rx228_pos, "newpad")
- rx228_cur."!cursor_debug"("PASS ", "newpad", " at pos=", rx228_pos)
- .return (rx228_cur)
- rx228_fail:
+ rx232_cur."!cursor_pass"(rx232_pos, "newpad")
+ rx232_cur."!cursor_debug"("PASS ", "newpad", " at pos=", rx232_pos)
+ .return (rx232_cur)
+ rx232_fail:
.annotate 'line', 4
- (rx228_rep, rx228_pos, $I10, $P10) = rx228_cur."!mark_fail"(0)
- lt rx228_pos, -1, rx228_done
- eq rx228_pos, -1, rx228_fail
+ (rx232_rep, rx232_pos, $I10, $P10) = rx232_cur."!mark_fail"(0)
+ lt rx232_pos, -1, rx232_done
+ eq rx232_pos, -1, rx232_fail
jump $I10
- rx228_done:
- rx228_cur."!cursor_fail"()
- rx228_cur."!cursor_debug"("FAIL ", "newpad")
- .return (rx228_cur)
+ rx232_done:
+ rx232_cur."!cursor_fail"()
+ rx232_cur."!cursor_debug"("FAIL ", "newpad")
+ .return (rx232_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__newpad" :subid("49_1274022894.43745") :method
+.sub "!PREFIX__newpad" :subid("49_1275811487.95429") :method
.annotate 'line', 4
- new $P230, "ResizablePMCArray"
- push $P230, ""
- .return ($P230)
+ new $P234, "ResizablePMCArray"
+ push $P234, ""
+ .return ($P234)
.end
.namespace ["NQP";"Grammar"]
-.sub "finishpad" :subid("50_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "outerctx" :subid("50_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx233_tgt
- .local int rx233_pos
- .local int rx233_off
- .local int rx233_eos
- .local int rx233_rep
- .local pmc rx233_cur
- (rx233_cur, rx233_pos, rx233_tgt) = self."!cursor_start"()
- rx233_cur."!cursor_debug"("START ", "finishpad")
- .lex unicode:"$\x{a2}", rx233_cur
+ .local string rx237_tgt
+ .local int rx237_pos
+ .local int rx237_off
+ .local int rx237_eos
+ .local int rx237_rep
+ .local pmc rx237_cur
+ (rx237_cur, rx237_pos, rx237_tgt) = self."!cursor_start"()
+ rx237_cur."!cursor_debug"("START ", "outerctx")
+ .lex unicode:"$\x{a2}", rx237_cur
.local pmc match
.lex "$/", match
- length rx233_eos, rx233_tgt
- set rx233_off, 0
- lt rx233_pos, 2, rx233_start
- sub rx233_off, rx233_pos, 1
- substr rx233_tgt, rx233_tgt, rx233_off
- rx233_start:
+ length rx237_eos, rx237_tgt
+ gt rx237_pos, rx237_eos, rx237_done
+ set rx237_off, 0
+ lt rx237_pos, 2, rx237_start
+ sub rx237_off, rx237_pos, 1
+ substr rx237_tgt, rx237_tgt, rx237_off
+ rx237_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan236_done
- goto rxscan236_scan
- rxscan236_loop:
- ($P10) = rx233_cur."from"()
+ ne $I10, -1, rxscan240_done
+ goto rxscan240_scan
+ rxscan240_loop:
+ ($P10) = rx237_cur."from"()
inc $P10
- set rx233_pos, $P10
- ge rx233_pos, rx233_eos, rxscan236_done
- rxscan236_scan:
- set_addr $I10, rxscan236_loop
- rx233_cur."!mark_push"(0, rx233_pos, $I10)
- rxscan236_done:
-.annotate 'line', 143
+ set rx237_pos, $P10
+ ge rx237_pos, rx237_eos, rxscan240_done
+ rxscan240_scan:
+ set_addr $I10, rxscan240_loop
+ rx237_cur."!mark_push"(0, rx237_pos, $I10)
+ rxscan240_done:
+.annotate 'line', 145
# rx pass
- rx233_cur."!cursor_pass"(rx233_pos, "finishpad")
- rx233_cur."!cursor_debug"("PASS ", "finishpad", " at pos=", rx233_pos)
- .return (rx233_cur)
- rx233_fail:
+ rx237_cur."!cursor_pass"(rx237_pos, "outerctx")
+ rx237_cur."!cursor_debug"("PASS ", "outerctx", " at pos=", rx237_pos)
+ .return (rx237_cur)
+ rx237_fail:
.annotate 'line', 4
- (rx233_rep, rx233_pos, $I10, $P10) = rx233_cur."!mark_fail"(0)
- lt rx233_pos, -1, rx233_done
- eq rx233_pos, -1, rx233_fail
+ (rx237_rep, rx237_pos, $I10, $P10) = rx237_cur."!mark_fail"(0)
+ lt rx237_pos, -1, rx237_done
+ eq rx237_pos, -1, rx237_fail
jump $I10
- rx233_done:
- rx233_cur."!cursor_fail"()
- rx233_cur."!cursor_debug"("FAIL ", "finishpad")
- .return (rx233_cur)
+ rx237_done:
+ rx237_cur."!cursor_fail"()
+ rx237_cur."!cursor_debug"("FAIL ", "outerctx")
+ .return (rx237_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__finishpad" :subid("51_1274022894.43745") :method
+.sub "!PREFIX__outerctx" :subid("51_1275811487.95429") :method
.annotate 'line', 4
- new $P235, "ResizablePMCArray"
- push $P235, ""
- .return ($P235)
+ new $P239, "ResizablePMCArray"
+ push $P239, ""
+ .return ($P239)
.end
.namespace ["NQP";"Grammar"]
-.sub "terminator" :subid("52_1274022894.43745") :method
-.annotate 'line', 145
- $P238 = self."!protoregex"("terminator")
- .return ($P238)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator" :subid("53_1274022894.43745") :method
-.annotate 'line', 145
- $P240 = self."!PREFIX__!protoregex"("terminator")
- .return ($P240)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "terminator:sym<;>" :subid("54_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "finishpad" :subid("52_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
.local string rx242_tgt
.local int rx242_pos
@@ -3088,11 +3130,12 @@
.local int rx242_rep
.local pmc rx242_cur
(rx242_cur, rx242_pos, rx242_tgt) = self."!cursor_start"()
- rx242_cur."!cursor_debug"("START ", "terminator:sym<;>")
+ rx242_cur."!cursor_debug"("START ", "finishpad")
.lex unicode:"$\x{a2}", rx242_cur
.local pmc match
.lex "$/", match
length rx242_eos, rx242_tgt
+ gt rx242_pos, rx242_eos, rx242_done
set rx242_off, 0
lt rx242_pos, 2, rx242_start
sub rx242_off, rx242_pos, 1
@@ -3110,16 +3153,10 @@
set_addr $I10, rxscan245_loop
rx242_cur."!mark_push"(0, rx242_pos, $I10)
rxscan245_done:
-.annotate 'line', 147
- # rx enumcharlist negate=0 zerowidth
- ge rx242_pos, rx242_eos, rx242_fail
- sub $I10, rx242_pos, rx242_off
- substr $S10, rx242_tgt, $I10, 1
- index $I11, ";", $S10
- lt $I11, 0, rx242_fail
+.annotate 'line', 146
# rx pass
- rx242_cur."!cursor_pass"(rx242_pos, "terminator:sym<;>")
- rx242_cur."!cursor_debug"("PASS ", "terminator:sym<;>", " at pos=", rx242_pos)
+ rx242_cur."!cursor_pass"(rx242_pos, "finishpad")
+ rx242_cur."!cursor_debug"("PASS ", "finishpad", " at pos=", rx242_pos)
.return (rx242_cur)
rx242_fail:
.annotate 'line', 4
@@ -3129,105 +3166,106 @@
jump $I10
rx242_done:
rx242_cur."!cursor_fail"()
- rx242_cur."!cursor_debug"("FAIL ", "terminator:sym<;>")
+ rx242_cur."!cursor_debug"("FAIL ", "finishpad")
.return (rx242_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<;>" :subid("55_1274022894.43745") :method
+.sub "!PREFIX__finishpad" :subid("53_1275811487.95429") :method
.annotate 'line', 4
new $P244, "ResizablePMCArray"
- push $P244, ";"
+ push $P244, ""
.return ($P244)
.end
.namespace ["NQP";"Grammar"]
-.sub "terminator:sym<}>" :subid("56_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx247_tgt
- .local int rx247_pos
- .local int rx247_off
- .local int rx247_eos
- .local int rx247_rep
- .local pmc rx247_cur
- (rx247_cur, rx247_pos, rx247_tgt) = self."!cursor_start"()
- rx247_cur."!cursor_debug"("START ", "terminator:sym<}>")
- .lex unicode:"$\x{a2}", rx247_cur
- .local pmc match
- .lex "$/", match
- length rx247_eos, rx247_tgt
- set rx247_off, 0
- lt rx247_pos, 2, rx247_start
- sub rx247_off, rx247_pos, 1
- substr rx247_tgt, rx247_tgt, rx247_off
- rx247_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan250_done
- goto rxscan250_scan
- rxscan250_loop:
- ($P10) = rx247_cur."from"()
- inc $P10
- set rx247_pos, $P10
- ge rx247_pos, rx247_eos, rxscan250_done
- rxscan250_scan:
- set_addr $I10, rxscan250_loop
- rx247_cur."!mark_push"(0, rx247_pos, $I10)
- rxscan250_done:
+.sub "terminator" :subid("54_1275811487.95429") :method
.annotate 'line', 148
- # rx enumcharlist negate=0 zerowidth
- ge rx247_pos, rx247_eos, rx247_fail
- sub $I10, rx247_pos, rx247_off
- substr $S10, rx247_tgt, $I10, 1
- index $I11, "}", $S10
- lt $I11, 0, rx247_fail
- # rx pass
- rx247_cur."!cursor_pass"(rx247_pos, "terminator:sym<}>")
- rx247_cur."!cursor_debug"("PASS ", "terminator:sym<}>", " at pos=", rx247_pos)
- .return (rx247_cur)
- rx247_fail:
-.annotate 'line', 4
- (rx247_rep, rx247_pos, $I10, $P10) = rx247_cur."!mark_fail"(0)
- lt rx247_pos, -1, rx247_done
- eq rx247_pos, -1, rx247_fail
- jump $I10
- rx247_done:
- rx247_cur."!cursor_fail"()
- rx247_cur."!cursor_debug"("FAIL ", "terminator:sym<}>")
- .return (rx247_cur)
- .return ()
+ $P247 = self."!protoregex"("terminator")
+ .return ($P247)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__terminator:sym<}>" :subid("57_1274022894.43745") :method
-.annotate 'line', 4
- new $P249, "ResizablePMCArray"
- push $P249, "}"
+.sub "!PREFIX__terminator" :subid("55_1275811487.95429") :method
+.annotate 'line', 148
+ $P249 = self."!PREFIX__!protoregex"("terminator")
.return ($P249)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control" :subid("58_1274022894.43745") :method
-.annotate 'line', 152
- $P252 = self."!protoregex"("statement_control")
- .return ($P252)
+.sub "terminator:sym<;>" :subid("56_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx251_tgt
+ .local int rx251_pos
+ .local int rx251_off
+ .local int rx251_eos
+ .local int rx251_rep
+ .local pmc rx251_cur
+ (rx251_cur, rx251_pos, rx251_tgt) = self."!cursor_start"()
+ rx251_cur."!cursor_debug"("START ", "terminator:sym<;>")
+ .lex unicode:"$\x{a2}", rx251_cur
+ .local pmc match
+ .lex "$/", match
+ length rx251_eos, rx251_tgt
+ gt rx251_pos, rx251_eos, rx251_done
+ set rx251_off, 0
+ lt rx251_pos, 2, rx251_start
+ sub rx251_off, rx251_pos, 1
+ substr rx251_tgt, rx251_tgt, rx251_off
+ rx251_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan254_done
+ goto rxscan254_scan
+ rxscan254_loop:
+ ($P10) = rx251_cur."from"()
+ inc $P10
+ set rx251_pos, $P10
+ ge rx251_pos, rx251_eos, rxscan254_done
+ rxscan254_scan:
+ set_addr $I10, rxscan254_loop
+ rx251_cur."!mark_push"(0, rx251_pos, $I10)
+ rxscan254_done:
+.annotate 'line', 150
+ # rx enumcharlist negate=0 zerowidth
+ ge rx251_pos, rx251_eos, rx251_fail
+ sub $I10, rx251_pos, rx251_off
+ substr $S10, rx251_tgt, $I10, 1
+ index $I11, ";", $S10
+ lt $I11, 0, rx251_fail
+ # rx pass
+ rx251_cur."!cursor_pass"(rx251_pos, "terminator:sym<;>")
+ rx251_cur."!cursor_debug"("PASS ", "terminator:sym<;>", " at pos=", rx251_pos)
+ .return (rx251_cur)
+ rx251_fail:
+.annotate 'line', 4
+ (rx251_rep, rx251_pos, $I10, $P10) = rx251_cur."!mark_fail"(0)
+ lt rx251_pos, -1, rx251_done
+ eq rx251_pos, -1, rx251_fail
+ jump $I10
+ rx251_done:
+ rx251_cur."!cursor_fail"()
+ rx251_cur."!cursor_debug"("FAIL ", "terminator:sym<;>")
+ .return (rx251_cur)
+ .return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control" :subid("59_1274022894.43745") :method
-.annotate 'line', 152
- $P254 = self."!PREFIX__!protoregex"("statement_control")
- .return ($P254)
+.sub "!PREFIX__terminator:sym<;>" :subid("57_1275811487.95429") :method
+.annotate 'line', 4
+ new $P253, "ResizablePMCArray"
+ push $P253, ";"
+ .return ($P253)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<if>" :subid("60_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "terminator:sym<}>" :subid("58_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
.local string rx256_tgt
.local int rx256_pos
@@ -3236,12 +3274,12 @@
.local int rx256_rep
.local pmc rx256_cur
(rx256_cur, rx256_pos, rx256_tgt) = self."!cursor_start"()
- rx256_cur."!cursor_debug"("START ", "statement_control:sym<if>")
- rx256_cur."!cursor_caparray"("xblock", "else")
+ rx256_cur."!cursor_debug"("START ", "terminator:sym<}>")
.lex unicode:"$\x{a2}", rx256_cur
.local pmc match
.lex "$/", match
length rx256_eos, rx256_tgt
+ gt rx256_pos, rx256_eos, rx256_done
set rx256_off, 0
lt rx256_pos, 2, rx256_start
sub rx256_off, rx256_pos, 1
@@ -3259,152 +3297,16 @@
set_addr $I10, rxscan259_loop
rx256_cur."!mark_push"(0, rx256_pos, $I10)
rxscan259_done:
-.annotate 'line', 155
- # rx subcapture "sym"
- set_addr $I10, rxcap_260_fail
- rx256_cur."!mark_push"(0, rx256_pos, $I10)
- # rx literal "if"
- add $I11, rx256_pos, 2
- gt $I11, rx256_eos, rx256_fail
- sub $I11, rx256_pos, rx256_off
- substr $S10, rx256_tgt, $I11, 2
- ne $S10, "if", rx256_fail
- add rx256_pos, 2
- set_addr $I10, rxcap_260_fail
- ($I12, $I11) = rx256_cur."!mark_peek"($I10)
- rx256_cur."!cursor_pos"($I11)
- ($P10) = rx256_cur."!cursor_start"()
- $P10."!cursor_pass"(rx256_pos, "")
- rx256_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_260_done
- rxcap_260_fail:
- goto rx256_fail
- rxcap_260_done:
- # rx charclass s
- ge rx256_pos, rx256_eos, rx256_fail
- sub $I10, rx256_pos, rx256_off
- is_cclass $I11, 32, rx256_tgt, $I10
- unless $I11, rx256_fail
- inc rx256_pos
- # rx subrule "ws" subtype=method negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."ws"()
- unless $P10, rx256_fail
- rx256_pos = $P10."pos"()
-.annotate 'line', 156
- # rx subrule "xblock" subtype=capture negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."xblock"()
- unless $P10, rx256_fail
- rx256_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("xblock")
- rx256_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."ws"()
- unless $P10, rx256_fail
- rx256_pos = $P10."pos"()
-.annotate 'line', 157
- # rx rxquantr263 ** 0..*
- set_addr $I267, rxquantr263_done
- rx256_cur."!mark_push"(0, rx256_pos, $I267)
- rxquantr263_loop:
- # rx subrule "ws" subtype=method negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."ws"()
- unless $P10, rx256_fail
- rx256_pos = $P10."pos"()
- # rx literal "elsif"
- add $I11, rx256_pos, 5
- gt $I11, rx256_eos, rx256_fail
- sub $I11, rx256_pos, rx256_off
- substr $S10, rx256_tgt, $I11, 5
- ne $S10, "elsif", rx256_fail
- add rx256_pos, 5
- # rx charclass s
- ge rx256_pos, rx256_eos, rx256_fail
- sub $I10, rx256_pos, rx256_off
- is_cclass $I11, 32, rx256_tgt, $I10
- unless $I11, rx256_fail
- inc rx256_pos
- # rx subrule "ws" subtype=method negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."ws"()
- unless $P10, rx256_fail
- rx256_pos = $P10."pos"()
- # rx subrule "xblock" subtype=capture negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."xblock"()
- unless $P10, rx256_fail
- rx256_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("xblock")
- rx256_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."ws"()
- unless $P10, rx256_fail
- rx256_pos = $P10."pos"()
- (rx256_rep) = rx256_cur."!mark_commit"($I267)
- rx256_cur."!mark_push"(rx256_rep, rx256_pos, $I267)
- goto rxquantr263_loop
- rxquantr263_done:
- # rx subrule "ws" subtype=method negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."ws"()
- unless $P10, rx256_fail
- rx256_pos = $P10."pos"()
-.annotate 'line', 158
- # rx rxquantr269 ** 0..1
- set_addr $I273, rxquantr269_done
- rx256_cur."!mark_push"(0, rx256_pos, $I273)
- rxquantr269_loop:
- # rx subrule "ws" subtype=method negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."ws"()
- unless $P10, rx256_fail
- rx256_pos = $P10."pos"()
- # rx literal "else"
- add $I11, rx256_pos, 4
- gt $I11, rx256_eos, rx256_fail
- sub $I11, rx256_pos, rx256_off
- substr $S10, rx256_tgt, $I11, 4
- ne $S10, "else", rx256_fail
- add rx256_pos, 4
- # rx charclass s
+.annotate 'line', 151
+ # rx enumcharlist negate=0 zerowidth
ge rx256_pos, rx256_eos, rx256_fail
sub $I10, rx256_pos, rx256_off
- is_cclass $I11, 32, rx256_tgt, $I10
- unless $I11, rx256_fail
- inc rx256_pos
- # rx subrule "ws" subtype=method negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."ws"()
- unless $P10, rx256_fail
- rx256_pos = $P10."pos"()
- # rx subrule "pblock" subtype=capture negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."pblock"()
- unless $P10, rx256_fail
- rx256_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("else")
- rx256_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."ws"()
- unless $P10, rx256_fail
- rx256_pos = $P10."pos"()
- (rx256_rep) = rx256_cur."!mark_commit"($I273)
- rxquantr269_done:
- # rx subrule "ws" subtype=method negate=
- rx256_cur."!cursor_pos"(rx256_pos)
- $P10 = rx256_cur."ws"()
- unless $P10, rx256_fail
- rx256_pos = $P10."pos"()
-.annotate 'line', 154
+ substr $S10, rx256_tgt, $I10, 1
+ index $I11, "}", $S10
+ lt $I11, 0, rx256_fail
# rx pass
- rx256_cur."!cursor_pass"(rx256_pos, "statement_control:sym<if>")
- rx256_cur."!cursor_debug"("PASS ", "statement_control:sym<if>", " at pos=", rx256_pos)
+ rx256_cur."!cursor_pass"(rx256_pos, "terminator:sym<}>")
+ rx256_cur."!cursor_debug"("PASS ", "terminator:sym<}>", " at pos=", rx256_pos)
.return (rx256_cur)
rx256_fail:
.annotate 'line', 4
@@ -3414,350 +3316,452 @@
jump $I10
rx256_done:
rx256_cur."!cursor_fail"()
- rx256_cur."!cursor_debug"("FAIL ", "statement_control:sym<if>")
+ rx256_cur."!cursor_debug"("FAIL ", "terminator:sym<}>")
.return (rx256_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<if>" :subid("61_1274022894.43745") :method
+.sub "!PREFIX__terminator:sym<}>" :subid("59_1275811487.95429") :method
.annotate 'line', 4
new $P258, "ResizablePMCArray"
- push $P258, "if"
+ push $P258, "}"
.return ($P258)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<unless>" :subid("62_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_control" :subid("60_1275811487.95429") :method
+.annotate 'line', 155
+ $P261 = self."!protoregex"("statement_control")
+ .return ($P261)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__statement_control" :subid("61_1275811487.95429") :method
+.annotate 'line', 155
+ $P263 = self."!PREFIX__!protoregex"("statement_control")
+ .return ($P263)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "statement_control:sym<if>" :subid("62_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .const 'Sub' $P286 = "64_1274022894.43745"
- capture_lex $P286
- .local string rx276_tgt
- .local int rx276_pos
- .local int rx276_off
- .local int rx276_eos
- .local int rx276_rep
- .local pmc rx276_cur
- (rx276_cur, rx276_pos, rx276_tgt) = self."!cursor_start"()
- rx276_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
- .lex unicode:"$\x{a2}", rx276_cur
- .local pmc match
- .lex "$/", match
- length rx276_eos, rx276_tgt
- set rx276_off, 0
- lt rx276_pos, 2, rx276_start
- sub rx276_off, rx276_pos, 1
- substr rx276_tgt, rx276_tgt, rx276_off
- rx276_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan279_done
- goto rxscan279_scan
- rxscan279_loop:
- ($P10) = rx276_cur."from"()
- inc $P10
- set rx276_pos, $P10
- ge rx276_pos, rx276_eos, rxscan279_done
- rxscan279_scan:
- set_addr $I10, rxscan279_loop
- rx276_cur."!mark_push"(0, rx276_pos, $I10)
- rxscan279_done:
-.annotate 'line', 162
+ .local string rx265_tgt
+ .local int rx265_pos
+ .local int rx265_off
+ .local int rx265_eos
+ .local int rx265_rep
+ .local pmc rx265_cur
+ (rx265_cur, rx265_pos, rx265_tgt) = self."!cursor_start"()
+ rx265_cur."!cursor_debug"("START ", "statement_control:sym<if>")
+ rx265_cur."!cursor_caparray"("else", "xblock")
+ .lex unicode:"$\x{a2}", rx265_cur
+ .local pmc match
+ .lex "$/", match
+ length rx265_eos, rx265_tgt
+ gt rx265_pos, rx265_eos, rx265_done
+ set rx265_off, 0
+ lt rx265_pos, 2, rx265_start
+ sub rx265_off, rx265_pos, 1
+ substr rx265_tgt, rx265_tgt, rx265_off
+ rx265_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan268_done
+ goto rxscan268_scan
+ rxscan268_loop:
+ ($P10) = rx265_cur."from"()
+ inc $P10
+ set rx265_pos, $P10
+ ge rx265_pos, rx265_eos, rxscan268_done
+ rxscan268_scan:
+ set_addr $I10, rxscan268_loop
+ rx265_cur."!mark_push"(0, rx265_pos, $I10)
+ rxscan268_done:
+.annotate 'line', 158
# rx subcapture "sym"
- set_addr $I10, rxcap_280_fail
- rx276_cur."!mark_push"(0, rx276_pos, $I10)
- # rx literal "unless"
- add $I11, rx276_pos, 6
- gt $I11, rx276_eos, rx276_fail
- sub $I11, rx276_pos, rx276_off
- substr $S10, rx276_tgt, $I11, 6
- ne $S10, "unless", rx276_fail
- add rx276_pos, 6
- set_addr $I10, rxcap_280_fail
- ($I12, $I11) = rx276_cur."!mark_peek"($I10)
- rx276_cur."!cursor_pos"($I11)
- ($P10) = rx276_cur."!cursor_start"()
- $P10."!cursor_pass"(rx276_pos, "")
- rx276_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_269_fail
+ rx265_cur."!mark_push"(0, rx265_pos, $I10)
+ # rx literal "if"
+ add $I11, rx265_pos, 2
+ gt $I11, rx265_eos, rx265_fail
+ sub $I11, rx265_pos, rx265_off
+ substr $S10, rx265_tgt, $I11, 2
+ ne $S10, "if", rx265_fail
+ add rx265_pos, 2
+ set_addr $I10, rxcap_269_fail
+ ($I12, $I11) = rx265_cur."!mark_peek"($I10)
+ rx265_cur."!cursor_pos"($I11)
+ ($P10) = rx265_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx265_pos, "")
+ rx265_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_280_done
- rxcap_280_fail:
- goto rx276_fail
- rxcap_280_done:
+ goto rxcap_269_done
+ rxcap_269_fail:
+ goto rx265_fail
+ rxcap_269_done:
# rx charclass s
- ge rx276_pos, rx276_eos, rx276_fail
- sub $I10, rx276_pos, rx276_off
- is_cclass $I11, 32, rx276_tgt, $I10
- unless $I11, rx276_fail
- inc rx276_pos
- # rx subrule "ws" subtype=method negate=
- rx276_cur."!cursor_pos"(rx276_pos)
- $P10 = rx276_cur."ws"()
- unless $P10, rx276_fail
- rx276_pos = $P10."pos"()
-.annotate 'line', 163
+ ge rx265_pos, rx265_eos, rx265_fail
+ sub $I10, rx265_pos, rx265_off
+ is_cclass $I11, 32, rx265_tgt, $I10
+ unless $I11, rx265_fail
+ inc rx265_pos
+ # rx subrule "ws" subtype=method negate=
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."ws"()
+ unless $P10, rx265_fail
+ rx265_pos = $P10."pos"()
+.annotate 'line', 159
# rx subrule "xblock" subtype=capture negate=
- rx276_cur."!cursor_pos"(rx276_pos)
- $P10 = rx276_cur."xblock"()
- unless $P10, rx276_fail
- rx276_cur."!mark_push"(0, -1, 0, $P10)
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."xblock"()
+ unless $P10, rx265_fail
+ rx265_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx276_pos = $P10."pos"()
+ rx265_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx276_cur."!cursor_pos"(rx276_pos)
- $P10 = rx276_cur."ws"()
- unless $P10, rx276_fail
- rx276_pos = $P10."pos"()
- alt283_0:
-.annotate 'line', 164
- set_addr $I10, alt283_1
- rx276_cur."!mark_push"(0, rx276_pos, $I10)
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."ws"()
+ unless $P10, rx265_fail
+ rx265_pos = $P10."pos"()
+.annotate 'line', 160
+ # rx rxquantr272 ** 0..*
+ set_addr $I276, rxquantr272_done
+ rx265_cur."!mark_push"(0, rx265_pos, $I276)
+ rxquantr272_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."ws"()
+ unless $P10, rx265_fail
+ rx265_pos = $P10."pos"()
+ # rx literal "elsif"
+ add $I11, rx265_pos, 5
+ gt $I11, rx265_eos, rx265_fail
+ sub $I11, rx265_pos, rx265_off
+ substr $S10, rx265_tgt, $I11, 5
+ ne $S10, "elsif", rx265_fail
+ add rx265_pos, 5
+ # rx charclass s
+ ge rx265_pos, rx265_eos, rx265_fail
+ sub $I10, rx265_pos, rx265_off
+ is_cclass $I11, 32, rx265_tgt, $I10
+ unless $I11, rx265_fail
+ inc rx265_pos
+ # rx subrule "ws" subtype=method negate=
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."ws"()
+ unless $P10, rx265_fail
+ rx265_pos = $P10."pos"()
+ # rx subrule "xblock" subtype=capture negate=
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."xblock"()
+ unless $P10, rx265_fail
+ rx265_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("xblock")
+ rx265_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx276_cur."!cursor_pos"(rx276_pos)
- $P10 = rx276_cur."ws"()
- unless $P10, rx276_fail
- rx276_pos = $P10."pos"()
- # rx subrule "before" subtype=zerowidth negate=1
- rx276_cur."!cursor_pos"(rx276_pos)
- .const 'Sub' $P286 = "64_1274022894.43745"
- capture_lex $P286
- $P10 = rx276_cur."before"($P286)
- if $P10, rx276_fail
- # rx subrule "ws" subtype=method negate=
- rx276_cur."!cursor_pos"(rx276_pos)
- $P10 = rx276_cur."ws"()
- unless $P10, rx276_fail
- rx276_pos = $P10."pos"()
- goto alt283_end
- alt283_1:
- # rx subrule "ws" subtype=method negate=
- rx276_cur."!cursor_pos"(rx276_pos)
- $P10 = rx276_cur."ws"()
- unless $P10, rx276_fail
- rx276_pos = $P10."pos"()
- # rx subrule "panic" subtype=method negate=
- rx276_cur."!cursor_pos"(rx276_pos)
- $P10 = rx276_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
- unless $P10, rx276_fail
- rx276_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx276_cur."!cursor_pos"(rx276_pos)
- $P10 = rx276_cur."ws"()
- unless $P10, rx276_fail
- rx276_pos = $P10."pos"()
- alt283_end:
- # rx subrule "ws" subtype=method negate=
- rx276_cur."!cursor_pos"(rx276_pos)
- $P10 = rx276_cur."ws"()
- unless $P10, rx276_fail
- rx276_pos = $P10."pos"()
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."ws"()
+ unless $P10, rx265_fail
+ rx265_pos = $P10."pos"()
+ (rx265_rep) = rx265_cur."!mark_commit"($I276)
+ rx265_cur."!mark_push"(rx265_rep, rx265_pos, $I276)
+ goto rxquantr272_loop
+ rxquantr272_done:
+ # rx subrule "ws" subtype=method negate=
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."ws"()
+ unless $P10, rx265_fail
+ rx265_pos = $P10."pos"()
.annotate 'line', 161
+ # rx rxquantr278 ** 0..1
+ set_addr $I282, rxquantr278_done
+ rx265_cur."!mark_push"(0, rx265_pos, $I282)
+ rxquantr278_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."ws"()
+ unless $P10, rx265_fail
+ rx265_pos = $P10."pos"()
+ # rx literal "else"
+ add $I11, rx265_pos, 4
+ gt $I11, rx265_eos, rx265_fail
+ sub $I11, rx265_pos, rx265_off
+ substr $S10, rx265_tgt, $I11, 4
+ ne $S10, "else", rx265_fail
+ add rx265_pos, 4
+ # rx charclass s
+ ge rx265_pos, rx265_eos, rx265_fail
+ sub $I10, rx265_pos, rx265_off
+ is_cclass $I11, 32, rx265_tgt, $I10
+ unless $I11, rx265_fail
+ inc rx265_pos
+ # rx subrule "ws" subtype=method negate=
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."ws"()
+ unless $P10, rx265_fail
+ rx265_pos = $P10."pos"()
+ # rx subrule "pblock" subtype=capture negate=
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."pblock"()
+ unless $P10, rx265_fail
+ rx265_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("else")
+ rx265_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."ws"()
+ unless $P10, rx265_fail
+ rx265_pos = $P10."pos"()
+ (rx265_rep) = rx265_cur."!mark_commit"($I282)
+ rxquantr278_done:
+ # rx subrule "ws" subtype=method negate=
+ rx265_cur."!cursor_pos"(rx265_pos)
+ $P10 = rx265_cur."ws"()
+ unless $P10, rx265_fail
+ rx265_pos = $P10."pos"()
+.annotate 'line', 157
# rx pass
- rx276_cur."!cursor_pass"(rx276_pos, "statement_control:sym<unless>")
- rx276_cur."!cursor_debug"("PASS ", "statement_control:sym<unless>", " at pos=", rx276_pos)
- .return (rx276_cur)
- rx276_fail:
+ rx265_cur."!cursor_pass"(rx265_pos, "statement_control:sym<if>")
+ rx265_cur."!cursor_debug"("PASS ", "statement_control:sym<if>", " at pos=", rx265_pos)
+ .return (rx265_cur)
+ rx265_fail:
.annotate 'line', 4
- (rx276_rep, rx276_pos, $I10, $P10) = rx276_cur."!mark_fail"(0)
- lt rx276_pos, -1, rx276_done
- eq rx276_pos, -1, rx276_fail
+ (rx265_rep, rx265_pos, $I10, $P10) = rx265_cur."!mark_fail"(0)
+ lt rx265_pos, -1, rx265_done
+ eq rx265_pos, -1, rx265_fail
jump $I10
- rx276_done:
- rx276_cur."!cursor_fail"()
- rx276_cur."!cursor_debug"("FAIL ", "statement_control:sym<unless>")
- .return (rx276_cur)
+ rx265_done:
+ rx265_cur."!cursor_fail"()
+ rx265_cur."!cursor_debug"("FAIL ", "statement_control:sym<if>")
+ .return (rx265_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<unless>" :subid("63_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<if>" :subid("63_1275811487.95429") :method
.annotate 'line', 4
- new $P278, "ResizablePMCArray"
- push $P278, "unless"
- .return ($P278)
+ new $P267, "ResizablePMCArray"
+ push $P267, "if"
+ .return ($P267)
.end
.namespace ["NQP";"Grammar"]
-.sub "_block285" :anon :subid("64_1274022894.43745") :method :outer("62_1274022894.43745")
-.annotate 'line', 164
- .local string rx287_tgt
- .local int rx287_pos
- .local int rx287_off
- .local int rx287_eos
- .local int rx287_rep
- .local pmc rx287_cur
- (rx287_cur, rx287_pos, rx287_tgt) = self."!cursor_start"()
- rx287_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx287_cur
- .local pmc match
- .lex "$/", match
- length rx287_eos, rx287_tgt
- set rx287_off, 0
- lt rx287_pos, 2, rx287_start
- sub rx287_off, rx287_pos, 1
- substr rx287_tgt, rx287_tgt, rx287_off
- rx287_start:
+.sub "statement_control:sym<unless>" :subid("64_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .const 'Sub' $P295 = "66_1275811487.95429"
+ capture_lex $P295
+ .local string rx285_tgt
+ .local int rx285_pos
+ .local int rx285_off
+ .local int rx285_eos
+ .local int rx285_rep
+ .local pmc rx285_cur
+ (rx285_cur, rx285_pos, rx285_tgt) = self."!cursor_start"()
+ rx285_cur."!cursor_debug"("START ", "statement_control:sym<unless>")
+ .lex unicode:"$\x{a2}", rx285_cur
+ .local pmc match
+ .lex "$/", match
+ length rx285_eos, rx285_tgt
+ gt rx285_pos, rx285_eos, rx285_done
+ set rx285_off, 0
+ lt rx285_pos, 2, rx285_start
+ sub rx285_off, rx285_pos, 1
+ substr rx285_tgt, rx285_tgt, rx285_off
+ rx285_start:
$I10 = self.'from'()
ne $I10, -1, rxscan288_done
goto rxscan288_scan
rxscan288_loop:
- ($P10) = rx287_cur."from"()
+ ($P10) = rx285_cur."from"()
inc $P10
- set rx287_pos, $P10
- ge rx287_pos, rx287_eos, rxscan288_done
+ set rx285_pos, $P10
+ ge rx285_pos, rx285_eos, rxscan288_done
rxscan288_scan:
set_addr $I10, rxscan288_loop
- rx287_cur."!mark_push"(0, rx287_pos, $I10)
+ rx285_cur."!mark_push"(0, rx285_pos, $I10)
rxscan288_done:
- # rx literal "else"
- add $I11, rx287_pos, 4
- gt $I11, rx287_eos, rx287_fail
- sub $I11, rx287_pos, rx287_off
- substr $S10, rx287_tgt, $I11, 4
- ne $S10, "else", rx287_fail
- add rx287_pos, 4
- # rx pass
- rx287_cur."!cursor_pass"(rx287_pos, "")
- rx287_cur."!cursor_debug"("PASS ", "", " at pos=", rx287_pos)
- .return (rx287_cur)
- rx287_fail:
- (rx287_rep, rx287_pos, $I10, $P10) = rx287_cur."!mark_fail"(0)
- lt rx287_pos, -1, rx287_done
- eq rx287_pos, -1, rx287_fail
- jump $I10
- rx287_done:
- rx287_cur."!cursor_fail"()
- rx287_cur."!cursor_debug"("FAIL ", "")
- .return (rx287_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<while>" :subid("65_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx294_tgt
- .local int rx294_pos
- .local int rx294_off
- .local int rx294_eos
- .local int rx294_rep
- .local pmc rx294_cur
- (rx294_cur, rx294_pos, rx294_tgt) = self."!cursor_start"()
- rx294_cur."!cursor_debug"("START ", "statement_control:sym<while>")
- .lex unicode:"$\x{a2}", rx294_cur
- .local pmc match
- .lex "$/", match
- length rx294_eos, rx294_tgt
- set rx294_off, 0
- lt rx294_pos, 2, rx294_start
- sub rx294_off, rx294_pos, 1
- substr rx294_tgt, rx294_tgt, rx294_off
- rx294_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan297_done
- goto rxscan297_scan
- rxscan297_loop:
- ($P10) = rx294_cur."from"()
- inc $P10
- set rx294_pos, $P10
- ge rx294_pos, rx294_eos, rxscan297_done
- rxscan297_scan:
- set_addr $I10, rxscan297_loop
- rx294_cur."!mark_push"(0, rx294_pos, $I10)
- rxscan297_done:
-.annotate 'line', 168
+.annotate 'line', 165
# rx subcapture "sym"
- set_addr $I10, rxcap_299_fail
- rx294_cur."!mark_push"(0, rx294_pos, $I10)
- alt298_0:
- set_addr $I10, alt298_1
- rx294_cur."!mark_push"(0, rx294_pos, $I10)
- # rx literal "while"
- add $I11, rx294_pos, 5
- gt $I11, rx294_eos, rx294_fail
- sub $I11, rx294_pos, rx294_off
- substr $S10, rx294_tgt, $I11, 5
- ne $S10, "while", rx294_fail
- add rx294_pos, 5
- goto alt298_end
- alt298_1:
- # rx literal "until"
- add $I11, rx294_pos, 5
- gt $I11, rx294_eos, rx294_fail
- sub $I11, rx294_pos, rx294_off
- substr $S10, rx294_tgt, $I11, 5
- ne $S10, "until", rx294_fail
- add rx294_pos, 5
- alt298_end:
- set_addr $I10, rxcap_299_fail
- ($I12, $I11) = rx294_cur."!mark_peek"($I10)
- rx294_cur."!cursor_pos"($I11)
- ($P10) = rx294_cur."!cursor_start"()
- $P10."!cursor_pass"(rx294_pos, "")
- rx294_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_289_fail
+ rx285_cur."!mark_push"(0, rx285_pos, $I10)
+ # rx literal "unless"
+ add $I11, rx285_pos, 6
+ gt $I11, rx285_eos, rx285_fail
+ sub $I11, rx285_pos, rx285_off
+ substr $S10, rx285_tgt, $I11, 6
+ ne $S10, "unless", rx285_fail
+ add rx285_pos, 6
+ set_addr $I10, rxcap_289_fail
+ ($I12, $I11) = rx285_cur."!mark_peek"($I10)
+ rx285_cur."!cursor_pos"($I11)
+ ($P10) = rx285_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx285_pos, "")
+ rx285_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_299_done
- rxcap_299_fail:
- goto rx294_fail
- rxcap_299_done:
+ goto rxcap_289_done
+ rxcap_289_fail:
+ goto rx285_fail
+ rxcap_289_done:
# rx charclass s
- ge rx294_pos, rx294_eos, rx294_fail
- sub $I10, rx294_pos, rx294_off
- is_cclass $I11, 32, rx294_tgt, $I10
- unless $I11, rx294_fail
- inc rx294_pos
- # rx subrule "ws" subtype=method negate=
- rx294_cur."!cursor_pos"(rx294_pos)
- $P10 = rx294_cur."ws"()
- unless $P10, rx294_fail
- rx294_pos = $P10."pos"()
-.annotate 'line', 169
+ ge rx285_pos, rx285_eos, rx285_fail
+ sub $I10, rx285_pos, rx285_off
+ is_cclass $I11, 32, rx285_tgt, $I10
+ unless $I11, rx285_fail
+ inc rx285_pos
+ # rx subrule "ws" subtype=method negate=
+ rx285_cur."!cursor_pos"(rx285_pos)
+ $P10 = rx285_cur."ws"()
+ unless $P10, rx285_fail
+ rx285_pos = $P10."pos"()
+.annotate 'line', 166
# rx subrule "xblock" subtype=capture negate=
- rx294_cur."!cursor_pos"(rx294_pos)
- $P10 = rx294_cur."xblock"()
- unless $P10, rx294_fail
- rx294_cur."!mark_push"(0, -1, 0, $P10)
+ rx285_cur."!cursor_pos"(rx285_pos)
+ $P10 = rx285_cur."xblock"()
+ unless $P10, rx285_fail
+ rx285_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx294_pos = $P10."pos"()
+ rx285_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx294_cur."!cursor_pos"(rx294_pos)
- $P10 = rx294_cur."ws"()
- unless $P10, rx294_fail
- rx294_pos = $P10."pos"()
+ rx285_cur."!cursor_pos"(rx285_pos)
+ $P10 = rx285_cur."ws"()
+ unless $P10, rx285_fail
+ rx285_pos = $P10."pos"()
+ alt292_0:
.annotate 'line', 167
+ set_addr $I10, alt292_1
+ rx285_cur."!mark_push"(0, rx285_pos, $I10)
+ # rx subrule "ws" subtype=method negate=
+ rx285_cur."!cursor_pos"(rx285_pos)
+ $P10 = rx285_cur."ws"()
+ unless $P10, rx285_fail
+ rx285_pos = $P10."pos"()
+ # rx subrule "before" subtype=zerowidth negate=1
+ rx285_cur."!cursor_pos"(rx285_pos)
+ .const 'Sub' $P295 = "66_1275811487.95429"
+ capture_lex $P295
+ $P10 = rx285_cur."before"($P295)
+ if $P10, rx285_fail
+ # rx subrule "ws" subtype=method negate=
+ rx285_cur."!cursor_pos"(rx285_pos)
+ $P10 = rx285_cur."ws"()
+ unless $P10, rx285_fail
+ rx285_pos = $P10."pos"()
+ goto alt292_end
+ alt292_1:
+ # rx subrule "ws" subtype=method negate=
+ rx285_cur."!cursor_pos"(rx285_pos)
+ $P10 = rx285_cur."ws"()
+ unless $P10, rx285_fail
+ rx285_pos = $P10."pos"()
+ # rx subrule "panic" subtype=method negate=
+ rx285_cur."!cursor_pos"(rx285_pos)
+ $P10 = rx285_cur."panic"("unless does not take \"else\", please rewrite using \"if\"")
+ unless $P10, rx285_fail
+ rx285_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx285_cur."!cursor_pos"(rx285_pos)
+ $P10 = rx285_cur."ws"()
+ unless $P10, rx285_fail
+ rx285_pos = $P10."pos"()
+ alt292_end:
+ # rx subrule "ws" subtype=method negate=
+ rx285_cur."!cursor_pos"(rx285_pos)
+ $P10 = rx285_cur."ws"()
+ unless $P10, rx285_fail
+ rx285_pos = $P10."pos"()
+.annotate 'line', 164
# rx pass
- rx294_cur."!cursor_pass"(rx294_pos, "statement_control:sym<while>")
- rx294_cur."!cursor_debug"("PASS ", "statement_control:sym<while>", " at pos=", rx294_pos)
- .return (rx294_cur)
- rx294_fail:
+ rx285_cur."!cursor_pass"(rx285_pos, "statement_control:sym<unless>")
+ rx285_cur."!cursor_debug"("PASS ", "statement_control:sym<unless>", " at pos=", rx285_pos)
+ .return (rx285_cur)
+ rx285_fail:
.annotate 'line', 4
- (rx294_rep, rx294_pos, $I10, $P10) = rx294_cur."!mark_fail"(0)
- lt rx294_pos, -1, rx294_done
- eq rx294_pos, -1, rx294_fail
+ (rx285_rep, rx285_pos, $I10, $P10) = rx285_cur."!mark_fail"(0)
+ lt rx285_pos, -1, rx285_done
+ eq rx285_pos, -1, rx285_fail
jump $I10
- rx294_done:
- rx294_cur."!cursor_fail"()
- rx294_cur."!cursor_debug"("FAIL ", "statement_control:sym<while>")
- .return (rx294_cur)
+ rx285_done:
+ rx285_cur."!cursor_fail"()
+ rx285_cur."!cursor_debug"("FAIL ", "statement_control:sym<unless>")
+ .return (rx285_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<while>" :subid("66_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<unless>" :subid("65_1275811487.95429") :method
.annotate 'line', 4
- new $P296, "ResizablePMCArray"
- push $P296, "until"
- push $P296, "while"
- .return ($P296)
+ new $P287, "ResizablePMCArray"
+ push $P287, "unless"
+ .return ($P287)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "_block294" :anon :subid("66_1275811487.95429") :method :outer("64_1275811487.95429")
+.annotate 'line', 167
+ .local string rx296_tgt
+ .local int rx296_pos
+ .local int rx296_off
+ .local int rx296_eos
+ .local int rx296_rep
+ .local pmc rx296_cur
+ (rx296_cur, rx296_pos, rx296_tgt) = self."!cursor_start"()
+ rx296_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx296_cur
+ .local pmc match
+ .lex "$/", match
+ length rx296_eos, rx296_tgt
+ gt rx296_pos, rx296_eos, rx296_done
+ set rx296_off, 0
+ lt rx296_pos, 2, rx296_start
+ sub rx296_off, rx296_pos, 1
+ substr rx296_tgt, rx296_tgt, rx296_off
+ rx296_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan297_done
+ goto rxscan297_scan
+ rxscan297_loop:
+ ($P10) = rx296_cur."from"()
+ inc $P10
+ set rx296_pos, $P10
+ ge rx296_pos, rx296_eos, rxscan297_done
+ rxscan297_scan:
+ set_addr $I10, rxscan297_loop
+ rx296_cur."!mark_push"(0, rx296_pos, $I10)
+ rxscan297_done:
+ # rx literal "else"
+ add $I11, rx296_pos, 4
+ gt $I11, rx296_eos, rx296_fail
+ sub $I11, rx296_pos, rx296_off
+ substr $S10, rx296_tgt, $I11, 4
+ ne $S10, "else", rx296_fail
+ add rx296_pos, 4
+ # rx pass
+ rx296_cur."!cursor_pass"(rx296_pos, "")
+ rx296_cur."!cursor_debug"("PASS ", "", " at pos=", rx296_pos)
+ .return (rx296_cur)
+ rx296_fail:
+ (rx296_rep, rx296_pos, $I10, $P10) = rx296_cur."!mark_fail"(0)
+ lt rx296_pos, -1, rx296_done
+ eq rx296_pos, -1, rx296_fail
+ jump $I10
+ rx296_done:
+ rx296_cur."!cursor_fail"()
+ rx296_cur."!cursor_debug"("FAIL ", "")
+ .return (rx296_cur)
+ .return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<repeat>" :subid("67_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_control:sym<while>" :subid("67_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
.local string rx303_tgt
.local int rx303_pos
@@ -3766,11 +3770,12 @@
.local int rx303_rep
.local pmc rx303_cur
(rx303_cur, rx303_pos, rx303_tgt) = self."!cursor_start"()
- rx303_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
+ rx303_cur."!cursor_debug"("START ", "statement_control:sym<while>")
.lex unicode:"$\x{a2}", rx303_cur
.local pmc match
.lex "$/", match
length rx303_eos, rx303_tgt
+ gt rx303_pos, rx303_eos, rx303_done
set rx303_off, 0
lt rx303_pos, 2, rx303_start
sub rx303_off, rx303_pos, 1
@@ -3788,54 +3793,12 @@
set_addr $I10, rxscan306_loop
rx303_cur."!mark_push"(0, rx303_pos, $I10)
rxscan306_done:
-.annotate 'line', 173
+.annotate 'line', 171
# rx subcapture "sym"
- set_addr $I10, rxcap_307_fail
- rx303_cur."!mark_push"(0, rx303_pos, $I10)
- # rx literal "repeat"
- add $I11, rx303_pos, 6
- gt $I11, rx303_eos, rx303_fail
- sub $I11, rx303_pos, rx303_off
- substr $S10, rx303_tgt, $I11, 6
- ne $S10, "repeat", rx303_fail
- add rx303_pos, 6
- set_addr $I10, rxcap_307_fail
- ($I12, $I11) = rx303_cur."!mark_peek"($I10)
- rx303_cur."!cursor_pos"($I11)
- ($P10) = rx303_cur."!cursor_start"()
- $P10."!cursor_pass"(rx303_pos, "")
- rx303_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_307_done
- rxcap_307_fail:
- goto rx303_fail
- rxcap_307_done:
- # rx charclass s
- ge rx303_pos, rx303_eos, rx303_fail
- sub $I10, rx303_pos, rx303_off
- is_cclass $I11, 32, rx303_tgt, $I10
- unless $I11, rx303_fail
- inc rx303_pos
- # rx subrule "ws" subtype=method negate=
- rx303_cur."!cursor_pos"(rx303_pos)
- $P10 = rx303_cur."ws"()
- unless $P10, rx303_fail
- rx303_pos = $P10."pos"()
- alt309_0:
-.annotate 'line', 174
- set_addr $I10, alt309_1
- rx303_cur."!mark_push"(0, rx303_pos, $I10)
-.annotate 'line', 175
- # rx subrule "ws" subtype=method negate=
- rx303_cur."!cursor_pos"(rx303_pos)
- $P10 = rx303_cur."ws"()
- unless $P10, rx303_fail
- rx303_pos = $P10."pos"()
- # rx subcapture "wu"
- set_addr $I10, rxcap_312_fail
+ set_addr $I10, rxcap_308_fail
rx303_cur."!mark_push"(0, rx303_pos, $I10)
- alt311_0:
- set_addr $I10, alt311_1
+ alt307_0:
+ set_addr $I10, alt307_1
rx303_cur."!mark_push"(0, rx303_pos, $I10)
# rx literal "while"
add $I11, rx303_pos, 5
@@ -3844,8 +3807,8 @@
substr $S10, rx303_tgt, $I11, 5
ne $S10, "while", rx303_fail
add rx303_pos, 5
- goto alt311_end
- alt311_1:
+ goto alt307_end
+ alt307_1:
# rx literal "until"
add $I11, rx303_pos, 5
gt $I11, rx303_eos, rx303_fail
@@ -3853,18 +3816,18 @@
substr $S10, rx303_tgt, $I11, 5
ne $S10, "until", rx303_fail
add rx303_pos, 5
- alt311_end:
- set_addr $I10, rxcap_312_fail
+ alt307_end:
+ set_addr $I10, rxcap_308_fail
($I12, $I11) = rx303_cur."!mark_peek"($I10)
rx303_cur."!cursor_pos"($I11)
($P10) = rx303_cur."!cursor_start"()
$P10."!cursor_pass"(rx303_pos, "")
rx303_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("wu")
- goto rxcap_312_done
- rxcap_312_fail:
+ $P10."!cursor_names"("sym")
+ goto rxcap_308_done
+ rxcap_308_fail:
goto rx303_fail
- rxcap_312_done:
+ rxcap_308_done:
# rx charclass s
ge rx303_pos, rx303_eos, rx303_fail
sub $I10, rx303_pos, rx303_off
@@ -3876,6 +3839,7 @@
$P10 = rx303_cur."ws"()
unless $P10, rx303_fail
rx303_pos = $P10."pos"()
+.annotate 'line', 172
# rx subrule "xblock" subtype=capture negate=
rx303_cur."!cursor_pos"(rx303_pos)
$P10 = rx303_cur."xblock"()
@@ -3888,94 +3852,10 @@
$P10 = rx303_cur."ws"()
unless $P10, rx303_fail
rx303_pos = $P10."pos"()
- goto alt309_end
- alt309_1:
-.annotate 'line', 176
- # rx subrule "ws" subtype=method negate=
- rx303_cur."!cursor_pos"(rx303_pos)
- $P10 = rx303_cur."ws"()
- unless $P10, rx303_fail
- rx303_pos = $P10."pos"()
- # rx subrule "pblock" subtype=capture negate=
- rx303_cur."!cursor_pos"(rx303_pos)
- $P10 = rx303_cur."pblock"()
- unless $P10, rx303_fail
- rx303_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("pblock")
- rx303_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx303_cur."!cursor_pos"(rx303_pos)
- $P10 = rx303_cur."ws"()
- unless $P10, rx303_fail
- rx303_pos = $P10."pos"()
- # rx subcapture "wu"
- set_addr $I10, rxcap_318_fail
- rx303_cur."!mark_push"(0, rx303_pos, $I10)
- alt317_0:
- set_addr $I10, alt317_1
- rx303_cur."!mark_push"(0, rx303_pos, $I10)
- # rx literal "while"
- add $I11, rx303_pos, 5
- gt $I11, rx303_eos, rx303_fail
- sub $I11, rx303_pos, rx303_off
- substr $S10, rx303_tgt, $I11, 5
- ne $S10, "while", rx303_fail
- add rx303_pos, 5
- goto alt317_end
- alt317_1:
- # rx literal "until"
- add $I11, rx303_pos, 5
- gt $I11, rx303_eos, rx303_fail
- sub $I11, rx303_pos, rx303_off
- substr $S10, rx303_tgt, $I11, 5
- ne $S10, "until", rx303_fail
- add rx303_pos, 5
- alt317_end:
- set_addr $I10, rxcap_318_fail
- ($I12, $I11) = rx303_cur."!mark_peek"($I10)
- rx303_cur."!cursor_pos"($I11)
- ($P10) = rx303_cur."!cursor_start"()
- $P10."!cursor_pass"(rx303_pos, "")
- rx303_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("wu")
- goto rxcap_318_done
- rxcap_318_fail:
- goto rx303_fail
- rxcap_318_done:
- # rx charclass s
- ge rx303_pos, rx303_eos, rx303_fail
- sub $I10, rx303_pos, rx303_off
- is_cclass $I11, 32, rx303_tgt, $I10
- unless $I11, rx303_fail
- inc rx303_pos
- # rx subrule "ws" subtype=method negate=
- rx303_cur."!cursor_pos"(rx303_pos)
- $P10 = rx303_cur."ws"()
- unless $P10, rx303_fail
- rx303_pos = $P10."pos"()
- # rx subrule "EXPR" subtype=capture negate=
- rx303_cur."!cursor_pos"(rx303_pos)
- $P10 = rx303_cur."EXPR"()
- unless $P10, rx303_fail
- rx303_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
- rx303_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx303_cur."!cursor_pos"(rx303_pos)
- $P10 = rx303_cur."ws"()
- unless $P10, rx303_fail
- rx303_pos = $P10."pos"()
- alt309_end:
-.annotate 'line', 177
- # rx subrule "ws" subtype=method negate=
- rx303_cur."!cursor_pos"(rx303_pos)
- $P10 = rx303_cur."ws"()
- unless $P10, rx303_fail
- rx303_pos = $P10."pos"()
-.annotate 'line', 172
+.annotate 'line', 170
# rx pass
- rx303_cur."!cursor_pass"(rx303_pos, "statement_control:sym<repeat>")
- rx303_cur."!cursor_debug"("PASS ", "statement_control:sym<repeat>", " at pos=", rx303_pos)
+ rx303_cur."!cursor_pass"(rx303_pos, "statement_control:sym<while>")
+ rx303_cur."!cursor_debug"("PASS ", "statement_control:sym<while>", " at pos=", rx303_pos)
.return (rx303_cur)
rx303_fail:
.annotate 'line', 4
@@ -3985,4446 +3865,4523 @@
jump $I10
rx303_done:
rx303_cur."!cursor_fail"()
- rx303_cur."!cursor_debug"("FAIL ", "statement_control:sym<repeat>")
+ rx303_cur."!cursor_debug"("FAIL ", "statement_control:sym<while>")
.return (rx303_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<repeat>" :subid("68_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<while>" :subid("68_1275811487.95429") :method
.annotate 'line', 4
new $P305, "ResizablePMCArray"
- push $P305, "repeat"
+ push $P305, "until"
+ push $P305, "while"
.return ($P305)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<for>" :subid("69_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_control:sym<repeat>" :subid("69_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx323_tgt
- .local int rx323_pos
- .local int rx323_off
- .local int rx323_eos
- .local int rx323_rep
- .local pmc rx323_cur
- (rx323_cur, rx323_pos, rx323_tgt) = self."!cursor_start"()
- rx323_cur."!cursor_debug"("START ", "statement_control:sym<for>")
- .lex unicode:"$\x{a2}", rx323_cur
- .local pmc match
- .lex "$/", match
- length rx323_eos, rx323_tgt
- set rx323_off, 0
- lt rx323_pos, 2, rx323_start
- sub rx323_off, rx323_pos, 1
- substr rx323_tgt, rx323_tgt, rx323_off
- rx323_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan326_done
- goto rxscan326_scan
- rxscan326_loop:
- ($P10) = rx323_cur."from"()
- inc $P10
- set rx323_pos, $P10
- ge rx323_pos, rx323_eos, rxscan326_done
- rxscan326_scan:
- set_addr $I10, rxscan326_loop
- rx323_cur."!mark_push"(0, rx323_pos, $I10)
- rxscan326_done:
-.annotate 'line', 181
+ .local string rx312_tgt
+ .local int rx312_pos
+ .local int rx312_off
+ .local int rx312_eos
+ .local int rx312_rep
+ .local pmc rx312_cur
+ (rx312_cur, rx312_pos, rx312_tgt) = self."!cursor_start"()
+ rx312_cur."!cursor_debug"("START ", "statement_control:sym<repeat>")
+ .lex unicode:"$\x{a2}", rx312_cur
+ .local pmc match
+ .lex "$/", match
+ length rx312_eos, rx312_tgt
+ gt rx312_pos, rx312_eos, rx312_done
+ set rx312_off, 0
+ lt rx312_pos, 2, rx312_start
+ sub rx312_off, rx312_pos, 1
+ substr rx312_tgt, rx312_tgt, rx312_off
+ rx312_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan315_done
+ goto rxscan315_scan
+ rxscan315_loop:
+ ($P10) = rx312_cur."from"()
+ inc $P10
+ set rx312_pos, $P10
+ ge rx312_pos, rx312_eos, rxscan315_done
+ rxscan315_scan:
+ set_addr $I10, rxscan315_loop
+ rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ rxscan315_done:
+.annotate 'line', 176
# rx subcapture "sym"
+ set_addr $I10, rxcap_316_fail
+ rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ # rx literal "repeat"
+ add $I11, rx312_pos, 6
+ gt $I11, rx312_eos, rx312_fail
+ sub $I11, rx312_pos, rx312_off
+ substr $S10, rx312_tgt, $I11, 6
+ ne $S10, "repeat", rx312_fail
+ add rx312_pos, 6
+ set_addr $I10, rxcap_316_fail
+ ($I12, $I11) = rx312_cur."!mark_peek"($I10)
+ rx312_cur."!cursor_pos"($I11)
+ ($P10) = rx312_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx312_pos, "")
+ rx312_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_316_done
+ rxcap_316_fail:
+ goto rx312_fail
+ rxcap_316_done:
+ # rx charclass s
+ ge rx312_pos, rx312_eos, rx312_fail
+ sub $I10, rx312_pos, rx312_off
+ is_cclass $I11, 32, rx312_tgt, $I10
+ unless $I11, rx312_fail
+ inc rx312_pos
+ # rx subrule "ws" subtype=method negate=
+ rx312_cur."!cursor_pos"(rx312_pos)
+ $P10 = rx312_cur."ws"()
+ unless $P10, rx312_fail
+ rx312_pos = $P10."pos"()
+ alt318_0:
+.annotate 'line', 177
+ set_addr $I10, alt318_1
+ rx312_cur."!mark_push"(0, rx312_pos, $I10)
+.annotate 'line', 178
+ # rx subrule "ws" subtype=method negate=
+ rx312_cur."!cursor_pos"(rx312_pos)
+ $P10 = rx312_cur."ws"()
+ unless $P10, rx312_fail
+ rx312_pos = $P10."pos"()
+ # rx subcapture "wu"
+ set_addr $I10, rxcap_321_fail
+ rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ alt320_0:
+ set_addr $I10, alt320_1
+ rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ # rx literal "while"
+ add $I11, rx312_pos, 5
+ gt $I11, rx312_eos, rx312_fail
+ sub $I11, rx312_pos, rx312_off
+ substr $S10, rx312_tgt, $I11, 5
+ ne $S10, "while", rx312_fail
+ add rx312_pos, 5
+ goto alt320_end
+ alt320_1:
+ # rx literal "until"
+ add $I11, rx312_pos, 5
+ gt $I11, rx312_eos, rx312_fail
+ sub $I11, rx312_pos, rx312_off
+ substr $S10, rx312_tgt, $I11, 5
+ ne $S10, "until", rx312_fail
+ add rx312_pos, 5
+ alt320_end:
+ set_addr $I10, rxcap_321_fail
+ ($I12, $I11) = rx312_cur."!mark_peek"($I10)
+ rx312_cur."!cursor_pos"($I11)
+ ($P10) = rx312_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx312_pos, "")
+ rx312_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("wu")
+ goto rxcap_321_done
+ rxcap_321_fail:
+ goto rx312_fail
+ rxcap_321_done:
+ # rx charclass s
+ ge rx312_pos, rx312_eos, rx312_fail
+ sub $I10, rx312_pos, rx312_off
+ is_cclass $I11, 32, rx312_tgt, $I10
+ unless $I11, rx312_fail
+ inc rx312_pos
+ # rx subrule "ws" subtype=method negate=
+ rx312_cur."!cursor_pos"(rx312_pos)
+ $P10 = rx312_cur."ws"()
+ unless $P10, rx312_fail
+ rx312_pos = $P10."pos"()
+ # rx subrule "xblock" subtype=capture negate=
+ rx312_cur."!cursor_pos"(rx312_pos)
+ $P10 = rx312_cur."xblock"()
+ unless $P10, rx312_fail
+ rx312_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("xblock")
+ rx312_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx312_cur."!cursor_pos"(rx312_pos)
+ $P10 = rx312_cur."ws"()
+ unless $P10, rx312_fail
+ rx312_pos = $P10."pos"()
+ goto alt318_end
+ alt318_1:
+.annotate 'line', 179
+ # rx subrule "ws" subtype=method negate=
+ rx312_cur."!cursor_pos"(rx312_pos)
+ $P10 = rx312_cur."ws"()
+ unless $P10, rx312_fail
+ rx312_pos = $P10."pos"()
+ # rx subrule "pblock" subtype=capture negate=
+ rx312_cur."!cursor_pos"(rx312_pos)
+ $P10 = rx312_cur."pblock"()
+ unless $P10, rx312_fail
+ rx312_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("pblock")
+ rx312_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx312_cur."!cursor_pos"(rx312_pos)
+ $P10 = rx312_cur."ws"()
+ unless $P10, rx312_fail
+ rx312_pos = $P10."pos"()
+ # rx subcapture "wu"
set_addr $I10, rxcap_327_fail
- rx323_cur."!mark_push"(0, rx323_pos, $I10)
- # rx literal "for"
- add $I11, rx323_pos, 3
- gt $I11, rx323_eos, rx323_fail
- sub $I11, rx323_pos, rx323_off
- substr $S10, rx323_tgt, $I11, 3
- ne $S10, "for", rx323_fail
- add rx323_pos, 3
+ rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ alt326_0:
+ set_addr $I10, alt326_1
+ rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ # rx literal "while"
+ add $I11, rx312_pos, 5
+ gt $I11, rx312_eos, rx312_fail
+ sub $I11, rx312_pos, rx312_off
+ substr $S10, rx312_tgt, $I11, 5
+ ne $S10, "while", rx312_fail
+ add rx312_pos, 5
+ goto alt326_end
+ alt326_1:
+ # rx literal "until"
+ add $I11, rx312_pos, 5
+ gt $I11, rx312_eos, rx312_fail
+ sub $I11, rx312_pos, rx312_off
+ substr $S10, rx312_tgt, $I11, 5
+ ne $S10, "until", rx312_fail
+ add rx312_pos, 5
+ alt326_end:
set_addr $I10, rxcap_327_fail
- ($I12, $I11) = rx323_cur."!mark_peek"($I10)
- rx323_cur."!cursor_pos"($I11)
- ($P10) = rx323_cur."!cursor_start"()
- $P10."!cursor_pass"(rx323_pos, "")
- rx323_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
+ ($I12, $I11) = rx312_cur."!mark_peek"($I10)
+ rx312_cur."!cursor_pos"($I11)
+ ($P10) = rx312_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx312_pos, "")
+ rx312_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("wu")
goto rxcap_327_done
rxcap_327_fail:
- goto rx323_fail
+ goto rx312_fail
rxcap_327_done:
# rx charclass s
- ge rx323_pos, rx323_eos, rx323_fail
- sub $I10, rx323_pos, rx323_off
- is_cclass $I11, 32, rx323_tgt, $I10
- unless $I11, rx323_fail
- inc rx323_pos
- # rx subrule "ws" subtype=method negate=
- rx323_cur."!cursor_pos"(rx323_pos)
- $P10 = rx323_cur."ws"()
- unless $P10, rx323_fail
- rx323_pos = $P10."pos"()
-.annotate 'line', 182
+ ge rx312_pos, rx312_eos, rx312_fail
+ sub $I10, rx312_pos, rx312_off
+ is_cclass $I11, 32, rx312_tgt, $I10
+ unless $I11, rx312_fail
+ inc rx312_pos
+ # rx subrule "ws" subtype=method negate=
+ rx312_cur."!cursor_pos"(rx312_pos)
+ $P10 = rx312_cur."ws"()
+ unless $P10, rx312_fail
+ rx312_pos = $P10."pos"()
+ # rx subrule "EXPR" subtype=capture negate=
+ rx312_cur."!cursor_pos"(rx312_pos)
+ $P10 = rx312_cur."EXPR"()
+ unless $P10, rx312_fail
+ rx312_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx312_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx312_cur."!cursor_pos"(rx312_pos)
+ $P10 = rx312_cur."ws"()
+ unless $P10, rx312_fail
+ rx312_pos = $P10."pos"()
+ alt318_end:
+.annotate 'line', 180
+ # rx subrule "ws" subtype=method negate=
+ rx312_cur."!cursor_pos"(rx312_pos)
+ $P10 = rx312_cur."ws"()
+ unless $P10, rx312_fail
+ rx312_pos = $P10."pos"()
+.annotate 'line', 175
+ # rx pass
+ rx312_cur."!cursor_pass"(rx312_pos, "statement_control:sym<repeat>")
+ rx312_cur."!cursor_debug"("PASS ", "statement_control:sym<repeat>", " at pos=", rx312_pos)
+ .return (rx312_cur)
+ rx312_fail:
+.annotate 'line', 4
+ (rx312_rep, rx312_pos, $I10, $P10) = rx312_cur."!mark_fail"(0)
+ lt rx312_pos, -1, rx312_done
+ eq rx312_pos, -1, rx312_fail
+ jump $I10
+ rx312_done:
+ rx312_cur."!cursor_fail"()
+ rx312_cur."!cursor_debug"("FAIL ", "statement_control:sym<repeat>")
+ .return (rx312_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__statement_control:sym<repeat>" :subid("70_1275811487.95429") :method
+.annotate 'line', 4
+ new $P314, "ResizablePMCArray"
+ push $P314, "repeat"
+ .return ($P314)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "statement_control:sym<for>" :subid("71_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx332_tgt
+ .local int rx332_pos
+ .local int rx332_off
+ .local int rx332_eos
+ .local int rx332_rep
+ .local pmc rx332_cur
+ (rx332_cur, rx332_pos, rx332_tgt) = self."!cursor_start"()
+ rx332_cur."!cursor_debug"("START ", "statement_control:sym<for>")
+ .lex unicode:"$\x{a2}", rx332_cur
+ .local pmc match
+ .lex "$/", match
+ length rx332_eos, rx332_tgt
+ gt rx332_pos, rx332_eos, rx332_done
+ set rx332_off, 0
+ lt rx332_pos, 2, rx332_start
+ sub rx332_off, rx332_pos, 1
+ substr rx332_tgt, rx332_tgt, rx332_off
+ rx332_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan335_done
+ goto rxscan335_scan
+ rxscan335_loop:
+ ($P10) = rx332_cur."from"()
+ inc $P10
+ set rx332_pos, $P10
+ ge rx332_pos, rx332_eos, rxscan335_done
+ rxscan335_scan:
+ set_addr $I10, rxscan335_loop
+ rx332_cur."!mark_push"(0, rx332_pos, $I10)
+ rxscan335_done:
+.annotate 'line', 184
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_336_fail
+ rx332_cur."!mark_push"(0, rx332_pos, $I10)
+ # rx literal "for"
+ add $I11, rx332_pos, 3
+ gt $I11, rx332_eos, rx332_fail
+ sub $I11, rx332_pos, rx332_off
+ substr $S10, rx332_tgt, $I11, 3
+ ne $S10, "for", rx332_fail
+ add rx332_pos, 3
+ set_addr $I10, rxcap_336_fail
+ ($I12, $I11) = rx332_cur."!mark_peek"($I10)
+ rx332_cur."!cursor_pos"($I11)
+ ($P10) = rx332_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx332_pos, "")
+ rx332_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_336_done
+ rxcap_336_fail:
+ goto rx332_fail
+ rxcap_336_done:
+ # rx charclass s
+ ge rx332_pos, rx332_eos, rx332_fail
+ sub $I10, rx332_pos, rx332_off
+ is_cclass $I11, 32, rx332_tgt, $I10
+ unless $I11, rx332_fail
+ inc rx332_pos
+ # rx subrule "ws" subtype=method negate=
+ rx332_cur."!cursor_pos"(rx332_pos)
+ $P10 = rx332_cur."ws"()
+ unless $P10, rx332_fail
+ rx332_pos = $P10."pos"()
+.annotate 'line', 185
# rx subrule "xblock" subtype=capture negate=
- rx323_cur."!cursor_pos"(rx323_pos)
- $P10 = rx323_cur."xblock"()
- unless $P10, rx323_fail
- rx323_cur."!mark_push"(0, -1, 0, $P10)
+ rx332_cur."!cursor_pos"(rx332_pos)
+ $P10 = rx332_cur."xblock"()
+ unless $P10, rx332_fail
+ rx332_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("xblock")
- rx323_pos = $P10."pos"()
+ rx332_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx323_cur."!cursor_pos"(rx323_pos)
- $P10 = rx323_cur."ws"()
- unless $P10, rx323_fail
- rx323_pos = $P10."pos"()
-.annotate 'line', 180
+ rx332_cur."!cursor_pos"(rx332_pos)
+ $P10 = rx332_cur."ws"()
+ unless $P10, rx332_fail
+ rx332_pos = $P10."pos"()
+.annotate 'line', 183
# rx pass
- rx323_cur."!cursor_pass"(rx323_pos, "statement_control:sym<for>")
- rx323_cur."!cursor_debug"("PASS ", "statement_control:sym<for>", " at pos=", rx323_pos)
- .return (rx323_cur)
- rx323_fail:
+ rx332_cur."!cursor_pass"(rx332_pos, "statement_control:sym<for>")
+ rx332_cur."!cursor_debug"("PASS ", "statement_control:sym<for>", " at pos=", rx332_pos)
+ .return (rx332_cur)
+ rx332_fail:
.annotate 'line', 4
- (rx323_rep, rx323_pos, $I10, $P10) = rx323_cur."!mark_fail"(0)
- lt rx323_pos, -1, rx323_done
- eq rx323_pos, -1, rx323_fail
+ (rx332_rep, rx332_pos, $I10, $P10) = rx332_cur."!mark_fail"(0)
+ lt rx332_pos, -1, rx332_done
+ eq rx332_pos, -1, rx332_fail
jump $I10
- rx323_done:
- rx323_cur."!cursor_fail"()
- rx323_cur."!cursor_debug"("FAIL ", "statement_control:sym<for>")
- .return (rx323_cur)
+ rx332_done:
+ rx332_cur."!cursor_fail"()
+ rx332_cur."!cursor_debug"("FAIL ", "statement_control:sym<for>")
+ .return (rx332_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<for>" :subid("70_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<for>" :subid("72_1275811487.95429") :method
.annotate 'line', 4
- new $P325, "ResizablePMCArray"
- push $P325, "for"
- .return ($P325)
+ new $P334, "ResizablePMCArray"
+ push $P334, "for"
+ .return ($P334)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CATCH>" :subid("71_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_control:sym<CATCH>" :subid("73_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx331_tgt
- .local int rx331_pos
- .local int rx331_off
- .local int rx331_eos
- .local int rx331_rep
- .local pmc rx331_cur
- (rx331_cur, rx331_pos, rx331_tgt) = self."!cursor_start"()
- rx331_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
- .lex unicode:"$\x{a2}", rx331_cur
+ .local string rx340_tgt
+ .local int rx340_pos
+ .local int rx340_off
+ .local int rx340_eos
+ .local int rx340_rep
+ .local pmc rx340_cur
+ (rx340_cur, rx340_pos, rx340_tgt) = self."!cursor_start"()
+ rx340_cur."!cursor_debug"("START ", "statement_control:sym<CATCH>")
+ .lex unicode:"$\x{a2}", rx340_cur
.local pmc match
.lex "$/", match
- length rx331_eos, rx331_tgt
- set rx331_off, 0
- lt rx331_pos, 2, rx331_start
- sub rx331_off, rx331_pos, 1
- substr rx331_tgt, rx331_tgt, rx331_off
- rx331_start:
+ length rx340_eos, rx340_tgt
+ gt rx340_pos, rx340_eos, rx340_done
+ set rx340_off, 0
+ lt rx340_pos, 2, rx340_start
+ sub rx340_off, rx340_pos, 1
+ substr rx340_tgt, rx340_tgt, rx340_off
+ rx340_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan334_done
- goto rxscan334_scan
- rxscan334_loop:
- ($P10) = rx331_cur."from"()
+ ne $I10, -1, rxscan343_done
+ goto rxscan343_scan
+ rxscan343_loop:
+ ($P10) = rx340_cur."from"()
inc $P10
- set rx331_pos, $P10
- ge rx331_pos, rx331_eos, rxscan334_done
- rxscan334_scan:
- set_addr $I10, rxscan334_loop
- rx331_cur."!mark_push"(0, rx331_pos, $I10)
- rxscan334_done:
-.annotate 'line', 186
+ set rx340_pos, $P10
+ ge rx340_pos, rx340_eos, rxscan343_done
+ rxscan343_scan:
+ set_addr $I10, rxscan343_loop
+ rx340_cur."!mark_push"(0, rx340_pos, $I10)
+ rxscan343_done:
+.annotate 'line', 189
# rx subcapture "sym"
- set_addr $I10, rxcap_335_fail
- rx331_cur."!mark_push"(0, rx331_pos, $I10)
+ set_addr $I10, rxcap_344_fail
+ rx340_cur."!mark_push"(0, rx340_pos, $I10)
# rx literal "CATCH"
- add $I11, rx331_pos, 5
- gt $I11, rx331_eos, rx331_fail
- sub $I11, rx331_pos, rx331_off
- substr $S10, rx331_tgt, $I11, 5
- ne $S10, "CATCH", rx331_fail
- add rx331_pos, 5
- set_addr $I10, rxcap_335_fail
- ($I12, $I11) = rx331_cur."!mark_peek"($I10)
- rx331_cur."!cursor_pos"($I11)
- ($P10) = rx331_cur."!cursor_start"()
- $P10."!cursor_pass"(rx331_pos, "")
- rx331_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx340_pos, 5
+ gt $I11, rx340_eos, rx340_fail
+ sub $I11, rx340_pos, rx340_off
+ substr $S10, rx340_tgt, $I11, 5
+ ne $S10, "CATCH", rx340_fail
+ add rx340_pos, 5
+ set_addr $I10, rxcap_344_fail
+ ($I12, $I11) = rx340_cur."!mark_peek"($I10)
+ rx340_cur."!cursor_pos"($I11)
+ ($P10) = rx340_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx340_pos, "")
+ rx340_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_335_done
- rxcap_335_fail:
- goto rx331_fail
- rxcap_335_done:
+ goto rxcap_344_done
+ rxcap_344_fail:
+ goto rx340_fail
+ rxcap_344_done:
# rx charclass s
- ge rx331_pos, rx331_eos, rx331_fail
- sub $I10, rx331_pos, rx331_off
- is_cclass $I11, 32, rx331_tgt, $I10
- unless $I11, rx331_fail
- inc rx331_pos
- # rx subrule "ws" subtype=method negate=
- rx331_cur."!cursor_pos"(rx331_pos)
- $P10 = rx331_cur."ws"()
- unless $P10, rx331_fail
- rx331_pos = $P10."pos"()
-.annotate 'line', 187
+ ge rx340_pos, rx340_eos, rx340_fail
+ sub $I10, rx340_pos, rx340_off
+ is_cclass $I11, 32, rx340_tgt, $I10
+ unless $I11, rx340_fail
+ inc rx340_pos
+ # rx subrule "ws" subtype=method negate=
+ rx340_cur."!cursor_pos"(rx340_pos)
+ $P10 = rx340_cur."ws"()
+ unless $P10, rx340_fail
+ rx340_pos = $P10."pos"()
+.annotate 'line', 190
# rx subrule "block" subtype=capture negate=
- rx331_cur."!cursor_pos"(rx331_pos)
- $P10 = rx331_cur."block"()
- unless $P10, rx331_fail
- rx331_cur."!mark_push"(0, -1, 0, $P10)
+ rx340_cur."!cursor_pos"(rx340_pos)
+ $P10 = rx340_cur."block"()
+ unless $P10, rx340_fail
+ rx340_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx331_pos = $P10."pos"()
+ rx340_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx331_cur."!cursor_pos"(rx331_pos)
- $P10 = rx331_cur."ws"()
- unless $P10, rx331_fail
- rx331_pos = $P10."pos"()
-.annotate 'line', 185
+ rx340_cur."!cursor_pos"(rx340_pos)
+ $P10 = rx340_cur."ws"()
+ unless $P10, rx340_fail
+ rx340_pos = $P10."pos"()
+.annotate 'line', 188
# rx pass
- rx331_cur."!cursor_pass"(rx331_pos, "statement_control:sym<CATCH>")
- rx331_cur."!cursor_debug"("PASS ", "statement_control:sym<CATCH>", " at pos=", rx331_pos)
- .return (rx331_cur)
- rx331_fail:
+ rx340_cur."!cursor_pass"(rx340_pos, "statement_control:sym<CATCH>")
+ rx340_cur."!cursor_debug"("PASS ", "statement_control:sym<CATCH>", " at pos=", rx340_pos)
+ .return (rx340_cur)
+ rx340_fail:
.annotate 'line', 4
- (rx331_rep, rx331_pos, $I10, $P10) = rx331_cur."!mark_fail"(0)
- lt rx331_pos, -1, rx331_done
- eq rx331_pos, -1, rx331_fail
+ (rx340_rep, rx340_pos, $I10, $P10) = rx340_cur."!mark_fail"(0)
+ lt rx340_pos, -1, rx340_done
+ eq rx340_pos, -1, rx340_fail
jump $I10
- rx331_done:
- rx331_cur."!cursor_fail"()
- rx331_cur."!cursor_debug"("FAIL ", "statement_control:sym<CATCH>")
- .return (rx331_cur)
+ rx340_done:
+ rx340_cur."!cursor_fail"()
+ rx340_cur."!cursor_debug"("FAIL ", "statement_control:sym<CATCH>")
+ .return (rx340_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CATCH>" :subid("72_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<CATCH>" :subid("74_1275811487.95429") :method
.annotate 'line', 4
- new $P333, "ResizablePMCArray"
- push $P333, "CATCH"
- .return ($P333)
+ new $P342, "ResizablePMCArray"
+ push $P342, "CATCH"
+ .return ($P342)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_control:sym<CONTROL>" :subid("73_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_control:sym<CONTROL>" :subid("75_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx339_tgt
- .local int rx339_pos
- .local int rx339_off
- .local int rx339_eos
- .local int rx339_rep
- .local pmc rx339_cur
- (rx339_cur, rx339_pos, rx339_tgt) = self."!cursor_start"()
- rx339_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
- .lex unicode:"$\x{a2}", rx339_cur
+ .local string rx348_tgt
+ .local int rx348_pos
+ .local int rx348_off
+ .local int rx348_eos
+ .local int rx348_rep
+ .local pmc rx348_cur
+ (rx348_cur, rx348_pos, rx348_tgt) = self."!cursor_start"()
+ rx348_cur."!cursor_debug"("START ", "statement_control:sym<CONTROL>")
+ .lex unicode:"$\x{a2}", rx348_cur
.local pmc match
.lex "$/", match
- length rx339_eos, rx339_tgt
- set rx339_off, 0
- lt rx339_pos, 2, rx339_start
- sub rx339_off, rx339_pos, 1
- substr rx339_tgt, rx339_tgt, rx339_off
- rx339_start:
+ length rx348_eos, rx348_tgt
+ gt rx348_pos, rx348_eos, rx348_done
+ set rx348_off, 0
+ lt rx348_pos, 2, rx348_start
+ sub rx348_off, rx348_pos, 1
+ substr rx348_tgt, rx348_tgt, rx348_off
+ rx348_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan342_done
- goto rxscan342_scan
- rxscan342_loop:
- ($P10) = rx339_cur."from"()
+ ne $I10, -1, rxscan351_done
+ goto rxscan351_scan
+ rxscan351_loop:
+ ($P10) = rx348_cur."from"()
inc $P10
- set rx339_pos, $P10
- ge rx339_pos, rx339_eos, rxscan342_done
- rxscan342_scan:
- set_addr $I10, rxscan342_loop
- rx339_cur."!mark_push"(0, rx339_pos, $I10)
- rxscan342_done:
-.annotate 'line', 191
+ set rx348_pos, $P10
+ ge rx348_pos, rx348_eos, rxscan351_done
+ rxscan351_scan:
+ set_addr $I10, rxscan351_loop
+ rx348_cur."!mark_push"(0, rx348_pos, $I10)
+ rxscan351_done:
+.annotate 'line', 194
# rx subcapture "sym"
- set_addr $I10, rxcap_343_fail
- rx339_cur."!mark_push"(0, rx339_pos, $I10)
+ set_addr $I10, rxcap_352_fail
+ rx348_cur."!mark_push"(0, rx348_pos, $I10)
# rx literal "CONTROL"
- add $I11, rx339_pos, 7
- gt $I11, rx339_eos, rx339_fail
- sub $I11, rx339_pos, rx339_off
- substr $S10, rx339_tgt, $I11, 7
- ne $S10, "CONTROL", rx339_fail
- add rx339_pos, 7
- set_addr $I10, rxcap_343_fail
- ($I12, $I11) = rx339_cur."!mark_peek"($I10)
- rx339_cur."!cursor_pos"($I11)
- ($P10) = rx339_cur."!cursor_start"()
- $P10."!cursor_pass"(rx339_pos, "")
- rx339_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx348_pos, 7
+ gt $I11, rx348_eos, rx348_fail
+ sub $I11, rx348_pos, rx348_off
+ substr $S10, rx348_tgt, $I11, 7
+ ne $S10, "CONTROL", rx348_fail
+ add rx348_pos, 7
+ set_addr $I10, rxcap_352_fail
+ ($I12, $I11) = rx348_cur."!mark_peek"($I10)
+ rx348_cur."!cursor_pos"($I11)
+ ($P10) = rx348_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx348_pos, "")
+ rx348_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_343_done
- rxcap_343_fail:
- goto rx339_fail
- rxcap_343_done:
+ goto rxcap_352_done
+ rxcap_352_fail:
+ goto rx348_fail
+ rxcap_352_done:
# rx charclass s
- ge rx339_pos, rx339_eos, rx339_fail
- sub $I10, rx339_pos, rx339_off
- is_cclass $I11, 32, rx339_tgt, $I10
- unless $I11, rx339_fail
- inc rx339_pos
- # rx subrule "ws" subtype=method negate=
- rx339_cur."!cursor_pos"(rx339_pos)
- $P10 = rx339_cur."ws"()
- unless $P10, rx339_fail
- rx339_pos = $P10."pos"()
-.annotate 'line', 192
+ ge rx348_pos, rx348_eos, rx348_fail
+ sub $I10, rx348_pos, rx348_off
+ is_cclass $I11, 32, rx348_tgt, $I10
+ unless $I11, rx348_fail
+ inc rx348_pos
+ # rx subrule "ws" subtype=method negate=
+ rx348_cur."!cursor_pos"(rx348_pos)
+ $P10 = rx348_cur."ws"()
+ unless $P10, rx348_fail
+ rx348_pos = $P10."pos"()
+.annotate 'line', 195
# rx subrule "block" subtype=capture negate=
- rx339_cur."!cursor_pos"(rx339_pos)
- $P10 = rx339_cur."block"()
- unless $P10, rx339_fail
- rx339_cur."!mark_push"(0, -1, 0, $P10)
+ rx348_cur."!cursor_pos"(rx348_pos)
+ $P10 = rx348_cur."block"()
+ unless $P10, rx348_fail
+ rx348_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx339_pos = $P10."pos"()
+ rx348_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx339_cur."!cursor_pos"(rx339_pos)
- $P10 = rx339_cur."ws"()
- unless $P10, rx339_fail
- rx339_pos = $P10."pos"()
-.annotate 'line', 190
+ rx348_cur."!cursor_pos"(rx348_pos)
+ $P10 = rx348_cur."ws"()
+ unless $P10, rx348_fail
+ rx348_pos = $P10."pos"()
+.annotate 'line', 193
# rx pass
- rx339_cur."!cursor_pass"(rx339_pos, "statement_control:sym<CONTROL>")
- rx339_cur."!cursor_debug"("PASS ", "statement_control:sym<CONTROL>", " at pos=", rx339_pos)
- .return (rx339_cur)
- rx339_fail:
+ rx348_cur."!cursor_pass"(rx348_pos, "statement_control:sym<CONTROL>")
+ rx348_cur."!cursor_debug"("PASS ", "statement_control:sym<CONTROL>", " at pos=", rx348_pos)
+ .return (rx348_cur)
+ rx348_fail:
.annotate 'line', 4
- (rx339_rep, rx339_pos, $I10, $P10) = rx339_cur."!mark_fail"(0)
- lt rx339_pos, -1, rx339_done
- eq rx339_pos, -1, rx339_fail
+ (rx348_rep, rx348_pos, $I10, $P10) = rx348_cur."!mark_fail"(0)
+ lt rx348_pos, -1, rx348_done
+ eq rx348_pos, -1, rx348_fail
jump $I10
- rx339_done:
- rx339_cur."!cursor_fail"()
- rx339_cur."!cursor_debug"("FAIL ", "statement_control:sym<CONTROL>")
- .return (rx339_cur)
+ rx348_done:
+ rx348_cur."!cursor_fail"()
+ rx348_cur."!cursor_debug"("FAIL ", "statement_control:sym<CONTROL>")
+ .return (rx348_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_control:sym<CONTROL>" :subid("74_1274022894.43745") :method
+.sub "!PREFIX__statement_control:sym<CONTROL>" :subid("76_1275811487.95429") :method
.annotate 'line', 4
- new $P341, "ResizablePMCArray"
- push $P341, "CONTROL"
- .return ($P341)
+ new $P350, "ResizablePMCArray"
+ push $P350, "CONTROL"
+ .return ($P350)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix" :subid("75_1274022894.43745") :method
-.annotate 'line', 195
- $P347 = self."!protoregex"("statement_prefix")
- .return ($P347)
+.sub "statement_prefix" :subid("77_1275811487.95429") :method
+.annotate 'line', 198
+ $P356 = self."!protoregex"("statement_prefix")
+ .return ($P356)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix" :subid("76_1274022894.43745") :method
-.annotate 'line', 195
- $P349 = self."!PREFIX__!protoregex"("statement_prefix")
- .return ($P349)
+.sub "!PREFIX__statement_prefix" :subid("78_1275811487.95429") :method
+.annotate 'line', 198
+ $P358 = self."!PREFIX__!protoregex"("statement_prefix")
+ .return ($P358)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<INIT>" :subid("77_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_prefix:sym<INIT>" :subid("79_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx351_tgt
- .local int rx351_pos
- .local int rx351_off
- .local int rx351_eos
- .local int rx351_rep
- .local pmc rx351_cur
- (rx351_cur, rx351_pos, rx351_tgt) = self."!cursor_start"()
- rx351_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
- .lex unicode:"$\x{a2}", rx351_cur
- .local pmc match
- .lex "$/", match
- length rx351_eos, rx351_tgt
- set rx351_off, 0
- lt rx351_pos, 2, rx351_start
- sub rx351_off, rx351_pos, 1
- substr rx351_tgt, rx351_tgt, rx351_off
- rx351_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan355_done
- goto rxscan355_scan
- rxscan355_loop:
- ($P10) = rx351_cur."from"()
- inc $P10
- set rx351_pos, $P10
- ge rx351_pos, rx351_eos, rxscan355_done
- rxscan355_scan:
- set_addr $I10, rxscan355_loop
- rx351_cur."!mark_push"(0, rx351_pos, $I10)
- rxscan355_done:
-.annotate 'line', 196
+ .local string rx360_tgt
+ .local int rx360_pos
+ .local int rx360_off
+ .local int rx360_eos
+ .local int rx360_rep
+ .local pmc rx360_cur
+ (rx360_cur, rx360_pos, rx360_tgt) = self."!cursor_start"()
+ rx360_cur."!cursor_debug"("START ", "statement_prefix:sym<INIT>")
+ .lex unicode:"$\x{a2}", rx360_cur
+ .local pmc match
+ .lex "$/", match
+ length rx360_eos, rx360_tgt
+ gt rx360_pos, rx360_eos, rx360_done
+ set rx360_off, 0
+ lt rx360_pos, 2, rx360_start
+ sub rx360_off, rx360_pos, 1
+ substr rx360_tgt, rx360_tgt, rx360_off
+ rx360_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan364_done
+ goto rxscan364_scan
+ rxscan364_loop:
+ ($P10) = rx360_cur."from"()
+ inc $P10
+ set rx360_pos, $P10
+ ge rx360_pos, rx360_eos, rxscan364_done
+ rxscan364_scan:
+ set_addr $I10, rxscan364_loop
+ rx360_cur."!mark_push"(0, rx360_pos, $I10)
+ rxscan364_done:
+.annotate 'line', 199
# rx subcapture "sym"
- set_addr $I10, rxcap_356_fail
- rx351_cur."!mark_push"(0, rx351_pos, $I10)
+ set_addr $I10, rxcap_365_fail
+ rx360_cur."!mark_push"(0, rx360_pos, $I10)
# rx literal "INIT"
- add $I11, rx351_pos, 4
- gt $I11, rx351_eos, rx351_fail
- sub $I11, rx351_pos, rx351_off
- substr $S10, rx351_tgt, $I11, 4
- ne $S10, "INIT", rx351_fail
- add rx351_pos, 4
- set_addr $I10, rxcap_356_fail
- ($I12, $I11) = rx351_cur."!mark_peek"($I10)
- rx351_cur."!cursor_pos"($I11)
- ($P10) = rx351_cur."!cursor_start"()
- $P10."!cursor_pass"(rx351_pos, "")
- rx351_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx360_pos, 4
+ gt $I11, rx360_eos, rx360_fail
+ sub $I11, rx360_pos, rx360_off
+ substr $S10, rx360_tgt, $I11, 4
+ ne $S10, "INIT", rx360_fail
+ add rx360_pos, 4
+ set_addr $I10, rxcap_365_fail
+ ($I12, $I11) = rx360_cur."!mark_peek"($I10)
+ rx360_cur."!cursor_pos"($I11)
+ ($P10) = rx360_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx360_pos, "")
+ rx360_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_356_done
- rxcap_356_fail:
- goto rx351_fail
- rxcap_356_done:
+ goto rxcap_365_done
+ rxcap_365_fail:
+ goto rx360_fail
+ rxcap_365_done:
# rx subrule "blorst" subtype=capture negate=
- rx351_cur."!cursor_pos"(rx351_pos)
- $P10 = rx351_cur."blorst"()
- unless $P10, rx351_fail
- rx351_cur."!mark_push"(0, -1, 0, $P10)
+ rx360_cur."!cursor_pos"(rx360_pos)
+ $P10 = rx360_cur."blorst"()
+ unless $P10, rx360_fail
+ rx360_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blorst")
- rx351_pos = $P10."pos"()
+ rx360_pos = $P10."pos"()
# rx pass
- rx351_cur."!cursor_pass"(rx351_pos, "statement_prefix:sym<INIT>")
- rx351_cur."!cursor_debug"("PASS ", "statement_prefix:sym<INIT>", " at pos=", rx351_pos)
- .return (rx351_cur)
- rx351_fail:
+ rx360_cur."!cursor_pass"(rx360_pos, "statement_prefix:sym<INIT>")
+ rx360_cur."!cursor_debug"("PASS ", "statement_prefix:sym<INIT>", " at pos=", rx360_pos)
+ .return (rx360_cur)
+ rx360_fail:
.annotate 'line', 4
- (rx351_rep, rx351_pos, $I10, $P10) = rx351_cur."!mark_fail"(0)
- lt rx351_pos, -1, rx351_done
- eq rx351_pos, -1, rx351_fail
+ (rx360_rep, rx360_pos, $I10, $P10) = rx360_cur."!mark_fail"(0)
+ lt rx360_pos, -1, rx360_done
+ eq rx360_pos, -1, rx360_fail
jump $I10
- rx351_done:
- rx351_cur."!cursor_fail"()
- rx351_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<INIT>")
- .return (rx351_cur)
+ rx360_done:
+ rx360_cur."!cursor_fail"()
+ rx360_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<INIT>")
+ .return (rx360_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<INIT>" :subid("78_1274022894.43745") :method
+.sub "!PREFIX__statement_prefix:sym<INIT>" :subid("80_1275811487.95429") :method
.annotate 'line', 4
- $P353 = self."!PREFIX__!subrule"("blorst", "INIT")
- new $P354, "ResizablePMCArray"
- push $P354, $P353
- .return ($P354)
+ $P362 = self."!PREFIX__!subrule"("blorst", "INIT")
+ new $P363, "ResizablePMCArray"
+ push $P363, $P362
+ .return ($P363)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_prefix:sym<try>" :subid("79_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_prefix:sym<try>" :subid("81_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx358_tgt
- .local int rx358_pos
- .local int rx358_off
- .local int rx358_eos
- .local int rx358_rep
- .local pmc rx358_cur
- (rx358_cur, rx358_pos, rx358_tgt) = self."!cursor_start"()
- rx358_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
- .lex unicode:"$\x{a2}", rx358_cur
+ .local string rx367_tgt
+ .local int rx367_pos
+ .local int rx367_off
+ .local int rx367_eos
+ .local int rx367_rep
+ .local pmc rx367_cur
+ (rx367_cur, rx367_pos, rx367_tgt) = self."!cursor_start"()
+ rx367_cur."!cursor_debug"("START ", "statement_prefix:sym<try>")
+ .lex unicode:"$\x{a2}", rx367_cur
.local pmc match
.lex "$/", match
- length rx358_eos, rx358_tgt
- set rx358_off, 0
- lt rx358_pos, 2, rx358_start
- sub rx358_off, rx358_pos, 1
- substr rx358_tgt, rx358_tgt, rx358_off
- rx358_start:
+ length rx367_eos, rx367_tgt
+ gt rx367_pos, rx367_eos, rx367_done
+ set rx367_off, 0
+ lt rx367_pos, 2, rx367_start
+ sub rx367_off, rx367_pos, 1
+ substr rx367_tgt, rx367_tgt, rx367_off
+ rx367_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan362_done
- goto rxscan362_scan
- rxscan362_loop:
- ($P10) = rx358_cur."from"()
+ ne $I10, -1, rxscan371_done
+ goto rxscan371_scan
+ rxscan371_loop:
+ ($P10) = rx367_cur."from"()
inc $P10
- set rx358_pos, $P10
- ge rx358_pos, rx358_eos, rxscan362_done
- rxscan362_scan:
- set_addr $I10, rxscan362_loop
- rx358_cur."!mark_push"(0, rx358_pos, $I10)
- rxscan362_done:
-.annotate 'line', 199
+ set rx367_pos, $P10
+ ge rx367_pos, rx367_eos, rxscan371_done
+ rxscan371_scan:
+ set_addr $I10, rxscan371_loop
+ rx367_cur."!mark_push"(0, rx367_pos, $I10)
+ rxscan371_done:
+.annotate 'line', 202
# rx subcapture "sym"
- set_addr $I10, rxcap_363_fail
- rx358_cur."!mark_push"(0, rx358_pos, $I10)
+ set_addr $I10, rxcap_372_fail
+ rx367_cur."!mark_push"(0, rx367_pos, $I10)
# rx literal "try"
- add $I11, rx358_pos, 3
- gt $I11, rx358_eos, rx358_fail
- sub $I11, rx358_pos, rx358_off
- substr $S10, rx358_tgt, $I11, 3
- ne $S10, "try", rx358_fail
- add rx358_pos, 3
- set_addr $I10, rxcap_363_fail
- ($I12, $I11) = rx358_cur."!mark_peek"($I10)
- rx358_cur."!cursor_pos"($I11)
- ($P10) = rx358_cur."!cursor_start"()
- $P10."!cursor_pass"(rx358_pos, "")
- rx358_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx367_pos, 3
+ gt $I11, rx367_eos, rx367_fail
+ sub $I11, rx367_pos, rx367_off
+ substr $S10, rx367_tgt, $I11, 3
+ ne $S10, "try", rx367_fail
+ add rx367_pos, 3
+ set_addr $I10, rxcap_372_fail
+ ($I12, $I11) = rx367_cur."!mark_peek"($I10)
+ rx367_cur."!cursor_pos"($I11)
+ ($P10) = rx367_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx367_pos, "")
+ rx367_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_363_done
- rxcap_363_fail:
- goto rx358_fail
- rxcap_363_done:
-.annotate 'line', 200
+ goto rxcap_372_done
+ rxcap_372_fail:
+ goto rx367_fail
+ rxcap_372_done:
+.annotate 'line', 203
# rx subrule "blorst" subtype=capture negate=
- rx358_cur."!cursor_pos"(rx358_pos)
- $P10 = rx358_cur."blorst"()
- unless $P10, rx358_fail
- rx358_cur."!mark_push"(0, -1, 0, $P10)
+ rx367_cur."!cursor_pos"(rx367_pos)
+ $P10 = rx367_cur."blorst"()
+ unless $P10, rx367_fail
+ rx367_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blorst")
- rx358_pos = $P10."pos"()
-.annotate 'line', 198
+ rx367_pos = $P10."pos"()
+.annotate 'line', 201
# rx pass
- rx358_cur."!cursor_pass"(rx358_pos, "statement_prefix:sym<try>")
- rx358_cur."!cursor_debug"("PASS ", "statement_prefix:sym<try>", " at pos=", rx358_pos)
- .return (rx358_cur)
- rx358_fail:
+ rx367_cur."!cursor_pass"(rx367_pos, "statement_prefix:sym<try>")
+ rx367_cur."!cursor_debug"("PASS ", "statement_prefix:sym<try>", " at pos=", rx367_pos)
+ .return (rx367_cur)
+ rx367_fail:
.annotate 'line', 4
- (rx358_rep, rx358_pos, $I10, $P10) = rx358_cur."!mark_fail"(0)
- lt rx358_pos, -1, rx358_done
- eq rx358_pos, -1, rx358_fail
+ (rx367_rep, rx367_pos, $I10, $P10) = rx367_cur."!mark_fail"(0)
+ lt rx367_pos, -1, rx367_done
+ eq rx367_pos, -1, rx367_fail
jump $I10
- rx358_done:
- rx358_cur."!cursor_fail"()
- rx358_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<try>")
- .return (rx358_cur)
+ rx367_done:
+ rx367_cur."!cursor_fail"()
+ rx367_cur."!cursor_debug"("FAIL ", "statement_prefix:sym<try>")
+ .return (rx367_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_prefix:sym<try>" :subid("80_1274022894.43745") :method
+.sub "!PREFIX__statement_prefix:sym<try>" :subid("82_1275811487.95429") :method
.annotate 'line', 4
- $P360 = self."!PREFIX__!subrule"("blorst", "try")
- new $P361, "ResizablePMCArray"
- push $P361, $P360
- .return ($P361)
+ $P369 = self."!PREFIX__!subrule"("blorst", "try")
+ new $P370, "ResizablePMCArray"
+ push $P370, $P369
+ .return ($P370)
.end
.namespace ["NQP";"Grammar"]
-.sub "blorst" :subid("81_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "blorst" :subid("83_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx365_tgt
- .local int rx365_pos
- .local int rx365_off
- .local int rx365_eos
- .local int rx365_rep
- .local pmc rx365_cur
- (rx365_cur, rx365_pos, rx365_tgt) = self."!cursor_start"()
- rx365_cur."!cursor_debug"("START ", "blorst")
- .lex unicode:"$\x{a2}", rx365_cur
- .local pmc match
- .lex "$/", match
- length rx365_eos, rx365_tgt
- set rx365_off, 0
- lt rx365_pos, 2, rx365_start
- sub rx365_off, rx365_pos, 1
- substr rx365_tgt, rx365_tgt, rx365_off
- rx365_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan368_done
- goto rxscan368_scan
- rxscan368_loop:
- ($P10) = rx365_cur."from"()
- inc $P10
- set rx365_pos, $P10
- ge rx365_pos, rx365_eos, rxscan368_done
- rxscan368_scan:
- set_addr $I10, rxscan368_loop
- rx365_cur."!mark_push"(0, rx365_pos, $I10)
- rxscan368_done:
-.annotate 'line', 204
+ .local string rx374_tgt
+ .local int rx374_pos
+ .local int rx374_off
+ .local int rx374_eos
+ .local int rx374_rep
+ .local pmc rx374_cur
+ (rx374_cur, rx374_pos, rx374_tgt) = self."!cursor_start"()
+ rx374_cur."!cursor_debug"("START ", "blorst")
+ .lex unicode:"$\x{a2}", rx374_cur
+ .local pmc match
+ .lex "$/", match
+ length rx374_eos, rx374_tgt
+ gt rx374_pos, rx374_eos, rx374_done
+ set rx374_off, 0
+ lt rx374_pos, 2, rx374_start
+ sub rx374_off, rx374_pos, 1
+ substr rx374_tgt, rx374_tgt, rx374_off
+ rx374_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan377_done
+ goto rxscan377_scan
+ rxscan377_loop:
+ ($P10) = rx374_cur."from"()
+ inc $P10
+ set rx374_pos, $P10
+ ge rx374_pos, rx374_eos, rxscan377_done
+ rxscan377_scan:
+ set_addr $I10, rxscan377_loop
+ rx374_cur."!mark_push"(0, rx374_pos, $I10)
+ rxscan377_done:
+.annotate 'line', 207
# rx charclass s
- ge rx365_pos, rx365_eos, rx365_fail
- sub $I10, rx365_pos, rx365_off
- is_cclass $I11, 32, rx365_tgt, $I10
- unless $I11, rx365_fail
- inc rx365_pos
- # rx subrule "ws" subtype=method negate=
- rx365_cur."!cursor_pos"(rx365_pos)
- $P10 = rx365_cur."ws"()
- unless $P10, rx365_fail
- rx365_pos = $P10."pos"()
- alt369_0:
- set_addr $I10, alt369_1
- rx365_cur."!mark_push"(0, rx365_pos, $I10)
+ ge rx374_pos, rx374_eos, rx374_fail
+ sub $I10, rx374_pos, rx374_off
+ is_cclass $I11, 32, rx374_tgt, $I10
+ unless $I11, rx374_fail
+ inc rx374_pos
+ # rx subrule "ws" subtype=method negate=
+ rx374_cur."!cursor_pos"(rx374_pos)
+ $P10 = rx374_cur."ws"()
+ unless $P10, rx374_fail
+ rx374_pos = $P10."pos"()
+ alt378_0:
+ set_addr $I10, alt378_1
+ rx374_cur."!mark_push"(0, rx374_pos, $I10)
# rx enumcharlist negate=0 zerowidth
- ge rx365_pos, rx365_eos, rx365_fail
- sub $I10, rx365_pos, rx365_off
- substr $S10, rx365_tgt, $I10, 1
+ ge rx374_pos, rx374_eos, rx374_fail
+ sub $I10, rx374_pos, rx374_off
+ substr $S10, rx374_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx365_fail
+ lt $I11, 0, rx374_fail
# rx subrule "block" subtype=capture negate=
- rx365_cur."!cursor_pos"(rx365_pos)
- $P10 = rx365_cur."block"()
- unless $P10, rx365_fail
- rx365_cur."!mark_push"(0, -1, 0, $P10)
+ rx374_cur."!cursor_pos"(rx374_pos)
+ $P10 = rx374_cur."block"()
+ unless $P10, rx374_fail
+ rx374_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx365_pos = $P10."pos"()
- goto alt369_end
- alt369_1:
+ rx374_pos = $P10."pos"()
+ goto alt378_end
+ alt378_1:
# rx subrule "statement" subtype=capture negate=
- rx365_cur."!cursor_pos"(rx365_pos)
- $P10 = rx365_cur."statement"()
- unless $P10, rx365_fail
- rx365_cur."!mark_push"(0, -1, 0, $P10)
+ rx374_cur."!cursor_pos"(rx374_pos)
+ $P10 = rx374_cur."statement"()
+ unless $P10, rx374_fail
+ rx374_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement")
- rx365_pos = $P10."pos"()
- alt369_end:
-.annotate 'line', 203
+ rx374_pos = $P10."pos"()
+ alt378_end:
+.annotate 'line', 206
# rx pass
- rx365_cur."!cursor_pass"(rx365_pos, "blorst")
- rx365_cur."!cursor_debug"("PASS ", "blorst", " at pos=", rx365_pos)
- .return (rx365_cur)
- rx365_fail:
+ rx374_cur."!cursor_pass"(rx374_pos, "blorst")
+ rx374_cur."!cursor_debug"("PASS ", "blorst", " at pos=", rx374_pos)
+ .return (rx374_cur)
+ rx374_fail:
.annotate 'line', 4
- (rx365_rep, rx365_pos, $I10, $P10) = rx365_cur."!mark_fail"(0)
- lt rx365_pos, -1, rx365_done
- eq rx365_pos, -1, rx365_fail
+ (rx374_rep, rx374_pos, $I10, $P10) = rx374_cur."!mark_fail"(0)
+ lt rx374_pos, -1, rx374_done
+ eq rx374_pos, -1, rx374_fail
jump $I10
- rx365_done:
- rx365_cur."!cursor_fail"()
- rx365_cur."!cursor_debug"("FAIL ", "blorst")
- .return (rx365_cur)
+ rx374_done:
+ rx374_cur."!cursor_fail"()
+ rx374_cur."!cursor_debug"("FAIL ", "blorst")
+ .return (rx374_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__blorst" :subid("82_1274022894.43745") :method
+.sub "!PREFIX__blorst" :subid("84_1275811487.95429") :method
.annotate 'line', 4
- new $P367, "ResizablePMCArray"
- push $P367, ""
- .return ($P367)
+ new $P376, "ResizablePMCArray"
+ push $P376, ""
+ .return ($P376)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond" :subid("83_1274022894.43745") :method
-.annotate 'line', 209
- $P371 = self."!protoregex"("statement_mod_cond")
- .return ($P371)
+.sub "statement_mod_cond" :subid("85_1275811487.95429") :method
+.annotate 'line', 212
+ $P380 = self."!protoregex"("statement_mod_cond")
+ .return ($P380)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond" :subid("84_1274022894.43745") :method
-.annotate 'line', 209
- $P373 = self."!PREFIX__!protoregex"("statement_mod_cond")
- .return ($P373)
+.sub "!PREFIX__statement_mod_cond" :subid("86_1275811487.95429") :method
+.annotate 'line', 212
+ $P382 = self."!PREFIX__!protoregex"("statement_mod_cond")
+ .return ($P382)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<if>" :subid("85_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_mod_cond:sym<if>" :subid("87_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx375_tgt
- .local int rx375_pos
- .local int rx375_off
- .local int rx375_eos
- .local int rx375_rep
- .local pmc rx375_cur
- (rx375_cur, rx375_pos, rx375_tgt) = self."!cursor_start"()
- rx375_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
- .lex unicode:"$\x{a2}", rx375_cur
- .local pmc match
- .lex "$/", match
- length rx375_eos, rx375_tgt
- set rx375_off, 0
- lt rx375_pos, 2, rx375_start
- sub rx375_off, rx375_pos, 1
- substr rx375_tgt, rx375_tgt, rx375_off
- rx375_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan378_done
- goto rxscan378_scan
- rxscan378_loop:
- ($P10) = rx375_cur."from"()
- inc $P10
- set rx375_pos, $P10
- ge rx375_pos, rx375_eos, rxscan378_done
- rxscan378_scan:
- set_addr $I10, rxscan378_loop
- rx375_cur."!mark_push"(0, rx375_pos, $I10)
- rxscan378_done:
-.annotate 'line', 211
+ .local string rx384_tgt
+ .local int rx384_pos
+ .local int rx384_off
+ .local int rx384_eos
+ .local int rx384_rep
+ .local pmc rx384_cur
+ (rx384_cur, rx384_pos, rx384_tgt) = self."!cursor_start"()
+ rx384_cur."!cursor_debug"("START ", "statement_mod_cond:sym<if>")
+ .lex unicode:"$\x{a2}", rx384_cur
+ .local pmc match
+ .lex "$/", match
+ length rx384_eos, rx384_tgt
+ gt rx384_pos, rx384_eos, rx384_done
+ set rx384_off, 0
+ lt rx384_pos, 2, rx384_start
+ sub rx384_off, rx384_pos, 1
+ substr rx384_tgt, rx384_tgt, rx384_off
+ rx384_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan388_done
+ goto rxscan388_scan
+ rxscan388_loop:
+ ($P10) = rx384_cur."from"()
+ inc $P10
+ set rx384_pos, $P10
+ ge rx384_pos, rx384_eos, rxscan388_done
+ rxscan388_scan:
+ set_addr $I10, rxscan388_loop
+ rx384_cur."!mark_push"(0, rx384_pos, $I10)
+ rxscan388_done:
+.annotate 'line', 214
# rx subcapture "sym"
- set_addr $I10, rxcap_379_fail
- rx375_cur."!mark_push"(0, rx375_pos, $I10)
+ set_addr $I10, rxcap_389_fail
+ rx384_cur."!mark_push"(0, rx384_pos, $I10)
# rx literal "if"
- add $I11, rx375_pos, 2
- gt $I11, rx375_eos, rx375_fail
- sub $I11, rx375_pos, rx375_off
- substr $S10, rx375_tgt, $I11, 2
- ne $S10, "if", rx375_fail
- add rx375_pos, 2
- set_addr $I10, rxcap_379_fail
- ($I12, $I11) = rx375_cur."!mark_peek"($I10)
- rx375_cur."!cursor_pos"($I11)
- ($P10) = rx375_cur."!cursor_start"()
- $P10."!cursor_pass"(rx375_pos, "")
- rx375_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx384_pos, 2
+ gt $I11, rx384_eos, rx384_fail
+ sub $I11, rx384_pos, rx384_off
+ substr $S10, rx384_tgt, $I11, 2
+ ne $S10, "if", rx384_fail
+ add rx384_pos, 2
+ set_addr $I10, rxcap_389_fail
+ ($I12, $I11) = rx384_cur."!mark_peek"($I10)
+ rx384_cur."!cursor_pos"($I11)
+ ($P10) = rx384_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx384_pos, "")
+ rx384_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_379_done
- rxcap_379_fail:
- goto rx375_fail
- rxcap_379_done:
- # rx subrule "ws" subtype=method negate=
- rx375_cur."!cursor_pos"(rx375_pos)
- $P10 = rx375_cur."ws"()
- unless $P10, rx375_fail
- rx375_pos = $P10."pos"()
+ goto rxcap_389_done
+ rxcap_389_fail:
+ goto rx384_fail
+ rxcap_389_done:
+ # rx subrule "ws" subtype=method negate=
+ rx384_cur."!cursor_pos"(rx384_pos)
+ $P10 = rx384_cur."ws"()
+ unless $P10, rx384_fail
+ rx384_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx375_cur."!cursor_pos"(rx375_pos)
- $P10 = rx375_cur."EXPR"()
- unless $P10, rx375_fail
- rx375_cur."!mark_push"(0, -1, 0, $P10)
+ rx384_cur."!cursor_pos"(rx384_pos)
+ $P10 = rx384_cur."EXPR"()
+ unless $P10, rx384_fail
+ rx384_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cond")
- rx375_pos = $P10."pos"()
+ rx384_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx375_cur."!cursor_pos"(rx375_pos)
- $P10 = rx375_cur."ws"()
- unless $P10, rx375_fail
- rx375_pos = $P10."pos"()
+ rx384_cur."!cursor_pos"(rx384_pos)
+ $P10 = rx384_cur."ws"()
+ unless $P10, rx384_fail
+ rx384_pos = $P10."pos"()
# rx pass
- rx375_cur."!cursor_pass"(rx375_pos, "statement_mod_cond:sym<if>")
- rx375_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<if>", " at pos=", rx375_pos)
- .return (rx375_cur)
- rx375_fail:
+ rx384_cur."!cursor_pass"(rx384_pos, "statement_mod_cond:sym<if>")
+ rx384_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<if>", " at pos=", rx384_pos)
+ .return (rx384_cur)
+ rx384_fail:
.annotate 'line', 4
- (rx375_rep, rx375_pos, $I10, $P10) = rx375_cur."!mark_fail"(0)
- lt rx375_pos, -1, rx375_done
- eq rx375_pos, -1, rx375_fail
+ (rx384_rep, rx384_pos, $I10, $P10) = rx384_cur."!mark_fail"(0)
+ lt rx384_pos, -1, rx384_done
+ eq rx384_pos, -1, rx384_fail
jump $I10
- rx375_done:
- rx375_cur."!cursor_fail"()
- rx375_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<if>")
- .return (rx375_cur)
+ rx384_done:
+ rx384_cur."!cursor_fail"()
+ rx384_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<if>")
+ .return (rx384_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<if>" :subid("86_1274022894.43745") :method
+.sub "!PREFIX__statement_mod_cond:sym<if>" :subid("88_1275811487.95429") :method
.annotate 'line', 4
- new $P377, "ResizablePMCArray"
- push $P377, "if"
- .return ($P377)
+ $P386 = self."!PREFIX__!subrule"("ws", "if")
+ new $P387, "ResizablePMCArray"
+ push $P387, $P386
+ .return ($P387)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_cond:sym<unless>" :subid("87_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_mod_cond:sym<unless>" :subid("89_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx383_tgt
- .local int rx383_pos
- .local int rx383_off
- .local int rx383_eos
- .local int rx383_rep
- .local pmc rx383_cur
- (rx383_cur, rx383_pos, rx383_tgt) = self."!cursor_start"()
- rx383_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
- .lex unicode:"$\x{a2}", rx383_cur
+ .local string rx393_tgt
+ .local int rx393_pos
+ .local int rx393_off
+ .local int rx393_eos
+ .local int rx393_rep
+ .local pmc rx393_cur
+ (rx393_cur, rx393_pos, rx393_tgt) = self."!cursor_start"()
+ rx393_cur."!cursor_debug"("START ", "statement_mod_cond:sym<unless>")
+ .lex unicode:"$\x{a2}", rx393_cur
.local pmc match
.lex "$/", match
- length rx383_eos, rx383_tgt
- set rx383_off, 0
- lt rx383_pos, 2, rx383_start
- sub rx383_off, rx383_pos, 1
- substr rx383_tgt, rx383_tgt, rx383_off
- rx383_start:
+ length rx393_eos, rx393_tgt
+ gt rx393_pos, rx393_eos, rx393_done
+ set rx393_off, 0
+ lt rx393_pos, 2, rx393_start
+ sub rx393_off, rx393_pos, 1
+ substr rx393_tgt, rx393_tgt, rx393_off
+ rx393_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan386_done
- goto rxscan386_scan
- rxscan386_loop:
- ($P10) = rx383_cur."from"()
+ ne $I10, -1, rxscan397_done
+ goto rxscan397_scan
+ rxscan397_loop:
+ ($P10) = rx393_cur."from"()
inc $P10
- set rx383_pos, $P10
- ge rx383_pos, rx383_eos, rxscan386_done
- rxscan386_scan:
- set_addr $I10, rxscan386_loop
- rx383_cur."!mark_push"(0, rx383_pos, $I10)
- rxscan386_done:
-.annotate 'line', 212
+ set rx393_pos, $P10
+ ge rx393_pos, rx393_eos, rxscan397_done
+ rxscan397_scan:
+ set_addr $I10, rxscan397_loop
+ rx393_cur."!mark_push"(0, rx393_pos, $I10)
+ rxscan397_done:
+.annotate 'line', 215
# rx subcapture "sym"
- set_addr $I10, rxcap_387_fail
- rx383_cur."!mark_push"(0, rx383_pos, $I10)
+ set_addr $I10, rxcap_398_fail
+ rx393_cur."!mark_push"(0, rx393_pos, $I10)
# rx literal "unless"
- add $I11, rx383_pos, 6
- gt $I11, rx383_eos, rx383_fail
- sub $I11, rx383_pos, rx383_off
- substr $S10, rx383_tgt, $I11, 6
- ne $S10, "unless", rx383_fail
- add rx383_pos, 6
- set_addr $I10, rxcap_387_fail
- ($I12, $I11) = rx383_cur."!mark_peek"($I10)
- rx383_cur."!cursor_pos"($I11)
- ($P10) = rx383_cur."!cursor_start"()
- $P10."!cursor_pass"(rx383_pos, "")
- rx383_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx393_pos, 6
+ gt $I11, rx393_eos, rx393_fail
+ sub $I11, rx393_pos, rx393_off
+ substr $S10, rx393_tgt, $I11, 6
+ ne $S10, "unless", rx393_fail
+ add rx393_pos, 6
+ set_addr $I10, rxcap_398_fail
+ ($I12, $I11) = rx393_cur."!mark_peek"($I10)
+ rx393_cur."!cursor_pos"($I11)
+ ($P10) = rx393_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx393_pos, "")
+ rx393_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_387_done
- rxcap_387_fail:
- goto rx383_fail
- rxcap_387_done:
- # rx subrule "ws" subtype=method negate=
- rx383_cur."!cursor_pos"(rx383_pos)
- $P10 = rx383_cur."ws"()
- unless $P10, rx383_fail
- rx383_pos = $P10."pos"()
+ goto rxcap_398_done
+ rxcap_398_fail:
+ goto rx393_fail
+ rxcap_398_done:
+ # rx subrule "ws" subtype=method negate=
+ rx393_cur."!cursor_pos"(rx393_pos)
+ $P10 = rx393_cur."ws"()
+ unless $P10, rx393_fail
+ rx393_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx383_cur."!cursor_pos"(rx383_pos)
- $P10 = rx383_cur."EXPR"()
- unless $P10, rx383_fail
- rx383_cur."!mark_push"(0, -1, 0, $P10)
+ rx393_cur."!cursor_pos"(rx393_pos)
+ $P10 = rx393_cur."EXPR"()
+ unless $P10, rx393_fail
+ rx393_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cond")
- rx383_pos = $P10."pos"()
+ rx393_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx383_cur."!cursor_pos"(rx383_pos)
- $P10 = rx383_cur."ws"()
- unless $P10, rx383_fail
- rx383_pos = $P10."pos"()
+ rx393_cur."!cursor_pos"(rx393_pos)
+ $P10 = rx393_cur."ws"()
+ unless $P10, rx393_fail
+ rx393_pos = $P10."pos"()
# rx pass
- rx383_cur."!cursor_pass"(rx383_pos, "statement_mod_cond:sym<unless>")
- rx383_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<unless>", " at pos=", rx383_pos)
- .return (rx383_cur)
- rx383_fail:
+ rx393_cur."!cursor_pass"(rx393_pos, "statement_mod_cond:sym<unless>")
+ rx393_cur."!cursor_debug"("PASS ", "statement_mod_cond:sym<unless>", " at pos=", rx393_pos)
+ .return (rx393_cur)
+ rx393_fail:
.annotate 'line', 4
- (rx383_rep, rx383_pos, $I10, $P10) = rx383_cur."!mark_fail"(0)
- lt rx383_pos, -1, rx383_done
- eq rx383_pos, -1, rx383_fail
+ (rx393_rep, rx393_pos, $I10, $P10) = rx393_cur."!mark_fail"(0)
+ lt rx393_pos, -1, rx393_done
+ eq rx393_pos, -1, rx393_fail
jump $I10
- rx383_done:
- rx383_cur."!cursor_fail"()
- rx383_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<unless>")
- .return (rx383_cur)
+ rx393_done:
+ rx393_cur."!cursor_fail"()
+ rx393_cur."!cursor_debug"("FAIL ", "statement_mod_cond:sym<unless>")
+ .return (rx393_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_cond:sym<unless>" :subid("88_1274022894.43745") :method
+.sub "!PREFIX__statement_mod_cond:sym<unless>" :subid("90_1275811487.95429") :method
.annotate 'line', 4
- new $P385, "ResizablePMCArray"
- push $P385, "unless"
- .return ($P385)
+ $P395 = self."!PREFIX__!subrule"("ws", "unless")
+ new $P396, "ResizablePMCArray"
+ push $P396, $P395
+ .return ($P396)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop" :subid("89_1274022894.43745") :method
-.annotate 'line', 214
- $P391 = self."!protoregex"("statement_mod_loop")
- .return ($P391)
+.sub "statement_mod_loop" :subid("91_1275811487.95429") :method
+.annotate 'line', 217
+ $P402 = self."!protoregex"("statement_mod_loop")
+ .return ($P402)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop" :subid("90_1274022894.43745") :method
-.annotate 'line', 214
- $P393 = self."!PREFIX__!protoregex"("statement_mod_loop")
- .return ($P393)
+.sub "!PREFIX__statement_mod_loop" :subid("92_1275811487.95429") :method
+.annotate 'line', 217
+ $P404 = self."!PREFIX__!protoregex"("statement_mod_loop")
+ .return ($P404)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<while>" :subid("91_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_mod_loop:sym<while>" :subid("93_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx395_tgt
- .local int rx395_pos
- .local int rx395_off
- .local int rx395_eos
- .local int rx395_rep
- .local pmc rx395_cur
- (rx395_cur, rx395_pos, rx395_tgt) = self."!cursor_start"()
- rx395_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
- .lex unicode:"$\x{a2}", rx395_cur
- .local pmc match
- .lex "$/", match
- length rx395_eos, rx395_tgt
- set rx395_off, 0
- lt rx395_pos, 2, rx395_start
- sub rx395_off, rx395_pos, 1
- substr rx395_tgt, rx395_tgt, rx395_off
- rx395_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan398_done
- goto rxscan398_scan
- rxscan398_loop:
- ($P10) = rx395_cur."from"()
- inc $P10
- set rx395_pos, $P10
- ge rx395_pos, rx395_eos, rxscan398_done
- rxscan398_scan:
- set_addr $I10, rxscan398_loop
- rx395_cur."!mark_push"(0, rx395_pos, $I10)
- rxscan398_done:
-.annotate 'line', 216
+ .local string rx406_tgt
+ .local int rx406_pos
+ .local int rx406_off
+ .local int rx406_eos
+ .local int rx406_rep
+ .local pmc rx406_cur
+ (rx406_cur, rx406_pos, rx406_tgt) = self."!cursor_start"()
+ rx406_cur."!cursor_debug"("START ", "statement_mod_loop:sym<while>")
+ .lex unicode:"$\x{a2}", rx406_cur
+ .local pmc match
+ .lex "$/", match
+ length rx406_eos, rx406_tgt
+ gt rx406_pos, rx406_eos, rx406_done
+ set rx406_off, 0
+ lt rx406_pos, 2, rx406_start
+ sub rx406_off, rx406_pos, 1
+ substr rx406_tgt, rx406_tgt, rx406_off
+ rx406_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan410_done
+ goto rxscan410_scan
+ rxscan410_loop:
+ ($P10) = rx406_cur."from"()
+ inc $P10
+ set rx406_pos, $P10
+ ge rx406_pos, rx406_eos, rxscan410_done
+ rxscan410_scan:
+ set_addr $I10, rxscan410_loop
+ rx406_cur."!mark_push"(0, rx406_pos, $I10)
+ rxscan410_done:
+.annotate 'line', 219
# rx subcapture "sym"
- set_addr $I10, rxcap_399_fail
- rx395_cur."!mark_push"(0, rx395_pos, $I10)
+ set_addr $I10, rxcap_411_fail
+ rx406_cur."!mark_push"(0, rx406_pos, $I10)
# rx literal "while"
- add $I11, rx395_pos, 5
- gt $I11, rx395_eos, rx395_fail
- sub $I11, rx395_pos, rx395_off
- substr $S10, rx395_tgt, $I11, 5
- ne $S10, "while", rx395_fail
- add rx395_pos, 5
- set_addr $I10, rxcap_399_fail
- ($I12, $I11) = rx395_cur."!mark_peek"($I10)
- rx395_cur."!cursor_pos"($I11)
- ($P10) = rx395_cur."!cursor_start"()
- $P10."!cursor_pass"(rx395_pos, "")
- rx395_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx406_pos, 5
+ gt $I11, rx406_eos, rx406_fail
+ sub $I11, rx406_pos, rx406_off
+ substr $S10, rx406_tgt, $I11, 5
+ ne $S10, "while", rx406_fail
+ add rx406_pos, 5
+ set_addr $I10, rxcap_411_fail
+ ($I12, $I11) = rx406_cur."!mark_peek"($I10)
+ rx406_cur."!cursor_pos"($I11)
+ ($P10) = rx406_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx406_pos, "")
+ rx406_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_399_done
- rxcap_399_fail:
- goto rx395_fail
- rxcap_399_done:
- # rx subrule "ws" subtype=method negate=
- rx395_cur."!cursor_pos"(rx395_pos)
- $P10 = rx395_cur."ws"()
- unless $P10, rx395_fail
- rx395_pos = $P10."pos"()
+ goto rxcap_411_done
+ rxcap_411_fail:
+ goto rx406_fail
+ rxcap_411_done:
+ # rx subrule "ws" subtype=method negate=
+ rx406_cur."!cursor_pos"(rx406_pos)
+ $P10 = rx406_cur."ws"()
+ unless $P10, rx406_fail
+ rx406_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx395_cur."!cursor_pos"(rx395_pos)
- $P10 = rx395_cur."EXPR"()
- unless $P10, rx395_fail
- rx395_cur."!mark_push"(0, -1, 0, $P10)
+ rx406_cur."!cursor_pos"(rx406_pos)
+ $P10 = rx406_cur."EXPR"()
+ unless $P10, rx406_fail
+ rx406_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cond")
- rx395_pos = $P10."pos"()
+ rx406_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx395_cur."!cursor_pos"(rx395_pos)
- $P10 = rx395_cur."ws"()
- unless $P10, rx395_fail
- rx395_pos = $P10."pos"()
+ rx406_cur."!cursor_pos"(rx406_pos)
+ $P10 = rx406_cur."ws"()
+ unless $P10, rx406_fail
+ rx406_pos = $P10."pos"()
# rx pass
- rx395_cur."!cursor_pass"(rx395_pos, "statement_mod_loop:sym<while>")
- rx395_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<while>", " at pos=", rx395_pos)
- .return (rx395_cur)
- rx395_fail:
+ rx406_cur."!cursor_pass"(rx406_pos, "statement_mod_loop:sym<while>")
+ rx406_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<while>", " at pos=", rx406_pos)
+ .return (rx406_cur)
+ rx406_fail:
.annotate 'line', 4
- (rx395_rep, rx395_pos, $I10, $P10) = rx395_cur."!mark_fail"(0)
- lt rx395_pos, -1, rx395_done
- eq rx395_pos, -1, rx395_fail
+ (rx406_rep, rx406_pos, $I10, $P10) = rx406_cur."!mark_fail"(0)
+ lt rx406_pos, -1, rx406_done
+ eq rx406_pos, -1, rx406_fail
jump $I10
- rx395_done:
- rx395_cur."!cursor_fail"()
- rx395_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<while>")
- .return (rx395_cur)
+ rx406_done:
+ rx406_cur."!cursor_fail"()
+ rx406_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<while>")
+ .return (rx406_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<while>" :subid("92_1274022894.43745") :method
+.sub "!PREFIX__statement_mod_loop:sym<while>" :subid("94_1275811487.95429") :method
.annotate 'line', 4
- new $P397, "ResizablePMCArray"
- push $P397, "while"
- .return ($P397)
+ $P408 = self."!PREFIX__!subrule"("ws", "while")
+ new $P409, "ResizablePMCArray"
+ push $P409, $P408
+ .return ($P409)
.end
.namespace ["NQP";"Grammar"]
-.sub "statement_mod_loop:sym<until>" :subid("93_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "statement_mod_loop:sym<until>" :subid("95_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx403_tgt
- .local int rx403_pos
- .local int rx403_off
- .local int rx403_eos
- .local int rx403_rep
- .local pmc rx403_cur
- (rx403_cur, rx403_pos, rx403_tgt) = self."!cursor_start"()
- rx403_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
- .lex unicode:"$\x{a2}", rx403_cur
+ .local string rx415_tgt
+ .local int rx415_pos
+ .local int rx415_off
+ .local int rx415_eos
+ .local int rx415_rep
+ .local pmc rx415_cur
+ (rx415_cur, rx415_pos, rx415_tgt) = self."!cursor_start"()
+ rx415_cur."!cursor_debug"("START ", "statement_mod_loop:sym<until>")
+ .lex unicode:"$\x{a2}", rx415_cur
.local pmc match
.lex "$/", match
- length rx403_eos, rx403_tgt
- set rx403_off, 0
- lt rx403_pos, 2, rx403_start
- sub rx403_off, rx403_pos, 1
- substr rx403_tgt, rx403_tgt, rx403_off
- rx403_start:
+ length rx415_eos, rx415_tgt
+ gt rx415_pos, rx415_eos, rx415_done
+ set rx415_off, 0
+ lt rx415_pos, 2, rx415_start
+ sub rx415_off, rx415_pos, 1
+ substr rx415_tgt, rx415_tgt, rx415_off
+ rx415_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan406_done
- goto rxscan406_scan
- rxscan406_loop:
- ($P10) = rx403_cur."from"()
+ ne $I10, -1, rxscan419_done
+ goto rxscan419_scan
+ rxscan419_loop:
+ ($P10) = rx415_cur."from"()
inc $P10
- set rx403_pos, $P10
- ge rx403_pos, rx403_eos, rxscan406_done
- rxscan406_scan:
- set_addr $I10, rxscan406_loop
- rx403_cur."!mark_push"(0, rx403_pos, $I10)
- rxscan406_done:
-.annotate 'line', 217
+ set rx415_pos, $P10
+ ge rx415_pos, rx415_eos, rxscan419_done
+ rxscan419_scan:
+ set_addr $I10, rxscan419_loop
+ rx415_cur."!mark_push"(0, rx415_pos, $I10)
+ rxscan419_done:
+.annotate 'line', 220
# rx subcapture "sym"
- set_addr $I10, rxcap_407_fail
- rx403_cur."!mark_push"(0, rx403_pos, $I10)
+ set_addr $I10, rxcap_420_fail
+ rx415_cur."!mark_push"(0, rx415_pos, $I10)
# rx literal "until"
- add $I11, rx403_pos, 5
- gt $I11, rx403_eos, rx403_fail
- sub $I11, rx403_pos, rx403_off
- substr $S10, rx403_tgt, $I11, 5
- ne $S10, "until", rx403_fail
- add rx403_pos, 5
- set_addr $I10, rxcap_407_fail
- ($I12, $I11) = rx403_cur."!mark_peek"($I10)
- rx403_cur."!cursor_pos"($I11)
- ($P10) = rx403_cur."!cursor_start"()
- $P10."!cursor_pass"(rx403_pos, "")
- rx403_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx415_pos, 5
+ gt $I11, rx415_eos, rx415_fail
+ sub $I11, rx415_pos, rx415_off
+ substr $S10, rx415_tgt, $I11, 5
+ ne $S10, "until", rx415_fail
+ add rx415_pos, 5
+ set_addr $I10, rxcap_420_fail
+ ($I12, $I11) = rx415_cur."!mark_peek"($I10)
+ rx415_cur."!cursor_pos"($I11)
+ ($P10) = rx415_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx415_pos, "")
+ rx415_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_407_done
- rxcap_407_fail:
- goto rx403_fail
- rxcap_407_done:
- # rx subrule "ws" subtype=method negate=
- rx403_cur."!cursor_pos"(rx403_pos)
- $P10 = rx403_cur."ws"()
- unless $P10, rx403_fail
- rx403_pos = $P10."pos"()
+ goto rxcap_420_done
+ rxcap_420_fail:
+ goto rx415_fail
+ rxcap_420_done:
+ # rx subrule "ws" subtype=method negate=
+ rx415_cur."!cursor_pos"(rx415_pos)
+ $P10 = rx415_cur."ws"()
+ unless $P10, rx415_fail
+ rx415_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx403_cur."!cursor_pos"(rx403_pos)
- $P10 = rx403_cur."EXPR"()
- unless $P10, rx403_fail
- rx403_cur."!mark_push"(0, -1, 0, $P10)
+ rx415_cur."!cursor_pos"(rx415_pos)
+ $P10 = rx415_cur."EXPR"()
+ unless $P10, rx415_fail
+ rx415_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cond")
- rx403_pos = $P10."pos"()
+ rx415_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx403_cur."!cursor_pos"(rx403_pos)
- $P10 = rx403_cur."ws"()
- unless $P10, rx403_fail
- rx403_pos = $P10."pos"()
+ rx415_cur."!cursor_pos"(rx415_pos)
+ $P10 = rx415_cur."ws"()
+ unless $P10, rx415_fail
+ rx415_pos = $P10."pos"()
# rx pass
- rx403_cur."!cursor_pass"(rx403_pos, "statement_mod_loop:sym<until>")
- rx403_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<until>", " at pos=", rx403_pos)
- .return (rx403_cur)
- rx403_fail:
+ rx415_cur."!cursor_pass"(rx415_pos, "statement_mod_loop:sym<until>")
+ rx415_cur."!cursor_debug"("PASS ", "statement_mod_loop:sym<until>", " at pos=", rx415_pos)
+ .return (rx415_cur)
+ rx415_fail:
.annotate 'line', 4
- (rx403_rep, rx403_pos, $I10, $P10) = rx403_cur."!mark_fail"(0)
- lt rx403_pos, -1, rx403_done
- eq rx403_pos, -1, rx403_fail
+ (rx415_rep, rx415_pos, $I10, $P10) = rx415_cur."!mark_fail"(0)
+ lt rx415_pos, -1, rx415_done
+ eq rx415_pos, -1, rx415_fail
jump $I10
- rx403_done:
- rx403_cur."!cursor_fail"()
- rx403_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<until>")
- .return (rx403_cur)
+ rx415_done:
+ rx415_cur."!cursor_fail"()
+ rx415_cur."!cursor_debug"("FAIL ", "statement_mod_loop:sym<until>")
+ .return (rx415_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__statement_mod_loop:sym<until>" :subid("94_1274022894.43745") :method
+.sub "!PREFIX__statement_mod_loop:sym<until>" :subid("96_1275811487.95429") :method
.annotate 'line', 4
- new $P405, "ResizablePMCArray"
- push $P405, "until"
- .return ($P405)
+ $P417 = self."!PREFIX__!subrule"("ws", "until")
+ new $P418, "ResizablePMCArray"
+ push $P418, $P417
+ .return ($P418)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<fatarrow>" :subid("95_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<fatarrow>" :subid("97_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx411_tgt
- .local int rx411_pos
- .local int rx411_off
- .local int rx411_eos
- .local int rx411_rep
- .local pmc rx411_cur
- (rx411_cur, rx411_pos, rx411_tgt) = self."!cursor_start"()
- rx411_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
- .lex unicode:"$\x{a2}", rx411_cur
+ .local string rx424_tgt
+ .local int rx424_pos
+ .local int rx424_off
+ .local int rx424_eos
+ .local int rx424_rep
+ .local pmc rx424_cur
+ (rx424_cur, rx424_pos, rx424_tgt) = self."!cursor_start"()
+ rx424_cur."!cursor_debug"("START ", "term:sym<fatarrow>")
+ .lex unicode:"$\x{a2}", rx424_cur
.local pmc match
.lex "$/", match
- length rx411_eos, rx411_tgt
- set rx411_off, 0
- lt rx411_pos, 2, rx411_start
- sub rx411_off, rx411_pos, 1
- substr rx411_tgt, rx411_tgt, rx411_off
- rx411_start:
+ length rx424_eos, rx424_tgt
+ gt rx424_pos, rx424_eos, rx424_done
+ set rx424_off, 0
+ lt rx424_pos, 2, rx424_start
+ sub rx424_off, rx424_pos, 1
+ substr rx424_tgt, rx424_tgt, rx424_off
+ rx424_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan415_done
- goto rxscan415_scan
- rxscan415_loop:
- ($P10) = rx411_cur."from"()
+ ne $I10, -1, rxscan428_done
+ goto rxscan428_scan
+ rxscan428_loop:
+ ($P10) = rx424_cur."from"()
inc $P10
- set rx411_pos, $P10
- ge rx411_pos, rx411_eos, rxscan415_done
- rxscan415_scan:
- set_addr $I10, rxscan415_loop
- rx411_cur."!mark_push"(0, rx411_pos, $I10)
- rxscan415_done:
-.annotate 'line', 221
+ set rx424_pos, $P10
+ ge rx424_pos, rx424_eos, rxscan428_done
+ rxscan428_scan:
+ set_addr $I10, rxscan428_loop
+ rx424_cur."!mark_push"(0, rx424_pos, $I10)
+ rxscan428_done:
+.annotate 'line', 224
# rx subrule "fatarrow" subtype=capture negate=
- rx411_cur."!cursor_pos"(rx411_pos)
- $P10 = rx411_cur."fatarrow"()
- unless $P10, rx411_fail
- rx411_cur."!mark_push"(0, -1, 0, $P10)
+ rx424_cur."!cursor_pos"(rx424_pos)
+ $P10 = rx424_cur."fatarrow"()
+ unless $P10, rx424_fail
+ rx424_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("fatarrow")
- rx411_pos = $P10."pos"()
+ rx424_pos = $P10."pos"()
# rx pass
- rx411_cur."!cursor_pass"(rx411_pos, "term:sym<fatarrow>")
- rx411_cur."!cursor_debug"("PASS ", "term:sym<fatarrow>", " at pos=", rx411_pos)
- .return (rx411_cur)
- rx411_fail:
+ rx424_cur."!cursor_pass"(rx424_pos, "term:sym<fatarrow>")
+ rx424_cur."!cursor_debug"("PASS ", "term:sym<fatarrow>", " at pos=", rx424_pos)
+ .return (rx424_cur)
+ rx424_fail:
.annotate 'line', 4
- (rx411_rep, rx411_pos, $I10, $P10) = rx411_cur."!mark_fail"(0)
- lt rx411_pos, -1, rx411_done
- eq rx411_pos, -1, rx411_fail
+ (rx424_rep, rx424_pos, $I10, $P10) = rx424_cur."!mark_fail"(0)
+ lt rx424_pos, -1, rx424_done
+ eq rx424_pos, -1, rx424_fail
jump $I10
- rx411_done:
- rx411_cur."!cursor_fail"()
- rx411_cur."!cursor_debug"("FAIL ", "term:sym<fatarrow>")
- .return (rx411_cur)
+ rx424_done:
+ rx424_cur."!cursor_fail"()
+ rx424_cur."!cursor_debug"("FAIL ", "term:sym<fatarrow>")
+ .return (rx424_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<fatarrow>" :subid("96_1274022894.43745") :method
+.sub "!PREFIX__term:sym<fatarrow>" :subid("98_1275811487.95429") :method
.annotate 'line', 4
- $P413 = self."!PREFIX__!subrule"("fatarrow", "")
- new $P414, "ResizablePMCArray"
- push $P414, $P413
- .return ($P414)
+ $P426 = self."!PREFIX__!subrule"("fatarrow", "")
+ new $P427, "ResizablePMCArray"
+ push $P427, $P426
+ .return ($P427)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<colonpair>" :subid("97_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<colonpair>" :subid("99_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx417_tgt
- .local int rx417_pos
- .local int rx417_off
- .local int rx417_eos
- .local int rx417_rep
- .local pmc rx417_cur
- (rx417_cur, rx417_pos, rx417_tgt) = self."!cursor_start"()
- rx417_cur."!cursor_debug"("START ", "term:sym<colonpair>")
- .lex unicode:"$\x{a2}", rx417_cur
+ .local string rx430_tgt
+ .local int rx430_pos
+ .local int rx430_off
+ .local int rx430_eos
+ .local int rx430_rep
+ .local pmc rx430_cur
+ (rx430_cur, rx430_pos, rx430_tgt) = self."!cursor_start"()
+ rx430_cur."!cursor_debug"("START ", "term:sym<colonpair>")
+ .lex unicode:"$\x{a2}", rx430_cur
.local pmc match
.lex "$/", match
- length rx417_eos, rx417_tgt
- set rx417_off, 0
- lt rx417_pos, 2, rx417_start
- sub rx417_off, rx417_pos, 1
- substr rx417_tgt, rx417_tgt, rx417_off
- rx417_start:
+ length rx430_eos, rx430_tgt
+ gt rx430_pos, rx430_eos, rx430_done
+ set rx430_off, 0
+ lt rx430_pos, 2, rx430_start
+ sub rx430_off, rx430_pos, 1
+ substr rx430_tgt, rx430_tgt, rx430_off
+ rx430_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan421_done
- goto rxscan421_scan
- rxscan421_loop:
- ($P10) = rx417_cur."from"()
+ ne $I10, -1, rxscan434_done
+ goto rxscan434_scan
+ rxscan434_loop:
+ ($P10) = rx430_cur."from"()
inc $P10
- set rx417_pos, $P10
- ge rx417_pos, rx417_eos, rxscan421_done
- rxscan421_scan:
- set_addr $I10, rxscan421_loop
- rx417_cur."!mark_push"(0, rx417_pos, $I10)
- rxscan421_done:
-.annotate 'line', 222
+ set rx430_pos, $P10
+ ge rx430_pos, rx430_eos, rxscan434_done
+ rxscan434_scan:
+ set_addr $I10, rxscan434_loop
+ rx430_cur."!mark_push"(0, rx430_pos, $I10)
+ rxscan434_done:
+.annotate 'line', 225
# rx subrule "colonpair" subtype=capture negate=
- rx417_cur."!cursor_pos"(rx417_pos)
- $P10 = rx417_cur."colonpair"()
- unless $P10, rx417_fail
- rx417_cur."!mark_push"(0, -1, 0, $P10)
+ rx430_cur."!cursor_pos"(rx430_pos)
+ $P10 = rx430_cur."colonpair"()
+ unless $P10, rx430_fail
+ rx430_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("colonpair")
- rx417_pos = $P10."pos"()
+ rx430_pos = $P10."pos"()
# rx pass
- rx417_cur."!cursor_pass"(rx417_pos, "term:sym<colonpair>")
- rx417_cur."!cursor_debug"("PASS ", "term:sym<colonpair>", " at pos=", rx417_pos)
- .return (rx417_cur)
- rx417_fail:
+ rx430_cur."!cursor_pass"(rx430_pos, "term:sym<colonpair>")
+ rx430_cur."!cursor_debug"("PASS ", "term:sym<colonpair>", " at pos=", rx430_pos)
+ .return (rx430_cur)
+ rx430_fail:
.annotate 'line', 4
- (rx417_rep, rx417_pos, $I10, $P10) = rx417_cur."!mark_fail"(0)
- lt rx417_pos, -1, rx417_done
- eq rx417_pos, -1, rx417_fail
+ (rx430_rep, rx430_pos, $I10, $P10) = rx430_cur."!mark_fail"(0)
+ lt rx430_pos, -1, rx430_done
+ eq rx430_pos, -1, rx430_fail
jump $I10
- rx417_done:
- rx417_cur."!cursor_fail"()
- rx417_cur."!cursor_debug"("FAIL ", "term:sym<colonpair>")
- .return (rx417_cur)
+ rx430_done:
+ rx430_cur."!cursor_fail"()
+ rx430_cur."!cursor_debug"("FAIL ", "term:sym<colonpair>")
+ .return (rx430_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<colonpair>" :subid("98_1274022894.43745") :method
+.sub "!PREFIX__term:sym<colonpair>" :subid("100_1275811487.95429") :method
.annotate 'line', 4
- $P419 = self."!PREFIX__!subrule"("colonpair", "")
- new $P420, "ResizablePMCArray"
- push $P420, $P419
- .return ($P420)
+ $P432 = self."!PREFIX__!subrule"("colonpair", "")
+ new $P433, "ResizablePMCArray"
+ push $P433, $P432
+ .return ($P433)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<variable>" :subid("99_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<variable>" :subid("101_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx423_tgt
- .local int rx423_pos
- .local int rx423_off
- .local int rx423_eos
- .local int rx423_rep
- .local pmc rx423_cur
- (rx423_cur, rx423_pos, rx423_tgt) = self."!cursor_start"()
- rx423_cur."!cursor_debug"("START ", "term:sym<variable>")
- .lex unicode:"$\x{a2}", rx423_cur
+ .local string rx436_tgt
+ .local int rx436_pos
+ .local int rx436_off
+ .local int rx436_eos
+ .local int rx436_rep
+ .local pmc rx436_cur
+ (rx436_cur, rx436_pos, rx436_tgt) = self."!cursor_start"()
+ rx436_cur."!cursor_debug"("START ", "term:sym<variable>")
+ .lex unicode:"$\x{a2}", rx436_cur
.local pmc match
.lex "$/", match
- length rx423_eos, rx423_tgt
- set rx423_off, 0
- lt rx423_pos, 2, rx423_start
- sub rx423_off, rx423_pos, 1
- substr rx423_tgt, rx423_tgt, rx423_off
- rx423_start:
+ length rx436_eos, rx436_tgt
+ gt rx436_pos, rx436_eos, rx436_done
+ set rx436_off, 0
+ lt rx436_pos, 2, rx436_start
+ sub rx436_off, rx436_pos, 1
+ substr rx436_tgt, rx436_tgt, rx436_off
+ rx436_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan427_done
- goto rxscan427_scan
- rxscan427_loop:
- ($P10) = rx423_cur."from"()
+ ne $I10, -1, rxscan440_done
+ goto rxscan440_scan
+ rxscan440_loop:
+ ($P10) = rx436_cur."from"()
inc $P10
- set rx423_pos, $P10
- ge rx423_pos, rx423_eos, rxscan427_done
- rxscan427_scan:
- set_addr $I10, rxscan427_loop
- rx423_cur."!mark_push"(0, rx423_pos, $I10)
- rxscan427_done:
-.annotate 'line', 223
+ set rx436_pos, $P10
+ ge rx436_pos, rx436_eos, rxscan440_done
+ rxscan440_scan:
+ set_addr $I10, rxscan440_loop
+ rx436_cur."!mark_push"(0, rx436_pos, $I10)
+ rxscan440_done:
+.annotate 'line', 226
# rx subrule "variable" subtype=capture negate=
- rx423_cur."!cursor_pos"(rx423_pos)
- $P10 = rx423_cur."variable"()
- unless $P10, rx423_fail
- rx423_cur."!mark_push"(0, -1, 0, $P10)
+ rx436_cur."!cursor_pos"(rx436_pos)
+ $P10 = rx436_cur."variable"()
+ unless $P10, rx436_fail
+ rx436_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("variable")
- rx423_pos = $P10."pos"()
+ rx436_pos = $P10."pos"()
# rx pass
- rx423_cur."!cursor_pass"(rx423_pos, "term:sym<variable>")
- rx423_cur."!cursor_debug"("PASS ", "term:sym<variable>", " at pos=", rx423_pos)
- .return (rx423_cur)
- rx423_fail:
+ rx436_cur."!cursor_pass"(rx436_pos, "term:sym<variable>")
+ rx436_cur."!cursor_debug"("PASS ", "term:sym<variable>", " at pos=", rx436_pos)
+ .return (rx436_cur)
+ rx436_fail:
.annotate 'line', 4
- (rx423_rep, rx423_pos, $I10, $P10) = rx423_cur."!mark_fail"(0)
- lt rx423_pos, -1, rx423_done
- eq rx423_pos, -1, rx423_fail
+ (rx436_rep, rx436_pos, $I10, $P10) = rx436_cur."!mark_fail"(0)
+ lt rx436_pos, -1, rx436_done
+ eq rx436_pos, -1, rx436_fail
jump $I10
- rx423_done:
- rx423_cur."!cursor_fail"()
- rx423_cur."!cursor_debug"("FAIL ", "term:sym<variable>")
- .return (rx423_cur)
+ rx436_done:
+ rx436_cur."!cursor_fail"()
+ rx436_cur."!cursor_debug"("FAIL ", "term:sym<variable>")
+ .return (rx436_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<variable>" :subid("100_1274022894.43745") :method
+.sub "!PREFIX__term:sym<variable>" :subid("102_1275811487.95429") :method
.annotate 'line', 4
- $P425 = self."!PREFIX__!subrule"("variable", "")
- new $P426, "ResizablePMCArray"
- push $P426, $P425
- .return ($P426)
+ $P438 = self."!PREFIX__!subrule"("variable", "")
+ new $P439, "ResizablePMCArray"
+ push $P439, $P438
+ .return ($P439)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<package_declarator>" :subid("101_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<package_declarator>" :subid("103_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx429_tgt
- .local int rx429_pos
- .local int rx429_off
- .local int rx429_eos
- .local int rx429_rep
- .local pmc rx429_cur
- (rx429_cur, rx429_pos, rx429_tgt) = self."!cursor_start"()
- rx429_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
- .lex unicode:"$\x{a2}", rx429_cur
- .local pmc match
- .lex "$/", match
- length rx429_eos, rx429_tgt
- set rx429_off, 0
- lt rx429_pos, 2, rx429_start
- sub rx429_off, rx429_pos, 1
- substr rx429_tgt, rx429_tgt, rx429_off
- rx429_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan433_done
- goto rxscan433_scan
- rxscan433_loop:
- ($P10) = rx429_cur."from"()
- inc $P10
- set rx429_pos, $P10
- ge rx429_pos, rx429_eos, rxscan433_done
- rxscan433_scan:
- set_addr $I10, rxscan433_loop
- rx429_cur."!mark_push"(0, rx429_pos, $I10)
- rxscan433_done:
-.annotate 'line', 224
+ .local string rx442_tgt
+ .local int rx442_pos
+ .local int rx442_off
+ .local int rx442_eos
+ .local int rx442_rep
+ .local pmc rx442_cur
+ (rx442_cur, rx442_pos, rx442_tgt) = self."!cursor_start"()
+ rx442_cur."!cursor_debug"("START ", "term:sym<package_declarator>")
+ .lex unicode:"$\x{a2}", rx442_cur
+ .local pmc match
+ .lex "$/", match
+ length rx442_eos, rx442_tgt
+ gt rx442_pos, rx442_eos, rx442_done
+ set rx442_off, 0
+ lt rx442_pos, 2, rx442_start
+ sub rx442_off, rx442_pos, 1
+ substr rx442_tgt, rx442_tgt, rx442_off
+ rx442_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan446_done
+ goto rxscan446_scan
+ rxscan446_loop:
+ ($P10) = rx442_cur."from"()
+ inc $P10
+ set rx442_pos, $P10
+ ge rx442_pos, rx442_eos, rxscan446_done
+ rxscan446_scan:
+ set_addr $I10, rxscan446_loop
+ rx442_cur."!mark_push"(0, rx442_pos, $I10)
+ rxscan446_done:
+.annotate 'line', 227
# rx subrule "package_declarator" subtype=capture negate=
- rx429_cur."!cursor_pos"(rx429_pos)
- $P10 = rx429_cur."package_declarator"()
- unless $P10, rx429_fail
- rx429_cur."!mark_push"(0, -1, 0, $P10)
+ rx442_cur."!cursor_pos"(rx442_pos)
+ $P10 = rx442_cur."package_declarator"()
+ unless $P10, rx442_fail
+ rx442_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("package_declarator")
- rx429_pos = $P10."pos"()
+ rx442_pos = $P10."pos"()
# rx pass
- rx429_cur."!cursor_pass"(rx429_pos, "term:sym<package_declarator>")
- rx429_cur."!cursor_debug"("PASS ", "term:sym<package_declarator>", " at pos=", rx429_pos)
- .return (rx429_cur)
- rx429_fail:
+ rx442_cur."!cursor_pass"(rx442_pos, "term:sym<package_declarator>")
+ rx442_cur."!cursor_debug"("PASS ", "term:sym<package_declarator>", " at pos=", rx442_pos)
+ .return (rx442_cur)
+ rx442_fail:
.annotate 'line', 4
- (rx429_rep, rx429_pos, $I10, $P10) = rx429_cur."!mark_fail"(0)
- lt rx429_pos, -1, rx429_done
- eq rx429_pos, -1, rx429_fail
+ (rx442_rep, rx442_pos, $I10, $P10) = rx442_cur."!mark_fail"(0)
+ lt rx442_pos, -1, rx442_done
+ eq rx442_pos, -1, rx442_fail
jump $I10
- rx429_done:
- rx429_cur."!cursor_fail"()
- rx429_cur."!cursor_debug"("FAIL ", "term:sym<package_declarator>")
- .return (rx429_cur)
+ rx442_done:
+ rx442_cur."!cursor_fail"()
+ rx442_cur."!cursor_debug"("FAIL ", "term:sym<package_declarator>")
+ .return (rx442_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<package_declarator>" :subid("102_1274022894.43745") :method
+.sub "!PREFIX__term:sym<package_declarator>" :subid("104_1275811487.95429") :method
.annotate 'line', 4
- $P431 = self."!PREFIX__!subrule"("package_declarator", "")
- new $P432, "ResizablePMCArray"
- push $P432, $P431
- .return ($P432)
+ $P444 = self."!PREFIX__!subrule"("package_declarator", "")
+ new $P445, "ResizablePMCArray"
+ push $P445, $P444
+ .return ($P445)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<scope_declarator>" :subid("103_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<scope_declarator>" :subid("105_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx435_tgt
- .local int rx435_pos
- .local int rx435_off
- .local int rx435_eos
- .local int rx435_rep
- .local pmc rx435_cur
- (rx435_cur, rx435_pos, rx435_tgt) = self."!cursor_start"()
- rx435_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
- .lex unicode:"$\x{a2}", rx435_cur
+ .local string rx448_tgt
+ .local int rx448_pos
+ .local int rx448_off
+ .local int rx448_eos
+ .local int rx448_rep
+ .local pmc rx448_cur
+ (rx448_cur, rx448_pos, rx448_tgt) = self."!cursor_start"()
+ rx448_cur."!cursor_debug"("START ", "term:sym<scope_declarator>")
+ .lex unicode:"$\x{a2}", rx448_cur
.local pmc match
.lex "$/", match
- length rx435_eos, rx435_tgt
- set rx435_off, 0
- lt rx435_pos, 2, rx435_start
- sub rx435_off, rx435_pos, 1
- substr rx435_tgt, rx435_tgt, rx435_off
- rx435_start:
+ length rx448_eos, rx448_tgt
+ gt rx448_pos, rx448_eos, rx448_done
+ set rx448_off, 0
+ lt rx448_pos, 2, rx448_start
+ sub rx448_off, rx448_pos, 1
+ substr rx448_tgt, rx448_tgt, rx448_off
+ rx448_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan439_done
- goto rxscan439_scan
- rxscan439_loop:
- ($P10) = rx435_cur."from"()
+ ne $I10, -1, rxscan452_done
+ goto rxscan452_scan
+ rxscan452_loop:
+ ($P10) = rx448_cur."from"()
inc $P10
- set rx435_pos, $P10
- ge rx435_pos, rx435_eos, rxscan439_done
- rxscan439_scan:
- set_addr $I10, rxscan439_loop
- rx435_cur."!mark_push"(0, rx435_pos, $I10)
- rxscan439_done:
-.annotate 'line', 225
+ set rx448_pos, $P10
+ ge rx448_pos, rx448_eos, rxscan452_done
+ rxscan452_scan:
+ set_addr $I10, rxscan452_loop
+ rx448_cur."!mark_push"(0, rx448_pos, $I10)
+ rxscan452_done:
+.annotate 'line', 228
# rx subrule "scope_declarator" subtype=capture negate=
- rx435_cur."!cursor_pos"(rx435_pos)
- $P10 = rx435_cur."scope_declarator"()
- unless $P10, rx435_fail
- rx435_cur."!mark_push"(0, -1, 0, $P10)
+ rx448_cur."!cursor_pos"(rx448_pos)
+ $P10 = rx448_cur."scope_declarator"()
+ unless $P10, rx448_fail
+ rx448_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("scope_declarator")
- rx435_pos = $P10."pos"()
+ rx448_pos = $P10."pos"()
# rx pass
- rx435_cur."!cursor_pass"(rx435_pos, "term:sym<scope_declarator>")
- rx435_cur."!cursor_debug"("PASS ", "term:sym<scope_declarator>", " at pos=", rx435_pos)
- .return (rx435_cur)
- rx435_fail:
+ rx448_cur."!cursor_pass"(rx448_pos, "term:sym<scope_declarator>")
+ rx448_cur."!cursor_debug"("PASS ", "term:sym<scope_declarator>", " at pos=", rx448_pos)
+ .return (rx448_cur)
+ rx448_fail:
.annotate 'line', 4
- (rx435_rep, rx435_pos, $I10, $P10) = rx435_cur."!mark_fail"(0)
- lt rx435_pos, -1, rx435_done
- eq rx435_pos, -1, rx435_fail
+ (rx448_rep, rx448_pos, $I10, $P10) = rx448_cur."!mark_fail"(0)
+ lt rx448_pos, -1, rx448_done
+ eq rx448_pos, -1, rx448_fail
jump $I10
- rx435_done:
- rx435_cur."!cursor_fail"()
- rx435_cur."!cursor_debug"("FAIL ", "term:sym<scope_declarator>")
- .return (rx435_cur)
+ rx448_done:
+ rx448_cur."!cursor_fail"()
+ rx448_cur."!cursor_debug"("FAIL ", "term:sym<scope_declarator>")
+ .return (rx448_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<scope_declarator>" :subid("104_1274022894.43745") :method
+.sub "!PREFIX__term:sym<scope_declarator>" :subid("106_1275811487.95429") :method
.annotate 'line', 4
- $P437 = self."!PREFIX__!subrule"("scope_declarator", "")
- new $P438, "ResizablePMCArray"
- push $P438, $P437
- .return ($P438)
+ $P450 = self."!PREFIX__!subrule"("scope_declarator", "")
+ new $P451, "ResizablePMCArray"
+ push $P451, $P450
+ .return ($P451)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<routine_declarator>" :subid("105_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<routine_declarator>" :subid("107_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx441_tgt
- .local int rx441_pos
- .local int rx441_off
- .local int rx441_eos
- .local int rx441_rep
- .local pmc rx441_cur
- (rx441_cur, rx441_pos, rx441_tgt) = self."!cursor_start"()
- rx441_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
- .lex unicode:"$\x{a2}", rx441_cur
+ .local string rx454_tgt
+ .local int rx454_pos
+ .local int rx454_off
+ .local int rx454_eos
+ .local int rx454_rep
+ .local pmc rx454_cur
+ (rx454_cur, rx454_pos, rx454_tgt) = self."!cursor_start"()
+ rx454_cur."!cursor_debug"("START ", "term:sym<routine_declarator>")
+ .lex unicode:"$\x{a2}", rx454_cur
.local pmc match
.lex "$/", match
- length rx441_eos, rx441_tgt
- set rx441_off, 0
- lt rx441_pos, 2, rx441_start
- sub rx441_off, rx441_pos, 1
- substr rx441_tgt, rx441_tgt, rx441_off
- rx441_start:
+ length rx454_eos, rx454_tgt
+ gt rx454_pos, rx454_eos, rx454_done
+ set rx454_off, 0
+ lt rx454_pos, 2, rx454_start
+ sub rx454_off, rx454_pos, 1
+ substr rx454_tgt, rx454_tgt, rx454_off
+ rx454_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan445_done
- goto rxscan445_scan
- rxscan445_loop:
- ($P10) = rx441_cur."from"()
+ ne $I10, -1, rxscan458_done
+ goto rxscan458_scan
+ rxscan458_loop:
+ ($P10) = rx454_cur."from"()
inc $P10
- set rx441_pos, $P10
- ge rx441_pos, rx441_eos, rxscan445_done
- rxscan445_scan:
- set_addr $I10, rxscan445_loop
- rx441_cur."!mark_push"(0, rx441_pos, $I10)
- rxscan445_done:
-.annotate 'line', 226
+ set rx454_pos, $P10
+ ge rx454_pos, rx454_eos, rxscan458_done
+ rxscan458_scan:
+ set_addr $I10, rxscan458_loop
+ rx454_cur."!mark_push"(0, rx454_pos, $I10)
+ rxscan458_done:
+.annotate 'line', 229
# rx subrule "routine_declarator" subtype=capture negate=
- rx441_cur."!cursor_pos"(rx441_pos)
- $P10 = rx441_cur."routine_declarator"()
- unless $P10, rx441_fail
- rx441_cur."!mark_push"(0, -1, 0, $P10)
+ rx454_cur."!cursor_pos"(rx454_pos)
+ $P10 = rx454_cur."routine_declarator"()
+ unless $P10, rx454_fail
+ rx454_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("routine_declarator")
- rx441_pos = $P10."pos"()
+ rx454_pos = $P10."pos"()
# rx pass
- rx441_cur."!cursor_pass"(rx441_pos, "term:sym<routine_declarator>")
- rx441_cur."!cursor_debug"("PASS ", "term:sym<routine_declarator>", " at pos=", rx441_pos)
- .return (rx441_cur)
- rx441_fail:
+ rx454_cur."!cursor_pass"(rx454_pos, "term:sym<routine_declarator>")
+ rx454_cur."!cursor_debug"("PASS ", "term:sym<routine_declarator>", " at pos=", rx454_pos)
+ .return (rx454_cur)
+ rx454_fail:
.annotate 'line', 4
- (rx441_rep, rx441_pos, $I10, $P10) = rx441_cur."!mark_fail"(0)
- lt rx441_pos, -1, rx441_done
- eq rx441_pos, -1, rx441_fail
+ (rx454_rep, rx454_pos, $I10, $P10) = rx454_cur."!mark_fail"(0)
+ lt rx454_pos, -1, rx454_done
+ eq rx454_pos, -1, rx454_fail
jump $I10
- rx441_done:
- rx441_cur."!cursor_fail"()
- rx441_cur."!cursor_debug"("FAIL ", "term:sym<routine_declarator>")
- .return (rx441_cur)
+ rx454_done:
+ rx454_cur."!cursor_fail"()
+ rx454_cur."!cursor_debug"("FAIL ", "term:sym<routine_declarator>")
+ .return (rx454_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<routine_declarator>" :subid("106_1274022894.43745") :method
+.sub "!PREFIX__term:sym<routine_declarator>" :subid("108_1275811487.95429") :method
.annotate 'line', 4
- $P443 = self."!PREFIX__!subrule"("routine_declarator", "")
- new $P444, "ResizablePMCArray"
- push $P444, $P443
- .return ($P444)
+ $P456 = self."!PREFIX__!subrule"("routine_declarator", "")
+ new $P457, "ResizablePMCArray"
+ push $P457, $P456
+ .return ($P457)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<regex_declarator>" :subid("107_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<multi_declarator>" :subid("109_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx447_tgt
- .local int rx447_pos
- .local int rx447_off
- .local int rx447_eos
- .local int rx447_rep
- .local pmc rx447_cur
- (rx447_cur, rx447_pos, rx447_tgt) = self."!cursor_start"()
- rx447_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
- .lex unicode:"$\x{a2}", rx447_cur
+ .const 'Sub' $P465 = "111_1275811487.95429"
+ capture_lex $P465
+ .local string rx460_tgt
+ .local int rx460_pos
+ .local int rx460_off
+ .local int rx460_eos
+ .local int rx460_rep
+ .local pmc rx460_cur
+ (rx460_cur, rx460_pos, rx460_tgt) = self."!cursor_start"()
+ rx460_cur."!cursor_debug"("START ", "term:sym<multi_declarator>")
+ .lex unicode:"$\x{a2}", rx460_cur
.local pmc match
.lex "$/", match
- length rx447_eos, rx447_tgt
- set rx447_off, 0
- lt rx447_pos, 2, rx447_start
- sub rx447_off, rx447_pos, 1
- substr rx447_tgt, rx447_tgt, rx447_off
- rx447_start:
+ length rx460_eos, rx460_tgt
+ gt rx460_pos, rx460_eos, rx460_done
+ set rx460_off, 0
+ lt rx460_pos, 2, rx460_start
+ sub rx460_off, rx460_pos, 1
+ substr rx460_tgt, rx460_tgt, rx460_off
+ rx460_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan451_done
- goto rxscan451_scan
- rxscan451_loop:
- ($P10) = rx447_cur."from"()
+ ne $I10, -1, rxscan463_done
+ goto rxscan463_scan
+ rxscan463_loop:
+ ($P10) = rx460_cur."from"()
inc $P10
- set rx447_pos, $P10
- ge rx447_pos, rx447_eos, rxscan451_done
- rxscan451_scan:
- set_addr $I10, rxscan451_loop
- rx447_cur."!mark_push"(0, rx447_pos, $I10)
- rxscan451_done:
-.annotate 'line', 227
+ set rx460_pos, $P10
+ ge rx460_pos, rx460_eos, rxscan463_done
+ rxscan463_scan:
+ set_addr $I10, rxscan463_loop
+ rx460_cur."!mark_push"(0, rx460_pos, $I10)
+ rxscan463_done:
+.annotate 'line', 230
+ # rx subrule "before" subtype=zerowidth negate=
+ rx460_cur."!cursor_pos"(rx460_pos)
+ .const 'Sub' $P465 = "111_1275811487.95429"
+ capture_lex $P465
+ $P10 = rx460_cur."before"($P465)
+ unless $P10, rx460_fail
+ # rx subrule "multi_declarator" subtype=capture negate=
+ rx460_cur."!cursor_pos"(rx460_pos)
+ $P10 = rx460_cur."multi_declarator"()
+ unless $P10, rx460_fail
+ rx460_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("multi_declarator")
+ rx460_pos = $P10."pos"()
+ # rx pass
+ rx460_cur."!cursor_pass"(rx460_pos, "term:sym<multi_declarator>")
+ rx460_cur."!cursor_debug"("PASS ", "term:sym<multi_declarator>", " at pos=", rx460_pos)
+ .return (rx460_cur)
+ rx460_fail:
+.annotate 'line', 4
+ (rx460_rep, rx460_pos, $I10, $P10) = rx460_cur."!mark_fail"(0)
+ lt rx460_pos, -1, rx460_done
+ eq rx460_pos, -1, rx460_fail
+ jump $I10
+ rx460_done:
+ rx460_cur."!cursor_fail"()
+ rx460_cur."!cursor_debug"("FAIL ", "term:sym<multi_declarator>")
+ .return (rx460_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<multi_declarator>" :subid("110_1275811487.95429") :method
+.annotate 'line', 4
+ new $P462, "ResizablePMCArray"
+ push $P462, ""
+ .return ($P462)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "_block464" :anon :subid("111_1275811487.95429") :method :outer("109_1275811487.95429")
+.annotate 'line', 230
+ .local string rx466_tgt
+ .local int rx466_pos
+ .local int rx466_off
+ .local int rx466_eos
+ .local int rx466_rep
+ .local pmc rx466_cur
+ (rx466_cur, rx466_pos, rx466_tgt) = self."!cursor_start"()
+ rx466_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx466_cur
+ .local pmc match
+ .lex "$/", match
+ length rx466_eos, rx466_tgt
+ gt rx466_pos, rx466_eos, rx466_done
+ set rx466_off, 0
+ lt rx466_pos, 2, rx466_start
+ sub rx466_off, rx466_pos, 1
+ substr rx466_tgt, rx466_tgt, rx466_off
+ rx466_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan467_done
+ goto rxscan467_scan
+ rxscan467_loop:
+ ($P10) = rx466_cur."from"()
+ inc $P10
+ set rx466_pos, $P10
+ ge rx466_pos, rx466_eos, rxscan467_done
+ rxscan467_scan:
+ set_addr $I10, rxscan467_loop
+ rx466_cur."!mark_push"(0, rx466_pos, $I10)
+ rxscan467_done:
+ alt468_0:
+ set_addr $I10, alt468_1
+ rx466_cur."!mark_push"(0, rx466_pos, $I10)
+ # rx literal "multi"
+ add $I11, rx466_pos, 5
+ gt $I11, rx466_eos, rx466_fail
+ sub $I11, rx466_pos, rx466_off
+ substr $S10, rx466_tgt, $I11, 5
+ ne $S10, "multi", rx466_fail
+ add rx466_pos, 5
+ goto alt468_end
+ alt468_1:
+ set_addr $I10, alt468_2
+ rx466_cur."!mark_push"(0, rx466_pos, $I10)
+ # rx literal "proto"
+ add $I11, rx466_pos, 5
+ gt $I11, rx466_eos, rx466_fail
+ sub $I11, rx466_pos, rx466_off
+ substr $S10, rx466_tgt, $I11, 5
+ ne $S10, "proto", rx466_fail
+ add rx466_pos, 5
+ goto alt468_end
+ alt468_2:
+ # rx literal "only"
+ add $I11, rx466_pos, 4
+ gt $I11, rx466_eos, rx466_fail
+ sub $I11, rx466_pos, rx466_off
+ substr $S10, rx466_tgt, $I11, 4
+ ne $S10, "only", rx466_fail
+ add rx466_pos, 4
+ alt468_end:
+ # rx pass
+ rx466_cur."!cursor_pass"(rx466_pos, "")
+ rx466_cur."!cursor_debug"("PASS ", "", " at pos=", rx466_pos)
+ .return (rx466_cur)
+ rx466_fail:
+ (rx466_rep, rx466_pos, $I10, $P10) = rx466_cur."!mark_fail"(0)
+ lt rx466_pos, -1, rx466_done
+ eq rx466_pos, -1, rx466_fail
+ jump $I10
+ rx466_done:
+ rx466_cur."!cursor_fail"()
+ rx466_cur."!cursor_debug"("FAIL ", "")
+ .return (rx466_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<regex_declarator>" :subid("112_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx470_tgt
+ .local int rx470_pos
+ .local int rx470_off
+ .local int rx470_eos
+ .local int rx470_rep
+ .local pmc rx470_cur
+ (rx470_cur, rx470_pos, rx470_tgt) = self."!cursor_start"()
+ rx470_cur."!cursor_debug"("START ", "term:sym<regex_declarator>")
+ .lex unicode:"$\x{a2}", rx470_cur
+ .local pmc match
+ .lex "$/", match
+ length rx470_eos, rx470_tgt
+ gt rx470_pos, rx470_eos, rx470_done
+ set rx470_off, 0
+ lt rx470_pos, 2, rx470_start
+ sub rx470_off, rx470_pos, 1
+ substr rx470_tgt, rx470_tgt, rx470_off
+ rx470_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan474_done
+ goto rxscan474_scan
+ rxscan474_loop:
+ ($P10) = rx470_cur."from"()
+ inc $P10
+ set rx470_pos, $P10
+ ge rx470_pos, rx470_eos, rxscan474_done
+ rxscan474_scan:
+ set_addr $I10, rxscan474_loop
+ rx470_cur."!mark_push"(0, rx470_pos, $I10)
+ rxscan474_done:
+.annotate 'line', 231
# rx subrule "regex_declarator" subtype=capture negate=
- rx447_cur."!cursor_pos"(rx447_pos)
- $P10 = rx447_cur."regex_declarator"()
- unless $P10, rx447_fail
- rx447_cur."!mark_push"(0, -1, 0, $P10)
+ rx470_cur."!cursor_pos"(rx470_pos)
+ $P10 = rx470_cur."regex_declarator"()
+ unless $P10, rx470_fail
+ rx470_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("regex_declarator")
- rx447_pos = $P10."pos"()
+ rx470_pos = $P10."pos"()
# rx pass
- rx447_cur."!cursor_pass"(rx447_pos, "term:sym<regex_declarator>")
- rx447_cur."!cursor_debug"("PASS ", "term:sym<regex_declarator>", " at pos=", rx447_pos)
- .return (rx447_cur)
- rx447_fail:
+ rx470_cur."!cursor_pass"(rx470_pos, "term:sym<regex_declarator>")
+ rx470_cur."!cursor_debug"("PASS ", "term:sym<regex_declarator>", " at pos=", rx470_pos)
+ .return (rx470_cur)
+ rx470_fail:
.annotate 'line', 4
- (rx447_rep, rx447_pos, $I10, $P10) = rx447_cur."!mark_fail"(0)
- lt rx447_pos, -1, rx447_done
- eq rx447_pos, -1, rx447_fail
+ (rx470_rep, rx470_pos, $I10, $P10) = rx470_cur."!mark_fail"(0)
+ lt rx470_pos, -1, rx470_done
+ eq rx470_pos, -1, rx470_fail
jump $I10
- rx447_done:
- rx447_cur."!cursor_fail"()
- rx447_cur."!cursor_debug"("FAIL ", "term:sym<regex_declarator>")
- .return (rx447_cur)
+ rx470_done:
+ rx470_cur."!cursor_fail"()
+ rx470_cur."!cursor_debug"("FAIL ", "term:sym<regex_declarator>")
+ .return (rx470_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<regex_declarator>" :subid("108_1274022894.43745") :method
+.sub "!PREFIX__term:sym<regex_declarator>" :subid("113_1275811487.95429") :method
.annotate 'line', 4
- $P449 = self."!PREFIX__!subrule"("regex_declarator", "")
- new $P450, "ResizablePMCArray"
- push $P450, $P449
- .return ($P450)
+ $P472 = self."!PREFIX__!subrule"("regex_declarator", "")
+ new $P473, "ResizablePMCArray"
+ push $P473, $P472
+ .return ($P473)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<statement_prefix>" :subid("109_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<statement_prefix>" :subid("114_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx453_tgt
- .local int rx453_pos
- .local int rx453_off
- .local int rx453_eos
- .local int rx453_rep
- .local pmc rx453_cur
- (rx453_cur, rx453_pos, rx453_tgt) = self."!cursor_start"()
- rx453_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
- .lex unicode:"$\x{a2}", rx453_cur
+ .local string rx476_tgt
+ .local int rx476_pos
+ .local int rx476_off
+ .local int rx476_eos
+ .local int rx476_rep
+ .local pmc rx476_cur
+ (rx476_cur, rx476_pos, rx476_tgt) = self."!cursor_start"()
+ rx476_cur."!cursor_debug"("START ", "term:sym<statement_prefix>")
+ .lex unicode:"$\x{a2}", rx476_cur
.local pmc match
.lex "$/", match
- length rx453_eos, rx453_tgt
- set rx453_off, 0
- lt rx453_pos, 2, rx453_start
- sub rx453_off, rx453_pos, 1
- substr rx453_tgt, rx453_tgt, rx453_off
- rx453_start:
+ length rx476_eos, rx476_tgt
+ gt rx476_pos, rx476_eos, rx476_done
+ set rx476_off, 0
+ lt rx476_pos, 2, rx476_start
+ sub rx476_off, rx476_pos, 1
+ substr rx476_tgt, rx476_tgt, rx476_off
+ rx476_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan457_done
- goto rxscan457_scan
- rxscan457_loop:
- ($P10) = rx453_cur."from"()
+ ne $I10, -1, rxscan480_done
+ goto rxscan480_scan
+ rxscan480_loop:
+ ($P10) = rx476_cur."from"()
inc $P10
- set rx453_pos, $P10
- ge rx453_pos, rx453_eos, rxscan457_done
- rxscan457_scan:
- set_addr $I10, rxscan457_loop
- rx453_cur."!mark_push"(0, rx453_pos, $I10)
- rxscan457_done:
-.annotate 'line', 228
+ set rx476_pos, $P10
+ ge rx476_pos, rx476_eos, rxscan480_done
+ rxscan480_scan:
+ set_addr $I10, rxscan480_loop
+ rx476_cur."!mark_push"(0, rx476_pos, $I10)
+ rxscan480_done:
+.annotate 'line', 232
# rx subrule "statement_prefix" subtype=capture negate=
- rx453_cur."!cursor_pos"(rx453_pos)
- $P10 = rx453_cur."statement_prefix"()
- unless $P10, rx453_fail
- rx453_cur."!mark_push"(0, -1, 0, $P10)
+ rx476_cur."!cursor_pos"(rx476_pos)
+ $P10 = rx476_cur."statement_prefix"()
+ unless $P10, rx476_fail
+ rx476_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("statement_prefix")
- rx453_pos = $P10."pos"()
+ rx476_pos = $P10."pos"()
# rx pass
- rx453_cur."!cursor_pass"(rx453_pos, "term:sym<statement_prefix>")
- rx453_cur."!cursor_debug"("PASS ", "term:sym<statement_prefix>", " at pos=", rx453_pos)
- .return (rx453_cur)
- rx453_fail:
+ rx476_cur."!cursor_pass"(rx476_pos, "term:sym<statement_prefix>")
+ rx476_cur."!cursor_debug"("PASS ", "term:sym<statement_prefix>", " at pos=", rx476_pos)
+ .return (rx476_cur)
+ rx476_fail:
.annotate 'line', 4
- (rx453_rep, rx453_pos, $I10, $P10) = rx453_cur."!mark_fail"(0)
- lt rx453_pos, -1, rx453_done
- eq rx453_pos, -1, rx453_fail
+ (rx476_rep, rx476_pos, $I10, $P10) = rx476_cur."!mark_fail"(0)
+ lt rx476_pos, -1, rx476_done
+ eq rx476_pos, -1, rx476_fail
jump $I10
- rx453_done:
- rx453_cur."!cursor_fail"()
- rx453_cur."!cursor_debug"("FAIL ", "term:sym<statement_prefix>")
- .return (rx453_cur)
+ rx476_done:
+ rx476_cur."!cursor_fail"()
+ rx476_cur."!cursor_debug"("FAIL ", "term:sym<statement_prefix>")
+ .return (rx476_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<statement_prefix>" :subid("110_1274022894.43745") :method
+.sub "!PREFIX__term:sym<statement_prefix>" :subid("115_1275811487.95429") :method
.annotate 'line', 4
- $P455 = self."!PREFIX__!subrule"("statement_prefix", "")
- new $P456, "ResizablePMCArray"
- push $P456, $P455
- .return ($P456)
+ $P478 = self."!PREFIX__!subrule"("statement_prefix", "")
+ new $P479, "ResizablePMCArray"
+ push $P479, $P478
+ .return ($P479)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<lambda>" :subid("111_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<lambda>" :subid("116_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx459_tgt
- .local int rx459_pos
- .local int rx459_off
- .local int rx459_eos
- .local int rx459_rep
- .local pmc rx459_cur
- (rx459_cur, rx459_pos, rx459_tgt) = self."!cursor_start"()
- rx459_cur."!cursor_debug"("START ", "term:sym<lambda>")
- .lex unicode:"$\x{a2}", rx459_cur
+ .local string rx482_tgt
+ .local int rx482_pos
+ .local int rx482_off
+ .local int rx482_eos
+ .local int rx482_rep
+ .local pmc rx482_cur
+ (rx482_cur, rx482_pos, rx482_tgt) = self."!cursor_start"()
+ rx482_cur."!cursor_debug"("START ", "term:sym<lambda>")
+ .lex unicode:"$\x{a2}", rx482_cur
.local pmc match
.lex "$/", match
- length rx459_eos, rx459_tgt
- set rx459_off, 0
- lt rx459_pos, 2, rx459_start
- sub rx459_off, rx459_pos, 1
- substr rx459_tgt, rx459_tgt, rx459_off
- rx459_start:
+ length rx482_eos, rx482_tgt
+ gt rx482_pos, rx482_eos, rx482_done
+ set rx482_off, 0
+ lt rx482_pos, 2, rx482_start
+ sub rx482_off, rx482_pos, 1
+ substr rx482_tgt, rx482_tgt, rx482_off
+ rx482_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan462_done
- goto rxscan462_scan
- rxscan462_loop:
- ($P10) = rx459_cur."from"()
+ ne $I10, -1, rxscan485_done
+ goto rxscan485_scan
+ rxscan485_loop:
+ ($P10) = rx482_cur."from"()
inc $P10
- set rx459_pos, $P10
- ge rx459_pos, rx459_eos, rxscan462_done
- rxscan462_scan:
- set_addr $I10, rxscan462_loop
- rx459_cur."!mark_push"(0, rx459_pos, $I10)
- rxscan462_done:
-.annotate 'line', 229
+ set rx482_pos, $P10
+ ge rx482_pos, rx482_eos, rxscan485_done
+ rxscan485_scan:
+ set_addr $I10, rxscan485_loop
+ rx482_cur."!mark_push"(0, rx482_pos, $I10)
+ rxscan485_done:
+.annotate 'line', 233
# rx subrule "lambda" subtype=zerowidth negate=
- rx459_cur."!cursor_pos"(rx459_pos)
- $P10 = rx459_cur."lambda"()
- unless $P10, rx459_fail
+ rx482_cur."!cursor_pos"(rx482_pos)
+ $P10 = rx482_cur."lambda"()
+ unless $P10, rx482_fail
# rx subrule "pblock" subtype=capture negate=
- rx459_cur."!cursor_pos"(rx459_pos)
- $P10 = rx459_cur."pblock"()
- unless $P10, rx459_fail
- rx459_cur."!mark_push"(0, -1, 0, $P10)
+ rx482_cur."!cursor_pos"(rx482_pos)
+ $P10 = rx482_cur."pblock"()
+ unless $P10, rx482_fail
+ rx482_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("pblock")
- rx459_pos = $P10."pos"()
+ rx482_pos = $P10."pos"()
# rx pass
- rx459_cur."!cursor_pass"(rx459_pos, "term:sym<lambda>")
- rx459_cur."!cursor_debug"("PASS ", "term:sym<lambda>", " at pos=", rx459_pos)
- .return (rx459_cur)
- rx459_fail:
+ rx482_cur."!cursor_pass"(rx482_pos, "term:sym<lambda>")
+ rx482_cur."!cursor_debug"("PASS ", "term:sym<lambda>", " at pos=", rx482_pos)
+ .return (rx482_cur)
+ rx482_fail:
.annotate 'line', 4
- (rx459_rep, rx459_pos, $I10, $P10) = rx459_cur."!mark_fail"(0)
- lt rx459_pos, -1, rx459_done
- eq rx459_pos, -1, rx459_fail
+ (rx482_rep, rx482_pos, $I10, $P10) = rx482_cur."!mark_fail"(0)
+ lt rx482_pos, -1, rx482_done
+ eq rx482_pos, -1, rx482_fail
jump $I10
- rx459_done:
- rx459_cur."!cursor_fail"()
- rx459_cur."!cursor_debug"("FAIL ", "term:sym<lambda>")
- .return (rx459_cur)
+ rx482_done:
+ rx482_cur."!cursor_fail"()
+ rx482_cur."!cursor_debug"("FAIL ", "term:sym<lambda>")
+ .return (rx482_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<lambda>" :subid("112_1274022894.43745") :method
+.sub "!PREFIX__term:sym<lambda>" :subid("117_1275811487.95429") :method
.annotate 'line', 4
- new $P461, "ResizablePMCArray"
- push $P461, ""
- .return ($P461)
+ new $P484, "ResizablePMCArray"
+ push $P484, ""
+ .return ($P484)
.end
.namespace ["NQP";"Grammar"]
-.sub "fatarrow" :subid("113_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "fatarrow" :subid("118_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx464_tgt
- .local int rx464_pos
- .local int rx464_off
- .local int rx464_eos
- .local int rx464_rep
- .local pmc rx464_cur
- (rx464_cur, rx464_pos, rx464_tgt) = self."!cursor_start"()
- rx464_cur."!cursor_debug"("START ", "fatarrow")
- .lex unicode:"$\x{a2}", rx464_cur
+ .local string rx487_tgt
+ .local int rx487_pos
+ .local int rx487_off
+ .local int rx487_eos
+ .local int rx487_rep
+ .local pmc rx487_cur
+ (rx487_cur, rx487_pos, rx487_tgt) = self."!cursor_start"()
+ rx487_cur."!cursor_debug"("START ", "fatarrow")
+ .lex unicode:"$\x{a2}", rx487_cur
.local pmc match
.lex "$/", match
- length rx464_eos, rx464_tgt
- set rx464_off, 0
- lt rx464_pos, 2, rx464_start
- sub rx464_off, rx464_pos, 1
- substr rx464_tgt, rx464_tgt, rx464_off
- rx464_start:
+ length rx487_eos, rx487_tgt
+ gt rx487_pos, rx487_eos, rx487_done
+ set rx487_off, 0
+ lt rx487_pos, 2, rx487_start
+ sub rx487_off, rx487_pos, 1
+ substr rx487_tgt, rx487_tgt, rx487_off
+ rx487_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan468_done
- goto rxscan468_scan
- rxscan468_loop:
- ($P10) = rx464_cur."from"()
+ ne $I10, -1, rxscan491_done
+ goto rxscan491_scan
+ rxscan491_loop:
+ ($P10) = rx487_cur."from"()
inc $P10
- set rx464_pos, $P10
- ge rx464_pos, rx464_eos, rxscan468_done
- rxscan468_scan:
- set_addr $I10, rxscan468_loop
- rx464_cur."!mark_push"(0, rx464_pos, $I10)
- rxscan468_done:
-.annotate 'line', 232
+ set rx487_pos, $P10
+ ge rx487_pos, rx487_eos, rxscan491_done
+ rxscan491_scan:
+ set_addr $I10, rxscan491_loop
+ rx487_cur."!mark_push"(0, rx487_pos, $I10)
+ rxscan491_done:
+.annotate 'line', 236
# rx subrule "identifier" subtype=capture negate=
- rx464_cur."!cursor_pos"(rx464_pos)
- $P10 = rx464_cur."identifier"()
- unless $P10, rx464_fail
- rx464_cur."!mark_push"(0, -1, 0, $P10)
+ rx487_cur."!cursor_pos"(rx487_pos)
+ $P10 = rx487_cur."identifier"()
+ unless $P10, rx487_fail
+ rx487_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("key")
- rx464_pos = $P10."pos"()
- # rx rxquantr469 ** 0..*
- set_addr $I470, rxquantr469_done
- rx464_cur."!mark_push"(0, rx464_pos, $I470)
- rxquantr469_loop:
+ rx487_pos = $P10."pos"()
+ # rx rxquantr492 ** 0..*
+ set_addr $I493, rxquantr492_done
+ rx487_cur."!mark_push"(0, rx487_pos, $I493)
+ rxquantr492_loop:
# rx enumcharlist negate=0
- ge rx464_pos, rx464_eos, rx464_fail
- sub $I10, rx464_pos, rx464_off
- substr $S10, rx464_tgt, $I10, 1
+ ge rx487_pos, rx487_eos, rx487_fail
+ sub $I10, rx487_pos, rx487_off
+ substr $S10, rx487_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx464_fail
- inc rx464_pos
- (rx464_rep) = rx464_cur."!mark_commit"($I470)
- rx464_cur."!mark_push"(rx464_rep, rx464_pos, $I470)
- goto rxquantr469_loop
- rxquantr469_done:
+ lt $I11, 0, rx487_fail
+ inc rx487_pos
+ (rx487_rep) = rx487_cur."!mark_commit"($I493)
+ rx487_cur."!mark_push"(rx487_rep, rx487_pos, $I493)
+ goto rxquantr492_loop
+ rxquantr492_done:
# rx literal "=>"
- add $I11, rx464_pos, 2
- gt $I11, rx464_eos, rx464_fail
- sub $I11, rx464_pos, rx464_off
- substr $S10, rx464_tgt, $I11, 2
- ne $S10, "=>", rx464_fail
- add rx464_pos, 2
- # rx subrule "ws" subtype=method negate=
- rx464_cur."!cursor_pos"(rx464_pos)
- $P10 = rx464_cur."ws"()
- unless $P10, rx464_fail
- rx464_pos = $P10."pos"()
+ add $I11, rx487_pos, 2
+ gt $I11, rx487_eos, rx487_fail
+ sub $I11, rx487_pos, rx487_off
+ substr $S10, rx487_tgt, $I11, 2
+ ne $S10, "=>", rx487_fail
+ add rx487_pos, 2
+ # rx subrule "ws" subtype=method negate=
+ rx487_cur."!cursor_pos"(rx487_pos)
+ $P10 = rx487_cur."ws"()
+ unless $P10, rx487_fail
+ rx487_pos = $P10."pos"()
# rx subrule "EXPR" subtype=capture negate=
- rx464_cur."!cursor_pos"(rx464_pos)
- $P10 = rx464_cur."EXPR"("i=")
- unless $P10, rx464_fail
- rx464_cur."!mark_push"(0, -1, 0, $P10)
+ rx487_cur."!cursor_pos"(rx487_pos)
+ $P10 = rx487_cur."EXPR"("i=")
+ unless $P10, rx487_fail
+ rx487_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("val")
- rx464_pos = $P10."pos"()
-.annotate 'line', 231
+ rx487_pos = $P10."pos"()
+.annotate 'line', 235
# rx pass
- rx464_cur."!cursor_pass"(rx464_pos, "fatarrow")
- rx464_cur."!cursor_debug"("PASS ", "fatarrow", " at pos=", rx464_pos)
- .return (rx464_cur)
- rx464_fail:
+ rx487_cur."!cursor_pass"(rx487_pos, "fatarrow")
+ rx487_cur."!cursor_debug"("PASS ", "fatarrow", " at pos=", rx487_pos)
+ .return (rx487_cur)
+ rx487_fail:
.annotate 'line', 4
- (rx464_rep, rx464_pos, $I10, $P10) = rx464_cur."!mark_fail"(0)
- lt rx464_pos, -1, rx464_done
- eq rx464_pos, -1, rx464_fail
+ (rx487_rep, rx487_pos, $I10, $P10) = rx487_cur."!mark_fail"(0)
+ lt rx487_pos, -1, rx487_done
+ eq rx487_pos, -1, rx487_fail
jump $I10
- rx464_done:
- rx464_cur."!cursor_fail"()
- rx464_cur."!cursor_debug"("FAIL ", "fatarrow")
- .return (rx464_cur)
+ rx487_done:
+ rx487_cur."!cursor_fail"()
+ rx487_cur."!cursor_debug"("FAIL ", "fatarrow")
+ .return (rx487_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__fatarrow" :subid("114_1274022894.43745") :method
+.sub "!PREFIX__fatarrow" :subid("119_1275811487.95429") :method
.annotate 'line', 4
- $P466 = self."!PREFIX__!subrule"("key", "")
- new $P467, "ResizablePMCArray"
- push $P467, $P466
- .return ($P467)
+ $P489 = self."!PREFIX__!subrule"("identifier", "")
+ new $P490, "ResizablePMCArray"
+ push $P490, $P489
+ .return ($P490)
.end
.namespace ["NQP";"Grammar"]
-.sub "colonpair" :subid("115_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "colonpair" :subid("120_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx472_tgt
- .local int rx472_pos
- .local int rx472_off
- .local int rx472_eos
- .local int rx472_rep
- .local pmc rx472_cur
- (rx472_cur, rx472_pos, rx472_tgt) = self."!cursor_start"()
- rx472_cur."!cursor_debug"("START ", "colonpair")
- rx472_cur."!cursor_caparray"("circumfix")
- .lex unicode:"$\x{a2}", rx472_cur
+ .local string rx495_tgt
+ .local int rx495_pos
+ .local int rx495_off
+ .local int rx495_eos
+ .local int rx495_rep
+ .local pmc rx495_cur
+ (rx495_cur, rx495_pos, rx495_tgt) = self."!cursor_start"()
+ rx495_cur."!cursor_debug"("START ", "colonpair")
+ rx495_cur."!cursor_caparray"("circumfix")
+ .lex unicode:"$\x{a2}", rx495_cur
.local pmc match
.lex "$/", match
- length rx472_eos, rx472_tgt
- set rx472_off, 0
- lt rx472_pos, 2, rx472_start
- sub rx472_off, rx472_pos, 1
- substr rx472_tgt, rx472_tgt, rx472_off
- rx472_start:
+ length rx495_eos, rx495_tgt
+ gt rx495_pos, rx495_eos, rx495_done
+ set rx495_off, 0
+ lt rx495_pos, 2, rx495_start
+ sub rx495_off, rx495_pos, 1
+ substr rx495_tgt, rx495_tgt, rx495_off
+ rx495_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan478_done
- goto rxscan478_scan
- rxscan478_loop:
- ($P10) = rx472_cur."from"()
+ ne $I10, -1, rxscan501_done
+ goto rxscan501_scan
+ rxscan501_loop:
+ ($P10) = rx495_cur."from"()
inc $P10
- set rx472_pos, $P10
- ge rx472_pos, rx472_eos, rxscan478_done
- rxscan478_scan:
- set_addr $I10, rxscan478_loop
- rx472_cur."!mark_push"(0, rx472_pos, $I10)
- rxscan478_done:
-.annotate 'line', 236
+ set rx495_pos, $P10
+ ge rx495_pos, rx495_eos, rxscan501_done
+ rxscan501_scan:
+ set_addr $I10, rxscan501_loop
+ rx495_cur."!mark_push"(0, rx495_pos, $I10)
+ rxscan501_done:
+.annotate 'line', 240
# rx literal ":"
- add $I11, rx472_pos, 1
- gt $I11, rx472_eos, rx472_fail
- sub $I11, rx472_pos, rx472_off
- substr $S10, rx472_tgt, $I11, 1
- ne $S10, ":", rx472_fail
- add rx472_pos, 1
- alt479_0:
-.annotate 'line', 237
- set_addr $I10, alt479_1
- rx472_cur."!mark_push"(0, rx472_pos, $I10)
-.annotate 'line', 238
+ add $I11, rx495_pos, 1
+ gt $I11, rx495_eos, rx495_fail
+ sub $I11, rx495_pos, rx495_off
+ substr $S10, rx495_tgt, $I11, 1
+ ne $S10, ":", rx495_fail
+ add rx495_pos, 1
+ alt502_0:
+.annotate 'line', 241
+ set_addr $I10, alt502_1
+ rx495_cur."!mark_push"(0, rx495_pos, $I10)
+.annotate 'line', 242
# rx subcapture "not"
- set_addr $I10, rxcap_480_fail
- rx472_cur."!mark_push"(0, rx472_pos, $I10)
+ set_addr $I10, rxcap_503_fail
+ rx495_cur."!mark_push"(0, rx495_pos, $I10)
# rx literal "!"
- add $I11, rx472_pos, 1
- gt $I11, rx472_eos, rx472_fail
- sub $I11, rx472_pos, rx472_off
- substr $S10, rx472_tgt, $I11, 1
- ne $S10, "!", rx472_fail
- add rx472_pos, 1
- set_addr $I10, rxcap_480_fail
- ($I12, $I11) = rx472_cur."!mark_peek"($I10)
- rx472_cur."!cursor_pos"($I11)
- ($P10) = rx472_cur."!cursor_start"()
- $P10."!cursor_pass"(rx472_pos, "")
- rx472_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx495_pos, 1
+ gt $I11, rx495_eos, rx495_fail
+ sub $I11, rx495_pos, rx495_off
+ substr $S10, rx495_tgt, $I11, 1
+ ne $S10, "!", rx495_fail
+ add rx495_pos, 1
+ set_addr $I10, rxcap_503_fail
+ ($I12, $I11) = rx495_cur."!mark_peek"($I10)
+ rx495_cur."!cursor_pos"($I11)
+ ($P10) = rx495_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx495_pos, "")
+ rx495_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("not")
- goto rxcap_480_done
- rxcap_480_fail:
- goto rx472_fail
- rxcap_480_done:
+ goto rxcap_503_done
+ rxcap_503_fail:
+ goto rx495_fail
+ rxcap_503_done:
# rx subrule "identifier" subtype=capture negate=
- rx472_cur."!cursor_pos"(rx472_pos)
- $P10 = rx472_cur."identifier"()
- unless $P10, rx472_fail
- rx472_cur."!mark_push"(0, -1, 0, $P10)
+ rx495_cur."!cursor_pos"(rx495_pos)
+ $P10 = rx495_cur."identifier"()
+ unless $P10, rx495_fail
+ rx495_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx472_pos = $P10."pos"()
- goto alt479_end
- alt479_1:
- set_addr $I10, alt479_2
- rx472_cur."!mark_push"(0, rx472_pos, $I10)
-.annotate 'line', 239
+ rx495_pos = $P10."pos"()
+ goto alt502_end
+ alt502_1:
+ set_addr $I10, alt502_2
+ rx495_cur."!mark_push"(0, rx495_pos, $I10)
+.annotate 'line', 243
# rx subrule "identifier" subtype=capture negate=
- rx472_cur."!cursor_pos"(rx472_pos)
- $P10 = rx472_cur."identifier"()
- unless $P10, rx472_fail
- rx472_cur."!mark_push"(0, -1, 0, $P10)
+ rx495_cur."!cursor_pos"(rx495_pos)
+ $P10 = rx495_cur."identifier"()
+ unless $P10, rx495_fail
+ rx495_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("identifier")
- rx472_pos = $P10."pos"()
- # rx rxquantr481 ** 0..1
- set_addr $I482, rxquantr481_done
- rx472_cur."!mark_push"(0, rx472_pos, $I482)
- rxquantr481_loop:
+ rx495_pos = $P10."pos"()
+ # rx rxquantr504 ** 0..1
+ set_addr $I505, rxquantr504_done
+ rx495_cur."!mark_push"(0, rx495_pos, $I505)
+ rxquantr504_loop:
# rx subrule "circumfix" subtype=capture negate=
- rx472_cur."!cursor_pos"(rx472_pos)
- $P10 = rx472_cur."circumfix"()
- unless $P10, rx472_fail
- rx472_cur."!mark_push"(0, -1, 0, $P10)
+ rx495_cur."!cursor_pos"(rx495_pos)
+ $P10 = rx495_cur."circumfix"()
+ unless $P10, rx495_fail
+ rx495_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("circumfix")
- rx472_pos = $P10."pos"()
- (rx472_rep) = rx472_cur."!mark_commit"($I482)
- rxquantr481_done:
- goto alt479_end
- alt479_2:
-.annotate 'line', 240
+ rx495_pos = $P10."pos"()
+ (rx495_rep) = rx495_cur."!mark_commit"($I505)
+ rxquantr504_done:
+ goto alt502_end
+ alt502_2:
+.annotate 'line', 244
# rx subrule "circumfix" subtype=capture negate=
- rx472_cur."!cursor_pos"(rx472_pos)
- $P10 = rx472_cur."circumfix"()
- unless $P10, rx472_fail
- rx472_cur."!mark_push"(0, -1, 0, $P10)
+ rx495_cur."!cursor_pos"(rx495_pos)
+ $P10 = rx495_cur."circumfix"()
+ unless $P10, rx495_fail
+ rx495_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("circumfix")
- rx472_pos = $P10."pos"()
- alt479_end:
-.annotate 'line', 235
+ rx495_pos = $P10."pos"()
+ alt502_end:
+.annotate 'line', 239
# rx pass
- rx472_cur."!cursor_pass"(rx472_pos, "colonpair")
- rx472_cur."!cursor_debug"("PASS ", "colonpair", " at pos=", rx472_pos)
- .return (rx472_cur)
- rx472_fail:
+ rx495_cur."!cursor_pass"(rx495_pos, "colonpair")
+ rx495_cur."!cursor_debug"("PASS ", "colonpair", " at pos=", rx495_pos)
+ .return (rx495_cur)
+ rx495_fail:
.annotate 'line', 4
- (rx472_rep, rx472_pos, $I10, $P10) = rx472_cur."!mark_fail"(0)
- lt rx472_pos, -1, rx472_done
- eq rx472_pos, -1, rx472_fail
+ (rx495_rep, rx495_pos, $I10, $P10) = rx495_cur."!mark_fail"(0)
+ lt rx495_pos, -1, rx495_done
+ eq rx495_pos, -1, rx495_fail
jump $I10
- rx472_done:
- rx472_cur."!cursor_fail"()
- rx472_cur."!cursor_debug"("FAIL ", "colonpair")
- .return (rx472_cur)
+ rx495_done:
+ rx495_cur."!cursor_fail"()
+ rx495_cur."!cursor_debug"("FAIL ", "colonpair")
+ .return (rx495_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__colonpair" :subid("116_1274022894.43745") :method
+.sub "!PREFIX__colonpair" :subid("121_1275811487.95429") :method
.annotate 'line', 4
- $P474 = self."!PREFIX__!subrule"("circumfix", ":")
- $P475 = self."!PREFIX__!subrule"("identifier", ":")
- $P476 = self."!PREFIX__!subrule"("identifier", ":!")
- new $P477, "ResizablePMCArray"
- push $P477, $P474
- push $P477, $P475
- push $P477, $P476
- .return ($P477)
+ $P497 = self."!PREFIX__!subrule"("circumfix", ":")
+ $P498 = self."!PREFIX__!subrule"("identifier", ":")
+ $P499 = self."!PREFIX__!subrule"("identifier", ":!")
+ new $P500, "ResizablePMCArray"
+ push $P500, $P497
+ push $P500, $P498
+ push $P500, $P499
+ .return ($P500)
.end
.namespace ["NQP";"Grammar"]
-.sub "variable" :subid("117_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "variable" :subid("122_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx484_tgt
- .local int rx484_pos
- .local int rx484_off
- .local int rx484_eos
- .local int rx484_rep
- .local pmc rx484_cur
- (rx484_cur, rx484_pos, rx484_tgt) = self."!cursor_start"()
- rx484_cur."!cursor_debug"("START ", "variable")
- rx484_cur."!cursor_caparray"("twigil")
- .lex unicode:"$\x{a2}", rx484_cur
+ .local string rx507_tgt
+ .local int rx507_pos
+ .local int rx507_off
+ .local int rx507_eos
+ .local int rx507_rep
+ .local pmc rx507_cur
+ (rx507_cur, rx507_pos, rx507_tgt) = self."!cursor_start"()
+ rx507_cur."!cursor_debug"("START ", "variable")
+ rx507_cur."!cursor_caparray"("twigil")
+ .lex unicode:"$\x{a2}", rx507_cur
.local pmc match
.lex "$/", match
- length rx484_eos, rx484_tgt
- set rx484_off, 0
- lt rx484_pos, 2, rx484_start
- sub rx484_off, rx484_pos, 1
- substr rx484_tgt, rx484_tgt, rx484_off
- rx484_start:
+ length rx507_eos, rx507_tgt
+ gt rx507_pos, rx507_eos, rx507_done
+ set rx507_off, 0
+ lt rx507_pos, 2, rx507_start
+ sub rx507_off, rx507_pos, 1
+ substr rx507_tgt, rx507_tgt, rx507_off
+ rx507_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan489_done
- goto rxscan489_scan
- rxscan489_loop:
- ($P10) = rx484_cur."from"()
+ ne $I10, -1, rxscan512_done
+ goto rxscan512_scan
+ rxscan512_loop:
+ ($P10) = rx507_cur."from"()
inc $P10
- set rx484_pos, $P10
- ge rx484_pos, rx484_eos, rxscan489_done
- rxscan489_scan:
- set_addr $I10, rxscan489_loop
- rx484_cur."!mark_push"(0, rx484_pos, $I10)
- rxscan489_done:
- alt490_0:
-.annotate 'line', 244
- set_addr $I10, alt490_1
- rx484_cur."!mark_push"(0, rx484_pos, $I10)
-.annotate 'line', 245
+ set rx507_pos, $P10
+ ge rx507_pos, rx507_eos, rxscan512_done
+ rxscan512_scan:
+ set_addr $I10, rxscan512_loop
+ rx507_cur."!mark_push"(0, rx507_pos, $I10)
+ rxscan512_done:
+ alt513_0:
+.annotate 'line', 248
+ set_addr $I10, alt513_1
+ rx507_cur."!mark_push"(0, rx507_pos, $I10)
+.annotate 'line', 249
# rx subrule "sigil" subtype=capture negate=
- rx484_cur."!cursor_pos"(rx484_pos)
- $P10 = rx484_cur."sigil"()
- unless $P10, rx484_fail
- rx484_cur."!mark_push"(0, -1, 0, $P10)
+ rx507_cur."!cursor_pos"(rx507_pos)
+ $P10 = rx507_cur."sigil"()
+ unless $P10, rx507_fail
+ rx507_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- rx484_pos = $P10."pos"()
- # rx rxquantr491 ** 0..1
- set_addr $I492, rxquantr491_done
- rx484_cur."!mark_push"(0, rx484_pos, $I492)
- rxquantr491_loop:
+ rx507_pos = $P10."pos"()
+ # rx rxquantr514 ** 0..1
+ set_addr $I515, rxquantr514_done
+ rx507_cur."!mark_push"(0, rx507_pos, $I515)
+ rxquantr514_loop:
# rx subrule "twigil" subtype=capture negate=
- rx484_cur."!cursor_pos"(rx484_pos)
- $P10 = rx484_cur."twigil"()
- unless $P10, rx484_fail
- rx484_cur."!mark_push"(0, -1, 0, $P10)
+ rx507_cur."!cursor_pos"(rx507_pos)
+ $P10 = rx507_cur."twigil"()
+ unless $P10, rx507_fail
+ rx507_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("twigil")
- rx484_pos = $P10."pos"()
- (rx484_rep) = rx484_cur."!mark_commit"($I492)
- rxquantr491_done:
+ rx507_pos = $P10."pos"()
+ (rx507_rep) = rx507_cur."!mark_commit"($I515)
+ rxquantr514_done:
# rx subrule "name" subtype=capture negate=
- rx484_cur."!cursor_pos"(rx484_pos)
- $P10 = rx484_cur."name"()
- unless $P10, rx484_fail
- rx484_cur."!mark_push"(0, -1, 0, $P10)
+ rx507_cur."!cursor_pos"(rx507_pos)
+ $P10 = rx507_cur."name"()
+ unless $P10, rx507_fail
+ rx507_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("desigilname")
- rx484_pos = $P10."pos"()
- goto alt490_end
- alt490_1:
- set_addr $I10, alt490_2
- rx484_cur."!mark_push"(0, rx484_pos, $I10)
-.annotate 'line', 246
+ rx507_pos = $P10."pos"()
+ goto alt513_end
+ alt513_1:
+ set_addr $I10, alt513_2
+ rx507_cur."!mark_push"(0, rx507_pos, $I10)
+.annotate 'line', 250
# rx subrule "sigil" subtype=capture negate=
- rx484_cur."!cursor_pos"(rx484_pos)
- $P10 = rx484_cur."sigil"()
- unless $P10, rx484_fail
- rx484_cur."!mark_push"(0, -1, 0, $P10)
+ rx507_cur."!cursor_pos"(rx507_pos)
+ $P10 = rx507_cur."sigil"()
+ unless $P10, rx507_fail
+ rx507_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- rx484_pos = $P10."pos"()
+ rx507_pos = $P10."pos"()
# rx enumcharlist negate=0 zerowidth
- ge rx484_pos, rx484_eos, rx484_fail
- sub $I10, rx484_pos, rx484_off
- substr $S10, rx484_tgt, $I10, 1
+ ge rx507_pos, rx507_eos, rx507_fail
+ sub $I10, rx507_pos, rx507_off
+ substr $S10, rx507_tgt, $I10, 1
index $I11, "<[", $S10
- lt $I11, 0, rx484_fail
+ lt $I11, 0, rx507_fail
# rx subrule "postcircumfix" subtype=capture negate=
- rx484_cur."!cursor_pos"(rx484_pos)
- $P10 = rx484_cur."postcircumfix"()
- unless $P10, rx484_fail
- rx484_cur."!mark_push"(0, -1, 0, $P10)
+ rx507_cur."!cursor_pos"(rx507_pos)
+ $P10 = rx507_cur."postcircumfix"()
+ unless $P10, rx507_fail
+ rx507_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("postcircumfix")
- rx484_pos = $P10."pos"()
- goto alt490_end
- alt490_2:
-.annotate 'line', 247
+ rx507_pos = $P10."pos"()
+ goto alt513_end
+ alt513_2:
+.annotate 'line', 251
# rx subcapture "sigil"
- set_addr $I10, rxcap_493_fail
- rx484_cur."!mark_push"(0, rx484_pos, $I10)
+ set_addr $I10, rxcap_516_fail
+ rx507_cur."!mark_push"(0, rx507_pos, $I10)
# rx literal "$"
- add $I11, rx484_pos, 1
- gt $I11, rx484_eos, rx484_fail
- sub $I11, rx484_pos, rx484_off
- substr $S10, rx484_tgt, $I11, 1
- ne $S10, "$", rx484_fail
- add rx484_pos, 1
- set_addr $I10, rxcap_493_fail
- ($I12, $I11) = rx484_cur."!mark_peek"($I10)
- rx484_cur."!cursor_pos"($I11)
- ($P10) = rx484_cur."!cursor_start"()
- $P10."!cursor_pass"(rx484_pos, "")
- rx484_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx507_pos, 1
+ gt $I11, rx507_eos, rx507_fail
+ sub $I11, rx507_pos, rx507_off
+ substr $S10, rx507_tgt, $I11, 1
+ ne $S10, "$", rx507_fail
+ add rx507_pos, 1
+ set_addr $I10, rxcap_516_fail
+ ($I12, $I11) = rx507_cur."!mark_peek"($I10)
+ rx507_cur."!cursor_pos"($I11)
+ ($P10) = rx507_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx507_pos, "")
+ rx507_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- goto rxcap_493_done
- rxcap_493_fail:
- goto rx484_fail
- rxcap_493_done:
+ goto rxcap_516_done
+ rxcap_516_fail:
+ goto rx507_fail
+ rxcap_516_done:
# rx subcapture "desigilname"
- set_addr $I10, rxcap_494_fail
- rx484_cur."!mark_push"(0, rx484_pos, $I10)
+ set_addr $I10, rxcap_517_fail
+ rx507_cur."!mark_push"(0, rx507_pos, $I10)
# rx enumcharlist negate=0
- ge rx484_pos, rx484_eos, rx484_fail
- sub $I10, rx484_pos, rx484_off
- substr $S10, rx484_tgt, $I10, 1
+ ge rx507_pos, rx507_eos, rx507_fail
+ sub $I10, rx507_pos, rx507_off
+ substr $S10, rx507_tgt, $I10, 1
index $I11, "/_!", $S10
- lt $I11, 0, rx484_fail
- inc rx484_pos
- set_addr $I10, rxcap_494_fail
- ($I12, $I11) = rx484_cur."!mark_peek"($I10)
- rx484_cur."!cursor_pos"($I11)
- ($P10) = rx484_cur."!cursor_start"()
- $P10."!cursor_pass"(rx484_pos, "")
- rx484_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx507_fail
+ inc rx507_pos
+ set_addr $I10, rxcap_517_fail
+ ($I12, $I11) = rx507_cur."!mark_peek"($I10)
+ rx507_cur."!cursor_pos"($I11)
+ ($P10) = rx507_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx507_pos, "")
+ rx507_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("desigilname")
- goto rxcap_494_done
- rxcap_494_fail:
- goto rx484_fail
- rxcap_494_done:
- alt490_end:
-.annotate 'line', 244
+ goto rxcap_517_done
+ rxcap_517_fail:
+ goto rx507_fail
+ rxcap_517_done:
+ alt513_end:
+.annotate 'line', 248
# rx pass
- rx484_cur."!cursor_pass"(rx484_pos, "variable")
- rx484_cur."!cursor_debug"("PASS ", "variable", " at pos=", rx484_pos)
- .return (rx484_cur)
- rx484_fail:
+ rx507_cur."!cursor_pass"(rx507_pos, "variable")
+ rx507_cur."!cursor_debug"("PASS ", "variable", " at pos=", rx507_pos)
+ .return (rx507_cur)
+ rx507_fail:
.annotate 'line', 4
- (rx484_rep, rx484_pos, $I10, $P10) = rx484_cur."!mark_fail"(0)
- lt rx484_pos, -1, rx484_done
- eq rx484_pos, -1, rx484_fail
+ (rx507_rep, rx507_pos, $I10, $P10) = rx507_cur."!mark_fail"(0)
+ lt rx507_pos, -1, rx507_done
+ eq rx507_pos, -1, rx507_fail
jump $I10
- rx484_done:
- rx484_cur."!cursor_fail"()
- rx484_cur."!cursor_debug"("FAIL ", "variable")
- .return (rx484_cur)
+ rx507_done:
+ rx507_cur."!cursor_fail"()
+ rx507_cur."!cursor_debug"("FAIL ", "variable")
+ .return (rx507_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable" :subid("118_1274022894.43745") :method
+.sub "!PREFIX__variable" :subid("123_1275811487.95429") :method
.annotate 'line', 4
- $P486 = self."!PREFIX__!subrule"("sigil", "")
- $P487 = self."!PREFIX__!subrule"("sigil", "")
- new $P488, "ResizablePMCArray"
- push $P488, "$!"
- push $P488, "$_"
- push $P488, "$/"
- push $P488, $P486
- push $P488, $P487
- .return ($P488)
+ $P509 = self."!PREFIX__!subrule"("sigil", "")
+ $P510 = self."!PREFIX__!subrule"("sigil", "")
+ new $P511, "ResizablePMCArray"
+ push $P511, "$!"
+ push $P511, "$_"
+ push $P511, "$/"
+ push $P511, $P509
+ push $P511, $P510
+ .return ($P511)
.end
.namespace ["NQP";"Grammar"]
-.sub "sigil" :subid("119_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "sigil" :subid("124_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx496_tgt
- .local int rx496_pos
- .local int rx496_off
- .local int rx496_eos
- .local int rx496_rep
- .local pmc rx496_cur
- (rx496_cur, rx496_pos, rx496_tgt) = self."!cursor_start"()
- rx496_cur."!cursor_debug"("START ", "sigil")
- .lex unicode:"$\x{a2}", rx496_cur
+ .local string rx519_tgt
+ .local int rx519_pos
+ .local int rx519_off
+ .local int rx519_eos
+ .local int rx519_rep
+ .local pmc rx519_cur
+ (rx519_cur, rx519_pos, rx519_tgt) = self."!cursor_start"()
+ rx519_cur."!cursor_debug"("START ", "sigil")
+ .lex unicode:"$\x{a2}", rx519_cur
.local pmc match
.lex "$/", match
- length rx496_eos, rx496_tgt
- set rx496_off, 0
- lt rx496_pos, 2, rx496_start
- sub rx496_off, rx496_pos, 1
- substr rx496_tgt, rx496_tgt, rx496_off
- rx496_start:
+ length rx519_eos, rx519_tgt
+ gt rx519_pos, rx519_eos, rx519_done
+ set rx519_off, 0
+ lt rx519_pos, 2, rx519_start
+ sub rx519_off, rx519_pos, 1
+ substr rx519_tgt, rx519_tgt, rx519_off
+ rx519_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan499_done
- goto rxscan499_scan
- rxscan499_loop:
- ($P10) = rx496_cur."from"()
+ ne $I10, -1, rxscan522_done
+ goto rxscan522_scan
+ rxscan522_loop:
+ ($P10) = rx519_cur."from"()
inc $P10
- set rx496_pos, $P10
- ge rx496_pos, rx496_eos, rxscan499_done
- rxscan499_scan:
- set_addr $I10, rxscan499_loop
- rx496_cur."!mark_push"(0, rx496_pos, $I10)
- rxscan499_done:
-.annotate 'line', 250
+ set rx519_pos, $P10
+ ge rx519_pos, rx519_eos, rxscan522_done
+ rxscan522_scan:
+ set_addr $I10, rxscan522_loop
+ rx519_cur."!mark_push"(0, rx519_pos, $I10)
+ rxscan522_done:
+.annotate 'line', 254
# rx enumcharlist negate=0
- ge rx496_pos, rx496_eos, rx496_fail
- sub $I10, rx496_pos, rx496_off
- substr $S10, rx496_tgt, $I10, 1
+ ge rx519_pos, rx519_eos, rx519_fail
+ sub $I10, rx519_pos, rx519_off
+ substr $S10, rx519_tgt, $I10, 1
index $I11, "$@%&", $S10
- lt $I11, 0, rx496_fail
- inc rx496_pos
+ lt $I11, 0, rx519_fail
+ inc rx519_pos
# rx pass
- rx496_cur."!cursor_pass"(rx496_pos, "sigil")
- rx496_cur."!cursor_debug"("PASS ", "sigil", " at pos=", rx496_pos)
- .return (rx496_cur)
- rx496_fail:
+ rx519_cur."!cursor_pass"(rx519_pos, "sigil")
+ rx519_cur."!cursor_debug"("PASS ", "sigil", " at pos=", rx519_pos)
+ .return (rx519_cur)
+ rx519_fail:
.annotate 'line', 4
- (rx496_rep, rx496_pos, $I10, $P10) = rx496_cur."!mark_fail"(0)
- lt rx496_pos, -1, rx496_done
- eq rx496_pos, -1, rx496_fail
+ (rx519_rep, rx519_pos, $I10, $P10) = rx519_cur."!mark_fail"(0)
+ lt rx519_pos, -1, rx519_done
+ eq rx519_pos, -1, rx519_fail
jump $I10
- rx496_done:
- rx496_cur."!cursor_fail"()
- rx496_cur."!cursor_debug"("FAIL ", "sigil")
- .return (rx496_cur)
+ rx519_done:
+ rx519_cur."!cursor_fail"()
+ rx519_cur."!cursor_debug"("FAIL ", "sigil")
+ .return (rx519_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__sigil" :subid("120_1274022894.43745") :method
+.sub "!PREFIX__sigil" :subid("125_1275811487.95429") :method
.annotate 'line', 4
- new $P498, "ResizablePMCArray"
- push $P498, "&"
- push $P498, "%"
- push $P498, "@"
- push $P498, "$"
- .return ($P498)
+ new $P521, "ResizablePMCArray"
+ push $P521, "&"
+ push $P521, "%"
+ push $P521, "@"
+ push $P521, "$"
+ .return ($P521)
.end
.namespace ["NQP";"Grammar"]
-.sub "twigil" :subid("121_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "twigil" :subid("126_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx501_tgt
- .local int rx501_pos
- .local int rx501_off
- .local int rx501_eos
- .local int rx501_rep
- .local pmc rx501_cur
- (rx501_cur, rx501_pos, rx501_tgt) = self."!cursor_start"()
- rx501_cur."!cursor_debug"("START ", "twigil")
- .lex unicode:"$\x{a2}", rx501_cur
- .local pmc match
- .lex "$/", match
- length rx501_eos, rx501_tgt
- set rx501_off, 0
- lt rx501_pos, 2, rx501_start
- sub rx501_off, rx501_pos, 1
- substr rx501_tgt, rx501_tgt, rx501_off
- rx501_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan504_done
- goto rxscan504_scan
- rxscan504_loop:
- ($P10) = rx501_cur."from"()
- inc $P10
- set rx501_pos, $P10
- ge rx501_pos, rx501_eos, rxscan504_done
- rxscan504_scan:
- set_addr $I10, rxscan504_loop
- rx501_cur."!mark_push"(0, rx501_pos, $I10)
- rxscan504_done:
-.annotate 'line', 252
+ .local string rx524_tgt
+ .local int rx524_pos
+ .local int rx524_off
+ .local int rx524_eos
+ .local int rx524_rep
+ .local pmc rx524_cur
+ (rx524_cur, rx524_pos, rx524_tgt) = self."!cursor_start"()
+ rx524_cur."!cursor_debug"("START ", "twigil")
+ .lex unicode:"$\x{a2}", rx524_cur
+ .local pmc match
+ .lex "$/", match
+ length rx524_eos, rx524_tgt
+ gt rx524_pos, rx524_eos, rx524_done
+ set rx524_off, 0
+ lt rx524_pos, 2, rx524_start
+ sub rx524_off, rx524_pos, 1
+ substr rx524_tgt, rx524_tgt, rx524_off
+ rx524_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan527_done
+ goto rxscan527_scan
+ rxscan527_loop:
+ ($P10) = rx524_cur."from"()
+ inc $P10
+ set rx524_pos, $P10
+ ge rx524_pos, rx524_eos, rxscan527_done
+ rxscan527_scan:
+ set_addr $I10, rxscan527_loop
+ rx524_cur."!mark_push"(0, rx524_pos, $I10)
+ rxscan527_done:
+.annotate 'line', 256
# rx enumcharlist negate=0
- ge rx501_pos, rx501_eos, rx501_fail
- sub $I10, rx501_pos, rx501_off
- substr $S10, rx501_tgt, $I10, 1
+ ge rx524_pos, rx524_eos, rx524_fail
+ sub $I10, rx524_pos, rx524_off
+ substr $S10, rx524_tgt, $I10, 1
index $I11, "*!?", $S10
- lt $I11, 0, rx501_fail
- inc rx501_pos
+ lt $I11, 0, rx524_fail
+ inc rx524_pos
# rx pass
- rx501_cur."!cursor_pass"(rx501_pos, "twigil")
- rx501_cur."!cursor_debug"("PASS ", "twigil", " at pos=", rx501_pos)
- .return (rx501_cur)
- rx501_fail:
+ rx524_cur."!cursor_pass"(rx524_pos, "twigil")
+ rx524_cur."!cursor_debug"("PASS ", "twigil", " at pos=", rx524_pos)
+ .return (rx524_cur)
+ rx524_fail:
.annotate 'line', 4
- (rx501_rep, rx501_pos, $I10, $P10) = rx501_cur."!mark_fail"(0)
- lt rx501_pos, -1, rx501_done
- eq rx501_pos, -1, rx501_fail
+ (rx524_rep, rx524_pos, $I10, $P10) = rx524_cur."!mark_fail"(0)
+ lt rx524_pos, -1, rx524_done
+ eq rx524_pos, -1, rx524_fail
jump $I10
- rx501_done:
- rx501_cur."!cursor_fail"()
- rx501_cur."!cursor_debug"("FAIL ", "twigil")
- .return (rx501_cur)
+ rx524_done:
+ rx524_cur."!cursor_fail"()
+ rx524_cur."!cursor_debug"("FAIL ", "twigil")
+ .return (rx524_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__twigil" :subid("122_1274022894.43745") :method
+.sub "!PREFIX__twigil" :subid("127_1275811487.95429") :method
.annotate 'line', 4
- new $P503, "ResizablePMCArray"
- push $P503, "?"
- push $P503, "!"
- push $P503, "*"
- .return ($P503)
+ new $P526, "ResizablePMCArray"
+ push $P526, "?"
+ push $P526, "!"
+ push $P526, "*"
+ .return ($P526)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_declarator" :subid("123_1274022894.43745") :method
-.annotate 'line', 254
- $P506 = self."!protoregex"("package_declarator")
- .return ($P506)
+.sub "package_declarator" :subid("128_1275811487.95429") :method
+.annotate 'line', 258
+ $P529 = self."!protoregex"("package_declarator")
+ .return ($P529)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator" :subid("124_1274022894.43745") :method
-.annotate 'line', 254
- $P508 = self."!PREFIX__!protoregex"("package_declarator")
- .return ($P508)
+.sub "!PREFIX__package_declarator" :subid("129_1275811487.95429") :method
+.annotate 'line', 258
+ $P531 = self."!PREFIX__!protoregex"("package_declarator")
+ .return ($P531)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<module>" :subid("125_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "package_declarator:sym<module>" :subid("130_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx510_tgt
- .local int rx510_pos
- .local int rx510_off
- .local int rx510_eos
- .local int rx510_rep
- .local pmc rx510_cur
- (rx510_cur, rx510_pos, rx510_tgt) = self."!cursor_start"()
- rx510_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
- .lex unicode:"$\x{a2}", rx510_cur
- .local pmc match
- .lex "$/", match
- length rx510_eos, rx510_tgt
- set rx510_off, 0
- lt rx510_pos, 2, rx510_start
- sub rx510_off, rx510_pos, 1
- substr rx510_tgt, rx510_tgt, rx510_off
- rx510_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan514_done
- goto rxscan514_scan
- rxscan514_loop:
- ($P10) = rx510_cur."from"()
- inc $P10
- set rx510_pos, $P10
- ge rx510_pos, rx510_eos, rxscan514_done
- rxscan514_scan:
- set_addr $I10, rxscan514_loop
- rx510_cur."!mark_push"(0, rx510_pos, $I10)
- rxscan514_done:
-.annotate 'line', 255
+ .local string rx533_tgt
+ .local int rx533_pos
+ .local int rx533_off
+ .local int rx533_eos
+ .local int rx533_rep
+ .local pmc rx533_cur
+ (rx533_cur, rx533_pos, rx533_tgt) = self."!cursor_start"()
+ rx533_cur."!cursor_debug"("START ", "package_declarator:sym<module>")
+ .lex unicode:"$\x{a2}", rx533_cur
+ .local pmc match
+ .lex "$/", match
+ length rx533_eos, rx533_tgt
+ gt rx533_pos, rx533_eos, rx533_done
+ set rx533_off, 0
+ lt rx533_pos, 2, rx533_start
+ sub rx533_off, rx533_pos, 1
+ substr rx533_tgt, rx533_tgt, rx533_off
+ rx533_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan537_done
+ goto rxscan537_scan
+ rxscan537_loop:
+ ($P10) = rx533_cur."from"()
+ inc $P10
+ set rx533_pos, $P10
+ ge rx533_pos, rx533_eos, rxscan537_done
+ rxscan537_scan:
+ set_addr $I10, rxscan537_loop
+ rx533_cur."!mark_push"(0, rx533_pos, $I10)
+ rxscan537_done:
+.annotate 'line', 259
# rx subcapture "sym"
- set_addr $I10, rxcap_515_fail
- rx510_cur."!mark_push"(0, rx510_pos, $I10)
+ set_addr $I10, rxcap_538_fail
+ rx533_cur."!mark_push"(0, rx533_pos, $I10)
# rx literal "module"
- add $I11, rx510_pos, 6
- gt $I11, rx510_eos, rx510_fail
- sub $I11, rx510_pos, rx510_off
- substr $S10, rx510_tgt, $I11, 6
- ne $S10, "module", rx510_fail
- add rx510_pos, 6
- set_addr $I10, rxcap_515_fail
- ($I12, $I11) = rx510_cur."!mark_peek"($I10)
- rx510_cur."!cursor_pos"($I11)
- ($P10) = rx510_cur."!cursor_start"()
- $P10."!cursor_pass"(rx510_pos, "")
- rx510_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx533_pos, 6
+ gt $I11, rx533_eos, rx533_fail
+ sub $I11, rx533_pos, rx533_off
+ substr $S10, rx533_tgt, $I11, 6
+ ne $S10, "module", rx533_fail
+ add rx533_pos, 6
+ set_addr $I10, rxcap_538_fail
+ ($I12, $I11) = rx533_cur."!mark_peek"($I10)
+ rx533_cur."!cursor_pos"($I11)
+ ($P10) = rx533_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx533_pos, "")
+ rx533_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_515_done
- rxcap_515_fail:
- goto rx510_fail
- rxcap_515_done:
+ goto rxcap_538_done
+ rxcap_538_fail:
+ goto rx533_fail
+ rxcap_538_done:
# rx subrule "package_def" subtype=capture negate=
- rx510_cur."!cursor_pos"(rx510_pos)
- $P10 = rx510_cur."package_def"()
- unless $P10, rx510_fail
- rx510_cur."!mark_push"(0, -1, 0, $P10)
+ rx533_cur."!cursor_pos"(rx533_pos)
+ $P10 = rx533_cur."package_def"()
+ unless $P10, rx533_fail
+ rx533_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("package_def")
- rx510_pos = $P10."pos"()
+ rx533_pos = $P10."pos"()
# rx pass
- rx510_cur."!cursor_pass"(rx510_pos, "package_declarator:sym<module>")
- rx510_cur."!cursor_debug"("PASS ", "package_declarator:sym<module>", " at pos=", rx510_pos)
- .return (rx510_cur)
- rx510_fail:
+ rx533_cur."!cursor_pass"(rx533_pos, "package_declarator:sym<module>")
+ rx533_cur."!cursor_debug"("PASS ", "package_declarator:sym<module>", " at pos=", rx533_pos)
+ .return (rx533_cur)
+ rx533_fail:
.annotate 'line', 4
- (rx510_rep, rx510_pos, $I10, $P10) = rx510_cur."!mark_fail"(0)
- lt rx510_pos, -1, rx510_done
- eq rx510_pos, -1, rx510_fail
+ (rx533_rep, rx533_pos, $I10, $P10) = rx533_cur."!mark_fail"(0)
+ lt rx533_pos, -1, rx533_done
+ eq rx533_pos, -1, rx533_fail
jump $I10
- rx510_done:
- rx510_cur."!cursor_fail"()
- rx510_cur."!cursor_debug"("FAIL ", "package_declarator:sym<module>")
- .return (rx510_cur)
+ rx533_done:
+ rx533_cur."!cursor_fail"()
+ rx533_cur."!cursor_debug"("FAIL ", "package_declarator:sym<module>")
+ .return (rx533_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<module>" :subid("126_1274022894.43745") :method
+.sub "!PREFIX__package_declarator:sym<module>" :subid("131_1275811487.95429") :method
.annotate 'line', 4
- $P512 = self."!PREFIX__!subrule"("package_def", "module")
- new $P513, "ResizablePMCArray"
- push $P513, $P512
- .return ($P513)
+ $P535 = self."!PREFIX__!subrule"("package_def", "module")
+ new $P536, "ResizablePMCArray"
+ push $P536, $P535
+ .return ($P536)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_declarator:sym<class>" :subid("127_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "package_declarator:sym<class>" :subid("132_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx517_tgt
- .local int rx517_pos
- .local int rx517_off
- .local int rx517_eos
- .local int rx517_rep
- .local pmc rx517_cur
- (rx517_cur, rx517_pos, rx517_tgt) = self."!cursor_start"()
- rx517_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
- .lex unicode:"$\x{a2}", rx517_cur
+ .local string rx540_tgt
+ .local int rx540_pos
+ .local int rx540_off
+ .local int rx540_eos
+ .local int rx540_rep
+ .local pmc rx540_cur
+ (rx540_cur, rx540_pos, rx540_tgt) = self."!cursor_start"()
+ rx540_cur."!cursor_debug"("START ", "package_declarator:sym<class>")
+ .lex unicode:"$\x{a2}", rx540_cur
.local pmc match
.lex "$/", match
- length rx517_eos, rx517_tgt
- set rx517_off, 0
- lt rx517_pos, 2, rx517_start
- sub rx517_off, rx517_pos, 1
- substr rx517_tgt, rx517_tgt, rx517_off
- rx517_start:
+ length rx540_eos, rx540_tgt
+ gt rx540_pos, rx540_eos, rx540_done
+ set rx540_off, 0
+ lt rx540_pos, 2, rx540_start
+ sub rx540_off, rx540_pos, 1
+ substr rx540_tgt, rx540_tgt, rx540_off
+ rx540_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan522_done
- goto rxscan522_scan
- rxscan522_loop:
- ($P10) = rx517_cur."from"()
+ ne $I10, -1, rxscan545_done
+ goto rxscan545_scan
+ rxscan545_loop:
+ ($P10) = rx540_cur."from"()
inc $P10
- set rx517_pos, $P10
- ge rx517_pos, rx517_eos, rxscan522_done
- rxscan522_scan:
- set_addr $I10, rxscan522_loop
- rx517_cur."!mark_push"(0, rx517_pos, $I10)
- rxscan522_done:
-.annotate 'line', 256
+ set rx540_pos, $P10
+ ge rx540_pos, rx540_eos, rxscan545_done
+ rxscan545_scan:
+ set_addr $I10, rxscan545_loop
+ rx540_cur."!mark_push"(0, rx540_pos, $I10)
+ rxscan545_done:
+.annotate 'line', 260
# rx subcapture "sym"
- set_addr $I10, rxcap_524_fail
- rx517_cur."!mark_push"(0, rx517_pos, $I10)
- alt523_0:
- set_addr $I10, alt523_1
- rx517_cur."!mark_push"(0, rx517_pos, $I10)
+ set_addr $I10, rxcap_547_fail
+ rx540_cur."!mark_push"(0, rx540_pos, $I10)
+ alt546_0:
+ set_addr $I10, alt546_1
+ rx540_cur."!mark_push"(0, rx540_pos, $I10)
# rx literal "class"
- add $I11, rx517_pos, 5
- gt $I11, rx517_eos, rx517_fail
- sub $I11, rx517_pos, rx517_off
- substr $S10, rx517_tgt, $I11, 5
- ne $S10, "class", rx517_fail
- add rx517_pos, 5
- goto alt523_end
- alt523_1:
+ add $I11, rx540_pos, 5
+ gt $I11, rx540_eos, rx540_fail
+ sub $I11, rx540_pos, rx540_off
+ substr $S10, rx540_tgt, $I11, 5
+ ne $S10, "class", rx540_fail
+ add rx540_pos, 5
+ goto alt546_end
+ alt546_1:
# rx literal "grammar"
- add $I11, rx517_pos, 7
- gt $I11, rx517_eos, rx517_fail
- sub $I11, rx517_pos, rx517_off
- substr $S10, rx517_tgt, $I11, 7
- ne $S10, "grammar", rx517_fail
- add rx517_pos, 7
- alt523_end:
- set_addr $I10, rxcap_524_fail
- ($I12, $I11) = rx517_cur."!mark_peek"($I10)
- rx517_cur."!cursor_pos"($I11)
- ($P10) = rx517_cur."!cursor_start"()
- $P10."!cursor_pass"(rx517_pos, "")
- rx517_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx540_pos, 7
+ gt $I11, rx540_eos, rx540_fail
+ sub $I11, rx540_pos, rx540_off
+ substr $S10, rx540_tgt, $I11, 7
+ ne $S10, "grammar", rx540_fail
+ add rx540_pos, 7
+ alt546_end:
+ set_addr $I10, rxcap_547_fail
+ ($I12, $I11) = rx540_cur."!mark_peek"($I10)
+ rx540_cur."!cursor_pos"($I11)
+ ($P10) = rx540_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx540_pos, "")
+ rx540_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_524_done
- rxcap_524_fail:
- goto rx517_fail
- rxcap_524_done:
+ goto rxcap_547_done
+ rxcap_547_fail:
+ goto rx540_fail
+ rxcap_547_done:
# rx subrule "package_def" subtype=capture negate=
- rx517_cur."!cursor_pos"(rx517_pos)
- $P10 = rx517_cur."package_def"()
- unless $P10, rx517_fail
- rx517_cur."!mark_push"(0, -1, 0, $P10)
+ rx540_cur."!cursor_pos"(rx540_pos)
+ $P10 = rx540_cur."package_def"()
+ unless $P10, rx540_fail
+ rx540_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("package_def")
- rx517_pos = $P10."pos"()
+ rx540_pos = $P10."pos"()
# rx pass
- rx517_cur."!cursor_pass"(rx517_pos, "package_declarator:sym<class>")
- rx517_cur."!cursor_debug"("PASS ", "package_declarator:sym<class>", " at pos=", rx517_pos)
- .return (rx517_cur)
- rx517_fail:
+ rx540_cur."!cursor_pass"(rx540_pos, "package_declarator:sym<class>")
+ rx540_cur."!cursor_debug"("PASS ", "package_declarator:sym<class>", " at pos=", rx540_pos)
+ .return (rx540_cur)
+ rx540_fail:
.annotate 'line', 4
- (rx517_rep, rx517_pos, $I10, $P10) = rx517_cur."!mark_fail"(0)
- lt rx517_pos, -1, rx517_done
- eq rx517_pos, -1, rx517_fail
+ (rx540_rep, rx540_pos, $I10, $P10) = rx540_cur."!mark_fail"(0)
+ lt rx540_pos, -1, rx540_done
+ eq rx540_pos, -1, rx540_fail
jump $I10
- rx517_done:
- rx517_cur."!cursor_fail"()
- rx517_cur."!cursor_debug"("FAIL ", "package_declarator:sym<class>")
- .return (rx517_cur)
+ rx540_done:
+ rx540_cur."!cursor_fail"()
+ rx540_cur."!cursor_debug"("FAIL ", "package_declarator:sym<class>")
+ .return (rx540_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_declarator:sym<class>" :subid("128_1274022894.43745") :method
+.sub "!PREFIX__package_declarator:sym<class>" :subid("133_1275811487.95429") :method
.annotate 'line', 4
- $P519 = self."!PREFIX__!subrule"("package_def", "grammar")
- $P520 = self."!PREFIX__!subrule"("package_def", "class")
- new $P521, "ResizablePMCArray"
- push $P521, $P519
- push $P521, $P520
- .return ($P521)
+ $P542 = self."!PREFIX__!subrule"("package_def", "grammar")
+ $P543 = self."!PREFIX__!subrule"("package_def", "class")
+ new $P544, "ResizablePMCArray"
+ push $P544, $P542
+ push $P544, $P543
+ .return ($P544)
.end
.namespace ["NQP";"Grammar"]
-.sub "package_def" :subid("129_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "package_def" :subid("134_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx526_tgt
- .local int rx526_pos
- .local int rx526_off
- .local int rx526_eos
- .local int rx526_rep
- .local pmc rx526_cur
- (rx526_cur, rx526_pos, rx526_tgt) = self."!cursor_start"()
- rx526_cur."!cursor_debug"("START ", "package_def")
- rx526_cur."!cursor_caparray"("parent")
- .lex unicode:"$\x{a2}", rx526_cur
- .local pmc match
- .lex "$/", match
- length rx526_eos, rx526_tgt
- set rx526_off, 0
- lt rx526_pos, 2, rx526_start
- sub rx526_off, rx526_pos, 1
- substr rx526_tgt, rx526_tgt, rx526_off
- rx526_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan529_done
- goto rxscan529_scan
- rxscan529_loop:
- ($P10) = rx526_cur."from"()
- inc $P10
- set rx526_pos, $P10
- ge rx526_pos, rx526_eos, rxscan529_done
- rxscan529_scan:
- set_addr $I10, rxscan529_loop
- rx526_cur."!mark_push"(0, rx526_pos, $I10)
- rxscan529_done:
-.annotate 'line', 258
+ .local string rx549_tgt
+ .local int rx549_pos
+ .local int rx549_off
+ .local int rx549_eos
+ .local int rx549_rep
+ .local pmc rx549_cur
+ (rx549_cur, rx549_pos, rx549_tgt) = self."!cursor_start"()
+ rx549_cur."!cursor_debug"("START ", "package_def")
+ rx549_cur."!cursor_caparray"("parent")
+ .lex unicode:"$\x{a2}", rx549_cur
+ .local pmc match
+ .lex "$/", match
+ length rx549_eos, rx549_tgt
+ gt rx549_pos, rx549_eos, rx549_done
+ set rx549_off, 0
+ lt rx549_pos, 2, rx549_start
+ sub rx549_off, rx549_pos, 1
+ substr rx549_tgt, rx549_tgt, rx549_off
+ rx549_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan553_done
+ goto rxscan553_scan
+ rxscan553_loop:
+ ($P10) = rx549_cur."from"()
+ inc $P10
+ set rx549_pos, $P10
+ ge rx549_pos, rx549_eos, rxscan553_done
+ rxscan553_scan:
+ set_addr $I10, rxscan553_loop
+ rx549_cur."!mark_push"(0, rx549_pos, $I10)
+ rxscan553_done:
+.annotate 'line', 262
# rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
-.annotate 'line', 259
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
+.annotate 'line', 263
# rx subrule "name" subtype=capture negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."name"()
- unless $P10, rx526_fail
- rx526_cur."!mark_push"(0, -1, 0, $P10)
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."name"()
+ unless $P10, rx549_fail
+ rx549_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- rx526_pos = $P10."pos"()
+ rx549_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
-.annotate 'line', 260
- # rx rxquantr532 ** 0..1
- set_addr $I536, rxquantr532_done
- rx526_cur."!mark_push"(0, rx526_pos, $I536)
- rxquantr532_loop:
- # rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
+.annotate 'line', 264
+ # rx rxquantr556 ** 0..1
+ set_addr $I560, rxquantr556_done
+ rx549_cur."!mark_push"(0, rx549_pos, $I560)
+ rxquantr556_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
# rx literal "is"
- add $I11, rx526_pos, 2
- gt $I11, rx526_eos, rx526_fail
- sub $I11, rx526_pos, rx526_off
- substr $S10, rx526_tgt, $I11, 2
- ne $S10, "is", rx526_fail
- add rx526_pos, 2
- # rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
+ add $I11, rx549_pos, 2
+ gt $I11, rx549_eos, rx549_fail
+ sub $I11, rx549_pos, rx549_off
+ substr $S10, rx549_tgt, $I11, 2
+ ne $S10, "is", rx549_fail
+ add rx549_pos, 2
+ # rx subrule "ws" subtype=method negate=
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
# rx subrule "name" subtype=capture negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."name"()
- unless $P10, rx526_fail
- rx526_cur."!mark_push"(0, -1, 0, $P10)
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."name"()
+ unless $P10, rx549_fail
+ rx549_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("parent")
- rx526_pos = $P10."pos"()
+ rx549_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
- (rx526_rep) = rx526_cur."!mark_commit"($I536)
- rxquantr532_done:
- # rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
- alt538_0:
-.annotate 'line', 261
- set_addr $I10, alt538_1
- rx526_cur."!mark_push"(0, rx526_pos, $I10)
-.annotate 'line', 262
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
+ (rx549_rep) = rx549_cur."!mark_commit"($I560)
+ rxquantr556_done:
+ # rx subrule "ws" subtype=method negate=
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
+ alt562_0:
+.annotate 'line', 265
+ set_addr $I10, alt562_1
+ rx549_cur."!mark_push"(0, rx549_pos, $I10)
+.annotate 'line', 266
# rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
# rx literal ";"
- add $I11, rx526_pos, 1
- gt $I11, rx526_eos, rx526_fail
- sub $I11, rx526_pos, rx526_off
- substr $S10, rx526_tgt, $I11, 1
- ne $S10, ";", rx526_fail
- add rx526_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
+ add $I11, rx549_pos, 1
+ gt $I11, rx549_eos, rx549_fail
+ sub $I11, rx549_pos, rx549_off
+ substr $S10, rx549_tgt, $I11, 1
+ ne $S10, ";", rx549_fail
+ add rx549_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
# rx subrule "comp_unit" subtype=capture negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."comp_unit"()
- unless $P10, rx526_fail
- rx526_cur."!mark_push"(0, -1, 0, $P10)
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."comp_unit"()
+ unless $P10, rx549_fail
+ rx549_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("comp_unit")
- rx526_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
- goto alt538_end
- alt538_1:
- set_addr $I10, alt538_2
- rx526_cur."!mark_push"(0, rx526_pos, $I10)
-.annotate 'line', 263
+ rx549_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
+ goto alt562_end
+ alt562_1:
+ set_addr $I10, alt562_2
+ rx549_cur."!mark_push"(0, rx549_pos, $I10)
+.annotate 'line', 267
+ # rx subrule "ws" subtype=method negate=
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
# rx enumcharlist negate=0 zerowidth
- ge rx526_pos, rx526_eos, rx526_fail
- sub $I10, rx526_pos, rx526_off
- substr $S10, rx526_tgt, $I10, 1
+ ge rx549_pos, rx549_eos, rx549_fail
+ sub $I10, rx549_pos, rx549_off
+ substr $S10, rx549_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx526_fail
+ lt $I11, 0, rx549_fail
# rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
# rx subrule "block" subtype=capture negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."block"()
- unless $P10, rx526_fail
- rx526_cur."!mark_push"(0, -1, 0, $P10)
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."block"()
+ unless $P10, rx549_fail
+ rx549_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("block")
- rx526_pos = $P10."pos"()
+ rx549_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
- goto alt538_end
- alt538_2:
-.annotate 'line', 264
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
+ goto alt562_end
+ alt562_2:
+.annotate 'line', 268
# rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
# rx subrule "panic" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."panic"("Malformed package declaration")
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
- alt538_end:
-.annotate 'line', 265
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."panic"("Malformed package declaration")
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
+ alt562_end:
+.annotate 'line', 269
# rx subrule "ws" subtype=method negate=
- rx526_cur."!cursor_pos"(rx526_pos)
- $P10 = rx526_cur."ws"()
- unless $P10, rx526_fail
- rx526_pos = $P10."pos"()
-.annotate 'line', 258
+ rx549_cur."!cursor_pos"(rx549_pos)
+ $P10 = rx549_cur."ws"()
+ unless $P10, rx549_fail
+ rx549_pos = $P10."pos"()
+.annotate 'line', 262
# rx pass
- rx526_cur."!cursor_pass"(rx526_pos, "package_def")
- rx526_cur."!cursor_debug"("PASS ", "package_def", " at pos=", rx526_pos)
- .return (rx526_cur)
- rx526_fail:
+ rx549_cur."!cursor_pass"(rx549_pos, "package_def")
+ rx549_cur."!cursor_debug"("PASS ", "package_def", " at pos=", rx549_pos)
+ .return (rx549_cur)
+ rx549_fail:
.annotate 'line', 4
- (rx526_rep, rx526_pos, $I10, $P10) = rx526_cur."!mark_fail"(0)
- lt rx526_pos, -1, rx526_done
- eq rx526_pos, -1, rx526_fail
+ (rx549_rep, rx549_pos, $I10, $P10) = rx549_cur."!mark_fail"(0)
+ lt rx549_pos, -1, rx549_done
+ eq rx549_pos, -1, rx549_fail
jump $I10
- rx526_done:
- rx526_cur."!cursor_fail"()
- rx526_cur."!cursor_debug"("FAIL ", "package_def")
- .return (rx526_cur)
+ rx549_done:
+ rx549_cur."!cursor_fail"()
+ rx549_cur."!cursor_debug"("FAIL ", "package_def")
+ .return (rx549_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__package_def" :subid("130_1274022894.43745") :method
+.sub "!PREFIX__package_def" :subid("135_1275811487.95429") :method
.annotate 'line', 4
- new $P528, "ResizablePMCArray"
- push $P528, ""
- .return ($P528)
+ $P551 = self."!PREFIX__!subrule"("ws", "")
+ new $P552, "ResizablePMCArray"
+ push $P552, $P551
+ .return ($P552)
.end
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator" :subid("131_1274022894.43745") :method
-.annotate 'line', 268
- $P549 = self."!protoregex"("scope_declarator")
- .return ($P549)
+.sub "scope_declarator" :subid("136_1275811487.95429") :method
+.annotate 'line', 272
+ $P573 = self."!protoregex"("scope_declarator")
+ .return ($P573)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator" :subid("132_1274022894.43745") :method
-.annotate 'line', 268
- $P551 = self."!PREFIX__!protoregex"("scope_declarator")
- .return ($P551)
+.sub "!PREFIX__scope_declarator" :subid("137_1275811487.95429") :method
+.annotate 'line', 272
+ $P575 = self."!PREFIX__!protoregex"("scope_declarator")
+ .return ($P575)
.end
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<my>" :subid("133_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "scope_declarator:sym<my>" :subid("138_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx553_tgt
- .local int rx553_pos
- .local int rx553_off
- .local int rx553_eos
- .local int rx553_rep
- .local pmc rx553_cur
- (rx553_cur, rx553_pos, rx553_tgt) = self."!cursor_start"()
- rx553_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
- .lex unicode:"$\x{a2}", rx553_cur
- .local pmc match
- .lex "$/", match
- length rx553_eos, rx553_tgt
- set rx553_off, 0
- lt rx553_pos, 2, rx553_start
- sub rx553_off, rx553_pos, 1
- substr rx553_tgt, rx553_tgt, rx553_off
- rx553_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan557_done
- goto rxscan557_scan
- rxscan557_loop:
- ($P10) = rx553_cur."from"()
- inc $P10
- set rx553_pos, $P10
- ge rx553_pos, rx553_eos, rxscan557_done
- rxscan557_scan:
- set_addr $I10, rxscan557_loop
- rx553_cur."!mark_push"(0, rx553_pos, $I10)
- rxscan557_done:
-.annotate 'line', 269
+ .local string rx577_tgt
+ .local int rx577_pos
+ .local int rx577_off
+ .local int rx577_eos
+ .local int rx577_rep
+ .local pmc rx577_cur
+ (rx577_cur, rx577_pos, rx577_tgt) = self."!cursor_start"()
+ rx577_cur."!cursor_debug"("START ", "scope_declarator:sym<my>")
+ .lex unicode:"$\x{a2}", rx577_cur
+ .local pmc match
+ .lex "$/", match
+ length rx577_eos, rx577_tgt
+ gt rx577_pos, rx577_eos, rx577_done
+ set rx577_off, 0
+ lt rx577_pos, 2, rx577_start
+ sub rx577_off, rx577_pos, 1
+ substr rx577_tgt, rx577_tgt, rx577_off
+ rx577_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan581_done
+ goto rxscan581_scan
+ rxscan581_loop:
+ ($P10) = rx577_cur."from"()
+ inc $P10
+ set rx577_pos, $P10
+ ge rx577_pos, rx577_eos, rxscan581_done
+ rxscan581_scan:
+ set_addr $I10, rxscan581_loop
+ rx577_cur."!mark_push"(0, rx577_pos, $I10)
+ rxscan581_done:
+.annotate 'line', 273
# rx subcapture "sym"
- set_addr $I10, rxcap_558_fail
- rx553_cur."!mark_push"(0, rx553_pos, $I10)
+ set_addr $I10, rxcap_582_fail
+ rx577_cur."!mark_push"(0, rx577_pos, $I10)
# rx literal "my"
- add $I11, rx553_pos, 2
- gt $I11, rx553_eos, rx553_fail
- sub $I11, rx553_pos, rx553_off
- substr $S10, rx553_tgt, $I11, 2
- ne $S10, "my", rx553_fail
- add rx553_pos, 2
- set_addr $I10, rxcap_558_fail
- ($I12, $I11) = rx553_cur."!mark_peek"($I10)
- rx553_cur."!cursor_pos"($I11)
- ($P10) = rx553_cur."!cursor_start"()
- $P10."!cursor_pass"(rx553_pos, "")
- rx553_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx577_pos, 2
+ gt $I11, rx577_eos, rx577_fail
+ sub $I11, rx577_pos, rx577_off
+ substr $S10, rx577_tgt, $I11, 2
+ ne $S10, "my", rx577_fail
+ add rx577_pos, 2
+ set_addr $I10, rxcap_582_fail
+ ($I12, $I11) = rx577_cur."!mark_peek"($I10)
+ rx577_cur."!cursor_pos"($I11)
+ ($P10) = rx577_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx577_pos, "")
+ rx577_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_558_done
- rxcap_558_fail:
- goto rx553_fail
- rxcap_558_done:
+ goto rxcap_582_done
+ rxcap_582_fail:
+ goto rx577_fail
+ rxcap_582_done:
# rx subrule "scoped" subtype=capture negate=
- rx553_cur."!cursor_pos"(rx553_pos)
- $P10 = rx553_cur."scoped"("my")
- unless $P10, rx553_fail
- rx553_cur."!mark_push"(0, -1, 0, $P10)
+ rx577_cur."!cursor_pos"(rx577_pos)
+ $P10 = rx577_cur."scoped"("my")
+ unless $P10, rx577_fail
+ rx577_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("scoped")
- rx553_pos = $P10."pos"()
+ rx577_pos = $P10."pos"()
# rx pass
- rx553_cur."!cursor_pass"(rx553_pos, "scope_declarator:sym<my>")
- rx553_cur."!cursor_debug"("PASS ", "scope_declarator:sym<my>", " at pos=", rx553_pos)
- .return (rx553_cur)
- rx553_fail:
+ rx577_cur."!cursor_pass"(rx577_pos, "scope_declarator:sym<my>")
+ rx577_cur."!cursor_debug"("PASS ", "scope_declarator:sym<my>", " at pos=", rx577_pos)
+ .return (rx577_cur)
+ rx577_fail:
.annotate 'line', 4
- (rx553_rep, rx553_pos, $I10, $P10) = rx553_cur."!mark_fail"(0)
- lt rx553_pos, -1, rx553_done
- eq rx553_pos, -1, rx553_fail
+ (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
+ lt rx577_pos, -1, rx577_done
+ eq rx577_pos, -1, rx577_fail
jump $I10
- rx553_done:
- rx553_cur."!cursor_fail"()
- rx553_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<my>")
- .return (rx553_cur)
+ rx577_done:
+ rx577_cur."!cursor_fail"()
+ rx577_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<my>")
+ .return (rx577_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<my>" :subid("134_1274022894.43745") :method
+.sub "!PREFIX__scope_declarator:sym<my>" :subid("139_1275811487.95429") :method
.annotate 'line', 4
- $P555 = self."!PREFIX__!subrule"("scoped", "my")
- new $P556, "ResizablePMCArray"
- push $P556, $P555
- .return ($P556)
+ $P579 = self."!PREFIX__!subrule"("scoped", "my")
+ new $P580, "ResizablePMCArray"
+ push $P580, $P579
+ .return ($P580)
.end
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<our>" :subid("135_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "scope_declarator:sym<our>" :subid("140_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx560_tgt
- .local int rx560_pos
- .local int rx560_off
- .local int rx560_eos
- .local int rx560_rep
- .local pmc rx560_cur
- (rx560_cur, rx560_pos, rx560_tgt) = self."!cursor_start"()
- rx560_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
- .lex unicode:"$\x{a2}", rx560_cur
+ .local string rx584_tgt
+ .local int rx584_pos
+ .local int rx584_off
+ .local int rx584_eos
+ .local int rx584_rep
+ .local pmc rx584_cur
+ (rx584_cur, rx584_pos, rx584_tgt) = self."!cursor_start"()
+ rx584_cur."!cursor_debug"("START ", "scope_declarator:sym<our>")
+ .lex unicode:"$\x{a2}", rx584_cur
.local pmc match
.lex "$/", match
- length rx560_eos, rx560_tgt
- set rx560_off, 0
- lt rx560_pos, 2, rx560_start
- sub rx560_off, rx560_pos, 1
- substr rx560_tgt, rx560_tgt, rx560_off
- rx560_start:
+ length rx584_eos, rx584_tgt
+ gt rx584_pos, rx584_eos, rx584_done
+ set rx584_off, 0
+ lt rx584_pos, 2, rx584_start
+ sub rx584_off, rx584_pos, 1
+ substr rx584_tgt, rx584_tgt, rx584_off
+ rx584_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan564_done
- goto rxscan564_scan
- rxscan564_loop:
- ($P10) = rx560_cur."from"()
+ ne $I10, -1, rxscan588_done
+ goto rxscan588_scan
+ rxscan588_loop:
+ ($P10) = rx584_cur."from"()
inc $P10
- set rx560_pos, $P10
- ge rx560_pos, rx560_eos, rxscan564_done
- rxscan564_scan:
- set_addr $I10, rxscan564_loop
- rx560_cur."!mark_push"(0, rx560_pos, $I10)
- rxscan564_done:
-.annotate 'line', 270
+ set rx584_pos, $P10
+ ge rx584_pos, rx584_eos, rxscan588_done
+ rxscan588_scan:
+ set_addr $I10, rxscan588_loop
+ rx584_cur."!mark_push"(0, rx584_pos, $I10)
+ rxscan588_done:
+.annotate 'line', 274
# rx subcapture "sym"
- set_addr $I10, rxcap_565_fail
- rx560_cur."!mark_push"(0, rx560_pos, $I10)
+ set_addr $I10, rxcap_589_fail
+ rx584_cur."!mark_push"(0, rx584_pos, $I10)
# rx literal "our"
- add $I11, rx560_pos, 3
- gt $I11, rx560_eos, rx560_fail
- sub $I11, rx560_pos, rx560_off
- substr $S10, rx560_tgt, $I11, 3
- ne $S10, "our", rx560_fail
- add rx560_pos, 3
- set_addr $I10, rxcap_565_fail
- ($I12, $I11) = rx560_cur."!mark_peek"($I10)
- rx560_cur."!cursor_pos"($I11)
- ($P10) = rx560_cur."!cursor_start"()
- $P10."!cursor_pass"(rx560_pos, "")
- rx560_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx584_pos, 3
+ gt $I11, rx584_eos, rx584_fail
+ sub $I11, rx584_pos, rx584_off
+ substr $S10, rx584_tgt, $I11, 3
+ ne $S10, "our", rx584_fail
+ add rx584_pos, 3
+ set_addr $I10, rxcap_589_fail
+ ($I12, $I11) = rx584_cur."!mark_peek"($I10)
+ rx584_cur."!cursor_pos"($I11)
+ ($P10) = rx584_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx584_pos, "")
+ rx584_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_565_done
- rxcap_565_fail:
- goto rx560_fail
- rxcap_565_done:
+ goto rxcap_589_done
+ rxcap_589_fail:
+ goto rx584_fail
+ rxcap_589_done:
# rx subrule "scoped" subtype=capture negate=
- rx560_cur."!cursor_pos"(rx560_pos)
- $P10 = rx560_cur."scoped"("our")
- unless $P10, rx560_fail
- rx560_cur."!mark_push"(0, -1, 0, $P10)
+ rx584_cur."!cursor_pos"(rx584_pos)
+ $P10 = rx584_cur."scoped"("our")
+ unless $P10, rx584_fail
+ rx584_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("scoped")
- rx560_pos = $P10."pos"()
+ rx584_pos = $P10."pos"()
# rx pass
- rx560_cur."!cursor_pass"(rx560_pos, "scope_declarator:sym<our>")
- rx560_cur."!cursor_debug"("PASS ", "scope_declarator:sym<our>", " at pos=", rx560_pos)
- .return (rx560_cur)
- rx560_fail:
+ rx584_cur."!cursor_pass"(rx584_pos, "scope_declarator:sym<our>")
+ rx584_cur."!cursor_debug"("PASS ", "scope_declarator:sym<our>", " at pos=", rx584_pos)
+ .return (rx584_cur)
+ rx584_fail:
.annotate 'line', 4
- (rx560_rep, rx560_pos, $I10, $P10) = rx560_cur."!mark_fail"(0)
- lt rx560_pos, -1, rx560_done
- eq rx560_pos, -1, rx560_fail
+ (rx584_rep, rx584_pos, $I10, $P10) = rx584_cur."!mark_fail"(0)
+ lt rx584_pos, -1, rx584_done
+ eq rx584_pos, -1, rx584_fail
jump $I10
- rx560_done:
- rx560_cur."!cursor_fail"()
- rx560_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<our>")
- .return (rx560_cur)
+ rx584_done:
+ rx584_cur."!cursor_fail"()
+ rx584_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<our>")
+ .return (rx584_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<our>" :subid("136_1274022894.43745") :method
+.sub "!PREFIX__scope_declarator:sym<our>" :subid("141_1275811487.95429") :method
.annotate 'line', 4
- $P562 = self."!PREFIX__!subrule"("scoped", "our")
- new $P563, "ResizablePMCArray"
- push $P563, $P562
- .return ($P563)
+ $P586 = self."!PREFIX__!subrule"("scoped", "our")
+ new $P587, "ResizablePMCArray"
+ push $P587, $P586
+ .return ($P587)
.end
.namespace ["NQP";"Grammar"]
-.sub "scope_declarator:sym<has>" :subid("137_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "scope_declarator:sym<has>" :subid("142_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx567_tgt
- .local int rx567_pos
- .local int rx567_off
- .local int rx567_eos
- .local int rx567_rep
- .local pmc rx567_cur
- (rx567_cur, rx567_pos, rx567_tgt) = self."!cursor_start"()
- rx567_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
- .lex unicode:"$\x{a2}", rx567_cur
+ .local string rx591_tgt
+ .local int rx591_pos
+ .local int rx591_off
+ .local int rx591_eos
+ .local int rx591_rep
+ .local pmc rx591_cur
+ (rx591_cur, rx591_pos, rx591_tgt) = self."!cursor_start"()
+ rx591_cur."!cursor_debug"("START ", "scope_declarator:sym<has>")
+ .lex unicode:"$\x{a2}", rx591_cur
.local pmc match
.lex "$/", match
- length rx567_eos, rx567_tgt
- set rx567_off, 0
- lt rx567_pos, 2, rx567_start
- sub rx567_off, rx567_pos, 1
- substr rx567_tgt, rx567_tgt, rx567_off
- rx567_start:
+ length rx591_eos, rx591_tgt
+ gt rx591_pos, rx591_eos, rx591_done
+ set rx591_off, 0
+ lt rx591_pos, 2, rx591_start
+ sub rx591_off, rx591_pos, 1
+ substr rx591_tgt, rx591_tgt, rx591_off
+ rx591_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan571_done
- goto rxscan571_scan
- rxscan571_loop:
- ($P10) = rx567_cur."from"()
+ ne $I10, -1, rxscan595_done
+ goto rxscan595_scan
+ rxscan595_loop:
+ ($P10) = rx591_cur."from"()
inc $P10
- set rx567_pos, $P10
- ge rx567_pos, rx567_eos, rxscan571_done
- rxscan571_scan:
- set_addr $I10, rxscan571_loop
- rx567_cur."!mark_push"(0, rx567_pos, $I10)
- rxscan571_done:
-.annotate 'line', 271
+ set rx591_pos, $P10
+ ge rx591_pos, rx591_eos, rxscan595_done
+ rxscan595_scan:
+ set_addr $I10, rxscan595_loop
+ rx591_cur."!mark_push"(0, rx591_pos, $I10)
+ rxscan595_done:
+.annotate 'line', 275
# rx subcapture "sym"
- set_addr $I10, rxcap_572_fail
- rx567_cur."!mark_push"(0, rx567_pos, $I10)
+ set_addr $I10, rxcap_596_fail
+ rx591_cur."!mark_push"(0, rx591_pos, $I10)
# rx literal "has"
- add $I11, rx567_pos, 3
- gt $I11, rx567_eos, rx567_fail
- sub $I11, rx567_pos, rx567_off
- substr $S10, rx567_tgt, $I11, 3
- ne $S10, "has", rx567_fail
- add rx567_pos, 3
- set_addr $I10, rxcap_572_fail
- ($I12, $I11) = rx567_cur."!mark_peek"($I10)
- rx567_cur."!cursor_pos"($I11)
- ($P10) = rx567_cur."!cursor_start"()
- $P10."!cursor_pass"(rx567_pos, "")
- rx567_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx591_pos, 3
+ gt $I11, rx591_eos, rx591_fail
+ sub $I11, rx591_pos, rx591_off
+ substr $S10, rx591_tgt, $I11, 3
+ ne $S10, "has", rx591_fail
+ add rx591_pos, 3
+ set_addr $I10, rxcap_596_fail
+ ($I12, $I11) = rx591_cur."!mark_peek"($I10)
+ rx591_cur."!cursor_pos"($I11)
+ ($P10) = rx591_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx591_pos, "")
+ rx591_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_572_done
- rxcap_572_fail:
- goto rx567_fail
- rxcap_572_done:
+ goto rxcap_596_done
+ rxcap_596_fail:
+ goto rx591_fail
+ rxcap_596_done:
# rx subrule "scoped" subtype=capture negate=
- rx567_cur."!cursor_pos"(rx567_pos)
- $P10 = rx567_cur."scoped"("has")
- unless $P10, rx567_fail
- rx567_cur."!mark_push"(0, -1, 0, $P10)
+ rx591_cur."!cursor_pos"(rx591_pos)
+ $P10 = rx591_cur."scoped"("has")
+ unless $P10, rx591_fail
+ rx591_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("scoped")
- rx567_pos = $P10."pos"()
+ rx591_pos = $P10."pos"()
# rx pass
- rx567_cur."!cursor_pass"(rx567_pos, "scope_declarator:sym<has>")
- rx567_cur."!cursor_debug"("PASS ", "scope_declarator:sym<has>", " at pos=", rx567_pos)
- .return (rx567_cur)
- rx567_fail:
+ rx591_cur."!cursor_pass"(rx591_pos, "scope_declarator:sym<has>")
+ rx591_cur."!cursor_debug"("PASS ", "scope_declarator:sym<has>", " at pos=", rx591_pos)
+ .return (rx591_cur)
+ rx591_fail:
.annotate 'line', 4
- (rx567_rep, rx567_pos, $I10, $P10) = rx567_cur."!mark_fail"(0)
- lt rx567_pos, -1, rx567_done
- eq rx567_pos, -1, rx567_fail
+ (rx591_rep, rx591_pos, $I10, $P10) = rx591_cur."!mark_fail"(0)
+ lt rx591_pos, -1, rx591_done
+ eq rx591_pos, -1, rx591_fail
jump $I10
- rx567_done:
- rx567_cur."!cursor_fail"()
- rx567_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<has>")
- .return (rx567_cur)
+ rx591_done:
+ rx591_cur."!cursor_fail"()
+ rx591_cur."!cursor_debug"("FAIL ", "scope_declarator:sym<has>")
+ .return (rx591_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scope_declarator:sym<has>" :subid("138_1274022894.43745") :method
+.sub "!PREFIX__scope_declarator:sym<has>" :subid("143_1275811487.95429") :method
.annotate 'line', 4
- $P569 = self."!PREFIX__!subrule"("scoped", "has")
- new $P570, "ResizablePMCArray"
- push $P570, $P569
- .return ($P570)
+ $P593 = self."!PREFIX__!subrule"("scoped", "has")
+ new $P594, "ResizablePMCArray"
+ push $P594, $P593
+ .return ($P594)
.end
.namespace ["NQP";"Grammar"]
-.sub "scoped" :subid("139_1274022894.43745") :method :outer("11_1274022894.43745")
- .param pmc param_574
-.annotate 'line', 273
- .lex "$*SCOPE", param_574
+.sub "scoped" :subid("144_1275811487.95429") :method :outer("11_1275811487.95429")
+ .param pmc param_598
+.annotate 'line', 277
+ .lex "$*SCOPE", param_598
.annotate 'line', 4
- .local string rx575_tgt
- .local int rx575_pos
- .local int rx575_off
- .local int rx575_eos
- .local int rx575_rep
- .local pmc rx575_cur
- (rx575_cur, rx575_pos, rx575_tgt) = self."!cursor_start"()
- rx575_cur."!cursor_debug"("START ", "scoped")
- rx575_cur."!cursor_caparray"("typename")
- .lex unicode:"$\x{a2}", rx575_cur
- .local pmc match
- .lex "$/", match
- length rx575_eos, rx575_tgt
- set rx575_off, 0
- lt rx575_pos, 2, rx575_start
- sub rx575_off, rx575_pos, 1
- substr rx575_tgt, rx575_tgt, rx575_off
- rx575_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan578_done
- goto rxscan578_scan
- rxscan578_loop:
- ($P10) = rx575_cur."from"()
- inc $P10
- set rx575_pos, $P10
- ge rx575_pos, rx575_eos, rxscan578_done
- rxscan578_scan:
- set_addr $I10, rxscan578_loop
- rx575_cur."!mark_push"(0, rx575_pos, $I10)
- rxscan578_done:
- alt579_0:
-.annotate 'line', 273
- set_addr $I10, alt579_1
- rx575_cur."!mark_push"(0, rx575_pos, $I10)
-.annotate 'line', 274
- # rx subrule "ws" subtype=method negate=
- rx575_cur."!cursor_pos"(rx575_pos)
- $P10 = rx575_cur."ws"()
- unless $P10, rx575_fail
- rx575_pos = $P10."pos"()
- # rx subrule "declarator" subtype=capture negate=
- rx575_cur."!cursor_pos"(rx575_pos)
- $P10 = rx575_cur."declarator"()
- unless $P10, rx575_fail
- rx575_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("declarator")
- rx575_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx575_cur."!cursor_pos"(rx575_pos)
- $P10 = rx575_cur."ws"()
- unless $P10, rx575_fail
- rx575_pos = $P10."pos"()
- goto alt579_end
- alt579_1:
-.annotate 'line', 275
+ .local string rx599_tgt
+ .local int rx599_pos
+ .local int rx599_off
+ .local int rx599_eos
+ .local int rx599_rep
+ .local pmc rx599_cur
+ (rx599_cur, rx599_pos, rx599_tgt) = self."!cursor_start"()
+ rx599_cur."!cursor_debug"("START ", "scoped")
+ .lex unicode:"$\x{a2}", rx599_cur
+ .local pmc match
+ .lex "$/", match
+ length rx599_eos, rx599_tgt
+ gt rx599_pos, rx599_eos, rx599_done
+ set rx599_off, 0
+ lt rx599_pos, 2, rx599_start
+ sub rx599_off, rx599_pos, 1
+ substr rx599_tgt, rx599_tgt, rx599_off
+ rx599_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan604_done
+ goto rxscan604_scan
+ rxscan604_loop:
+ ($P10) = rx599_cur."from"()
+ inc $P10
+ set rx599_pos, $P10
+ ge rx599_pos, rx599_eos, rxscan604_done
+ rxscan604_scan:
+ set_addr $I10, rxscan604_loop
+ rx599_cur."!mark_push"(0, rx599_pos, $I10)
+ rxscan604_done:
+ alt605_0:
+.annotate 'line', 277
+ set_addr $I10, alt605_1
+ rx599_cur."!mark_push"(0, rx599_pos, $I10)
+.annotate 'line', 278
# rx subrule "ws" subtype=method negate=
- rx575_cur."!cursor_pos"(rx575_pos)
- $P10 = rx575_cur."ws"()
- unless $P10, rx575_fail
- rx575_pos = $P10."pos"()
- # rx rxquantr583 ** 1..*
- set_addr $I584, rxquantr583_done
- rx575_cur."!mark_push"(0, -1, $I584)
- rxquantr583_loop:
- # rx subrule "typename" subtype=capture negate=
- rx575_cur."!cursor_pos"(rx575_pos)
- $P10 = rx575_cur."typename"()
- unless $P10, rx575_fail
- rx575_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("typename")
- rx575_pos = $P10."pos"()
- (rx575_rep) = rx575_cur."!mark_commit"($I584)
- rx575_cur."!mark_push"(rx575_rep, rx575_pos, $I584)
- goto rxquantr583_loop
- rxquantr583_done:
- # rx subrule "ws" subtype=method negate=
- rx575_cur."!cursor_pos"(rx575_pos)
- $P10 = rx575_cur."ws"()
- unless $P10, rx575_fail
- rx575_pos = $P10."pos"()
+ rx599_cur."!cursor_pos"(rx599_pos)
+ $P10 = rx599_cur."ws"()
+ unless $P10, rx599_fail
+ rx599_pos = $P10."pos"()
# rx subrule "declarator" subtype=capture negate=
- rx575_cur."!cursor_pos"(rx575_pos)
- $P10 = rx575_cur."declarator"()
- unless $P10, rx575_fail
- rx575_cur."!mark_push"(0, -1, 0, $P10)
+ rx599_cur."!cursor_pos"(rx599_pos)
+ $P10 = rx599_cur."declarator"()
+ unless $P10, rx599_fail
+ rx599_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("declarator")
- rx575_pos = $P10."pos"()
+ rx599_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx575_cur."!cursor_pos"(rx575_pos)
- $P10 = rx575_cur."ws"()
- unless $P10, rx575_fail
- rx575_pos = $P10."pos"()
- alt579_end:
-.annotate 'line', 273
+ rx599_cur."!cursor_pos"(rx599_pos)
+ $P10 = rx599_cur."ws"()
+ unless $P10, rx599_fail
+ rx599_pos = $P10."pos"()
+ goto alt605_end
+ alt605_1:
+.annotate 'line', 279
+ # rx subrule "ws" subtype=method negate=
+ rx599_cur."!cursor_pos"(rx599_pos)
+ $P10 = rx599_cur."ws"()
+ unless $P10, rx599_fail
+ rx599_pos = $P10."pos"()
+ # rx subrule "multi_declarator" subtype=capture negate=
+ rx599_cur."!cursor_pos"(rx599_pos)
+ $P10 = rx599_cur."multi_declarator"()
+ unless $P10, rx599_fail
+ rx599_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("multi_declarator")
+ rx599_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx599_cur."!cursor_pos"(rx599_pos)
+ $P10 = rx599_cur."ws"()
+ unless $P10, rx599_fail
+ rx599_pos = $P10."pos"()
+ alt605_end:
+.annotate 'line', 277
# rx pass
- rx575_cur."!cursor_pass"(rx575_pos, "scoped")
- rx575_cur."!cursor_debug"("PASS ", "scoped", " at pos=", rx575_pos)
- .return (rx575_cur)
- rx575_fail:
+ rx599_cur."!cursor_pass"(rx599_pos, "scoped")
+ rx599_cur."!cursor_debug"("PASS ", "scoped", " at pos=", rx599_pos)
+ .return (rx599_cur)
+ rx599_fail:
.annotate 'line', 4
- (rx575_rep, rx575_pos, $I10, $P10) = rx575_cur."!mark_fail"(0)
- lt rx575_pos, -1, rx575_done
- eq rx575_pos, -1, rx575_fail
+ (rx599_rep, rx599_pos, $I10, $P10) = rx599_cur."!mark_fail"(0)
+ lt rx599_pos, -1, rx599_done
+ eq rx599_pos, -1, rx599_fail
jump $I10
- rx575_done:
- rx575_cur."!cursor_fail"()
- rx575_cur."!cursor_debug"("FAIL ", "scoped")
- .return (rx575_cur)
+ rx599_done:
+ rx599_cur."!cursor_fail"()
+ rx599_cur."!cursor_debug"("FAIL ", "scoped")
+ .return (rx599_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__scoped" :subid("140_1274022894.43745") :method
+.sub "!PREFIX__scoped" :subid("145_1275811487.95429") :method
.annotate 'line', 4
- new $P577, "ResizablePMCArray"
- push $P577, ""
- push $P577, ""
- .return ($P577)
+ $P601 = self."!PREFIX__!subrule"("ws", "")
+ $P602 = self."!PREFIX__!subrule"("ws", "")
+ new $P603, "ResizablePMCArray"
+ push $P603, $P601
+ push $P603, $P602
+ .return ($P603)
.end
.namespace ["NQP";"Grammar"]
-.sub "typename" :subid("141_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "typename" :subid("146_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx588_tgt
- .local int rx588_pos
- .local int rx588_off
- .local int rx588_eos
- .local int rx588_rep
- .local pmc rx588_cur
- (rx588_cur, rx588_pos, rx588_tgt) = self."!cursor_start"()
- rx588_cur."!cursor_debug"("START ", "typename")
- .lex unicode:"$\x{a2}", rx588_cur
+ .local string rx611_tgt
+ .local int rx611_pos
+ .local int rx611_off
+ .local int rx611_eos
+ .local int rx611_rep
+ .local pmc rx611_cur
+ (rx611_cur, rx611_pos, rx611_tgt) = self."!cursor_start"()
+ rx611_cur."!cursor_debug"("START ", "typename")
+ .lex unicode:"$\x{a2}", rx611_cur
.local pmc match
.lex "$/", match
- length rx588_eos, rx588_tgt
- set rx588_off, 0
- lt rx588_pos, 2, rx588_start
- sub rx588_off, rx588_pos, 1
- substr rx588_tgt, rx588_tgt, rx588_off
- rx588_start:
+ length rx611_eos, rx611_tgt
+ gt rx611_pos, rx611_eos, rx611_done
+ set rx611_off, 0
+ lt rx611_pos, 2, rx611_start
+ sub rx611_off, rx611_pos, 1
+ substr rx611_tgt, rx611_tgt, rx611_off
+ rx611_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan592_done
- goto rxscan592_scan
- rxscan592_loop:
- ($P10) = rx588_cur."from"()
+ ne $I10, -1, rxscan615_done
+ goto rxscan615_scan
+ rxscan615_loop:
+ ($P10) = rx611_cur."from"()
inc $P10
- set rx588_pos, $P10
- ge rx588_pos, rx588_eos, rxscan592_done
- rxscan592_scan:
- set_addr $I10, rxscan592_loop
- rx588_cur."!mark_push"(0, rx588_pos, $I10)
- rxscan592_done:
-.annotate 'line', 278
+ set rx611_pos, $P10
+ ge rx611_pos, rx611_eos, rxscan615_done
+ rxscan615_scan:
+ set_addr $I10, rxscan615_loop
+ rx611_cur."!mark_push"(0, rx611_pos, $I10)
+ rxscan615_done:
+.annotate 'line', 282
# rx subrule "name" subtype=capture negate=
- rx588_cur."!cursor_pos"(rx588_pos)
- $P10 = rx588_cur."name"()
- unless $P10, rx588_fail
- rx588_cur."!mark_push"(0, -1, 0, $P10)
+ rx611_cur."!cursor_pos"(rx611_pos)
+ $P10 = rx611_cur."name"()
+ unless $P10, rx611_fail
+ rx611_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- rx588_pos = $P10."pos"()
+ rx611_pos = $P10."pos"()
# rx pass
- rx588_cur."!cursor_pass"(rx588_pos, "typename")
- rx588_cur."!cursor_debug"("PASS ", "typename", " at pos=", rx588_pos)
- .return (rx588_cur)
- rx588_fail:
+ rx611_cur."!cursor_pass"(rx611_pos, "typename")
+ rx611_cur."!cursor_debug"("PASS ", "typename", " at pos=", rx611_pos)
+ .return (rx611_cur)
+ rx611_fail:
.annotate 'line', 4
- (rx588_rep, rx588_pos, $I10, $P10) = rx588_cur."!mark_fail"(0)
- lt rx588_pos, -1, rx588_done
- eq rx588_pos, -1, rx588_fail
+ (rx611_rep, rx611_pos, $I10, $P10) = rx611_cur."!mark_fail"(0)
+ lt rx611_pos, -1, rx611_done
+ eq rx611_pos, -1, rx611_fail
jump $I10
- rx588_done:
- rx588_cur."!cursor_fail"()
- rx588_cur."!cursor_debug"("FAIL ", "typename")
- .return (rx588_cur)
+ rx611_done:
+ rx611_cur."!cursor_fail"()
+ rx611_cur."!cursor_debug"("FAIL ", "typename")
+ .return (rx611_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__typename" :subid("142_1274022894.43745") :method
+.sub "!PREFIX__typename" :subid("147_1275811487.95429") :method
.annotate 'line', 4
- $P590 = self."!PREFIX__!subrule"("name", "")
- new $P591, "ResizablePMCArray"
- push $P591, $P590
- .return ($P591)
+ $P613 = self."!PREFIX__!subrule"("name", "")
+ new $P614, "ResizablePMCArray"
+ push $P614, $P613
+ .return ($P614)
.end
.namespace ["NQP";"Grammar"]
-.sub "declarator" :subid("143_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "declarator" :subid("148_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx594_tgt
- .local int rx594_pos
- .local int rx594_off
- .local int rx594_eos
- .local int rx594_rep
- .local pmc rx594_cur
- (rx594_cur, rx594_pos, rx594_tgt) = self."!cursor_start"()
- rx594_cur."!cursor_debug"("START ", "declarator")
- .lex unicode:"$\x{a2}", rx594_cur
+ .local string rx617_tgt
+ .local int rx617_pos
+ .local int rx617_off
+ .local int rx617_eos
+ .local int rx617_rep
+ .local pmc rx617_cur
+ (rx617_cur, rx617_pos, rx617_tgt) = self."!cursor_start"()
+ rx617_cur."!cursor_debug"("START ", "declarator")
+ .lex unicode:"$\x{a2}", rx617_cur
.local pmc match
.lex "$/", match
- length rx594_eos, rx594_tgt
- set rx594_off, 0
- lt rx594_pos, 2, rx594_start
- sub rx594_off, rx594_pos, 1
- substr rx594_tgt, rx594_tgt, rx594_off
- rx594_start:
+ length rx617_eos, rx617_tgt
+ gt rx617_pos, rx617_eos, rx617_done
+ set rx617_off, 0
+ lt rx617_pos, 2, rx617_start
+ sub rx617_off, rx617_pos, 1
+ substr rx617_tgt, rx617_tgt, rx617_off
+ rx617_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan599_done
- goto rxscan599_scan
- rxscan599_loop:
- ($P10) = rx594_cur."from"()
+ ne $I10, -1, rxscan622_done
+ goto rxscan622_scan
+ rxscan622_loop:
+ ($P10) = rx617_cur."from"()
inc $P10
- set rx594_pos, $P10
- ge rx594_pos, rx594_eos, rxscan599_done
- rxscan599_scan:
- set_addr $I10, rxscan599_loop
- rx594_cur."!mark_push"(0, rx594_pos, $I10)
- rxscan599_done:
- alt600_0:
-.annotate 'line', 280
- set_addr $I10, alt600_1
- rx594_cur."!mark_push"(0, rx594_pos, $I10)
-.annotate 'line', 281
+ set rx617_pos, $P10
+ ge rx617_pos, rx617_eos, rxscan622_done
+ rxscan622_scan:
+ set_addr $I10, rxscan622_loop
+ rx617_cur."!mark_push"(0, rx617_pos, $I10)
+ rxscan622_done:
+ alt623_0:
+.annotate 'line', 284
+ set_addr $I10, alt623_1
+ rx617_cur."!mark_push"(0, rx617_pos, $I10)
+.annotate 'line', 285
# rx subrule "variable_declarator" subtype=capture negate=
- rx594_cur."!cursor_pos"(rx594_pos)
- $P10 = rx594_cur."variable_declarator"()
- unless $P10, rx594_fail
- rx594_cur."!mark_push"(0, -1, 0, $P10)
+ rx617_cur."!cursor_pos"(rx617_pos)
+ $P10 = rx617_cur."variable_declarator"()
+ unless $P10, rx617_fail
+ rx617_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("variable_declarator")
- rx594_pos = $P10."pos"()
- goto alt600_end
- alt600_1:
-.annotate 'line', 282
+ rx617_pos = $P10."pos"()
+ goto alt623_end
+ alt623_1:
+.annotate 'line', 286
# rx subrule "routine_declarator" subtype=capture negate=
- rx594_cur."!cursor_pos"(rx594_pos)
- $P10 = rx594_cur."routine_declarator"()
- unless $P10, rx594_fail
- rx594_cur."!mark_push"(0, -1, 0, $P10)
+ rx617_cur."!cursor_pos"(rx617_pos)
+ $P10 = rx617_cur."routine_declarator"()
+ unless $P10, rx617_fail
+ rx617_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("routine_declarator")
- rx594_pos = $P10."pos"()
- alt600_end:
-.annotate 'line', 280
+ rx617_pos = $P10."pos"()
+ alt623_end:
+.annotate 'line', 284
# rx pass
- rx594_cur."!cursor_pass"(rx594_pos, "declarator")
- rx594_cur."!cursor_debug"("PASS ", "declarator", " at pos=", rx594_pos)
- .return (rx594_cur)
- rx594_fail:
+ rx617_cur."!cursor_pass"(rx617_pos, "declarator")
+ rx617_cur."!cursor_debug"("PASS ", "declarator", " at pos=", rx617_pos)
+ .return (rx617_cur)
+ rx617_fail:
.annotate 'line', 4
- (rx594_rep, rx594_pos, $I10, $P10) = rx594_cur."!mark_fail"(0)
- lt rx594_pos, -1, rx594_done
- eq rx594_pos, -1, rx594_fail
+ (rx617_rep, rx617_pos, $I10, $P10) = rx617_cur."!mark_fail"(0)
+ lt rx617_pos, -1, rx617_done
+ eq rx617_pos, -1, rx617_fail
jump $I10
- rx594_done:
- rx594_cur."!cursor_fail"()
- rx594_cur."!cursor_debug"("FAIL ", "declarator")
- .return (rx594_cur)
+ rx617_done:
+ rx617_cur."!cursor_fail"()
+ rx617_cur."!cursor_debug"("FAIL ", "declarator")
+ .return (rx617_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__declarator" :subid("144_1274022894.43745") :method
+.sub "!PREFIX__declarator" :subid("149_1275811487.95429") :method
.annotate 'line', 4
- $P596 = self."!PREFIX__!subrule"("routine_declarator", "")
- $P597 = self."!PREFIX__!subrule"("variable_declarator", "")
- new $P598, "ResizablePMCArray"
- push $P598, $P596
- push $P598, $P597
- .return ($P598)
+ $P619 = self."!PREFIX__!subrule"("routine_declarator", "")
+ $P620 = self."!PREFIX__!subrule"("variable_declarator", "")
+ new $P621, "ResizablePMCArray"
+ push $P621, $P619
+ push $P621, $P620
+ .return ($P621)
.end
.namespace ["NQP";"Grammar"]
-.sub "variable_declarator" :subid("145_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "variable_declarator" :subid("150_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx602_tgt
- .local int rx602_pos
- .local int rx602_off
- .local int rx602_eos
- .local int rx602_rep
- .local pmc rx602_cur
- (rx602_cur, rx602_pos, rx602_tgt) = self."!cursor_start"()
- rx602_cur."!cursor_debug"("START ", "variable_declarator")
- .lex unicode:"$\x{a2}", rx602_cur
+ .local string rx625_tgt
+ .local int rx625_pos
+ .local int rx625_off
+ .local int rx625_eos
+ .local int rx625_rep
+ .local pmc rx625_cur
+ (rx625_cur, rx625_pos, rx625_tgt) = self."!cursor_start"()
+ rx625_cur."!cursor_debug"("START ", "variable_declarator")
+ .lex unicode:"$\x{a2}", rx625_cur
.local pmc match
.lex "$/", match
- length rx602_eos, rx602_tgt
- set rx602_off, 0
- lt rx602_pos, 2, rx602_start
- sub rx602_off, rx602_pos, 1
- substr rx602_tgt, rx602_tgt, rx602_off
- rx602_start:
+ length rx625_eos, rx625_tgt
+ gt rx625_pos, rx625_eos, rx625_done
+ set rx625_off, 0
+ lt rx625_pos, 2, rx625_start
+ sub rx625_off, rx625_pos, 1
+ substr rx625_tgt, rx625_tgt, rx625_off
+ rx625_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan606_done
- goto rxscan606_scan
- rxscan606_loop:
- ($P10) = rx602_cur."from"()
+ ne $I10, -1, rxscan629_done
+ goto rxscan629_scan
+ rxscan629_loop:
+ ($P10) = rx625_cur."from"()
inc $P10
- set rx602_pos, $P10
- ge rx602_pos, rx602_eos, rxscan606_done
- rxscan606_scan:
- set_addr $I10, rxscan606_loop
- rx602_cur."!mark_push"(0, rx602_pos, $I10)
- rxscan606_done:
-.annotate 'line', 285
+ set rx625_pos, $P10
+ ge rx625_pos, rx625_eos, rxscan629_done
+ rxscan629_scan:
+ set_addr $I10, rxscan629_loop
+ rx625_cur."!mark_push"(0, rx625_pos, $I10)
+ rxscan629_done:
+.annotate 'line', 289
# rx subrule "variable" subtype=capture negate=
- rx602_cur."!cursor_pos"(rx602_pos)
- $P10 = rx602_cur."variable"()
- unless $P10, rx602_fail
- rx602_cur."!mark_push"(0, -1, 0, $P10)
+ rx625_cur."!cursor_pos"(rx625_pos)
+ $P10 = rx625_cur."variable"()
+ unless $P10, rx625_fail
+ rx625_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("variable")
- rx602_pos = $P10."pos"()
+ rx625_pos = $P10."pos"()
# rx pass
- rx602_cur."!cursor_pass"(rx602_pos, "variable_declarator")
- rx602_cur."!cursor_debug"("PASS ", "variable_declarator", " at pos=", rx602_pos)
- .return (rx602_cur)
- rx602_fail:
+ rx625_cur."!cursor_pass"(rx625_pos, "variable_declarator")
+ rx625_cur."!cursor_debug"("PASS ", "variable_declarator", " at pos=", rx625_pos)
+ .return (rx625_cur)
+ rx625_fail:
.annotate 'line', 4
- (rx602_rep, rx602_pos, $I10, $P10) = rx602_cur."!mark_fail"(0)
- lt rx602_pos, -1, rx602_done
- eq rx602_pos, -1, rx602_fail
+ (rx625_rep, rx625_pos, $I10, $P10) = rx625_cur."!mark_fail"(0)
+ lt rx625_pos, -1, rx625_done
+ eq rx625_pos, -1, rx625_fail
jump $I10
- rx602_done:
- rx602_cur."!cursor_fail"()
- rx602_cur."!cursor_debug"("FAIL ", "variable_declarator")
- .return (rx602_cur)
+ rx625_done:
+ rx625_cur."!cursor_fail"()
+ rx625_cur."!cursor_debug"("FAIL ", "variable_declarator")
+ .return (rx625_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__variable_declarator" :subid("146_1274022894.43745") :method
+.sub "!PREFIX__variable_declarator" :subid("151_1275811487.95429") :method
.annotate 'line', 4
- $P604 = self."!PREFIX__!subrule"("variable", "")
- new $P605, "ResizablePMCArray"
- push $P605, $P604
- .return ($P605)
+ $P627 = self."!PREFIX__!subrule"("variable", "")
+ new $P628, "ResizablePMCArray"
+ push $P628, $P627
+ .return ($P628)
.end
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator" :subid("147_1274022894.43745") :method
-.annotate 'line', 287
- $P608 = self."!protoregex"("routine_declarator")
- .return ($P608)
+.sub "routine_declarator" :subid("152_1275811487.95429") :method
+.annotate 'line', 291
+ $P631 = self."!protoregex"("routine_declarator")
+ .return ($P631)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator" :subid("148_1274022894.43745") :method
-.annotate 'line', 287
- $P610 = self."!PREFIX__!protoregex"("routine_declarator")
- .return ($P610)
+.sub "!PREFIX__routine_declarator" :subid("153_1275811487.95429") :method
+.annotate 'line', 291
+ $P633 = self."!PREFIX__!protoregex"("routine_declarator")
+ .return ($P633)
.end
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<sub>" :subid("149_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "routine_declarator:sym<sub>" :subid("154_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx612_tgt
- .local int rx612_pos
- .local int rx612_off
- .local int rx612_eos
- .local int rx612_rep
- .local pmc rx612_cur
- (rx612_cur, rx612_pos, rx612_tgt) = self."!cursor_start"()
- rx612_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
- .lex unicode:"$\x{a2}", rx612_cur
- .local pmc match
- .lex "$/", match
- length rx612_eos, rx612_tgt
- set rx612_off, 0
- lt rx612_pos, 2, rx612_start
- sub rx612_off, rx612_pos, 1
- substr rx612_tgt, rx612_tgt, rx612_off
- rx612_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan616_done
- goto rxscan616_scan
- rxscan616_loop:
- ($P10) = rx612_cur."from"()
- inc $P10
- set rx612_pos, $P10
- ge rx612_pos, rx612_eos, rxscan616_done
- rxscan616_scan:
- set_addr $I10, rxscan616_loop
- rx612_cur."!mark_push"(0, rx612_pos, $I10)
- rxscan616_done:
-.annotate 'line', 288
+ .local string rx635_tgt
+ .local int rx635_pos
+ .local int rx635_off
+ .local int rx635_eos
+ .local int rx635_rep
+ .local pmc rx635_cur
+ (rx635_cur, rx635_pos, rx635_tgt) = self."!cursor_start"()
+ rx635_cur."!cursor_debug"("START ", "routine_declarator:sym<sub>")
+ .lex unicode:"$\x{a2}", rx635_cur
+ .local pmc match
+ .lex "$/", match
+ length rx635_eos, rx635_tgt
+ gt rx635_pos, rx635_eos, rx635_done
+ set rx635_off, 0
+ lt rx635_pos, 2, rx635_start
+ sub rx635_off, rx635_pos, 1
+ substr rx635_tgt, rx635_tgt, rx635_off
+ rx635_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan639_done
+ goto rxscan639_scan
+ rxscan639_loop:
+ ($P10) = rx635_cur."from"()
+ inc $P10
+ set rx635_pos, $P10
+ ge rx635_pos, rx635_eos, rxscan639_done
+ rxscan639_scan:
+ set_addr $I10, rxscan639_loop
+ rx635_cur."!mark_push"(0, rx635_pos, $I10)
+ rxscan639_done:
+.annotate 'line', 292
# rx subcapture "sym"
- set_addr $I10, rxcap_617_fail
- rx612_cur."!mark_push"(0, rx612_pos, $I10)
+ set_addr $I10, rxcap_640_fail
+ rx635_cur."!mark_push"(0, rx635_pos, $I10)
# rx literal "sub"
- add $I11, rx612_pos, 3
- gt $I11, rx612_eos, rx612_fail
- sub $I11, rx612_pos, rx612_off
- substr $S10, rx612_tgt, $I11, 3
- ne $S10, "sub", rx612_fail
- add rx612_pos, 3
- set_addr $I10, rxcap_617_fail
- ($I12, $I11) = rx612_cur."!mark_peek"($I10)
- rx612_cur."!cursor_pos"($I11)
- ($P10) = rx612_cur."!cursor_start"()
- $P10."!cursor_pass"(rx612_pos, "")
- rx612_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx635_pos, 3
+ gt $I11, rx635_eos, rx635_fail
+ sub $I11, rx635_pos, rx635_off
+ substr $S10, rx635_tgt, $I11, 3
+ ne $S10, "sub", rx635_fail
+ add rx635_pos, 3
+ set_addr $I10, rxcap_640_fail
+ ($I12, $I11) = rx635_cur."!mark_peek"($I10)
+ rx635_cur."!cursor_pos"($I11)
+ ($P10) = rx635_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx635_pos, "")
+ rx635_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_617_done
- rxcap_617_fail:
- goto rx612_fail
- rxcap_617_done:
+ goto rxcap_640_done
+ rxcap_640_fail:
+ goto rx635_fail
+ rxcap_640_done:
# rx subrule "routine_def" subtype=capture negate=
- rx612_cur."!cursor_pos"(rx612_pos)
- $P10 = rx612_cur."routine_def"()
- unless $P10, rx612_fail
- rx612_cur."!mark_push"(0, -1, 0, $P10)
+ rx635_cur."!cursor_pos"(rx635_pos)
+ $P10 = rx635_cur."routine_def"()
+ unless $P10, rx635_fail
+ rx635_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("routine_def")
- rx612_pos = $P10."pos"()
+ rx635_pos = $P10."pos"()
# rx pass
- rx612_cur."!cursor_pass"(rx612_pos, "routine_declarator:sym<sub>")
- rx612_cur."!cursor_debug"("PASS ", "routine_declarator:sym<sub>", " at pos=", rx612_pos)
- .return (rx612_cur)
- rx612_fail:
+ rx635_cur."!cursor_pass"(rx635_pos, "routine_declarator:sym<sub>")
+ rx635_cur."!cursor_debug"("PASS ", "routine_declarator:sym<sub>", " at pos=", rx635_pos)
+ .return (rx635_cur)
+ rx635_fail:
.annotate 'line', 4
- (rx612_rep, rx612_pos, $I10, $P10) = rx612_cur."!mark_fail"(0)
- lt rx612_pos, -1, rx612_done
- eq rx612_pos, -1, rx612_fail
+ (rx635_rep, rx635_pos, $I10, $P10) = rx635_cur."!mark_fail"(0)
+ lt rx635_pos, -1, rx635_done
+ eq rx635_pos, -1, rx635_fail
jump $I10
- rx612_done:
- rx612_cur."!cursor_fail"()
- rx612_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<sub>")
- .return (rx612_cur)
+ rx635_done:
+ rx635_cur."!cursor_fail"()
+ rx635_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<sub>")
+ .return (rx635_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<sub>" :subid("150_1274022894.43745") :method
+.sub "!PREFIX__routine_declarator:sym<sub>" :subid("155_1275811487.95429") :method
.annotate 'line', 4
- $P614 = self."!PREFIX__!subrule"("routine_def", "sub")
- new $P615, "ResizablePMCArray"
- push $P615, $P614
- .return ($P615)
+ $P637 = self."!PREFIX__!subrule"("routine_def", "sub")
+ new $P638, "ResizablePMCArray"
+ push $P638, $P637
+ .return ($P638)
.end
.namespace ["NQP";"Grammar"]
-.sub "routine_declarator:sym<method>" :subid("151_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "routine_declarator:sym<method>" :subid("156_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx619_tgt
- .local int rx619_pos
- .local int rx619_off
- .local int rx619_eos
- .local int rx619_rep
- .local pmc rx619_cur
- (rx619_cur, rx619_pos, rx619_tgt) = self."!cursor_start"()
- rx619_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
- .lex unicode:"$\x{a2}", rx619_cur
+ .local string rx642_tgt
+ .local int rx642_pos
+ .local int rx642_off
+ .local int rx642_eos
+ .local int rx642_rep
+ .local pmc rx642_cur
+ (rx642_cur, rx642_pos, rx642_tgt) = self."!cursor_start"()
+ rx642_cur."!cursor_debug"("START ", "routine_declarator:sym<method>")
+ .lex unicode:"$\x{a2}", rx642_cur
.local pmc match
.lex "$/", match
- length rx619_eos, rx619_tgt
- set rx619_off, 0
- lt rx619_pos, 2, rx619_start
- sub rx619_off, rx619_pos, 1
- substr rx619_tgt, rx619_tgt, rx619_off
- rx619_start:
+ length rx642_eos, rx642_tgt
+ gt rx642_pos, rx642_eos, rx642_done
+ set rx642_off, 0
+ lt rx642_pos, 2, rx642_start
+ sub rx642_off, rx642_pos, 1
+ substr rx642_tgt, rx642_tgt, rx642_off
+ rx642_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan623_done
- goto rxscan623_scan
- rxscan623_loop:
- ($P10) = rx619_cur."from"()
+ ne $I10, -1, rxscan646_done
+ goto rxscan646_scan
+ rxscan646_loop:
+ ($P10) = rx642_cur."from"()
inc $P10
- set rx619_pos, $P10
- ge rx619_pos, rx619_eos, rxscan623_done
- rxscan623_scan:
- set_addr $I10, rxscan623_loop
- rx619_cur."!mark_push"(0, rx619_pos, $I10)
- rxscan623_done:
-.annotate 'line', 289
+ set rx642_pos, $P10
+ ge rx642_pos, rx642_eos, rxscan646_done
+ rxscan646_scan:
+ set_addr $I10, rxscan646_loop
+ rx642_cur."!mark_push"(0, rx642_pos, $I10)
+ rxscan646_done:
+.annotate 'line', 293
# rx subcapture "sym"
- set_addr $I10, rxcap_624_fail
- rx619_cur."!mark_push"(0, rx619_pos, $I10)
+ set_addr $I10, rxcap_647_fail
+ rx642_cur."!mark_push"(0, rx642_pos, $I10)
# rx literal "method"
- add $I11, rx619_pos, 6
- gt $I11, rx619_eos, rx619_fail
- sub $I11, rx619_pos, rx619_off
- substr $S10, rx619_tgt, $I11, 6
- ne $S10, "method", rx619_fail
- add rx619_pos, 6
- set_addr $I10, rxcap_624_fail
- ($I12, $I11) = rx619_cur."!mark_peek"($I10)
- rx619_cur."!cursor_pos"($I11)
- ($P10) = rx619_cur."!cursor_start"()
- $P10."!cursor_pass"(rx619_pos, "")
- rx619_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx642_pos, 6
+ gt $I11, rx642_eos, rx642_fail
+ sub $I11, rx642_pos, rx642_off
+ substr $S10, rx642_tgt, $I11, 6
+ ne $S10, "method", rx642_fail
+ add rx642_pos, 6
+ set_addr $I10, rxcap_647_fail
+ ($I12, $I11) = rx642_cur."!mark_peek"($I10)
+ rx642_cur."!cursor_pos"($I11)
+ ($P10) = rx642_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx642_pos, "")
+ rx642_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_624_done
- rxcap_624_fail:
- goto rx619_fail
- rxcap_624_done:
+ goto rxcap_647_done
+ rxcap_647_fail:
+ goto rx642_fail
+ rxcap_647_done:
# rx subrule "method_def" subtype=capture negate=
- rx619_cur."!cursor_pos"(rx619_pos)
- $P10 = rx619_cur."method_def"()
- unless $P10, rx619_fail
- rx619_cur."!mark_push"(0, -1, 0, $P10)
+ rx642_cur."!cursor_pos"(rx642_pos)
+ $P10 = rx642_cur."method_def"()
+ unless $P10, rx642_fail
+ rx642_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("method_def")
- rx619_pos = $P10."pos"()
+ rx642_pos = $P10."pos"()
# rx pass
- rx619_cur."!cursor_pass"(rx619_pos, "routine_declarator:sym<method>")
- rx619_cur."!cursor_debug"("PASS ", "routine_declarator:sym<method>", " at pos=", rx619_pos)
- .return (rx619_cur)
- rx619_fail:
+ rx642_cur."!cursor_pass"(rx642_pos, "routine_declarator:sym<method>")
+ rx642_cur."!cursor_debug"("PASS ", "routine_declarator:sym<method>", " at pos=", rx642_pos)
+ .return (rx642_cur)
+ rx642_fail:
.annotate 'line', 4
- (rx619_rep, rx619_pos, $I10, $P10) = rx619_cur."!mark_fail"(0)
- lt rx619_pos, -1, rx619_done
- eq rx619_pos, -1, rx619_fail
+ (rx642_rep, rx642_pos, $I10, $P10) = rx642_cur."!mark_fail"(0)
+ lt rx642_pos, -1, rx642_done
+ eq rx642_pos, -1, rx642_fail
jump $I10
- rx619_done:
- rx619_cur."!cursor_fail"()
- rx619_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<method>")
- .return (rx619_cur)
+ rx642_done:
+ rx642_cur."!cursor_fail"()
+ rx642_cur."!cursor_debug"("FAIL ", "routine_declarator:sym<method>")
+ .return (rx642_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_declarator:sym<method>" :subid("152_1274022894.43745") :method
+.sub "!PREFIX__routine_declarator:sym<method>" :subid("157_1275811487.95429") :method
.annotate 'line', 4
- $P621 = self."!PREFIX__!subrule"("method_def", "method")
- new $P622, "ResizablePMCArray"
- push $P622, $P621
- .return ($P622)
+ $P644 = self."!PREFIX__!subrule"("method_def", "method")
+ new $P645, "ResizablePMCArray"
+ push $P645, $P644
+ .return ($P645)
.end
.namespace ["NQP";"Grammar"]
-.sub "routine_def" :subid("153_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "routine_def" :subid("158_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx626_tgt
- .local int rx626_pos
- .local int rx626_off
- .local int rx626_eos
- .local int rx626_rep
- .local pmc rx626_cur
- (rx626_cur, rx626_pos, rx626_tgt) = self."!cursor_start"()
- rx626_cur."!cursor_debug"("START ", "routine_def")
- rx626_cur."!cursor_caparray"("sigil", "deflongname")
- .lex unicode:"$\x{a2}", rx626_cur
+ .local string rx649_tgt
+ .local int rx649_pos
+ .local int rx649_off
+ .local int rx649_eos
+ .local int rx649_rep
+ .local pmc rx649_cur
+ (rx649_cur, rx649_pos, rx649_tgt) = self."!cursor_start"()
+ rx649_cur."!cursor_debug"("START ", "routine_def")
+ rx649_cur."!cursor_caparray"("deflongname", "sigil")
+ .lex unicode:"$\x{a2}", rx649_cur
.local pmc match
.lex "$/", match
- length rx626_eos, rx626_tgt
- set rx626_off, 0
- lt rx626_pos, 2, rx626_start
- sub rx626_off, rx626_pos, 1
- substr rx626_tgt, rx626_tgt, rx626_off
- rx626_start:
+ length rx649_eos, rx649_tgt
+ gt rx649_pos, rx649_eos, rx649_done
+ set rx649_off, 0
+ lt rx649_pos, 2, rx649_start
+ sub rx649_off, rx649_pos, 1
+ substr rx649_tgt, rx649_tgt, rx649_off
+ rx649_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan629_done
- goto rxscan629_scan
- rxscan629_loop:
- ($P10) = rx626_cur."from"()
+ ne $I10, -1, rxscan653_done
+ goto rxscan653_scan
+ rxscan653_loop:
+ ($P10) = rx649_cur."from"()
inc $P10
- set rx626_pos, $P10
- ge rx626_pos, rx626_eos, rxscan629_done
- rxscan629_scan:
- set_addr $I10, rxscan629_loop
- rx626_cur."!mark_push"(0, rx626_pos, $I10)
- rxscan629_done:
-.annotate 'line', 291
+ set rx649_pos, $P10
+ ge rx649_pos, rx649_eos, rxscan653_done
+ rxscan653_scan:
+ set_addr $I10, rxscan653_loop
+ rx649_cur."!mark_push"(0, rx649_pos, $I10)
+ rxscan653_done:
+.annotate 'line', 295
# rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
-.annotate 'line', 292
- # rx rxquantr631 ** 0..1
- set_addr $I637, rxquantr631_done
- rx626_cur."!mark_push"(0, rx626_pos, $I637)
- rxquantr631_loop:
- # rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
+.annotate 'line', 296
+ # rx rxquantr655 ** 0..1
+ set_addr $I661, rxquantr655_done
+ rx649_cur."!mark_push"(0, rx649_pos, $I661)
+ rxquantr655_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
# rx subcapture "sigil"
- set_addr $I10, rxcap_635_fail
- rx626_cur."!mark_push"(0, rx626_pos, $I10)
- # rx rxquantr633 ** 0..1
- set_addr $I634, rxquantr633_done
- rx626_cur."!mark_push"(0, rx626_pos, $I634)
- rxquantr633_loop:
+ set_addr $I10, rxcap_659_fail
+ rx649_cur."!mark_push"(0, rx649_pos, $I10)
+ # rx rxquantr657 ** 0..1
+ set_addr $I658, rxquantr657_done
+ rx649_cur."!mark_push"(0, rx649_pos, $I658)
+ rxquantr657_loop:
# rx literal "&"
- add $I11, rx626_pos, 1
- gt $I11, rx626_eos, rx626_fail
- sub $I11, rx626_pos, rx626_off
- substr $S10, rx626_tgt, $I11, 1
- ne $S10, "&", rx626_fail
- add rx626_pos, 1
- (rx626_rep) = rx626_cur."!mark_commit"($I634)
- rxquantr633_done:
- set_addr $I10, rxcap_635_fail
- ($I12, $I11) = rx626_cur."!mark_peek"($I10)
- rx626_cur."!cursor_pos"($I11)
- ($P10) = rx626_cur."!cursor_start"()
- $P10."!cursor_pass"(rx626_pos, "")
- rx626_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx649_pos, 1
+ gt $I11, rx649_eos, rx649_fail
+ sub $I11, rx649_pos, rx649_off
+ substr $S10, rx649_tgt, $I11, 1
+ ne $S10, "&", rx649_fail
+ add rx649_pos, 1
+ (rx649_rep) = rx649_cur."!mark_commit"($I658)
+ rxquantr657_done:
+ set_addr $I10, rxcap_659_fail
+ ($I12, $I11) = rx649_cur."!mark_peek"($I10)
+ rx649_cur."!cursor_pos"($I11)
+ ($P10) = rx649_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx649_pos, "")
+ rx649_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sigil")
- goto rxcap_635_done
- rxcap_635_fail:
- goto rx626_fail
- rxcap_635_done:
+ goto rxcap_659_done
+ rxcap_659_fail:
+ goto rx649_fail
+ rxcap_659_done:
# rx subrule "deflongname" subtype=capture negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."deflongname"()
- unless $P10, rx626_fail
- rx626_cur."!mark_push"(0, -1, 0, $P10)
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."deflongname"()
+ unless $P10, rx649_fail
+ rx649_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("deflongname")
- rx626_pos = $P10."pos"()
+ rx649_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
- (rx626_rep) = rx626_cur."!mark_commit"($I637)
- rxquantr631_done:
- # rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
-.annotate 'line', 293
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
+ (rx649_rep) = rx649_cur."!mark_commit"($I661)
+ rxquantr655_done:
+ # rx subrule "ws" subtype=method negate=
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
+.annotate 'line', 297
# rx subrule "newpad" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."newpad"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
- alt640_0:
-.annotate 'line', 294
- set_addr $I10, alt640_1
- rx626_cur."!mark_push"(0, rx626_pos, $I10)
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."newpad"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
+ alt664_0:
+.annotate 'line', 298
+ set_addr $I10, alt664_1
+ rx649_cur."!mark_push"(0, rx649_pos, $I10)
# rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
# rx literal "("
- add $I11, rx626_pos, 1
- gt $I11, rx626_eos, rx626_fail
- sub $I11, rx626_pos, rx626_off
- substr $S10, rx626_tgt, $I11, 1
- ne $S10, "(", rx626_fail
- add rx626_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
+ add $I11, rx649_pos, 1
+ gt $I11, rx649_eos, rx649_fail
+ sub $I11, rx649_pos, rx649_off
+ substr $S10, rx649_tgt, $I11, 1
+ ne $S10, "(", rx649_fail
+ add rx649_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
# rx subrule "signature" subtype=capture negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."signature"()
- unless $P10, rx626_fail
- rx626_cur."!mark_push"(0, -1, 0, $P10)
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."signature"()
+ unless $P10, rx649_fail
+ rx649_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("signature")
- rx626_pos = $P10."pos"()
+ rx649_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx626_pos, 1
- gt $I11, rx626_eos, rx626_fail
- sub $I11, rx626_pos, rx626_off
- substr $S10, rx626_tgt, $I11, 1
- ne $S10, ")", rx626_fail
- add rx626_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
- goto alt640_end
- alt640_1:
-.annotate 'line', 295
+ add $I11, rx649_pos, 1
+ gt $I11, rx649_eos, rx649_fail
+ sub $I11, rx649_pos, rx649_off
+ substr $S10, rx649_tgt, $I11, 1
+ ne $S10, ")", rx649_fail
+ add rx649_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
+ goto alt664_end
+ alt664_1:
+.annotate 'line', 299
# rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
# rx subrule "panic" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."panic"("Routine declaration requires a signature")
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
- alt640_end:
- # rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
-.annotate 'line', 296
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."panic"("Routine declaration requires a signature")
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
+ alt664_end:
+ # rx subrule "ws" subtype=method negate=
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
+.annotate 'line', 300
# rx subrule "blockoid" subtype=capture negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."blockoid"()
- unless $P10, rx626_fail
- rx626_cur."!mark_push"(0, -1, 0, $P10)
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."blockoid"()
+ unless $P10, rx649_fail
+ rx649_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx626_pos = $P10."pos"()
+ rx649_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx626_cur."!cursor_pos"(rx626_pos)
- $P10 = rx626_cur."ws"()
- unless $P10, rx626_fail
- rx626_pos = $P10."pos"()
-.annotate 'line', 291
+ rx649_cur."!cursor_pos"(rx649_pos)
+ $P10 = rx649_cur."ws"()
+ unless $P10, rx649_fail
+ rx649_pos = $P10."pos"()
+.annotate 'line', 295
# rx pass
- rx626_cur."!cursor_pass"(rx626_pos, "routine_def")
- rx626_cur."!cursor_debug"("PASS ", "routine_def", " at pos=", rx626_pos)
- .return (rx626_cur)
- rx626_fail:
+ rx649_cur."!cursor_pass"(rx649_pos, "routine_def")
+ rx649_cur."!cursor_debug"("PASS ", "routine_def", " at pos=", rx649_pos)
+ .return (rx649_cur)
+ rx649_fail:
.annotate 'line', 4
- (rx626_rep, rx626_pos, $I10, $P10) = rx626_cur."!mark_fail"(0)
- lt rx626_pos, -1, rx626_done
- eq rx626_pos, -1, rx626_fail
+ (rx649_rep, rx649_pos, $I10, $P10) = rx649_cur."!mark_fail"(0)
+ lt rx649_pos, -1, rx649_done
+ eq rx649_pos, -1, rx649_fail
jump $I10
- rx626_done:
- rx626_cur."!cursor_fail"()
- rx626_cur."!cursor_debug"("FAIL ", "routine_def")
- .return (rx626_cur)
+ rx649_done:
+ rx649_cur."!cursor_fail"()
+ rx649_cur."!cursor_debug"("FAIL ", "routine_def")
+ .return (rx649_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__routine_def" :subid("154_1274022894.43745") :method
+.sub "!PREFIX__routine_def" :subid("159_1275811487.95429") :method
.annotate 'line', 4
- new $P628, "ResizablePMCArray"
- push $P628, ""
- .return ($P628)
+ $P651 = self."!PREFIX__!subrule"("ws", "")
+ new $P652, "ResizablePMCArray"
+ push $P652, $P651
+ .return ($P652)
.end
.namespace ["NQP";"Grammar"]
-.sub "method_def" :subid("155_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "method_def" :subid("160_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx650_tgt
- .local int rx650_pos
- .local int rx650_off
- .local int rx650_eos
- .local int rx650_rep
- .local pmc rx650_cur
- (rx650_cur, rx650_pos, rx650_tgt) = self."!cursor_start"()
- rx650_cur."!cursor_debug"("START ", "method_def")
- rx650_cur."!cursor_caparray"("deflongname")
- .lex unicode:"$\x{a2}", rx650_cur
- .local pmc match
- .lex "$/", match
- length rx650_eos, rx650_tgt
- set rx650_off, 0
- lt rx650_pos, 2, rx650_start
- sub rx650_off, rx650_pos, 1
- substr rx650_tgt, rx650_tgt, rx650_off
- rx650_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan653_done
- goto rxscan653_scan
- rxscan653_loop:
- ($P10) = rx650_cur."from"()
- inc $P10
- set rx650_pos, $P10
- ge rx650_pos, rx650_eos, rxscan653_done
- rxscan653_scan:
- set_addr $I10, rxscan653_loop
- rx650_cur."!mark_push"(0, rx650_pos, $I10)
- rxscan653_done:
-.annotate 'line', 299
+ .local string rx674_tgt
+ .local int rx674_pos
+ .local int rx674_off
+ .local int rx674_eos
+ .local int rx674_rep
+ .local pmc rx674_cur
+ (rx674_cur, rx674_pos, rx674_tgt) = self."!cursor_start"()
+ rx674_cur."!cursor_debug"("START ", "method_def")
+ rx674_cur."!cursor_caparray"("deflongname")
+ .lex unicode:"$\x{a2}", rx674_cur
+ .local pmc match
+ .lex "$/", match
+ length rx674_eos, rx674_tgt
+ gt rx674_pos, rx674_eos, rx674_done
+ set rx674_off, 0
+ lt rx674_pos, 2, rx674_start
+ sub rx674_off, rx674_pos, 1
+ substr rx674_tgt, rx674_tgt, rx674_off
+ rx674_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan678_done
+ goto rxscan678_scan
+ rxscan678_loop:
+ ($P10) = rx674_cur."from"()
+ inc $P10
+ set rx674_pos, $P10
+ ge rx674_pos, rx674_eos, rxscan678_done
+ rxscan678_scan:
+ set_addr $I10, rxscan678_loop
+ rx674_cur."!mark_push"(0, rx674_pos, $I10)
+ rxscan678_done:
+.annotate 'line', 303
# rx subrule "ws" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."ws"()
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
-.annotate 'line', 300
- # rx rxquantr655 ** 0..1
- set_addr $I656, rxquantr655_done
- rx650_cur."!mark_push"(0, rx650_pos, $I656)
- rxquantr655_loop:
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."ws"()
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
+.annotate 'line', 304
+ # rx rxquantr680 ** 0..1
+ set_addr $I681, rxquantr680_done
+ rx674_cur."!mark_push"(0, rx674_pos, $I681)
+ rxquantr680_loop:
# rx subrule "deflongname" subtype=capture negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."deflongname"()
- unless $P10, rx650_fail
- rx650_cur."!mark_push"(0, -1, 0, $P10)
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."deflongname"()
+ unless $P10, rx674_fail
+ rx674_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("deflongname")
- rx650_pos = $P10."pos"()
- (rx650_rep) = rx650_cur."!mark_commit"($I656)
- rxquantr655_done:
- # rx subrule "ws" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."ws"()
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
-.annotate 'line', 301
+ rx674_pos = $P10."pos"()
+ (rx674_rep) = rx674_cur."!mark_commit"($I681)
+ rxquantr680_done:
+ # rx subrule "ws" subtype=method negate=
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."ws"()
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
+.annotate 'line', 305
# rx subrule "newpad" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."newpad"()
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."ws"()
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
- alt659_0:
-.annotate 'line', 302
- set_addr $I10, alt659_1
- rx650_cur."!mark_push"(0, rx650_pos, $I10)
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."newpad"()
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."ws"()
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
+ alt684_0:
+.annotate 'line', 306
+ set_addr $I10, alt684_1
+ rx674_cur."!mark_push"(0, rx674_pos, $I10)
# rx subrule "ws" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."ws"()
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."ws"()
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
# rx literal "("
- add $I11, rx650_pos, 1
- gt $I11, rx650_eos, rx650_fail
- sub $I11, rx650_pos, rx650_off
- substr $S10, rx650_tgt, $I11, 1
- ne $S10, "(", rx650_fail
- add rx650_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."ws"()
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
+ add $I11, rx674_pos, 1
+ gt $I11, rx674_eos, rx674_fail
+ sub $I11, rx674_pos, rx674_off
+ substr $S10, rx674_tgt, $I11, 1
+ ne $S10, "(", rx674_fail
+ add rx674_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."ws"()
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
# rx subrule "signature" subtype=capture negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."signature"()
- unless $P10, rx650_fail
- rx650_cur."!mark_push"(0, -1, 0, $P10)
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."signature"()
+ unless $P10, rx674_fail
+ rx674_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("signature")
- rx650_pos = $P10."pos"()
+ rx674_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."ws"()
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."ws"()
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx650_pos, 1
- gt $I11, rx650_eos, rx650_fail
- sub $I11, rx650_pos, rx650_off
- substr $S10, rx650_tgt, $I11, 1
- ne $S10, ")", rx650_fail
- add rx650_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."ws"()
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
- goto alt659_end
- alt659_1:
-.annotate 'line', 303
+ add $I11, rx674_pos, 1
+ gt $I11, rx674_eos, rx674_fail
+ sub $I11, rx674_pos, rx674_off
+ substr $S10, rx674_tgt, $I11, 1
+ ne $S10, ")", rx674_fail
+ add rx674_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."ws"()
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
+ goto alt684_end
+ alt684_1:
+.annotate 'line', 307
# rx subrule "ws" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."ws"()
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."ws"()
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
# rx subrule "panic" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."panic"("Routine declaration requires a signature")
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."ws"()
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
- alt659_end:
- # rx subrule "ws" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."ws"()
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
-.annotate 'line', 304
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."panic"("Routine declaration requires a signature")
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."ws"()
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
+ alt684_end:
+ # rx subrule "ws" subtype=method negate=
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."ws"()
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
+.annotate 'line', 308
# rx subrule "blockoid" subtype=capture negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."blockoid"()
- unless $P10, rx650_fail
- rx650_cur."!mark_push"(0, -1, 0, $P10)
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."blockoid"()
+ unless $P10, rx674_fail
+ rx674_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("blockoid")
- rx650_pos = $P10."pos"()
+ rx674_pos = $P10."pos"()
# rx subrule "ws" subtype=method negate=
- rx650_cur."!cursor_pos"(rx650_pos)
- $P10 = rx650_cur."ws"()
- unless $P10, rx650_fail
- rx650_pos = $P10."pos"()
-.annotate 'line', 299
+ rx674_cur."!cursor_pos"(rx674_pos)
+ $P10 = rx674_cur."ws"()
+ unless $P10, rx674_fail
+ rx674_pos = $P10."pos"()
+.annotate 'line', 303
# rx pass
- rx650_cur."!cursor_pass"(rx650_pos, "method_def")
- rx650_cur."!cursor_debug"("PASS ", "method_def", " at pos=", rx650_pos)
- .return (rx650_cur)
- rx650_fail:
+ rx674_cur."!cursor_pass"(rx674_pos, "method_def")
+ rx674_cur."!cursor_debug"("PASS ", "method_def", " at pos=", rx674_pos)
+ .return (rx674_cur)
+ rx674_fail:
.annotate 'line', 4
- (rx650_rep, rx650_pos, $I10, $P10) = rx650_cur."!mark_fail"(0)
- lt rx650_pos, -1, rx650_done
- eq rx650_pos, -1, rx650_fail
+ (rx674_rep, rx674_pos, $I10, $P10) = rx674_cur."!mark_fail"(0)
+ lt rx674_pos, -1, rx674_done
+ eq rx674_pos, -1, rx674_fail
jump $I10
- rx650_done:
- rx650_cur."!cursor_fail"()
- rx650_cur."!cursor_debug"("FAIL ", "method_def")
- .return (rx650_cur)
+ rx674_done:
+ rx674_cur."!cursor_fail"()
+ rx674_cur."!cursor_debug"("FAIL ", "method_def")
+ .return (rx674_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__method_def" :subid("156_1274022894.43745") :method
+.sub "!PREFIX__method_def" :subid("161_1275811487.95429") :method
.annotate 'line', 4
- new $P652, "ResizablePMCArray"
- push $P652, ""
- .return ($P652)
+ $P676 = self."!PREFIX__!subrule"("ws", "")
+ new $P677, "ResizablePMCArray"
+ push $P677, $P676
+ .return ($P677)
.end
.namespace ["NQP";"Grammar"]
-.sub "signature" :subid("157_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx669_tgt
- .local int rx669_pos
- .local int rx669_off
- .local int rx669_eos
- .local int rx669_rep
- .local pmc rx669_cur
- (rx669_cur, rx669_pos, rx669_tgt) = self."!cursor_start"()
- rx669_cur."!cursor_debug"("START ", "signature")
- rx669_cur."!cursor_caparray"("parameter")
- .lex unicode:"$\x{a2}", rx669_cur
- .local pmc match
- .lex "$/", match
- length rx669_eos, rx669_tgt
- set rx669_off, 0
- lt rx669_pos, 2, rx669_start
- sub rx669_off, rx669_pos, 1
- substr rx669_tgt, rx669_tgt, rx669_off
- rx669_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan672_done
- goto rxscan672_scan
- rxscan672_loop:
- ($P10) = rx669_cur."from"()
- inc $P10
- set rx669_pos, $P10
- ge rx669_pos, rx669_eos, rxscan672_done
- rxscan672_scan:
- set_addr $I10, rxscan672_loop
- rx669_cur."!mark_push"(0, rx669_pos, $I10)
- rxscan672_done:
-.annotate 'line', 307
- # rx rxquantr673 ** 0..1
- set_addr $I676, rxquantr673_done
- rx669_cur."!mark_push"(0, rx669_pos, $I676)
- rxquantr673_loop:
- # rx rxquantr674 ** 1..*
- set_addr $I675, rxquantr674_done
- rx669_cur."!mark_push"(0, -1, $I675)
- rxquantr674_loop:
- # rx subrule "ws" subtype=method negate=
- rx669_cur."!cursor_pos"(rx669_pos)
- $P10 = rx669_cur."ws"()
- unless $P10, rx669_fail
- rx669_pos = $P10."pos"()
- # rx subrule "parameter" subtype=capture negate=
- rx669_cur."!cursor_pos"(rx669_pos)
- $P10 = rx669_cur."parameter"()
- unless $P10, rx669_fail
- rx669_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("parameter")
- rx669_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx669_cur."!cursor_pos"(rx669_pos)
- $P10 = rx669_cur."ws"()
- unless $P10, rx669_fail
- rx669_pos = $P10."pos"()
- (rx669_rep) = rx669_cur."!mark_commit"($I675)
- rx669_cur."!mark_push"(rx669_rep, rx669_pos, $I675)
- # rx literal ","
- add $I11, rx669_pos, 1
- gt $I11, rx669_eos, rx669_fail
- sub $I11, rx669_pos, rx669_off
- substr $S10, rx669_tgt, $I11, 1
- ne $S10, ",", rx669_fail
- add rx669_pos, 1
- goto rxquantr674_loop
- rxquantr674_done:
- (rx669_rep) = rx669_cur."!mark_commit"($I676)
- rxquantr673_done:
- # rx pass
- rx669_cur."!cursor_pass"(rx669_pos, "signature")
- rx669_cur."!cursor_debug"("PASS ", "signature", " at pos=", rx669_pos)
- .return (rx669_cur)
- rx669_fail:
-.annotate 'line', 4
- (rx669_rep, rx669_pos, $I10, $P10) = rx669_cur."!mark_fail"(0)
- lt rx669_pos, -1, rx669_done
- eq rx669_pos, -1, rx669_fail
- jump $I10
- rx669_done:
- rx669_cur."!cursor_fail"()
- rx669_cur."!cursor_debug"("FAIL ", "signature")
- .return (rx669_cur)
- .return ()
+.sub "multi_declarator" :subid("162_1275811487.95429") :method
+.annotate 'line', 311
+ $P694 = self."!protoregex"("multi_declarator")
+ .return ($P694)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__signature" :subid("158_1274022894.43745") :method
-.annotate 'line', 4
- new $P671, "ResizablePMCArray"
- push $P671, ""
- .return ($P671)
+.sub "!PREFIX__multi_declarator" :subid("163_1275811487.95429") :method
+.annotate 'line', 311
+ $P696 = self."!PREFIX__!protoregex"("multi_declarator")
+ .return ($P696)
.end
.namespace ["NQP";"Grammar"]
-.sub "parameter" :subid("159_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "multi_declarator:sym<multi>" :subid("164_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 313
+ new $P698, "Undef"
+ .lex "$*MULTINESS", $P698
.annotate 'line', 4
- .local string rx678_tgt
- .local int rx678_pos
- .local int rx678_off
- .local int rx678_eos
- .local int rx678_rep
- .local pmc rx678_cur
- (rx678_cur, rx678_pos, rx678_tgt) = self."!cursor_start"()
- rx678_cur."!cursor_debug"("START ", "parameter")
- rx678_cur."!cursor_caparray"("typename", "default_value")
- .lex unicode:"$\x{a2}", rx678_cur
- .local pmc match
- .lex "$/", match
- length rx678_eos, rx678_tgt
- set rx678_off, 0
- lt rx678_pos, 2, rx678_start
- sub rx678_off, rx678_pos, 1
- substr rx678_tgt, rx678_tgt, rx678_off
- rx678_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan681_done
- goto rxscan681_scan
- rxscan681_loop:
- ($P10) = rx678_cur."from"()
- inc $P10
- set rx678_pos, $P10
- ge rx678_pos, rx678_eos, rxscan681_done
- rxscan681_scan:
- set_addr $I10, rxscan681_loop
- rx678_cur."!mark_push"(0, rx678_pos, $I10)
- rxscan681_done:
-.annotate 'line', 310
- # rx rxquantr682 ** 0..*
- set_addr $I683, rxquantr682_done
- rx678_cur."!mark_push"(0, rx678_pos, $I683)
- rxquantr682_loop:
- # rx subrule "typename" subtype=capture negate=
- rx678_cur."!cursor_pos"(rx678_pos)
- $P10 = rx678_cur."typename"()
- unless $P10, rx678_fail
- rx678_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("typename")
- rx678_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx678_cur."!cursor_pos"(rx678_pos)
- $P10 = rx678_cur."ws"()
- unless $P10, rx678_fail
- rx678_pos = $P10."pos"()
- (rx678_rep) = rx678_cur."!mark_commit"($I683)
- rx678_cur."!mark_push"(rx678_rep, rx678_pos, $I683)
- goto rxquantr682_loop
- rxquantr682_done:
- alt684_0:
-.annotate 'line', 311
- set_addr $I10, alt684_1
- rx678_cur."!mark_push"(0, rx678_pos, $I10)
-.annotate 'line', 312
- # rx subcapture "quant"
- set_addr $I10, rxcap_685_fail
- rx678_cur."!mark_push"(0, rx678_pos, $I10)
- # rx literal "*"
- add $I11, rx678_pos, 1
- gt $I11, rx678_eos, rx678_fail
- sub $I11, rx678_pos, rx678_off
- substr $S10, rx678_tgt, $I11, 1
- ne $S10, "*", rx678_fail
- add rx678_pos, 1
- set_addr $I10, rxcap_685_fail
- ($I12, $I11) = rx678_cur."!mark_peek"($I10)
- rx678_cur."!cursor_pos"($I11)
- ($P10) = rx678_cur."!cursor_start"()
- $P10."!cursor_pass"(rx678_pos, "")
- rx678_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quant")
- goto rxcap_685_done
- rxcap_685_fail:
- goto rx678_fail
- rxcap_685_done:
- # rx subrule "param_var" subtype=capture negate=
- rx678_cur."!cursor_pos"(rx678_pos)
- $P10 = rx678_cur."param_var"()
- unless $P10, rx678_fail
- rx678_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("param_var")
- rx678_pos = $P10."pos"()
- goto alt684_end
- alt684_1:
- alt686_0:
+ .local string rx699_tgt
+ .local int rx699_pos
+ .local int rx699_off
+ .local int rx699_eos
+ .local int rx699_rep
+ .local pmc rx699_cur
+ (rx699_cur, rx699_pos, rx699_tgt) = self."!cursor_start"()
+ rx699_cur."!cursor_debug"("START ", "multi_declarator:sym<multi>")
+ .lex unicode:"$\x{a2}", rx699_cur
+ .local pmc match
+ .lex "$/", match
+ length rx699_eos, rx699_tgt
+ gt rx699_pos, rx699_eos, rx699_done
+ set rx699_off, 0
+ lt rx699_pos, 2, rx699_start
+ sub rx699_off, rx699_pos, 1
+ substr rx699_tgt, rx699_tgt, rx699_off
+ rx699_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan703_done
+ goto rxscan703_scan
+ rxscan703_loop:
+ ($P10) = rx699_cur."from"()
+ inc $P10
+ set rx699_pos, $P10
+ ge rx699_pos, rx699_eos, rxscan703_done
+ rxscan703_scan:
+ set_addr $I10, rxscan703_loop
+ rx699_cur."!mark_push"(0, rx699_pos, $I10)
+ rxscan703_done:
.annotate 'line', 313
- set_addr $I10, alt686_1
- rx678_cur."!mark_push"(0, rx678_pos, $I10)
- # rx subrule "param_var" subtype=capture negate=
- rx678_cur."!cursor_pos"(rx678_pos)
- $P10 = rx678_cur."param_var"()
- unless $P10, rx678_fail
- rx678_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("param_var")
- rx678_pos = $P10."pos"()
- goto alt686_end
- alt686_1:
- # rx subrule "named_param" subtype=capture negate=
- rx678_cur."!cursor_pos"(rx678_pos)
- $P10 = rx678_cur."named_param"()
- unless $P10, rx678_fail
- rx678_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("named_param")
- rx678_pos = $P10."pos"()
- alt686_end:
- # rx subcapture "quant"
- set_addr $I10, rxcap_688_fail
- rx678_cur."!mark_push"(0, rx678_pos, $I10)
- alt687_0:
- set_addr $I10, alt687_1
- rx678_cur."!mark_push"(0, rx678_pos, $I10)
- # rx literal "?"
- add $I11, rx678_pos, 1
- gt $I11, rx678_eos, rx678_fail
- sub $I11, rx678_pos, rx678_off
- substr $S10, rx678_tgt, $I11, 1
- ne $S10, "?", rx678_fail
- add rx678_pos, 1
- goto alt687_end
- alt687_1:
- set_addr $I10, alt687_2
- rx678_cur."!mark_push"(0, rx678_pos, $I10)
- # rx literal "!"
- add $I11, rx678_pos, 1
- gt $I11, rx678_eos, rx678_fail
- sub $I11, rx678_pos, rx678_off
- substr $S10, rx678_tgt, $I11, 1
- ne $S10, "!", rx678_fail
- add rx678_pos, 1
- goto alt687_end
- alt687_2:
- alt687_end:
- set_addr $I10, rxcap_688_fail
- ($I12, $I11) = rx678_cur."!mark_peek"($I10)
- rx678_cur."!cursor_pos"($I11)
- ($P10) = rx678_cur."!cursor_start"()
- $P10."!cursor_pass"(rx678_pos, "")
- rx678_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quant")
- goto rxcap_688_done
- rxcap_688_fail:
- goto rx678_fail
- rxcap_688_done:
- alt684_end:
+ rx699_cur."!cursor_pos"(rx699_pos)
+ new $P704, "String"
+ assign $P704, "multi"
+ store_lex "$*MULTINESS", $P704
+.annotate 'line', 314
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_705_fail
+ rx699_cur."!mark_push"(0, rx699_pos, $I10)
+ # rx literal "multi"
+ add $I11, rx699_pos, 5
+ gt $I11, rx699_eos, rx699_fail
+ sub $I11, rx699_pos, rx699_off
+ substr $S10, rx699_tgt, $I11, 5
+ ne $S10, "multi", rx699_fail
+ add rx699_pos, 5
+ set_addr $I10, rxcap_705_fail
+ ($I12, $I11) = rx699_cur."!mark_peek"($I10)
+ rx699_cur."!cursor_pos"($I11)
+ ($P10) = rx699_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx699_pos, "")
+ rx699_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_705_done
+ rxcap_705_fail:
+ goto rx699_fail
+ rxcap_705_done:
.annotate 'line', 315
- # rx rxquantr689 ** 0..1
- set_addr $I690, rxquantr689_done
- rx678_cur."!mark_push"(0, rx678_pos, $I690)
- rxquantr689_loop:
- # rx subrule "default_value" subtype=capture negate=
- rx678_cur."!cursor_pos"(rx678_pos)
- $P10 = rx678_cur."default_value"()
- unless $P10, rx678_fail
- rx678_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("default_value")
- rx678_pos = $P10."pos"()
- (rx678_rep) = rx678_cur."!mark_commit"($I690)
- rxquantr689_done:
-.annotate 'line', 309
+ # rx subrule "ws" subtype=method negate=
+ rx699_cur."!cursor_pos"(rx699_pos)
+ $P10 = rx699_cur."ws"()
+ unless $P10, rx699_fail
+ rx699_pos = $P10."pos"()
+ alt706_0:
+ set_addr $I10, alt706_1
+ rx699_cur."!mark_push"(0, rx699_pos, $I10)
+ # rx subrule "declarator" subtype=capture negate=
+ rx699_cur."!cursor_pos"(rx699_pos)
+ $P10 = rx699_cur."declarator"()
+ unless $P10, rx699_fail
+ rx699_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("declarator")
+ rx699_pos = $P10."pos"()
+ goto alt706_end
+ alt706_1:
+ set_addr $I10, alt706_2
+ rx699_cur."!mark_push"(0, rx699_pos, $I10)
+ # rx subrule "routine_def" subtype=capture negate=
+ rx699_cur."!cursor_pos"(rx699_pos)
+ $P10 = rx699_cur."routine_def"()
+ unless $P10, rx699_fail
+ rx699_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("routine_def")
+ rx699_pos = $P10."pos"()
+ goto alt706_end
+ alt706_2:
+ # rx subrule "panic" subtype=method negate=
+ rx699_cur."!cursor_pos"(rx699_pos)
+ $P10 = rx699_cur."panic"("Malformed multi")
+ unless $P10, rx699_fail
+ rx699_pos = $P10."pos"()
+ alt706_end:
+.annotate 'line', 312
# rx pass
- rx678_cur."!cursor_pass"(rx678_pos, "parameter")
- rx678_cur."!cursor_debug"("PASS ", "parameter", " at pos=", rx678_pos)
- .return (rx678_cur)
- rx678_fail:
+ rx699_cur."!cursor_pass"(rx699_pos, "multi_declarator:sym<multi>")
+ rx699_cur."!cursor_debug"("PASS ", "multi_declarator:sym<multi>", " at pos=", rx699_pos)
+ .return (rx699_cur)
+ rx699_fail:
.annotate 'line', 4
- (rx678_rep, rx678_pos, $I10, $P10) = rx678_cur."!mark_fail"(0)
- lt rx678_pos, -1, rx678_done
- eq rx678_pos, -1, rx678_fail
+ (rx699_rep, rx699_pos, $I10, $P10) = rx699_cur."!mark_fail"(0)
+ lt rx699_pos, -1, rx699_done
+ eq rx699_pos, -1, rx699_fail
jump $I10
- rx678_done:
- rx678_cur."!cursor_fail"()
- rx678_cur."!cursor_debug"("FAIL ", "parameter")
- .return (rx678_cur)
+ rx699_done:
+ rx699_cur."!cursor_fail"()
+ rx699_cur."!cursor_debug"("FAIL ", "multi_declarator:sym<multi>")
+ .return (rx699_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__parameter" :subid("160_1274022894.43745") :method
+.sub "!PREFIX__multi_declarator:sym<multi>" :subid("165_1275811487.95429") :method
.annotate 'line', 4
- new $P680, "ResizablePMCArray"
- push $P680, ""
- .return ($P680)
+ $P701 = self."!PREFIX__!subrule"("ws", "multi")
+ new $P702, "ResizablePMCArray"
+ push $P702, $P701
+ .return ($P702)
.end
.namespace ["NQP";"Grammar"]
-.sub "param_var" :subid("161_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx692_tgt
- .local int rx692_pos
- .local int rx692_off
- .local int rx692_eos
- .local int rx692_rep
- .local pmc rx692_cur
- (rx692_cur, rx692_pos, rx692_tgt) = self."!cursor_start"()
- rx692_cur."!cursor_debug"("START ", "param_var")
- rx692_cur."!cursor_caparray"("twigil")
- .lex unicode:"$\x{a2}", rx692_cur
- .local pmc match
- .lex "$/", match
- length rx692_eos, rx692_tgt
- set rx692_off, 0
- lt rx692_pos, 2, rx692_start
- sub rx692_off, rx692_pos, 1
- substr rx692_tgt, rx692_tgt, rx692_off
- rx692_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan696_done
- goto rxscan696_scan
- rxscan696_loop:
- ($P10) = rx692_cur."from"()
- inc $P10
- set rx692_pos, $P10
- ge rx692_pos, rx692_eos, rxscan696_done
- rxscan696_scan:
- set_addr $I10, rxscan696_loop
- rx692_cur."!mark_push"(0, rx692_pos, $I10)
- rxscan696_done:
-.annotate 'line', 319
- # rx subrule "sigil" subtype=capture negate=
- rx692_cur."!cursor_pos"(rx692_pos)
- $P10 = rx692_cur."sigil"()
- unless $P10, rx692_fail
- rx692_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sigil")
- rx692_pos = $P10."pos"()
- # rx rxquantr697 ** 0..1
- set_addr $I698, rxquantr697_done
- rx692_cur."!mark_push"(0, rx692_pos, $I698)
- rxquantr697_loop:
- # rx subrule "twigil" subtype=capture negate=
- rx692_cur."!cursor_pos"(rx692_pos)
- $P10 = rx692_cur."twigil"()
- unless $P10, rx692_fail
- rx692_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("twigil")
- rx692_pos = $P10."pos"()
- (rx692_rep) = rx692_cur."!mark_commit"($I698)
- rxquantr697_done:
- alt699_0:
-.annotate 'line', 320
- set_addr $I10, alt699_1
- rx692_cur."!mark_push"(0, rx692_pos, $I10)
- # rx subrule "ident" subtype=capture negate=
- rx692_cur."!cursor_pos"(rx692_pos)
- $P10 = rx692_cur."ident"()
- unless $P10, rx692_fail
- rx692_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("name")
- rx692_pos = $P10."pos"()
- goto alt699_end
- alt699_1:
- # rx subcapture "name"
- set_addr $I10, rxcap_700_fail
- rx692_cur."!mark_push"(0, rx692_pos, $I10)
- # rx enumcharlist negate=0
- ge rx692_pos, rx692_eos, rx692_fail
- sub $I10, rx692_pos, rx692_off
- substr $S10, rx692_tgt, $I10, 1
- index $I11, "/!", $S10
- lt $I11, 0, rx692_fail
- inc rx692_pos
- set_addr $I10, rxcap_700_fail
- ($I12, $I11) = rx692_cur."!mark_peek"($I10)
- rx692_cur."!cursor_pos"($I11)
- ($P10) = rx692_cur."!cursor_start"()
- $P10."!cursor_pass"(rx692_pos, "")
- rx692_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("name")
- goto rxcap_700_done
- rxcap_700_fail:
- goto rx692_fail
- rxcap_700_done:
- alt699_end:
+.sub "multi_declarator:sym<null>" :subid("166_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 318
- # rx pass
- rx692_cur."!cursor_pass"(rx692_pos, "param_var")
- rx692_cur."!cursor_debug"("PASS ", "param_var", " at pos=", rx692_pos)
- .return (rx692_cur)
- rx692_fail:
-.annotate 'line', 4
- (rx692_rep, rx692_pos, $I10, $P10) = rx692_cur."!mark_fail"(0)
- lt rx692_pos, -1, rx692_done
- eq rx692_pos, -1, rx692_fail
- jump $I10
- rx692_done:
- rx692_cur."!cursor_fail"()
- rx692_cur."!cursor_debug"("FAIL ", "param_var")
- .return (rx692_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__param_var" :subid("162_1274022894.43745") :method
+ new $P708, "Undef"
+ .lex "$*MULTINESS", $P708
.annotate 'line', 4
- $P694 = self."!PREFIX__!subrule"("sigil", "")
- new $P695, "ResizablePMCArray"
- push $P695, $P694
- .return ($P695)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "named_param" :subid("163_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx702_tgt
- .local int rx702_pos
- .local int rx702_off
- .local int rx702_eos
- .local int rx702_rep
- .local pmc rx702_cur
- (rx702_cur, rx702_pos, rx702_tgt) = self."!cursor_start"()
- rx702_cur."!cursor_debug"("START ", "named_param")
- .lex unicode:"$\x{a2}", rx702_cur
- .local pmc match
- .lex "$/", match
- length rx702_eos, rx702_tgt
- set rx702_off, 0
- lt rx702_pos, 2, rx702_start
- sub rx702_off, rx702_pos, 1
- substr rx702_tgt, rx702_tgt, rx702_off
- rx702_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan706_done
- goto rxscan706_scan
- rxscan706_loop:
- ($P10) = rx702_cur."from"()
- inc $P10
- set rx702_pos, $P10
- ge rx702_pos, rx702_eos, rxscan706_done
- rxscan706_scan:
- set_addr $I10, rxscan706_loop
- rx702_cur."!mark_push"(0, rx702_pos, $I10)
- rxscan706_done:
-.annotate 'line', 324
- # rx literal ":"
- add $I11, rx702_pos, 1
- gt $I11, rx702_eos, rx702_fail
- sub $I11, rx702_pos, rx702_off
- substr $S10, rx702_tgt, $I11, 1
- ne $S10, ":", rx702_fail
- add rx702_pos, 1
- # rx subrule "param_var" subtype=capture negate=
- rx702_cur."!cursor_pos"(rx702_pos)
- $P10 = rx702_cur."param_var"()
- unless $P10, rx702_fail
- rx702_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("param_var")
- rx702_pos = $P10."pos"()
-.annotate 'line', 323
+ .local string rx709_tgt
+ .local int rx709_pos
+ .local int rx709_off
+ .local int rx709_eos
+ .local int rx709_rep
+ .local pmc rx709_cur
+ (rx709_cur, rx709_pos, rx709_tgt) = self."!cursor_start"()
+ rx709_cur."!cursor_debug"("START ", "multi_declarator:sym<null>")
+ .lex unicode:"$\x{a2}", rx709_cur
+ .local pmc match
+ .lex "$/", match
+ length rx709_eos, rx709_tgt
+ gt rx709_pos, rx709_eos, rx709_done
+ set rx709_off, 0
+ lt rx709_pos, 2, rx709_start
+ sub rx709_off, rx709_pos, 1
+ substr rx709_tgt, rx709_tgt, rx709_off
+ rx709_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan713_done
+ goto rxscan713_scan
+ rxscan713_loop:
+ ($P10) = rx709_cur."from"()
+ inc $P10
+ set rx709_pos, $P10
+ ge rx709_pos, rx709_eos, rxscan713_done
+ rxscan713_scan:
+ set_addr $I10, rxscan713_loop
+ rx709_cur."!mark_push"(0, rx709_pos, $I10)
+ rxscan713_done:
+.annotate 'line', 318
+ rx709_cur."!cursor_pos"(rx709_pos)
+ new $P714, "String"
+ assign $P714, ""
+ store_lex "$*MULTINESS", $P714
+.annotate 'line', 319
+ # rx subrule "declarator" subtype=capture negate=
+ rx709_cur."!cursor_pos"(rx709_pos)
+ $P10 = rx709_cur."declarator"()
+ unless $P10, rx709_fail
+ rx709_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("declarator")
+ rx709_pos = $P10."pos"()
+.annotate 'line', 317
# rx pass
- rx702_cur."!cursor_pass"(rx702_pos, "named_param")
- rx702_cur."!cursor_debug"("PASS ", "named_param", " at pos=", rx702_pos)
- .return (rx702_cur)
- rx702_fail:
+ rx709_cur."!cursor_pass"(rx709_pos, "multi_declarator:sym<null>")
+ rx709_cur."!cursor_debug"("PASS ", "multi_declarator:sym<null>", " at pos=", rx709_pos)
+ .return (rx709_cur)
+ rx709_fail:
.annotate 'line', 4
- (rx702_rep, rx702_pos, $I10, $P10) = rx702_cur."!mark_fail"(0)
- lt rx702_pos, -1, rx702_done
- eq rx702_pos, -1, rx702_fail
+ (rx709_rep, rx709_pos, $I10, $P10) = rx709_cur."!mark_fail"(0)
+ lt rx709_pos, -1, rx709_done
+ eq rx709_pos, -1, rx709_fail
jump $I10
- rx702_done:
- rx702_cur."!cursor_fail"()
- rx702_cur."!cursor_debug"("FAIL ", "named_param")
- .return (rx702_cur)
+ rx709_done:
+ rx709_cur."!cursor_fail"()
+ rx709_cur."!cursor_debug"("FAIL ", "multi_declarator:sym<null>")
+ .return (rx709_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__named_param" :subid("164_1274022894.43745") :method
-.annotate 'line', 4
- $P704 = self."!PREFIX__!subrule"("param_var", ":")
- new $P705, "ResizablePMCArray"
- push $P705, $P704
- .return ($P705)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "default_value" :subid("165_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx708_tgt
- .local int rx708_pos
- .local int rx708_off
- .local int rx708_eos
- .local int rx708_rep
- .local pmc rx708_cur
- (rx708_cur, rx708_pos, rx708_tgt) = self."!cursor_start"()
- rx708_cur."!cursor_debug"("START ", "default_value")
- .lex unicode:"$\x{a2}", rx708_cur
- .local pmc match
- .lex "$/", match
- length rx708_eos, rx708_tgt
- set rx708_off, 0
- lt rx708_pos, 2, rx708_start
- sub rx708_off, rx708_pos, 1
- substr rx708_tgt, rx708_tgt, rx708_off
- rx708_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan711_done
- goto rxscan711_scan
- rxscan711_loop:
- ($P10) = rx708_cur."from"()
- inc $P10
- set rx708_pos, $P10
- ge rx708_pos, rx708_eos, rxscan711_done
- rxscan711_scan:
- set_addr $I10, rxscan711_loop
- rx708_cur."!mark_push"(0, rx708_pos, $I10)
- rxscan711_done:
-.annotate 'line', 327
- # rx subrule "ws" subtype=method negate=
- rx708_cur."!cursor_pos"(rx708_pos)
- $P10 = rx708_cur."ws"()
- unless $P10, rx708_fail
- rx708_pos = $P10."pos"()
- # rx literal "="
- add $I11, rx708_pos, 1
- gt $I11, rx708_eos, rx708_fail
- sub $I11, rx708_pos, rx708_off
- substr $S10, rx708_tgt, $I11, 1
- ne $S10, "=", rx708_fail
- add rx708_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx708_cur."!cursor_pos"(rx708_pos)
- $P10 = rx708_cur."ws"()
- unless $P10, rx708_fail
- rx708_pos = $P10."pos"()
- # rx subrule "EXPR" subtype=capture negate=
- rx708_cur."!cursor_pos"(rx708_pos)
- $P10 = rx708_cur."EXPR"("i=")
- unless $P10, rx708_fail
- rx708_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
- rx708_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx708_cur."!cursor_pos"(rx708_pos)
- $P10 = rx708_cur."ws"()
- unless $P10, rx708_fail
- rx708_pos = $P10."pos"()
- # rx pass
- rx708_cur."!cursor_pass"(rx708_pos, "default_value")
- rx708_cur."!cursor_debug"("PASS ", "default_value", " at pos=", rx708_pos)
- .return (rx708_cur)
- rx708_fail:
+.sub "!PREFIX__multi_declarator:sym<null>" :subid("167_1275811487.95429") :method
.annotate 'line', 4
- (rx708_rep, rx708_pos, $I10, $P10) = rx708_cur."!mark_fail"(0)
- lt rx708_pos, -1, rx708_done
- eq rx708_pos, -1, rx708_fail
- jump $I10
- rx708_done:
- rx708_cur."!cursor_fail"()
- rx708_cur."!cursor_debug"("FAIL ", "default_value")
- .return (rx708_cur)
- .return ()
+ $P711 = self."!PREFIX__!subrule"("declarator", "")
+ new $P712, "ResizablePMCArray"
+ push $P712, $P711
+ .return ($P712)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__default_value" :subid("166_1274022894.43745") :method
-.annotate 'line', 4
- new $P710, "ResizablePMCArray"
- push $P710, ""
- .return ($P710)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "regex_declarator" :subid("167_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "signature" :subid("168_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
.local string rx716_tgt
.local int rx716_pos
@@ -8433,12 +8390,13 @@
.local int rx716_rep
.local pmc rx716_cur
(rx716_cur, rx716_pos, rx716_tgt) = self."!cursor_start"()
- rx716_cur."!cursor_debug"("START ", "regex_declarator")
- rx716_cur."!cursor_caparray"("signature")
+ rx716_cur."!cursor_debug"("START ", "signature")
+ rx716_cur."!cursor_caparray"("parameter")
.lex unicode:"$\x{a2}", rx716_cur
.local pmc match
.lex "$/", match
length rx716_eos, rx716_tgt
+ gt rx716_pos, rx716_eos, rx716_done
set rx716_off, 0
lt rx716_pos, 2, rx716_start
sub rx716_off, rx716_pos, 1
@@ -8456,359 +8414,48 @@
set_addr $I10, rxscan719_loop
rx716_cur."!mark_push"(0, rx716_pos, $I10)
rxscan719_done:
-.annotate 'line', 329
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- alt721_0:
-.annotate 'line', 330
- set_addr $I10, alt721_1
- rx716_cur."!mark_push"(0, rx716_pos, $I10)
-.annotate 'line', 331
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- # rx subcapture "proto"
- set_addr $I10, rxcap_723_fail
- rx716_cur."!mark_push"(0, rx716_pos, $I10)
- # rx literal "proto"
- add $I11, rx716_pos, 5
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 5
- ne $S10, "proto", rx716_fail
- add rx716_pos, 5
- set_addr $I10, rxcap_723_fail
- ($I12, $I11) = rx716_cur."!mark_peek"($I10)
- rx716_cur."!cursor_pos"($I11)
- ($P10) = rx716_cur."!cursor_start"()
- $P10."!cursor_pass"(rx716_pos, "")
- rx716_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("proto")
- goto rxcap_723_done
- rxcap_723_fail:
- goto rx716_fail
- rxcap_723_done:
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- alt725_0:
- set_addr $I10, alt725_1
- rx716_cur."!mark_push"(0, rx716_pos, $I10)
- # rx literal "regex"
- add $I11, rx716_pos, 5
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 5
- ne $S10, "regex", rx716_fail
- add rx716_pos, 5
- goto alt725_end
- alt725_1:
- set_addr $I10, alt725_2
- rx716_cur."!mark_push"(0, rx716_pos, $I10)
- # rx literal "token"
- add $I11, rx716_pos, 5
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 5
- ne $S10, "token", rx716_fail
- add rx716_pos, 5
- goto alt725_end
- alt725_2:
- # rx literal "rule"
- add $I11, rx716_pos, 4
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 4
- ne $S10, "rule", rx716_fail
- add rx716_pos, 4
- alt725_end:
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
-.annotate 'line', 332
- # rx subrule "deflongname" subtype=capture negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."deflongname"()
- unless $P10, rx716_fail
- rx716_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("deflongname")
- rx716_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- alt728_0:
-.annotate 'line', 333
- set_addr $I10, alt728_1
- rx716_cur."!mark_push"(0, rx716_pos, $I10)
-.annotate 'line', 334
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- # rx literal "{"
- add $I11, rx716_pos, 1
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 1
- ne $S10, "{", rx716_fail
- add rx716_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- # rx literal "<...>"
- add $I11, rx716_pos, 5
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 5
- ne $S10, "<...>", rx716_fail
- add rx716_pos, 5
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- # rx literal "}"
- add $I11, rx716_pos, 1
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 1
- ne $S10, "}", rx716_fail
- add rx716_pos, 1
- # rx subrule "ENDSTMT" subtype=zerowidth negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ENDSTMT"()
- unless $P10, rx716_fail
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- goto alt728_end
- alt728_1:
-.annotate 'line', 335
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- # rx subrule "panic" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."panic"("Proto regex body must be <...>")
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- alt728_end:
-.annotate 'line', 336
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
-.annotate 'line', 331
- goto alt721_end
- alt721_1:
-.annotate 'line', 337
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- # rx subcapture "sym"
- set_addr $I10, rxcap_738_fail
- rx716_cur."!mark_push"(0, rx716_pos, $I10)
- alt737_0:
- set_addr $I10, alt737_1
- rx716_cur."!mark_push"(0, rx716_pos, $I10)
- # rx literal "regex"
- add $I11, rx716_pos, 5
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 5
- ne $S10, "regex", rx716_fail
- add rx716_pos, 5
- goto alt737_end
- alt737_1:
- set_addr $I10, alt737_2
- rx716_cur."!mark_push"(0, rx716_pos, $I10)
- # rx literal "token"
- add $I11, rx716_pos, 5
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 5
- ne $S10, "token", rx716_fail
- add rx716_pos, 5
- goto alt737_end
- alt737_2:
- # rx literal "rule"
- add $I11, rx716_pos, 4
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 4
- ne $S10, "rule", rx716_fail
- add rx716_pos, 4
- alt737_end:
- set_addr $I10, rxcap_738_fail
- ($I12, $I11) = rx716_cur."!mark_peek"($I10)
- rx716_cur."!cursor_pos"($I11)
- ($P10) = rx716_cur."!cursor_start"()
- $P10."!cursor_pass"(rx716_pos, "")
- rx716_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_738_done
- rxcap_738_fail:
- goto rx716_fail
- rxcap_738_done:
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
-.annotate 'line', 338
- # rx subrule "deflongname" subtype=capture negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."deflongname"()
- unless $P10, rx716_fail
- rx716_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("deflongname")
- rx716_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
-.annotate 'line', 339
- # rx subrule "newpad" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."newpad"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
-.annotate 'line', 340
- # rx rxquantr742 ** 0..1
- set_addr $I747, rxquantr742_done
- rx716_cur."!mark_push"(0, rx716_pos, $I747)
- rxquantr742_loop:
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- # rx literal "("
- add $I11, rx716_pos, 1
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 1
- ne $S10, "(", rx716_fail
- add rx716_pos, 1
+.annotate 'line', 322
+ # rx rxquantr720 ** 0..1
+ set_addr $I723, rxquantr720_done
+ rx716_cur."!mark_push"(0, rx716_pos, $I723)
+ rxquantr720_loop:
+ # rx rxquantr721 ** 1..*
+ set_addr $I722, rxquantr721_done
+ rx716_cur."!mark_push"(0, -1, $I722)
+ rxquantr721_loop:
# rx subrule "ws" subtype=method negate=
rx716_cur."!cursor_pos"(rx716_pos)
$P10 = rx716_cur."ws"()
unless $P10, rx716_fail
rx716_pos = $P10."pos"()
- # rx subrule "signature" subtype=capture negate=
+ # rx subrule "parameter" subtype=capture negate=
rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."signature"()
+ $P10 = rx716_cur."parameter"()
unless $P10, rx716_fail
rx716_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("signature")
- rx716_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- # rx literal ")"
- add $I11, rx716_pos, 1
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 1
- ne $S10, ")", rx716_fail
- add rx716_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- (rx716_rep) = rx716_cur."!mark_commit"($I747)
- rxquantr742_done:
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
+ $P10."!cursor_names"("parameter")
rx716_pos = $P10."pos"()
-.annotate 'line', 341
- # rx reduce name="regex_declarator" key="open"
- rx716_cur."!cursor_pos"(rx716_pos)
- rx716_cur."!reduce"("regex_declarator", "open")
# rx subrule "ws" subtype=method negate=
rx716_cur."!cursor_pos"(rx716_pos)
$P10 = rx716_cur."ws"()
unless $P10, rx716_fail
rx716_pos = $P10."pos"()
-.annotate 'line', 342
- # rx literal "{"
- add $I11, rx716_pos, 1
- gt $I11, rx716_eos, rx716_fail
- sub $I11, rx716_pos, rx716_off
- substr $S10, rx716_tgt, $I11, 1
- ne $S10, "{", rx716_fail
- add rx716_pos, 1
- # rx subrule "LANG" subtype=capture negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."LANG"("Regex", "nibbler")
- unless $P10, rx716_fail
- rx716_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("p6regex")
- rx716_pos = $P10."pos"()
- # rx literal "}"
+ (rx716_rep) = rx716_cur."!mark_commit"($I722)
+ rx716_cur."!mark_push"(rx716_rep, rx716_pos, $I722)
+ # rx literal ","
add $I11, rx716_pos, 1
gt $I11, rx716_eos, rx716_fail
sub $I11, rx716_pos, rx716_off
substr $S10, rx716_tgt, $I11, 1
- ne $S10, "}", rx716_fail
+ ne $S10, ",", rx716_fail
add rx716_pos, 1
- # rx subrule "ENDSTMT" subtype=zerowidth negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ENDSTMT"()
- unless $P10, rx716_fail
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
- alt721_end:
-.annotate 'line', 343
- # rx subrule "ws" subtype=method negate=
- rx716_cur."!cursor_pos"(rx716_pos)
- $P10 = rx716_cur."ws"()
- unless $P10, rx716_fail
- rx716_pos = $P10."pos"()
-.annotate 'line', 329
+ goto rxquantr721_loop
+ rxquantr721_done:
+ (rx716_rep) = rx716_cur."!mark_commit"($I723)
+ rxquantr720_done:
# rx pass
- rx716_cur."!cursor_pass"(rx716_pos, "regex_declarator")
- rx716_cur."!cursor_debug"("PASS ", "regex_declarator", " at pos=", rx716_pos)
+ rx716_cur."!cursor_pass"(rx716_pos, "signature")
+ rx716_cur."!cursor_debug"("PASS ", "signature", " at pos=", rx716_pos)
.return (rx716_cur)
rx716_fail:
.annotate 'line', 4
@@ -8818,14 +8465,14 @@
jump $I10
rx716_done:
rx716_cur."!cursor_fail"()
- rx716_cur."!cursor_debug"("FAIL ", "regex_declarator")
+ rx716_cur."!cursor_debug"("FAIL ", "signature")
.return (rx716_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__regex_declarator" :subid("168_1274022894.43745") :method
+.sub "!PREFIX__signature" :subid("169_1275811487.95429") :method
.annotate 'line', 4
new $P718, "ResizablePMCArray"
push $P718, ""
@@ -8834,629 +8481,898 @@
.namespace ["NQP";"Grammar"]
-.sub "dotty" :subid("169_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "parameter" :subid("170_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx753_tgt
- .local int rx753_pos
- .local int rx753_off
- .local int rx753_eos
- .local int rx753_rep
- .local pmc rx753_cur
- (rx753_cur, rx753_pos, rx753_tgt) = self."!cursor_start"()
- rx753_cur."!cursor_debug"("START ", "dotty")
- rx753_cur."!cursor_caparray"("args")
- .lex unicode:"$\x{a2}", rx753_cur
- .local pmc match
- .lex "$/", match
- length rx753_eos, rx753_tgt
- set rx753_off, 0
- lt rx753_pos, 2, rx753_start
- sub rx753_off, rx753_pos, 1
- substr rx753_tgt, rx753_tgt, rx753_off
- rx753_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan757_done
- goto rxscan757_scan
- rxscan757_loop:
- ($P10) = rx753_cur."from"()
- inc $P10
- set rx753_pos, $P10
- ge rx753_pos, rx753_eos, rxscan757_done
- rxscan757_scan:
- set_addr $I10, rxscan757_loop
- rx753_cur."!mark_push"(0, rx753_pos, $I10)
- rxscan757_done:
-.annotate 'line', 347
- # rx literal "."
- add $I11, rx753_pos, 1
- gt $I11, rx753_eos, rx753_fail
- sub $I11, rx753_pos, rx753_off
- substr $S10, rx753_tgt, $I11, 1
- ne $S10, ".", rx753_fail
- add rx753_pos, 1
- alt758_0:
-.annotate 'line', 348
- set_addr $I10, alt758_1
- rx753_cur."!mark_push"(0, rx753_pos, $I10)
- # rx subrule "identifier" subtype=capture negate=
- rx753_cur."!cursor_pos"(rx753_pos)
- $P10 = rx753_cur."identifier"()
- unless $P10, rx753_fail
- rx753_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("longname=identifier")
- rx753_pos = $P10."pos"()
- goto alt758_end
- alt758_1:
-.annotate 'line', 349
- # rx enumcharlist negate=0 zerowidth
- ge rx753_pos, rx753_eos, rx753_fail
- sub $I10, rx753_pos, rx753_off
- substr $S10, rx753_tgt, $I10, 1
- index $I11, "'\"", $S10
- lt $I11, 0, rx753_fail
- # rx subrule "quote" subtype=capture negate=
- rx753_cur."!cursor_pos"(rx753_pos)
- $P10 = rx753_cur."quote"()
- unless $P10, rx753_fail
- rx753_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote")
- rx753_pos = $P10."pos"()
- alt759_0:
-.annotate 'line', 350
- set_addr $I10, alt759_1
- rx753_cur."!mark_push"(0, rx753_pos, $I10)
- # rx enumcharlist negate=0 zerowidth
- ge rx753_pos, rx753_eos, rx753_fail
- sub $I10, rx753_pos, rx753_off
- substr $S10, rx753_tgt, $I10, 1
- index $I11, "(", $S10
- lt $I11, 0, rx753_fail
- goto alt759_end
- alt759_1:
- # rx subrule "panic" subtype=method negate=
- rx753_cur."!cursor_pos"(rx753_pos)
- $P10 = rx753_cur."panic"("Quoted method name requires parenthesized arguments")
- unless $P10, rx753_fail
- rx753_pos = $P10."pos"()
- alt759_end:
- alt758_end:
-.annotate 'line', 356
- # rx rxquantr760 ** 0..1
- set_addr $I762, rxquantr760_done
- rx753_cur."!mark_push"(0, rx753_pos, $I762)
- rxquantr760_loop:
- alt761_0:
-.annotate 'line', 353
- set_addr $I10, alt761_1
- rx753_cur."!mark_push"(0, rx753_pos, $I10)
-.annotate 'line', 354
- # rx enumcharlist negate=0 zerowidth
- ge rx753_pos, rx753_eos, rx753_fail
- sub $I10, rx753_pos, rx753_off
- substr $S10, rx753_tgt, $I10, 1
- index $I11, "(", $S10
- lt $I11, 0, rx753_fail
- # rx subrule "args" subtype=capture negate=
- rx753_cur."!cursor_pos"(rx753_pos)
- $P10 = rx753_cur."args"()
- unless $P10, rx753_fail
- rx753_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("args")
- rx753_pos = $P10."pos"()
- goto alt761_end
- alt761_1:
-.annotate 'line', 355
- # rx literal ":"
- add $I11, rx753_pos, 1
- gt $I11, rx753_eos, rx753_fail
- sub $I11, rx753_pos, rx753_off
- substr $S10, rx753_tgt, $I11, 1
- ne $S10, ":", rx753_fail
- add rx753_pos, 1
- # rx charclass s
- ge rx753_pos, rx753_eos, rx753_fail
- sub $I10, rx753_pos, rx753_off
- is_cclass $I11, 32, rx753_tgt, $I10
- unless $I11, rx753_fail
- inc rx753_pos
- # rx subrule "arglist" subtype=capture negate=
- rx753_cur."!cursor_pos"(rx753_pos)
- $P10 = rx753_cur."arglist"()
- unless $P10, rx753_fail
- rx753_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("args")
- rx753_pos = $P10."pos"()
- alt761_end:
-.annotate 'line', 356
- (rx753_rep) = rx753_cur."!mark_commit"($I762)
- rxquantr760_done:
-.annotate 'line', 346
- # rx pass
- rx753_cur."!cursor_pass"(rx753_pos, "dotty")
- rx753_cur."!cursor_debug"("PASS ", "dotty", " at pos=", rx753_pos)
- .return (rx753_cur)
- rx753_fail:
-.annotate 'line', 4
- (rx753_rep, rx753_pos, $I10, $P10) = rx753_cur."!mark_fail"(0)
- lt rx753_pos, -1, rx753_done
- eq rx753_pos, -1, rx753_fail
- jump $I10
- rx753_done:
- rx753_cur."!cursor_fail"()
- rx753_cur."!cursor_debug"("FAIL ", "dotty")
- .return (rx753_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__dotty" :subid("170_1274022894.43745") :method
-.annotate 'line', 4
- $P755 = self."!PREFIX__!subrule"("longname=identifier", ".")
- new $P756, "ResizablePMCArray"
- push $P756, "'"
- push $P756, "\""
- push $P756, $P755
- .return ($P756)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "term" :subid("171_1274022894.43745") :method
-.annotate 'line', 360
- $P764 = self."!protoregex"("term")
- .return ($P764)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term" :subid("172_1274022894.43745") :method
-.annotate 'line', 360
- $P766 = self."!PREFIX__!protoregex"("term")
- .return ($P766)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "term:sym<self>" :subid("173_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx768_tgt
- .local int rx768_pos
- .local int rx768_off
- .local int rx768_eos
- .local int rx768_rep
- .local pmc rx768_cur
- (rx768_cur, rx768_pos, rx768_tgt) = self."!cursor_start"()
- rx768_cur."!cursor_debug"("START ", "term:sym<self>")
- .lex unicode:"$\x{a2}", rx768_cur
- .local pmc match
- .lex "$/", match
- length rx768_eos, rx768_tgt
- set rx768_off, 0
- lt rx768_pos, 2, rx768_start
- sub rx768_off, rx768_pos, 1
- substr rx768_tgt, rx768_tgt, rx768_off
- rx768_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan771_done
- goto rxscan771_scan
- rxscan771_loop:
- ($P10) = rx768_cur."from"()
- inc $P10
- set rx768_pos, $P10
- ge rx768_pos, rx768_eos, rxscan771_done
- rxscan771_scan:
- set_addr $I10, rxscan771_loop
- rx768_cur."!mark_push"(0, rx768_pos, $I10)
- rxscan771_done:
-.annotate 'line', 362
- # rx subcapture "sym"
- set_addr $I10, rxcap_772_fail
- rx768_cur."!mark_push"(0, rx768_pos, $I10)
- # rx literal "self"
- add $I11, rx768_pos, 4
- gt $I11, rx768_eos, rx768_fail
- sub $I11, rx768_pos, rx768_off
- substr $S10, rx768_tgt, $I11, 4
- ne $S10, "self", rx768_fail
- add rx768_pos, 4
- set_addr $I10, rxcap_772_fail
- ($I12, $I11) = rx768_cur."!mark_peek"($I10)
- rx768_cur."!cursor_pos"($I11)
- ($P10) = rx768_cur."!cursor_start"()
- $P10."!cursor_pass"(rx768_pos, "")
- rx768_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_772_done
- rxcap_772_fail:
- goto rx768_fail
- rxcap_772_done:
- # rxanchor rwb
- le rx768_pos, 0, rx768_fail
- sub $I10, rx768_pos, rx768_off
- is_cclass $I11, 8192, rx768_tgt, $I10
- if $I11, rx768_fail
- dec $I10
- is_cclass $I11, 8192, rx768_tgt, $I10
- unless $I11, rx768_fail
+ .local string rx725_tgt
+ .local int rx725_pos
+ .local int rx725_off
+ .local int rx725_eos
+ .local int rx725_rep
+ .local pmc rx725_cur
+ (rx725_cur, rx725_pos, rx725_tgt) = self."!cursor_start"()
+ rx725_cur."!cursor_debug"("START ", "parameter")
+ rx725_cur."!cursor_caparray"("default_value", "typename")
+ .lex unicode:"$\x{a2}", rx725_cur
+ .local pmc match
+ .lex "$/", match
+ length rx725_eos, rx725_tgt
+ gt rx725_pos, rx725_eos, rx725_done
+ set rx725_off, 0
+ lt rx725_pos, 2, rx725_start
+ sub rx725_off, rx725_pos, 1
+ substr rx725_tgt, rx725_tgt, rx725_off
+ rx725_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan728_done
+ goto rxscan728_scan
+ rxscan728_loop:
+ ($P10) = rx725_cur."from"()
+ inc $P10
+ set rx725_pos, $P10
+ ge rx725_pos, rx725_eos, rxscan728_done
+ rxscan728_scan:
+ set_addr $I10, rxscan728_loop
+ rx725_cur."!mark_push"(0, rx725_pos, $I10)
+ rxscan728_done:
+.annotate 'line', 325
+ # rx rxquantr729 ** 0..*
+ set_addr $I730, rxquantr729_done
+ rx725_cur."!mark_push"(0, rx725_pos, $I730)
+ rxquantr729_loop:
+ # rx subrule "typename" subtype=capture negate=
+ rx725_cur."!cursor_pos"(rx725_pos)
+ $P10 = rx725_cur."typename"()
+ unless $P10, rx725_fail
+ rx725_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("typename")
+ rx725_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx725_cur."!cursor_pos"(rx725_pos)
+ $P10 = rx725_cur."ws"()
+ unless $P10, rx725_fail
+ rx725_pos = $P10."pos"()
+ (rx725_rep) = rx725_cur."!mark_commit"($I730)
+ rx725_cur."!mark_push"(rx725_rep, rx725_pos, $I730)
+ goto rxquantr729_loop
+ rxquantr729_done:
+ alt731_0:
+.annotate 'line', 326
+ set_addr $I10, alt731_1
+ rx725_cur."!mark_push"(0, rx725_pos, $I10)
+.annotate 'line', 327
+ # rx subcapture "quant"
+ set_addr $I10, rxcap_732_fail
+ rx725_cur."!mark_push"(0, rx725_pos, $I10)
+ # rx literal "*"
+ add $I11, rx725_pos, 1
+ gt $I11, rx725_eos, rx725_fail
+ sub $I11, rx725_pos, rx725_off
+ substr $S10, rx725_tgt, $I11, 1
+ ne $S10, "*", rx725_fail
+ add rx725_pos, 1
+ set_addr $I10, rxcap_732_fail
+ ($I12, $I11) = rx725_cur."!mark_peek"($I10)
+ rx725_cur."!cursor_pos"($I11)
+ ($P10) = rx725_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx725_pos, "")
+ rx725_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quant")
+ goto rxcap_732_done
+ rxcap_732_fail:
+ goto rx725_fail
+ rxcap_732_done:
+ # rx subrule "param_var" subtype=capture negate=
+ rx725_cur."!cursor_pos"(rx725_pos)
+ $P10 = rx725_cur."param_var"()
+ unless $P10, rx725_fail
+ rx725_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("param_var")
+ rx725_pos = $P10."pos"()
+ goto alt731_end
+ alt731_1:
+ alt733_0:
+.annotate 'line', 328
+ set_addr $I10, alt733_1
+ rx725_cur."!mark_push"(0, rx725_pos, $I10)
+ # rx subrule "param_var" subtype=capture negate=
+ rx725_cur."!cursor_pos"(rx725_pos)
+ $P10 = rx725_cur."param_var"()
+ unless $P10, rx725_fail
+ rx725_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("param_var")
+ rx725_pos = $P10."pos"()
+ goto alt733_end
+ alt733_1:
+ # rx subrule "named_param" subtype=capture negate=
+ rx725_cur."!cursor_pos"(rx725_pos)
+ $P10 = rx725_cur."named_param"()
+ unless $P10, rx725_fail
+ rx725_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("named_param")
+ rx725_pos = $P10."pos"()
+ alt733_end:
+ # rx subcapture "quant"
+ set_addr $I10, rxcap_735_fail
+ rx725_cur."!mark_push"(0, rx725_pos, $I10)
+ alt734_0:
+ set_addr $I10, alt734_1
+ rx725_cur."!mark_push"(0, rx725_pos, $I10)
+ # rx literal "?"
+ add $I11, rx725_pos, 1
+ gt $I11, rx725_eos, rx725_fail
+ sub $I11, rx725_pos, rx725_off
+ substr $S10, rx725_tgt, $I11, 1
+ ne $S10, "?", rx725_fail
+ add rx725_pos, 1
+ goto alt734_end
+ alt734_1:
+ set_addr $I10, alt734_2
+ rx725_cur."!mark_push"(0, rx725_pos, $I10)
+ # rx literal "!"
+ add $I11, rx725_pos, 1
+ gt $I11, rx725_eos, rx725_fail
+ sub $I11, rx725_pos, rx725_off
+ substr $S10, rx725_tgt, $I11, 1
+ ne $S10, "!", rx725_fail
+ add rx725_pos, 1
+ goto alt734_end
+ alt734_2:
+ alt734_end:
+ set_addr $I10, rxcap_735_fail
+ ($I12, $I11) = rx725_cur."!mark_peek"($I10)
+ rx725_cur."!cursor_pos"($I11)
+ ($P10) = rx725_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx725_pos, "")
+ rx725_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quant")
+ goto rxcap_735_done
+ rxcap_735_fail:
+ goto rx725_fail
+ rxcap_735_done:
+ alt731_end:
+.annotate 'line', 330
+ # rx rxquantr736 ** 0..1
+ set_addr $I737, rxquantr736_done
+ rx725_cur."!mark_push"(0, rx725_pos, $I737)
+ rxquantr736_loop:
+ # rx subrule "default_value" subtype=capture negate=
+ rx725_cur."!cursor_pos"(rx725_pos)
+ $P10 = rx725_cur."default_value"()
+ unless $P10, rx725_fail
+ rx725_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("default_value")
+ rx725_pos = $P10."pos"()
+ (rx725_rep) = rx725_cur."!mark_commit"($I737)
+ rxquantr736_done:
+.annotate 'line', 324
# rx pass
- rx768_cur."!cursor_pass"(rx768_pos, "term:sym<self>")
- rx768_cur."!cursor_debug"("PASS ", "term:sym<self>", " at pos=", rx768_pos)
- .return (rx768_cur)
- rx768_fail:
+ rx725_cur."!cursor_pass"(rx725_pos, "parameter")
+ rx725_cur."!cursor_debug"("PASS ", "parameter", " at pos=", rx725_pos)
+ .return (rx725_cur)
+ rx725_fail:
.annotate 'line', 4
- (rx768_rep, rx768_pos, $I10, $P10) = rx768_cur."!mark_fail"(0)
- lt rx768_pos, -1, rx768_done
- eq rx768_pos, -1, rx768_fail
+ (rx725_rep, rx725_pos, $I10, $P10) = rx725_cur."!mark_fail"(0)
+ lt rx725_pos, -1, rx725_done
+ eq rx725_pos, -1, rx725_fail
jump $I10
- rx768_done:
- rx768_cur."!cursor_fail"()
- rx768_cur."!cursor_debug"("FAIL ", "term:sym<self>")
- .return (rx768_cur)
+ rx725_done:
+ rx725_cur."!cursor_fail"()
+ rx725_cur."!cursor_debug"("FAIL ", "parameter")
+ .return (rx725_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<self>" :subid("174_1274022894.43745") :method
+.sub "!PREFIX__parameter" :subid("171_1275811487.95429") :method
.annotate 'line', 4
- new $P770, "ResizablePMCArray"
- push $P770, "self"
- .return ($P770)
+ new $P727, "ResizablePMCArray"
+ push $P727, ""
+ .return ($P727)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<identifier>" :subid("175_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "param_var" :subid("172_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx774_tgt
- .local int rx774_pos
- .local int rx774_off
- .local int rx774_eos
- .local int rx774_rep
- .local pmc rx774_cur
- (rx774_cur, rx774_pos, rx774_tgt) = self."!cursor_start"()
- rx774_cur."!cursor_debug"("START ", "term:sym<identifier>")
- .lex unicode:"$\x{a2}", rx774_cur
+ .local string rx739_tgt
+ .local int rx739_pos
+ .local int rx739_off
+ .local int rx739_eos
+ .local int rx739_rep
+ .local pmc rx739_cur
+ (rx739_cur, rx739_pos, rx739_tgt) = self."!cursor_start"()
+ rx739_cur."!cursor_debug"("START ", "param_var")
+ rx739_cur."!cursor_caparray"("twigil")
+ .lex unicode:"$\x{a2}", rx739_cur
.local pmc match
.lex "$/", match
- length rx774_eos, rx774_tgt
- set rx774_off, 0
- lt rx774_pos, 2, rx774_start
- sub rx774_off, rx774_pos, 1
- substr rx774_tgt, rx774_tgt, rx774_off
- rx774_start:
+ length rx739_eos, rx739_tgt
+ gt rx739_pos, rx739_eos, rx739_done
+ set rx739_off, 0
+ lt rx739_pos, 2, rx739_start
+ sub rx739_off, rx739_pos, 1
+ substr rx739_tgt, rx739_tgt, rx739_off
+ rx739_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan778_done
- goto rxscan778_scan
- rxscan778_loop:
- ($P10) = rx774_cur."from"()
+ ne $I10, -1, rxscan743_done
+ goto rxscan743_scan
+ rxscan743_loop:
+ ($P10) = rx739_cur."from"()
inc $P10
- set rx774_pos, $P10
- ge rx774_pos, rx774_eos, rxscan778_done
- rxscan778_scan:
- set_addr $I10, rxscan778_loop
- rx774_cur."!mark_push"(0, rx774_pos, $I10)
- rxscan778_done:
-.annotate 'line', 365
- # rx subrule "identifier" subtype=capture negate=
- rx774_cur."!cursor_pos"(rx774_pos)
- $P10 = rx774_cur."identifier"()
- unless $P10, rx774_fail
- rx774_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("identifier")
- rx774_pos = $P10."pos"()
- # rx enumcharlist negate=0 zerowidth
- ge rx774_pos, rx774_eos, rx774_fail
- sub $I10, rx774_pos, rx774_off
- substr $S10, rx774_tgt, $I10, 1
- index $I11, "(", $S10
- lt $I11, 0, rx774_fail
- # rx subrule "args" subtype=capture negate=
- rx774_cur."!cursor_pos"(rx774_pos)
- $P10 = rx774_cur."args"()
- unless $P10, rx774_fail
- rx774_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("args")
- rx774_pos = $P10."pos"()
-.annotate 'line', 364
+ set rx739_pos, $P10
+ ge rx739_pos, rx739_eos, rxscan743_done
+ rxscan743_scan:
+ set_addr $I10, rxscan743_loop
+ rx739_cur."!mark_push"(0, rx739_pos, $I10)
+ rxscan743_done:
+.annotate 'line', 334
+ # rx subrule "sigil" subtype=capture negate=
+ rx739_cur."!cursor_pos"(rx739_pos)
+ $P10 = rx739_cur."sigil"()
+ unless $P10, rx739_fail
+ rx739_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sigil")
+ rx739_pos = $P10."pos"()
+ # rx rxquantr744 ** 0..1
+ set_addr $I745, rxquantr744_done
+ rx739_cur."!mark_push"(0, rx739_pos, $I745)
+ rxquantr744_loop:
+ # rx subrule "twigil" subtype=capture negate=
+ rx739_cur."!cursor_pos"(rx739_pos)
+ $P10 = rx739_cur."twigil"()
+ unless $P10, rx739_fail
+ rx739_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("twigil")
+ rx739_pos = $P10."pos"()
+ (rx739_rep) = rx739_cur."!mark_commit"($I745)
+ rxquantr744_done:
+ alt746_0:
+.annotate 'line', 335
+ set_addr $I10, alt746_1
+ rx739_cur."!mark_push"(0, rx739_pos, $I10)
+ # rx subrule "ident" subtype=capture negate=
+ rx739_cur."!cursor_pos"(rx739_pos)
+ $P10 = rx739_cur."ident"()
+ unless $P10, rx739_fail
+ rx739_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("name")
+ rx739_pos = $P10."pos"()
+ goto alt746_end
+ alt746_1:
+ # rx subcapture "name"
+ set_addr $I10, rxcap_747_fail
+ rx739_cur."!mark_push"(0, rx739_pos, $I10)
+ # rx enumcharlist negate=0
+ ge rx739_pos, rx739_eos, rx739_fail
+ sub $I10, rx739_pos, rx739_off
+ substr $S10, rx739_tgt, $I10, 1
+ index $I11, "/!", $S10
+ lt $I11, 0, rx739_fail
+ inc rx739_pos
+ set_addr $I10, rxcap_747_fail
+ ($I12, $I11) = rx739_cur."!mark_peek"($I10)
+ rx739_cur."!cursor_pos"($I11)
+ ($P10) = rx739_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx739_pos, "")
+ rx739_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("name")
+ goto rxcap_747_done
+ rxcap_747_fail:
+ goto rx739_fail
+ rxcap_747_done:
+ alt746_end:
+.annotate 'line', 333
# rx pass
- rx774_cur."!cursor_pass"(rx774_pos, "term:sym<identifier>")
- rx774_cur."!cursor_debug"("PASS ", "term:sym<identifier>", " at pos=", rx774_pos)
- .return (rx774_cur)
- rx774_fail:
+ rx739_cur."!cursor_pass"(rx739_pos, "param_var")
+ rx739_cur."!cursor_debug"("PASS ", "param_var", " at pos=", rx739_pos)
+ .return (rx739_cur)
+ rx739_fail:
.annotate 'line', 4
- (rx774_rep, rx774_pos, $I10, $P10) = rx774_cur."!mark_fail"(0)
- lt rx774_pos, -1, rx774_done
- eq rx774_pos, -1, rx774_fail
+ (rx739_rep, rx739_pos, $I10, $P10) = rx739_cur."!mark_fail"(0)
+ lt rx739_pos, -1, rx739_done
+ eq rx739_pos, -1, rx739_fail
jump $I10
- rx774_done:
- rx774_cur."!cursor_fail"()
- rx774_cur."!cursor_debug"("FAIL ", "term:sym<identifier>")
- .return (rx774_cur)
+ rx739_done:
+ rx739_cur."!cursor_fail"()
+ rx739_cur."!cursor_debug"("FAIL ", "param_var")
+ .return (rx739_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<identifier>" :subid("176_1274022894.43745") :method
+.sub "!PREFIX__param_var" :subid("173_1275811487.95429") :method
.annotate 'line', 4
- $P776 = self."!PREFIX__!subrule"("identifier", "")
- new $P777, "ResizablePMCArray"
- push $P777, $P776
- .return ($P777)
+ $P741 = self."!PREFIX__!subrule"("sigil", "")
+ new $P742, "ResizablePMCArray"
+ push $P742, $P741
+ .return ($P742)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<name>" :subid("177_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "named_param" :subid("174_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx780_tgt
- .local int rx780_pos
- .local int rx780_off
- .local int rx780_eos
- .local int rx780_rep
- .local pmc rx780_cur
- (rx780_cur, rx780_pos, rx780_tgt) = self."!cursor_start"()
- rx780_cur."!cursor_debug"("START ", "term:sym<name>")
- rx780_cur."!cursor_caparray"("args")
- .lex unicode:"$\x{a2}", rx780_cur
- .local pmc match
- .lex "$/", match
- length rx780_eos, rx780_tgt
- set rx780_off, 0
- lt rx780_pos, 2, rx780_start
- sub rx780_off, rx780_pos, 1
- substr rx780_tgt, rx780_tgt, rx780_off
- rx780_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan784_done
- goto rxscan784_scan
- rxscan784_loop:
- ($P10) = rx780_cur."from"()
- inc $P10
- set rx780_pos, $P10
- ge rx780_pos, rx780_eos, rxscan784_done
- rxscan784_scan:
- set_addr $I10, rxscan784_loop
- rx780_cur."!mark_push"(0, rx780_pos, $I10)
- rxscan784_done:
-.annotate 'line', 369
- # rx subrule "name" subtype=capture negate=
- rx780_cur."!cursor_pos"(rx780_pos)
- $P10 = rx780_cur."name"()
- unless $P10, rx780_fail
- rx780_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("name")
- rx780_pos = $P10."pos"()
- # rx rxquantr785 ** 0..1
- set_addr $I786, rxquantr785_done
- rx780_cur."!mark_push"(0, rx780_pos, $I786)
- rxquantr785_loop:
- # rx subrule "args" subtype=capture negate=
- rx780_cur."!cursor_pos"(rx780_pos)
- $P10 = rx780_cur."args"()
- unless $P10, rx780_fail
- rx780_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("args")
- rx780_pos = $P10."pos"()
- (rx780_rep) = rx780_cur."!mark_commit"($I786)
- rxquantr785_done:
-.annotate 'line', 368
+ .local string rx749_tgt
+ .local int rx749_pos
+ .local int rx749_off
+ .local int rx749_eos
+ .local int rx749_rep
+ .local pmc rx749_cur
+ (rx749_cur, rx749_pos, rx749_tgt) = self."!cursor_start"()
+ rx749_cur."!cursor_debug"("START ", "named_param")
+ .lex unicode:"$\x{a2}", rx749_cur
+ .local pmc match
+ .lex "$/", match
+ length rx749_eos, rx749_tgt
+ gt rx749_pos, rx749_eos, rx749_done
+ set rx749_off, 0
+ lt rx749_pos, 2, rx749_start
+ sub rx749_off, rx749_pos, 1
+ substr rx749_tgt, rx749_tgt, rx749_off
+ rx749_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan753_done
+ goto rxscan753_scan
+ rxscan753_loop:
+ ($P10) = rx749_cur."from"()
+ inc $P10
+ set rx749_pos, $P10
+ ge rx749_pos, rx749_eos, rxscan753_done
+ rxscan753_scan:
+ set_addr $I10, rxscan753_loop
+ rx749_cur."!mark_push"(0, rx749_pos, $I10)
+ rxscan753_done:
+.annotate 'line', 339
+ # rx literal ":"
+ add $I11, rx749_pos, 1
+ gt $I11, rx749_eos, rx749_fail
+ sub $I11, rx749_pos, rx749_off
+ substr $S10, rx749_tgt, $I11, 1
+ ne $S10, ":", rx749_fail
+ add rx749_pos, 1
+ # rx subrule "param_var" subtype=capture negate=
+ rx749_cur."!cursor_pos"(rx749_pos)
+ $P10 = rx749_cur."param_var"()
+ unless $P10, rx749_fail
+ rx749_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("param_var")
+ rx749_pos = $P10."pos"()
+.annotate 'line', 338
# rx pass
- rx780_cur."!cursor_pass"(rx780_pos, "term:sym<name>")
- rx780_cur."!cursor_debug"("PASS ", "term:sym<name>", " at pos=", rx780_pos)
- .return (rx780_cur)
- rx780_fail:
+ rx749_cur."!cursor_pass"(rx749_pos, "named_param")
+ rx749_cur."!cursor_debug"("PASS ", "named_param", " at pos=", rx749_pos)
+ .return (rx749_cur)
+ rx749_fail:
.annotate 'line', 4
- (rx780_rep, rx780_pos, $I10, $P10) = rx780_cur."!mark_fail"(0)
- lt rx780_pos, -1, rx780_done
- eq rx780_pos, -1, rx780_fail
+ (rx749_rep, rx749_pos, $I10, $P10) = rx749_cur."!mark_fail"(0)
+ lt rx749_pos, -1, rx749_done
+ eq rx749_pos, -1, rx749_fail
jump $I10
- rx780_done:
- rx780_cur."!cursor_fail"()
- rx780_cur."!cursor_debug"("FAIL ", "term:sym<name>")
- .return (rx780_cur)
+ rx749_done:
+ rx749_cur."!cursor_fail"()
+ rx749_cur."!cursor_debug"("FAIL ", "named_param")
+ .return (rx749_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<name>" :subid("178_1274022894.43745") :method
+.sub "!PREFIX__named_param" :subid("175_1275811487.95429") :method
.annotate 'line', 4
- $P782 = self."!PREFIX__!subrule"("name", "")
- new $P783, "ResizablePMCArray"
- push $P783, $P782
- .return ($P783)
+ $P751 = self."!PREFIX__!subrule"("param_var", ":")
+ new $P752, "ResizablePMCArray"
+ push $P752, $P751
+ .return ($P752)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<pir::op>" :subid("179_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "default_value" :subid("176_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx788_tgt
- .local int rx788_pos
- .local int rx788_off
- .local int rx788_eos
- .local int rx788_rep
- .local pmc rx788_cur
- (rx788_cur, rx788_pos, rx788_tgt) = self."!cursor_start"()
- rx788_cur."!cursor_debug"("START ", "term:sym<pir::op>")
- rx788_cur."!cursor_caparray"("args")
- .lex unicode:"$\x{a2}", rx788_cur
- .local pmc match
- .lex "$/", match
- length rx788_eos, rx788_tgt
- set rx788_off, 0
- lt rx788_pos, 2, rx788_start
- sub rx788_off, rx788_pos, 1
- substr rx788_tgt, rx788_tgt, rx788_off
- rx788_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan791_done
- goto rxscan791_scan
- rxscan791_loop:
- ($P10) = rx788_cur."from"()
- inc $P10
- set rx788_pos, $P10
- ge rx788_pos, rx788_eos, rxscan791_done
- rxscan791_scan:
- set_addr $I10, rxscan791_loop
- rx788_cur."!mark_push"(0, rx788_pos, $I10)
- rxscan791_done:
-.annotate 'line', 373
- # rx literal "pir::"
- add $I11, rx788_pos, 5
- gt $I11, rx788_eos, rx788_fail
- sub $I11, rx788_pos, rx788_off
- substr $S10, rx788_tgt, $I11, 5
- ne $S10, "pir::", rx788_fail
- add rx788_pos, 5
- # rx subcapture "op"
- set_addr $I10, rxcap_792_fail
- rx788_cur."!mark_push"(0, rx788_pos, $I10)
- # rx charclass_q w r 1..-1
- sub $I10, rx788_pos, rx788_off
- find_not_cclass $I11, 8192, rx788_tgt, $I10, rx788_eos
- add $I12, $I10, 1
- lt $I11, $I12, rx788_fail
- add rx788_pos, rx788_off, $I11
- set_addr $I10, rxcap_792_fail
- ($I12, $I11) = rx788_cur."!mark_peek"($I10)
- rx788_cur."!cursor_pos"($I11)
- ($P10) = rx788_cur."!cursor_start"()
- $P10."!cursor_pass"(rx788_pos, "")
- rx788_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("op")
- goto rxcap_792_done
- rxcap_792_fail:
- goto rx788_fail
- rxcap_792_done:
- # rx rxquantr793 ** 0..1
- set_addr $I794, rxquantr793_done
- rx788_cur."!mark_push"(0, rx788_pos, $I794)
- rxquantr793_loop:
- # rx subrule "args" subtype=capture negate=
- rx788_cur."!cursor_pos"(rx788_pos)
- $P10 = rx788_cur."args"()
- unless $P10, rx788_fail
- rx788_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("args")
- rx788_pos = $P10."pos"()
- (rx788_rep) = rx788_cur."!mark_commit"($I794)
- rxquantr793_done:
-.annotate 'line', 372
+ .local string rx755_tgt
+ .local int rx755_pos
+ .local int rx755_off
+ .local int rx755_eos
+ .local int rx755_rep
+ .local pmc rx755_cur
+ (rx755_cur, rx755_pos, rx755_tgt) = self."!cursor_start"()
+ rx755_cur."!cursor_debug"("START ", "default_value")
+ .lex unicode:"$\x{a2}", rx755_cur
+ .local pmc match
+ .lex "$/", match
+ length rx755_eos, rx755_tgt
+ gt rx755_pos, rx755_eos, rx755_done
+ set rx755_off, 0
+ lt rx755_pos, 2, rx755_start
+ sub rx755_off, rx755_pos, 1
+ substr rx755_tgt, rx755_tgt, rx755_off
+ rx755_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan759_done
+ goto rxscan759_scan
+ rxscan759_loop:
+ ($P10) = rx755_cur."from"()
+ inc $P10
+ set rx755_pos, $P10
+ ge rx755_pos, rx755_eos, rxscan759_done
+ rxscan759_scan:
+ set_addr $I10, rxscan759_loop
+ rx755_cur."!mark_push"(0, rx755_pos, $I10)
+ rxscan759_done:
+.annotate 'line', 342
+ # rx subrule "ws" subtype=method negate=
+ rx755_cur."!cursor_pos"(rx755_pos)
+ $P10 = rx755_cur."ws"()
+ unless $P10, rx755_fail
+ rx755_pos = $P10."pos"()
+ # rx literal "="
+ add $I11, rx755_pos, 1
+ gt $I11, rx755_eos, rx755_fail
+ sub $I11, rx755_pos, rx755_off
+ substr $S10, rx755_tgt, $I11, 1
+ ne $S10, "=", rx755_fail
+ add rx755_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx755_cur."!cursor_pos"(rx755_pos)
+ $P10 = rx755_cur."ws"()
+ unless $P10, rx755_fail
+ rx755_pos = $P10."pos"()
+ # rx subrule "EXPR" subtype=capture negate=
+ rx755_cur."!cursor_pos"(rx755_pos)
+ $P10 = rx755_cur."EXPR"("i=")
+ unless $P10, rx755_fail
+ rx755_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx755_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx755_cur."!cursor_pos"(rx755_pos)
+ $P10 = rx755_cur."ws"()
+ unless $P10, rx755_fail
+ rx755_pos = $P10."pos"()
# rx pass
- rx788_cur."!cursor_pass"(rx788_pos, "term:sym<pir::op>")
- rx788_cur."!cursor_debug"("PASS ", "term:sym<pir::op>", " at pos=", rx788_pos)
- .return (rx788_cur)
- rx788_fail:
+ rx755_cur."!cursor_pass"(rx755_pos, "default_value")
+ rx755_cur."!cursor_debug"("PASS ", "default_value", " at pos=", rx755_pos)
+ .return (rx755_cur)
+ rx755_fail:
.annotate 'line', 4
- (rx788_rep, rx788_pos, $I10, $P10) = rx788_cur."!mark_fail"(0)
- lt rx788_pos, -1, rx788_done
- eq rx788_pos, -1, rx788_fail
+ (rx755_rep, rx755_pos, $I10, $P10) = rx755_cur."!mark_fail"(0)
+ lt rx755_pos, -1, rx755_done
+ eq rx755_pos, -1, rx755_fail
jump $I10
- rx788_done:
- rx788_cur."!cursor_fail"()
- rx788_cur."!cursor_debug"("FAIL ", "term:sym<pir::op>")
- .return (rx788_cur)
+ rx755_done:
+ rx755_cur."!cursor_fail"()
+ rx755_cur."!cursor_debug"("FAIL ", "default_value")
+ .return (rx755_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<pir::op>" :subid("180_1274022894.43745") :method
+.sub "!PREFIX__default_value" :subid("177_1275811487.95429") :method
.annotate 'line', 4
- new $P790, "ResizablePMCArray"
- push $P790, "pir::"
- .return ($P790)
+ $P757 = self."!PREFIX__!subrule"("ws", "")
+ new $P758, "ResizablePMCArray"
+ push $P758, $P757
+ .return ($P758)
.end
.namespace ["NQP";"Grammar"]
-.sub "args" :subid("181_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "regex_declarator" :subid("178_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx796_tgt
- .local int rx796_pos
- .local int rx796_off
- .local int rx796_eos
- .local int rx796_rep
- .local pmc rx796_cur
- (rx796_cur, rx796_pos, rx796_tgt) = self."!cursor_start"()
- rx796_cur."!cursor_debug"("START ", "args")
- .lex unicode:"$\x{a2}", rx796_cur
+ .local string rx764_tgt
+ .local int rx764_pos
+ .local int rx764_off
+ .local int rx764_eos
+ .local int rx764_rep
+ .local pmc rx764_cur
+ (rx764_cur, rx764_pos, rx764_tgt) = self."!cursor_start"()
+ rx764_cur."!cursor_debug"("START ", "regex_declarator")
+ rx764_cur."!cursor_caparray"("signature")
+ .lex unicode:"$\x{a2}", rx764_cur
.local pmc match
.lex "$/", match
- length rx796_eos, rx796_tgt
- set rx796_off, 0
- lt rx796_pos, 2, rx796_start
- sub rx796_off, rx796_pos, 1
- substr rx796_tgt, rx796_tgt, rx796_off
- rx796_start:
+ length rx764_eos, rx764_tgt
+ gt rx764_pos, rx764_eos, rx764_done
+ set rx764_off, 0
+ lt rx764_pos, 2, rx764_start
+ sub rx764_off, rx764_pos, 1
+ substr rx764_tgt, rx764_tgt, rx764_off
+ rx764_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan800_done
- goto rxscan800_scan
- rxscan800_loop:
- ($P10) = rx796_cur."from"()
+ ne $I10, -1, rxscan768_done
+ goto rxscan768_scan
+ rxscan768_loop:
+ ($P10) = rx764_cur."from"()
inc $P10
- set rx796_pos, $P10
- ge rx796_pos, rx796_eos, rxscan800_done
- rxscan800_scan:
- set_addr $I10, rxscan800_loop
- rx796_cur."!mark_push"(0, rx796_pos, $I10)
- rxscan800_done:
-.annotate 'line', 377
+ set rx764_pos, $P10
+ ge rx764_pos, rx764_eos, rxscan768_done
+ rxscan768_scan:
+ set_addr $I10, rxscan768_loop
+ rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ rxscan768_done:
+.annotate 'line', 344
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ alt770_0:
+.annotate 'line', 345
+ set_addr $I10, alt770_1
+ rx764_cur."!mark_push"(0, rx764_pos, $I10)
+.annotate 'line', 346
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ # rx subcapture "proto"
+ set_addr $I10, rxcap_772_fail
+ rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ # rx literal "proto"
+ add $I11, rx764_pos, 5
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 5
+ ne $S10, "proto", rx764_fail
+ add rx764_pos, 5
+ set_addr $I10, rxcap_772_fail
+ ($I12, $I11) = rx764_cur."!mark_peek"($I10)
+ rx764_cur."!cursor_pos"($I11)
+ ($P10) = rx764_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx764_pos, "")
+ rx764_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("proto")
+ goto rxcap_772_done
+ rxcap_772_fail:
+ goto rx764_fail
+ rxcap_772_done:
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ alt774_0:
+ set_addr $I10, alt774_1
+ rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ # rx literal "regex"
+ add $I11, rx764_pos, 5
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 5
+ ne $S10, "regex", rx764_fail
+ add rx764_pos, 5
+ goto alt774_end
+ alt774_1:
+ set_addr $I10, alt774_2
+ rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ # rx literal "token"
+ add $I11, rx764_pos, 5
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 5
+ ne $S10, "token", rx764_fail
+ add rx764_pos, 5
+ goto alt774_end
+ alt774_2:
+ # rx literal "rule"
+ add $I11, rx764_pos, 4
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 4
+ ne $S10, "rule", rx764_fail
+ add rx764_pos, 4
+ alt774_end:
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+.annotate 'line', 347
+ # rx subrule "deflongname" subtype=capture negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."deflongname"()
+ unless $P10, rx764_fail
+ rx764_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("deflongname")
+ rx764_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ alt777_0:
+.annotate 'line', 348
+ set_addr $I10, alt777_1
+ rx764_cur."!mark_push"(0, rx764_pos, $I10)
+.annotate 'line', 349
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ # rx literal "{"
+ add $I11, rx764_pos, 1
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 1
+ ne $S10, "{", rx764_fail
+ add rx764_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ # rx literal "<...>"
+ add $I11, rx764_pos, 5
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 5
+ ne $S10, "<...>", rx764_fail
+ add rx764_pos, 5
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ # rx literal "}"
+ add $I11, rx764_pos, 1
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 1
+ ne $S10, "}", rx764_fail
+ add rx764_pos, 1
+ # rx subrule "ENDSTMT" subtype=zerowidth negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ENDSTMT"()
+ unless $P10, rx764_fail
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ goto alt777_end
+ alt777_1:
+.annotate 'line', 350
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ # rx subrule "panic" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."panic"("Proto regex body must be <...>")
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ alt777_end:
+.annotate 'line', 351
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+.annotate 'line', 346
+ goto alt770_end
+ alt770_1:
+.annotate 'line', 352
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_787_fail
+ rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ alt786_0:
+ set_addr $I10, alt786_1
+ rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ # rx literal "regex"
+ add $I11, rx764_pos, 5
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 5
+ ne $S10, "regex", rx764_fail
+ add rx764_pos, 5
+ goto alt786_end
+ alt786_1:
+ set_addr $I10, alt786_2
+ rx764_cur."!mark_push"(0, rx764_pos, $I10)
+ # rx literal "token"
+ add $I11, rx764_pos, 5
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 5
+ ne $S10, "token", rx764_fail
+ add rx764_pos, 5
+ goto alt786_end
+ alt786_2:
+ # rx literal "rule"
+ add $I11, rx764_pos, 4
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 4
+ ne $S10, "rule", rx764_fail
+ add rx764_pos, 4
+ alt786_end:
+ set_addr $I10, rxcap_787_fail
+ ($I12, $I11) = rx764_cur."!mark_peek"($I10)
+ rx764_cur."!cursor_pos"($I11)
+ ($P10) = rx764_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx764_pos, "")
+ rx764_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_787_done
+ rxcap_787_fail:
+ goto rx764_fail
+ rxcap_787_done:
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+.annotate 'line', 353
+ # rx subrule "deflongname" subtype=capture negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."deflongname"()
+ unless $P10, rx764_fail
+ rx764_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("deflongname")
+ rx764_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+.annotate 'line', 354
+ # rx subrule "newpad" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."newpad"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+.annotate 'line', 355
+ # rx rxquantr791 ** 0..1
+ set_addr $I796, rxquantr791_done
+ rx764_cur."!mark_push"(0, rx764_pos, $I796)
+ rxquantr791_loop:
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
# rx literal "("
- add $I11, rx796_pos, 1
- gt $I11, rx796_eos, rx796_fail
- sub $I11, rx796_pos, rx796_off
- substr $S10, rx796_tgt, $I11, 1
- ne $S10, "(", rx796_fail
- add rx796_pos, 1
- # rx subrule "arglist" subtype=capture negate=
- rx796_cur."!cursor_pos"(rx796_pos)
- $P10 = rx796_cur."arglist"()
- unless $P10, rx796_fail
- rx796_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("arglist")
- rx796_pos = $P10."pos"()
+ add $I11, rx764_pos, 1
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 1
+ ne $S10, "(", rx764_fail
+ add rx764_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ # rx subrule "signature" subtype=capture negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."signature"()
+ unless $P10, rx764_fail
+ rx764_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("signature")
+ rx764_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx796_pos, 1
- gt $I11, rx796_eos, rx796_fail
- sub $I11, rx796_pos, rx796_off
- substr $S10, rx796_tgt, $I11, 1
- ne $S10, ")", rx796_fail
- add rx796_pos, 1
+ add $I11, rx764_pos, 1
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 1
+ ne $S10, ")", rx764_fail
+ add rx764_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ (rx764_rep) = rx764_cur."!mark_commit"($I796)
+ rxquantr791_done:
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+.annotate 'line', 356
+ # rx reduce name="regex_declarator" key="open"
+ rx764_cur."!cursor_pos"(rx764_pos)
+ rx764_cur."!reduce"("regex_declarator", "open")
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+.annotate 'line', 357
+ # rx literal "{"
+ add $I11, rx764_pos, 1
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 1
+ ne $S10, "{", rx764_fail
+ add rx764_pos, 1
+ # rx subrule "LANG" subtype=capture negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."LANG"("Regex", "nibbler")
+ unless $P10, rx764_fail
+ rx764_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("p6regex")
+ rx764_pos = $P10."pos"()
+ # rx literal "}"
+ add $I11, rx764_pos, 1
+ gt $I11, rx764_eos, rx764_fail
+ sub $I11, rx764_pos, rx764_off
+ substr $S10, rx764_tgt, $I11, 1
+ ne $S10, "}", rx764_fail
+ add rx764_pos, 1
+ # rx subrule "ENDSTMT" subtype=zerowidth negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ENDSTMT"()
+ unless $P10, rx764_fail
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+ alt770_end:
+.annotate 'line', 358
+ # rx subrule "ws" subtype=method negate=
+ rx764_cur."!cursor_pos"(rx764_pos)
+ $P10 = rx764_cur."ws"()
+ unless $P10, rx764_fail
+ rx764_pos = $P10."pos"()
+.annotate 'line', 344
# rx pass
- rx796_cur."!cursor_pass"(rx796_pos, "args")
- rx796_cur."!cursor_debug"("PASS ", "args", " at pos=", rx796_pos)
- .return (rx796_cur)
- rx796_fail:
+ rx764_cur."!cursor_pass"(rx764_pos, "regex_declarator")
+ rx764_cur."!cursor_debug"("PASS ", "regex_declarator", " at pos=", rx764_pos)
+ .return (rx764_cur)
+ rx764_fail:
.annotate 'line', 4
- (rx796_rep, rx796_pos, $I10, $P10) = rx796_cur."!mark_fail"(0)
- lt rx796_pos, -1, rx796_done
- eq rx796_pos, -1, rx796_fail
+ (rx764_rep, rx764_pos, $I10, $P10) = rx764_cur."!mark_fail"(0)
+ lt rx764_pos, -1, rx764_done
+ eq rx764_pos, -1, rx764_fail
jump $I10
- rx796_done:
- rx796_cur."!cursor_fail"()
- rx796_cur."!cursor_debug"("FAIL ", "args")
- .return (rx796_cur)
+ rx764_done:
+ rx764_cur."!cursor_fail"()
+ rx764_cur."!cursor_debug"("FAIL ", "regex_declarator")
+ .return (rx764_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__args" :subid("182_1274022894.43745") :method
+.sub "!PREFIX__regex_declarator" :subid("179_1275811487.95429") :method
.annotate 'line', 4
- $P798 = self."!PREFIX__!subrule"("arglist", "(")
- new $P799, "ResizablePMCArray"
- push $P799, $P798
- .return ($P799)
+ $P766 = self."!PREFIX__!subrule"("ws", "")
+ new $P767, "ResizablePMCArray"
+ push $P767, $P766
+ .return ($P767)
.end
.namespace ["NQP";"Grammar"]
-.sub "arglist" :subid("183_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "dotty" :subid("180_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
.local string rx802_tgt
.local int rx802_pos
@@ -9465,11 +9381,13 @@
.local int rx802_rep
.local pmc rx802_cur
(rx802_cur, rx802_pos, rx802_tgt) = self."!cursor_start"()
- rx802_cur."!cursor_debug"("START ", "arglist")
+ rx802_cur."!cursor_debug"("START ", "dotty")
+ rx802_cur."!cursor_caparray"("args")
.lex unicode:"$\x{a2}", rx802_cur
.local pmc match
.lex "$/", match
length rx802_eos, rx802_tgt
+ gt rx802_pos, rx802_eos, rx802_done
set rx802_off, 0
lt rx802_pos, 2, rx802_start
sub rx802_off, rx802_pos, 1
@@ -9487,31 +9405,114 @@
set_addr $I10, rxscan806_loop
rx802_cur."!mark_push"(0, rx802_pos, $I10)
rxscan806_done:
-.annotate 'line', 381
- # rx subrule "ws" subtype=method negate=
- rx802_cur."!cursor_pos"(rx802_pos)
- $P10 = rx802_cur."ws"()
- unless $P10, rx802_fail
- rx802_pos = $P10."pos"()
+.annotate 'line', 362
+ # rx literal "."
+ add $I11, rx802_pos, 1
+ gt $I11, rx802_eos, rx802_fail
+ sub $I11, rx802_pos, rx802_off
+ substr $S10, rx802_tgt, $I11, 1
+ ne $S10, ".", rx802_fail
+ add rx802_pos, 1
alt807_0:
-.annotate 'line', 382
+.annotate 'line', 363
set_addr $I10, alt807_1
rx802_cur."!mark_push"(0, rx802_pos, $I10)
-.annotate 'line', 383
- # rx subrule "EXPR" subtype=capture negate=
+ # rx subrule "identifier" subtype=capture negate=
rx802_cur."!cursor_pos"(rx802_pos)
- $P10 = rx802_cur."EXPR"("f=")
+ $P10 = rx802_cur."identifier"()
unless $P10, rx802_fail
rx802_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
+ $P10."!cursor_names"("longname=identifier")
rx802_pos = $P10."pos"()
goto alt807_end
alt807_1:
+.annotate 'line', 364
+ # rx enumcharlist negate=0 zerowidth
+ ge rx802_pos, rx802_eos, rx802_fail
+ sub $I10, rx802_pos, rx802_off
+ substr $S10, rx802_tgt, $I10, 1
+ index $I11, "'\"", $S10
+ lt $I11, 0, rx802_fail
+ # rx subrule "quote" subtype=capture negate=
+ rx802_cur."!cursor_pos"(rx802_pos)
+ $P10 = rx802_cur."quote"()
+ unless $P10, rx802_fail
+ rx802_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote")
+ rx802_pos = $P10."pos"()
+ alt808_0:
+.annotate 'line', 365
+ set_addr $I10, alt808_1
+ rx802_cur."!mark_push"(0, rx802_pos, $I10)
+ # rx enumcharlist negate=0 zerowidth
+ ge rx802_pos, rx802_eos, rx802_fail
+ sub $I10, rx802_pos, rx802_off
+ substr $S10, rx802_tgt, $I10, 1
+ index $I11, "(", $S10
+ lt $I11, 0, rx802_fail
+ goto alt808_end
+ alt808_1:
+ # rx subrule "panic" subtype=method negate=
+ rx802_cur."!cursor_pos"(rx802_pos)
+ $P10 = rx802_cur."panic"("Quoted method name requires parenthesized arguments")
+ unless $P10, rx802_fail
+ rx802_pos = $P10."pos"()
+ alt808_end:
alt807_end:
-.annotate 'line', 380
+.annotate 'line', 371
+ # rx rxquantr809 ** 0..1
+ set_addr $I811, rxquantr809_done
+ rx802_cur."!mark_push"(0, rx802_pos, $I811)
+ rxquantr809_loop:
+ alt810_0:
+.annotate 'line', 368
+ set_addr $I10, alt810_1
+ rx802_cur."!mark_push"(0, rx802_pos, $I10)
+.annotate 'line', 369
+ # rx enumcharlist negate=0 zerowidth
+ ge rx802_pos, rx802_eos, rx802_fail
+ sub $I10, rx802_pos, rx802_off
+ substr $S10, rx802_tgt, $I10, 1
+ index $I11, "(", $S10
+ lt $I11, 0, rx802_fail
+ # rx subrule "args" subtype=capture negate=
+ rx802_cur."!cursor_pos"(rx802_pos)
+ $P10 = rx802_cur."args"()
+ unless $P10, rx802_fail
+ rx802_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("args")
+ rx802_pos = $P10."pos"()
+ goto alt810_end
+ alt810_1:
+.annotate 'line', 370
+ # rx literal ":"
+ add $I11, rx802_pos, 1
+ gt $I11, rx802_eos, rx802_fail
+ sub $I11, rx802_pos, rx802_off
+ substr $S10, rx802_tgt, $I11, 1
+ ne $S10, ":", rx802_fail
+ add rx802_pos, 1
+ # rx charclass s
+ ge rx802_pos, rx802_eos, rx802_fail
+ sub $I10, rx802_pos, rx802_off
+ is_cclass $I11, 32, rx802_tgt, $I10
+ unless $I11, rx802_fail
+ inc rx802_pos
+ # rx subrule "arglist" subtype=capture negate=
+ rx802_cur."!cursor_pos"(rx802_pos)
+ $P10 = rx802_cur."arglist"()
+ unless $P10, rx802_fail
+ rx802_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("args")
+ rx802_pos = $P10."pos"()
+ alt810_end:
+.annotate 'line', 371
+ (rx802_rep) = rx802_cur."!mark_commit"($I811)
+ rxquantr809_done:
+.annotate 'line', 361
# rx pass
- rx802_cur."!cursor_pass"(rx802_pos, "arglist")
- rx802_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx802_pos)
+ rx802_cur."!cursor_pass"(rx802_pos, "dotty")
+ rx802_cur."!cursor_debug"("PASS ", "dotty", " at pos=", rx802_pos)
.return (rx802_cur)
rx802_fail:
.annotate 'line', 4
@@ -9521,178 +9522,132 @@
jump $I10
rx802_done:
rx802_cur."!cursor_fail"()
- rx802_cur."!cursor_debug"("FAIL ", "arglist")
+ rx802_cur."!cursor_debug"("FAIL ", "dotty")
.return (rx802_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__arglist" :subid("184_1274022894.43745") :method
+.sub "!PREFIX__dotty" :subid("181_1275811487.95429") :method
.annotate 'line', 4
- $P804 = self."!PREFIX__!subrule"("", "")
+ $P804 = self."!PREFIX__!subrule"("identifier", ".")
new $P805, "ResizablePMCArray"
+ push $P805, "'"
+ push $P805, "\""
push $P805, $P804
.return ($P805)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<value>" :subid("185_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx809_tgt
- .local int rx809_pos
- .local int rx809_off
- .local int rx809_eos
- .local int rx809_rep
- .local pmc rx809_cur
- (rx809_cur, rx809_pos, rx809_tgt) = self."!cursor_start"()
- rx809_cur."!cursor_debug"("START ", "term:sym<value>")
- .lex unicode:"$\x{a2}", rx809_cur
- .local pmc match
- .lex "$/", match
- length rx809_eos, rx809_tgt
- set rx809_off, 0
- lt rx809_pos, 2, rx809_start
- sub rx809_off, rx809_pos, 1
- substr rx809_tgt, rx809_tgt, rx809_off
- rx809_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan813_done
- goto rxscan813_scan
- rxscan813_loop:
- ($P10) = rx809_cur."from"()
- inc $P10
- set rx809_pos, $P10
- ge rx809_pos, rx809_eos, rxscan813_done
- rxscan813_scan:
- set_addr $I10, rxscan813_loop
- rx809_cur."!mark_push"(0, rx809_pos, $I10)
- rxscan813_done:
-.annotate 'line', 389
- # rx subrule "value" subtype=capture negate=
- rx809_cur."!cursor_pos"(rx809_pos)
- $P10 = rx809_cur."value"()
- unless $P10, rx809_fail
- rx809_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("value")
- rx809_pos = $P10."pos"()
- # rx pass
- rx809_cur."!cursor_pass"(rx809_pos, "term:sym<value>")
- rx809_cur."!cursor_debug"("PASS ", "term:sym<value>", " at pos=", rx809_pos)
- .return (rx809_cur)
- rx809_fail:
-.annotate 'line', 4
- (rx809_rep, rx809_pos, $I10, $P10) = rx809_cur."!mark_fail"(0)
- lt rx809_pos, -1, rx809_done
- eq rx809_pos, -1, rx809_fail
- jump $I10
- rx809_done:
- rx809_cur."!cursor_fail"()
- rx809_cur."!cursor_debug"("FAIL ", "term:sym<value>")
- .return (rx809_cur)
- .return ()
+.sub "term" :subid("182_1275811487.95429") :method
+.annotate 'line', 375
+ $P813 = self."!protoregex"("term")
+ .return ($P813)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<value>" :subid("186_1274022894.43745") :method
-.annotate 'line', 4
- $P811 = self."!PREFIX__!subrule"("value", "")
- new $P812, "ResizablePMCArray"
- push $P812, $P811
- .return ($P812)
+.sub "!PREFIX__term" :subid("183_1275811487.95429") :method
+.annotate 'line', 375
+ $P815 = self."!PREFIX__!protoregex"("term")
+ .return ($P815)
.end
.namespace ["NQP";"Grammar"]
-.sub "value" :subid("187_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<self>" :subid("184_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx815_tgt
- .local int rx815_pos
- .local int rx815_off
- .local int rx815_eos
- .local int rx815_rep
- .local pmc rx815_cur
- (rx815_cur, rx815_pos, rx815_tgt) = self."!cursor_start"()
- rx815_cur."!cursor_debug"("START ", "value")
- .lex unicode:"$\x{a2}", rx815_cur
+ .local string rx817_tgt
+ .local int rx817_pos
+ .local int rx817_off
+ .local int rx817_eos
+ .local int rx817_rep
+ .local pmc rx817_cur
+ (rx817_cur, rx817_pos, rx817_tgt) = self."!cursor_start"()
+ rx817_cur."!cursor_debug"("START ", "term:sym<self>")
+ .lex unicode:"$\x{a2}", rx817_cur
.local pmc match
.lex "$/", match
- length rx815_eos, rx815_tgt
- set rx815_off, 0
- lt rx815_pos, 2, rx815_start
- sub rx815_off, rx815_pos, 1
- substr rx815_tgt, rx815_tgt, rx815_off
- rx815_start:
+ length rx817_eos, rx817_tgt
+ gt rx817_pos, rx817_eos, rx817_done
+ set rx817_off, 0
+ lt rx817_pos, 2, rx817_start
+ sub rx817_off, rx817_pos, 1
+ substr rx817_tgt, rx817_tgt, rx817_off
+ rx817_start:
$I10 = self.'from'()
ne $I10, -1, rxscan820_done
goto rxscan820_scan
rxscan820_loop:
- ($P10) = rx815_cur."from"()
+ ($P10) = rx817_cur."from"()
inc $P10
- set rx815_pos, $P10
- ge rx815_pos, rx815_eos, rxscan820_done
+ set rx817_pos, $P10
+ ge rx817_pos, rx817_eos, rxscan820_done
rxscan820_scan:
set_addr $I10, rxscan820_loop
- rx815_cur."!mark_push"(0, rx815_pos, $I10)
+ rx817_cur."!mark_push"(0, rx817_pos, $I10)
rxscan820_done:
- alt821_0:
-.annotate 'line', 391
- set_addr $I10, alt821_1
- rx815_cur."!mark_push"(0, rx815_pos, $I10)
-.annotate 'line', 392
- # rx subrule "quote" subtype=capture negate=
- rx815_cur."!cursor_pos"(rx815_pos)
- $P10 = rx815_cur."quote"()
- unless $P10, rx815_fail
- rx815_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote")
- rx815_pos = $P10."pos"()
- goto alt821_end
- alt821_1:
-.annotate 'line', 393
- # rx subrule "number" subtype=capture negate=
- rx815_cur."!cursor_pos"(rx815_pos)
- $P10 = rx815_cur."number"()
- unless $P10, rx815_fail
- rx815_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("number")
- rx815_pos = $P10."pos"()
- alt821_end:
-.annotate 'line', 391
+.annotate 'line', 377
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_821_fail
+ rx817_cur."!mark_push"(0, rx817_pos, $I10)
+ # rx literal "self"
+ add $I11, rx817_pos, 4
+ gt $I11, rx817_eos, rx817_fail
+ sub $I11, rx817_pos, rx817_off
+ substr $S10, rx817_tgt, $I11, 4
+ ne $S10, "self", rx817_fail
+ add rx817_pos, 4
+ set_addr $I10, rxcap_821_fail
+ ($I12, $I11) = rx817_cur."!mark_peek"($I10)
+ rx817_cur."!cursor_pos"($I11)
+ ($P10) = rx817_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx817_pos, "")
+ rx817_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_821_done
+ rxcap_821_fail:
+ goto rx817_fail
+ rxcap_821_done:
+ # rxanchor rwb
+ le rx817_pos, 0, rx817_fail
+ sub $I10, rx817_pos, rx817_off
+ is_cclass $I11, 8192, rx817_tgt, $I10
+ if $I11, rx817_fail
+ dec $I10
+ is_cclass $I11, 8192, rx817_tgt, $I10
+ unless $I11, rx817_fail
# rx pass
- rx815_cur."!cursor_pass"(rx815_pos, "value")
- rx815_cur."!cursor_debug"("PASS ", "value", " at pos=", rx815_pos)
- .return (rx815_cur)
- rx815_fail:
+ rx817_cur."!cursor_pass"(rx817_pos, "term:sym<self>")
+ rx817_cur."!cursor_debug"("PASS ", "term:sym<self>", " at pos=", rx817_pos)
+ .return (rx817_cur)
+ rx817_fail:
.annotate 'line', 4
- (rx815_rep, rx815_pos, $I10, $P10) = rx815_cur."!mark_fail"(0)
- lt rx815_pos, -1, rx815_done
- eq rx815_pos, -1, rx815_fail
+ (rx817_rep, rx817_pos, $I10, $P10) = rx817_cur."!mark_fail"(0)
+ lt rx817_pos, -1, rx817_done
+ eq rx817_pos, -1, rx817_fail
jump $I10
- rx815_done:
- rx815_cur."!cursor_fail"()
- rx815_cur."!cursor_debug"("FAIL ", "value")
- .return (rx815_cur)
+ rx817_done:
+ rx817_cur."!cursor_fail"()
+ rx817_cur."!cursor_debug"("FAIL ", "term:sym<self>")
+ .return (rx817_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__value" :subid("188_1274022894.43745") :method
+.sub "!PREFIX__term:sym<self>" :subid("185_1275811487.95429") :method
.annotate 'line', 4
- $P817 = self."!PREFIX__!subrule"("number", "")
- $P818 = self."!PREFIX__!subrule"("quote", "")
new $P819, "ResizablePMCArray"
- push $P819, $P817
- push $P819, $P818
+ push $P819, "self"
.return ($P819)
.end
.namespace ["NQP";"Grammar"]
-.sub "number" :subid("189_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<identifier>" :subid("186_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
.local string rx823_tgt
.local int rx823_pos
@@ -9701,81 +9656,54 @@
.local int rx823_rep
.local pmc rx823_cur
(rx823_cur, rx823_pos, rx823_tgt) = self."!cursor_start"()
- rx823_cur."!cursor_debug"("START ", "number")
+ rx823_cur."!cursor_debug"("START ", "term:sym<identifier>")
.lex unicode:"$\x{a2}", rx823_cur
.local pmc match
.lex "$/", match
length rx823_eos, rx823_tgt
+ gt rx823_pos, rx823_eos, rx823_done
set rx823_off, 0
lt rx823_pos, 2, rx823_start
sub rx823_off, rx823_pos, 1
substr rx823_tgt, rx823_tgt, rx823_off
rx823_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan826_done
- goto rxscan826_scan
- rxscan826_loop:
+ ne $I10, -1, rxscan827_done
+ goto rxscan827_scan
+ rxscan827_loop:
($P10) = rx823_cur."from"()
inc $P10
set rx823_pos, $P10
- ge rx823_pos, rx823_eos, rxscan826_done
- rxscan826_scan:
- set_addr $I10, rxscan826_loop
- rx823_cur."!mark_push"(0, rx823_pos, $I10)
- rxscan826_done:
-.annotate 'line', 397
- # rx subcapture "sign"
- set_addr $I10, rxcap_829_fail
+ ge rx823_pos, rx823_eos, rxscan827_done
+ rxscan827_scan:
+ set_addr $I10, rxscan827_loop
rx823_cur."!mark_push"(0, rx823_pos, $I10)
- # rx rxquantr827 ** 0..1
- set_addr $I828, rxquantr827_done
- rx823_cur."!mark_push"(0, rx823_pos, $I828)
- rxquantr827_loop:
- # rx enumcharlist negate=0
- ge rx823_pos, rx823_eos, rx823_fail
- sub $I10, rx823_pos, rx823_off
- substr $S10, rx823_tgt, $I10, 1
- index $I11, "+-", $S10
- lt $I11, 0, rx823_fail
- inc rx823_pos
- (rx823_rep) = rx823_cur."!mark_commit"($I828)
- rxquantr827_done:
- set_addr $I10, rxcap_829_fail
- ($I12, $I11) = rx823_cur."!mark_peek"($I10)
- rx823_cur."!cursor_pos"($I11)
- ($P10) = rx823_cur."!cursor_start"()
- $P10."!cursor_pass"(rx823_pos, "")
- rx823_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sign")
- goto rxcap_829_done
- rxcap_829_fail:
- goto rx823_fail
- rxcap_829_done:
- alt830_0:
-.annotate 'line', 398
- set_addr $I10, alt830_1
- rx823_cur."!mark_push"(0, rx823_pos, $I10)
- # rx subrule "dec_number" subtype=capture negate=
+ rxscan827_done:
+.annotate 'line', 380
+ # rx subrule "identifier" subtype=capture negate=
rx823_cur."!cursor_pos"(rx823_pos)
- $P10 = rx823_cur."dec_number"()
+ $P10 = rx823_cur."identifier"()
unless $P10, rx823_fail
rx823_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("dec_number")
+ $P10."!cursor_names"("identifier")
rx823_pos = $P10."pos"()
- goto alt830_end
- alt830_1:
- # rx subrule "integer" subtype=capture negate=
+ # rx enumcharlist negate=0 zerowidth
+ ge rx823_pos, rx823_eos, rx823_fail
+ sub $I10, rx823_pos, rx823_off
+ substr $S10, rx823_tgt, $I10, 1
+ index $I11, "(", $S10
+ lt $I11, 0, rx823_fail
+ # rx subrule "args" subtype=capture negate=
rx823_cur."!cursor_pos"(rx823_pos)
- $P10 = rx823_cur."integer"()
+ $P10 = rx823_cur."args"()
unless $P10, rx823_fail
rx823_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("integer")
+ $P10."!cursor_names"("args")
rx823_pos = $P10."pos"()
- alt830_end:
-.annotate 'line', 396
+.annotate 'line', 379
# rx pass
- rx823_cur."!cursor_pass"(rx823_pos, "number")
- rx823_cur."!cursor_debug"("PASS ", "number", " at pos=", rx823_pos)
+ rx823_cur."!cursor_pass"(rx823_pos, "term:sym<identifier>")
+ rx823_cur."!cursor_debug"("PASS ", "term:sym<identifier>", " at pos=", rx823_pos)
.return (rx823_cur)
rx823_fail:
.annotate 'line', 4
@@ -9785,373 +9713,377 @@
jump $I10
rx823_done:
rx823_cur."!cursor_fail"()
- rx823_cur."!cursor_debug"("FAIL ", "number")
+ rx823_cur."!cursor_debug"("FAIL ", "term:sym<identifier>")
.return (rx823_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__number" :subid("190_1274022894.43745") :method
+.sub "!PREFIX__term:sym<identifier>" :subid("187_1275811487.95429") :method
.annotate 'line', 4
- new $P825, "ResizablePMCArray"
- push $P825, ""
- .return ($P825)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "quote" :subid("191_1274022894.43745") :method
-.annotate 'line', 401
- $P832 = self."!protoregex"("quote")
- .return ($P832)
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote" :subid("192_1274022894.43745") :method
-.annotate 'line', 401
- $P834 = self."!PREFIX__!protoregex"("quote")
- .return ($P834)
+ $P825 = self."!PREFIX__!subrule"("identifier", "")
+ new $P826, "ResizablePMCArray"
+ push $P826, $P825
+ .return ($P826)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<apos>" :subid("193_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx836_tgt
- .local int rx836_pos
- .local int rx836_off
- .local int rx836_eos
- .local int rx836_rep
- .local pmc rx836_cur
- (rx836_cur, rx836_pos, rx836_tgt) = self."!cursor_start"()
- rx836_cur."!cursor_debug"("START ", "quote:sym<apos>")
- .lex unicode:"$\x{a2}", rx836_cur
- .local pmc match
- .lex "$/", match
- length rx836_eos, rx836_tgt
- set rx836_off, 0
- lt rx836_pos, 2, rx836_start
- sub rx836_off, rx836_pos, 1
- substr rx836_tgt, rx836_tgt, rx836_off
- rx836_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan839_done
- goto rxscan839_scan
- rxscan839_loop:
- ($P10) = rx836_cur."from"()
- inc $P10
- set rx836_pos, $P10
- ge rx836_pos, rx836_eos, rxscan839_done
- rxscan839_scan:
- set_addr $I10, rxscan839_loop
- rx836_cur."!mark_push"(0, rx836_pos, $I10)
- rxscan839_done:
-.annotate 'line', 402
- # rx enumcharlist negate=0 zerowidth
- ge rx836_pos, rx836_eos, rx836_fail
- sub $I10, rx836_pos, rx836_off
- substr $S10, rx836_tgt, $I10, 1
- index $I11, "'", $S10
- lt $I11, 0, rx836_fail
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx836_cur."!cursor_pos"(rx836_pos)
- $P10 = rx836_cur."quote_EXPR"(":q")
- unless $P10, rx836_fail
- rx836_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx836_pos = $P10."pos"()
+.sub "term:sym<name>" :subid("188_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx829_tgt
+ .local int rx829_pos
+ .local int rx829_off
+ .local int rx829_eos
+ .local int rx829_rep
+ .local pmc rx829_cur
+ (rx829_cur, rx829_pos, rx829_tgt) = self."!cursor_start"()
+ rx829_cur."!cursor_debug"("START ", "term:sym<name>")
+ rx829_cur."!cursor_caparray"("args")
+ .lex unicode:"$\x{a2}", rx829_cur
+ .local pmc match
+ .lex "$/", match
+ length rx829_eos, rx829_tgt
+ gt rx829_pos, rx829_eos, rx829_done
+ set rx829_off, 0
+ lt rx829_pos, 2, rx829_start
+ sub rx829_off, rx829_pos, 1
+ substr rx829_tgt, rx829_tgt, rx829_off
+ rx829_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan833_done
+ goto rxscan833_scan
+ rxscan833_loop:
+ ($P10) = rx829_cur."from"()
+ inc $P10
+ set rx829_pos, $P10
+ ge rx829_pos, rx829_eos, rxscan833_done
+ rxscan833_scan:
+ set_addr $I10, rxscan833_loop
+ rx829_cur."!mark_push"(0, rx829_pos, $I10)
+ rxscan833_done:
+.annotate 'line', 384
+ # rx subrule "name" subtype=capture negate=
+ rx829_cur."!cursor_pos"(rx829_pos)
+ $P10 = rx829_cur."name"()
+ unless $P10, rx829_fail
+ rx829_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("name")
+ rx829_pos = $P10."pos"()
+ # rx rxquantr834 ** 0..1
+ set_addr $I835, rxquantr834_done
+ rx829_cur."!mark_push"(0, rx829_pos, $I835)
+ rxquantr834_loop:
+ # rx subrule "args" subtype=capture negate=
+ rx829_cur."!cursor_pos"(rx829_pos)
+ $P10 = rx829_cur."args"()
+ unless $P10, rx829_fail
+ rx829_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("args")
+ rx829_pos = $P10."pos"()
+ (rx829_rep) = rx829_cur."!mark_commit"($I835)
+ rxquantr834_done:
+.annotate 'line', 383
# rx pass
- rx836_cur."!cursor_pass"(rx836_pos, "quote:sym<apos>")
- rx836_cur."!cursor_debug"("PASS ", "quote:sym<apos>", " at pos=", rx836_pos)
- .return (rx836_cur)
- rx836_fail:
+ rx829_cur."!cursor_pass"(rx829_pos, "term:sym<name>")
+ rx829_cur."!cursor_debug"("PASS ", "term:sym<name>", " at pos=", rx829_pos)
+ .return (rx829_cur)
+ rx829_fail:
.annotate 'line', 4
- (rx836_rep, rx836_pos, $I10, $P10) = rx836_cur."!mark_fail"(0)
- lt rx836_pos, -1, rx836_done
- eq rx836_pos, -1, rx836_fail
+ (rx829_rep, rx829_pos, $I10, $P10) = rx829_cur."!mark_fail"(0)
+ lt rx829_pos, -1, rx829_done
+ eq rx829_pos, -1, rx829_fail
jump $I10
- rx836_done:
- rx836_cur."!cursor_fail"()
- rx836_cur."!cursor_debug"("FAIL ", "quote:sym<apos>")
- .return (rx836_cur)
+ rx829_done:
+ rx829_cur."!cursor_fail"()
+ rx829_cur."!cursor_debug"("FAIL ", "term:sym<name>")
+ .return (rx829_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<apos>" :subid("194_1274022894.43745") :method
+.sub "!PREFIX__term:sym<name>" :subid("189_1275811487.95429") :method
.annotate 'line', 4
- new $P838, "ResizablePMCArray"
- push $P838, "'"
- .return ($P838)
+ $P831 = self."!PREFIX__!subrule"("name", "")
+ new $P832, "ResizablePMCArray"
+ push $P832, $P831
+ .return ($P832)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<dblq>" :subid("195_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<pir::op>" :subid("190_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx841_tgt
- .local int rx841_pos
- .local int rx841_off
- .local int rx841_eos
- .local int rx841_rep
- .local pmc rx841_cur
- (rx841_cur, rx841_pos, rx841_tgt) = self."!cursor_start"()
- rx841_cur."!cursor_debug"("START ", "quote:sym<dblq>")
- .lex unicode:"$\x{a2}", rx841_cur
- .local pmc match
- .lex "$/", match
- length rx841_eos, rx841_tgt
- set rx841_off, 0
- lt rx841_pos, 2, rx841_start
- sub rx841_off, rx841_pos, 1
- substr rx841_tgt, rx841_tgt, rx841_off
- rx841_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan844_done
- goto rxscan844_scan
- rxscan844_loop:
- ($P10) = rx841_cur."from"()
- inc $P10
- set rx841_pos, $P10
- ge rx841_pos, rx841_eos, rxscan844_done
- rxscan844_scan:
- set_addr $I10, rxscan844_loop
- rx841_cur."!mark_push"(0, rx841_pos, $I10)
- rxscan844_done:
-.annotate 'line', 403
- # rx enumcharlist negate=0 zerowidth
- ge rx841_pos, rx841_eos, rx841_fail
- sub $I10, rx841_pos, rx841_off
- substr $S10, rx841_tgt, $I10, 1
- index $I11, "\"", $S10
- lt $I11, 0, rx841_fail
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx841_cur."!cursor_pos"(rx841_pos)
- $P10 = rx841_cur."quote_EXPR"(":qq")
- unless $P10, rx841_fail
- rx841_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx841_pos = $P10."pos"()
+ .local string rx837_tgt
+ .local int rx837_pos
+ .local int rx837_off
+ .local int rx837_eos
+ .local int rx837_rep
+ .local pmc rx837_cur
+ (rx837_cur, rx837_pos, rx837_tgt) = self."!cursor_start"()
+ rx837_cur."!cursor_debug"("START ", "term:sym<pir::op>")
+ rx837_cur."!cursor_caparray"("args")
+ .lex unicode:"$\x{a2}", rx837_cur
+ .local pmc match
+ .lex "$/", match
+ length rx837_eos, rx837_tgt
+ gt rx837_pos, rx837_eos, rx837_done
+ set rx837_off, 0
+ lt rx837_pos, 2, rx837_start
+ sub rx837_off, rx837_pos, 1
+ substr rx837_tgt, rx837_tgt, rx837_off
+ rx837_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan840_done
+ goto rxscan840_scan
+ rxscan840_loop:
+ ($P10) = rx837_cur."from"()
+ inc $P10
+ set rx837_pos, $P10
+ ge rx837_pos, rx837_eos, rxscan840_done
+ rxscan840_scan:
+ set_addr $I10, rxscan840_loop
+ rx837_cur."!mark_push"(0, rx837_pos, $I10)
+ rxscan840_done:
+.annotate 'line', 388
+ # rx literal "pir::"
+ add $I11, rx837_pos, 5
+ gt $I11, rx837_eos, rx837_fail
+ sub $I11, rx837_pos, rx837_off
+ substr $S10, rx837_tgt, $I11, 5
+ ne $S10, "pir::", rx837_fail
+ add rx837_pos, 5
+ # rx subcapture "op"
+ set_addr $I10, rxcap_841_fail
+ rx837_cur."!mark_push"(0, rx837_pos, $I10)
+ # rx charclass_q w r 1..-1
+ sub $I10, rx837_pos, rx837_off
+ find_not_cclass $I11, 8192, rx837_tgt, $I10, rx837_eos
+ add $I12, $I10, 1
+ lt $I11, $I12, rx837_fail
+ add rx837_pos, rx837_off, $I11
+ set_addr $I10, rxcap_841_fail
+ ($I12, $I11) = rx837_cur."!mark_peek"($I10)
+ rx837_cur."!cursor_pos"($I11)
+ ($P10) = rx837_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx837_pos, "")
+ rx837_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("op")
+ goto rxcap_841_done
+ rxcap_841_fail:
+ goto rx837_fail
+ rxcap_841_done:
+ # rx rxquantr842 ** 0..1
+ set_addr $I843, rxquantr842_done
+ rx837_cur."!mark_push"(0, rx837_pos, $I843)
+ rxquantr842_loop:
+ # rx subrule "args" subtype=capture negate=
+ rx837_cur."!cursor_pos"(rx837_pos)
+ $P10 = rx837_cur."args"()
+ unless $P10, rx837_fail
+ rx837_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("args")
+ rx837_pos = $P10."pos"()
+ (rx837_rep) = rx837_cur."!mark_commit"($I843)
+ rxquantr842_done:
+.annotate 'line', 387
# rx pass
- rx841_cur."!cursor_pass"(rx841_pos, "quote:sym<dblq>")
- rx841_cur."!cursor_debug"("PASS ", "quote:sym<dblq>", " at pos=", rx841_pos)
- .return (rx841_cur)
- rx841_fail:
+ rx837_cur."!cursor_pass"(rx837_pos, "term:sym<pir::op>")
+ rx837_cur."!cursor_debug"("PASS ", "term:sym<pir::op>", " at pos=", rx837_pos)
+ .return (rx837_cur)
+ rx837_fail:
.annotate 'line', 4
- (rx841_rep, rx841_pos, $I10, $P10) = rx841_cur."!mark_fail"(0)
- lt rx841_pos, -1, rx841_done
- eq rx841_pos, -1, rx841_fail
+ (rx837_rep, rx837_pos, $I10, $P10) = rx837_cur."!mark_fail"(0)
+ lt rx837_pos, -1, rx837_done
+ eq rx837_pos, -1, rx837_fail
jump $I10
- rx841_done:
- rx841_cur."!cursor_fail"()
- rx841_cur."!cursor_debug"("FAIL ", "quote:sym<dblq>")
- .return (rx841_cur)
+ rx837_done:
+ rx837_cur."!cursor_fail"()
+ rx837_cur."!cursor_debug"("FAIL ", "term:sym<pir::op>")
+ .return (rx837_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<dblq>" :subid("196_1274022894.43745") :method
+.sub "!PREFIX__term:sym<pir::op>" :subid("191_1275811487.95429") :method
.annotate 'line', 4
- new $P843, "ResizablePMCArray"
- push $P843, "\""
- .return ($P843)
+ new $P839, "ResizablePMCArray"
+ push $P839, "pir::"
+ .return ($P839)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<q>" :subid("197_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "args" :subid("192_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx846_tgt
- .local int rx846_pos
- .local int rx846_off
- .local int rx846_eos
- .local int rx846_rep
- .local pmc rx846_cur
- (rx846_cur, rx846_pos, rx846_tgt) = self."!cursor_start"()
- rx846_cur."!cursor_debug"("START ", "quote:sym<q>")
- .lex unicode:"$\x{a2}", rx846_cur
+ .local string rx845_tgt
+ .local int rx845_pos
+ .local int rx845_off
+ .local int rx845_eos
+ .local int rx845_rep
+ .local pmc rx845_cur
+ (rx845_cur, rx845_pos, rx845_tgt) = self."!cursor_start"()
+ rx845_cur."!cursor_debug"("START ", "args")
+ .lex unicode:"$\x{a2}", rx845_cur
.local pmc match
.lex "$/", match
- length rx846_eos, rx846_tgt
- set rx846_off, 0
- lt rx846_pos, 2, rx846_start
- sub rx846_off, rx846_pos, 1
- substr rx846_tgt, rx846_tgt, rx846_off
- rx846_start:
+ length rx845_eos, rx845_tgt
+ gt rx845_pos, rx845_eos, rx845_done
+ set rx845_off, 0
+ lt rx845_pos, 2, rx845_start
+ sub rx845_off, rx845_pos, 1
+ substr rx845_tgt, rx845_tgt, rx845_off
+ rx845_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan850_done
- goto rxscan850_scan
- rxscan850_loop:
- ($P10) = rx846_cur."from"()
+ ne $I10, -1, rxscan849_done
+ goto rxscan849_scan
+ rxscan849_loop:
+ ($P10) = rx845_cur."from"()
inc $P10
- set rx846_pos, $P10
- ge rx846_pos, rx846_eos, rxscan850_done
- rxscan850_scan:
- set_addr $I10, rxscan850_loop
- rx846_cur."!mark_push"(0, rx846_pos, $I10)
- rxscan850_done:
-.annotate 'line', 404
- # rx literal "q"
- add $I11, rx846_pos, 1
- gt $I11, rx846_eos, rx846_fail
- sub $I11, rx846_pos, rx846_off
- substr $S10, rx846_tgt, $I11, 1
- ne $S10, "q", rx846_fail
- add rx846_pos, 1
- # rxanchor rwb
- le rx846_pos, 0, rx846_fail
- sub $I10, rx846_pos, rx846_off
- is_cclass $I11, 8192, rx846_tgt, $I10
- if $I11, rx846_fail
- dec $I10
- is_cclass $I11, 8192, rx846_tgt, $I10
- unless $I11, rx846_fail
- # rx enumcharlist negate=1 zerowidth
- ge rx846_pos, rx846_eos, rx846_fail
- sub $I10, rx846_pos, rx846_off
- substr $S10, rx846_tgt, $I10, 1
- index $I11, "(", $S10
- ge $I11, 0, rx846_fail
- # rx subrule "ws" subtype=method negate=
- rx846_cur."!cursor_pos"(rx846_pos)
- $P10 = rx846_cur."ws"()
- unless $P10, rx846_fail
- rx846_pos = $P10."pos"()
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx846_cur."!cursor_pos"(rx846_pos)
- $P10 = rx846_cur."quote_EXPR"(":q")
- unless $P10, rx846_fail
- rx846_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx846_pos = $P10."pos"()
+ set rx845_pos, $P10
+ ge rx845_pos, rx845_eos, rxscan849_done
+ rxscan849_scan:
+ set_addr $I10, rxscan849_loop
+ rx845_cur."!mark_push"(0, rx845_pos, $I10)
+ rxscan849_done:
+.annotate 'line', 392
+ # rx literal "("
+ add $I11, rx845_pos, 1
+ gt $I11, rx845_eos, rx845_fail
+ sub $I11, rx845_pos, rx845_off
+ substr $S10, rx845_tgt, $I11, 1
+ ne $S10, "(", rx845_fail
+ add rx845_pos, 1
+ # rx subrule "arglist" subtype=capture negate=
+ rx845_cur."!cursor_pos"(rx845_pos)
+ $P10 = rx845_cur."arglist"()
+ unless $P10, rx845_fail
+ rx845_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("arglist")
+ rx845_pos = $P10."pos"()
+ # rx literal ")"
+ add $I11, rx845_pos, 1
+ gt $I11, rx845_eos, rx845_fail
+ sub $I11, rx845_pos, rx845_off
+ substr $S10, rx845_tgt, $I11, 1
+ ne $S10, ")", rx845_fail
+ add rx845_pos, 1
# rx pass
- rx846_cur."!cursor_pass"(rx846_pos, "quote:sym<q>")
- rx846_cur."!cursor_debug"("PASS ", "quote:sym<q>", " at pos=", rx846_pos)
- .return (rx846_cur)
- rx846_fail:
+ rx845_cur."!cursor_pass"(rx845_pos, "args")
+ rx845_cur."!cursor_debug"("PASS ", "args", " at pos=", rx845_pos)
+ .return (rx845_cur)
+ rx845_fail:
.annotate 'line', 4
- (rx846_rep, rx846_pos, $I10, $P10) = rx846_cur."!mark_fail"(0)
- lt rx846_pos, -1, rx846_done
- eq rx846_pos, -1, rx846_fail
+ (rx845_rep, rx845_pos, $I10, $P10) = rx845_cur."!mark_fail"(0)
+ lt rx845_pos, -1, rx845_done
+ eq rx845_pos, -1, rx845_fail
jump $I10
- rx846_done:
- rx846_cur."!cursor_fail"()
- rx846_cur."!cursor_debug"("FAIL ", "quote:sym<q>")
- .return (rx846_cur)
+ rx845_done:
+ rx845_cur."!cursor_fail"()
+ rx845_cur."!cursor_debug"("FAIL ", "args")
+ .return (rx845_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<q>" :subid("198_1274022894.43745") :method
+.sub "!PREFIX__args" :subid("193_1275811487.95429") :method
.annotate 'line', 4
- $P848 = self."!PREFIX__!subrule"("", "q")
- new $P849, "ResizablePMCArray"
- push $P849, $P848
- .return ($P849)
+ $P847 = self."!PREFIX__!subrule"("arglist", "(")
+ new $P848, "ResizablePMCArray"
+ push $P848, $P847
+ .return ($P848)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<qq>" :subid("199_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "arglist" :subid("194_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx852_tgt
- .local int rx852_pos
- .local int rx852_off
- .local int rx852_eos
- .local int rx852_rep
- .local pmc rx852_cur
- (rx852_cur, rx852_pos, rx852_tgt) = self."!cursor_start"()
- rx852_cur."!cursor_debug"("START ", "quote:sym<qq>")
- .lex unicode:"$\x{a2}", rx852_cur
+ .local string rx851_tgt
+ .local int rx851_pos
+ .local int rx851_off
+ .local int rx851_eos
+ .local int rx851_rep
+ .local pmc rx851_cur
+ (rx851_cur, rx851_pos, rx851_tgt) = self."!cursor_start"()
+ rx851_cur."!cursor_debug"("START ", "arglist")
+ .lex unicode:"$\x{a2}", rx851_cur
.local pmc match
.lex "$/", match
- length rx852_eos, rx852_tgt
- set rx852_off, 0
- lt rx852_pos, 2, rx852_start
- sub rx852_off, rx852_pos, 1
- substr rx852_tgt, rx852_tgt, rx852_off
- rx852_start:
+ length rx851_eos, rx851_tgt
+ gt rx851_pos, rx851_eos, rx851_done
+ set rx851_off, 0
+ lt rx851_pos, 2, rx851_start
+ sub rx851_off, rx851_pos, 1
+ substr rx851_tgt, rx851_tgt, rx851_off
+ rx851_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan856_done
- goto rxscan856_scan
- rxscan856_loop:
- ($P10) = rx852_cur."from"()
+ ne $I10, -1, rxscan855_done
+ goto rxscan855_scan
+ rxscan855_loop:
+ ($P10) = rx851_cur."from"()
inc $P10
- set rx852_pos, $P10
- ge rx852_pos, rx852_eos, rxscan856_done
- rxscan856_scan:
- set_addr $I10, rxscan856_loop
- rx852_cur."!mark_push"(0, rx852_pos, $I10)
- rxscan856_done:
-.annotate 'line', 405
- # rx literal "qq"
- add $I11, rx852_pos, 2
- gt $I11, rx852_eos, rx852_fail
- sub $I11, rx852_pos, rx852_off
- substr $S10, rx852_tgt, $I11, 2
- ne $S10, "qq", rx852_fail
- add rx852_pos, 2
- # rxanchor rwb
- le rx852_pos, 0, rx852_fail
- sub $I10, rx852_pos, rx852_off
- is_cclass $I11, 8192, rx852_tgt, $I10
- if $I11, rx852_fail
- dec $I10
- is_cclass $I11, 8192, rx852_tgt, $I10
- unless $I11, rx852_fail
- # rx enumcharlist negate=1 zerowidth
- ge rx852_pos, rx852_eos, rx852_fail
- sub $I10, rx852_pos, rx852_off
- substr $S10, rx852_tgt, $I10, 1
- index $I11, "(", $S10
- ge $I11, 0, rx852_fail
+ set rx851_pos, $P10
+ ge rx851_pos, rx851_eos, rxscan855_done
+ rxscan855_scan:
+ set_addr $I10, rxscan855_loop
+ rx851_cur."!mark_push"(0, rx851_pos, $I10)
+ rxscan855_done:
+.annotate 'line', 396
# rx subrule "ws" subtype=method negate=
- rx852_cur."!cursor_pos"(rx852_pos)
- $P10 = rx852_cur."ws"()
- unless $P10, rx852_fail
- rx852_pos = $P10."pos"()
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx852_cur."!cursor_pos"(rx852_pos)
- $P10 = rx852_cur."quote_EXPR"(":qq")
- unless $P10, rx852_fail
- rx852_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx852_pos = $P10."pos"()
+ rx851_cur."!cursor_pos"(rx851_pos)
+ $P10 = rx851_cur."ws"()
+ unless $P10, rx851_fail
+ rx851_pos = $P10."pos"()
+ alt856_0:
+.annotate 'line', 397
+ set_addr $I10, alt856_1
+ rx851_cur."!mark_push"(0, rx851_pos, $I10)
+.annotate 'line', 398
+ # rx subrule "EXPR" subtype=capture negate=
+ rx851_cur."!cursor_pos"(rx851_pos)
+ $P10 = rx851_cur."EXPR"("f=")
+ unless $P10, rx851_fail
+ rx851_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx851_pos = $P10."pos"()
+ goto alt856_end
+ alt856_1:
+ alt856_end:
+.annotate 'line', 395
# rx pass
- rx852_cur."!cursor_pass"(rx852_pos, "quote:sym<qq>")
- rx852_cur."!cursor_debug"("PASS ", "quote:sym<qq>", " at pos=", rx852_pos)
- .return (rx852_cur)
- rx852_fail:
+ rx851_cur."!cursor_pass"(rx851_pos, "arglist")
+ rx851_cur."!cursor_debug"("PASS ", "arglist", " at pos=", rx851_pos)
+ .return (rx851_cur)
+ rx851_fail:
.annotate 'line', 4
- (rx852_rep, rx852_pos, $I10, $P10) = rx852_cur."!mark_fail"(0)
- lt rx852_pos, -1, rx852_done
- eq rx852_pos, -1, rx852_fail
+ (rx851_rep, rx851_pos, $I10, $P10) = rx851_cur."!mark_fail"(0)
+ lt rx851_pos, -1, rx851_done
+ eq rx851_pos, -1, rx851_fail
jump $I10
- rx852_done:
- rx852_cur."!cursor_fail"()
- rx852_cur."!cursor_debug"("FAIL ", "quote:sym<qq>")
- .return (rx852_cur)
+ rx851_done:
+ rx851_cur."!cursor_fail"()
+ rx851_cur."!cursor_debug"("FAIL ", "arglist")
+ .return (rx851_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<qq>" :subid("200_1274022894.43745") :method
+.sub "!PREFIX__arglist" :subid("195_1275811487.95429") :method
.annotate 'line', 4
- $P854 = self."!PREFIX__!subrule"("", "qq")
- new $P855, "ResizablePMCArray"
- push $P855, $P854
- .return ($P855)
+ $P853 = self."!PREFIX__!subrule"("ws", "")
+ new $P854, "ResizablePMCArray"
+ push $P854, $P853
+ .return ($P854)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q>" :subid("201_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "term:sym<value>" :subid("196_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
.local string rx858_tgt
.local int rx858_pos
@@ -10160,11 +10092,12 @@
.local int rx858_rep
.local pmc rx858_cur
(rx858_cur, rx858_pos, rx858_tgt) = self."!cursor_start"()
- rx858_cur."!cursor_debug"("START ", "quote:sym<Q>")
+ rx858_cur."!cursor_debug"("START ", "term:sym<value>")
.lex unicode:"$\x{a2}", rx858_cur
.local pmc match
.lex "$/", match
length rx858_eos, rx858_tgt
+ gt rx858_pos, rx858_eos, rx858_done
set rx858_off, 0
lt rx858_pos, 2, rx858_start
sub rx858_off, rx858_pos, 1
@@ -10182,43 +10115,17 @@
set_addr $I10, rxscan862_loop
rx858_cur."!mark_push"(0, rx858_pos, $I10)
rxscan862_done:
-.annotate 'line', 406
- # rx literal "Q"
- add $I11, rx858_pos, 1
- gt $I11, rx858_eos, rx858_fail
- sub $I11, rx858_pos, rx858_off
- substr $S10, rx858_tgt, $I11, 1
- ne $S10, "Q", rx858_fail
- add rx858_pos, 1
- # rxanchor rwb
- le rx858_pos, 0, rx858_fail
- sub $I10, rx858_pos, rx858_off
- is_cclass $I11, 8192, rx858_tgt, $I10
- if $I11, rx858_fail
- dec $I10
- is_cclass $I11, 8192, rx858_tgt, $I10
- unless $I11, rx858_fail
- # rx enumcharlist negate=1 zerowidth
- ge rx858_pos, rx858_eos, rx858_fail
- sub $I10, rx858_pos, rx858_off
- substr $S10, rx858_tgt, $I10, 1
- index $I11, "(", $S10
- ge $I11, 0, rx858_fail
- # rx subrule "ws" subtype=method negate=
- rx858_cur."!cursor_pos"(rx858_pos)
- $P10 = rx858_cur."ws"()
- unless $P10, rx858_fail
- rx858_pos = $P10."pos"()
- # rx subrule "quote_EXPR" subtype=capture negate=
+.annotate 'line', 404
+ # rx subrule "value" subtype=capture negate=
rx858_cur."!cursor_pos"(rx858_pos)
- $P10 = rx858_cur."quote_EXPR"()
+ $P10 = rx858_cur."value"()
unless $P10, rx858_fail
rx858_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
+ $P10."!cursor_names"("value")
rx858_pos = $P10."pos"()
# rx pass
- rx858_cur."!cursor_pass"(rx858_pos, "quote:sym<Q>")
- rx858_cur."!cursor_debug"("PASS ", "quote:sym<Q>", " at pos=", rx858_pos)
+ rx858_cur."!cursor_pass"(rx858_pos, "term:sym<value>")
+ rx858_cur."!cursor_debug"("PASS ", "term:sym<value>", " at pos=", rx858_pos)
.return (rx858_cur)
rx858_fail:
.annotate 'line', 4
@@ -10228,16 +10135,16 @@
jump $I10
rx858_done:
rx858_cur."!cursor_fail"()
- rx858_cur."!cursor_debug"("FAIL ", "quote:sym<Q>")
+ rx858_cur."!cursor_debug"("FAIL ", "term:sym<value>")
.return (rx858_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q>" :subid("202_1274022894.43745") :method
+.sub "!PREFIX__term:sym<value>" :subid("197_1275811487.95429") :method
.annotate 'line', 4
- $P860 = self."!PREFIX__!subrule"("", "Q")
+ $P860 = self."!PREFIX__!subrule"("value", "")
new $P861, "ResizablePMCArray"
push $P861, $P860
.return ($P861)
@@ -10245,7 +10152,7 @@
.namespace ["NQP";"Grammar"]
-.sub "quote:sym<Q:PIR>" :subid("203_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "value" :subid("198_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
.local string rx864_tgt
.local int rx864_pos
@@ -10254,51 +10161,56 @@
.local int rx864_rep
.local pmc rx864_cur
(rx864_cur, rx864_pos, rx864_tgt) = self."!cursor_start"()
- rx864_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
+ rx864_cur."!cursor_debug"("START ", "value")
.lex unicode:"$\x{a2}", rx864_cur
.local pmc match
.lex "$/", match
length rx864_eos, rx864_tgt
+ gt rx864_pos, rx864_eos, rx864_done
set rx864_off, 0
lt rx864_pos, 2, rx864_start
sub rx864_off, rx864_pos, 1
substr rx864_tgt, rx864_tgt, rx864_off
rx864_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan868_done
- goto rxscan868_scan
- rxscan868_loop:
+ ne $I10, -1, rxscan869_done
+ goto rxscan869_scan
+ rxscan869_loop:
($P10) = rx864_cur."from"()
inc $P10
set rx864_pos, $P10
- ge rx864_pos, rx864_eos, rxscan868_done
- rxscan868_scan:
- set_addr $I10, rxscan868_loop
+ ge rx864_pos, rx864_eos, rxscan869_done
+ rxscan869_scan:
+ set_addr $I10, rxscan869_loop
+ rx864_cur."!mark_push"(0, rx864_pos, $I10)
+ rxscan869_done:
+ alt870_0:
+.annotate 'line', 406
+ set_addr $I10, alt870_1
rx864_cur."!mark_push"(0, rx864_pos, $I10)
- rxscan868_done:
.annotate 'line', 407
- # rx literal "Q:PIR"
- add $I11, rx864_pos, 5
- gt $I11, rx864_eos, rx864_fail
- sub $I11, rx864_pos, rx864_off
- substr $S10, rx864_tgt, $I11, 5
- ne $S10, "Q:PIR", rx864_fail
- add rx864_pos, 5
- # rx subrule "ws" subtype=method negate=
+ # rx subrule "quote" subtype=capture negate=
rx864_cur."!cursor_pos"(rx864_pos)
- $P10 = rx864_cur."ws"()
+ $P10 = rx864_cur."quote"()
unless $P10, rx864_fail
+ rx864_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote")
rx864_pos = $P10."pos"()
- # rx subrule "quote_EXPR" subtype=capture negate=
+ goto alt870_end
+ alt870_1:
+.annotate 'line', 408
+ # rx subrule "number" subtype=capture negate=
rx864_cur."!cursor_pos"(rx864_pos)
- $P10 = rx864_cur."quote_EXPR"()
+ $P10 = rx864_cur."number"()
unless $P10, rx864_fail
rx864_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
+ $P10."!cursor_names"("number")
rx864_pos = $P10."pos"()
+ alt870_end:
+.annotate 'line', 406
# rx pass
- rx864_cur."!cursor_pass"(rx864_pos, "quote:sym<Q:PIR>")
- rx864_cur."!cursor_debug"("PASS ", "quote:sym<Q:PIR>", " at pos=", rx864_pos)
+ rx864_cur."!cursor_pass"(rx864_pos, "value")
+ rx864_cur."!cursor_debug"("PASS ", "value", " at pos=", rx864_pos)
.return (rx864_cur)
rx864_fail:
.annotate 'line', 4
@@ -10308,532 +10220,490 @@
jump $I10
rx864_done:
rx864_cur."!cursor_fail"()
- rx864_cur."!cursor_debug"("FAIL ", "quote:sym<Q:PIR>")
+ rx864_cur."!cursor_debug"("FAIL ", "value")
.return (rx864_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym<Q:PIR>" :subid("204_1274022894.43745") :method
+.sub "!PREFIX__value" :subid("199_1275811487.95429") :method
.annotate 'line', 4
- $P866 = self."!PREFIX__!subrule"("", "Q:PIR")
- new $P867, "ResizablePMCArray"
- push $P867, $P866
- .return ($P867)
+ $P866 = self."!PREFIX__!subrule"("number", "")
+ $P867 = self."!PREFIX__!subrule"("quote", "")
+ new $P868, "ResizablePMCArray"
+ push $P868, $P866
+ push $P868, $P867
+ .return ($P868)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote:sym</ />" :subid("205_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx870_tgt
- .local int rx870_pos
- .local int rx870_off
- .local int rx870_eos
- .local int rx870_rep
- .local pmc rx870_cur
- (rx870_cur, rx870_pos, rx870_tgt) = self."!cursor_start"()
- rx870_cur."!cursor_debug"("START ", "quote:sym</ />")
- .lex unicode:"$\x{a2}", rx870_cur
- .local pmc match
- .lex "$/", match
- length rx870_eos, rx870_tgt
- set rx870_off, 0
- lt rx870_pos, 2, rx870_start
- sub rx870_off, rx870_pos, 1
- substr rx870_tgt, rx870_tgt, rx870_off
- rx870_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan874_done
- goto rxscan874_scan
- rxscan874_loop:
- ($P10) = rx870_cur."from"()
- inc $P10
- set rx870_pos, $P10
- ge rx870_pos, rx870_eos, rxscan874_done
- rxscan874_scan:
- set_addr $I10, rxscan874_loop
- rx870_cur."!mark_push"(0, rx870_pos, $I10)
- rxscan874_done:
-.annotate 'line', 409
- # rx literal "/"
- add $I11, rx870_pos, 1
- gt $I11, rx870_eos, rx870_fail
- sub $I11, rx870_pos, rx870_off
- substr $S10, rx870_tgt, $I11, 1
- ne $S10, "/", rx870_fail
- add rx870_pos, 1
-.annotate 'line', 410
- # rx subrule "newpad" subtype=method negate=
- rx870_cur."!cursor_pos"(rx870_pos)
- $P10 = rx870_cur."newpad"()
- unless $P10, rx870_fail
- rx870_pos = $P10."pos"()
-.annotate 'line', 411
- # rx reduce name="quote:sym</ />" key="open"
- rx870_cur."!cursor_pos"(rx870_pos)
- rx870_cur."!reduce"("quote:sym</ />", "open")
+.sub "number" :subid("200_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx872_tgt
+ .local int rx872_pos
+ .local int rx872_off
+ .local int rx872_eos
+ .local int rx872_rep
+ .local pmc rx872_cur
+ (rx872_cur, rx872_pos, rx872_tgt) = self."!cursor_start"()
+ rx872_cur."!cursor_debug"("START ", "number")
+ .lex unicode:"$\x{a2}", rx872_cur
+ .local pmc match
+ .lex "$/", match
+ length rx872_eos, rx872_tgt
+ gt rx872_pos, rx872_eos, rx872_done
+ set rx872_off, 0
+ lt rx872_pos, 2, rx872_start
+ sub rx872_off, rx872_pos, 1
+ substr rx872_tgt, rx872_tgt, rx872_off
+ rx872_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan875_done
+ goto rxscan875_scan
+ rxscan875_loop:
+ ($P10) = rx872_cur."from"()
+ inc $P10
+ set rx872_pos, $P10
+ ge rx872_pos, rx872_eos, rxscan875_done
+ rxscan875_scan:
+ set_addr $I10, rxscan875_loop
+ rx872_cur."!mark_push"(0, rx872_pos, $I10)
+ rxscan875_done:
.annotate 'line', 412
- # rx subrule "LANG" subtype=capture negate=
- rx870_cur."!cursor_pos"(rx870_pos)
- $P10 = rx870_cur."LANG"("Regex", "nibbler")
- unless $P10, rx870_fail
- rx870_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("p6regex")
- rx870_pos = $P10."pos"()
+ # rx subcapture "sign"
+ set_addr $I10, rxcap_878_fail
+ rx872_cur."!mark_push"(0, rx872_pos, $I10)
+ # rx rxquantr876 ** 0..1
+ set_addr $I877, rxquantr876_done
+ rx872_cur."!mark_push"(0, rx872_pos, $I877)
+ rxquantr876_loop:
+ # rx enumcharlist negate=0
+ ge rx872_pos, rx872_eos, rx872_fail
+ sub $I10, rx872_pos, rx872_off
+ substr $S10, rx872_tgt, $I10, 1
+ index $I11, "+-", $S10
+ lt $I11, 0, rx872_fail
+ inc rx872_pos
+ (rx872_rep) = rx872_cur."!mark_commit"($I877)
+ rxquantr876_done:
+ set_addr $I10, rxcap_878_fail
+ ($I12, $I11) = rx872_cur."!mark_peek"($I10)
+ rx872_cur."!cursor_pos"($I11)
+ ($P10) = rx872_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx872_pos, "")
+ rx872_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sign")
+ goto rxcap_878_done
+ rxcap_878_fail:
+ goto rx872_fail
+ rxcap_878_done:
+ alt879_0:
.annotate 'line', 413
- # rx literal "/"
- add $I11, rx870_pos, 1
- gt $I11, rx870_eos, rx870_fail
- sub $I11, rx870_pos, rx870_off
- substr $S10, rx870_tgt, $I11, 1
- ne $S10, "/", rx870_fail
- add rx870_pos, 1
-.annotate 'line', 408
+ set_addr $I10, alt879_1
+ rx872_cur."!mark_push"(0, rx872_pos, $I10)
+ # rx subrule "dec_number" subtype=capture negate=
+ rx872_cur."!cursor_pos"(rx872_pos)
+ $P10 = rx872_cur."dec_number"()
+ unless $P10, rx872_fail
+ rx872_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("dec_number")
+ rx872_pos = $P10."pos"()
+ goto alt879_end
+ alt879_1:
+ # rx subrule "integer" subtype=capture negate=
+ rx872_cur."!cursor_pos"(rx872_pos)
+ $P10 = rx872_cur."integer"()
+ unless $P10, rx872_fail
+ rx872_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("integer")
+ rx872_pos = $P10."pos"()
+ alt879_end:
+.annotate 'line', 411
# rx pass
- rx870_cur."!cursor_pass"(rx870_pos, "quote:sym</ />")
- rx870_cur."!cursor_debug"("PASS ", "quote:sym</ />", " at pos=", rx870_pos)
- .return (rx870_cur)
- rx870_fail:
+ rx872_cur."!cursor_pass"(rx872_pos, "number")
+ rx872_cur."!cursor_debug"("PASS ", "number", " at pos=", rx872_pos)
+ .return (rx872_cur)
+ rx872_fail:
.annotate 'line', 4
- (rx870_rep, rx870_pos, $I10, $P10) = rx870_cur."!mark_fail"(0)
- lt rx870_pos, -1, rx870_done
- eq rx870_pos, -1, rx870_fail
+ (rx872_rep, rx872_pos, $I10, $P10) = rx872_cur."!mark_fail"(0)
+ lt rx872_pos, -1, rx872_done
+ eq rx872_pos, -1, rx872_fail
jump $I10
- rx870_done:
- rx870_cur."!cursor_fail"()
- rx870_cur."!cursor_debug"("FAIL ", "quote:sym</ />")
- .return (rx870_cur)
+ rx872_done:
+ rx872_cur."!cursor_fail"()
+ rx872_cur."!cursor_debug"("FAIL ", "number")
+ .return (rx872_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote:sym</ />" :subid("206_1274022894.43745") :method
+.sub "!PREFIX__number" :subid("201_1275811487.95429") :method
.annotate 'line', 4
- $P872 = self."!PREFIX__!subrule"("", "/")
- new $P873, "ResizablePMCArray"
- push $P873, $P872
- .return ($P873)
+ new $P874, "ResizablePMCArray"
+ push $P874, ""
+ .return ($P874)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<$>" :subid("207_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx876_tgt
- .local int rx876_pos
- .local int rx876_off
- .local int rx876_eos
- .local int rx876_rep
- .local pmc rx876_cur
- (rx876_cur, rx876_pos, rx876_tgt) = self."!cursor_start"()
- rx876_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
- .lex unicode:"$\x{a2}", rx876_cur
- .local pmc match
- .lex "$/", match
- length rx876_eos, rx876_tgt
- set rx876_off, 0
- lt rx876_pos, 2, rx876_start
- sub rx876_off, rx876_pos, 1
- substr rx876_tgt, rx876_tgt, rx876_off
- rx876_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan879_done
- goto rxscan879_scan
- rxscan879_loop:
- ($P10) = rx876_cur."from"()
- inc $P10
- set rx876_pos, $P10
- ge rx876_pos, rx876_eos, rxscan879_done
- rxscan879_scan:
- set_addr $I10, rxscan879_loop
- rx876_cur."!mark_push"(0, rx876_pos, $I10)
- rxscan879_done:
+.sub "quote" :subid("202_1275811487.95429") :method
.annotate 'line', 416
- # rx enumcharlist negate=0 zerowidth
- ge rx876_pos, rx876_eos, rx876_fail
- sub $I10, rx876_pos, rx876_off
- substr $S10, rx876_tgt, $I10, 1
- index $I11, "$", $S10
- lt $I11, 0, rx876_fail
- # rx subrule "quotemod_check" subtype=zerowidth negate=
- rx876_cur."!cursor_pos"(rx876_pos)
- $P10 = rx876_cur."quotemod_check"("s")
- unless $P10, rx876_fail
- # rx subrule "variable" subtype=capture negate=
- rx876_cur."!cursor_pos"(rx876_pos)
- $P10 = rx876_cur."variable"()
- unless $P10, rx876_fail
- rx876_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("variable")
- rx876_pos = $P10."pos"()
- # rx pass
- rx876_cur."!cursor_pass"(rx876_pos, "quote_escape:sym<$>")
- rx876_cur."!cursor_debug"("PASS ", "quote_escape:sym<$>", " at pos=", rx876_pos)
- .return (rx876_cur)
- rx876_fail:
-.annotate 'line', 4
- (rx876_rep, rx876_pos, $I10, $P10) = rx876_cur."!mark_fail"(0)
- lt rx876_pos, -1, rx876_done
- eq rx876_pos, -1, rx876_fail
- jump $I10
- rx876_done:
- rx876_cur."!cursor_fail"()
- rx876_cur."!cursor_debug"("FAIL ", "quote_escape:sym<$>")
- .return (rx876_cur)
- .return ()
+ $P881 = self."!protoregex"("quote")
+ .return ($P881)
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<$>" :subid("208_1274022894.43745") :method
-.annotate 'line', 4
- new $P878, "ResizablePMCArray"
- push $P878, "$"
- .return ($P878)
+.sub "!PREFIX__quote" :subid("203_1275811487.95429") :method
+.annotate 'line', 416
+ $P883 = self."!PREFIX__!protoregex"("quote")
+ .return ($P883)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<{ }>" :subid("209_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym<apos>" :subid("204_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx881_tgt
- .local int rx881_pos
- .local int rx881_off
- .local int rx881_eos
- .local int rx881_rep
- .local pmc rx881_cur
- (rx881_cur, rx881_pos, rx881_tgt) = self."!cursor_start"()
- rx881_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
- .lex unicode:"$\x{a2}", rx881_cur
- .local pmc match
- .lex "$/", match
- length rx881_eos, rx881_tgt
- set rx881_off, 0
- lt rx881_pos, 2, rx881_start
- sub rx881_off, rx881_pos, 1
- substr rx881_tgt, rx881_tgt, rx881_off
- rx881_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan884_done
- goto rxscan884_scan
- rxscan884_loop:
- ($P10) = rx881_cur."from"()
- inc $P10
- set rx881_pos, $P10
- ge rx881_pos, rx881_eos, rxscan884_done
- rxscan884_scan:
- set_addr $I10, rxscan884_loop
- rx881_cur."!mark_push"(0, rx881_pos, $I10)
- rxscan884_done:
+ .local string rx885_tgt
+ .local int rx885_pos
+ .local int rx885_off
+ .local int rx885_eos
+ .local int rx885_rep
+ .local pmc rx885_cur
+ (rx885_cur, rx885_pos, rx885_tgt) = self."!cursor_start"()
+ rx885_cur."!cursor_debug"("START ", "quote:sym<apos>")
+ .lex unicode:"$\x{a2}", rx885_cur
+ .local pmc match
+ .lex "$/", match
+ length rx885_eos, rx885_tgt
+ gt rx885_pos, rx885_eos, rx885_done
+ set rx885_off, 0
+ lt rx885_pos, 2, rx885_start
+ sub rx885_off, rx885_pos, 1
+ substr rx885_tgt, rx885_tgt, rx885_off
+ rx885_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan888_done
+ goto rxscan888_scan
+ rxscan888_loop:
+ ($P10) = rx885_cur."from"()
+ inc $P10
+ set rx885_pos, $P10
+ ge rx885_pos, rx885_eos, rxscan888_done
+ rxscan888_scan:
+ set_addr $I10, rxscan888_loop
+ rx885_cur."!mark_push"(0, rx885_pos, $I10)
+ rxscan888_done:
.annotate 'line', 417
# rx enumcharlist negate=0 zerowidth
- ge rx881_pos, rx881_eos, rx881_fail
- sub $I10, rx881_pos, rx881_off
- substr $S10, rx881_tgt, $I10, 1
- index $I11, "{", $S10
- lt $I11, 0, rx881_fail
- # rx subrule "quotemod_check" subtype=zerowidth negate=
- rx881_cur."!cursor_pos"(rx881_pos)
- $P10 = rx881_cur."quotemod_check"("c")
- unless $P10, rx881_fail
- # rx subrule "block" subtype=capture negate=
- rx881_cur."!cursor_pos"(rx881_pos)
- $P10 = rx881_cur."block"()
- unless $P10, rx881_fail
- rx881_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("block")
- rx881_pos = $P10."pos"()
+ ge rx885_pos, rx885_eos, rx885_fail
+ sub $I10, rx885_pos, rx885_off
+ substr $S10, rx885_tgt, $I10, 1
+ index $I11, "'", $S10
+ lt $I11, 0, rx885_fail
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx885_cur."!cursor_pos"(rx885_pos)
+ $P10 = rx885_cur."quote_EXPR"(":q")
+ unless $P10, rx885_fail
+ rx885_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ rx885_pos = $P10."pos"()
# rx pass
- rx881_cur."!cursor_pass"(rx881_pos, "quote_escape:sym<{ }>")
- rx881_cur."!cursor_debug"("PASS ", "quote_escape:sym<{ }>", " at pos=", rx881_pos)
- .return (rx881_cur)
- rx881_fail:
+ rx885_cur."!cursor_pass"(rx885_pos, "quote:sym<apos>")
+ rx885_cur."!cursor_debug"("PASS ", "quote:sym<apos>", " at pos=", rx885_pos)
+ .return (rx885_cur)
+ rx885_fail:
.annotate 'line', 4
- (rx881_rep, rx881_pos, $I10, $P10) = rx881_cur."!mark_fail"(0)
- lt rx881_pos, -1, rx881_done
- eq rx881_pos, -1, rx881_fail
+ (rx885_rep, rx885_pos, $I10, $P10) = rx885_cur."!mark_fail"(0)
+ lt rx885_pos, -1, rx885_done
+ eq rx885_pos, -1, rx885_fail
jump $I10
- rx881_done:
- rx881_cur."!cursor_fail"()
- rx881_cur."!cursor_debug"("FAIL ", "quote_escape:sym<{ }>")
- .return (rx881_cur)
+ rx885_done:
+ rx885_cur."!cursor_fail"()
+ rx885_cur."!cursor_debug"("FAIL ", "quote:sym<apos>")
+ .return (rx885_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<{ }>" :subid("210_1274022894.43745") :method
+.sub "!PREFIX__quote:sym<apos>" :subid("205_1275811487.95429") :method
.annotate 'line', 4
- new $P883, "ResizablePMCArray"
- push $P883, "{"
- .return ($P883)
+ new $P887, "ResizablePMCArray"
+ push $P887, "'"
+ .return ($P887)
.end
.namespace ["NQP";"Grammar"]
-.sub "quote_escape:sym<esc>" :subid("211_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym<dblq>" :subid("206_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx886_tgt
- .local int rx886_pos
- .local int rx886_off
- .local int rx886_eos
- .local int rx886_rep
- .local pmc rx886_cur
- (rx886_cur, rx886_pos, rx886_tgt) = self."!cursor_start"()
- rx886_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
- .lex unicode:"$\x{a2}", rx886_cur
- .local pmc match
- .lex "$/", match
- length rx886_eos, rx886_tgt
- set rx886_off, 0
- lt rx886_pos, 2, rx886_start
- sub rx886_off, rx886_pos, 1
- substr rx886_tgt, rx886_tgt, rx886_off
- rx886_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan889_done
- goto rxscan889_scan
- rxscan889_loop:
- ($P10) = rx886_cur."from"()
- inc $P10
- set rx886_pos, $P10
- ge rx886_pos, rx886_eos, rxscan889_done
- rxscan889_scan:
- set_addr $I10, rxscan889_loop
- rx886_cur."!mark_push"(0, rx886_pos, $I10)
- rxscan889_done:
+ .local string rx890_tgt
+ .local int rx890_pos
+ .local int rx890_off
+ .local int rx890_eos
+ .local int rx890_rep
+ .local pmc rx890_cur
+ (rx890_cur, rx890_pos, rx890_tgt) = self."!cursor_start"()
+ rx890_cur."!cursor_debug"("START ", "quote:sym<dblq>")
+ .lex unicode:"$\x{a2}", rx890_cur
+ .local pmc match
+ .lex "$/", match
+ length rx890_eos, rx890_tgt
+ gt rx890_pos, rx890_eos, rx890_done
+ set rx890_off, 0
+ lt rx890_pos, 2, rx890_start
+ sub rx890_off, rx890_pos, 1
+ substr rx890_tgt, rx890_tgt, rx890_off
+ rx890_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan893_done
+ goto rxscan893_scan
+ rxscan893_loop:
+ ($P10) = rx890_cur."from"()
+ inc $P10
+ set rx890_pos, $P10
+ ge rx890_pos, rx890_eos, rxscan893_done
+ rxscan893_scan:
+ set_addr $I10, rxscan893_loop
+ rx890_cur."!mark_push"(0, rx890_pos, $I10)
+ rxscan893_done:
.annotate 'line', 418
- # rx literal "\\e"
- add $I11, rx886_pos, 2
- gt $I11, rx886_eos, rx886_fail
- sub $I11, rx886_pos, rx886_off
- substr $S10, rx886_tgt, $I11, 2
- ne $S10, "\\e", rx886_fail
- add rx886_pos, 2
- # rx subrule "quotemod_check" subtype=zerowidth negate=
- rx886_cur."!cursor_pos"(rx886_pos)
- $P10 = rx886_cur."quotemod_check"("b")
- unless $P10, rx886_fail
+ # rx enumcharlist negate=0 zerowidth
+ ge rx890_pos, rx890_eos, rx890_fail
+ sub $I10, rx890_pos, rx890_off
+ substr $S10, rx890_tgt, $I10, 1
+ index $I11, "\"", $S10
+ lt $I11, 0, rx890_fail
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx890_cur."!cursor_pos"(rx890_pos)
+ $P10 = rx890_cur."quote_EXPR"(":qq")
+ unless $P10, rx890_fail
+ rx890_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ rx890_pos = $P10."pos"()
# rx pass
- rx886_cur."!cursor_pass"(rx886_pos, "quote_escape:sym<esc>")
- rx886_cur."!cursor_debug"("PASS ", "quote_escape:sym<esc>", " at pos=", rx886_pos)
- .return (rx886_cur)
- rx886_fail:
+ rx890_cur."!cursor_pass"(rx890_pos, "quote:sym<dblq>")
+ rx890_cur."!cursor_debug"("PASS ", "quote:sym<dblq>", " at pos=", rx890_pos)
+ .return (rx890_cur)
+ rx890_fail:
.annotate 'line', 4
- (rx886_rep, rx886_pos, $I10, $P10) = rx886_cur."!mark_fail"(0)
- lt rx886_pos, -1, rx886_done
- eq rx886_pos, -1, rx886_fail
+ (rx890_rep, rx890_pos, $I10, $P10) = rx890_cur."!mark_fail"(0)
+ lt rx890_pos, -1, rx890_done
+ eq rx890_pos, -1, rx890_fail
jump $I10
- rx886_done:
- rx886_cur."!cursor_fail"()
- rx886_cur."!cursor_debug"("FAIL ", "quote_escape:sym<esc>")
- .return (rx886_cur)
+ rx890_done:
+ rx890_cur."!cursor_fail"()
+ rx890_cur."!cursor_debug"("FAIL ", "quote:sym<dblq>")
+ .return (rx890_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__quote_escape:sym<esc>" :subid("212_1274022894.43745") :method
+.sub "!PREFIX__quote:sym<dblq>" :subid("207_1275811487.95429") :method
.annotate 'line', 4
- new $P888, "ResizablePMCArray"
- push $P888, "\\e"
- .return ($P888)
+ new $P892, "ResizablePMCArray"
+ push $P892, "\""
+ .return ($P892)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<( )>" :subid("213_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym<q>" :subid("208_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx891_tgt
- .local int rx891_pos
- .local int rx891_off
- .local int rx891_eos
- .local int rx891_rep
- .local pmc rx891_cur
- (rx891_cur, rx891_pos, rx891_tgt) = self."!cursor_start"()
- rx891_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
- rx891_cur."!cursor_caparray"("EXPR")
- .lex unicode:"$\x{a2}", rx891_cur
+ .local string rx895_tgt
+ .local int rx895_pos
+ .local int rx895_off
+ .local int rx895_eos
+ .local int rx895_rep
+ .local pmc rx895_cur
+ (rx895_cur, rx895_pos, rx895_tgt) = self."!cursor_start"()
+ rx895_cur."!cursor_debug"("START ", "quote:sym<q>")
+ .lex unicode:"$\x{a2}", rx895_cur
.local pmc match
.lex "$/", match
- length rx891_eos, rx891_tgt
- set rx891_off, 0
- lt rx891_pos, 2, rx891_start
- sub rx891_off, rx891_pos, 1
- substr rx891_tgt, rx891_tgt, rx891_off
- rx891_start:
+ length rx895_eos, rx895_tgt
+ gt rx895_pos, rx895_eos, rx895_done
+ set rx895_off, 0
+ lt rx895_pos, 2, rx895_start
+ sub rx895_off, rx895_pos, 1
+ substr rx895_tgt, rx895_tgt, rx895_off
+ rx895_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan895_done
- goto rxscan895_scan
- rxscan895_loop:
- ($P10) = rx891_cur."from"()
+ ne $I10, -1, rxscan899_done
+ goto rxscan899_scan
+ rxscan899_loop:
+ ($P10) = rx895_cur."from"()
inc $P10
- set rx891_pos, $P10
- ge rx891_pos, rx891_eos, rxscan895_done
- rxscan895_scan:
- set_addr $I10, rxscan895_loop
- rx891_cur."!mark_push"(0, rx891_pos, $I10)
- rxscan895_done:
-.annotate 'line', 420
- # rx literal "("
- add $I11, rx891_pos, 1
- gt $I11, rx891_eos, rx891_fail
- sub $I11, rx891_pos, rx891_off
- substr $S10, rx891_tgt, $I11, 1
- ne $S10, "(", rx891_fail
- add rx891_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx891_cur."!cursor_pos"(rx891_pos)
- $P10 = rx891_cur."ws"()
- unless $P10, rx891_fail
- rx891_pos = $P10."pos"()
- # rx rxquantr896 ** 0..1
- set_addr $I897, rxquantr896_done
- rx891_cur."!mark_push"(0, rx891_pos, $I897)
- rxquantr896_loop:
- # rx subrule "EXPR" subtype=capture negate=
- rx891_cur."!cursor_pos"(rx891_pos)
- $P10 = rx891_cur."EXPR"()
- unless $P10, rx891_fail
- rx891_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
- rx891_pos = $P10."pos"()
- (rx891_rep) = rx891_cur."!mark_commit"($I897)
- rxquantr896_done:
- # rx literal ")"
- add $I11, rx891_pos, 1
- gt $I11, rx891_eos, rx891_fail
- sub $I11, rx891_pos, rx891_off
- substr $S10, rx891_tgt, $I11, 1
- ne $S10, ")", rx891_fail
- add rx891_pos, 1
+ set rx895_pos, $P10
+ ge rx895_pos, rx895_eos, rxscan899_done
+ rxscan899_scan:
+ set_addr $I10, rxscan899_loop
+ rx895_cur."!mark_push"(0, rx895_pos, $I10)
+ rxscan899_done:
+.annotate 'line', 419
+ # rx literal "q"
+ add $I11, rx895_pos, 1
+ gt $I11, rx895_eos, rx895_fail
+ sub $I11, rx895_pos, rx895_off
+ substr $S10, rx895_tgt, $I11, 1
+ ne $S10, "q", rx895_fail
+ add rx895_pos, 1
+ # rxanchor rwb
+ le rx895_pos, 0, rx895_fail
+ sub $I10, rx895_pos, rx895_off
+ is_cclass $I11, 8192, rx895_tgt, $I10
+ if $I11, rx895_fail
+ dec $I10
+ is_cclass $I11, 8192, rx895_tgt, $I10
+ unless $I11, rx895_fail
+ # rx enumcharlist negate=1 zerowidth
+ ge rx895_pos, rx895_eos, rx895_fail
+ sub $I10, rx895_pos, rx895_off
+ substr $S10, rx895_tgt, $I10, 1
+ index $I11, "(", $S10
+ ge $I11, 0, rx895_fail
+ # rx subrule "ws" subtype=method negate=
+ rx895_cur."!cursor_pos"(rx895_pos)
+ $P10 = rx895_cur."ws"()
+ unless $P10, rx895_fail
+ rx895_pos = $P10."pos"()
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx895_cur."!cursor_pos"(rx895_pos)
+ $P10 = rx895_cur."quote_EXPR"(":q")
+ unless $P10, rx895_fail
+ rx895_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ rx895_pos = $P10."pos"()
# rx pass
- rx891_cur."!cursor_pass"(rx891_pos, "circumfix:sym<( )>")
- rx891_cur."!cursor_debug"("PASS ", "circumfix:sym<( )>", " at pos=", rx891_pos)
- .return (rx891_cur)
- rx891_fail:
+ rx895_cur."!cursor_pass"(rx895_pos, "quote:sym<q>")
+ rx895_cur."!cursor_debug"("PASS ", "quote:sym<q>", " at pos=", rx895_pos)
+ .return (rx895_cur)
+ rx895_fail:
.annotate 'line', 4
- (rx891_rep, rx891_pos, $I10, $P10) = rx891_cur."!mark_fail"(0)
- lt rx891_pos, -1, rx891_done
- eq rx891_pos, -1, rx891_fail
+ (rx895_rep, rx895_pos, $I10, $P10) = rx895_cur."!mark_fail"(0)
+ lt rx895_pos, -1, rx895_done
+ eq rx895_pos, -1, rx895_fail
jump $I10
- rx891_done:
- rx891_cur."!cursor_fail"()
- rx891_cur."!cursor_debug"("FAIL ", "circumfix:sym<( )>")
- .return (rx891_cur)
+ rx895_done:
+ rx895_cur."!cursor_fail"()
+ rx895_cur."!cursor_debug"("FAIL ", "quote:sym<q>")
+ .return (rx895_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<( )>" :subid("214_1274022894.43745") :method
+.sub "!PREFIX__quote:sym<q>" :subid("209_1275811487.95429") :method
.annotate 'line', 4
- $P893 = self."!PREFIX__!subrule"("", "(")
- new $P894, "ResizablePMCArray"
- push $P894, $P893
- .return ($P894)
+ $P897 = self."!PREFIX__!subrule"("ws", "q")
+ new $P898, "ResizablePMCArray"
+ push $P898, $P897
+ .return ($P898)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<[ ]>" :subid("215_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym<qq>" :subid("210_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx899_tgt
- .local int rx899_pos
- .local int rx899_off
- .local int rx899_eos
- .local int rx899_rep
- .local pmc rx899_cur
- (rx899_cur, rx899_pos, rx899_tgt) = self."!cursor_start"()
- rx899_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
- rx899_cur."!cursor_caparray"("EXPR")
- .lex unicode:"$\x{a2}", rx899_cur
+ .local string rx901_tgt
+ .local int rx901_pos
+ .local int rx901_off
+ .local int rx901_eos
+ .local int rx901_rep
+ .local pmc rx901_cur
+ (rx901_cur, rx901_pos, rx901_tgt) = self."!cursor_start"()
+ rx901_cur."!cursor_debug"("START ", "quote:sym<qq>")
+ .lex unicode:"$\x{a2}", rx901_cur
.local pmc match
.lex "$/", match
- length rx899_eos, rx899_tgt
- set rx899_off, 0
- lt rx899_pos, 2, rx899_start
- sub rx899_off, rx899_pos, 1
- substr rx899_tgt, rx899_tgt, rx899_off
- rx899_start:
+ length rx901_eos, rx901_tgt
+ gt rx901_pos, rx901_eos, rx901_done
+ set rx901_off, 0
+ lt rx901_pos, 2, rx901_start
+ sub rx901_off, rx901_pos, 1
+ substr rx901_tgt, rx901_tgt, rx901_off
+ rx901_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan903_done
- goto rxscan903_scan
- rxscan903_loop:
- ($P10) = rx899_cur."from"()
+ ne $I10, -1, rxscan905_done
+ goto rxscan905_scan
+ rxscan905_loop:
+ ($P10) = rx901_cur."from"()
inc $P10
- set rx899_pos, $P10
- ge rx899_pos, rx899_eos, rxscan903_done
- rxscan903_scan:
- set_addr $I10, rxscan903_loop
- rx899_cur."!mark_push"(0, rx899_pos, $I10)
- rxscan903_done:
-.annotate 'line', 421
- # rx literal "["
- add $I11, rx899_pos, 1
- gt $I11, rx899_eos, rx899_fail
- sub $I11, rx899_pos, rx899_off
- substr $S10, rx899_tgt, $I11, 1
- ne $S10, "[", rx899_fail
- add rx899_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx899_cur."!cursor_pos"(rx899_pos)
- $P10 = rx899_cur."ws"()
- unless $P10, rx899_fail
- rx899_pos = $P10."pos"()
- # rx rxquantr904 ** 0..1
- set_addr $I905, rxquantr904_done
- rx899_cur."!mark_push"(0, rx899_pos, $I905)
- rxquantr904_loop:
- # rx subrule "EXPR" subtype=capture negate=
- rx899_cur."!cursor_pos"(rx899_pos)
- $P10 = rx899_cur."EXPR"()
- unless $P10, rx899_fail
- rx899_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
- rx899_pos = $P10."pos"()
- (rx899_rep) = rx899_cur."!mark_commit"($I905)
- rxquantr904_done:
- # rx literal "]"
- add $I11, rx899_pos, 1
- gt $I11, rx899_eos, rx899_fail
- sub $I11, rx899_pos, rx899_off
- substr $S10, rx899_tgt, $I11, 1
- ne $S10, "]", rx899_fail
- add rx899_pos, 1
+ set rx901_pos, $P10
+ ge rx901_pos, rx901_eos, rxscan905_done
+ rxscan905_scan:
+ set_addr $I10, rxscan905_loop
+ rx901_cur."!mark_push"(0, rx901_pos, $I10)
+ rxscan905_done:
+.annotate 'line', 420
+ # rx literal "qq"
+ add $I11, rx901_pos, 2
+ gt $I11, rx901_eos, rx901_fail
+ sub $I11, rx901_pos, rx901_off
+ substr $S10, rx901_tgt, $I11, 2
+ ne $S10, "qq", rx901_fail
+ add rx901_pos, 2
+ # rxanchor rwb
+ le rx901_pos, 0, rx901_fail
+ sub $I10, rx901_pos, rx901_off
+ is_cclass $I11, 8192, rx901_tgt, $I10
+ if $I11, rx901_fail
+ dec $I10
+ is_cclass $I11, 8192, rx901_tgt, $I10
+ unless $I11, rx901_fail
+ # rx enumcharlist negate=1 zerowidth
+ ge rx901_pos, rx901_eos, rx901_fail
+ sub $I10, rx901_pos, rx901_off
+ substr $S10, rx901_tgt, $I10, 1
+ index $I11, "(", $S10
+ ge $I11, 0, rx901_fail
+ # rx subrule "ws" subtype=method negate=
+ rx901_cur."!cursor_pos"(rx901_pos)
+ $P10 = rx901_cur."ws"()
+ unless $P10, rx901_fail
+ rx901_pos = $P10."pos"()
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx901_cur."!cursor_pos"(rx901_pos)
+ $P10 = rx901_cur."quote_EXPR"(":qq")
+ unless $P10, rx901_fail
+ rx901_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ rx901_pos = $P10."pos"()
# rx pass
- rx899_cur."!cursor_pass"(rx899_pos, "circumfix:sym<[ ]>")
- rx899_cur."!cursor_debug"("PASS ", "circumfix:sym<[ ]>", " at pos=", rx899_pos)
- .return (rx899_cur)
- rx899_fail:
+ rx901_cur."!cursor_pass"(rx901_pos, "quote:sym<qq>")
+ rx901_cur."!cursor_debug"("PASS ", "quote:sym<qq>", " at pos=", rx901_pos)
+ .return (rx901_cur)
+ rx901_fail:
.annotate 'line', 4
- (rx899_rep, rx899_pos, $I10, $P10) = rx899_cur."!mark_fail"(0)
- lt rx899_pos, -1, rx899_done
- eq rx899_pos, -1, rx899_fail
+ (rx901_rep, rx901_pos, $I10, $P10) = rx901_cur."!mark_fail"(0)
+ lt rx901_pos, -1, rx901_done
+ eq rx901_pos, -1, rx901_fail
jump $I10
- rx899_done:
- rx899_cur."!cursor_fail"()
- rx899_cur."!cursor_debug"("FAIL ", "circumfix:sym<[ ]>")
- .return (rx899_cur)
+ rx901_done:
+ rx901_cur."!cursor_fail"()
+ rx901_cur."!cursor_debug"("FAIL ", "quote:sym<qq>")
+ .return (rx901_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<[ ]>" :subid("216_1274022894.43745") :method
+.sub "!PREFIX__quote:sym<qq>" :subid("211_1275811487.95429") :method
.annotate 'line', 4
- $P901 = self."!PREFIX__!subrule"("", "[")
- new $P902, "ResizablePMCArray"
- push $P902, $P901
- .return ($P902)
+ $P903 = self."!PREFIX__!subrule"("ws", "qq")
+ new $P904, "ResizablePMCArray"
+ push $P904, $P903
+ .return ($P904)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<ang>" :subid("217_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym<Q>" :subid("212_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
.local string rx907_tgt
.local int rx907_pos
@@ -10842,45 +10712,66 @@
.local int rx907_rep
.local pmc rx907_cur
(rx907_cur, rx907_pos, rx907_tgt) = self."!cursor_start"()
- rx907_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
+ rx907_cur."!cursor_debug"("START ", "quote:sym<Q>")
.lex unicode:"$\x{a2}", rx907_cur
.local pmc match
.lex "$/", match
length rx907_eos, rx907_tgt
+ gt rx907_pos, rx907_eos, rx907_done
set rx907_off, 0
lt rx907_pos, 2, rx907_start
sub rx907_off, rx907_pos, 1
substr rx907_tgt, rx907_tgt, rx907_off
rx907_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan910_done
- goto rxscan910_scan
- rxscan910_loop:
+ ne $I10, -1, rxscan911_done
+ goto rxscan911_scan
+ rxscan911_loop:
($P10) = rx907_cur."from"()
inc $P10
set rx907_pos, $P10
- ge rx907_pos, rx907_eos, rxscan910_done
- rxscan910_scan:
- set_addr $I10, rxscan910_loop
+ ge rx907_pos, rx907_eos, rxscan911_done
+ rxscan911_scan:
+ set_addr $I10, rxscan911_loop
rx907_cur."!mark_push"(0, rx907_pos, $I10)
- rxscan910_done:
-.annotate 'line', 422
- # rx enumcharlist negate=0 zerowidth
+ rxscan911_done:
+.annotate 'line', 421
+ # rx literal "Q"
+ add $I11, rx907_pos, 1
+ gt $I11, rx907_eos, rx907_fail
+ sub $I11, rx907_pos, rx907_off
+ substr $S10, rx907_tgt, $I11, 1
+ ne $S10, "Q", rx907_fail
+ add rx907_pos, 1
+ # rxanchor rwb
+ le rx907_pos, 0, rx907_fail
+ sub $I10, rx907_pos, rx907_off
+ is_cclass $I11, 8192, rx907_tgt, $I10
+ if $I11, rx907_fail
+ dec $I10
+ is_cclass $I11, 8192, rx907_tgt, $I10
+ unless $I11, rx907_fail
+ # rx enumcharlist negate=1 zerowidth
ge rx907_pos, rx907_eos, rx907_fail
sub $I10, rx907_pos, rx907_off
substr $S10, rx907_tgt, $I10, 1
- index $I11, "<", $S10
- lt $I11, 0, rx907_fail
+ index $I11, "(", $S10
+ ge $I11, 0, rx907_fail
+ # rx subrule "ws" subtype=method negate=
+ rx907_cur."!cursor_pos"(rx907_pos)
+ $P10 = rx907_cur."ws"()
+ unless $P10, rx907_fail
+ rx907_pos = $P10."pos"()
# rx subrule "quote_EXPR" subtype=capture negate=
rx907_cur."!cursor_pos"(rx907_pos)
- $P10 = rx907_cur."quote_EXPR"(":q", ":w")
+ $P10 = rx907_cur."quote_EXPR"()
unless $P10, rx907_fail
rx907_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
rx907_pos = $P10."pos"()
# rx pass
- rx907_cur."!cursor_pass"(rx907_pos, "circumfix:sym<ang>")
- rx907_cur."!cursor_debug"("PASS ", "circumfix:sym<ang>", " at pos=", rx907_pos)
+ rx907_cur."!cursor_pass"(rx907_pos, "quote:sym<Q>")
+ rx907_cur."!cursor_debug"("PASS ", "quote:sym<Q>", " at pos=", rx907_pos)
.return (rx907_cur)
rx907_fail:
.annotate 'line', 4
@@ -10890,269 +10781,279 @@
jump $I10
rx907_done:
rx907_cur."!cursor_fail"()
- rx907_cur."!cursor_debug"("FAIL ", "circumfix:sym<ang>")
+ rx907_cur."!cursor_debug"("FAIL ", "quote:sym<Q>")
.return (rx907_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<ang>" :subid("218_1274022894.43745") :method
+.sub "!PREFIX__quote:sym<Q>" :subid("213_1275811487.95429") :method
.annotate 'line', 4
- new $P909, "ResizablePMCArray"
- push $P909, "<"
- .return ($P909)
+ $P909 = self."!PREFIX__!subrule"("ws", "Q")
+ new $P910, "ResizablePMCArray"
+ push $P910, $P909
+ .return ($P910)
.end
.namespace ["NQP";"Grammar"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("219_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 4
- .local string rx912_tgt
- .local int rx912_pos
- .local int rx912_off
- .local int rx912_eos
- .local int rx912_rep
- .local pmc rx912_cur
- (rx912_cur, rx912_pos, rx912_tgt) = self."!cursor_start"()
- rx912_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
- .lex unicode:"$\x{a2}", rx912_cur
- .local pmc match
- .lex "$/", match
- length rx912_eos, rx912_tgt
- set rx912_off, 0
- lt rx912_pos, 2, rx912_start
- sub rx912_off, rx912_pos, 1
- substr rx912_tgt, rx912_tgt, rx912_off
- rx912_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan915_done
- goto rxscan915_scan
- rxscan915_loop:
- ($P10) = rx912_cur."from"()
- inc $P10
- set rx912_pos, $P10
- ge rx912_pos, rx912_eos, rxscan915_done
- rxscan915_scan:
- set_addr $I10, rxscan915_loop
- rx912_cur."!mark_push"(0, rx912_pos, $I10)
- rxscan915_done:
-.annotate 'line', 423
- # rx enumcharlist negate=0 zerowidth
- ge rx912_pos, rx912_eos, rx912_fail
- sub $I10, rx912_pos, rx912_off
- substr $S10, rx912_tgt, $I10, 1
- index $I11, unicode:"\x{ab}", $S10
- lt $I11, 0, rx912_fail
+.sub "quote:sym<Q:PIR>" :subid("214_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx913_tgt
+ .local int rx913_pos
+ .local int rx913_off
+ .local int rx913_eos
+ .local int rx913_rep
+ .local pmc rx913_cur
+ (rx913_cur, rx913_pos, rx913_tgt) = self."!cursor_start"()
+ rx913_cur."!cursor_debug"("START ", "quote:sym<Q:PIR>")
+ .lex unicode:"$\x{a2}", rx913_cur
+ .local pmc match
+ .lex "$/", match
+ length rx913_eos, rx913_tgt
+ gt rx913_pos, rx913_eos, rx913_done
+ set rx913_off, 0
+ lt rx913_pos, 2, rx913_start
+ sub rx913_off, rx913_pos, 1
+ substr rx913_tgt, rx913_tgt, rx913_off
+ rx913_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan917_done
+ goto rxscan917_scan
+ rxscan917_loop:
+ ($P10) = rx913_cur."from"()
+ inc $P10
+ set rx913_pos, $P10
+ ge rx913_pos, rx913_eos, rxscan917_done
+ rxscan917_scan:
+ set_addr $I10, rxscan917_loop
+ rx913_cur."!mark_push"(0, rx913_pos, $I10)
+ rxscan917_done:
+.annotate 'line', 422
+ # rx literal "Q:PIR"
+ add $I11, rx913_pos, 5
+ gt $I11, rx913_eos, rx913_fail
+ sub $I11, rx913_pos, rx913_off
+ substr $S10, rx913_tgt, $I11, 5
+ ne $S10, "Q:PIR", rx913_fail
+ add rx913_pos, 5
+ # rx subrule "ws" subtype=method negate=
+ rx913_cur."!cursor_pos"(rx913_pos)
+ $P10 = rx913_cur."ws"()
+ unless $P10, rx913_fail
+ rx913_pos = $P10."pos"()
# rx subrule "quote_EXPR" subtype=capture negate=
- rx912_cur."!cursor_pos"(rx912_pos)
- $P10 = rx912_cur."quote_EXPR"(":qq", ":w")
- unless $P10, rx912_fail
- rx912_cur."!mark_push"(0, -1, 0, $P10)
+ rx913_cur."!cursor_pos"(rx913_pos)
+ $P10 = rx913_cur."quote_EXPR"()
+ unless $P10, rx913_fail
+ rx913_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx912_pos = $P10."pos"()
+ rx913_pos = $P10."pos"()
# rx pass
- rx912_cur."!cursor_pass"(rx912_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
- rx912_cur."!cursor_debug"("PASS ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx912_pos)
- .return (rx912_cur)
- rx912_fail:
+ rx913_cur."!cursor_pass"(rx913_pos, "quote:sym<Q:PIR>")
+ rx913_cur."!cursor_debug"("PASS ", "quote:sym<Q:PIR>", " at pos=", rx913_pos)
+ .return (rx913_cur)
+ rx913_fail:
.annotate 'line', 4
- (rx912_rep, rx912_pos, $I10, $P10) = rx912_cur."!mark_fail"(0)
- lt rx912_pos, -1, rx912_done
- eq rx912_pos, -1, rx912_fail
+ (rx913_rep, rx913_pos, $I10, $P10) = rx913_cur."!mark_fail"(0)
+ lt rx913_pos, -1, rx913_done
+ eq rx913_pos, -1, rx913_fail
jump $I10
- rx912_done:
- rx912_cur."!cursor_fail"()
- rx912_cur."!cursor_debug"("FAIL ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
- .return (rx912_cur)
+ rx913_done:
+ rx913_cur."!cursor_fail"()
+ rx913_cur."!cursor_debug"("FAIL ", "quote:sym<Q:PIR>")
+ .return (rx913_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("220_1274022894.43745") :method
+.sub "!PREFIX__quote:sym<Q:PIR>" :subid("215_1275811487.95429") :method
.annotate 'line', 4
- new $P914, "ResizablePMCArray"
- push $P914, unicode:"\x{ab}"
- .return ($P914)
+ $P915 = self."!PREFIX__!subrule"("ws", "Q:PIR")
+ new $P916, "ResizablePMCArray"
+ push $P916, $P915
+ .return ($P916)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<{ }>" :subid("221_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote:sym</ />" :subid("216_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx917_tgt
- .local int rx917_pos
- .local int rx917_off
- .local int rx917_eos
- .local int rx917_rep
- .local pmc rx917_cur
- (rx917_cur, rx917_pos, rx917_tgt) = self."!cursor_start"()
- rx917_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
- .lex unicode:"$\x{a2}", rx917_cur
+ .local string rx919_tgt
+ .local int rx919_pos
+ .local int rx919_off
+ .local int rx919_eos
+ .local int rx919_rep
+ .local pmc rx919_cur
+ (rx919_cur, rx919_pos, rx919_tgt) = self."!cursor_start"()
+ rx919_cur."!cursor_debug"("START ", "quote:sym</ />")
+ .lex unicode:"$\x{a2}", rx919_cur
.local pmc match
.lex "$/", match
- length rx917_eos, rx917_tgt
- set rx917_off, 0
- lt rx917_pos, 2, rx917_start
- sub rx917_off, rx917_pos, 1
- substr rx917_tgt, rx917_tgt, rx917_off
- rx917_start:
+ length rx919_eos, rx919_tgt
+ gt rx919_pos, rx919_eos, rx919_done
+ set rx919_off, 0
+ lt rx919_pos, 2, rx919_start
+ sub rx919_off, rx919_pos, 1
+ substr rx919_tgt, rx919_tgt, rx919_off
+ rx919_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan920_done
- goto rxscan920_scan
- rxscan920_loop:
- ($P10) = rx917_cur."from"()
+ ne $I10, -1, rxscan923_done
+ goto rxscan923_scan
+ rxscan923_loop:
+ ($P10) = rx919_cur."from"()
inc $P10
- set rx917_pos, $P10
- ge rx917_pos, rx917_eos, rxscan920_done
- rxscan920_scan:
- set_addr $I10, rxscan920_loop
- rx917_cur."!mark_push"(0, rx917_pos, $I10)
- rxscan920_done:
+ set rx919_pos, $P10
+ ge rx919_pos, rx919_eos, rxscan923_done
+ rxscan923_scan:
+ set_addr $I10, rxscan923_loop
+ rx919_cur."!mark_push"(0, rx919_pos, $I10)
+ rxscan923_done:
.annotate 'line', 424
- # rx enumcharlist negate=0 zerowidth
- ge rx917_pos, rx917_eos, rx917_fail
- sub $I10, rx917_pos, rx917_off
- substr $S10, rx917_tgt, $I10, 1
- index $I11, "{", $S10
- lt $I11, 0, rx917_fail
- # rx subrule "pblock" subtype=capture negate=
- rx917_cur."!cursor_pos"(rx917_pos)
- $P10 = rx917_cur."pblock"()
- unless $P10, rx917_fail
- rx917_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("pblock")
- rx917_pos = $P10."pos"()
- # rx pass
- rx917_cur."!cursor_pass"(rx917_pos, "circumfix:sym<{ }>")
- rx917_cur."!cursor_debug"("PASS ", "circumfix:sym<{ }>", " at pos=", rx917_pos)
- .return (rx917_cur)
- rx917_fail:
-.annotate 'line', 4
- (rx917_rep, rx917_pos, $I10, $P10) = rx917_cur."!mark_fail"(0)
- lt rx917_pos, -1, rx917_done
- eq rx917_pos, -1, rx917_fail
- jump $I10
- rx917_done:
- rx917_cur."!cursor_fail"()
- rx917_cur."!cursor_debug"("FAIL ", "circumfix:sym<{ }>")
- .return (rx917_cur)
- .return ()
-.end
-
-
-.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<{ }>" :subid("222_1274022894.43745") :method
-.annotate 'line', 4
- new $P919, "ResizablePMCArray"
- push $P919, "{"
- .return ($P919)
+ # rx literal "/"
+ add $I11, rx919_pos, 1
+ gt $I11, rx919_eos, rx919_fail
+ sub $I11, rx919_pos, rx919_off
+ substr $S10, rx919_tgt, $I11, 1
+ ne $S10, "/", rx919_fail
+ add rx919_pos, 1
+.annotate 'line', 425
+ # rx subrule "newpad" subtype=method negate=
+ rx919_cur."!cursor_pos"(rx919_pos)
+ $P10 = rx919_cur."newpad"()
+ unless $P10, rx919_fail
+ rx919_pos = $P10."pos"()
+.annotate 'line', 426
+ # rx reduce name="quote:sym</ />" key="open"
+ rx919_cur."!cursor_pos"(rx919_pos)
+ rx919_cur."!reduce"("quote:sym</ />", "open")
+.annotate 'line', 427
+ # rx subrule "LANG" subtype=capture negate=
+ rx919_cur."!cursor_pos"(rx919_pos)
+ $P10 = rx919_cur."LANG"("Regex", "nibbler")
+ unless $P10, rx919_fail
+ rx919_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("p6regex")
+ rx919_pos = $P10."pos"()
+.annotate 'line', 428
+ # rx literal "/"
+ add $I11, rx919_pos, 1
+ gt $I11, rx919_eos, rx919_fail
+ sub $I11, rx919_pos, rx919_off
+ substr $S10, rx919_tgt, $I11, 1
+ ne $S10, "/", rx919_fail
+ add rx919_pos, 1
+.annotate 'line', 423
+ # rx pass
+ rx919_cur."!cursor_pass"(rx919_pos, "quote:sym</ />")
+ rx919_cur."!cursor_debug"("PASS ", "quote:sym</ />", " at pos=", rx919_pos)
+ .return (rx919_cur)
+ rx919_fail:
+.annotate 'line', 4
+ (rx919_rep, rx919_pos, $I10, $P10) = rx919_cur."!mark_fail"(0)
+ lt rx919_pos, -1, rx919_done
+ eq rx919_pos, -1, rx919_fail
+ jump $I10
+ rx919_done:
+ rx919_cur."!cursor_fail"()
+ rx919_cur."!cursor_debug"("FAIL ", "quote:sym</ />")
+ .return (rx919_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__quote:sym</ />" :subid("217_1275811487.95429") :method
+.annotate 'line', 4
+ $P921 = self."!PREFIX__!subrule"("newpad", "/")
+ new $P922, "ResizablePMCArray"
+ push $P922, $P921
+ .return ($P922)
.end
.namespace ["NQP";"Grammar"]
-.sub "circumfix:sym<sigil>" :subid("223_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote_escape:sym<$>" :subid("218_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
- .local string rx922_tgt
- .local int rx922_pos
- .local int rx922_off
- .local int rx922_eos
- .local int rx922_rep
- .local pmc rx922_cur
- (rx922_cur, rx922_pos, rx922_tgt) = self."!cursor_start"()
- rx922_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
- .lex unicode:"$\x{a2}", rx922_cur
+ .local string rx925_tgt
+ .local int rx925_pos
+ .local int rx925_off
+ .local int rx925_eos
+ .local int rx925_rep
+ .local pmc rx925_cur
+ (rx925_cur, rx925_pos, rx925_tgt) = self."!cursor_start"()
+ rx925_cur."!cursor_debug"("START ", "quote_escape:sym<$>")
+ .lex unicode:"$\x{a2}", rx925_cur
.local pmc match
.lex "$/", match
- length rx922_eos, rx922_tgt
- set rx922_off, 0
- lt rx922_pos, 2, rx922_start
- sub rx922_off, rx922_pos, 1
- substr rx922_tgt, rx922_tgt, rx922_off
- rx922_start:
+ length rx925_eos, rx925_tgt
+ gt rx925_pos, rx925_eos, rx925_done
+ set rx925_off, 0
+ lt rx925_pos, 2, rx925_start
+ sub rx925_off, rx925_pos, 1
+ substr rx925_tgt, rx925_tgt, rx925_off
+ rx925_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan926_done
- goto rxscan926_scan
- rxscan926_loop:
- ($P10) = rx922_cur."from"()
+ ne $I10, -1, rxscan928_done
+ goto rxscan928_scan
+ rxscan928_loop:
+ ($P10) = rx925_cur."from"()
inc $P10
- set rx922_pos, $P10
- ge rx922_pos, rx922_eos, rxscan926_done
- rxscan926_scan:
- set_addr $I10, rxscan926_loop
- rx922_cur."!mark_push"(0, rx922_pos, $I10)
- rxscan926_done:
-.annotate 'line', 425
- # rx subrule "sigil" subtype=capture negate=
- rx922_cur."!cursor_pos"(rx922_pos)
- $P10 = rx922_cur."sigil"()
- unless $P10, rx922_fail
- rx922_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sigil")
- rx922_pos = $P10."pos"()
- # rx literal "("
- add $I11, rx922_pos, 1
- gt $I11, rx922_eos, rx922_fail
- sub $I11, rx922_pos, rx922_off
- substr $S10, rx922_tgt, $I11, 1
- ne $S10, "(", rx922_fail
- add rx922_pos, 1
- # rx subrule "semilist" subtype=capture negate=
- rx922_cur."!cursor_pos"(rx922_pos)
- $P10 = rx922_cur."semilist"()
- unless $P10, rx922_fail
- rx922_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("semilist")
- rx922_pos = $P10."pos"()
- alt927_0:
- set_addr $I10, alt927_1
- rx922_cur."!mark_push"(0, rx922_pos, $I10)
- # rx literal ")"
- add $I11, rx922_pos, 1
- gt $I11, rx922_eos, rx922_fail
- sub $I11, rx922_pos, rx922_off
- substr $S10, rx922_tgt, $I11, 1
- ne $S10, ")", rx922_fail
- add rx922_pos, 1
- goto alt927_end
- alt927_1:
- # rx subrule "FAILGOAL" subtype=method negate=
- rx922_cur."!cursor_pos"(rx922_pos)
- $P10 = rx922_cur."FAILGOAL"("')'")
- unless $P10, rx922_fail
- rx922_pos = $P10."pos"()
- alt927_end:
+ set rx925_pos, $P10
+ ge rx925_pos, rx925_eos, rxscan928_done
+ rxscan928_scan:
+ set_addr $I10, rxscan928_loop
+ rx925_cur."!mark_push"(0, rx925_pos, $I10)
+ rxscan928_done:
+.annotate 'line', 431
+ # rx enumcharlist negate=0 zerowidth
+ ge rx925_pos, rx925_eos, rx925_fail
+ sub $I10, rx925_pos, rx925_off
+ substr $S10, rx925_tgt, $I10, 1
+ index $I11, "$", $S10
+ lt $I11, 0, rx925_fail
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
+ rx925_cur."!cursor_pos"(rx925_pos)
+ $P10 = rx925_cur."quotemod_check"("s")
+ unless $P10, rx925_fail
+ # rx subrule "variable" subtype=capture negate=
+ rx925_cur."!cursor_pos"(rx925_pos)
+ $P10 = rx925_cur."variable"()
+ unless $P10, rx925_fail
+ rx925_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("variable")
+ rx925_pos = $P10."pos"()
# rx pass
- rx922_cur."!cursor_pass"(rx922_pos, "circumfix:sym<sigil>")
- rx922_cur."!cursor_debug"("PASS ", "circumfix:sym<sigil>", " at pos=", rx922_pos)
- .return (rx922_cur)
- rx922_fail:
+ rx925_cur."!cursor_pass"(rx925_pos, "quote_escape:sym<$>")
+ rx925_cur."!cursor_debug"("PASS ", "quote_escape:sym<$>", " at pos=", rx925_pos)
+ .return (rx925_cur)
+ rx925_fail:
.annotate 'line', 4
- (rx922_rep, rx922_pos, $I10, $P10) = rx922_cur."!mark_fail"(0)
- lt rx922_pos, -1, rx922_done
- eq rx922_pos, -1, rx922_fail
+ (rx925_rep, rx925_pos, $I10, $P10) = rx925_cur."!mark_fail"(0)
+ lt rx925_pos, -1, rx925_done
+ eq rx925_pos, -1, rx925_fail
jump $I10
- rx922_done:
- rx922_cur."!cursor_fail"()
- rx922_cur."!cursor_debug"("FAIL ", "circumfix:sym<sigil>")
- .return (rx922_cur)
+ rx925_done:
+ rx925_cur."!cursor_fail"()
+ rx925_cur."!cursor_debug"("FAIL ", "quote_escape:sym<$>")
+ .return (rx925_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__circumfix:sym<sigil>" :subid("224_1274022894.43745") :method
+.sub "!PREFIX__quote_escape:sym<$>" :subid("219_1275811487.95429") :method
.annotate 'line', 4
- $P924 = self."!PREFIX__!subrule"("sigil", "")
- new $P925, "ResizablePMCArray"
- push $P925, $P924
- .return ($P925)
+ new $P927, "ResizablePMCArray"
+ push $P927, "$"
+ .return ($P927)
.end
.namespace ["NQP";"Grammar"]
-.sub "semilist" :subid("225_1274022894.43745") :method :outer("11_1274022894.43745")
+.sub "quote_escape:sym<{ }>" :subid("220_1275811487.95429") :method :outer("11_1275811487.95429")
.annotate 'line', 4
.local string rx930_tgt
.local int rx930_pos
@@ -11161,11 +11062,12 @@
.local int rx930_rep
.local pmc rx930_cur
(rx930_cur, rx930_pos, rx930_tgt) = self."!cursor_start"()
- rx930_cur."!cursor_debug"("START ", "semilist")
+ rx930_cur."!cursor_debug"("START ", "quote_escape:sym<{ }>")
.lex unicode:"$\x{a2}", rx930_cur
.local pmc match
.lex "$/", match
length rx930_eos, rx930_tgt
+ gt rx930_pos, rx930_eos, rx930_done
set rx930_off, 0
lt rx930_pos, 2, rx930_start
sub rx930_off, rx930_pos, 1
@@ -11183,27 +11085,27 @@
set_addr $I10, rxscan933_loop
rx930_cur."!mark_push"(0, rx930_pos, $I10)
rxscan933_done:
-.annotate 'line', 427
- # rx subrule "ws" subtype=method negate=
+.annotate 'line', 432
+ # rx enumcharlist negate=0 zerowidth
+ ge rx930_pos, rx930_eos, rx930_fail
+ sub $I10, rx930_pos, rx930_off
+ substr $S10, rx930_tgt, $I10, 1
+ index $I11, "{", $S10
+ lt $I11, 0, rx930_fail
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
rx930_cur."!cursor_pos"(rx930_pos)
- $P10 = rx930_cur."ws"()
+ $P10 = rx930_cur."quotemod_check"("c")
unless $P10, rx930_fail
- rx930_pos = $P10."pos"()
- # rx subrule "statement" subtype=capture negate=
+ # rx subrule "block" subtype=capture negate=
rx930_cur."!cursor_pos"(rx930_pos)
- $P10 = rx930_cur."statement"()
+ $P10 = rx930_cur."block"()
unless $P10, rx930_fail
rx930_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("statement")
- rx930_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx930_cur."!cursor_pos"(rx930_pos)
- $P10 = rx930_cur."ws"()
- unless $P10, rx930_fail
+ $P10."!cursor_names"("block")
rx930_pos = $P10."pos"()
# rx pass
- rx930_cur."!cursor_pass"(rx930_pos, "semilist")
- rx930_cur."!cursor_debug"("PASS ", "semilist", " at pos=", rx930_pos)
+ rx930_cur."!cursor_pass"(rx930_pos, "quote_escape:sym<{ }>")
+ rx930_cur."!cursor_debug"("PASS ", "quote_escape:sym<{ }>", " at pos=", rx930_pos)
.return (rx930_cur)
rx930_fail:
.annotate 'line', 4
@@ -11213,871 +11115,825 @@
jump $I10
rx930_done:
rx930_cur."!cursor_fail"()
- rx930_cur."!cursor_debug"("FAIL ", "semilist")
+ rx930_cur."!cursor_debug"("FAIL ", "quote_escape:sym<{ }>")
.return (rx930_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__semilist" :subid("226_1274022894.43745") :method
+.sub "!PREFIX__quote_escape:sym<{ }>" :subid("221_1275811487.95429") :method
.annotate 'line', 4
new $P932, "ResizablePMCArray"
- push $P932, ""
+ push $P932, "{"
.return ($P932)
.end
.namespace ["NQP";"Grammar"]
-.sub "infixish" :subid("227_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx937_tgt
- .local int rx937_pos
- .local int rx937_off
- .local int rx937_eos
- .local int rx937_rep
- .local pmc rx937_cur
- (rx937_cur, rx937_pos, rx937_tgt) = self."!cursor_start"()
- rx937_cur."!cursor_debug"("START ", "infixish")
- .lex unicode:"$\x{a2}", rx937_cur
- .local pmc match
- .lex "$/", match
- length rx937_eos, rx937_tgt
- set rx937_off, 0
- lt rx937_pos, 2, rx937_start
- sub rx937_off, rx937_pos, 1
- substr rx937_tgt, rx937_tgt, rx937_off
- rx937_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan940_done
- goto rxscan940_scan
- rxscan940_loop:
- ($P10) = rx937_cur."from"()
- inc $P10
- set rx937_pos, $P10
- ge rx937_pos, rx937_eos, rxscan940_done
- rxscan940_scan:
- set_addr $I10, rxscan940_loop
- rx937_cur."!mark_push"(0, rx937_pos, $I10)
- rxscan940_done:
-.annotate 'line', 450
- # rx subrule "infixstopper" subtype=zerowidth negate=1
- rx937_cur."!cursor_pos"(rx937_pos)
- $P10 = rx937_cur."infixstopper"()
- if $P10, rx937_fail
- # rx subrule "infix" subtype=capture negate=
- rx937_cur."!cursor_pos"(rx937_pos)
- $P10 = rx937_cur."infix"()
- unless $P10, rx937_fail
- rx937_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("OPER=infix")
- rx937_pos = $P10."pos"()
+.sub "quote_escape:sym<esc>" :subid("222_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx935_tgt
+ .local int rx935_pos
+ .local int rx935_off
+ .local int rx935_eos
+ .local int rx935_rep
+ .local pmc rx935_cur
+ (rx935_cur, rx935_pos, rx935_tgt) = self."!cursor_start"()
+ rx935_cur."!cursor_debug"("START ", "quote_escape:sym<esc>")
+ .lex unicode:"$\x{a2}", rx935_cur
+ .local pmc match
+ .lex "$/", match
+ length rx935_eos, rx935_tgt
+ gt rx935_pos, rx935_eos, rx935_done
+ set rx935_off, 0
+ lt rx935_pos, 2, rx935_start
+ sub rx935_off, rx935_pos, 1
+ substr rx935_tgt, rx935_tgt, rx935_off
+ rx935_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan938_done
+ goto rxscan938_scan
+ rxscan938_loop:
+ ($P10) = rx935_cur."from"()
+ inc $P10
+ set rx935_pos, $P10
+ ge rx935_pos, rx935_eos, rxscan938_done
+ rxscan938_scan:
+ set_addr $I10, rxscan938_loop
+ rx935_cur."!mark_push"(0, rx935_pos, $I10)
+ rxscan938_done:
+.annotate 'line', 433
+ # rx literal "\\e"
+ add $I11, rx935_pos, 2
+ gt $I11, rx935_eos, rx935_fail
+ sub $I11, rx935_pos, rx935_off
+ substr $S10, rx935_tgt, $I11, 2
+ ne $S10, "\\e", rx935_fail
+ add rx935_pos, 2
+ # rx subrule "quotemod_check" subtype=zerowidth negate=
+ rx935_cur."!cursor_pos"(rx935_pos)
+ $P10 = rx935_cur."quotemod_check"("b")
+ unless $P10, rx935_fail
# rx pass
- rx937_cur."!cursor_pass"(rx937_pos, "infixish")
- rx937_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx937_pos)
- .return (rx937_cur)
- rx937_fail:
-.annotate 'line', 431
- (rx937_rep, rx937_pos, $I10, $P10) = rx937_cur."!mark_fail"(0)
- lt rx937_pos, -1, rx937_done
- eq rx937_pos, -1, rx937_fail
+ rx935_cur."!cursor_pass"(rx935_pos, "quote_escape:sym<esc>")
+ rx935_cur."!cursor_debug"("PASS ", "quote_escape:sym<esc>", " at pos=", rx935_pos)
+ .return (rx935_cur)
+ rx935_fail:
+.annotate 'line', 4
+ (rx935_rep, rx935_pos, $I10, $P10) = rx935_cur."!mark_fail"(0)
+ lt rx935_pos, -1, rx935_done
+ eq rx935_pos, -1, rx935_fail
jump $I10
- rx937_done:
- rx937_cur."!cursor_fail"()
- rx937_cur."!cursor_debug"("FAIL ", "infixish")
- .return (rx937_cur)
+ rx935_done:
+ rx935_cur."!cursor_fail"()
+ rx935_cur."!cursor_debug"("FAIL ", "quote_escape:sym<esc>")
+ .return (rx935_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixish" :subid("228_1274022894.43745") :method
-.annotate 'line', 431
- new $P939, "ResizablePMCArray"
- push $P939, ""
- .return ($P939)
+.sub "!PREFIX__quote_escape:sym<esc>" :subid("223_1275811487.95429") :method
+.annotate 'line', 4
+ new $P937, "ResizablePMCArray"
+ push $P937, "\\e"
+ .return ($P937)
.end
.namespace ["NQP";"Grammar"]
-.sub "infixstopper" :subid("229_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx942_tgt
- .local int rx942_pos
- .local int rx942_off
- .local int rx942_eos
- .local int rx942_rep
- .local pmc rx942_cur
- (rx942_cur, rx942_pos, rx942_tgt) = self."!cursor_start"()
- rx942_cur."!cursor_debug"("START ", "infixstopper")
- .lex unicode:"$\x{a2}", rx942_cur
- .local pmc match
- .lex "$/", match
- length rx942_eos, rx942_tgt
- set rx942_off, 0
- lt rx942_pos, 2, rx942_start
- sub rx942_off, rx942_pos, 1
- substr rx942_tgt, rx942_tgt, rx942_off
- rx942_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan945_done
- goto rxscan945_scan
- rxscan945_loop:
- ($P10) = rx942_cur."from"()
- inc $P10
- set rx942_pos, $P10
- ge rx942_pos, rx942_eos, rxscan945_done
- rxscan945_scan:
- set_addr $I10, rxscan945_loop
- rx942_cur."!mark_push"(0, rx942_pos, $I10)
- rxscan945_done:
-.annotate 'line', 451
- # rx subrule "lambda" subtype=zerowidth negate=
- rx942_cur."!cursor_pos"(rx942_pos)
- $P10 = rx942_cur."lambda"()
- unless $P10, rx942_fail
- # rx pass
- rx942_cur."!cursor_pass"(rx942_pos, "infixstopper")
- rx942_cur."!cursor_debug"("PASS ", "infixstopper", " at pos=", rx942_pos)
- .return (rx942_cur)
- rx942_fail:
-.annotate 'line', 431
- (rx942_rep, rx942_pos, $I10, $P10) = rx942_cur."!mark_fail"(0)
- lt rx942_pos, -1, rx942_done
- eq rx942_pos, -1, rx942_fail
+.sub "circumfix:sym<( )>" :subid("224_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx940_tgt
+ .local int rx940_pos
+ .local int rx940_off
+ .local int rx940_eos
+ .local int rx940_rep
+ .local pmc rx940_cur
+ (rx940_cur, rx940_pos, rx940_tgt) = self."!cursor_start"()
+ rx940_cur."!cursor_debug"("START ", "circumfix:sym<( )>")
+ rx940_cur."!cursor_caparray"("EXPR")
+ .lex unicode:"$\x{a2}", rx940_cur
+ .local pmc match
+ .lex "$/", match
+ length rx940_eos, rx940_tgt
+ gt rx940_pos, rx940_eos, rx940_done
+ set rx940_off, 0
+ lt rx940_pos, 2, rx940_start
+ sub rx940_off, rx940_pos, 1
+ substr rx940_tgt, rx940_tgt, rx940_off
+ rx940_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan944_done
+ goto rxscan944_scan
+ rxscan944_loop:
+ ($P10) = rx940_cur."from"()
+ inc $P10
+ set rx940_pos, $P10
+ ge rx940_pos, rx940_eos, rxscan944_done
+ rxscan944_scan:
+ set_addr $I10, rxscan944_loop
+ rx940_cur."!mark_push"(0, rx940_pos, $I10)
+ rxscan944_done:
+.annotate 'line', 435
+ # rx literal "("
+ add $I11, rx940_pos, 1
+ gt $I11, rx940_eos, rx940_fail
+ sub $I11, rx940_pos, rx940_off
+ substr $S10, rx940_tgt, $I11, 1
+ ne $S10, "(", rx940_fail
+ add rx940_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx940_cur."!cursor_pos"(rx940_pos)
+ $P10 = rx940_cur."ws"()
+ unless $P10, rx940_fail
+ rx940_pos = $P10."pos"()
+ # rx rxquantr945 ** 0..1
+ set_addr $I946, rxquantr945_done
+ rx940_cur."!mark_push"(0, rx940_pos, $I946)
+ rxquantr945_loop:
+ # rx subrule "EXPR" subtype=capture negate=
+ rx940_cur."!cursor_pos"(rx940_pos)
+ $P10 = rx940_cur."EXPR"()
+ unless $P10, rx940_fail
+ rx940_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx940_pos = $P10."pos"()
+ (rx940_rep) = rx940_cur."!mark_commit"($I946)
+ rxquantr945_done:
+ # rx literal ")"
+ add $I11, rx940_pos, 1
+ gt $I11, rx940_eos, rx940_fail
+ sub $I11, rx940_pos, rx940_off
+ substr $S10, rx940_tgt, $I11, 1
+ ne $S10, ")", rx940_fail
+ add rx940_pos, 1
+ # rx pass
+ rx940_cur."!cursor_pass"(rx940_pos, "circumfix:sym<( )>")
+ rx940_cur."!cursor_debug"("PASS ", "circumfix:sym<( )>", " at pos=", rx940_pos)
+ .return (rx940_cur)
+ rx940_fail:
+.annotate 'line', 4
+ (rx940_rep, rx940_pos, $I10, $P10) = rx940_cur."!mark_fail"(0)
+ lt rx940_pos, -1, rx940_done
+ eq rx940_pos, -1, rx940_fail
jump $I10
- rx942_done:
- rx942_cur."!cursor_fail"()
- rx942_cur."!cursor_debug"("FAIL ", "infixstopper")
- .return (rx942_cur)
+ rx940_done:
+ rx940_cur."!cursor_fail"()
+ rx940_cur."!cursor_debug"("FAIL ", "circumfix:sym<( )>")
+ .return (rx940_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infixstopper" :subid("230_1274022894.43745") :method
-.annotate 'line', 431
- new $P944, "ResizablePMCArray"
- push $P944, ""
- .return ($P944)
+.sub "!PREFIX__circumfix:sym<( )>" :subid("225_1275811487.95429") :method
+.annotate 'line', 4
+ $P942 = self."!PREFIX__!subrule"("ws", "(")
+ new $P943, "ResizablePMCArray"
+ push $P943, $P942
+ .return ($P943)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<[ ]>" :subid("231_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx947_tgt
- .local int rx947_pos
- .local int rx947_off
- .local int rx947_eos
- .local int rx947_rep
- .local pmc rx947_cur
- (rx947_cur, rx947_pos, rx947_tgt) = self."!cursor_start"()
- rx947_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
- .lex unicode:"$\x{a2}", rx947_cur
- .local pmc match
- .lex "$/", match
- length rx947_eos, rx947_tgt
- set rx947_off, 0
- lt rx947_pos, 2, rx947_start
- sub rx947_off, rx947_pos, 1
- substr rx947_tgt, rx947_tgt, rx947_off
- rx947_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan951_done
- goto rxscan951_scan
- rxscan951_loop:
- ($P10) = rx947_cur."from"()
- inc $P10
- set rx947_pos, $P10
- ge rx947_pos, rx947_eos, rxscan951_done
- rxscan951_scan:
- set_addr $I10, rxscan951_loop
- rx947_cur."!mark_push"(0, rx947_pos, $I10)
- rxscan951_done:
-.annotate 'line', 454
+.sub "circumfix:sym<[ ]>" :subid("226_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx948_tgt
+ .local int rx948_pos
+ .local int rx948_off
+ .local int rx948_eos
+ .local int rx948_rep
+ .local pmc rx948_cur
+ (rx948_cur, rx948_pos, rx948_tgt) = self."!cursor_start"()
+ rx948_cur."!cursor_debug"("START ", "circumfix:sym<[ ]>")
+ rx948_cur."!cursor_caparray"("EXPR")
+ .lex unicode:"$\x{a2}", rx948_cur
+ .local pmc match
+ .lex "$/", match
+ length rx948_eos, rx948_tgt
+ gt rx948_pos, rx948_eos, rx948_done
+ set rx948_off, 0
+ lt rx948_pos, 2, rx948_start
+ sub rx948_off, rx948_pos, 1
+ substr rx948_tgt, rx948_tgt, rx948_off
+ rx948_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan952_done
+ goto rxscan952_scan
+ rxscan952_loop:
+ ($P10) = rx948_cur."from"()
+ inc $P10
+ set rx948_pos, $P10
+ ge rx948_pos, rx948_eos, rxscan952_done
+ rxscan952_scan:
+ set_addr $I10, rxscan952_loop
+ rx948_cur."!mark_push"(0, rx948_pos, $I10)
+ rxscan952_done:
+.annotate 'line', 436
# rx literal "["
- add $I11, rx947_pos, 1
- gt $I11, rx947_eos, rx947_fail
- sub $I11, rx947_pos, rx947_off
- substr $S10, rx947_tgt, $I11, 1
- ne $S10, "[", rx947_fail
- add rx947_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx947_cur."!cursor_pos"(rx947_pos)
- $P10 = rx947_cur."ws"()
- unless $P10, rx947_fail
- rx947_pos = $P10."pos"()
+ add $I11, rx948_pos, 1
+ gt $I11, rx948_eos, rx948_fail
+ sub $I11, rx948_pos, rx948_off
+ substr $S10, rx948_tgt, $I11, 1
+ ne $S10, "[", rx948_fail
+ add rx948_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx948_cur."!cursor_pos"(rx948_pos)
+ $P10 = rx948_cur."ws"()
+ unless $P10, rx948_fail
+ rx948_pos = $P10."pos"()
+ # rx rxquantr953 ** 0..1
+ set_addr $I954, rxquantr953_done
+ rx948_cur."!mark_push"(0, rx948_pos, $I954)
+ rxquantr953_loop:
# rx subrule "EXPR" subtype=capture negate=
- rx947_cur."!cursor_pos"(rx947_pos)
- $P10 = rx947_cur."EXPR"()
- unless $P10, rx947_fail
- rx947_cur."!mark_push"(0, -1, 0, $P10)
+ rx948_cur."!cursor_pos"(rx948_pos)
+ $P10 = rx948_cur."EXPR"()
+ unless $P10, rx948_fail
+ rx948_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx947_pos = $P10."pos"()
+ rx948_pos = $P10."pos"()
+ (rx948_rep) = rx948_cur."!mark_commit"($I954)
+ rxquantr953_done:
# rx literal "]"
- add $I11, rx947_pos, 1
- gt $I11, rx947_eos, rx947_fail
- sub $I11, rx947_pos, rx947_off
- substr $S10, rx947_tgt, $I11, 1
- ne $S10, "]", rx947_fail
- add rx947_pos, 1
-.annotate 'line', 455
- # rx subrule "O" subtype=capture negate=
- rx947_cur."!cursor_pos"(rx947_pos)
- $P10 = rx947_cur."O"("%methodop")
- unless $P10, rx947_fail
- rx947_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("O")
- rx947_pos = $P10."pos"()
-.annotate 'line', 453
+ add $I11, rx948_pos, 1
+ gt $I11, rx948_eos, rx948_fail
+ sub $I11, rx948_pos, rx948_off
+ substr $S10, rx948_tgt, $I11, 1
+ ne $S10, "]", rx948_fail
+ add rx948_pos, 1
# rx pass
- rx947_cur."!cursor_pass"(rx947_pos, "postcircumfix:sym<[ ]>")
- rx947_cur."!cursor_debug"("PASS ", "postcircumfix:sym<[ ]>", " at pos=", rx947_pos)
- .return (rx947_cur)
- rx947_fail:
-.annotate 'line', 431
- (rx947_rep, rx947_pos, $I10, $P10) = rx947_cur."!mark_fail"(0)
- lt rx947_pos, -1, rx947_done
- eq rx947_pos, -1, rx947_fail
+ rx948_cur."!cursor_pass"(rx948_pos, "circumfix:sym<[ ]>")
+ rx948_cur."!cursor_debug"("PASS ", "circumfix:sym<[ ]>", " at pos=", rx948_pos)
+ .return (rx948_cur)
+ rx948_fail:
+.annotate 'line', 4
+ (rx948_rep, rx948_pos, $I10, $P10) = rx948_cur."!mark_fail"(0)
+ lt rx948_pos, -1, rx948_done
+ eq rx948_pos, -1, rx948_fail
jump $I10
- rx947_done:
- rx947_cur."!cursor_fail"()
- rx947_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<[ ]>")
- .return (rx947_cur)
+ rx948_done:
+ rx948_cur."!cursor_fail"()
+ rx948_cur."!cursor_debug"("FAIL ", "circumfix:sym<[ ]>")
+ .return (rx948_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("232_1274022894.43745") :method
-.annotate 'line', 431
- $P949 = self."!PREFIX__!subrule"("", "[")
- new $P950, "ResizablePMCArray"
- push $P950, $P949
- .return ($P950)
+.sub "!PREFIX__circumfix:sym<[ ]>" :subid("227_1275811487.95429") :method
+.annotate 'line', 4
+ $P950 = self."!PREFIX__!subrule"("ws", "[")
+ new $P951, "ResizablePMCArray"
+ push $P951, $P950
+ .return ($P951)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<{ }>" :subid("233_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx953_tgt
- .local int rx953_pos
- .local int rx953_off
- .local int rx953_eos
- .local int rx953_rep
- .local pmc rx953_cur
- (rx953_cur, rx953_pos, rx953_tgt) = self."!cursor_start"()
- rx953_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
- .lex unicode:"$\x{a2}", rx953_cur
- .local pmc match
- .lex "$/", match
- length rx953_eos, rx953_tgt
- set rx953_off, 0
- lt rx953_pos, 2, rx953_start
- sub rx953_off, rx953_pos, 1
- substr rx953_tgt, rx953_tgt, rx953_off
- rx953_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan957_done
- goto rxscan957_scan
- rxscan957_loop:
- ($P10) = rx953_cur."from"()
- inc $P10
- set rx953_pos, $P10
- ge rx953_pos, rx953_eos, rxscan957_done
- rxscan957_scan:
- set_addr $I10, rxscan957_loop
- rx953_cur."!mark_push"(0, rx953_pos, $I10)
- rxscan957_done:
-.annotate 'line', 459
- # rx literal "{"
- add $I11, rx953_pos, 1
- gt $I11, rx953_eos, rx953_fail
- sub $I11, rx953_pos, rx953_off
- substr $S10, rx953_tgt, $I11, 1
- ne $S10, "{", rx953_fail
- add rx953_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx953_cur."!cursor_pos"(rx953_pos)
- $P10 = rx953_cur."ws"()
- unless $P10, rx953_fail
- rx953_pos = $P10."pos"()
- # rx subrule "EXPR" subtype=capture negate=
- rx953_cur."!cursor_pos"(rx953_pos)
- $P10 = rx953_cur."EXPR"()
- unless $P10, rx953_fail
- rx953_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
- rx953_pos = $P10."pos"()
- # rx literal "}"
- add $I11, rx953_pos, 1
- gt $I11, rx953_eos, rx953_fail
- sub $I11, rx953_pos, rx953_off
- substr $S10, rx953_tgt, $I11, 1
- ne $S10, "}", rx953_fail
- add rx953_pos, 1
-.annotate 'line', 460
- # rx subrule "O" subtype=capture negate=
- rx953_cur."!cursor_pos"(rx953_pos)
- $P10 = rx953_cur."O"("%methodop")
- unless $P10, rx953_fail
- rx953_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("O")
- rx953_pos = $P10."pos"()
-.annotate 'line', 458
+.sub "circumfix:sym<ang>" :subid("228_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx956_tgt
+ .local int rx956_pos
+ .local int rx956_off
+ .local int rx956_eos
+ .local int rx956_rep
+ .local pmc rx956_cur
+ (rx956_cur, rx956_pos, rx956_tgt) = self."!cursor_start"()
+ rx956_cur."!cursor_debug"("START ", "circumfix:sym<ang>")
+ .lex unicode:"$\x{a2}", rx956_cur
+ .local pmc match
+ .lex "$/", match
+ length rx956_eos, rx956_tgt
+ gt rx956_pos, rx956_eos, rx956_done
+ set rx956_off, 0
+ lt rx956_pos, 2, rx956_start
+ sub rx956_off, rx956_pos, 1
+ substr rx956_tgt, rx956_tgt, rx956_off
+ rx956_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan959_done
+ goto rxscan959_scan
+ rxscan959_loop:
+ ($P10) = rx956_cur."from"()
+ inc $P10
+ set rx956_pos, $P10
+ ge rx956_pos, rx956_eos, rxscan959_done
+ rxscan959_scan:
+ set_addr $I10, rxscan959_loop
+ rx956_cur."!mark_push"(0, rx956_pos, $I10)
+ rxscan959_done:
+.annotate 'line', 437
+ # rx enumcharlist negate=0 zerowidth
+ ge rx956_pos, rx956_eos, rx956_fail
+ sub $I10, rx956_pos, rx956_off
+ substr $S10, rx956_tgt, $I10, 1
+ index $I11, "<", $S10
+ lt $I11, 0, rx956_fail
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx956_cur."!cursor_pos"(rx956_pos)
+ $P10 = rx956_cur."quote_EXPR"(":q", ":w")
+ unless $P10, rx956_fail
+ rx956_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ rx956_pos = $P10."pos"()
# rx pass
- rx953_cur."!cursor_pass"(rx953_pos, "postcircumfix:sym<{ }>")
- rx953_cur."!cursor_debug"("PASS ", "postcircumfix:sym<{ }>", " at pos=", rx953_pos)
- .return (rx953_cur)
- rx953_fail:
-.annotate 'line', 431
- (rx953_rep, rx953_pos, $I10, $P10) = rx953_cur."!mark_fail"(0)
- lt rx953_pos, -1, rx953_done
- eq rx953_pos, -1, rx953_fail
+ rx956_cur."!cursor_pass"(rx956_pos, "circumfix:sym<ang>")
+ rx956_cur."!cursor_debug"("PASS ", "circumfix:sym<ang>", " at pos=", rx956_pos)
+ .return (rx956_cur)
+ rx956_fail:
+.annotate 'line', 4
+ (rx956_rep, rx956_pos, $I10, $P10) = rx956_cur."!mark_fail"(0)
+ lt rx956_pos, -1, rx956_done
+ eq rx956_pos, -1, rx956_fail
jump $I10
- rx953_done:
- rx953_cur."!cursor_fail"()
- rx953_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<{ }>")
- .return (rx953_cur)
+ rx956_done:
+ rx956_cur."!cursor_fail"()
+ rx956_cur."!cursor_debug"("FAIL ", "circumfix:sym<ang>")
+ .return (rx956_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("234_1274022894.43745") :method
-.annotate 'line', 431
- $P955 = self."!PREFIX__!subrule"("", "{")
- new $P956, "ResizablePMCArray"
- push $P956, $P955
- .return ($P956)
+.sub "!PREFIX__circumfix:sym<ang>" :subid("229_1275811487.95429") :method
+.annotate 'line', 4
+ new $P958, "ResizablePMCArray"
+ push $P958, "<"
+ .return ($P958)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<ang>" :subid("235_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx959_tgt
- .local int rx959_pos
- .local int rx959_off
- .local int rx959_eos
- .local int rx959_rep
- .local pmc rx959_cur
- (rx959_cur, rx959_pos, rx959_tgt) = self."!cursor_start"()
- rx959_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
- .lex unicode:"$\x{a2}", rx959_cur
- .local pmc match
- .lex "$/", match
- length rx959_eos, rx959_tgt
- set rx959_off, 0
- lt rx959_pos, 2, rx959_start
- sub rx959_off, rx959_pos, 1
- substr rx959_tgt, rx959_tgt, rx959_off
- rx959_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan962_done
- goto rxscan962_scan
- rxscan962_loop:
- ($P10) = rx959_cur."from"()
- inc $P10
- set rx959_pos, $P10
- ge rx959_pos, rx959_eos, rxscan962_done
- rxscan962_scan:
- set_addr $I10, rxscan962_loop
- rx959_cur."!mark_push"(0, rx959_pos, $I10)
- rxscan962_done:
-.annotate 'line', 464
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("230_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx961_tgt
+ .local int rx961_pos
+ .local int rx961_off
+ .local int rx961_eos
+ .local int rx961_rep
+ .local pmc rx961_cur
+ (rx961_cur, rx961_pos, rx961_tgt) = self."!cursor_start"()
+ rx961_cur."!cursor_debug"("START ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ .lex unicode:"$\x{a2}", rx961_cur
+ .local pmc match
+ .lex "$/", match
+ length rx961_eos, rx961_tgt
+ gt rx961_pos, rx961_eos, rx961_done
+ set rx961_off, 0
+ lt rx961_pos, 2, rx961_start
+ sub rx961_off, rx961_pos, 1
+ substr rx961_tgt, rx961_tgt, rx961_off
+ rx961_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan964_done
+ goto rxscan964_scan
+ rxscan964_loop:
+ ($P10) = rx961_cur."from"()
+ inc $P10
+ set rx961_pos, $P10
+ ge rx961_pos, rx961_eos, rxscan964_done
+ rxscan964_scan:
+ set_addr $I10, rxscan964_loop
+ rx961_cur."!mark_push"(0, rx961_pos, $I10)
+ rxscan964_done:
+.annotate 'line', 438
# rx enumcharlist negate=0 zerowidth
- ge rx959_pos, rx959_eos, rx959_fail
- sub $I10, rx959_pos, rx959_off
- substr $S10, rx959_tgt, $I10, 1
- index $I11, "<", $S10
- lt $I11, 0, rx959_fail
+ ge rx961_pos, rx961_eos, rx961_fail
+ sub $I10, rx961_pos, rx961_off
+ substr $S10, rx961_tgt, $I10, 1
+ index $I11, unicode:"\x{ab}", $S10
+ lt $I11, 0, rx961_fail
# rx subrule "quote_EXPR" subtype=capture negate=
- rx959_cur."!cursor_pos"(rx959_pos)
- $P10 = rx959_cur."quote_EXPR"(":q")
- unless $P10, rx959_fail
- rx959_cur."!mark_push"(0, -1, 0, $P10)
+ rx961_cur."!cursor_pos"(rx961_pos)
+ $P10 = rx961_cur."quote_EXPR"(":qq", ":w")
+ unless $P10, rx961_fail
+ rx961_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
- rx959_pos = $P10."pos"()
-.annotate 'line', 465
- # rx subrule "O" subtype=capture negate=
- rx959_cur."!cursor_pos"(rx959_pos)
- $P10 = rx959_cur."O"("%methodop")
- unless $P10, rx959_fail
- rx959_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("O")
- rx959_pos = $P10."pos"()
-.annotate 'line', 463
+ rx961_pos = $P10."pos"()
# rx pass
- rx959_cur."!cursor_pass"(rx959_pos, "postcircumfix:sym<ang>")
- rx959_cur."!cursor_debug"("PASS ", "postcircumfix:sym<ang>", " at pos=", rx959_pos)
- .return (rx959_cur)
- rx959_fail:
-.annotate 'line', 431
- (rx959_rep, rx959_pos, $I10, $P10) = rx959_cur."!mark_fail"(0)
- lt rx959_pos, -1, rx959_done
- eq rx959_pos, -1, rx959_fail
+ rx961_cur."!cursor_pass"(rx961_pos, unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ rx961_cur."!cursor_debug"("PASS ", unicode:"circumfix:sym<\x{ab} \x{bb}>", " at pos=", rx961_pos)
+ .return (rx961_cur)
+ rx961_fail:
+.annotate 'line', 4
+ (rx961_rep, rx961_pos, $I10, $P10) = rx961_cur."!mark_fail"(0)
+ lt rx961_pos, -1, rx961_done
+ eq rx961_pos, -1, rx961_fail
jump $I10
- rx959_done:
- rx959_cur."!cursor_fail"()
- rx959_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<ang>")
- .return (rx959_cur)
+ rx961_done:
+ rx961_cur."!cursor_fail"()
+ rx961_cur."!cursor_debug"("FAIL ", unicode:"circumfix:sym<\x{ab} \x{bb}>")
+ .return (rx961_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<ang>" :subid("236_1274022894.43745") :method
-.annotate 'line', 431
- new $P961, "ResizablePMCArray"
- push $P961, "<"
- .return ($P961)
+.sub unicode:"!PREFIX__circumfix:sym<\x{ab} \x{bb}>" :subid("231_1275811487.95429") :method
+.annotate 'line', 4
+ new $P963, "ResizablePMCArray"
+ push $P963, unicode:"\x{ab}"
+ .return ($P963)
.end
.namespace ["NQP";"Grammar"]
-.sub "postcircumfix:sym<( )>" :subid("237_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx964_tgt
- .local int rx964_pos
- .local int rx964_off
- .local int rx964_eos
- .local int rx964_rep
- .local pmc rx964_cur
- (rx964_cur, rx964_pos, rx964_tgt) = self."!cursor_start"()
- rx964_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
- .lex unicode:"$\x{a2}", rx964_cur
- .local pmc match
- .lex "$/", match
- length rx964_eos, rx964_tgt
- set rx964_off, 0
- lt rx964_pos, 2, rx964_start
- sub rx964_off, rx964_pos, 1
- substr rx964_tgt, rx964_tgt, rx964_off
- rx964_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan968_done
- goto rxscan968_scan
- rxscan968_loop:
- ($P10) = rx964_cur."from"()
- inc $P10
- set rx964_pos, $P10
- ge rx964_pos, rx964_eos, rxscan968_done
- rxscan968_scan:
- set_addr $I10, rxscan968_loop
- rx964_cur."!mark_push"(0, rx964_pos, $I10)
- rxscan968_done:
-.annotate 'line', 469
- # rx literal "("
- add $I11, rx964_pos, 1
- gt $I11, rx964_eos, rx964_fail
- sub $I11, rx964_pos, rx964_off
- substr $S10, rx964_tgt, $I11, 1
- ne $S10, "(", rx964_fail
- add rx964_pos, 1
- # rx subrule "ws" subtype=method negate=
- rx964_cur."!cursor_pos"(rx964_pos)
- $P10 = rx964_cur."ws"()
- unless $P10, rx964_fail
- rx964_pos = $P10."pos"()
- # rx subrule "arglist" subtype=capture negate=
- rx964_cur."!cursor_pos"(rx964_pos)
- $P10 = rx964_cur."arglist"()
- unless $P10, rx964_fail
- rx964_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("arglist")
- rx964_pos = $P10."pos"()
- # rx literal ")"
- add $I11, rx964_pos, 1
- gt $I11, rx964_eos, rx964_fail
- sub $I11, rx964_pos, rx964_off
- substr $S10, rx964_tgt, $I11, 1
- ne $S10, ")", rx964_fail
- add rx964_pos, 1
-.annotate 'line', 470
- # rx subrule "O" subtype=capture negate=
- rx964_cur."!cursor_pos"(rx964_pos)
- $P10 = rx964_cur."O"("%methodop")
- unless $P10, rx964_fail
- rx964_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("O")
- rx964_pos = $P10."pos"()
-.annotate 'line', 468
+.sub "circumfix:sym<{ }>" :subid("232_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx966_tgt
+ .local int rx966_pos
+ .local int rx966_off
+ .local int rx966_eos
+ .local int rx966_rep
+ .local pmc rx966_cur
+ (rx966_cur, rx966_pos, rx966_tgt) = self."!cursor_start"()
+ rx966_cur."!cursor_debug"("START ", "circumfix:sym<{ }>")
+ .lex unicode:"$\x{a2}", rx966_cur
+ .local pmc match
+ .lex "$/", match
+ length rx966_eos, rx966_tgt
+ gt rx966_pos, rx966_eos, rx966_done
+ set rx966_off, 0
+ lt rx966_pos, 2, rx966_start
+ sub rx966_off, rx966_pos, 1
+ substr rx966_tgt, rx966_tgt, rx966_off
+ rx966_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan969_done
+ goto rxscan969_scan
+ rxscan969_loop:
+ ($P10) = rx966_cur."from"()
+ inc $P10
+ set rx966_pos, $P10
+ ge rx966_pos, rx966_eos, rxscan969_done
+ rxscan969_scan:
+ set_addr $I10, rxscan969_loop
+ rx966_cur."!mark_push"(0, rx966_pos, $I10)
+ rxscan969_done:
+.annotate 'line', 439
+ # rx enumcharlist negate=0 zerowidth
+ ge rx966_pos, rx966_eos, rx966_fail
+ sub $I10, rx966_pos, rx966_off
+ substr $S10, rx966_tgt, $I10, 1
+ index $I11, "{", $S10
+ lt $I11, 0, rx966_fail
+ # rx subrule "pblock" subtype=capture negate=
+ rx966_cur."!cursor_pos"(rx966_pos)
+ $P10 = rx966_cur."pblock"()
+ unless $P10, rx966_fail
+ rx966_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("pblock")
+ rx966_pos = $P10."pos"()
# rx pass
- rx964_cur."!cursor_pass"(rx964_pos, "postcircumfix:sym<( )>")
- rx964_cur."!cursor_debug"("PASS ", "postcircumfix:sym<( )>", " at pos=", rx964_pos)
- .return (rx964_cur)
- rx964_fail:
-.annotate 'line', 431
- (rx964_rep, rx964_pos, $I10, $P10) = rx964_cur."!mark_fail"(0)
- lt rx964_pos, -1, rx964_done
- eq rx964_pos, -1, rx964_fail
+ rx966_cur."!cursor_pass"(rx966_pos, "circumfix:sym<{ }>")
+ rx966_cur."!cursor_debug"("PASS ", "circumfix:sym<{ }>", " at pos=", rx966_pos)
+ .return (rx966_cur)
+ rx966_fail:
+.annotate 'line', 4
+ (rx966_rep, rx966_pos, $I10, $P10) = rx966_cur."!mark_fail"(0)
+ lt rx966_pos, -1, rx966_done
+ eq rx966_pos, -1, rx966_fail
jump $I10
- rx964_done:
- rx964_cur."!cursor_fail"()
- rx964_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<( )>")
- .return (rx964_cur)
+ rx966_done:
+ rx966_cur."!cursor_fail"()
+ rx966_cur."!cursor_debug"("FAIL ", "circumfix:sym<{ }>")
+ .return (rx966_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postcircumfix:sym<( )>" :subid("238_1274022894.43745") :method
-.annotate 'line', 431
- $P966 = self."!PREFIX__!subrule"("", "(")
- new $P967, "ResizablePMCArray"
- push $P967, $P966
- .return ($P967)
+.sub "!PREFIX__circumfix:sym<{ }>" :subid("233_1275811487.95429") :method
+.annotate 'line', 4
+ new $P968, "ResizablePMCArray"
+ push $P968, "{"
+ .return ($P968)
.end
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<.>" :subid("239_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx970_tgt
- .local int rx970_pos
- .local int rx970_off
- .local int rx970_eos
- .local int rx970_rep
- .local pmc rx970_cur
- (rx970_cur, rx970_pos, rx970_tgt) = self."!cursor_start"()
- rx970_cur."!cursor_debug"("START ", "postfix:sym<.>")
- .lex unicode:"$\x{a2}", rx970_cur
- .local pmc match
- .lex "$/", match
- length rx970_eos, rx970_tgt
- set rx970_off, 0
- lt rx970_pos, 2, rx970_start
- sub rx970_off, rx970_pos, 1
- substr rx970_tgt, rx970_tgt, rx970_off
- rx970_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan974_done
- goto rxscan974_scan
- rxscan974_loop:
- ($P10) = rx970_cur."from"()
- inc $P10
- set rx970_pos, $P10
- ge rx970_pos, rx970_eos, rxscan974_done
- rxscan974_scan:
- set_addr $I10, rxscan974_loop
- rx970_cur."!mark_push"(0, rx970_pos, $I10)
- rxscan974_done:
-.annotate 'line', 473
- # rx subrule "dotty" subtype=capture negate=
- rx970_cur."!cursor_pos"(rx970_pos)
- $P10 = rx970_cur."dotty"()
- unless $P10, rx970_fail
- rx970_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("dotty")
- rx970_pos = $P10."pos"()
- # rx subrule "O" subtype=capture negate=
- rx970_cur."!cursor_pos"(rx970_pos)
- $P10 = rx970_cur."O"("%methodop")
- unless $P10, rx970_fail
- rx970_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("O")
- rx970_pos = $P10."pos"()
+.sub "circumfix:sym<sigil>" :subid("234_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx971_tgt
+ .local int rx971_pos
+ .local int rx971_off
+ .local int rx971_eos
+ .local int rx971_rep
+ .local pmc rx971_cur
+ (rx971_cur, rx971_pos, rx971_tgt) = self."!cursor_start"()
+ rx971_cur."!cursor_debug"("START ", "circumfix:sym<sigil>")
+ .lex unicode:"$\x{a2}", rx971_cur
+ .local pmc match
+ .lex "$/", match
+ length rx971_eos, rx971_tgt
+ gt rx971_pos, rx971_eos, rx971_done
+ set rx971_off, 0
+ lt rx971_pos, 2, rx971_start
+ sub rx971_off, rx971_pos, 1
+ substr rx971_tgt, rx971_tgt, rx971_off
+ rx971_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan975_done
+ goto rxscan975_scan
+ rxscan975_loop:
+ ($P10) = rx971_cur."from"()
+ inc $P10
+ set rx971_pos, $P10
+ ge rx971_pos, rx971_eos, rxscan975_done
+ rxscan975_scan:
+ set_addr $I10, rxscan975_loop
+ rx971_cur."!mark_push"(0, rx971_pos, $I10)
+ rxscan975_done:
+.annotate 'line', 440
+ # rx subrule "sigil" subtype=capture negate=
+ rx971_cur."!cursor_pos"(rx971_pos)
+ $P10 = rx971_cur."sigil"()
+ unless $P10, rx971_fail
+ rx971_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sigil")
+ rx971_pos = $P10."pos"()
+ # rx literal "("
+ add $I11, rx971_pos, 1
+ gt $I11, rx971_eos, rx971_fail
+ sub $I11, rx971_pos, rx971_off
+ substr $S10, rx971_tgt, $I11, 1
+ ne $S10, "(", rx971_fail
+ add rx971_pos, 1
+ # rx subrule "semilist" subtype=capture negate=
+ rx971_cur."!cursor_pos"(rx971_pos)
+ $P10 = rx971_cur."semilist"()
+ unless $P10, rx971_fail
+ rx971_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("semilist")
+ rx971_pos = $P10."pos"()
+ alt976_0:
+ set_addr $I10, alt976_1
+ rx971_cur."!mark_push"(0, rx971_pos, $I10)
+ # rx literal ")"
+ add $I11, rx971_pos, 1
+ gt $I11, rx971_eos, rx971_fail
+ sub $I11, rx971_pos, rx971_off
+ substr $S10, rx971_tgt, $I11, 1
+ ne $S10, ")", rx971_fail
+ add rx971_pos, 1
+ goto alt976_end
+ alt976_1:
+ # rx subrule "FAILGOAL" subtype=method negate=
+ rx971_cur."!cursor_pos"(rx971_pos)
+ $P10 = rx971_cur."FAILGOAL"("')'")
+ unless $P10, rx971_fail
+ rx971_pos = $P10."pos"()
+ alt976_end:
# rx pass
- rx970_cur."!cursor_pass"(rx970_pos, "postfix:sym<.>")
- rx970_cur."!cursor_debug"("PASS ", "postfix:sym<.>", " at pos=", rx970_pos)
- .return (rx970_cur)
- rx970_fail:
-.annotate 'line', 431
- (rx970_rep, rx970_pos, $I10, $P10) = rx970_cur."!mark_fail"(0)
- lt rx970_pos, -1, rx970_done
- eq rx970_pos, -1, rx970_fail
+ rx971_cur."!cursor_pass"(rx971_pos, "circumfix:sym<sigil>")
+ rx971_cur."!cursor_debug"("PASS ", "circumfix:sym<sigil>", " at pos=", rx971_pos)
+ .return (rx971_cur)
+ rx971_fail:
+.annotate 'line', 4
+ (rx971_rep, rx971_pos, $I10, $P10) = rx971_cur."!mark_fail"(0)
+ lt rx971_pos, -1, rx971_done
+ eq rx971_pos, -1, rx971_fail
jump $I10
- rx970_done:
- rx970_cur."!cursor_fail"()
- rx970_cur."!cursor_debug"("FAIL ", "postfix:sym<.>")
- .return (rx970_cur)
+ rx971_done:
+ rx971_cur."!cursor_fail"()
+ rx971_cur."!cursor_debug"("FAIL ", "circumfix:sym<sigil>")
+ .return (rx971_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<.>" :subid("240_1274022894.43745") :method
-.annotate 'line', 431
- $P972 = self."!PREFIX__!subrule"("dotty", "")
- new $P973, "ResizablePMCArray"
- push $P973, $P972
- .return ($P973)
+.sub "!PREFIX__circumfix:sym<sigil>" :subid("235_1275811487.95429") :method
+.annotate 'line', 4
+ $P973 = self."!PREFIX__!subrule"("sigil", "")
+ new $P974, "ResizablePMCArray"
+ push $P974, $P973
+ .return ($P974)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<++>" :subid("241_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx976_tgt
- .local int rx976_pos
- .local int rx976_off
- .local int rx976_eos
- .local int rx976_rep
- .local pmc rx976_cur
- (rx976_cur, rx976_pos, rx976_tgt) = self."!cursor_start"()
- rx976_cur."!cursor_debug"("START ", "prefix:sym<++>")
- .lex unicode:"$\x{a2}", rx976_cur
- .local pmc match
- .lex "$/", match
- length rx976_eos, rx976_tgt
- set rx976_off, 0
- lt rx976_pos, 2, rx976_start
- sub rx976_off, rx976_pos, 1
- substr rx976_tgt, rx976_tgt, rx976_off
- rx976_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan980_done
- goto rxscan980_scan
- rxscan980_loop:
- ($P10) = rx976_cur."from"()
- inc $P10
- set rx976_pos, $P10
- ge rx976_pos, rx976_eos, rxscan980_done
- rxscan980_scan:
- set_addr $I10, rxscan980_loop
- rx976_cur."!mark_push"(0, rx976_pos, $I10)
- rxscan980_done:
-.annotate 'line', 475
- # rx subcapture "sym"
- set_addr $I10, rxcap_981_fail
- rx976_cur."!mark_push"(0, rx976_pos, $I10)
- # rx literal "++"
- add $I11, rx976_pos, 2
- gt $I11, rx976_eos, rx976_fail
- sub $I11, rx976_pos, rx976_off
- substr $S10, rx976_tgt, $I11, 2
- ne $S10, "++", rx976_fail
- add rx976_pos, 2
- set_addr $I10, rxcap_981_fail
- ($I12, $I11) = rx976_cur."!mark_peek"($I10)
- rx976_cur."!cursor_pos"($I11)
- ($P10) = rx976_cur."!cursor_start"()
- $P10."!cursor_pass"(rx976_pos, "")
- rx976_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_981_done
- rxcap_981_fail:
- goto rx976_fail
- rxcap_981_done:
- # rx subrule "O" subtype=capture negate=
- rx976_cur."!cursor_pos"(rx976_pos)
- $P10 = rx976_cur."O"("%autoincrement, :pirop<inc>")
- unless $P10, rx976_fail
- rx976_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("O")
- rx976_pos = $P10."pos"()
+.sub "semilist" :subid("236_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 4
+ .local string rx979_tgt
+ .local int rx979_pos
+ .local int rx979_off
+ .local int rx979_eos
+ .local int rx979_rep
+ .local pmc rx979_cur
+ (rx979_cur, rx979_pos, rx979_tgt) = self."!cursor_start"()
+ rx979_cur."!cursor_debug"("START ", "semilist")
+ .lex unicode:"$\x{a2}", rx979_cur
+ .local pmc match
+ .lex "$/", match
+ length rx979_eos, rx979_tgt
+ gt rx979_pos, rx979_eos, rx979_done
+ set rx979_off, 0
+ lt rx979_pos, 2, rx979_start
+ sub rx979_off, rx979_pos, 1
+ substr rx979_tgt, rx979_tgt, rx979_off
+ rx979_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan983_done
+ goto rxscan983_scan
+ rxscan983_loop:
+ ($P10) = rx979_cur."from"()
+ inc $P10
+ set rx979_pos, $P10
+ ge rx979_pos, rx979_eos, rxscan983_done
+ rxscan983_scan:
+ set_addr $I10, rxscan983_loop
+ rx979_cur."!mark_push"(0, rx979_pos, $I10)
+ rxscan983_done:
+.annotate 'line', 442
+ # rx subrule "ws" subtype=method negate=
+ rx979_cur."!cursor_pos"(rx979_pos)
+ $P10 = rx979_cur."ws"()
+ unless $P10, rx979_fail
+ rx979_pos = $P10."pos"()
+ # rx subrule "statement" subtype=capture negate=
+ rx979_cur."!cursor_pos"(rx979_pos)
+ $P10 = rx979_cur."statement"()
+ unless $P10, rx979_fail
+ rx979_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("statement")
+ rx979_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx979_cur."!cursor_pos"(rx979_pos)
+ $P10 = rx979_cur."ws"()
+ unless $P10, rx979_fail
+ rx979_pos = $P10."pos"()
# rx pass
- rx976_cur."!cursor_pass"(rx976_pos, "prefix:sym<++>")
- rx976_cur."!cursor_debug"("PASS ", "prefix:sym<++>", " at pos=", rx976_pos)
- .return (rx976_cur)
- rx976_fail:
-.annotate 'line', 431
- (rx976_rep, rx976_pos, $I10, $P10) = rx976_cur."!mark_fail"(0)
- lt rx976_pos, -1, rx976_done
- eq rx976_pos, -1, rx976_fail
+ rx979_cur."!cursor_pass"(rx979_pos, "semilist")
+ rx979_cur."!cursor_debug"("PASS ", "semilist", " at pos=", rx979_pos)
+ .return (rx979_cur)
+ rx979_fail:
+.annotate 'line', 4
+ (rx979_rep, rx979_pos, $I10, $P10) = rx979_cur."!mark_fail"(0)
+ lt rx979_pos, -1, rx979_done
+ eq rx979_pos, -1, rx979_fail
jump $I10
- rx976_done:
- rx976_cur."!cursor_fail"()
- rx976_cur."!cursor_debug"("FAIL ", "prefix:sym<++>")
- .return (rx976_cur)
+ rx979_done:
+ rx979_cur."!cursor_fail"()
+ rx979_cur."!cursor_debug"("FAIL ", "semilist")
+ .return (rx979_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<++>" :subid("242_1274022894.43745") :method
-.annotate 'line', 431
- $P978 = self."!PREFIX__!subrule"("O", "++")
- new $P979, "ResizablePMCArray"
- push $P979, $P978
- .return ($P979)
+.sub "!PREFIX__semilist" :subid("237_1275811487.95429") :method
+.annotate 'line', 4
+ $P981 = self."!PREFIX__!subrule"("ws", "")
+ new $P982, "ResizablePMCArray"
+ push $P982, $P981
+ .return ($P982)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<-->" :subid("243_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx983_tgt
- .local int rx983_pos
- .local int rx983_off
- .local int rx983_eos
- .local int rx983_rep
- .local pmc rx983_cur
- (rx983_cur, rx983_pos, rx983_tgt) = self."!cursor_start"()
- rx983_cur."!cursor_debug"("START ", "prefix:sym<-->")
- .lex unicode:"$\x{a2}", rx983_cur
- .local pmc match
- .lex "$/", match
- length rx983_eos, rx983_tgt
- set rx983_off, 0
- lt rx983_pos, 2, rx983_start
- sub rx983_off, rx983_pos, 1
- substr rx983_tgt, rx983_tgt, rx983_off
- rx983_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan987_done
- goto rxscan987_scan
- rxscan987_loop:
- ($P10) = rx983_cur."from"()
- inc $P10
- set rx983_pos, $P10
- ge rx983_pos, rx983_eos, rxscan987_done
- rxscan987_scan:
- set_addr $I10, rxscan987_loop
- rx983_cur."!mark_push"(0, rx983_pos, $I10)
- rxscan987_done:
-.annotate 'line', 476
- # rx subcapture "sym"
- set_addr $I10, rxcap_988_fail
- rx983_cur."!mark_push"(0, rx983_pos, $I10)
- # rx literal "--"
- add $I11, rx983_pos, 2
- gt $I11, rx983_eos, rx983_fail
- sub $I11, rx983_pos, rx983_off
- substr $S10, rx983_tgt, $I11, 2
- ne $S10, "--", rx983_fail
- add rx983_pos, 2
- set_addr $I10, rxcap_988_fail
- ($I12, $I11) = rx983_cur."!mark_peek"($I10)
- rx983_cur."!cursor_pos"($I11)
- ($P10) = rx983_cur."!cursor_start"()
- $P10."!cursor_pass"(rx983_pos, "")
- rx983_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_988_done
- rxcap_988_fail:
- goto rx983_fail
- rxcap_988_done:
- # rx subrule "O" subtype=capture negate=
- rx983_cur."!cursor_pos"(rx983_pos)
- $P10 = rx983_cur."O"("%autoincrement, :pirop<dec>")
- unless $P10, rx983_fail
- rx983_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("O")
- rx983_pos = $P10."pos"()
+.sub "infixish" :subid("238_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx987_tgt
+ .local int rx987_pos
+ .local int rx987_off
+ .local int rx987_eos
+ .local int rx987_rep
+ .local pmc rx987_cur
+ (rx987_cur, rx987_pos, rx987_tgt) = self."!cursor_start"()
+ rx987_cur."!cursor_debug"("START ", "infixish")
+ .lex unicode:"$\x{a2}", rx987_cur
+ .local pmc match
+ .lex "$/", match
+ length rx987_eos, rx987_tgt
+ gt rx987_pos, rx987_eos, rx987_done
+ set rx987_off, 0
+ lt rx987_pos, 2, rx987_start
+ sub rx987_off, rx987_pos, 1
+ substr rx987_tgt, rx987_tgt, rx987_off
+ rx987_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan990_done
+ goto rxscan990_scan
+ rxscan990_loop:
+ ($P10) = rx987_cur."from"()
+ inc $P10
+ set rx987_pos, $P10
+ ge rx987_pos, rx987_eos, rxscan990_done
+ rxscan990_scan:
+ set_addr $I10, rxscan990_loop
+ rx987_cur."!mark_push"(0, rx987_pos, $I10)
+ rxscan990_done:
+.annotate 'line', 465
+ # rx subrule "infixstopper" subtype=zerowidth negate=1
+ rx987_cur."!cursor_pos"(rx987_pos)
+ $P10 = rx987_cur."infixstopper"()
+ if $P10, rx987_fail
+ # rx subrule "infix" subtype=capture negate=
+ rx987_cur."!cursor_pos"(rx987_pos)
+ $P10 = rx987_cur."infix"()
+ unless $P10, rx987_fail
+ rx987_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("OPER=infix")
+ rx987_pos = $P10."pos"()
# rx pass
- rx983_cur."!cursor_pass"(rx983_pos, "prefix:sym<-->")
- rx983_cur."!cursor_debug"("PASS ", "prefix:sym<-->", " at pos=", rx983_pos)
- .return (rx983_cur)
- rx983_fail:
-.annotate 'line', 431
- (rx983_rep, rx983_pos, $I10, $P10) = rx983_cur."!mark_fail"(0)
- lt rx983_pos, -1, rx983_done
- eq rx983_pos, -1, rx983_fail
+ rx987_cur."!cursor_pass"(rx987_pos, "infixish")
+ rx987_cur."!cursor_debug"("PASS ", "infixish", " at pos=", rx987_pos)
+ .return (rx987_cur)
+ rx987_fail:
+.annotate 'line', 446
+ (rx987_rep, rx987_pos, $I10, $P10) = rx987_cur."!mark_fail"(0)
+ lt rx987_pos, -1, rx987_done
+ eq rx987_pos, -1, rx987_fail
jump $I10
- rx983_done:
- rx983_cur."!cursor_fail"()
- rx983_cur."!cursor_debug"("FAIL ", "prefix:sym<-->")
- .return (rx983_cur)
+ rx987_done:
+ rx987_cur."!cursor_fail"()
+ rx987_cur."!cursor_debug"("FAIL ", "infixish")
+ .return (rx987_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<-->" :subid("244_1274022894.43745") :method
-.annotate 'line', 431
- $P985 = self."!PREFIX__!subrule"("O", "--")
- new $P986, "ResizablePMCArray"
- push $P986, $P985
- .return ($P986)
+.sub "!PREFIX__infixish" :subid("239_1275811487.95429") :method
+.annotate 'line', 446
+ new $P989, "ResizablePMCArray"
+ push $P989, ""
+ .return ($P989)
.end
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<++>" :subid("245_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx990_tgt
- .local int rx990_pos
- .local int rx990_off
- .local int rx990_eos
- .local int rx990_rep
- .local pmc rx990_cur
- (rx990_cur, rx990_pos, rx990_tgt) = self."!cursor_start"()
- rx990_cur."!cursor_debug"("START ", "postfix:sym<++>")
- .lex unicode:"$\x{a2}", rx990_cur
- .local pmc match
- .lex "$/", match
- length rx990_eos, rx990_tgt
- set rx990_off, 0
- lt rx990_pos, 2, rx990_start
- sub rx990_off, rx990_pos, 1
- substr rx990_tgt, rx990_tgt, rx990_off
- rx990_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan994_done
- goto rxscan994_scan
- rxscan994_loop:
- ($P10) = rx990_cur."from"()
- inc $P10
- set rx990_pos, $P10
- ge rx990_pos, rx990_eos, rxscan994_done
- rxscan994_scan:
- set_addr $I10, rxscan994_loop
- rx990_cur."!mark_push"(0, rx990_pos, $I10)
- rxscan994_done:
-.annotate 'line', 479
- # rx subcapture "sym"
- set_addr $I10, rxcap_995_fail
- rx990_cur."!mark_push"(0, rx990_pos, $I10)
- # rx literal "++"
- add $I11, rx990_pos, 2
- gt $I11, rx990_eos, rx990_fail
- sub $I11, rx990_pos, rx990_off
- substr $S10, rx990_tgt, $I11, 2
- ne $S10, "++", rx990_fail
- add rx990_pos, 2
- set_addr $I10, rxcap_995_fail
- ($I12, $I11) = rx990_cur."!mark_peek"($I10)
- rx990_cur."!cursor_pos"($I11)
- ($P10) = rx990_cur."!cursor_start"()
- $P10."!cursor_pass"(rx990_pos, "")
- rx990_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_995_done
- rxcap_995_fail:
- goto rx990_fail
- rxcap_995_done:
- # rx subrule "O" subtype=capture negate=
- rx990_cur."!cursor_pos"(rx990_pos)
- $P10 = rx990_cur."O"("%autoincrement")
- unless $P10, rx990_fail
- rx990_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("O")
- rx990_pos = $P10."pos"()
- # rx pass
- rx990_cur."!cursor_pass"(rx990_pos, "postfix:sym<++>")
- rx990_cur."!cursor_debug"("PASS ", "postfix:sym<++>", " at pos=", rx990_pos)
- .return (rx990_cur)
- rx990_fail:
-.annotate 'line', 431
- (rx990_rep, rx990_pos, $I10, $P10) = rx990_cur."!mark_fail"(0)
- lt rx990_pos, -1, rx990_done
- eq rx990_pos, -1, rx990_fail
+.sub "infixstopper" :subid("240_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx992_tgt
+ .local int rx992_pos
+ .local int rx992_off
+ .local int rx992_eos
+ .local int rx992_rep
+ .local pmc rx992_cur
+ (rx992_cur, rx992_pos, rx992_tgt) = self."!cursor_start"()
+ rx992_cur."!cursor_debug"("START ", "infixstopper")
+ .lex unicode:"$\x{a2}", rx992_cur
+ .local pmc match
+ .lex "$/", match
+ length rx992_eos, rx992_tgt
+ gt rx992_pos, rx992_eos, rx992_done
+ set rx992_off, 0
+ lt rx992_pos, 2, rx992_start
+ sub rx992_off, rx992_pos, 1
+ substr rx992_tgt, rx992_tgt, rx992_off
+ rx992_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan995_done
+ goto rxscan995_scan
+ rxscan995_loop:
+ ($P10) = rx992_cur."from"()
+ inc $P10
+ set rx992_pos, $P10
+ ge rx992_pos, rx992_eos, rxscan995_done
+ rxscan995_scan:
+ set_addr $I10, rxscan995_loop
+ rx992_cur."!mark_push"(0, rx992_pos, $I10)
+ rxscan995_done:
+.annotate 'line', 466
+ # rx subrule "lambda" subtype=zerowidth negate=
+ rx992_cur."!cursor_pos"(rx992_pos)
+ $P10 = rx992_cur."lambda"()
+ unless $P10, rx992_fail
+ # rx pass
+ rx992_cur."!cursor_pass"(rx992_pos, "infixstopper")
+ rx992_cur."!cursor_debug"("PASS ", "infixstopper", " at pos=", rx992_pos)
+ .return (rx992_cur)
+ rx992_fail:
+.annotate 'line', 446
+ (rx992_rep, rx992_pos, $I10, $P10) = rx992_cur."!mark_fail"(0)
+ lt rx992_pos, -1, rx992_done
+ eq rx992_pos, -1, rx992_fail
jump $I10
- rx990_done:
- rx990_cur."!cursor_fail"()
- rx990_cur."!cursor_debug"("FAIL ", "postfix:sym<++>")
- .return (rx990_cur)
+ rx992_done:
+ rx992_cur."!cursor_fail"()
+ rx992_cur."!cursor_debug"("FAIL ", "infixstopper")
+ .return (rx992_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<++>" :subid("246_1274022894.43745") :method
-.annotate 'line', 431
- $P992 = self."!PREFIX__!subrule"("O", "++")
- new $P993, "ResizablePMCArray"
- push $P993, $P992
- .return ($P993)
+.sub "!PREFIX__infixstopper" :subid("241_1275811487.95429") :method
+.annotate 'line', 446
+ new $P994, "ResizablePMCArray"
+ push $P994, ""
+ .return ($P994)
.end
.namespace ["NQP";"Grammar"]
-.sub "postfix:sym<-->" :subid("247_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
+.sub "postcircumfix:sym<[ ]>" :subid("242_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
.local string rx997_tgt
.local int rx997_pos
.local int rx997_off
@@ -12085,11 +11941,12 @@
.local int rx997_rep
.local pmc rx997_cur
(rx997_cur, rx997_pos, rx997_tgt) = self."!cursor_start"()
- rx997_cur."!cursor_debug"("START ", "postfix:sym<-->")
+ rx997_cur."!cursor_debug"("START ", "postcircumfix:sym<[ ]>")
.lex unicode:"$\x{a2}", rx997_cur
.local pmc match
.lex "$/", match
length rx997_eos, rx997_tgt
+ gt rx997_pos, rx997_eos, rx997_done
set rx997_off, 0
lt rx997_pos, 2, rx997_start
sub rx997_off, rx997_pos, 1
@@ -12107,57 +11964,64 @@
set_addr $I10, rxscan1001_loop
rx997_cur."!mark_push"(0, rx997_pos, $I10)
rxscan1001_done:
-.annotate 'line', 480
- # rx subcapture "sym"
- set_addr $I10, rxcap_1002_fail
- rx997_cur."!mark_push"(0, rx997_pos, $I10)
- # rx literal "--"
- add $I11, rx997_pos, 2
+.annotate 'line', 469
+ # rx literal "["
+ add $I11, rx997_pos, 1
gt $I11, rx997_eos, rx997_fail
sub $I11, rx997_pos, rx997_off
- substr $S10, rx997_tgt, $I11, 2
- ne $S10, "--", rx997_fail
- add rx997_pos, 2
- set_addr $I10, rxcap_1002_fail
- ($I12, $I11) = rx997_cur."!mark_peek"($I10)
- rx997_cur."!cursor_pos"($I11)
- ($P10) = rx997_cur."!cursor_start"()
- $P10."!cursor_pass"(rx997_pos, "")
- rx997_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_1002_done
- rxcap_1002_fail:
- goto rx997_fail
- rxcap_1002_done:
- # rx subrule "O" subtype=capture negate=
+ substr $S10, rx997_tgt, $I11, 1
+ ne $S10, "[", rx997_fail
+ add rx997_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx997_cur."!cursor_pos"(rx997_pos)
+ $P10 = rx997_cur."ws"()
+ unless $P10, rx997_fail
+ rx997_pos = $P10."pos"()
+ # rx subrule "EXPR" subtype=capture negate=
rx997_cur."!cursor_pos"(rx997_pos)
- $P10 = rx997_cur."O"("%autoincrement")
+ $P10 = rx997_cur."EXPR"()
unless $P10, rx997_fail
rx997_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("O")
+ $P10."!cursor_names"("EXPR")
rx997_pos = $P10."pos"()
- # rx pass
- rx997_cur."!cursor_pass"(rx997_pos, "postfix:sym<-->")
- rx997_cur."!cursor_debug"("PASS ", "postfix:sym<-->", " at pos=", rx997_pos)
- .return (rx997_cur)
- rx997_fail:
-.annotate 'line', 431
+ # rx literal "]"
+ add $I11, rx997_pos, 1
+ gt $I11, rx997_eos, rx997_fail
+ sub $I11, rx997_pos, rx997_off
+ substr $S10, rx997_tgt, $I11, 1
+ ne $S10, "]", rx997_fail
+ add rx997_pos, 1
+.annotate 'line', 470
+ # rx subrule "O" subtype=capture negate=
+ rx997_cur."!cursor_pos"(rx997_pos)
+ $P10 = rx997_cur."O"("%methodop")
+ unless $P10, rx997_fail
+ rx997_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx997_pos = $P10."pos"()
+.annotate 'line', 468
+ # rx pass
+ rx997_cur."!cursor_pass"(rx997_pos, "postcircumfix:sym<[ ]>")
+ rx997_cur."!cursor_debug"("PASS ", "postcircumfix:sym<[ ]>", " at pos=", rx997_pos)
+ .return (rx997_cur)
+ rx997_fail:
+.annotate 'line', 446
(rx997_rep, rx997_pos, $I10, $P10) = rx997_cur."!mark_fail"(0)
lt rx997_pos, -1, rx997_done
eq rx997_pos, -1, rx997_fail
jump $I10
rx997_done:
rx997_cur."!cursor_fail"()
- rx997_cur."!cursor_debug"("FAIL ", "postfix:sym<-->")
+ rx997_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<[ ]>")
.return (rx997_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__postfix:sym<-->" :subid("248_1274022894.43745") :method
-.annotate 'line', 431
- $P999 = self."!PREFIX__!subrule"("O", "--")
+.sub "!PREFIX__postcircumfix:sym<[ ]>" :subid("243_1275811487.95429") :method
+.annotate 'line', 446
+ $P999 = self."!PREFIX__!subrule"("ws", "[")
new $P1000, "ResizablePMCArray"
push $P1000, $P999
.return ($P1000)
@@ -12165,4607 +12029,5769 @@
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<**>" :subid("249_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1004_tgt
- .local int rx1004_pos
- .local int rx1004_off
- .local int rx1004_eos
- .local int rx1004_rep
- .local pmc rx1004_cur
- (rx1004_cur, rx1004_pos, rx1004_tgt) = self."!cursor_start"()
- rx1004_cur."!cursor_debug"("START ", "infix:sym<**>")
- .lex unicode:"$\x{a2}", rx1004_cur
- .local pmc match
- .lex "$/", match
- length rx1004_eos, rx1004_tgt
- set rx1004_off, 0
- lt rx1004_pos, 2, rx1004_start
- sub rx1004_off, rx1004_pos, 1
- substr rx1004_tgt, rx1004_tgt, rx1004_off
- rx1004_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1008_done
- goto rxscan1008_scan
- rxscan1008_loop:
- ($P10) = rx1004_cur."from"()
- inc $P10
- set rx1004_pos, $P10
- ge rx1004_pos, rx1004_eos, rxscan1008_done
- rxscan1008_scan:
- set_addr $I10, rxscan1008_loop
- rx1004_cur."!mark_push"(0, rx1004_pos, $I10)
- rxscan1008_done:
-.annotate 'line', 482
- # rx subcapture "sym"
- set_addr $I10, rxcap_1009_fail
- rx1004_cur."!mark_push"(0, rx1004_pos, $I10)
- # rx literal "**"
- add $I11, rx1004_pos, 2
- gt $I11, rx1004_eos, rx1004_fail
- sub $I11, rx1004_pos, rx1004_off
- substr $S10, rx1004_tgt, $I11, 2
- ne $S10, "**", rx1004_fail
- add rx1004_pos, 2
- set_addr $I10, rxcap_1009_fail
- ($I12, $I11) = rx1004_cur."!mark_peek"($I10)
- rx1004_cur."!cursor_pos"($I11)
- ($P10) = rx1004_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1004_pos, "")
- rx1004_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_1009_done
- rxcap_1009_fail:
- goto rx1004_fail
- rxcap_1009_done:
+.sub "postcircumfix:sym<{ }>" :subid("244_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1003_tgt
+ .local int rx1003_pos
+ .local int rx1003_off
+ .local int rx1003_eos
+ .local int rx1003_rep
+ .local pmc rx1003_cur
+ (rx1003_cur, rx1003_pos, rx1003_tgt) = self."!cursor_start"()
+ rx1003_cur."!cursor_debug"("START ", "postcircumfix:sym<{ }>")
+ .lex unicode:"$\x{a2}", rx1003_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1003_eos, rx1003_tgt
+ gt rx1003_pos, rx1003_eos, rx1003_done
+ set rx1003_off, 0
+ lt rx1003_pos, 2, rx1003_start
+ sub rx1003_off, rx1003_pos, 1
+ substr rx1003_tgt, rx1003_tgt, rx1003_off
+ rx1003_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1007_done
+ goto rxscan1007_scan
+ rxscan1007_loop:
+ ($P10) = rx1003_cur."from"()
+ inc $P10
+ set rx1003_pos, $P10
+ ge rx1003_pos, rx1003_eos, rxscan1007_done
+ rxscan1007_scan:
+ set_addr $I10, rxscan1007_loop
+ rx1003_cur."!mark_push"(0, rx1003_pos, $I10)
+ rxscan1007_done:
+.annotate 'line', 474
+ # rx literal "{"
+ add $I11, rx1003_pos, 1
+ gt $I11, rx1003_eos, rx1003_fail
+ sub $I11, rx1003_pos, rx1003_off
+ substr $S10, rx1003_tgt, $I11, 1
+ ne $S10, "{", rx1003_fail
+ add rx1003_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx1003_cur."!cursor_pos"(rx1003_pos)
+ $P10 = rx1003_cur."ws"()
+ unless $P10, rx1003_fail
+ rx1003_pos = $P10."pos"()
+ # rx subrule "EXPR" subtype=capture negate=
+ rx1003_cur."!cursor_pos"(rx1003_pos)
+ $P10 = rx1003_cur."EXPR"()
+ unless $P10, rx1003_fail
+ rx1003_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx1003_pos = $P10."pos"()
+ # rx literal "}"
+ add $I11, rx1003_pos, 1
+ gt $I11, rx1003_eos, rx1003_fail
+ sub $I11, rx1003_pos, rx1003_off
+ substr $S10, rx1003_tgt, $I11, 1
+ ne $S10, "}", rx1003_fail
+ add rx1003_pos, 1
+.annotate 'line', 475
# rx subrule "O" subtype=capture negate=
- rx1004_cur."!cursor_pos"(rx1004_pos)
- $P10 = rx1004_cur."O"("%exponentiation, :pirop<pow>")
- unless $P10, rx1004_fail
- rx1004_cur."!mark_push"(0, -1, 0, $P10)
+ rx1003_cur."!cursor_pos"(rx1003_pos)
+ $P10 = rx1003_cur."O"("%methodop")
+ unless $P10, rx1003_fail
+ rx1003_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1004_pos = $P10."pos"()
+ rx1003_pos = $P10."pos"()
+.annotate 'line', 473
# rx pass
- rx1004_cur."!cursor_pass"(rx1004_pos, "infix:sym<**>")
- rx1004_cur."!cursor_debug"("PASS ", "infix:sym<**>", " at pos=", rx1004_pos)
- .return (rx1004_cur)
- rx1004_fail:
-.annotate 'line', 431
- (rx1004_rep, rx1004_pos, $I10, $P10) = rx1004_cur."!mark_fail"(0)
- lt rx1004_pos, -1, rx1004_done
- eq rx1004_pos, -1, rx1004_fail
+ rx1003_cur."!cursor_pass"(rx1003_pos, "postcircumfix:sym<{ }>")
+ rx1003_cur."!cursor_debug"("PASS ", "postcircumfix:sym<{ }>", " at pos=", rx1003_pos)
+ .return (rx1003_cur)
+ rx1003_fail:
+.annotate 'line', 446
+ (rx1003_rep, rx1003_pos, $I10, $P10) = rx1003_cur."!mark_fail"(0)
+ lt rx1003_pos, -1, rx1003_done
+ eq rx1003_pos, -1, rx1003_fail
jump $I10
- rx1004_done:
- rx1004_cur."!cursor_fail"()
- rx1004_cur."!cursor_debug"("FAIL ", "infix:sym<**>")
- .return (rx1004_cur)
+ rx1003_done:
+ rx1003_cur."!cursor_fail"()
+ rx1003_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<{ }>")
+ .return (rx1003_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<**>" :subid("250_1274022894.43745") :method
-.annotate 'line', 431
- $P1006 = self."!PREFIX__!subrule"("O", "**")
- new $P1007, "ResizablePMCArray"
- push $P1007, $P1006
- .return ($P1007)
+.sub "!PREFIX__postcircumfix:sym<{ }>" :subid("245_1275811487.95429") :method
+.annotate 'line', 446
+ $P1005 = self."!PREFIX__!subrule"("ws", "{")
+ new $P1006, "ResizablePMCArray"
+ push $P1006, $P1005
+ .return ($P1006)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<+>" :subid("251_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1011_tgt
- .local int rx1011_pos
- .local int rx1011_off
- .local int rx1011_eos
- .local int rx1011_rep
- .local pmc rx1011_cur
- (rx1011_cur, rx1011_pos, rx1011_tgt) = self."!cursor_start"()
- rx1011_cur."!cursor_debug"("START ", "prefix:sym<+>")
- .lex unicode:"$\x{a2}", rx1011_cur
- .local pmc match
- .lex "$/", match
- length rx1011_eos, rx1011_tgt
- set rx1011_off, 0
- lt rx1011_pos, 2, rx1011_start
- sub rx1011_off, rx1011_pos, 1
- substr rx1011_tgt, rx1011_tgt, rx1011_off
- rx1011_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1015_done
- goto rxscan1015_scan
- rxscan1015_loop:
- ($P10) = rx1011_cur."from"()
- inc $P10
- set rx1011_pos, $P10
- ge rx1011_pos, rx1011_eos, rxscan1015_done
- rxscan1015_scan:
- set_addr $I10, rxscan1015_loop
- rx1011_cur."!mark_push"(0, rx1011_pos, $I10)
- rxscan1015_done:
-.annotate 'line', 484
- # rx subcapture "sym"
- set_addr $I10, rxcap_1016_fail
- rx1011_cur."!mark_push"(0, rx1011_pos, $I10)
- # rx literal "+"
- add $I11, rx1011_pos, 1
- gt $I11, rx1011_eos, rx1011_fail
- sub $I11, rx1011_pos, rx1011_off
- substr $S10, rx1011_tgt, $I11, 1
- ne $S10, "+", rx1011_fail
- add rx1011_pos, 1
- set_addr $I10, rxcap_1016_fail
- ($I12, $I11) = rx1011_cur."!mark_peek"($I10)
- rx1011_cur."!cursor_pos"($I11)
- ($P10) = rx1011_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1011_pos, "")
- rx1011_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_1016_done
- rxcap_1016_fail:
- goto rx1011_fail
- rxcap_1016_done:
+.sub "postcircumfix:sym<ang>" :subid("246_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1009_tgt
+ .local int rx1009_pos
+ .local int rx1009_off
+ .local int rx1009_eos
+ .local int rx1009_rep
+ .local pmc rx1009_cur
+ (rx1009_cur, rx1009_pos, rx1009_tgt) = self."!cursor_start"()
+ rx1009_cur."!cursor_debug"("START ", "postcircumfix:sym<ang>")
+ .lex unicode:"$\x{a2}", rx1009_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1009_eos, rx1009_tgt
+ gt rx1009_pos, rx1009_eos, rx1009_done
+ set rx1009_off, 0
+ lt rx1009_pos, 2, rx1009_start
+ sub rx1009_off, rx1009_pos, 1
+ substr rx1009_tgt, rx1009_tgt, rx1009_off
+ rx1009_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1012_done
+ goto rxscan1012_scan
+ rxscan1012_loop:
+ ($P10) = rx1009_cur."from"()
+ inc $P10
+ set rx1009_pos, $P10
+ ge rx1009_pos, rx1009_eos, rxscan1012_done
+ rxscan1012_scan:
+ set_addr $I10, rxscan1012_loop
+ rx1009_cur."!mark_push"(0, rx1009_pos, $I10)
+ rxscan1012_done:
+.annotate 'line', 479
+ # rx enumcharlist negate=0 zerowidth
+ ge rx1009_pos, rx1009_eos, rx1009_fail
+ sub $I10, rx1009_pos, rx1009_off
+ substr $S10, rx1009_tgt, $I10, 1
+ index $I11, "<", $S10
+ lt $I11, 0, rx1009_fail
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx1009_cur."!cursor_pos"(rx1009_pos)
+ $P10 = rx1009_cur."quote_EXPR"(":q")
+ unless $P10, rx1009_fail
+ rx1009_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("quote_EXPR")
+ rx1009_pos = $P10."pos"()
+.annotate 'line', 480
# rx subrule "O" subtype=capture negate=
- rx1011_cur."!cursor_pos"(rx1011_pos)
- $P10 = rx1011_cur."O"("%symbolic_unary, :pirop<set N*>")
- unless $P10, rx1011_fail
- rx1011_cur."!mark_push"(0, -1, 0, $P10)
+ rx1009_cur."!cursor_pos"(rx1009_pos)
+ $P10 = rx1009_cur."O"("%methodop")
+ unless $P10, rx1009_fail
+ rx1009_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1011_pos = $P10."pos"()
+ rx1009_pos = $P10."pos"()
+.annotate 'line', 478
# rx pass
- rx1011_cur."!cursor_pass"(rx1011_pos, "prefix:sym<+>")
- rx1011_cur."!cursor_debug"("PASS ", "prefix:sym<+>", " at pos=", rx1011_pos)
- .return (rx1011_cur)
- rx1011_fail:
-.annotate 'line', 431
- (rx1011_rep, rx1011_pos, $I10, $P10) = rx1011_cur."!mark_fail"(0)
- lt rx1011_pos, -1, rx1011_done
- eq rx1011_pos, -1, rx1011_fail
+ rx1009_cur."!cursor_pass"(rx1009_pos, "postcircumfix:sym<ang>")
+ rx1009_cur."!cursor_debug"("PASS ", "postcircumfix:sym<ang>", " at pos=", rx1009_pos)
+ .return (rx1009_cur)
+ rx1009_fail:
+.annotate 'line', 446
+ (rx1009_rep, rx1009_pos, $I10, $P10) = rx1009_cur."!mark_fail"(0)
+ lt rx1009_pos, -1, rx1009_done
+ eq rx1009_pos, -1, rx1009_fail
jump $I10
- rx1011_done:
- rx1011_cur."!cursor_fail"()
- rx1011_cur."!cursor_debug"("FAIL ", "prefix:sym<+>")
- .return (rx1011_cur)
+ rx1009_done:
+ rx1009_cur."!cursor_fail"()
+ rx1009_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<ang>")
+ .return (rx1009_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<+>" :subid("252_1274022894.43745") :method
-.annotate 'line', 431
- $P1013 = self."!PREFIX__!subrule"("O", "+")
- new $P1014, "ResizablePMCArray"
- push $P1014, $P1013
- .return ($P1014)
+.sub "!PREFIX__postcircumfix:sym<ang>" :subid("247_1275811487.95429") :method
+.annotate 'line', 446
+ new $P1011, "ResizablePMCArray"
+ push $P1011, "<"
+ .return ($P1011)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<~>" :subid("253_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1018_tgt
- .local int rx1018_pos
- .local int rx1018_off
- .local int rx1018_eos
- .local int rx1018_rep
- .local pmc rx1018_cur
- (rx1018_cur, rx1018_pos, rx1018_tgt) = self."!cursor_start"()
- rx1018_cur."!cursor_debug"("START ", "prefix:sym<~>")
- .lex unicode:"$\x{a2}", rx1018_cur
- .local pmc match
- .lex "$/", match
- length rx1018_eos, rx1018_tgt
- set rx1018_off, 0
- lt rx1018_pos, 2, rx1018_start
- sub rx1018_off, rx1018_pos, 1
- substr rx1018_tgt, rx1018_tgt, rx1018_off
- rx1018_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1022_done
- goto rxscan1022_scan
- rxscan1022_loop:
- ($P10) = rx1018_cur."from"()
- inc $P10
- set rx1018_pos, $P10
- ge rx1018_pos, rx1018_eos, rxscan1022_done
- rxscan1022_scan:
- set_addr $I10, rxscan1022_loop
- rx1018_cur."!mark_push"(0, rx1018_pos, $I10)
- rxscan1022_done:
+.sub "postcircumfix:sym<( )>" :subid("248_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1014_tgt
+ .local int rx1014_pos
+ .local int rx1014_off
+ .local int rx1014_eos
+ .local int rx1014_rep
+ .local pmc rx1014_cur
+ (rx1014_cur, rx1014_pos, rx1014_tgt) = self."!cursor_start"()
+ rx1014_cur."!cursor_debug"("START ", "postcircumfix:sym<( )>")
+ .lex unicode:"$\x{a2}", rx1014_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1014_eos, rx1014_tgt
+ gt rx1014_pos, rx1014_eos, rx1014_done
+ set rx1014_off, 0
+ lt rx1014_pos, 2, rx1014_start
+ sub rx1014_off, rx1014_pos, 1
+ substr rx1014_tgt, rx1014_tgt, rx1014_off
+ rx1014_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1018_done
+ goto rxscan1018_scan
+ rxscan1018_loop:
+ ($P10) = rx1014_cur."from"()
+ inc $P10
+ set rx1014_pos, $P10
+ ge rx1014_pos, rx1014_eos, rxscan1018_done
+ rxscan1018_scan:
+ set_addr $I10, rxscan1018_loop
+ rx1014_cur."!mark_push"(0, rx1014_pos, $I10)
+ rxscan1018_done:
+.annotate 'line', 484
+ # rx literal "("
+ add $I11, rx1014_pos, 1
+ gt $I11, rx1014_eos, rx1014_fail
+ sub $I11, rx1014_pos, rx1014_off
+ substr $S10, rx1014_tgt, $I11, 1
+ ne $S10, "(", rx1014_fail
+ add rx1014_pos, 1
+ # rx subrule "ws" subtype=method negate=
+ rx1014_cur."!cursor_pos"(rx1014_pos)
+ $P10 = rx1014_cur."ws"()
+ unless $P10, rx1014_fail
+ rx1014_pos = $P10."pos"()
+ # rx subrule "arglist" subtype=capture negate=
+ rx1014_cur."!cursor_pos"(rx1014_pos)
+ $P10 = rx1014_cur."arglist"()
+ unless $P10, rx1014_fail
+ rx1014_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("arglist")
+ rx1014_pos = $P10."pos"()
+ # rx literal ")"
+ add $I11, rx1014_pos, 1
+ gt $I11, rx1014_eos, rx1014_fail
+ sub $I11, rx1014_pos, rx1014_off
+ substr $S10, rx1014_tgt, $I11, 1
+ ne $S10, ")", rx1014_fail
+ add rx1014_pos, 1
.annotate 'line', 485
- # rx subcapture "sym"
- set_addr $I10, rxcap_1023_fail
- rx1018_cur."!mark_push"(0, rx1018_pos, $I10)
- # rx literal "~"
- add $I11, rx1018_pos, 1
- gt $I11, rx1018_eos, rx1018_fail
- sub $I11, rx1018_pos, rx1018_off
- substr $S10, rx1018_tgt, $I11, 1
- ne $S10, "~", rx1018_fail
- add rx1018_pos, 1
- set_addr $I10, rxcap_1023_fail
- ($I12, $I11) = rx1018_cur."!mark_peek"($I10)
- rx1018_cur."!cursor_pos"($I11)
- ($P10) = rx1018_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1018_pos, "")
- rx1018_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_1023_done
- rxcap_1023_fail:
- goto rx1018_fail
- rxcap_1023_done:
# rx subrule "O" subtype=capture negate=
- rx1018_cur."!cursor_pos"(rx1018_pos)
- $P10 = rx1018_cur."O"("%symbolic_unary, :pirop<set S*>")
- unless $P10, rx1018_fail
- rx1018_cur."!mark_push"(0, -1, 0, $P10)
+ rx1014_cur."!cursor_pos"(rx1014_pos)
+ $P10 = rx1014_cur."O"("%methodop")
+ unless $P10, rx1014_fail
+ rx1014_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1018_pos = $P10."pos"()
+ rx1014_pos = $P10."pos"()
+.annotate 'line', 483
# rx pass
- rx1018_cur."!cursor_pass"(rx1018_pos, "prefix:sym<~>")
- rx1018_cur."!cursor_debug"("PASS ", "prefix:sym<~>", " at pos=", rx1018_pos)
- .return (rx1018_cur)
- rx1018_fail:
-.annotate 'line', 431
- (rx1018_rep, rx1018_pos, $I10, $P10) = rx1018_cur."!mark_fail"(0)
- lt rx1018_pos, -1, rx1018_done
- eq rx1018_pos, -1, rx1018_fail
+ rx1014_cur."!cursor_pass"(rx1014_pos, "postcircumfix:sym<( )>")
+ rx1014_cur."!cursor_debug"("PASS ", "postcircumfix:sym<( )>", " at pos=", rx1014_pos)
+ .return (rx1014_cur)
+ rx1014_fail:
+.annotate 'line', 446
+ (rx1014_rep, rx1014_pos, $I10, $P10) = rx1014_cur."!mark_fail"(0)
+ lt rx1014_pos, -1, rx1014_done
+ eq rx1014_pos, -1, rx1014_fail
jump $I10
- rx1018_done:
- rx1018_cur."!cursor_fail"()
- rx1018_cur."!cursor_debug"("FAIL ", "prefix:sym<~>")
- .return (rx1018_cur)
+ rx1014_done:
+ rx1014_cur."!cursor_fail"()
+ rx1014_cur."!cursor_debug"("FAIL ", "postcircumfix:sym<( )>")
+ .return (rx1014_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<~>" :subid("254_1274022894.43745") :method
-.annotate 'line', 431
- $P1020 = self."!PREFIX__!subrule"("O", "~")
- new $P1021, "ResizablePMCArray"
- push $P1021, $P1020
- .return ($P1021)
+.sub "!PREFIX__postcircumfix:sym<( )>" :subid("249_1275811487.95429") :method
+.annotate 'line', 446
+ $P1016 = self."!PREFIX__!subrule"("ws", "(")
+ new $P1017, "ResizablePMCArray"
+ push $P1017, $P1016
+ .return ($P1017)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<->" :subid("255_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1025_tgt
- .local int rx1025_pos
- .local int rx1025_off
- .local int rx1025_eos
- .local int rx1025_rep
- .local pmc rx1025_cur
- (rx1025_cur, rx1025_pos, rx1025_tgt) = self."!cursor_start"()
- rx1025_cur."!cursor_debug"("START ", "prefix:sym<->")
- .lex unicode:"$\x{a2}", rx1025_cur
- .local pmc match
- .lex "$/", match
- length rx1025_eos, rx1025_tgt
- set rx1025_off, 0
- lt rx1025_pos, 2, rx1025_start
- sub rx1025_off, rx1025_pos, 1
- substr rx1025_tgt, rx1025_tgt, rx1025_off
- rx1025_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1028_done
- goto rxscan1028_scan
- rxscan1028_loop:
- ($P10) = rx1025_cur."from"()
- inc $P10
- set rx1025_pos, $P10
- ge rx1025_pos, rx1025_eos, rxscan1028_done
- rxscan1028_scan:
- set_addr $I10, rxscan1028_loop
- rx1025_cur."!mark_push"(0, rx1025_pos, $I10)
- rxscan1028_done:
-.annotate 'line', 486
- # rx subcapture "sym"
- set_addr $I10, rxcap_1029_fail
- rx1025_cur."!mark_push"(0, rx1025_pos, $I10)
- # rx literal "-"
- add $I11, rx1025_pos, 1
- gt $I11, rx1025_eos, rx1025_fail
- sub $I11, rx1025_pos, rx1025_off
- substr $S10, rx1025_tgt, $I11, 1
- ne $S10, "-", rx1025_fail
- add rx1025_pos, 1
- set_addr $I10, rxcap_1029_fail
- ($I12, $I11) = rx1025_cur."!mark_peek"($I10)
- rx1025_cur."!cursor_pos"($I11)
- ($P10) = rx1025_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1025_pos, "")
- rx1025_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_1029_done
- rxcap_1029_fail:
- goto rx1025_fail
- rxcap_1029_done:
- # rx enumcharlist negate=1 zerowidth
- ge rx1025_pos, rx1025_eos, rx1025_fail
- sub $I10, rx1025_pos, rx1025_off
- substr $S10, rx1025_tgt, $I10, 1
- index $I11, ">", $S10
- ge $I11, 0, rx1025_fail
- # rx subrule "number" subtype=zerowidth negate=1
- rx1025_cur."!cursor_pos"(rx1025_pos)
- $P10 = rx1025_cur."number"()
- if $P10, rx1025_fail
+.sub "postfix:sym<.>" :subid("250_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1020_tgt
+ .local int rx1020_pos
+ .local int rx1020_off
+ .local int rx1020_eos
+ .local int rx1020_rep
+ .local pmc rx1020_cur
+ (rx1020_cur, rx1020_pos, rx1020_tgt) = self."!cursor_start"()
+ rx1020_cur."!cursor_debug"("START ", "postfix:sym<.>")
+ .lex unicode:"$\x{a2}", rx1020_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1020_eos, rx1020_tgt
+ gt rx1020_pos, rx1020_eos, rx1020_done
+ set rx1020_off, 0
+ lt rx1020_pos, 2, rx1020_start
+ sub rx1020_off, rx1020_pos, 1
+ substr rx1020_tgt, rx1020_tgt, rx1020_off
+ rx1020_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1024_done
+ goto rxscan1024_scan
+ rxscan1024_loop:
+ ($P10) = rx1020_cur."from"()
+ inc $P10
+ set rx1020_pos, $P10
+ ge rx1020_pos, rx1020_eos, rxscan1024_done
+ rxscan1024_scan:
+ set_addr $I10, rxscan1024_loop
+ rx1020_cur."!mark_push"(0, rx1020_pos, $I10)
+ rxscan1024_done:
+.annotate 'line', 488
+ # rx subrule "dotty" subtype=capture negate=
+ rx1020_cur."!cursor_pos"(rx1020_pos)
+ $P10 = rx1020_cur."dotty"()
+ unless $P10, rx1020_fail
+ rx1020_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("dotty")
+ rx1020_pos = $P10."pos"()
# rx subrule "O" subtype=capture negate=
- rx1025_cur."!cursor_pos"(rx1025_pos)
- $P10 = rx1025_cur."O"("%symbolic_unary, :pirop<neg>")
- unless $P10, rx1025_fail
- rx1025_cur."!mark_push"(0, -1, 0, $P10)
+ rx1020_cur."!cursor_pos"(rx1020_pos)
+ $P10 = rx1020_cur."O"("%methodop")
+ unless $P10, rx1020_fail
+ rx1020_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1025_pos = $P10."pos"()
+ rx1020_pos = $P10."pos"()
# rx pass
- rx1025_cur."!cursor_pass"(rx1025_pos, "prefix:sym<->")
- rx1025_cur."!cursor_debug"("PASS ", "prefix:sym<->", " at pos=", rx1025_pos)
- .return (rx1025_cur)
- rx1025_fail:
-.annotate 'line', 431
- (rx1025_rep, rx1025_pos, $I10, $P10) = rx1025_cur."!mark_fail"(0)
- lt rx1025_pos, -1, rx1025_done
- eq rx1025_pos, -1, rx1025_fail
+ rx1020_cur."!cursor_pass"(rx1020_pos, "postfix:sym<.>")
+ rx1020_cur."!cursor_debug"("PASS ", "postfix:sym<.>", " at pos=", rx1020_pos)
+ .return (rx1020_cur)
+ rx1020_fail:
+.annotate 'line', 446
+ (rx1020_rep, rx1020_pos, $I10, $P10) = rx1020_cur."!mark_fail"(0)
+ lt rx1020_pos, -1, rx1020_done
+ eq rx1020_pos, -1, rx1020_fail
jump $I10
- rx1025_done:
- rx1025_cur."!cursor_fail"()
- rx1025_cur."!cursor_debug"("FAIL ", "prefix:sym<->")
- .return (rx1025_cur)
+ rx1020_done:
+ rx1020_cur."!cursor_fail"()
+ rx1020_cur."!cursor_debug"("FAIL ", "postfix:sym<.>")
+ .return (rx1020_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<->" :subid("256_1274022894.43745") :method
-.annotate 'line', 431
- new $P1027, "ResizablePMCArray"
- push $P1027, "-"
- .return ($P1027)
+.sub "!PREFIX__postfix:sym<.>" :subid("251_1275811487.95429") :method
+.annotate 'line', 446
+ $P1022 = self."!PREFIX__!subrule"("dotty", "")
+ new $P1023, "ResizablePMCArray"
+ push $P1023, $P1022
+ .return ($P1023)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<?>" :subid("257_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1031_tgt
- .local int rx1031_pos
- .local int rx1031_off
- .local int rx1031_eos
- .local int rx1031_rep
- .local pmc rx1031_cur
- (rx1031_cur, rx1031_pos, rx1031_tgt) = self."!cursor_start"()
- rx1031_cur."!cursor_debug"("START ", "prefix:sym<?>")
- .lex unicode:"$\x{a2}", rx1031_cur
- .local pmc match
- .lex "$/", match
- length rx1031_eos, rx1031_tgt
- set rx1031_off, 0
- lt rx1031_pos, 2, rx1031_start
- sub rx1031_off, rx1031_pos, 1
- substr rx1031_tgt, rx1031_tgt, rx1031_off
- rx1031_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1035_done
- goto rxscan1035_scan
- rxscan1035_loop:
- ($P10) = rx1031_cur."from"()
- inc $P10
- set rx1031_pos, $P10
- ge rx1031_pos, rx1031_eos, rxscan1035_done
- rxscan1035_scan:
- set_addr $I10, rxscan1035_loop
- rx1031_cur."!mark_push"(0, rx1031_pos, $I10)
- rxscan1035_done:
-.annotate 'line', 487
+.sub "prefix:sym<++>" :subid("252_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1026_tgt
+ .local int rx1026_pos
+ .local int rx1026_off
+ .local int rx1026_eos
+ .local int rx1026_rep
+ .local pmc rx1026_cur
+ (rx1026_cur, rx1026_pos, rx1026_tgt) = self."!cursor_start"()
+ rx1026_cur."!cursor_debug"("START ", "prefix:sym<++>")
+ .lex unicode:"$\x{a2}", rx1026_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1026_eos, rx1026_tgt
+ gt rx1026_pos, rx1026_eos, rx1026_done
+ set rx1026_off, 0
+ lt rx1026_pos, 2, rx1026_start
+ sub rx1026_off, rx1026_pos, 1
+ substr rx1026_tgt, rx1026_tgt, rx1026_off
+ rx1026_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1030_done
+ goto rxscan1030_scan
+ rxscan1030_loop:
+ ($P10) = rx1026_cur."from"()
+ inc $P10
+ set rx1026_pos, $P10
+ ge rx1026_pos, rx1026_eos, rxscan1030_done
+ rxscan1030_scan:
+ set_addr $I10, rxscan1030_loop
+ rx1026_cur."!mark_push"(0, rx1026_pos, $I10)
+ rxscan1030_done:
+.annotate 'line', 490
# rx subcapture "sym"
- set_addr $I10, rxcap_1036_fail
- rx1031_cur."!mark_push"(0, rx1031_pos, $I10)
- # rx literal "?"
- add $I11, rx1031_pos, 1
- gt $I11, rx1031_eos, rx1031_fail
- sub $I11, rx1031_pos, rx1031_off
- substr $S10, rx1031_tgt, $I11, 1
- ne $S10, "?", rx1031_fail
- add rx1031_pos, 1
- set_addr $I10, rxcap_1036_fail
- ($I12, $I11) = rx1031_cur."!mark_peek"($I10)
- rx1031_cur."!cursor_pos"($I11)
- ($P10) = rx1031_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1031_pos, "")
- rx1031_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1031_fail
+ rx1026_cur."!mark_push"(0, rx1026_pos, $I10)
+ # rx literal "++"
+ add $I11, rx1026_pos, 2
+ gt $I11, rx1026_eos, rx1026_fail
+ sub $I11, rx1026_pos, rx1026_off
+ substr $S10, rx1026_tgt, $I11, 2
+ ne $S10, "++", rx1026_fail
+ add rx1026_pos, 2
+ set_addr $I10, rxcap_1031_fail
+ ($I12, $I11) = rx1026_cur."!mark_peek"($I10)
+ rx1026_cur."!cursor_pos"($I11)
+ ($P10) = rx1026_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1026_pos, "")
+ rx1026_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1036_done
- rxcap_1036_fail:
- goto rx1031_fail
- rxcap_1036_done:
+ goto rxcap_1031_done
+ rxcap_1031_fail:
+ goto rx1026_fail
+ rxcap_1031_done:
# rx subrule "O" subtype=capture negate=
- rx1031_cur."!cursor_pos"(rx1031_pos)
- $P10 = rx1031_cur."O"("%symbolic_unary, :pirop<istrue>")
- unless $P10, rx1031_fail
- rx1031_cur."!mark_push"(0, -1, 0, $P10)
+ rx1026_cur."!cursor_pos"(rx1026_pos)
+ $P10 = rx1026_cur."O"("%autoincrement, :pirop<inc>")
+ unless $P10, rx1026_fail
+ rx1026_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1031_pos = $P10."pos"()
+ rx1026_pos = $P10."pos"()
# rx pass
- rx1031_cur."!cursor_pass"(rx1031_pos, "prefix:sym<?>")
- rx1031_cur."!cursor_debug"("PASS ", "prefix:sym<?>", " at pos=", rx1031_pos)
- .return (rx1031_cur)
- rx1031_fail:
-.annotate 'line', 431
- (rx1031_rep, rx1031_pos, $I10, $P10) = rx1031_cur."!mark_fail"(0)
- lt rx1031_pos, -1, rx1031_done
- eq rx1031_pos, -1, rx1031_fail
+ rx1026_cur."!cursor_pass"(rx1026_pos, "prefix:sym<++>")
+ rx1026_cur."!cursor_debug"("PASS ", "prefix:sym<++>", " at pos=", rx1026_pos)
+ .return (rx1026_cur)
+ rx1026_fail:
+.annotate 'line', 446
+ (rx1026_rep, rx1026_pos, $I10, $P10) = rx1026_cur."!mark_fail"(0)
+ lt rx1026_pos, -1, rx1026_done
+ eq rx1026_pos, -1, rx1026_fail
jump $I10
- rx1031_done:
- rx1031_cur."!cursor_fail"()
- rx1031_cur."!cursor_debug"("FAIL ", "prefix:sym<?>")
- .return (rx1031_cur)
+ rx1026_done:
+ rx1026_cur."!cursor_fail"()
+ rx1026_cur."!cursor_debug"("FAIL ", "prefix:sym<++>")
+ .return (rx1026_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<?>" :subid("258_1274022894.43745") :method
-.annotate 'line', 431
- $P1033 = self."!PREFIX__!subrule"("O", "?")
- new $P1034, "ResizablePMCArray"
- push $P1034, $P1033
- .return ($P1034)
+.sub "!PREFIX__prefix:sym<++>" :subid("253_1275811487.95429") :method
+.annotate 'line', 446
+ $P1028 = self."!PREFIX__!subrule"("O", "++")
+ new $P1029, "ResizablePMCArray"
+ push $P1029, $P1028
+ .return ($P1029)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<!>" :subid("259_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1038_tgt
- .local int rx1038_pos
- .local int rx1038_off
- .local int rx1038_eos
- .local int rx1038_rep
- .local pmc rx1038_cur
- (rx1038_cur, rx1038_pos, rx1038_tgt) = self."!cursor_start"()
- rx1038_cur."!cursor_debug"("START ", "prefix:sym<!>")
- .lex unicode:"$\x{a2}", rx1038_cur
- .local pmc match
- .lex "$/", match
- length rx1038_eos, rx1038_tgt
- set rx1038_off, 0
- lt rx1038_pos, 2, rx1038_start
- sub rx1038_off, rx1038_pos, 1
- substr rx1038_tgt, rx1038_tgt, rx1038_off
- rx1038_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1042_done
- goto rxscan1042_scan
- rxscan1042_loop:
- ($P10) = rx1038_cur."from"()
- inc $P10
- set rx1038_pos, $P10
- ge rx1038_pos, rx1038_eos, rxscan1042_done
- rxscan1042_scan:
- set_addr $I10, rxscan1042_loop
- rx1038_cur."!mark_push"(0, rx1038_pos, $I10)
- rxscan1042_done:
-.annotate 'line', 488
+.sub "prefix:sym<-->" :subid("254_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1033_tgt
+ .local int rx1033_pos
+ .local int rx1033_off
+ .local int rx1033_eos
+ .local int rx1033_rep
+ .local pmc rx1033_cur
+ (rx1033_cur, rx1033_pos, rx1033_tgt) = self."!cursor_start"()
+ rx1033_cur."!cursor_debug"("START ", "prefix:sym<-->")
+ .lex unicode:"$\x{a2}", rx1033_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1033_eos, rx1033_tgt
+ gt rx1033_pos, rx1033_eos, rx1033_done
+ set rx1033_off, 0
+ lt rx1033_pos, 2, rx1033_start
+ sub rx1033_off, rx1033_pos, 1
+ substr rx1033_tgt, rx1033_tgt, rx1033_off
+ rx1033_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1037_done
+ goto rxscan1037_scan
+ rxscan1037_loop:
+ ($P10) = rx1033_cur."from"()
+ inc $P10
+ set rx1033_pos, $P10
+ ge rx1033_pos, rx1033_eos, rxscan1037_done
+ rxscan1037_scan:
+ set_addr $I10, rxscan1037_loop
+ rx1033_cur."!mark_push"(0, rx1033_pos, $I10)
+ rxscan1037_done:
+.annotate 'line', 491
# rx subcapture "sym"
- set_addr $I10, rxcap_1043_fail
- rx1038_cur."!mark_push"(0, rx1038_pos, $I10)
- # rx literal "!"
- add $I11, rx1038_pos, 1
- gt $I11, rx1038_eos, rx1038_fail
- sub $I11, rx1038_pos, rx1038_off
- substr $S10, rx1038_tgt, $I11, 1
- ne $S10, "!", rx1038_fail
- add rx1038_pos, 1
- set_addr $I10, rxcap_1043_fail
- ($I12, $I11) = rx1038_cur."!mark_peek"($I10)
- rx1038_cur."!cursor_pos"($I11)
- ($P10) = rx1038_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1038_pos, "")
- rx1038_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1038_fail
+ rx1033_cur."!mark_push"(0, rx1033_pos, $I10)
+ # rx literal "--"
+ add $I11, rx1033_pos, 2
+ gt $I11, rx1033_eos, rx1033_fail
+ sub $I11, rx1033_pos, rx1033_off
+ substr $S10, rx1033_tgt, $I11, 2
+ ne $S10, "--", rx1033_fail
+ add rx1033_pos, 2
+ set_addr $I10, rxcap_1038_fail
+ ($I12, $I11) = rx1033_cur."!mark_peek"($I10)
+ rx1033_cur."!cursor_pos"($I11)
+ ($P10) = rx1033_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1033_pos, "")
+ rx1033_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1043_done
- rxcap_1043_fail:
- goto rx1038_fail
- rxcap_1043_done:
+ goto rxcap_1038_done
+ rxcap_1038_fail:
+ goto rx1033_fail
+ rxcap_1038_done:
# rx subrule "O" subtype=capture negate=
- rx1038_cur."!cursor_pos"(rx1038_pos)
- $P10 = rx1038_cur."O"("%symbolic_unary, :pirop<isfalse>")
- unless $P10, rx1038_fail
- rx1038_cur."!mark_push"(0, -1, 0, $P10)
+ rx1033_cur."!cursor_pos"(rx1033_pos)
+ $P10 = rx1033_cur."O"("%autoincrement, :pirop<dec>")
+ unless $P10, rx1033_fail
+ rx1033_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1038_pos = $P10."pos"()
+ rx1033_pos = $P10."pos"()
# rx pass
- rx1038_cur."!cursor_pass"(rx1038_pos, "prefix:sym<!>")
- rx1038_cur."!cursor_debug"("PASS ", "prefix:sym<!>", " at pos=", rx1038_pos)
- .return (rx1038_cur)
- rx1038_fail:
-.annotate 'line', 431
- (rx1038_rep, rx1038_pos, $I10, $P10) = rx1038_cur."!mark_fail"(0)
- lt rx1038_pos, -1, rx1038_done
- eq rx1038_pos, -1, rx1038_fail
+ rx1033_cur."!cursor_pass"(rx1033_pos, "prefix:sym<-->")
+ rx1033_cur."!cursor_debug"("PASS ", "prefix:sym<-->", " at pos=", rx1033_pos)
+ .return (rx1033_cur)
+ rx1033_fail:
+.annotate 'line', 446
+ (rx1033_rep, rx1033_pos, $I10, $P10) = rx1033_cur."!mark_fail"(0)
+ lt rx1033_pos, -1, rx1033_done
+ eq rx1033_pos, -1, rx1033_fail
jump $I10
- rx1038_done:
- rx1038_cur."!cursor_fail"()
- rx1038_cur."!cursor_debug"("FAIL ", "prefix:sym<!>")
- .return (rx1038_cur)
+ rx1033_done:
+ rx1033_cur."!cursor_fail"()
+ rx1033_cur."!cursor_debug"("FAIL ", "prefix:sym<-->")
+ .return (rx1033_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<!>" :subid("260_1274022894.43745") :method
-.annotate 'line', 431
- $P1040 = self."!PREFIX__!subrule"("O", "!")
- new $P1041, "ResizablePMCArray"
- push $P1041, $P1040
- .return ($P1041)
+.sub "!PREFIX__prefix:sym<-->" :subid("255_1275811487.95429") :method
+.annotate 'line', 446
+ $P1035 = self."!PREFIX__!subrule"("O", "--")
+ new $P1036, "ResizablePMCArray"
+ push $P1036, $P1035
+ .return ($P1036)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<|>" :subid("261_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1045_tgt
- .local int rx1045_pos
- .local int rx1045_off
- .local int rx1045_eos
- .local int rx1045_rep
- .local pmc rx1045_cur
- (rx1045_cur, rx1045_pos, rx1045_tgt) = self."!cursor_start"()
- rx1045_cur."!cursor_debug"("START ", "prefix:sym<|>")
- .lex unicode:"$\x{a2}", rx1045_cur
- .local pmc match
- .lex "$/", match
- length rx1045_eos, rx1045_tgt
- set rx1045_off, 0
- lt rx1045_pos, 2, rx1045_start
- sub rx1045_off, rx1045_pos, 1
- substr rx1045_tgt, rx1045_tgt, rx1045_off
- rx1045_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1049_done
- goto rxscan1049_scan
- rxscan1049_loop:
- ($P10) = rx1045_cur."from"()
- inc $P10
- set rx1045_pos, $P10
- ge rx1045_pos, rx1045_eos, rxscan1049_done
- rxscan1049_scan:
- set_addr $I10, rxscan1049_loop
- rx1045_cur."!mark_push"(0, rx1045_pos, $I10)
- rxscan1049_done:
-.annotate 'line', 489
+.sub "postfix:sym<++>" :subid("256_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1040_tgt
+ .local int rx1040_pos
+ .local int rx1040_off
+ .local int rx1040_eos
+ .local int rx1040_rep
+ .local pmc rx1040_cur
+ (rx1040_cur, rx1040_pos, rx1040_tgt) = self."!cursor_start"()
+ rx1040_cur."!cursor_debug"("START ", "postfix:sym<++>")
+ .lex unicode:"$\x{a2}", rx1040_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1040_eos, rx1040_tgt
+ gt rx1040_pos, rx1040_eos, rx1040_done
+ set rx1040_off, 0
+ lt rx1040_pos, 2, rx1040_start
+ sub rx1040_off, rx1040_pos, 1
+ substr rx1040_tgt, rx1040_tgt, rx1040_off
+ rx1040_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1044_done
+ goto rxscan1044_scan
+ rxscan1044_loop:
+ ($P10) = rx1040_cur."from"()
+ inc $P10
+ set rx1040_pos, $P10
+ ge rx1040_pos, rx1040_eos, rxscan1044_done
+ rxscan1044_scan:
+ set_addr $I10, rxscan1044_loop
+ rx1040_cur."!mark_push"(0, rx1040_pos, $I10)
+ rxscan1044_done:
+.annotate 'line', 494
# rx subcapture "sym"
- set_addr $I10, rxcap_1050_fail
- rx1045_cur."!mark_push"(0, rx1045_pos, $I10)
- # rx literal "|"
- add $I11, rx1045_pos, 1
- gt $I11, rx1045_eos, rx1045_fail
- sub $I11, rx1045_pos, rx1045_off
- substr $S10, rx1045_tgt, $I11, 1
- ne $S10, "|", rx1045_fail
- add rx1045_pos, 1
- set_addr $I10, rxcap_1050_fail
- ($I12, $I11) = rx1045_cur."!mark_peek"($I10)
- rx1045_cur."!cursor_pos"($I11)
- ($P10) = rx1045_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1045_pos, "")
- rx1045_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1045_fail
+ rx1040_cur."!mark_push"(0, rx1040_pos, $I10)
+ # rx literal "++"
+ add $I11, rx1040_pos, 2
+ gt $I11, rx1040_eos, rx1040_fail
+ sub $I11, rx1040_pos, rx1040_off
+ substr $S10, rx1040_tgt, $I11, 2
+ ne $S10, "++", rx1040_fail
+ add rx1040_pos, 2
+ set_addr $I10, rxcap_1045_fail
+ ($I12, $I11) = rx1040_cur."!mark_peek"($I10)
+ rx1040_cur."!cursor_pos"($I11)
+ ($P10) = rx1040_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1040_pos, "")
+ rx1040_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1050_done
- rxcap_1050_fail:
- goto rx1045_fail
- rxcap_1050_done:
+ goto rxcap_1045_done
+ rxcap_1045_fail:
+ goto rx1040_fail
+ rxcap_1045_done:
# rx subrule "O" subtype=capture negate=
- rx1045_cur."!cursor_pos"(rx1045_pos)
- $P10 = rx1045_cur."O"("%symbolic_unary")
- unless $P10, rx1045_fail
- rx1045_cur."!mark_push"(0, -1, 0, $P10)
+ rx1040_cur."!cursor_pos"(rx1040_pos)
+ $P10 = rx1040_cur."O"("%autoincrement")
+ unless $P10, rx1040_fail
+ rx1040_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1045_pos = $P10."pos"()
+ rx1040_pos = $P10."pos"()
# rx pass
- rx1045_cur."!cursor_pass"(rx1045_pos, "prefix:sym<|>")
- rx1045_cur."!cursor_debug"("PASS ", "prefix:sym<|>", " at pos=", rx1045_pos)
- .return (rx1045_cur)
- rx1045_fail:
-.annotate 'line', 431
- (rx1045_rep, rx1045_pos, $I10, $P10) = rx1045_cur."!mark_fail"(0)
- lt rx1045_pos, -1, rx1045_done
- eq rx1045_pos, -1, rx1045_fail
+ rx1040_cur."!cursor_pass"(rx1040_pos, "postfix:sym<++>")
+ rx1040_cur."!cursor_debug"("PASS ", "postfix:sym<++>", " at pos=", rx1040_pos)
+ .return (rx1040_cur)
+ rx1040_fail:
+.annotate 'line', 446
+ (rx1040_rep, rx1040_pos, $I10, $P10) = rx1040_cur."!mark_fail"(0)
+ lt rx1040_pos, -1, rx1040_done
+ eq rx1040_pos, -1, rx1040_fail
jump $I10
- rx1045_done:
- rx1045_cur."!cursor_fail"()
- rx1045_cur."!cursor_debug"("FAIL ", "prefix:sym<|>")
- .return (rx1045_cur)
+ rx1040_done:
+ rx1040_cur."!cursor_fail"()
+ rx1040_cur."!cursor_debug"("FAIL ", "postfix:sym<++>")
+ .return (rx1040_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<|>" :subid("262_1274022894.43745") :method
-.annotate 'line', 431
- $P1047 = self."!PREFIX__!subrule"("O", "|")
- new $P1048, "ResizablePMCArray"
- push $P1048, $P1047
- .return ($P1048)
+.sub "!PREFIX__postfix:sym<++>" :subid("257_1275811487.95429") :method
+.annotate 'line', 446
+ $P1042 = self."!PREFIX__!subrule"("O", "++")
+ new $P1043, "ResizablePMCArray"
+ push $P1043, $P1042
+ .return ($P1043)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<*>" :subid("263_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1052_tgt
- .local int rx1052_pos
- .local int rx1052_off
- .local int rx1052_eos
- .local int rx1052_rep
- .local pmc rx1052_cur
- (rx1052_cur, rx1052_pos, rx1052_tgt) = self."!cursor_start"()
- rx1052_cur."!cursor_debug"("START ", "infix:sym<*>")
- .lex unicode:"$\x{a2}", rx1052_cur
- .local pmc match
- .lex "$/", match
- length rx1052_eos, rx1052_tgt
- set rx1052_off, 0
- lt rx1052_pos, 2, rx1052_start
- sub rx1052_off, rx1052_pos, 1
- substr rx1052_tgt, rx1052_tgt, rx1052_off
- rx1052_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1056_done
- goto rxscan1056_scan
- rxscan1056_loop:
- ($P10) = rx1052_cur."from"()
- inc $P10
- set rx1052_pos, $P10
- ge rx1052_pos, rx1052_eos, rxscan1056_done
- rxscan1056_scan:
- set_addr $I10, rxscan1056_loop
- rx1052_cur."!mark_push"(0, rx1052_pos, $I10)
- rxscan1056_done:
-.annotate 'line', 491
+.sub "postfix:sym<-->" :subid("258_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1047_tgt
+ .local int rx1047_pos
+ .local int rx1047_off
+ .local int rx1047_eos
+ .local int rx1047_rep
+ .local pmc rx1047_cur
+ (rx1047_cur, rx1047_pos, rx1047_tgt) = self."!cursor_start"()
+ rx1047_cur."!cursor_debug"("START ", "postfix:sym<-->")
+ .lex unicode:"$\x{a2}", rx1047_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1047_eos, rx1047_tgt
+ gt rx1047_pos, rx1047_eos, rx1047_done
+ set rx1047_off, 0
+ lt rx1047_pos, 2, rx1047_start
+ sub rx1047_off, rx1047_pos, 1
+ substr rx1047_tgt, rx1047_tgt, rx1047_off
+ rx1047_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1051_done
+ goto rxscan1051_scan
+ rxscan1051_loop:
+ ($P10) = rx1047_cur."from"()
+ inc $P10
+ set rx1047_pos, $P10
+ ge rx1047_pos, rx1047_eos, rxscan1051_done
+ rxscan1051_scan:
+ set_addr $I10, rxscan1051_loop
+ rx1047_cur."!mark_push"(0, rx1047_pos, $I10)
+ rxscan1051_done:
+.annotate 'line', 495
# rx subcapture "sym"
- set_addr $I10, rxcap_1057_fail
- rx1052_cur."!mark_push"(0, rx1052_pos, $I10)
- # rx literal "*"
- add $I11, rx1052_pos, 1
- gt $I11, rx1052_eos, rx1052_fail
- sub $I11, rx1052_pos, rx1052_off
- substr $S10, rx1052_tgt, $I11, 1
- ne $S10, "*", rx1052_fail
- add rx1052_pos, 1
- set_addr $I10, rxcap_1057_fail
- ($I12, $I11) = rx1052_cur."!mark_peek"($I10)
- rx1052_cur."!cursor_pos"($I11)
- ($P10) = rx1052_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1052_pos, "")
- rx1052_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1052_fail
+ rx1047_cur."!mark_push"(0, rx1047_pos, $I10)
+ # rx literal "--"
+ add $I11, rx1047_pos, 2
+ gt $I11, rx1047_eos, rx1047_fail
+ sub $I11, rx1047_pos, rx1047_off
+ substr $S10, rx1047_tgt, $I11, 2
+ ne $S10, "--", rx1047_fail
+ add rx1047_pos, 2
+ set_addr $I10, rxcap_1052_fail
+ ($I12, $I11) = rx1047_cur."!mark_peek"($I10)
+ rx1047_cur."!cursor_pos"($I11)
+ ($P10) = rx1047_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1047_pos, "")
+ rx1047_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1057_done
- rxcap_1057_fail:
- goto rx1052_fail
- rxcap_1057_done:
+ goto rxcap_1052_done
+ rxcap_1052_fail:
+ goto rx1047_fail
+ rxcap_1052_done:
# rx subrule "O" subtype=capture negate=
- rx1052_cur."!cursor_pos"(rx1052_pos)
- $P10 = rx1052_cur."O"("%multiplicative, :pirop<mul>")
- unless $P10, rx1052_fail
- rx1052_cur."!mark_push"(0, -1, 0, $P10)
+ rx1047_cur."!cursor_pos"(rx1047_pos)
+ $P10 = rx1047_cur."O"("%autoincrement")
+ unless $P10, rx1047_fail
+ rx1047_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1052_pos = $P10."pos"()
+ rx1047_pos = $P10."pos"()
# rx pass
- rx1052_cur."!cursor_pass"(rx1052_pos, "infix:sym<*>")
- rx1052_cur."!cursor_debug"("PASS ", "infix:sym<*>", " at pos=", rx1052_pos)
- .return (rx1052_cur)
- rx1052_fail:
-.annotate 'line', 431
- (rx1052_rep, rx1052_pos, $I10, $P10) = rx1052_cur."!mark_fail"(0)
- lt rx1052_pos, -1, rx1052_done
- eq rx1052_pos, -1, rx1052_fail
+ rx1047_cur."!cursor_pass"(rx1047_pos, "postfix:sym<-->")
+ rx1047_cur."!cursor_debug"("PASS ", "postfix:sym<-->", " at pos=", rx1047_pos)
+ .return (rx1047_cur)
+ rx1047_fail:
+.annotate 'line', 446
+ (rx1047_rep, rx1047_pos, $I10, $P10) = rx1047_cur."!mark_fail"(0)
+ lt rx1047_pos, -1, rx1047_done
+ eq rx1047_pos, -1, rx1047_fail
jump $I10
- rx1052_done:
- rx1052_cur."!cursor_fail"()
- rx1052_cur."!cursor_debug"("FAIL ", "infix:sym<*>")
- .return (rx1052_cur)
+ rx1047_done:
+ rx1047_cur."!cursor_fail"()
+ rx1047_cur."!cursor_debug"("FAIL ", "postfix:sym<-->")
+ .return (rx1047_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<*>" :subid("264_1274022894.43745") :method
-.annotate 'line', 431
- $P1054 = self."!PREFIX__!subrule"("O", "*")
- new $P1055, "ResizablePMCArray"
- push $P1055, $P1054
- .return ($P1055)
+.sub "!PREFIX__postfix:sym<-->" :subid("259_1275811487.95429") :method
+.annotate 'line', 446
+ $P1049 = self."!PREFIX__!subrule"("O", "--")
+ new $P1050, "ResizablePMCArray"
+ push $P1050, $P1049
+ .return ($P1050)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym</>" :subid("265_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1059_tgt
- .local int rx1059_pos
- .local int rx1059_off
- .local int rx1059_eos
- .local int rx1059_rep
- .local pmc rx1059_cur
- (rx1059_cur, rx1059_pos, rx1059_tgt) = self."!cursor_start"()
- rx1059_cur."!cursor_debug"("START ", "infix:sym</>")
- .lex unicode:"$\x{a2}", rx1059_cur
- .local pmc match
- .lex "$/", match
- length rx1059_eos, rx1059_tgt
- set rx1059_off, 0
- lt rx1059_pos, 2, rx1059_start
- sub rx1059_off, rx1059_pos, 1
- substr rx1059_tgt, rx1059_tgt, rx1059_off
- rx1059_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1063_done
- goto rxscan1063_scan
- rxscan1063_loop:
- ($P10) = rx1059_cur."from"()
- inc $P10
- set rx1059_pos, $P10
- ge rx1059_pos, rx1059_eos, rxscan1063_done
- rxscan1063_scan:
- set_addr $I10, rxscan1063_loop
- rx1059_cur."!mark_push"(0, rx1059_pos, $I10)
- rxscan1063_done:
-.annotate 'line', 492
+.sub "infix:sym<**>" :subid("260_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1054_tgt
+ .local int rx1054_pos
+ .local int rx1054_off
+ .local int rx1054_eos
+ .local int rx1054_rep
+ .local pmc rx1054_cur
+ (rx1054_cur, rx1054_pos, rx1054_tgt) = self."!cursor_start"()
+ rx1054_cur."!cursor_debug"("START ", "infix:sym<**>")
+ .lex unicode:"$\x{a2}", rx1054_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1054_eos, rx1054_tgt
+ gt rx1054_pos, rx1054_eos, rx1054_done
+ set rx1054_off, 0
+ lt rx1054_pos, 2, rx1054_start
+ sub rx1054_off, rx1054_pos, 1
+ substr rx1054_tgt, rx1054_tgt, rx1054_off
+ rx1054_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1058_done
+ goto rxscan1058_scan
+ rxscan1058_loop:
+ ($P10) = rx1054_cur."from"()
+ inc $P10
+ set rx1054_pos, $P10
+ ge rx1054_pos, rx1054_eos, rxscan1058_done
+ rxscan1058_scan:
+ set_addr $I10, rxscan1058_loop
+ rx1054_cur."!mark_push"(0, rx1054_pos, $I10)
+ rxscan1058_done:
+.annotate 'line', 497
# rx subcapture "sym"
- set_addr $I10, rxcap_1064_fail
- rx1059_cur."!mark_push"(0, rx1059_pos, $I10)
- # rx literal "/"
- add $I11, rx1059_pos, 1
- gt $I11, rx1059_eos, rx1059_fail
- sub $I11, rx1059_pos, rx1059_off
- substr $S10, rx1059_tgt, $I11, 1
- ne $S10, "/", rx1059_fail
- add rx1059_pos, 1
- set_addr $I10, rxcap_1064_fail
- ($I12, $I11) = rx1059_cur."!mark_peek"($I10)
- rx1059_cur."!cursor_pos"($I11)
- ($P10) = rx1059_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1059_pos, "")
- rx1059_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1059_fail
+ rx1054_cur."!mark_push"(0, rx1054_pos, $I10)
+ # rx literal "**"
+ add $I11, rx1054_pos, 2
+ gt $I11, rx1054_eos, rx1054_fail
+ sub $I11, rx1054_pos, rx1054_off
+ substr $S10, rx1054_tgt, $I11, 2
+ ne $S10, "**", rx1054_fail
+ add rx1054_pos, 2
+ set_addr $I10, rxcap_1059_fail
+ ($I12, $I11) = rx1054_cur."!mark_peek"($I10)
+ rx1054_cur."!cursor_pos"($I11)
+ ($P10) = rx1054_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1054_pos, "")
+ rx1054_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1064_done
- rxcap_1064_fail:
- goto rx1059_fail
- rxcap_1064_done:
+ goto rxcap_1059_done
+ rxcap_1059_fail:
+ goto rx1054_fail
+ rxcap_1059_done:
# rx subrule "O" subtype=capture negate=
- rx1059_cur."!cursor_pos"(rx1059_pos)
- $P10 = rx1059_cur."O"("%multiplicative, :pirop<div>")
- unless $P10, rx1059_fail
- rx1059_cur."!mark_push"(0, -1, 0, $P10)
+ rx1054_cur."!cursor_pos"(rx1054_pos)
+ $P10 = rx1054_cur."O"("%exponentiation, :pirop<pow>")
+ unless $P10, rx1054_fail
+ rx1054_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1059_pos = $P10."pos"()
+ rx1054_pos = $P10."pos"()
# rx pass
- rx1059_cur."!cursor_pass"(rx1059_pos, "infix:sym</>")
- rx1059_cur."!cursor_debug"("PASS ", "infix:sym</>", " at pos=", rx1059_pos)
- .return (rx1059_cur)
- rx1059_fail:
-.annotate 'line', 431
- (rx1059_rep, rx1059_pos, $I10, $P10) = rx1059_cur."!mark_fail"(0)
- lt rx1059_pos, -1, rx1059_done
- eq rx1059_pos, -1, rx1059_fail
+ rx1054_cur."!cursor_pass"(rx1054_pos, "infix:sym<**>")
+ rx1054_cur."!cursor_debug"("PASS ", "infix:sym<**>", " at pos=", rx1054_pos)
+ .return (rx1054_cur)
+ rx1054_fail:
+.annotate 'line', 446
+ (rx1054_rep, rx1054_pos, $I10, $P10) = rx1054_cur."!mark_fail"(0)
+ lt rx1054_pos, -1, rx1054_done
+ eq rx1054_pos, -1, rx1054_fail
jump $I10
- rx1059_done:
- rx1059_cur."!cursor_fail"()
- rx1059_cur."!cursor_debug"("FAIL ", "infix:sym</>")
- .return (rx1059_cur)
+ rx1054_done:
+ rx1054_cur."!cursor_fail"()
+ rx1054_cur."!cursor_debug"("FAIL ", "infix:sym<**>")
+ .return (rx1054_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym</>" :subid("266_1274022894.43745") :method
-.annotate 'line', 431
- $P1061 = self."!PREFIX__!subrule"("O", "/")
- new $P1062, "ResizablePMCArray"
- push $P1062, $P1061
- .return ($P1062)
+.sub "!PREFIX__infix:sym<**>" :subid("261_1275811487.95429") :method
+.annotate 'line', 446
+ $P1056 = self."!PREFIX__!subrule"("O", "**")
+ new $P1057, "ResizablePMCArray"
+ push $P1057, $P1056
+ .return ($P1057)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<%>" :subid("267_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1066_tgt
- .local int rx1066_pos
- .local int rx1066_off
- .local int rx1066_eos
- .local int rx1066_rep
- .local pmc rx1066_cur
- (rx1066_cur, rx1066_pos, rx1066_tgt) = self."!cursor_start"()
- rx1066_cur."!cursor_debug"("START ", "infix:sym<%>")
- .lex unicode:"$\x{a2}", rx1066_cur
- .local pmc match
- .lex "$/", match
- length rx1066_eos, rx1066_tgt
- set rx1066_off, 0
- lt rx1066_pos, 2, rx1066_start
- sub rx1066_off, rx1066_pos, 1
- substr rx1066_tgt, rx1066_tgt, rx1066_off
- rx1066_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1070_done
- goto rxscan1070_scan
- rxscan1070_loop:
- ($P10) = rx1066_cur."from"()
- inc $P10
- set rx1066_pos, $P10
- ge rx1066_pos, rx1066_eos, rxscan1070_done
- rxscan1070_scan:
- set_addr $I10, rxscan1070_loop
- rx1066_cur."!mark_push"(0, rx1066_pos, $I10)
- rxscan1070_done:
-.annotate 'line', 493
+.sub "prefix:sym<+>" :subid("262_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1061_tgt
+ .local int rx1061_pos
+ .local int rx1061_off
+ .local int rx1061_eos
+ .local int rx1061_rep
+ .local pmc rx1061_cur
+ (rx1061_cur, rx1061_pos, rx1061_tgt) = self."!cursor_start"()
+ rx1061_cur."!cursor_debug"("START ", "prefix:sym<+>")
+ .lex unicode:"$\x{a2}", rx1061_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1061_eos, rx1061_tgt
+ gt rx1061_pos, rx1061_eos, rx1061_done
+ set rx1061_off, 0
+ lt rx1061_pos, 2, rx1061_start
+ sub rx1061_off, rx1061_pos, 1
+ substr rx1061_tgt, rx1061_tgt, rx1061_off
+ rx1061_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1065_done
+ goto rxscan1065_scan
+ rxscan1065_loop:
+ ($P10) = rx1061_cur."from"()
+ inc $P10
+ set rx1061_pos, $P10
+ ge rx1061_pos, rx1061_eos, rxscan1065_done
+ rxscan1065_scan:
+ set_addr $I10, rxscan1065_loop
+ rx1061_cur."!mark_push"(0, rx1061_pos, $I10)
+ rxscan1065_done:
+.annotate 'line', 499
# rx subcapture "sym"
- set_addr $I10, rxcap_1071_fail
- rx1066_cur."!mark_push"(0, rx1066_pos, $I10)
- # rx literal "%"
- add $I11, rx1066_pos, 1
- gt $I11, rx1066_eos, rx1066_fail
- sub $I11, rx1066_pos, rx1066_off
- substr $S10, rx1066_tgt, $I11, 1
- ne $S10, "%", rx1066_fail
- add rx1066_pos, 1
- set_addr $I10, rxcap_1071_fail
- ($I12, $I11) = rx1066_cur."!mark_peek"($I10)
- rx1066_cur."!cursor_pos"($I11)
- ($P10) = rx1066_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1066_pos, "")
- rx1066_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1066_fail
+ rx1061_cur."!mark_push"(0, rx1061_pos, $I10)
+ # rx literal "+"
+ add $I11, rx1061_pos, 1
+ gt $I11, rx1061_eos, rx1061_fail
+ sub $I11, rx1061_pos, rx1061_off
+ substr $S10, rx1061_tgt, $I11, 1
+ ne $S10, "+", rx1061_fail
+ add rx1061_pos, 1
+ set_addr $I10, rxcap_1066_fail
+ ($I12, $I11) = rx1061_cur."!mark_peek"($I10)
+ rx1061_cur."!cursor_pos"($I11)
+ ($P10) = rx1061_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1061_pos, "")
+ rx1061_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1071_done
- rxcap_1071_fail:
- goto rx1066_fail
- rxcap_1071_done:
+ goto rxcap_1066_done
+ rxcap_1066_fail:
+ goto rx1061_fail
+ rxcap_1066_done:
# rx subrule "O" subtype=capture negate=
- rx1066_cur."!cursor_pos"(rx1066_pos)
- $P10 = rx1066_cur."O"("%multiplicative, :pirop<mod>")
- unless $P10, rx1066_fail
- rx1066_cur."!mark_push"(0, -1, 0, $P10)
+ rx1061_cur."!cursor_pos"(rx1061_pos)
+ $P10 = rx1061_cur."O"("%symbolic_unary, :pirop<set N*>")
+ unless $P10, rx1061_fail
+ rx1061_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1066_pos = $P10."pos"()
+ rx1061_pos = $P10."pos"()
# rx pass
- rx1066_cur."!cursor_pass"(rx1066_pos, "infix:sym<%>")
- rx1066_cur."!cursor_debug"("PASS ", "infix:sym<%>", " at pos=", rx1066_pos)
- .return (rx1066_cur)
- rx1066_fail:
-.annotate 'line', 431
- (rx1066_rep, rx1066_pos, $I10, $P10) = rx1066_cur."!mark_fail"(0)
- lt rx1066_pos, -1, rx1066_done
- eq rx1066_pos, -1, rx1066_fail
+ rx1061_cur."!cursor_pass"(rx1061_pos, "prefix:sym<+>")
+ rx1061_cur."!cursor_debug"("PASS ", "prefix:sym<+>", " at pos=", rx1061_pos)
+ .return (rx1061_cur)
+ rx1061_fail:
+.annotate 'line', 446
+ (rx1061_rep, rx1061_pos, $I10, $P10) = rx1061_cur."!mark_fail"(0)
+ lt rx1061_pos, -1, rx1061_done
+ eq rx1061_pos, -1, rx1061_fail
jump $I10
- rx1066_done:
- rx1066_cur."!cursor_fail"()
- rx1066_cur."!cursor_debug"("FAIL ", "infix:sym<%>")
- .return (rx1066_cur)
+ rx1061_done:
+ rx1061_cur."!cursor_fail"()
+ rx1061_cur."!cursor_debug"("FAIL ", "prefix:sym<+>")
+ .return (rx1061_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<%>" :subid("268_1274022894.43745") :method
-.annotate 'line', 431
- $P1068 = self."!PREFIX__!subrule"("O", "%")
- new $P1069, "ResizablePMCArray"
- push $P1069, $P1068
- .return ($P1069)
+.sub "!PREFIX__prefix:sym<+>" :subid("263_1275811487.95429") :method
+.annotate 'line', 446
+ $P1063 = self."!PREFIX__!subrule"("O", "+")
+ new $P1064, "ResizablePMCArray"
+ push $P1064, $P1063
+ .return ($P1064)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<+>" :subid("269_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1073_tgt
- .local int rx1073_pos
- .local int rx1073_off
- .local int rx1073_eos
- .local int rx1073_rep
- .local pmc rx1073_cur
- (rx1073_cur, rx1073_pos, rx1073_tgt) = self."!cursor_start"()
- rx1073_cur."!cursor_debug"("START ", "infix:sym<+>")
- .lex unicode:"$\x{a2}", rx1073_cur
- .local pmc match
- .lex "$/", match
- length rx1073_eos, rx1073_tgt
- set rx1073_off, 0
- lt rx1073_pos, 2, rx1073_start
- sub rx1073_off, rx1073_pos, 1
- substr rx1073_tgt, rx1073_tgt, rx1073_off
- rx1073_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1077_done
- goto rxscan1077_scan
- rxscan1077_loop:
- ($P10) = rx1073_cur."from"()
- inc $P10
- set rx1073_pos, $P10
- ge rx1073_pos, rx1073_eos, rxscan1077_done
- rxscan1077_scan:
- set_addr $I10, rxscan1077_loop
- rx1073_cur."!mark_push"(0, rx1073_pos, $I10)
- rxscan1077_done:
-.annotate 'line', 495
+.sub "prefix:sym<~>" :subid("264_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1068_tgt
+ .local int rx1068_pos
+ .local int rx1068_off
+ .local int rx1068_eos
+ .local int rx1068_rep
+ .local pmc rx1068_cur
+ (rx1068_cur, rx1068_pos, rx1068_tgt) = self."!cursor_start"()
+ rx1068_cur."!cursor_debug"("START ", "prefix:sym<~>")
+ .lex unicode:"$\x{a2}", rx1068_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1068_eos, rx1068_tgt
+ gt rx1068_pos, rx1068_eos, rx1068_done
+ set rx1068_off, 0
+ lt rx1068_pos, 2, rx1068_start
+ sub rx1068_off, rx1068_pos, 1
+ substr rx1068_tgt, rx1068_tgt, rx1068_off
+ rx1068_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1072_done
+ goto rxscan1072_scan
+ rxscan1072_loop:
+ ($P10) = rx1068_cur."from"()
+ inc $P10
+ set rx1068_pos, $P10
+ ge rx1068_pos, rx1068_eos, rxscan1072_done
+ rxscan1072_scan:
+ set_addr $I10, rxscan1072_loop
+ rx1068_cur."!mark_push"(0, rx1068_pos, $I10)
+ rxscan1072_done:
+.annotate 'line', 500
# rx subcapture "sym"
- set_addr $I10, rxcap_1078_fail
- rx1073_cur."!mark_push"(0, rx1073_pos, $I10)
- # rx literal "+"
- add $I11, rx1073_pos, 1
- gt $I11, rx1073_eos, rx1073_fail
- sub $I11, rx1073_pos, rx1073_off
- substr $S10, rx1073_tgt, $I11, 1
- ne $S10, "+", rx1073_fail
- add rx1073_pos, 1
- set_addr $I10, rxcap_1078_fail
- ($I12, $I11) = rx1073_cur."!mark_peek"($I10)
- rx1073_cur."!cursor_pos"($I11)
- ($P10) = rx1073_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1073_pos, "")
- rx1073_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1073_fail
+ rx1068_cur."!mark_push"(0, rx1068_pos, $I10)
+ # rx literal "~"
+ add $I11, rx1068_pos, 1
+ gt $I11, rx1068_eos, rx1068_fail
+ sub $I11, rx1068_pos, rx1068_off
+ substr $S10, rx1068_tgt, $I11, 1
+ ne $S10, "~", rx1068_fail
+ add rx1068_pos, 1
+ set_addr $I10, rxcap_1073_fail
+ ($I12, $I11) = rx1068_cur."!mark_peek"($I10)
+ rx1068_cur."!cursor_pos"($I11)
+ ($P10) = rx1068_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1068_pos, "")
+ rx1068_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1078_done
- rxcap_1078_fail:
- goto rx1073_fail
- rxcap_1078_done:
+ goto rxcap_1073_done
+ rxcap_1073_fail:
+ goto rx1068_fail
+ rxcap_1073_done:
# rx subrule "O" subtype=capture negate=
- rx1073_cur."!cursor_pos"(rx1073_pos)
- $P10 = rx1073_cur."O"("%additive, :pirop<add>")
- unless $P10, rx1073_fail
- rx1073_cur."!mark_push"(0, -1, 0, $P10)
+ rx1068_cur."!cursor_pos"(rx1068_pos)
+ $P10 = rx1068_cur."O"("%symbolic_unary, :pirop<set S*>")
+ unless $P10, rx1068_fail
+ rx1068_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1073_pos = $P10."pos"()
+ rx1068_pos = $P10."pos"()
# rx pass
- rx1073_cur."!cursor_pass"(rx1073_pos, "infix:sym<+>")
- rx1073_cur."!cursor_debug"("PASS ", "infix:sym<+>", " at pos=", rx1073_pos)
- .return (rx1073_cur)
- rx1073_fail:
-.annotate 'line', 431
- (rx1073_rep, rx1073_pos, $I10, $P10) = rx1073_cur."!mark_fail"(0)
- lt rx1073_pos, -1, rx1073_done
- eq rx1073_pos, -1, rx1073_fail
+ rx1068_cur."!cursor_pass"(rx1068_pos, "prefix:sym<~>")
+ rx1068_cur."!cursor_debug"("PASS ", "prefix:sym<~>", " at pos=", rx1068_pos)
+ .return (rx1068_cur)
+ rx1068_fail:
+.annotate 'line', 446
+ (rx1068_rep, rx1068_pos, $I10, $P10) = rx1068_cur."!mark_fail"(0)
+ lt rx1068_pos, -1, rx1068_done
+ eq rx1068_pos, -1, rx1068_fail
jump $I10
- rx1073_done:
- rx1073_cur."!cursor_fail"()
- rx1073_cur."!cursor_debug"("FAIL ", "infix:sym<+>")
- .return (rx1073_cur)
+ rx1068_done:
+ rx1068_cur."!cursor_fail"()
+ rx1068_cur."!cursor_debug"("FAIL ", "prefix:sym<~>")
+ .return (rx1068_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<+>" :subid("270_1274022894.43745") :method
-.annotate 'line', 431
- $P1075 = self."!PREFIX__!subrule"("O", "+")
- new $P1076, "ResizablePMCArray"
- push $P1076, $P1075
- .return ($P1076)
+.sub "!PREFIX__prefix:sym<~>" :subid("265_1275811487.95429") :method
+.annotate 'line', 446
+ $P1070 = self."!PREFIX__!subrule"("O", "~")
+ new $P1071, "ResizablePMCArray"
+ push $P1071, $P1070
+ .return ($P1071)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<->" :subid("271_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1080_tgt
- .local int rx1080_pos
- .local int rx1080_off
- .local int rx1080_eos
- .local int rx1080_rep
- .local pmc rx1080_cur
- (rx1080_cur, rx1080_pos, rx1080_tgt) = self."!cursor_start"()
- rx1080_cur."!cursor_debug"("START ", "infix:sym<->")
- .lex unicode:"$\x{a2}", rx1080_cur
- .local pmc match
- .lex "$/", match
- length rx1080_eos, rx1080_tgt
- set rx1080_off, 0
- lt rx1080_pos, 2, rx1080_start
- sub rx1080_off, rx1080_pos, 1
- substr rx1080_tgt, rx1080_tgt, rx1080_off
- rx1080_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1084_done
- goto rxscan1084_scan
- rxscan1084_loop:
- ($P10) = rx1080_cur."from"()
- inc $P10
- set rx1080_pos, $P10
- ge rx1080_pos, rx1080_eos, rxscan1084_done
- rxscan1084_scan:
- set_addr $I10, rxscan1084_loop
- rx1080_cur."!mark_push"(0, rx1080_pos, $I10)
- rxscan1084_done:
-.annotate 'line', 496
+.sub "prefix:sym<->" :subid("266_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1075_tgt
+ .local int rx1075_pos
+ .local int rx1075_off
+ .local int rx1075_eos
+ .local int rx1075_rep
+ .local pmc rx1075_cur
+ (rx1075_cur, rx1075_pos, rx1075_tgt) = self."!cursor_start"()
+ rx1075_cur."!cursor_debug"("START ", "prefix:sym<->")
+ .lex unicode:"$\x{a2}", rx1075_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1075_eos, rx1075_tgt
+ gt rx1075_pos, rx1075_eos, rx1075_done
+ set rx1075_off, 0
+ lt rx1075_pos, 2, rx1075_start
+ sub rx1075_off, rx1075_pos, 1
+ substr rx1075_tgt, rx1075_tgt, rx1075_off
+ rx1075_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1078_done
+ goto rxscan1078_scan
+ rxscan1078_loop:
+ ($P10) = rx1075_cur."from"()
+ inc $P10
+ set rx1075_pos, $P10
+ ge rx1075_pos, rx1075_eos, rxscan1078_done
+ rxscan1078_scan:
+ set_addr $I10, rxscan1078_loop
+ rx1075_cur."!mark_push"(0, rx1075_pos, $I10)
+ rxscan1078_done:
+.annotate 'line', 501
# rx subcapture "sym"
- set_addr $I10, rxcap_1085_fail
- rx1080_cur."!mark_push"(0, rx1080_pos, $I10)
+ set_addr $I10, rxcap_1079_fail
+ rx1075_cur."!mark_push"(0, rx1075_pos, $I10)
# rx literal "-"
- add $I11, rx1080_pos, 1
- gt $I11, rx1080_eos, rx1080_fail
- sub $I11, rx1080_pos, rx1080_off
- substr $S10, rx1080_tgt, $I11, 1
- ne $S10, "-", rx1080_fail
- add rx1080_pos, 1
- set_addr $I10, rxcap_1085_fail
- ($I12, $I11) = rx1080_cur."!mark_peek"($I10)
- rx1080_cur."!cursor_pos"($I11)
- ($P10) = rx1080_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1080_pos, "")
- rx1080_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx1075_pos, 1
+ gt $I11, rx1075_eos, rx1075_fail
+ sub $I11, rx1075_pos, rx1075_off
+ substr $S10, rx1075_tgt, $I11, 1
+ ne $S10, "-", rx1075_fail
+ add rx1075_pos, 1
+ set_addr $I10, rxcap_1079_fail
+ ($I12, $I11) = rx1075_cur."!mark_peek"($I10)
+ rx1075_cur."!cursor_pos"($I11)
+ ($P10) = rx1075_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1075_pos, "")
+ rx1075_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1085_done
- rxcap_1085_fail:
- goto rx1080_fail
- rxcap_1085_done:
+ goto rxcap_1079_done
+ rxcap_1079_fail:
+ goto rx1075_fail
+ rxcap_1079_done:
+ # rx enumcharlist negate=1 zerowidth
+ ge rx1075_pos, rx1075_eos, rx1075_fail
+ sub $I10, rx1075_pos, rx1075_off
+ substr $S10, rx1075_tgt, $I10, 1
+ index $I11, ">", $S10
+ ge $I11, 0, rx1075_fail
+ # rx subrule "number" subtype=zerowidth negate=1
+ rx1075_cur."!cursor_pos"(rx1075_pos)
+ $P10 = rx1075_cur."number"()
+ if $P10, rx1075_fail
# rx subrule "O" subtype=capture negate=
- rx1080_cur."!cursor_pos"(rx1080_pos)
- $P10 = rx1080_cur."O"("%additive, :pirop<sub>")
- unless $P10, rx1080_fail
- rx1080_cur."!mark_push"(0, -1, 0, $P10)
+ rx1075_cur."!cursor_pos"(rx1075_pos)
+ $P10 = rx1075_cur."O"("%symbolic_unary, :pirop<neg>")
+ unless $P10, rx1075_fail
+ rx1075_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1080_pos = $P10."pos"()
+ rx1075_pos = $P10."pos"()
# rx pass
- rx1080_cur."!cursor_pass"(rx1080_pos, "infix:sym<->")
- rx1080_cur."!cursor_debug"("PASS ", "infix:sym<->", " at pos=", rx1080_pos)
- .return (rx1080_cur)
- rx1080_fail:
-.annotate 'line', 431
- (rx1080_rep, rx1080_pos, $I10, $P10) = rx1080_cur."!mark_fail"(0)
- lt rx1080_pos, -1, rx1080_done
- eq rx1080_pos, -1, rx1080_fail
+ rx1075_cur."!cursor_pass"(rx1075_pos, "prefix:sym<->")
+ rx1075_cur."!cursor_debug"("PASS ", "prefix:sym<->", " at pos=", rx1075_pos)
+ .return (rx1075_cur)
+ rx1075_fail:
+.annotate 'line', 446
+ (rx1075_rep, rx1075_pos, $I10, $P10) = rx1075_cur."!mark_fail"(0)
+ lt rx1075_pos, -1, rx1075_done
+ eq rx1075_pos, -1, rx1075_fail
jump $I10
- rx1080_done:
- rx1080_cur."!cursor_fail"()
- rx1080_cur."!cursor_debug"("FAIL ", "infix:sym<->")
- .return (rx1080_cur)
+ rx1075_done:
+ rx1075_cur."!cursor_fail"()
+ rx1075_cur."!cursor_debug"("FAIL ", "prefix:sym<->")
+ .return (rx1075_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<->" :subid("272_1274022894.43745") :method
-.annotate 'line', 431
- $P1082 = self."!PREFIX__!subrule"("O", "-")
- new $P1083, "ResizablePMCArray"
- push $P1083, $P1082
- .return ($P1083)
+.sub "!PREFIX__prefix:sym<->" :subid("267_1275811487.95429") :method
+.annotate 'line', 446
+ new $P1077, "ResizablePMCArray"
+ push $P1077, "-"
+ .return ($P1077)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<~>" :subid("273_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1087_tgt
- .local int rx1087_pos
- .local int rx1087_off
- .local int rx1087_eos
- .local int rx1087_rep
- .local pmc rx1087_cur
- (rx1087_cur, rx1087_pos, rx1087_tgt) = self."!cursor_start"()
- rx1087_cur."!cursor_debug"("START ", "infix:sym<~>")
- .lex unicode:"$\x{a2}", rx1087_cur
- .local pmc match
- .lex "$/", match
- length rx1087_eos, rx1087_tgt
- set rx1087_off, 0
- lt rx1087_pos, 2, rx1087_start
- sub rx1087_off, rx1087_pos, 1
- substr rx1087_tgt, rx1087_tgt, rx1087_off
- rx1087_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1091_done
- goto rxscan1091_scan
- rxscan1091_loop:
- ($P10) = rx1087_cur."from"()
- inc $P10
- set rx1087_pos, $P10
- ge rx1087_pos, rx1087_eos, rxscan1091_done
- rxscan1091_scan:
- set_addr $I10, rxscan1091_loop
- rx1087_cur."!mark_push"(0, rx1087_pos, $I10)
- rxscan1091_done:
-.annotate 'line', 498
+.sub "prefix:sym<?>" :subid("268_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1081_tgt
+ .local int rx1081_pos
+ .local int rx1081_off
+ .local int rx1081_eos
+ .local int rx1081_rep
+ .local pmc rx1081_cur
+ (rx1081_cur, rx1081_pos, rx1081_tgt) = self."!cursor_start"()
+ rx1081_cur."!cursor_debug"("START ", "prefix:sym<?>")
+ .lex unicode:"$\x{a2}", rx1081_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1081_eos, rx1081_tgt
+ gt rx1081_pos, rx1081_eos, rx1081_done
+ set rx1081_off, 0
+ lt rx1081_pos, 2, rx1081_start
+ sub rx1081_off, rx1081_pos, 1
+ substr rx1081_tgt, rx1081_tgt, rx1081_off
+ rx1081_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1085_done
+ goto rxscan1085_scan
+ rxscan1085_loop:
+ ($P10) = rx1081_cur."from"()
+ inc $P10
+ set rx1081_pos, $P10
+ ge rx1081_pos, rx1081_eos, rxscan1085_done
+ rxscan1085_scan:
+ set_addr $I10, rxscan1085_loop
+ rx1081_cur."!mark_push"(0, rx1081_pos, $I10)
+ rxscan1085_done:
+.annotate 'line', 502
# rx subcapture "sym"
- set_addr $I10, rxcap_1092_fail
- rx1087_cur."!mark_push"(0, rx1087_pos, $I10)
- # rx literal "~"
- add $I11, rx1087_pos, 1
- gt $I11, rx1087_eos, rx1087_fail
- sub $I11, rx1087_pos, rx1087_off
- substr $S10, rx1087_tgt, $I11, 1
- ne $S10, "~", rx1087_fail
- add rx1087_pos, 1
- set_addr $I10, rxcap_1092_fail
- ($I12, $I11) = rx1087_cur."!mark_peek"($I10)
- rx1087_cur."!cursor_pos"($I11)
- ($P10) = rx1087_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1087_pos, "")
- rx1087_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1086_fail
+ rx1081_cur."!mark_push"(0, rx1081_pos, $I10)
+ # rx literal "?"
+ add $I11, rx1081_pos, 1
+ gt $I11, rx1081_eos, rx1081_fail
+ sub $I11, rx1081_pos, rx1081_off
+ substr $S10, rx1081_tgt, $I11, 1
+ ne $S10, "?", rx1081_fail
+ add rx1081_pos, 1
+ set_addr $I10, rxcap_1086_fail
+ ($I12, $I11) = rx1081_cur."!mark_peek"($I10)
+ rx1081_cur."!cursor_pos"($I11)
+ ($P10) = rx1081_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1081_pos, "")
+ rx1081_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1092_done
- rxcap_1092_fail:
- goto rx1087_fail
- rxcap_1092_done:
+ goto rxcap_1086_done
+ rxcap_1086_fail:
+ goto rx1081_fail
+ rxcap_1086_done:
# rx subrule "O" subtype=capture negate=
- rx1087_cur."!cursor_pos"(rx1087_pos)
- $P10 = rx1087_cur."O"("%concatenation , :pirop<concat>")
- unless $P10, rx1087_fail
- rx1087_cur."!mark_push"(0, -1, 0, $P10)
+ rx1081_cur."!cursor_pos"(rx1081_pos)
+ $P10 = rx1081_cur."O"("%symbolic_unary, :pirop<istrue>")
+ unless $P10, rx1081_fail
+ rx1081_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1087_pos = $P10."pos"()
+ rx1081_pos = $P10."pos"()
# rx pass
- rx1087_cur."!cursor_pass"(rx1087_pos, "infix:sym<~>")
- rx1087_cur."!cursor_debug"("PASS ", "infix:sym<~>", " at pos=", rx1087_pos)
- .return (rx1087_cur)
- rx1087_fail:
-.annotate 'line', 431
- (rx1087_rep, rx1087_pos, $I10, $P10) = rx1087_cur."!mark_fail"(0)
- lt rx1087_pos, -1, rx1087_done
- eq rx1087_pos, -1, rx1087_fail
+ rx1081_cur."!cursor_pass"(rx1081_pos, "prefix:sym<?>")
+ rx1081_cur."!cursor_debug"("PASS ", "prefix:sym<?>", " at pos=", rx1081_pos)
+ .return (rx1081_cur)
+ rx1081_fail:
+.annotate 'line', 446
+ (rx1081_rep, rx1081_pos, $I10, $P10) = rx1081_cur."!mark_fail"(0)
+ lt rx1081_pos, -1, rx1081_done
+ eq rx1081_pos, -1, rx1081_fail
jump $I10
- rx1087_done:
- rx1087_cur."!cursor_fail"()
- rx1087_cur."!cursor_debug"("FAIL ", "infix:sym<~>")
- .return (rx1087_cur)
+ rx1081_done:
+ rx1081_cur."!cursor_fail"()
+ rx1081_cur."!cursor_debug"("FAIL ", "prefix:sym<?>")
+ .return (rx1081_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~>" :subid("274_1274022894.43745") :method
-.annotate 'line', 431
- $P1089 = self."!PREFIX__!subrule"("O", "~")
- new $P1090, "ResizablePMCArray"
- push $P1090, $P1089
- .return ($P1090)
+.sub "!PREFIX__prefix:sym<?>" :subid("269_1275811487.95429") :method
+.annotate 'line', 446
+ $P1083 = self."!PREFIX__!subrule"("O", "?")
+ new $P1084, "ResizablePMCArray"
+ push $P1084, $P1083
+ .return ($P1084)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<==>" :subid("275_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1094_tgt
- .local int rx1094_pos
- .local int rx1094_off
- .local int rx1094_eos
- .local int rx1094_rep
- .local pmc rx1094_cur
- (rx1094_cur, rx1094_pos, rx1094_tgt) = self."!cursor_start"()
- rx1094_cur."!cursor_debug"("START ", "infix:sym<==>")
- .lex unicode:"$\x{a2}", rx1094_cur
- .local pmc match
- .lex "$/", match
- length rx1094_eos, rx1094_tgt
- set rx1094_off, 0
- lt rx1094_pos, 2, rx1094_start
- sub rx1094_off, rx1094_pos, 1
- substr rx1094_tgt, rx1094_tgt, rx1094_off
- rx1094_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1098_done
- goto rxscan1098_scan
- rxscan1098_loop:
- ($P10) = rx1094_cur."from"()
- inc $P10
- set rx1094_pos, $P10
- ge rx1094_pos, rx1094_eos, rxscan1098_done
- rxscan1098_scan:
- set_addr $I10, rxscan1098_loop
- rx1094_cur."!mark_push"(0, rx1094_pos, $I10)
- rxscan1098_done:
-.annotate 'line', 500
+.sub "prefix:sym<!>" :subid("270_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1088_tgt
+ .local int rx1088_pos
+ .local int rx1088_off
+ .local int rx1088_eos
+ .local int rx1088_rep
+ .local pmc rx1088_cur
+ (rx1088_cur, rx1088_pos, rx1088_tgt) = self."!cursor_start"()
+ rx1088_cur."!cursor_debug"("START ", "prefix:sym<!>")
+ .lex unicode:"$\x{a2}", rx1088_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1088_eos, rx1088_tgt
+ gt rx1088_pos, rx1088_eos, rx1088_done
+ set rx1088_off, 0
+ lt rx1088_pos, 2, rx1088_start
+ sub rx1088_off, rx1088_pos, 1
+ substr rx1088_tgt, rx1088_tgt, rx1088_off
+ rx1088_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1092_done
+ goto rxscan1092_scan
+ rxscan1092_loop:
+ ($P10) = rx1088_cur."from"()
+ inc $P10
+ set rx1088_pos, $P10
+ ge rx1088_pos, rx1088_eos, rxscan1092_done
+ rxscan1092_scan:
+ set_addr $I10, rxscan1092_loop
+ rx1088_cur."!mark_push"(0, rx1088_pos, $I10)
+ rxscan1092_done:
+.annotate 'line', 503
# rx subcapture "sym"
- set_addr $I10, rxcap_1099_fail
- rx1094_cur."!mark_push"(0, rx1094_pos, $I10)
- # rx literal "=="
- add $I11, rx1094_pos, 2
- gt $I11, rx1094_eos, rx1094_fail
- sub $I11, rx1094_pos, rx1094_off
- substr $S10, rx1094_tgt, $I11, 2
- ne $S10, "==", rx1094_fail
- add rx1094_pos, 2
- set_addr $I10, rxcap_1099_fail
- ($I12, $I11) = rx1094_cur."!mark_peek"($I10)
- rx1094_cur."!cursor_pos"($I11)
- ($P10) = rx1094_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1094_pos, "")
- rx1094_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1093_fail
+ rx1088_cur."!mark_push"(0, rx1088_pos, $I10)
+ # rx literal "!"
+ add $I11, rx1088_pos, 1
+ gt $I11, rx1088_eos, rx1088_fail
+ sub $I11, rx1088_pos, rx1088_off
+ substr $S10, rx1088_tgt, $I11, 1
+ ne $S10, "!", rx1088_fail
+ add rx1088_pos, 1
+ set_addr $I10, rxcap_1093_fail
+ ($I12, $I11) = rx1088_cur."!mark_peek"($I10)
+ rx1088_cur."!cursor_pos"($I11)
+ ($P10) = rx1088_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1088_pos, "")
+ rx1088_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1099_done
- rxcap_1099_fail:
- goto rx1094_fail
- rxcap_1099_done:
+ goto rxcap_1093_done
+ rxcap_1093_fail:
+ goto rx1088_fail
+ rxcap_1093_done:
# rx subrule "O" subtype=capture negate=
- rx1094_cur."!cursor_pos"(rx1094_pos)
- $P10 = rx1094_cur."O"("%relational, :pirop<iseq INn>")
- unless $P10, rx1094_fail
- rx1094_cur."!mark_push"(0, -1, 0, $P10)
+ rx1088_cur."!cursor_pos"(rx1088_pos)
+ $P10 = rx1088_cur."O"("%symbolic_unary, :pirop<isfalse>")
+ unless $P10, rx1088_fail
+ rx1088_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1094_pos = $P10."pos"()
+ rx1088_pos = $P10."pos"()
# rx pass
- rx1094_cur."!cursor_pass"(rx1094_pos, "infix:sym<==>")
- rx1094_cur."!cursor_debug"("PASS ", "infix:sym<==>", " at pos=", rx1094_pos)
- .return (rx1094_cur)
- rx1094_fail:
-.annotate 'line', 431
- (rx1094_rep, rx1094_pos, $I10, $P10) = rx1094_cur."!mark_fail"(0)
- lt rx1094_pos, -1, rx1094_done
- eq rx1094_pos, -1, rx1094_fail
+ rx1088_cur."!cursor_pass"(rx1088_pos, "prefix:sym<!>")
+ rx1088_cur."!cursor_debug"("PASS ", "prefix:sym<!>", " at pos=", rx1088_pos)
+ .return (rx1088_cur)
+ rx1088_fail:
+.annotate 'line', 446
+ (rx1088_rep, rx1088_pos, $I10, $P10) = rx1088_cur."!mark_fail"(0)
+ lt rx1088_pos, -1, rx1088_done
+ eq rx1088_pos, -1, rx1088_fail
jump $I10
- rx1094_done:
- rx1094_cur."!cursor_fail"()
- rx1094_cur."!cursor_debug"("FAIL ", "infix:sym<==>")
- .return (rx1094_cur)
+ rx1088_done:
+ rx1088_cur."!cursor_fail"()
+ rx1088_cur."!cursor_debug"("FAIL ", "prefix:sym<!>")
+ .return (rx1088_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<==>" :subid("276_1274022894.43745") :method
-.annotate 'line', 431
- $P1096 = self."!PREFIX__!subrule"("O", "==")
- new $P1097, "ResizablePMCArray"
- push $P1097, $P1096
- .return ($P1097)
+.sub "!PREFIX__prefix:sym<!>" :subid("271_1275811487.95429") :method
+.annotate 'line', 446
+ $P1090 = self."!PREFIX__!subrule"("O", "!")
+ new $P1091, "ResizablePMCArray"
+ push $P1091, $P1090
+ .return ($P1091)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<!=>" :subid("277_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1101_tgt
- .local int rx1101_pos
- .local int rx1101_off
- .local int rx1101_eos
- .local int rx1101_rep
- .local pmc rx1101_cur
- (rx1101_cur, rx1101_pos, rx1101_tgt) = self."!cursor_start"()
- rx1101_cur."!cursor_debug"("START ", "infix:sym<!=>")
- .lex unicode:"$\x{a2}", rx1101_cur
- .local pmc match
- .lex "$/", match
- length rx1101_eos, rx1101_tgt
- set rx1101_off, 0
- lt rx1101_pos, 2, rx1101_start
- sub rx1101_off, rx1101_pos, 1
- substr rx1101_tgt, rx1101_tgt, rx1101_off
- rx1101_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1105_done
- goto rxscan1105_scan
- rxscan1105_loop:
- ($P10) = rx1101_cur."from"()
- inc $P10
- set rx1101_pos, $P10
- ge rx1101_pos, rx1101_eos, rxscan1105_done
- rxscan1105_scan:
- set_addr $I10, rxscan1105_loop
- rx1101_cur."!mark_push"(0, rx1101_pos, $I10)
- rxscan1105_done:
-.annotate 'line', 501
+.sub "prefix:sym<|>" :subid("272_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1095_tgt
+ .local int rx1095_pos
+ .local int rx1095_off
+ .local int rx1095_eos
+ .local int rx1095_rep
+ .local pmc rx1095_cur
+ (rx1095_cur, rx1095_pos, rx1095_tgt) = self."!cursor_start"()
+ rx1095_cur."!cursor_debug"("START ", "prefix:sym<|>")
+ .lex unicode:"$\x{a2}", rx1095_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1095_eos, rx1095_tgt
+ gt rx1095_pos, rx1095_eos, rx1095_done
+ set rx1095_off, 0
+ lt rx1095_pos, 2, rx1095_start
+ sub rx1095_off, rx1095_pos, 1
+ substr rx1095_tgt, rx1095_tgt, rx1095_off
+ rx1095_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1099_done
+ goto rxscan1099_scan
+ rxscan1099_loop:
+ ($P10) = rx1095_cur."from"()
+ inc $P10
+ set rx1095_pos, $P10
+ ge rx1095_pos, rx1095_eos, rxscan1099_done
+ rxscan1099_scan:
+ set_addr $I10, rxscan1099_loop
+ rx1095_cur."!mark_push"(0, rx1095_pos, $I10)
+ rxscan1099_done:
+.annotate 'line', 504
# rx subcapture "sym"
- set_addr $I10, rxcap_1106_fail
- rx1101_cur."!mark_push"(0, rx1101_pos, $I10)
- # rx literal "!="
- add $I11, rx1101_pos, 2
- gt $I11, rx1101_eos, rx1101_fail
- sub $I11, rx1101_pos, rx1101_off
- substr $S10, rx1101_tgt, $I11, 2
- ne $S10, "!=", rx1101_fail
- add rx1101_pos, 2
- set_addr $I10, rxcap_1106_fail
- ($I12, $I11) = rx1101_cur."!mark_peek"($I10)
- rx1101_cur."!cursor_pos"($I11)
- ($P10) = rx1101_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1101_pos, "")
- rx1101_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1100_fail
+ rx1095_cur."!mark_push"(0, rx1095_pos, $I10)
+ # rx literal "|"
+ add $I11, rx1095_pos, 1
+ gt $I11, rx1095_eos, rx1095_fail
+ sub $I11, rx1095_pos, rx1095_off
+ substr $S10, rx1095_tgt, $I11, 1
+ ne $S10, "|", rx1095_fail
+ add rx1095_pos, 1
+ set_addr $I10, rxcap_1100_fail
+ ($I12, $I11) = rx1095_cur."!mark_peek"($I10)
+ rx1095_cur."!cursor_pos"($I11)
+ ($P10) = rx1095_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1095_pos, "")
+ rx1095_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1106_done
- rxcap_1106_fail:
- goto rx1101_fail
- rxcap_1106_done:
+ goto rxcap_1100_done
+ rxcap_1100_fail:
+ goto rx1095_fail
+ rxcap_1100_done:
# rx subrule "O" subtype=capture negate=
- rx1101_cur."!cursor_pos"(rx1101_pos)
- $P10 = rx1101_cur."O"("%relational, :pirop<isne INn>")
- unless $P10, rx1101_fail
- rx1101_cur."!mark_push"(0, -1, 0, $P10)
+ rx1095_cur."!cursor_pos"(rx1095_pos)
+ $P10 = rx1095_cur."O"("%symbolic_unary")
+ unless $P10, rx1095_fail
+ rx1095_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1101_pos = $P10."pos"()
+ rx1095_pos = $P10."pos"()
# rx pass
- rx1101_cur."!cursor_pass"(rx1101_pos, "infix:sym<!=>")
- rx1101_cur."!cursor_debug"("PASS ", "infix:sym<!=>", " at pos=", rx1101_pos)
- .return (rx1101_cur)
- rx1101_fail:
-.annotate 'line', 431
- (rx1101_rep, rx1101_pos, $I10, $P10) = rx1101_cur."!mark_fail"(0)
- lt rx1101_pos, -1, rx1101_done
- eq rx1101_pos, -1, rx1101_fail
+ rx1095_cur."!cursor_pass"(rx1095_pos, "prefix:sym<|>")
+ rx1095_cur."!cursor_debug"("PASS ", "prefix:sym<|>", " at pos=", rx1095_pos)
+ .return (rx1095_cur)
+ rx1095_fail:
+.annotate 'line', 446
+ (rx1095_rep, rx1095_pos, $I10, $P10) = rx1095_cur."!mark_fail"(0)
+ lt rx1095_pos, -1, rx1095_done
+ eq rx1095_pos, -1, rx1095_fail
jump $I10
- rx1101_done:
- rx1101_cur."!cursor_fail"()
- rx1101_cur."!cursor_debug"("FAIL ", "infix:sym<!=>")
- .return (rx1101_cur)
+ rx1095_done:
+ rx1095_cur."!cursor_fail"()
+ rx1095_cur."!cursor_debug"("FAIL ", "prefix:sym<|>")
+ .return (rx1095_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<!=>" :subid("278_1274022894.43745") :method
-.annotate 'line', 431
- $P1103 = self."!PREFIX__!subrule"("O", "!=")
- new $P1104, "ResizablePMCArray"
- push $P1104, $P1103
- .return ($P1104)
+.sub "!PREFIX__prefix:sym<|>" :subid("273_1275811487.95429") :method
+.annotate 'line', 446
+ $P1097 = self."!PREFIX__!subrule"("O", "|")
+ new $P1098, "ResizablePMCArray"
+ push $P1098, $P1097
+ .return ($P1098)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<<=>" :subid("279_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1108_tgt
- .local int rx1108_pos
- .local int rx1108_off
- .local int rx1108_eos
- .local int rx1108_rep
- .local pmc rx1108_cur
- (rx1108_cur, rx1108_pos, rx1108_tgt) = self."!cursor_start"()
- rx1108_cur."!cursor_debug"("START ", "infix:sym<<=>")
- .lex unicode:"$\x{a2}", rx1108_cur
- .local pmc match
- .lex "$/", match
- length rx1108_eos, rx1108_tgt
- set rx1108_off, 0
- lt rx1108_pos, 2, rx1108_start
- sub rx1108_off, rx1108_pos, 1
- substr rx1108_tgt, rx1108_tgt, rx1108_off
- rx1108_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1112_done
- goto rxscan1112_scan
- rxscan1112_loop:
- ($P10) = rx1108_cur."from"()
- inc $P10
- set rx1108_pos, $P10
- ge rx1108_pos, rx1108_eos, rxscan1112_done
- rxscan1112_scan:
- set_addr $I10, rxscan1112_loop
- rx1108_cur."!mark_push"(0, rx1108_pos, $I10)
- rxscan1112_done:
-.annotate 'line', 502
+.sub "infix:sym<*>" :subid("274_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1102_tgt
+ .local int rx1102_pos
+ .local int rx1102_off
+ .local int rx1102_eos
+ .local int rx1102_rep
+ .local pmc rx1102_cur
+ (rx1102_cur, rx1102_pos, rx1102_tgt) = self."!cursor_start"()
+ rx1102_cur."!cursor_debug"("START ", "infix:sym<*>")
+ .lex unicode:"$\x{a2}", rx1102_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1102_eos, rx1102_tgt
+ gt rx1102_pos, rx1102_eos, rx1102_done
+ set rx1102_off, 0
+ lt rx1102_pos, 2, rx1102_start
+ sub rx1102_off, rx1102_pos, 1
+ substr rx1102_tgt, rx1102_tgt, rx1102_off
+ rx1102_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1106_done
+ goto rxscan1106_scan
+ rxscan1106_loop:
+ ($P10) = rx1102_cur."from"()
+ inc $P10
+ set rx1102_pos, $P10
+ ge rx1102_pos, rx1102_eos, rxscan1106_done
+ rxscan1106_scan:
+ set_addr $I10, rxscan1106_loop
+ rx1102_cur."!mark_push"(0, rx1102_pos, $I10)
+ rxscan1106_done:
+.annotate 'line', 506
# rx subcapture "sym"
- set_addr $I10, rxcap_1113_fail
- rx1108_cur."!mark_push"(0, rx1108_pos, $I10)
- # rx literal "<="
- add $I11, rx1108_pos, 2
- gt $I11, rx1108_eos, rx1108_fail
- sub $I11, rx1108_pos, rx1108_off
- substr $S10, rx1108_tgt, $I11, 2
- ne $S10, "<=", rx1108_fail
- add rx1108_pos, 2
- set_addr $I10, rxcap_1113_fail
- ($I12, $I11) = rx1108_cur."!mark_peek"($I10)
- rx1108_cur."!cursor_pos"($I11)
- ($P10) = rx1108_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1108_pos, "")
- rx1108_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1107_fail
+ rx1102_cur."!mark_push"(0, rx1102_pos, $I10)
+ # rx literal "*"
+ add $I11, rx1102_pos, 1
+ gt $I11, rx1102_eos, rx1102_fail
+ sub $I11, rx1102_pos, rx1102_off
+ substr $S10, rx1102_tgt, $I11, 1
+ ne $S10, "*", rx1102_fail
+ add rx1102_pos, 1
+ set_addr $I10, rxcap_1107_fail
+ ($I12, $I11) = rx1102_cur."!mark_peek"($I10)
+ rx1102_cur."!cursor_pos"($I11)
+ ($P10) = rx1102_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1102_pos, "")
+ rx1102_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1113_done
- rxcap_1113_fail:
- goto rx1108_fail
- rxcap_1113_done:
+ goto rxcap_1107_done
+ rxcap_1107_fail:
+ goto rx1102_fail
+ rxcap_1107_done:
# rx subrule "O" subtype=capture negate=
- rx1108_cur."!cursor_pos"(rx1108_pos)
- $P10 = rx1108_cur."O"("%relational, :pirop<isle INn>")
- unless $P10, rx1108_fail
- rx1108_cur."!mark_push"(0, -1, 0, $P10)
+ rx1102_cur."!cursor_pos"(rx1102_pos)
+ $P10 = rx1102_cur."O"("%multiplicative, :pirop<mul>")
+ unless $P10, rx1102_fail
+ rx1102_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1108_pos = $P10."pos"()
+ rx1102_pos = $P10."pos"()
# rx pass
- rx1108_cur."!cursor_pass"(rx1108_pos, "infix:sym<<=>")
- rx1108_cur."!cursor_debug"("PASS ", "infix:sym<<=>", " at pos=", rx1108_pos)
- .return (rx1108_cur)
- rx1108_fail:
-.annotate 'line', 431
- (rx1108_rep, rx1108_pos, $I10, $P10) = rx1108_cur."!mark_fail"(0)
- lt rx1108_pos, -1, rx1108_done
- eq rx1108_pos, -1, rx1108_fail
+ rx1102_cur."!cursor_pass"(rx1102_pos, "infix:sym<*>")
+ rx1102_cur."!cursor_debug"("PASS ", "infix:sym<*>", " at pos=", rx1102_pos)
+ .return (rx1102_cur)
+ rx1102_fail:
+.annotate 'line', 446
+ (rx1102_rep, rx1102_pos, $I10, $P10) = rx1102_cur."!mark_fail"(0)
+ lt rx1102_pos, -1, rx1102_done
+ eq rx1102_pos, -1, rx1102_fail
jump $I10
- rx1108_done:
- rx1108_cur."!cursor_fail"()
- rx1108_cur."!cursor_debug"("FAIL ", "infix:sym<<=>")
- .return (rx1108_cur)
+ rx1102_done:
+ rx1102_cur."!cursor_fail"()
+ rx1102_cur."!cursor_debug"("FAIL ", "infix:sym<*>")
+ .return (rx1102_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<=>" :subid("280_1274022894.43745") :method
-.annotate 'line', 431
- $P1110 = self."!PREFIX__!subrule"("O", "<=")
- new $P1111, "ResizablePMCArray"
- push $P1111, $P1110
- .return ($P1111)
+.sub "!PREFIX__infix:sym<*>" :subid("275_1275811487.95429") :method
+.annotate 'line', 446
+ $P1104 = self."!PREFIX__!subrule"("O", "*")
+ new $P1105, "ResizablePMCArray"
+ push $P1105, $P1104
+ .return ($P1105)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<>=>" :subid("281_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1115_tgt
- .local int rx1115_pos
- .local int rx1115_off
- .local int rx1115_eos
- .local int rx1115_rep
- .local pmc rx1115_cur
- (rx1115_cur, rx1115_pos, rx1115_tgt) = self."!cursor_start"()
- rx1115_cur."!cursor_debug"("START ", "infix:sym<>=>")
- .lex unicode:"$\x{a2}", rx1115_cur
- .local pmc match
- .lex "$/", match
- length rx1115_eos, rx1115_tgt
- set rx1115_off, 0
- lt rx1115_pos, 2, rx1115_start
- sub rx1115_off, rx1115_pos, 1
- substr rx1115_tgt, rx1115_tgt, rx1115_off
- rx1115_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1119_done
- goto rxscan1119_scan
- rxscan1119_loop:
- ($P10) = rx1115_cur."from"()
- inc $P10
- set rx1115_pos, $P10
- ge rx1115_pos, rx1115_eos, rxscan1119_done
- rxscan1119_scan:
- set_addr $I10, rxscan1119_loop
- rx1115_cur."!mark_push"(0, rx1115_pos, $I10)
- rxscan1119_done:
-.annotate 'line', 503
+.sub "infix:sym</>" :subid("276_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1109_tgt
+ .local int rx1109_pos
+ .local int rx1109_off
+ .local int rx1109_eos
+ .local int rx1109_rep
+ .local pmc rx1109_cur
+ (rx1109_cur, rx1109_pos, rx1109_tgt) = self."!cursor_start"()
+ rx1109_cur."!cursor_debug"("START ", "infix:sym</>")
+ .lex unicode:"$\x{a2}", rx1109_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1109_eos, rx1109_tgt
+ gt rx1109_pos, rx1109_eos, rx1109_done
+ set rx1109_off, 0
+ lt rx1109_pos, 2, rx1109_start
+ sub rx1109_off, rx1109_pos, 1
+ substr rx1109_tgt, rx1109_tgt, rx1109_off
+ rx1109_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1113_done
+ goto rxscan1113_scan
+ rxscan1113_loop:
+ ($P10) = rx1109_cur."from"()
+ inc $P10
+ set rx1109_pos, $P10
+ ge rx1109_pos, rx1109_eos, rxscan1113_done
+ rxscan1113_scan:
+ set_addr $I10, rxscan1113_loop
+ rx1109_cur."!mark_push"(0, rx1109_pos, $I10)
+ rxscan1113_done:
+.annotate 'line', 507
# rx subcapture "sym"
- set_addr $I10, rxcap_1120_fail
- rx1115_cur."!mark_push"(0, rx1115_pos, $I10)
- # rx literal ">="
- add $I11, rx1115_pos, 2
- gt $I11, rx1115_eos, rx1115_fail
- sub $I11, rx1115_pos, rx1115_off
- substr $S10, rx1115_tgt, $I11, 2
- ne $S10, ">=", rx1115_fail
- add rx1115_pos, 2
- set_addr $I10, rxcap_1120_fail
- ($I12, $I11) = rx1115_cur."!mark_peek"($I10)
- rx1115_cur."!cursor_pos"($I11)
- ($P10) = rx1115_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1115_pos, "")
- rx1115_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1114_fail
+ rx1109_cur."!mark_push"(0, rx1109_pos, $I10)
+ # rx literal "/"
+ add $I11, rx1109_pos, 1
+ gt $I11, rx1109_eos, rx1109_fail
+ sub $I11, rx1109_pos, rx1109_off
+ substr $S10, rx1109_tgt, $I11, 1
+ ne $S10, "/", rx1109_fail
+ add rx1109_pos, 1
+ set_addr $I10, rxcap_1114_fail
+ ($I12, $I11) = rx1109_cur."!mark_peek"($I10)
+ rx1109_cur."!cursor_pos"($I11)
+ ($P10) = rx1109_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1109_pos, "")
+ rx1109_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1120_done
- rxcap_1120_fail:
- goto rx1115_fail
- rxcap_1120_done:
+ goto rxcap_1114_done
+ rxcap_1114_fail:
+ goto rx1109_fail
+ rxcap_1114_done:
# rx subrule "O" subtype=capture negate=
- rx1115_cur."!cursor_pos"(rx1115_pos)
- $P10 = rx1115_cur."O"("%relational, :pirop<isge INn>")
- unless $P10, rx1115_fail
- rx1115_cur."!mark_push"(0, -1, 0, $P10)
+ rx1109_cur."!cursor_pos"(rx1109_pos)
+ $P10 = rx1109_cur."O"("%multiplicative, :pirop<div>")
+ unless $P10, rx1109_fail
+ rx1109_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1115_pos = $P10."pos"()
+ rx1109_pos = $P10."pos"()
# rx pass
- rx1115_cur."!cursor_pass"(rx1115_pos, "infix:sym<>=>")
- rx1115_cur."!cursor_debug"("PASS ", "infix:sym<>=>", " at pos=", rx1115_pos)
- .return (rx1115_cur)
- rx1115_fail:
-.annotate 'line', 431
- (rx1115_rep, rx1115_pos, $I10, $P10) = rx1115_cur."!mark_fail"(0)
- lt rx1115_pos, -1, rx1115_done
- eq rx1115_pos, -1, rx1115_fail
+ rx1109_cur."!cursor_pass"(rx1109_pos, "infix:sym</>")
+ rx1109_cur."!cursor_debug"("PASS ", "infix:sym</>", " at pos=", rx1109_pos)
+ .return (rx1109_cur)
+ rx1109_fail:
+.annotate 'line', 446
+ (rx1109_rep, rx1109_pos, $I10, $P10) = rx1109_cur."!mark_fail"(0)
+ lt rx1109_pos, -1, rx1109_done
+ eq rx1109_pos, -1, rx1109_fail
jump $I10
- rx1115_done:
- rx1115_cur."!cursor_fail"()
- rx1115_cur."!cursor_debug"("FAIL ", "infix:sym<>=>")
- .return (rx1115_cur)
+ rx1109_done:
+ rx1109_cur."!cursor_fail"()
+ rx1109_cur."!cursor_debug"("FAIL ", "infix:sym</>")
+ .return (rx1109_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>=>" :subid("282_1274022894.43745") :method
-.annotate 'line', 431
- $P1117 = self."!PREFIX__!subrule"("O", ">=")
- new $P1118, "ResizablePMCArray"
- push $P1118, $P1117
- .return ($P1118)
+.sub "!PREFIX__infix:sym</>" :subid("277_1275811487.95429") :method
+.annotate 'line', 446
+ $P1111 = self."!PREFIX__!subrule"("O", "/")
+ new $P1112, "ResizablePMCArray"
+ push $P1112, $P1111
+ .return ($P1112)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<<>" :subid("283_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1122_tgt
- .local int rx1122_pos
- .local int rx1122_off
- .local int rx1122_eos
- .local int rx1122_rep
- .local pmc rx1122_cur
- (rx1122_cur, rx1122_pos, rx1122_tgt) = self."!cursor_start"()
- rx1122_cur."!cursor_debug"("START ", "infix:sym<<>")
- .lex unicode:"$\x{a2}", rx1122_cur
- .local pmc match
- .lex "$/", match
- length rx1122_eos, rx1122_tgt
- set rx1122_off, 0
- lt rx1122_pos, 2, rx1122_start
- sub rx1122_off, rx1122_pos, 1
- substr rx1122_tgt, rx1122_tgt, rx1122_off
- rx1122_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1126_done
- goto rxscan1126_scan
- rxscan1126_loop:
- ($P10) = rx1122_cur."from"()
- inc $P10
- set rx1122_pos, $P10
- ge rx1122_pos, rx1122_eos, rxscan1126_done
- rxscan1126_scan:
- set_addr $I10, rxscan1126_loop
- rx1122_cur."!mark_push"(0, rx1122_pos, $I10)
- rxscan1126_done:
-.annotate 'line', 504
+.sub "infix:sym<%>" :subid("278_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1116_tgt
+ .local int rx1116_pos
+ .local int rx1116_off
+ .local int rx1116_eos
+ .local int rx1116_rep
+ .local pmc rx1116_cur
+ (rx1116_cur, rx1116_pos, rx1116_tgt) = self."!cursor_start"()
+ rx1116_cur."!cursor_debug"("START ", "infix:sym<%>")
+ .lex unicode:"$\x{a2}", rx1116_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1116_eos, rx1116_tgt
+ gt rx1116_pos, rx1116_eos, rx1116_done
+ set rx1116_off, 0
+ lt rx1116_pos, 2, rx1116_start
+ sub rx1116_off, rx1116_pos, 1
+ substr rx1116_tgt, rx1116_tgt, rx1116_off
+ rx1116_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1120_done
+ goto rxscan1120_scan
+ rxscan1120_loop:
+ ($P10) = rx1116_cur."from"()
+ inc $P10
+ set rx1116_pos, $P10
+ ge rx1116_pos, rx1116_eos, rxscan1120_done
+ rxscan1120_scan:
+ set_addr $I10, rxscan1120_loop
+ rx1116_cur."!mark_push"(0, rx1116_pos, $I10)
+ rxscan1120_done:
+.annotate 'line', 508
# rx subcapture "sym"
- set_addr $I10, rxcap_1127_fail
- rx1122_cur."!mark_push"(0, rx1122_pos, $I10)
- # rx literal "<"
- add $I11, rx1122_pos, 1
- gt $I11, rx1122_eos, rx1122_fail
- sub $I11, rx1122_pos, rx1122_off
- substr $S10, rx1122_tgt, $I11, 1
- ne $S10, "<", rx1122_fail
- add rx1122_pos, 1
- set_addr $I10, rxcap_1127_fail
- ($I12, $I11) = rx1122_cur."!mark_peek"($I10)
- rx1122_cur."!cursor_pos"($I11)
- ($P10) = rx1122_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1122_pos, "")
- rx1122_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1121_fail
+ rx1116_cur."!mark_push"(0, rx1116_pos, $I10)
+ # rx literal "%"
+ add $I11, rx1116_pos, 1
+ gt $I11, rx1116_eos, rx1116_fail
+ sub $I11, rx1116_pos, rx1116_off
+ substr $S10, rx1116_tgt, $I11, 1
+ ne $S10, "%", rx1116_fail
+ add rx1116_pos, 1
+ set_addr $I10, rxcap_1121_fail
+ ($I12, $I11) = rx1116_cur."!mark_peek"($I10)
+ rx1116_cur."!cursor_pos"($I11)
+ ($P10) = rx1116_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1116_pos, "")
+ rx1116_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1127_done
- rxcap_1127_fail:
- goto rx1122_fail
- rxcap_1127_done:
+ goto rxcap_1121_done
+ rxcap_1121_fail:
+ goto rx1116_fail
+ rxcap_1121_done:
# rx subrule "O" subtype=capture negate=
- rx1122_cur."!cursor_pos"(rx1122_pos)
- $P10 = rx1122_cur."O"("%relational, :pirop<islt INn>")
- unless $P10, rx1122_fail
- rx1122_cur."!mark_push"(0, -1, 0, $P10)
+ rx1116_cur."!cursor_pos"(rx1116_pos)
+ $P10 = rx1116_cur."O"("%multiplicative, :pirop<mod>")
+ unless $P10, rx1116_fail
+ rx1116_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1122_pos = $P10."pos"()
+ rx1116_pos = $P10."pos"()
# rx pass
- rx1122_cur."!cursor_pass"(rx1122_pos, "infix:sym<<>")
- rx1122_cur."!cursor_debug"("PASS ", "infix:sym<<>", " at pos=", rx1122_pos)
- .return (rx1122_cur)
- rx1122_fail:
-.annotate 'line', 431
- (rx1122_rep, rx1122_pos, $I10, $P10) = rx1122_cur."!mark_fail"(0)
- lt rx1122_pos, -1, rx1122_done
- eq rx1122_pos, -1, rx1122_fail
+ rx1116_cur."!cursor_pass"(rx1116_pos, "infix:sym<%>")
+ rx1116_cur."!cursor_debug"("PASS ", "infix:sym<%>", " at pos=", rx1116_pos)
+ .return (rx1116_cur)
+ rx1116_fail:
+.annotate 'line', 446
+ (rx1116_rep, rx1116_pos, $I10, $P10) = rx1116_cur."!mark_fail"(0)
+ lt rx1116_pos, -1, rx1116_done
+ eq rx1116_pos, -1, rx1116_fail
jump $I10
- rx1122_done:
- rx1122_cur."!cursor_fail"()
- rx1122_cur."!cursor_debug"("FAIL ", "infix:sym<<>")
- .return (rx1122_cur)
+ rx1116_done:
+ rx1116_cur."!cursor_fail"()
+ rx1116_cur."!cursor_debug"("FAIL ", "infix:sym<%>")
+ .return (rx1116_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<<>" :subid("284_1274022894.43745") :method
-.annotate 'line', 431
- $P1124 = self."!PREFIX__!subrule"("O", "<")
- new $P1125, "ResizablePMCArray"
- push $P1125, $P1124
- .return ($P1125)
+.sub "!PREFIX__infix:sym<%>" :subid("279_1275811487.95429") :method
+.annotate 'line', 446
+ $P1118 = self."!PREFIX__!subrule"("O", "%")
+ new $P1119, "ResizablePMCArray"
+ push $P1119, $P1118
+ .return ($P1119)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<>>" :subid("285_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1129_tgt
- .local int rx1129_pos
- .local int rx1129_off
- .local int rx1129_eos
- .local int rx1129_rep
- .local pmc rx1129_cur
- (rx1129_cur, rx1129_pos, rx1129_tgt) = self."!cursor_start"()
- rx1129_cur."!cursor_debug"("START ", "infix:sym<>>")
- .lex unicode:"$\x{a2}", rx1129_cur
- .local pmc match
- .lex "$/", match
- length rx1129_eos, rx1129_tgt
- set rx1129_off, 0
- lt rx1129_pos, 2, rx1129_start
- sub rx1129_off, rx1129_pos, 1
- substr rx1129_tgt, rx1129_tgt, rx1129_off
- rx1129_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1133_done
- goto rxscan1133_scan
- rxscan1133_loop:
- ($P10) = rx1129_cur."from"()
- inc $P10
- set rx1129_pos, $P10
- ge rx1129_pos, rx1129_eos, rxscan1133_done
- rxscan1133_scan:
- set_addr $I10, rxscan1133_loop
- rx1129_cur."!mark_push"(0, rx1129_pos, $I10)
- rxscan1133_done:
-.annotate 'line', 505
+.sub "infix:sym<+>" :subid("280_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1123_tgt
+ .local int rx1123_pos
+ .local int rx1123_off
+ .local int rx1123_eos
+ .local int rx1123_rep
+ .local pmc rx1123_cur
+ (rx1123_cur, rx1123_pos, rx1123_tgt) = self."!cursor_start"()
+ rx1123_cur."!cursor_debug"("START ", "infix:sym<+>")
+ .lex unicode:"$\x{a2}", rx1123_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1123_eos, rx1123_tgt
+ gt rx1123_pos, rx1123_eos, rx1123_done
+ set rx1123_off, 0
+ lt rx1123_pos, 2, rx1123_start
+ sub rx1123_off, rx1123_pos, 1
+ substr rx1123_tgt, rx1123_tgt, rx1123_off
+ rx1123_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1127_done
+ goto rxscan1127_scan
+ rxscan1127_loop:
+ ($P10) = rx1123_cur."from"()
+ inc $P10
+ set rx1123_pos, $P10
+ ge rx1123_pos, rx1123_eos, rxscan1127_done
+ rxscan1127_scan:
+ set_addr $I10, rxscan1127_loop
+ rx1123_cur."!mark_push"(0, rx1123_pos, $I10)
+ rxscan1127_done:
+.annotate 'line', 510
# rx subcapture "sym"
- set_addr $I10, rxcap_1134_fail
- rx1129_cur."!mark_push"(0, rx1129_pos, $I10)
- # rx literal ">"
- add $I11, rx1129_pos, 1
- gt $I11, rx1129_eos, rx1129_fail
- sub $I11, rx1129_pos, rx1129_off
- substr $S10, rx1129_tgt, $I11, 1
- ne $S10, ">", rx1129_fail
- add rx1129_pos, 1
- set_addr $I10, rxcap_1134_fail
- ($I12, $I11) = rx1129_cur."!mark_peek"($I10)
- rx1129_cur."!cursor_pos"($I11)
- ($P10) = rx1129_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1129_pos, "")
- rx1129_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1128_fail
+ rx1123_cur."!mark_push"(0, rx1123_pos, $I10)
+ # rx literal "+"
+ add $I11, rx1123_pos, 1
+ gt $I11, rx1123_eos, rx1123_fail
+ sub $I11, rx1123_pos, rx1123_off
+ substr $S10, rx1123_tgt, $I11, 1
+ ne $S10, "+", rx1123_fail
+ add rx1123_pos, 1
+ set_addr $I10, rxcap_1128_fail
+ ($I12, $I11) = rx1123_cur."!mark_peek"($I10)
+ rx1123_cur."!cursor_pos"($I11)
+ ($P10) = rx1123_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1123_pos, "")
+ rx1123_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1134_done
- rxcap_1134_fail:
- goto rx1129_fail
- rxcap_1134_done:
+ goto rxcap_1128_done
+ rxcap_1128_fail:
+ goto rx1123_fail
+ rxcap_1128_done:
# rx subrule "O" subtype=capture negate=
- rx1129_cur."!cursor_pos"(rx1129_pos)
- $P10 = rx1129_cur."O"("%relational, :pirop<isgt INn>")
- unless $P10, rx1129_fail
- rx1129_cur."!mark_push"(0, -1, 0, $P10)
+ rx1123_cur."!cursor_pos"(rx1123_pos)
+ $P10 = rx1123_cur."O"("%additive, :pirop<add>")
+ unless $P10, rx1123_fail
+ rx1123_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1129_pos = $P10."pos"()
+ rx1123_pos = $P10."pos"()
# rx pass
- rx1129_cur."!cursor_pass"(rx1129_pos, "infix:sym<>>")
- rx1129_cur."!cursor_debug"("PASS ", "infix:sym<>>", " at pos=", rx1129_pos)
- .return (rx1129_cur)
- rx1129_fail:
-.annotate 'line', 431
- (rx1129_rep, rx1129_pos, $I10, $P10) = rx1129_cur."!mark_fail"(0)
- lt rx1129_pos, -1, rx1129_done
- eq rx1129_pos, -1, rx1129_fail
+ rx1123_cur."!cursor_pass"(rx1123_pos, "infix:sym<+>")
+ rx1123_cur."!cursor_debug"("PASS ", "infix:sym<+>", " at pos=", rx1123_pos)
+ .return (rx1123_cur)
+ rx1123_fail:
+.annotate 'line', 446
+ (rx1123_rep, rx1123_pos, $I10, $P10) = rx1123_cur."!mark_fail"(0)
+ lt rx1123_pos, -1, rx1123_done
+ eq rx1123_pos, -1, rx1123_fail
jump $I10
- rx1129_done:
- rx1129_cur."!cursor_fail"()
- rx1129_cur."!cursor_debug"("FAIL ", "infix:sym<>>")
- .return (rx1129_cur)
+ rx1123_done:
+ rx1123_cur."!cursor_fail"()
+ rx1123_cur."!cursor_debug"("FAIL ", "infix:sym<+>")
+ .return (rx1123_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<>>" :subid("286_1274022894.43745") :method
-.annotate 'line', 431
- $P1131 = self."!PREFIX__!subrule"("O", ">")
- new $P1132, "ResizablePMCArray"
- push $P1132, $P1131
- .return ($P1132)
+.sub "!PREFIX__infix:sym<+>" :subid("281_1275811487.95429") :method
+.annotate 'line', 446
+ $P1125 = self."!PREFIX__!subrule"("O", "+")
+ new $P1126, "ResizablePMCArray"
+ push $P1126, $P1125
+ .return ($P1126)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<eq>" :subid("287_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1136_tgt
- .local int rx1136_pos
- .local int rx1136_off
- .local int rx1136_eos
- .local int rx1136_rep
- .local pmc rx1136_cur
- (rx1136_cur, rx1136_pos, rx1136_tgt) = self."!cursor_start"()
- rx1136_cur."!cursor_debug"("START ", "infix:sym<eq>")
- .lex unicode:"$\x{a2}", rx1136_cur
- .local pmc match
- .lex "$/", match
- length rx1136_eos, rx1136_tgt
- set rx1136_off, 0
- lt rx1136_pos, 2, rx1136_start
- sub rx1136_off, rx1136_pos, 1
- substr rx1136_tgt, rx1136_tgt, rx1136_off
- rx1136_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1140_done
- goto rxscan1140_scan
- rxscan1140_loop:
- ($P10) = rx1136_cur."from"()
- inc $P10
- set rx1136_pos, $P10
- ge rx1136_pos, rx1136_eos, rxscan1140_done
- rxscan1140_scan:
- set_addr $I10, rxscan1140_loop
- rx1136_cur."!mark_push"(0, rx1136_pos, $I10)
- rxscan1140_done:
-.annotate 'line', 506
+.sub "infix:sym<->" :subid("282_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1130_tgt
+ .local int rx1130_pos
+ .local int rx1130_off
+ .local int rx1130_eos
+ .local int rx1130_rep
+ .local pmc rx1130_cur
+ (rx1130_cur, rx1130_pos, rx1130_tgt) = self."!cursor_start"()
+ rx1130_cur."!cursor_debug"("START ", "infix:sym<->")
+ .lex unicode:"$\x{a2}", rx1130_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1130_eos, rx1130_tgt
+ gt rx1130_pos, rx1130_eos, rx1130_done
+ set rx1130_off, 0
+ lt rx1130_pos, 2, rx1130_start
+ sub rx1130_off, rx1130_pos, 1
+ substr rx1130_tgt, rx1130_tgt, rx1130_off
+ rx1130_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1134_done
+ goto rxscan1134_scan
+ rxscan1134_loop:
+ ($P10) = rx1130_cur."from"()
+ inc $P10
+ set rx1130_pos, $P10
+ ge rx1130_pos, rx1130_eos, rxscan1134_done
+ rxscan1134_scan:
+ set_addr $I10, rxscan1134_loop
+ rx1130_cur."!mark_push"(0, rx1130_pos, $I10)
+ rxscan1134_done:
+.annotate 'line', 511
# rx subcapture "sym"
- set_addr $I10, rxcap_1141_fail
- rx1136_cur."!mark_push"(0, rx1136_pos, $I10)
- # rx literal "eq"
- add $I11, rx1136_pos, 2
- gt $I11, rx1136_eos, rx1136_fail
- sub $I11, rx1136_pos, rx1136_off
- substr $S10, rx1136_tgt, $I11, 2
- ne $S10, "eq", rx1136_fail
- add rx1136_pos, 2
- set_addr $I10, rxcap_1141_fail
- ($I12, $I11) = rx1136_cur."!mark_peek"($I10)
- rx1136_cur."!cursor_pos"($I11)
- ($P10) = rx1136_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1136_pos, "")
- rx1136_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1135_fail
+ rx1130_cur."!mark_push"(0, rx1130_pos, $I10)
+ # rx literal "-"
+ add $I11, rx1130_pos, 1
+ gt $I11, rx1130_eos, rx1130_fail
+ sub $I11, rx1130_pos, rx1130_off
+ substr $S10, rx1130_tgt, $I11, 1
+ ne $S10, "-", rx1130_fail
+ add rx1130_pos, 1
+ set_addr $I10, rxcap_1135_fail
+ ($I12, $I11) = rx1130_cur."!mark_peek"($I10)
+ rx1130_cur."!cursor_pos"($I11)
+ ($P10) = rx1130_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1130_pos, "")
+ rx1130_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1141_done
- rxcap_1141_fail:
- goto rx1136_fail
- rxcap_1141_done:
+ goto rxcap_1135_done
+ rxcap_1135_fail:
+ goto rx1130_fail
+ rxcap_1135_done:
# rx subrule "O" subtype=capture negate=
- rx1136_cur."!cursor_pos"(rx1136_pos)
- $P10 = rx1136_cur."O"("%relational, :pirop<iseq ISs>")
- unless $P10, rx1136_fail
- rx1136_cur."!mark_push"(0, -1, 0, $P10)
+ rx1130_cur."!cursor_pos"(rx1130_pos)
+ $P10 = rx1130_cur."O"("%additive, :pirop<sub>")
+ unless $P10, rx1130_fail
+ rx1130_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1136_pos = $P10."pos"()
+ rx1130_pos = $P10."pos"()
# rx pass
- rx1136_cur."!cursor_pass"(rx1136_pos, "infix:sym<eq>")
- rx1136_cur."!cursor_debug"("PASS ", "infix:sym<eq>", " at pos=", rx1136_pos)
- .return (rx1136_cur)
- rx1136_fail:
-.annotate 'line', 431
- (rx1136_rep, rx1136_pos, $I10, $P10) = rx1136_cur."!mark_fail"(0)
- lt rx1136_pos, -1, rx1136_done
- eq rx1136_pos, -1, rx1136_fail
+ rx1130_cur."!cursor_pass"(rx1130_pos, "infix:sym<->")
+ rx1130_cur."!cursor_debug"("PASS ", "infix:sym<->", " at pos=", rx1130_pos)
+ .return (rx1130_cur)
+ rx1130_fail:
+.annotate 'line', 446
+ (rx1130_rep, rx1130_pos, $I10, $P10) = rx1130_cur."!mark_fail"(0)
+ lt rx1130_pos, -1, rx1130_done
+ eq rx1130_pos, -1, rx1130_fail
jump $I10
- rx1136_done:
- rx1136_cur."!cursor_fail"()
- rx1136_cur."!cursor_debug"("FAIL ", "infix:sym<eq>")
- .return (rx1136_cur)
+ rx1130_done:
+ rx1130_cur."!cursor_fail"()
+ rx1130_cur."!cursor_debug"("FAIL ", "infix:sym<->")
+ .return (rx1130_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<eq>" :subid("288_1274022894.43745") :method
-.annotate 'line', 431
- $P1138 = self."!PREFIX__!subrule"("O", "eq")
- new $P1139, "ResizablePMCArray"
- push $P1139, $P1138
- .return ($P1139)
+.sub "!PREFIX__infix:sym<->" :subid("283_1275811487.95429") :method
+.annotate 'line', 446
+ $P1132 = self."!PREFIX__!subrule"("O", "-")
+ new $P1133, "ResizablePMCArray"
+ push $P1133, $P1132
+ .return ($P1133)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<ne>" :subid("289_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1143_tgt
- .local int rx1143_pos
- .local int rx1143_off
- .local int rx1143_eos
- .local int rx1143_rep
- .local pmc rx1143_cur
- (rx1143_cur, rx1143_pos, rx1143_tgt) = self."!cursor_start"()
- rx1143_cur."!cursor_debug"("START ", "infix:sym<ne>")
- .lex unicode:"$\x{a2}", rx1143_cur
- .local pmc match
- .lex "$/", match
- length rx1143_eos, rx1143_tgt
- set rx1143_off, 0
- lt rx1143_pos, 2, rx1143_start
- sub rx1143_off, rx1143_pos, 1
- substr rx1143_tgt, rx1143_tgt, rx1143_off
- rx1143_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1147_done
- goto rxscan1147_scan
- rxscan1147_loop:
- ($P10) = rx1143_cur."from"()
- inc $P10
- set rx1143_pos, $P10
- ge rx1143_pos, rx1143_eos, rxscan1147_done
- rxscan1147_scan:
- set_addr $I10, rxscan1147_loop
- rx1143_cur."!mark_push"(0, rx1143_pos, $I10)
- rxscan1147_done:
-.annotate 'line', 507
+.sub "infix:sym<~>" :subid("284_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1137_tgt
+ .local int rx1137_pos
+ .local int rx1137_off
+ .local int rx1137_eos
+ .local int rx1137_rep
+ .local pmc rx1137_cur
+ (rx1137_cur, rx1137_pos, rx1137_tgt) = self."!cursor_start"()
+ rx1137_cur."!cursor_debug"("START ", "infix:sym<~>")
+ .lex unicode:"$\x{a2}", rx1137_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1137_eos, rx1137_tgt
+ gt rx1137_pos, rx1137_eos, rx1137_done
+ set rx1137_off, 0
+ lt rx1137_pos, 2, rx1137_start
+ sub rx1137_off, rx1137_pos, 1
+ substr rx1137_tgt, rx1137_tgt, rx1137_off
+ rx1137_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1141_done
+ goto rxscan1141_scan
+ rxscan1141_loop:
+ ($P10) = rx1137_cur."from"()
+ inc $P10
+ set rx1137_pos, $P10
+ ge rx1137_pos, rx1137_eos, rxscan1141_done
+ rxscan1141_scan:
+ set_addr $I10, rxscan1141_loop
+ rx1137_cur."!mark_push"(0, rx1137_pos, $I10)
+ rxscan1141_done:
+.annotate 'line', 513
# rx subcapture "sym"
- set_addr $I10, rxcap_1148_fail
- rx1143_cur."!mark_push"(0, rx1143_pos, $I10)
- # rx literal "ne"
- add $I11, rx1143_pos, 2
- gt $I11, rx1143_eos, rx1143_fail
- sub $I11, rx1143_pos, rx1143_off
- substr $S10, rx1143_tgt, $I11, 2
- ne $S10, "ne", rx1143_fail
- add rx1143_pos, 2
- set_addr $I10, rxcap_1148_fail
- ($I12, $I11) = rx1143_cur."!mark_peek"($I10)
- rx1143_cur."!cursor_pos"($I11)
- ($P10) = rx1143_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1143_pos, "")
- rx1143_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1142_fail
+ rx1137_cur."!mark_push"(0, rx1137_pos, $I10)
+ # rx literal "~"
+ add $I11, rx1137_pos, 1
+ gt $I11, rx1137_eos, rx1137_fail
+ sub $I11, rx1137_pos, rx1137_off
+ substr $S10, rx1137_tgt, $I11, 1
+ ne $S10, "~", rx1137_fail
+ add rx1137_pos, 1
+ set_addr $I10, rxcap_1142_fail
+ ($I12, $I11) = rx1137_cur."!mark_peek"($I10)
+ rx1137_cur."!cursor_pos"($I11)
+ ($P10) = rx1137_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1137_pos, "")
+ rx1137_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1148_done
- rxcap_1148_fail:
- goto rx1143_fail
- rxcap_1148_done:
+ goto rxcap_1142_done
+ rxcap_1142_fail:
+ goto rx1137_fail
+ rxcap_1142_done:
# rx subrule "O" subtype=capture negate=
- rx1143_cur."!cursor_pos"(rx1143_pos)
- $P10 = rx1143_cur."O"("%relational, :pirop<isne ISs>")
- unless $P10, rx1143_fail
- rx1143_cur."!mark_push"(0, -1, 0, $P10)
+ rx1137_cur."!cursor_pos"(rx1137_pos)
+ $P10 = rx1137_cur."O"("%concatenation , :pirop<concat>")
+ unless $P10, rx1137_fail
+ rx1137_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1143_pos = $P10."pos"()
+ rx1137_pos = $P10."pos"()
# rx pass
- rx1143_cur."!cursor_pass"(rx1143_pos, "infix:sym<ne>")
- rx1143_cur."!cursor_debug"("PASS ", "infix:sym<ne>", " at pos=", rx1143_pos)
- .return (rx1143_cur)
- rx1143_fail:
-.annotate 'line', 431
- (rx1143_rep, rx1143_pos, $I10, $P10) = rx1143_cur."!mark_fail"(0)
- lt rx1143_pos, -1, rx1143_done
- eq rx1143_pos, -1, rx1143_fail
+ rx1137_cur."!cursor_pass"(rx1137_pos, "infix:sym<~>")
+ rx1137_cur."!cursor_debug"("PASS ", "infix:sym<~>", " at pos=", rx1137_pos)
+ .return (rx1137_cur)
+ rx1137_fail:
+.annotate 'line', 446
+ (rx1137_rep, rx1137_pos, $I10, $P10) = rx1137_cur."!mark_fail"(0)
+ lt rx1137_pos, -1, rx1137_done
+ eq rx1137_pos, -1, rx1137_fail
jump $I10
- rx1143_done:
- rx1143_cur."!cursor_fail"()
- rx1143_cur."!cursor_debug"("FAIL ", "infix:sym<ne>")
- .return (rx1143_cur)
+ rx1137_done:
+ rx1137_cur."!cursor_fail"()
+ rx1137_cur."!cursor_debug"("FAIL ", "infix:sym<~>")
+ .return (rx1137_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ne>" :subid("290_1274022894.43745") :method
-.annotate 'line', 431
- $P1145 = self."!PREFIX__!subrule"("O", "ne")
- new $P1146, "ResizablePMCArray"
- push $P1146, $P1145
- .return ($P1146)
+.sub "!PREFIX__infix:sym<~>" :subid("285_1275811487.95429") :method
+.annotate 'line', 446
+ $P1139 = self."!PREFIX__!subrule"("O", "~")
+ new $P1140, "ResizablePMCArray"
+ push $P1140, $P1139
+ .return ($P1140)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<le>" :subid("291_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1150_tgt
- .local int rx1150_pos
- .local int rx1150_off
- .local int rx1150_eos
- .local int rx1150_rep
- .local pmc rx1150_cur
- (rx1150_cur, rx1150_pos, rx1150_tgt) = self."!cursor_start"()
- rx1150_cur."!cursor_debug"("START ", "infix:sym<le>")
- .lex unicode:"$\x{a2}", rx1150_cur
- .local pmc match
- .lex "$/", match
- length rx1150_eos, rx1150_tgt
- set rx1150_off, 0
- lt rx1150_pos, 2, rx1150_start
- sub rx1150_off, rx1150_pos, 1
- substr rx1150_tgt, rx1150_tgt, rx1150_off
- rx1150_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1154_done
- goto rxscan1154_scan
- rxscan1154_loop:
- ($P10) = rx1150_cur."from"()
- inc $P10
- set rx1150_pos, $P10
- ge rx1150_pos, rx1150_eos, rxscan1154_done
- rxscan1154_scan:
- set_addr $I10, rxscan1154_loop
- rx1150_cur."!mark_push"(0, rx1150_pos, $I10)
- rxscan1154_done:
-.annotate 'line', 508
+.sub "infix:sym<==>" :subid("286_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1144_tgt
+ .local int rx1144_pos
+ .local int rx1144_off
+ .local int rx1144_eos
+ .local int rx1144_rep
+ .local pmc rx1144_cur
+ (rx1144_cur, rx1144_pos, rx1144_tgt) = self."!cursor_start"()
+ rx1144_cur."!cursor_debug"("START ", "infix:sym<==>")
+ .lex unicode:"$\x{a2}", rx1144_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1144_eos, rx1144_tgt
+ gt rx1144_pos, rx1144_eos, rx1144_done
+ set rx1144_off, 0
+ lt rx1144_pos, 2, rx1144_start
+ sub rx1144_off, rx1144_pos, 1
+ substr rx1144_tgt, rx1144_tgt, rx1144_off
+ rx1144_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1148_done
+ goto rxscan1148_scan
+ rxscan1148_loop:
+ ($P10) = rx1144_cur."from"()
+ inc $P10
+ set rx1144_pos, $P10
+ ge rx1144_pos, rx1144_eos, rxscan1148_done
+ rxscan1148_scan:
+ set_addr $I10, rxscan1148_loop
+ rx1144_cur."!mark_push"(0, rx1144_pos, $I10)
+ rxscan1148_done:
+.annotate 'line', 515
# rx subcapture "sym"
- set_addr $I10, rxcap_1155_fail
- rx1150_cur."!mark_push"(0, rx1150_pos, $I10)
- # rx literal "le"
- add $I11, rx1150_pos, 2
- gt $I11, rx1150_eos, rx1150_fail
- sub $I11, rx1150_pos, rx1150_off
- substr $S10, rx1150_tgt, $I11, 2
- ne $S10, "le", rx1150_fail
- add rx1150_pos, 2
- set_addr $I10, rxcap_1155_fail
- ($I12, $I11) = rx1150_cur."!mark_peek"($I10)
- rx1150_cur."!cursor_pos"($I11)
- ($P10) = rx1150_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1150_pos, "")
- rx1150_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1149_fail
+ rx1144_cur."!mark_push"(0, rx1144_pos, $I10)
+ # rx literal "=="
+ add $I11, rx1144_pos, 2
+ gt $I11, rx1144_eos, rx1144_fail
+ sub $I11, rx1144_pos, rx1144_off
+ substr $S10, rx1144_tgt, $I11, 2
+ ne $S10, "==", rx1144_fail
+ add rx1144_pos, 2
+ set_addr $I10, rxcap_1149_fail
+ ($I12, $I11) = rx1144_cur."!mark_peek"($I10)
+ rx1144_cur."!cursor_pos"($I11)
+ ($P10) = rx1144_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1144_pos, "")
+ rx1144_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1155_done
- rxcap_1155_fail:
- goto rx1150_fail
- rxcap_1155_done:
+ goto rxcap_1149_done
+ rxcap_1149_fail:
+ goto rx1144_fail
+ rxcap_1149_done:
# rx subrule "O" subtype=capture negate=
- rx1150_cur."!cursor_pos"(rx1150_pos)
- $P10 = rx1150_cur."O"("%relational, :pirop<isle ISs>")
- unless $P10, rx1150_fail
- rx1150_cur."!mark_push"(0, -1, 0, $P10)
+ rx1144_cur."!cursor_pos"(rx1144_pos)
+ $P10 = rx1144_cur."O"("%relational, :pirop<iseq INn>")
+ unless $P10, rx1144_fail
+ rx1144_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1150_pos = $P10."pos"()
+ rx1144_pos = $P10."pos"()
# rx pass
- rx1150_cur."!cursor_pass"(rx1150_pos, "infix:sym<le>")
- rx1150_cur."!cursor_debug"("PASS ", "infix:sym<le>", " at pos=", rx1150_pos)
- .return (rx1150_cur)
- rx1150_fail:
-.annotate 'line', 431
- (rx1150_rep, rx1150_pos, $I10, $P10) = rx1150_cur."!mark_fail"(0)
- lt rx1150_pos, -1, rx1150_done
- eq rx1150_pos, -1, rx1150_fail
+ rx1144_cur."!cursor_pass"(rx1144_pos, "infix:sym<==>")
+ rx1144_cur."!cursor_debug"("PASS ", "infix:sym<==>", " at pos=", rx1144_pos)
+ .return (rx1144_cur)
+ rx1144_fail:
+.annotate 'line', 446
+ (rx1144_rep, rx1144_pos, $I10, $P10) = rx1144_cur."!mark_fail"(0)
+ lt rx1144_pos, -1, rx1144_done
+ eq rx1144_pos, -1, rx1144_fail
jump $I10
- rx1150_done:
- rx1150_cur."!cursor_fail"()
- rx1150_cur."!cursor_debug"("FAIL ", "infix:sym<le>")
- .return (rx1150_cur)
+ rx1144_done:
+ rx1144_cur."!cursor_fail"()
+ rx1144_cur."!cursor_debug"("FAIL ", "infix:sym<==>")
+ .return (rx1144_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<le>" :subid("292_1274022894.43745") :method
-.annotate 'line', 431
- $P1152 = self."!PREFIX__!subrule"("O", "le")
- new $P1153, "ResizablePMCArray"
- push $P1153, $P1152
- .return ($P1153)
+.sub "!PREFIX__infix:sym<==>" :subid("287_1275811487.95429") :method
+.annotate 'line', 446
+ $P1146 = self."!PREFIX__!subrule"("O", "==")
+ new $P1147, "ResizablePMCArray"
+ push $P1147, $P1146
+ .return ($P1147)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<ge>" :subid("293_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1157_tgt
- .local int rx1157_pos
- .local int rx1157_off
- .local int rx1157_eos
- .local int rx1157_rep
- .local pmc rx1157_cur
- (rx1157_cur, rx1157_pos, rx1157_tgt) = self."!cursor_start"()
- rx1157_cur."!cursor_debug"("START ", "infix:sym<ge>")
- .lex unicode:"$\x{a2}", rx1157_cur
- .local pmc match
- .lex "$/", match
- length rx1157_eos, rx1157_tgt
- set rx1157_off, 0
- lt rx1157_pos, 2, rx1157_start
- sub rx1157_off, rx1157_pos, 1
- substr rx1157_tgt, rx1157_tgt, rx1157_off
- rx1157_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1161_done
- goto rxscan1161_scan
- rxscan1161_loop:
- ($P10) = rx1157_cur."from"()
- inc $P10
- set rx1157_pos, $P10
- ge rx1157_pos, rx1157_eos, rxscan1161_done
- rxscan1161_scan:
- set_addr $I10, rxscan1161_loop
- rx1157_cur."!mark_push"(0, rx1157_pos, $I10)
- rxscan1161_done:
-.annotate 'line', 509
+.sub "infix:sym<!=>" :subid("288_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1151_tgt
+ .local int rx1151_pos
+ .local int rx1151_off
+ .local int rx1151_eos
+ .local int rx1151_rep
+ .local pmc rx1151_cur
+ (rx1151_cur, rx1151_pos, rx1151_tgt) = self."!cursor_start"()
+ rx1151_cur."!cursor_debug"("START ", "infix:sym<!=>")
+ .lex unicode:"$\x{a2}", rx1151_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1151_eos, rx1151_tgt
+ gt rx1151_pos, rx1151_eos, rx1151_done
+ set rx1151_off, 0
+ lt rx1151_pos, 2, rx1151_start
+ sub rx1151_off, rx1151_pos, 1
+ substr rx1151_tgt, rx1151_tgt, rx1151_off
+ rx1151_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1155_done
+ goto rxscan1155_scan
+ rxscan1155_loop:
+ ($P10) = rx1151_cur."from"()
+ inc $P10
+ set rx1151_pos, $P10
+ ge rx1151_pos, rx1151_eos, rxscan1155_done
+ rxscan1155_scan:
+ set_addr $I10, rxscan1155_loop
+ rx1151_cur."!mark_push"(0, rx1151_pos, $I10)
+ rxscan1155_done:
+.annotate 'line', 516
# rx subcapture "sym"
- set_addr $I10, rxcap_1162_fail
- rx1157_cur."!mark_push"(0, rx1157_pos, $I10)
- # rx literal "ge"
- add $I11, rx1157_pos, 2
- gt $I11, rx1157_eos, rx1157_fail
- sub $I11, rx1157_pos, rx1157_off
- substr $S10, rx1157_tgt, $I11, 2
- ne $S10, "ge", rx1157_fail
- add rx1157_pos, 2
- set_addr $I10, rxcap_1162_fail
- ($I12, $I11) = rx1157_cur."!mark_peek"($I10)
- rx1157_cur."!cursor_pos"($I11)
- ($P10) = rx1157_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1157_pos, "")
- rx1157_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1156_fail
+ rx1151_cur."!mark_push"(0, rx1151_pos, $I10)
+ # rx literal "!="
+ add $I11, rx1151_pos, 2
+ gt $I11, rx1151_eos, rx1151_fail
+ sub $I11, rx1151_pos, rx1151_off
+ substr $S10, rx1151_tgt, $I11, 2
+ ne $S10, "!=", rx1151_fail
+ add rx1151_pos, 2
+ set_addr $I10, rxcap_1156_fail
+ ($I12, $I11) = rx1151_cur."!mark_peek"($I10)
+ rx1151_cur."!cursor_pos"($I11)
+ ($P10) = rx1151_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1151_pos, "")
+ rx1151_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1162_done
- rxcap_1162_fail:
- goto rx1157_fail
- rxcap_1162_done:
+ goto rxcap_1156_done
+ rxcap_1156_fail:
+ goto rx1151_fail
+ rxcap_1156_done:
# rx subrule "O" subtype=capture negate=
- rx1157_cur."!cursor_pos"(rx1157_pos)
- $P10 = rx1157_cur."O"("%relational, :pirop<isge ISs>")
- unless $P10, rx1157_fail
- rx1157_cur."!mark_push"(0, -1, 0, $P10)
+ rx1151_cur."!cursor_pos"(rx1151_pos)
+ $P10 = rx1151_cur."O"("%relational, :pirop<isne INn>")
+ unless $P10, rx1151_fail
+ rx1151_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1157_pos = $P10."pos"()
+ rx1151_pos = $P10."pos"()
# rx pass
- rx1157_cur."!cursor_pass"(rx1157_pos, "infix:sym<ge>")
- rx1157_cur."!cursor_debug"("PASS ", "infix:sym<ge>", " at pos=", rx1157_pos)
- .return (rx1157_cur)
- rx1157_fail:
-.annotate 'line', 431
- (rx1157_rep, rx1157_pos, $I10, $P10) = rx1157_cur."!mark_fail"(0)
- lt rx1157_pos, -1, rx1157_done
- eq rx1157_pos, -1, rx1157_fail
+ rx1151_cur."!cursor_pass"(rx1151_pos, "infix:sym<!=>")
+ rx1151_cur."!cursor_debug"("PASS ", "infix:sym<!=>", " at pos=", rx1151_pos)
+ .return (rx1151_cur)
+ rx1151_fail:
+.annotate 'line', 446
+ (rx1151_rep, rx1151_pos, $I10, $P10) = rx1151_cur."!mark_fail"(0)
+ lt rx1151_pos, -1, rx1151_done
+ eq rx1151_pos, -1, rx1151_fail
jump $I10
- rx1157_done:
- rx1157_cur."!cursor_fail"()
- rx1157_cur."!cursor_debug"("FAIL ", "infix:sym<ge>")
- .return (rx1157_cur)
+ rx1151_done:
+ rx1151_cur."!cursor_fail"()
+ rx1151_cur."!cursor_debug"("FAIL ", "infix:sym<!=>")
+ .return (rx1151_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<ge>" :subid("294_1274022894.43745") :method
-.annotate 'line', 431
- $P1159 = self."!PREFIX__!subrule"("O", "ge")
- new $P1160, "ResizablePMCArray"
- push $P1160, $P1159
- .return ($P1160)
+.sub "!PREFIX__infix:sym<!=>" :subid("289_1275811487.95429") :method
+.annotate 'line', 446
+ $P1153 = self."!PREFIX__!subrule"("O", "!=")
+ new $P1154, "ResizablePMCArray"
+ push $P1154, $P1153
+ .return ($P1154)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<lt>" :subid("295_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1164_tgt
- .local int rx1164_pos
- .local int rx1164_off
- .local int rx1164_eos
- .local int rx1164_rep
- .local pmc rx1164_cur
- (rx1164_cur, rx1164_pos, rx1164_tgt) = self."!cursor_start"()
- rx1164_cur."!cursor_debug"("START ", "infix:sym<lt>")
- .lex unicode:"$\x{a2}", rx1164_cur
- .local pmc match
- .lex "$/", match
- length rx1164_eos, rx1164_tgt
- set rx1164_off, 0
- lt rx1164_pos, 2, rx1164_start
- sub rx1164_off, rx1164_pos, 1
- substr rx1164_tgt, rx1164_tgt, rx1164_off
- rx1164_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1168_done
- goto rxscan1168_scan
- rxscan1168_loop:
- ($P10) = rx1164_cur."from"()
- inc $P10
- set rx1164_pos, $P10
- ge rx1164_pos, rx1164_eos, rxscan1168_done
- rxscan1168_scan:
- set_addr $I10, rxscan1168_loop
- rx1164_cur."!mark_push"(0, rx1164_pos, $I10)
- rxscan1168_done:
-.annotate 'line', 510
+.sub "infix:sym<<=>" :subid("290_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1158_tgt
+ .local int rx1158_pos
+ .local int rx1158_off
+ .local int rx1158_eos
+ .local int rx1158_rep
+ .local pmc rx1158_cur
+ (rx1158_cur, rx1158_pos, rx1158_tgt) = self."!cursor_start"()
+ rx1158_cur."!cursor_debug"("START ", "infix:sym<<=>")
+ .lex unicode:"$\x{a2}", rx1158_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1158_eos, rx1158_tgt
+ gt rx1158_pos, rx1158_eos, rx1158_done
+ set rx1158_off, 0
+ lt rx1158_pos, 2, rx1158_start
+ sub rx1158_off, rx1158_pos, 1
+ substr rx1158_tgt, rx1158_tgt, rx1158_off
+ rx1158_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1162_done
+ goto rxscan1162_scan
+ rxscan1162_loop:
+ ($P10) = rx1158_cur."from"()
+ inc $P10
+ set rx1158_pos, $P10
+ ge rx1158_pos, rx1158_eos, rxscan1162_done
+ rxscan1162_scan:
+ set_addr $I10, rxscan1162_loop
+ rx1158_cur."!mark_push"(0, rx1158_pos, $I10)
+ rxscan1162_done:
+.annotate 'line', 517
# rx subcapture "sym"
- set_addr $I10, rxcap_1169_fail
- rx1164_cur."!mark_push"(0, rx1164_pos, $I10)
- # rx literal "lt"
- add $I11, rx1164_pos, 2
- gt $I11, rx1164_eos, rx1164_fail
- sub $I11, rx1164_pos, rx1164_off
- substr $S10, rx1164_tgt, $I11, 2
- ne $S10, "lt", rx1164_fail
- add rx1164_pos, 2
- set_addr $I10, rxcap_1169_fail
- ($I12, $I11) = rx1164_cur."!mark_peek"($I10)
- rx1164_cur."!cursor_pos"($I11)
- ($P10) = rx1164_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1164_pos, "")
- rx1164_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1163_fail
+ rx1158_cur."!mark_push"(0, rx1158_pos, $I10)
+ # rx literal "<="
+ add $I11, rx1158_pos, 2
+ gt $I11, rx1158_eos, rx1158_fail
+ sub $I11, rx1158_pos, rx1158_off
+ substr $S10, rx1158_tgt, $I11, 2
+ ne $S10, "<=", rx1158_fail
+ add rx1158_pos, 2
+ set_addr $I10, rxcap_1163_fail
+ ($I12, $I11) = rx1158_cur."!mark_peek"($I10)
+ rx1158_cur."!cursor_pos"($I11)
+ ($P10) = rx1158_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1158_pos, "")
+ rx1158_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1169_done
- rxcap_1169_fail:
- goto rx1164_fail
- rxcap_1169_done:
+ goto rxcap_1163_done
+ rxcap_1163_fail:
+ goto rx1158_fail
+ rxcap_1163_done:
# rx subrule "O" subtype=capture negate=
- rx1164_cur."!cursor_pos"(rx1164_pos)
- $P10 = rx1164_cur."O"("%relational, :pirop<islt ISs>")
- unless $P10, rx1164_fail
- rx1164_cur."!mark_push"(0, -1, 0, $P10)
+ rx1158_cur."!cursor_pos"(rx1158_pos)
+ $P10 = rx1158_cur."O"("%relational, :pirop<isle INn>")
+ unless $P10, rx1158_fail
+ rx1158_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1164_pos = $P10."pos"()
+ rx1158_pos = $P10."pos"()
# rx pass
- rx1164_cur."!cursor_pass"(rx1164_pos, "infix:sym<lt>")
- rx1164_cur."!cursor_debug"("PASS ", "infix:sym<lt>", " at pos=", rx1164_pos)
- .return (rx1164_cur)
- rx1164_fail:
-.annotate 'line', 431
- (rx1164_rep, rx1164_pos, $I10, $P10) = rx1164_cur."!mark_fail"(0)
- lt rx1164_pos, -1, rx1164_done
- eq rx1164_pos, -1, rx1164_fail
+ rx1158_cur."!cursor_pass"(rx1158_pos, "infix:sym<<=>")
+ rx1158_cur."!cursor_debug"("PASS ", "infix:sym<<=>", " at pos=", rx1158_pos)
+ .return (rx1158_cur)
+ rx1158_fail:
+.annotate 'line', 446
+ (rx1158_rep, rx1158_pos, $I10, $P10) = rx1158_cur."!mark_fail"(0)
+ lt rx1158_pos, -1, rx1158_done
+ eq rx1158_pos, -1, rx1158_fail
jump $I10
- rx1164_done:
- rx1164_cur."!cursor_fail"()
- rx1164_cur."!cursor_debug"("FAIL ", "infix:sym<lt>")
- .return (rx1164_cur)
+ rx1158_done:
+ rx1158_cur."!cursor_fail"()
+ rx1158_cur."!cursor_debug"("FAIL ", "infix:sym<<=>")
+ .return (rx1158_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<lt>" :subid("296_1274022894.43745") :method
-.annotate 'line', 431
- $P1166 = self."!PREFIX__!subrule"("O", "lt")
- new $P1167, "ResizablePMCArray"
- push $P1167, $P1166
- .return ($P1167)
+.sub "!PREFIX__infix:sym<<=>" :subid("291_1275811487.95429") :method
+.annotate 'line', 446
+ $P1160 = self."!PREFIX__!subrule"("O", "<=")
+ new $P1161, "ResizablePMCArray"
+ push $P1161, $P1160
+ .return ($P1161)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<gt>" :subid("297_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1171_tgt
- .local int rx1171_pos
- .local int rx1171_off
- .local int rx1171_eos
- .local int rx1171_rep
- .local pmc rx1171_cur
- (rx1171_cur, rx1171_pos, rx1171_tgt) = self."!cursor_start"()
- rx1171_cur."!cursor_debug"("START ", "infix:sym<gt>")
- .lex unicode:"$\x{a2}", rx1171_cur
- .local pmc match
- .lex "$/", match
- length rx1171_eos, rx1171_tgt
- set rx1171_off, 0
- lt rx1171_pos, 2, rx1171_start
- sub rx1171_off, rx1171_pos, 1
- substr rx1171_tgt, rx1171_tgt, rx1171_off
- rx1171_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1175_done
- goto rxscan1175_scan
- rxscan1175_loop:
- ($P10) = rx1171_cur."from"()
- inc $P10
- set rx1171_pos, $P10
- ge rx1171_pos, rx1171_eos, rxscan1175_done
- rxscan1175_scan:
- set_addr $I10, rxscan1175_loop
- rx1171_cur."!mark_push"(0, rx1171_pos, $I10)
- rxscan1175_done:
-.annotate 'line', 511
+.sub "infix:sym<>=>" :subid("292_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1165_tgt
+ .local int rx1165_pos
+ .local int rx1165_off
+ .local int rx1165_eos
+ .local int rx1165_rep
+ .local pmc rx1165_cur
+ (rx1165_cur, rx1165_pos, rx1165_tgt) = self."!cursor_start"()
+ rx1165_cur."!cursor_debug"("START ", "infix:sym<>=>")
+ .lex unicode:"$\x{a2}", rx1165_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1165_eos, rx1165_tgt
+ gt rx1165_pos, rx1165_eos, rx1165_done
+ set rx1165_off, 0
+ lt rx1165_pos, 2, rx1165_start
+ sub rx1165_off, rx1165_pos, 1
+ substr rx1165_tgt, rx1165_tgt, rx1165_off
+ rx1165_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1169_done
+ goto rxscan1169_scan
+ rxscan1169_loop:
+ ($P10) = rx1165_cur."from"()
+ inc $P10
+ set rx1165_pos, $P10
+ ge rx1165_pos, rx1165_eos, rxscan1169_done
+ rxscan1169_scan:
+ set_addr $I10, rxscan1169_loop
+ rx1165_cur."!mark_push"(0, rx1165_pos, $I10)
+ rxscan1169_done:
+.annotate 'line', 518
# rx subcapture "sym"
- set_addr $I10, rxcap_1176_fail
- rx1171_cur."!mark_push"(0, rx1171_pos, $I10)
- # rx literal "gt"
- add $I11, rx1171_pos, 2
- gt $I11, rx1171_eos, rx1171_fail
- sub $I11, rx1171_pos, rx1171_off
- substr $S10, rx1171_tgt, $I11, 2
- ne $S10, "gt", rx1171_fail
- add rx1171_pos, 2
- set_addr $I10, rxcap_1176_fail
- ($I12, $I11) = rx1171_cur."!mark_peek"($I10)
- rx1171_cur."!cursor_pos"($I11)
- ($P10) = rx1171_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1171_pos, "")
- rx1171_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1170_fail
+ rx1165_cur."!mark_push"(0, rx1165_pos, $I10)
+ # rx literal ">="
+ add $I11, rx1165_pos, 2
+ gt $I11, rx1165_eos, rx1165_fail
+ sub $I11, rx1165_pos, rx1165_off
+ substr $S10, rx1165_tgt, $I11, 2
+ ne $S10, ">=", rx1165_fail
+ add rx1165_pos, 2
+ set_addr $I10, rxcap_1170_fail
+ ($I12, $I11) = rx1165_cur."!mark_peek"($I10)
+ rx1165_cur."!cursor_pos"($I11)
+ ($P10) = rx1165_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1165_pos, "")
+ rx1165_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1176_done
- rxcap_1176_fail:
- goto rx1171_fail
- rxcap_1176_done:
+ goto rxcap_1170_done
+ rxcap_1170_fail:
+ goto rx1165_fail
+ rxcap_1170_done:
# rx subrule "O" subtype=capture negate=
- rx1171_cur."!cursor_pos"(rx1171_pos)
- $P10 = rx1171_cur."O"("%relational, :pirop<isgt ISs>")
- unless $P10, rx1171_fail
- rx1171_cur."!mark_push"(0, -1, 0, $P10)
+ rx1165_cur."!cursor_pos"(rx1165_pos)
+ $P10 = rx1165_cur."O"("%relational, :pirop<isge INn>")
+ unless $P10, rx1165_fail
+ rx1165_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1171_pos = $P10."pos"()
+ rx1165_pos = $P10."pos"()
# rx pass
- rx1171_cur."!cursor_pass"(rx1171_pos, "infix:sym<gt>")
- rx1171_cur."!cursor_debug"("PASS ", "infix:sym<gt>", " at pos=", rx1171_pos)
- .return (rx1171_cur)
- rx1171_fail:
-.annotate 'line', 431
- (rx1171_rep, rx1171_pos, $I10, $P10) = rx1171_cur."!mark_fail"(0)
- lt rx1171_pos, -1, rx1171_done
- eq rx1171_pos, -1, rx1171_fail
+ rx1165_cur."!cursor_pass"(rx1165_pos, "infix:sym<>=>")
+ rx1165_cur."!cursor_debug"("PASS ", "infix:sym<>=>", " at pos=", rx1165_pos)
+ .return (rx1165_cur)
+ rx1165_fail:
+.annotate 'line', 446
+ (rx1165_rep, rx1165_pos, $I10, $P10) = rx1165_cur."!mark_fail"(0)
+ lt rx1165_pos, -1, rx1165_done
+ eq rx1165_pos, -1, rx1165_fail
jump $I10
- rx1171_done:
- rx1171_cur."!cursor_fail"()
- rx1171_cur."!cursor_debug"("FAIL ", "infix:sym<gt>")
- .return (rx1171_cur)
+ rx1165_done:
+ rx1165_cur."!cursor_fail"()
+ rx1165_cur."!cursor_debug"("FAIL ", "infix:sym<>=>")
+ .return (rx1165_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<gt>" :subid("298_1274022894.43745") :method
-.annotate 'line', 431
- $P1173 = self."!PREFIX__!subrule"("O", "gt")
- new $P1174, "ResizablePMCArray"
- push $P1174, $P1173
- .return ($P1174)
+.sub "!PREFIX__infix:sym<>=>" :subid("293_1275811487.95429") :method
+.annotate 'line', 446
+ $P1167 = self."!PREFIX__!subrule"("O", ">=")
+ new $P1168, "ResizablePMCArray"
+ push $P1168, $P1167
+ .return ($P1168)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<=:=>" :subid("299_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1178_tgt
- .local int rx1178_pos
- .local int rx1178_off
- .local int rx1178_eos
- .local int rx1178_rep
- .local pmc rx1178_cur
- (rx1178_cur, rx1178_pos, rx1178_tgt) = self."!cursor_start"()
- rx1178_cur."!cursor_debug"("START ", "infix:sym<=:=>")
- .lex unicode:"$\x{a2}", rx1178_cur
- .local pmc match
- .lex "$/", match
- length rx1178_eos, rx1178_tgt
- set rx1178_off, 0
- lt rx1178_pos, 2, rx1178_start
- sub rx1178_off, rx1178_pos, 1
- substr rx1178_tgt, rx1178_tgt, rx1178_off
- rx1178_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1182_done
- goto rxscan1182_scan
- rxscan1182_loop:
- ($P10) = rx1178_cur."from"()
- inc $P10
- set rx1178_pos, $P10
- ge rx1178_pos, rx1178_eos, rxscan1182_done
- rxscan1182_scan:
- set_addr $I10, rxscan1182_loop
- rx1178_cur."!mark_push"(0, rx1178_pos, $I10)
- rxscan1182_done:
-.annotate 'line', 512
+.sub "infix:sym<<>" :subid("294_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1172_tgt
+ .local int rx1172_pos
+ .local int rx1172_off
+ .local int rx1172_eos
+ .local int rx1172_rep
+ .local pmc rx1172_cur
+ (rx1172_cur, rx1172_pos, rx1172_tgt) = self."!cursor_start"()
+ rx1172_cur."!cursor_debug"("START ", "infix:sym<<>")
+ .lex unicode:"$\x{a2}", rx1172_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1172_eos, rx1172_tgt
+ gt rx1172_pos, rx1172_eos, rx1172_done
+ set rx1172_off, 0
+ lt rx1172_pos, 2, rx1172_start
+ sub rx1172_off, rx1172_pos, 1
+ substr rx1172_tgt, rx1172_tgt, rx1172_off
+ rx1172_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1176_done
+ goto rxscan1176_scan
+ rxscan1176_loop:
+ ($P10) = rx1172_cur."from"()
+ inc $P10
+ set rx1172_pos, $P10
+ ge rx1172_pos, rx1172_eos, rxscan1176_done
+ rxscan1176_scan:
+ set_addr $I10, rxscan1176_loop
+ rx1172_cur."!mark_push"(0, rx1172_pos, $I10)
+ rxscan1176_done:
+.annotate 'line', 519
# rx subcapture "sym"
- set_addr $I10, rxcap_1183_fail
- rx1178_cur."!mark_push"(0, rx1178_pos, $I10)
- # rx literal "=:="
- add $I11, rx1178_pos, 3
- gt $I11, rx1178_eos, rx1178_fail
- sub $I11, rx1178_pos, rx1178_off
- substr $S10, rx1178_tgt, $I11, 3
- ne $S10, "=:=", rx1178_fail
- add rx1178_pos, 3
- set_addr $I10, rxcap_1183_fail
- ($I12, $I11) = rx1178_cur."!mark_peek"($I10)
- rx1178_cur."!cursor_pos"($I11)
- ($P10) = rx1178_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1178_pos, "")
- rx1178_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1177_fail
+ rx1172_cur."!mark_push"(0, rx1172_pos, $I10)
+ # rx literal "<"
+ add $I11, rx1172_pos, 1
+ gt $I11, rx1172_eos, rx1172_fail
+ sub $I11, rx1172_pos, rx1172_off
+ substr $S10, rx1172_tgt, $I11, 1
+ ne $S10, "<", rx1172_fail
+ add rx1172_pos, 1
+ set_addr $I10, rxcap_1177_fail
+ ($I12, $I11) = rx1172_cur."!mark_peek"($I10)
+ rx1172_cur."!cursor_pos"($I11)
+ ($P10) = rx1172_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1172_pos, "")
+ rx1172_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1183_done
- rxcap_1183_fail:
- goto rx1178_fail
- rxcap_1183_done:
+ goto rxcap_1177_done
+ rxcap_1177_fail:
+ goto rx1172_fail
+ rxcap_1177_done:
# rx subrule "O" subtype=capture negate=
- rx1178_cur."!cursor_pos"(rx1178_pos)
- $P10 = rx1178_cur."O"("%relational, :pirop<issame>")
- unless $P10, rx1178_fail
- rx1178_cur."!mark_push"(0, -1, 0, $P10)
+ rx1172_cur."!cursor_pos"(rx1172_pos)
+ $P10 = rx1172_cur."O"("%relational, :pirop<islt INn>")
+ unless $P10, rx1172_fail
+ rx1172_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1178_pos = $P10."pos"()
+ rx1172_pos = $P10."pos"()
# rx pass
- rx1178_cur."!cursor_pass"(rx1178_pos, "infix:sym<=:=>")
- rx1178_cur."!cursor_debug"("PASS ", "infix:sym<=:=>", " at pos=", rx1178_pos)
- .return (rx1178_cur)
- rx1178_fail:
-.annotate 'line', 431
- (rx1178_rep, rx1178_pos, $I10, $P10) = rx1178_cur."!mark_fail"(0)
- lt rx1178_pos, -1, rx1178_done
- eq rx1178_pos, -1, rx1178_fail
+ rx1172_cur."!cursor_pass"(rx1172_pos, "infix:sym<<>")
+ rx1172_cur."!cursor_debug"("PASS ", "infix:sym<<>", " at pos=", rx1172_pos)
+ .return (rx1172_cur)
+ rx1172_fail:
+.annotate 'line', 446
+ (rx1172_rep, rx1172_pos, $I10, $P10) = rx1172_cur."!mark_fail"(0)
+ lt rx1172_pos, -1, rx1172_done
+ eq rx1172_pos, -1, rx1172_fail
jump $I10
- rx1178_done:
- rx1178_cur."!cursor_fail"()
- rx1178_cur."!cursor_debug"("FAIL ", "infix:sym<=:=>")
- .return (rx1178_cur)
+ rx1172_done:
+ rx1172_cur."!cursor_fail"()
+ rx1172_cur."!cursor_debug"("FAIL ", "infix:sym<<>")
+ .return (rx1172_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=:=>" :subid("300_1274022894.43745") :method
-.annotate 'line', 431
- $P1180 = self."!PREFIX__!subrule"("O", "=:=")
- new $P1181, "ResizablePMCArray"
- push $P1181, $P1180
- .return ($P1181)
+.sub "!PREFIX__infix:sym<<>" :subid("295_1275811487.95429") :method
+.annotate 'line', 446
+ $P1174 = self."!PREFIX__!subrule"("O", "<")
+ new $P1175, "ResizablePMCArray"
+ push $P1175, $P1174
+ .return ($P1175)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<~~>" :subid("301_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1185_tgt
- .local int rx1185_pos
- .local int rx1185_off
- .local int rx1185_eos
- .local int rx1185_rep
- .local pmc rx1185_cur
- (rx1185_cur, rx1185_pos, rx1185_tgt) = self."!cursor_start"()
- rx1185_cur."!cursor_debug"("START ", "infix:sym<~~>")
- .lex unicode:"$\x{a2}", rx1185_cur
- .local pmc match
- .lex "$/", match
- length rx1185_eos, rx1185_tgt
- set rx1185_off, 0
- lt rx1185_pos, 2, rx1185_start
- sub rx1185_off, rx1185_pos, 1
- substr rx1185_tgt, rx1185_tgt, rx1185_off
- rx1185_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1189_done
- goto rxscan1189_scan
- rxscan1189_loop:
- ($P10) = rx1185_cur."from"()
- inc $P10
- set rx1185_pos, $P10
- ge rx1185_pos, rx1185_eos, rxscan1189_done
- rxscan1189_scan:
- set_addr $I10, rxscan1189_loop
- rx1185_cur."!mark_push"(0, rx1185_pos, $I10)
- rxscan1189_done:
-.annotate 'line', 513
+.sub "infix:sym<>>" :subid("296_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1179_tgt
+ .local int rx1179_pos
+ .local int rx1179_off
+ .local int rx1179_eos
+ .local int rx1179_rep
+ .local pmc rx1179_cur
+ (rx1179_cur, rx1179_pos, rx1179_tgt) = self."!cursor_start"()
+ rx1179_cur."!cursor_debug"("START ", "infix:sym<>>")
+ .lex unicode:"$\x{a2}", rx1179_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1179_eos, rx1179_tgt
+ gt rx1179_pos, rx1179_eos, rx1179_done
+ set rx1179_off, 0
+ lt rx1179_pos, 2, rx1179_start
+ sub rx1179_off, rx1179_pos, 1
+ substr rx1179_tgt, rx1179_tgt, rx1179_off
+ rx1179_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1183_done
+ goto rxscan1183_scan
+ rxscan1183_loop:
+ ($P10) = rx1179_cur."from"()
+ inc $P10
+ set rx1179_pos, $P10
+ ge rx1179_pos, rx1179_eos, rxscan1183_done
+ rxscan1183_scan:
+ set_addr $I10, rxscan1183_loop
+ rx1179_cur."!mark_push"(0, rx1179_pos, $I10)
+ rxscan1183_done:
+.annotate 'line', 520
# rx subcapture "sym"
- set_addr $I10, rxcap_1190_fail
- rx1185_cur."!mark_push"(0, rx1185_pos, $I10)
- # rx literal "~~"
- add $I11, rx1185_pos, 2
- gt $I11, rx1185_eos, rx1185_fail
- sub $I11, rx1185_pos, rx1185_off
- substr $S10, rx1185_tgt, $I11, 2
- ne $S10, "~~", rx1185_fail
- add rx1185_pos, 2
- set_addr $I10, rxcap_1190_fail
- ($I12, $I11) = rx1185_cur."!mark_peek"($I10)
- rx1185_cur."!cursor_pos"($I11)
- ($P10) = rx1185_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1185_pos, "")
- rx1185_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1184_fail
+ rx1179_cur."!mark_push"(0, rx1179_pos, $I10)
+ # rx literal ">"
+ add $I11, rx1179_pos, 1
+ gt $I11, rx1179_eos, rx1179_fail
+ sub $I11, rx1179_pos, rx1179_off
+ substr $S10, rx1179_tgt, $I11, 1
+ ne $S10, ">", rx1179_fail
+ add rx1179_pos, 1
+ set_addr $I10, rxcap_1184_fail
+ ($I12, $I11) = rx1179_cur."!mark_peek"($I10)
+ rx1179_cur."!cursor_pos"($I11)
+ ($P10) = rx1179_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1179_pos, "")
+ rx1179_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1190_done
- rxcap_1190_fail:
- goto rx1185_fail
- rxcap_1190_done:
+ goto rxcap_1184_done
+ rxcap_1184_fail:
+ goto rx1179_fail
+ rxcap_1184_done:
# rx subrule "O" subtype=capture negate=
- rx1185_cur."!cursor_pos"(rx1185_pos)
- $P10 = rx1185_cur."O"("%relational, :reducecheck<smartmatch>")
- unless $P10, rx1185_fail
- rx1185_cur."!mark_push"(0, -1, 0, $P10)
+ rx1179_cur."!cursor_pos"(rx1179_pos)
+ $P10 = rx1179_cur."O"("%relational, :pirop<isgt INn>")
+ unless $P10, rx1179_fail
+ rx1179_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1185_pos = $P10."pos"()
+ rx1179_pos = $P10."pos"()
# rx pass
- rx1185_cur."!cursor_pass"(rx1185_pos, "infix:sym<~~>")
- rx1185_cur."!cursor_debug"("PASS ", "infix:sym<~~>", " at pos=", rx1185_pos)
- .return (rx1185_cur)
- rx1185_fail:
-.annotate 'line', 431
- (rx1185_rep, rx1185_pos, $I10, $P10) = rx1185_cur."!mark_fail"(0)
- lt rx1185_pos, -1, rx1185_done
- eq rx1185_pos, -1, rx1185_fail
+ rx1179_cur."!cursor_pass"(rx1179_pos, "infix:sym<>>")
+ rx1179_cur."!cursor_debug"("PASS ", "infix:sym<>>", " at pos=", rx1179_pos)
+ .return (rx1179_cur)
+ rx1179_fail:
+.annotate 'line', 446
+ (rx1179_rep, rx1179_pos, $I10, $P10) = rx1179_cur."!mark_fail"(0)
+ lt rx1179_pos, -1, rx1179_done
+ eq rx1179_pos, -1, rx1179_fail
jump $I10
- rx1185_done:
- rx1185_cur."!cursor_fail"()
- rx1185_cur."!cursor_debug"("FAIL ", "infix:sym<~~>")
- .return (rx1185_cur)
+ rx1179_done:
+ rx1179_cur."!cursor_fail"()
+ rx1179_cur."!cursor_debug"("FAIL ", "infix:sym<>>")
+ .return (rx1179_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<~~>" :subid("302_1274022894.43745") :method
-.annotate 'line', 431
- $P1187 = self."!PREFIX__!subrule"("O", "~~")
- new $P1188, "ResizablePMCArray"
- push $P1188, $P1187
- .return ($P1188)
+.sub "!PREFIX__infix:sym<>>" :subid("297_1275811487.95429") :method
+.annotate 'line', 446
+ $P1181 = self."!PREFIX__!subrule"("O", ">")
+ new $P1182, "ResizablePMCArray"
+ push $P1182, $P1181
+ .return ($P1182)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<&&>" :subid("303_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1192_tgt
- .local int rx1192_pos
- .local int rx1192_off
- .local int rx1192_eos
- .local int rx1192_rep
- .local pmc rx1192_cur
- (rx1192_cur, rx1192_pos, rx1192_tgt) = self."!cursor_start"()
- rx1192_cur."!cursor_debug"("START ", "infix:sym<&&>")
- .lex unicode:"$\x{a2}", rx1192_cur
- .local pmc match
- .lex "$/", match
- length rx1192_eos, rx1192_tgt
- set rx1192_off, 0
- lt rx1192_pos, 2, rx1192_start
- sub rx1192_off, rx1192_pos, 1
- substr rx1192_tgt, rx1192_tgt, rx1192_off
- rx1192_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1196_done
- goto rxscan1196_scan
- rxscan1196_loop:
- ($P10) = rx1192_cur."from"()
- inc $P10
- set rx1192_pos, $P10
- ge rx1192_pos, rx1192_eos, rxscan1196_done
- rxscan1196_scan:
- set_addr $I10, rxscan1196_loop
- rx1192_cur."!mark_push"(0, rx1192_pos, $I10)
- rxscan1196_done:
-.annotate 'line', 515
+.sub "infix:sym<eq>" :subid("298_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1186_tgt
+ .local int rx1186_pos
+ .local int rx1186_off
+ .local int rx1186_eos
+ .local int rx1186_rep
+ .local pmc rx1186_cur
+ (rx1186_cur, rx1186_pos, rx1186_tgt) = self."!cursor_start"()
+ rx1186_cur."!cursor_debug"("START ", "infix:sym<eq>")
+ .lex unicode:"$\x{a2}", rx1186_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1186_eos, rx1186_tgt
+ gt rx1186_pos, rx1186_eos, rx1186_done
+ set rx1186_off, 0
+ lt rx1186_pos, 2, rx1186_start
+ sub rx1186_off, rx1186_pos, 1
+ substr rx1186_tgt, rx1186_tgt, rx1186_off
+ rx1186_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1190_done
+ goto rxscan1190_scan
+ rxscan1190_loop:
+ ($P10) = rx1186_cur."from"()
+ inc $P10
+ set rx1186_pos, $P10
+ ge rx1186_pos, rx1186_eos, rxscan1190_done
+ rxscan1190_scan:
+ set_addr $I10, rxscan1190_loop
+ rx1186_cur."!mark_push"(0, rx1186_pos, $I10)
+ rxscan1190_done:
+.annotate 'line', 521
# rx subcapture "sym"
- set_addr $I10, rxcap_1197_fail
- rx1192_cur."!mark_push"(0, rx1192_pos, $I10)
- # rx literal "&&"
- add $I11, rx1192_pos, 2
- gt $I11, rx1192_eos, rx1192_fail
- sub $I11, rx1192_pos, rx1192_off
- substr $S10, rx1192_tgt, $I11, 2
- ne $S10, "&&", rx1192_fail
- add rx1192_pos, 2
- set_addr $I10, rxcap_1197_fail
- ($I12, $I11) = rx1192_cur."!mark_peek"($I10)
- rx1192_cur."!cursor_pos"($I11)
- ($P10) = rx1192_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1192_pos, "")
- rx1192_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1191_fail
+ rx1186_cur."!mark_push"(0, rx1186_pos, $I10)
+ # rx literal "eq"
+ add $I11, rx1186_pos, 2
+ gt $I11, rx1186_eos, rx1186_fail
+ sub $I11, rx1186_pos, rx1186_off
+ substr $S10, rx1186_tgt, $I11, 2
+ ne $S10, "eq", rx1186_fail
+ add rx1186_pos, 2
+ set_addr $I10, rxcap_1191_fail
+ ($I12, $I11) = rx1186_cur."!mark_peek"($I10)
+ rx1186_cur."!cursor_pos"($I11)
+ ($P10) = rx1186_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1186_pos, "")
+ rx1186_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1197_done
- rxcap_1197_fail:
- goto rx1192_fail
- rxcap_1197_done:
+ goto rxcap_1191_done
+ rxcap_1191_fail:
+ goto rx1186_fail
+ rxcap_1191_done:
# rx subrule "O" subtype=capture negate=
- rx1192_cur."!cursor_pos"(rx1192_pos)
- $P10 = rx1192_cur."O"("%tight_and, :pasttype<if>")
- unless $P10, rx1192_fail
- rx1192_cur."!mark_push"(0, -1, 0, $P10)
+ rx1186_cur."!cursor_pos"(rx1186_pos)
+ $P10 = rx1186_cur."O"("%relational, :pirop<iseq ISs>")
+ unless $P10, rx1186_fail
+ rx1186_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1192_pos = $P10."pos"()
+ rx1186_pos = $P10."pos"()
# rx pass
- rx1192_cur."!cursor_pass"(rx1192_pos, "infix:sym<&&>")
- rx1192_cur."!cursor_debug"("PASS ", "infix:sym<&&>", " at pos=", rx1192_pos)
- .return (rx1192_cur)
- rx1192_fail:
-.annotate 'line', 431
- (rx1192_rep, rx1192_pos, $I10, $P10) = rx1192_cur."!mark_fail"(0)
- lt rx1192_pos, -1, rx1192_done
- eq rx1192_pos, -1, rx1192_fail
+ rx1186_cur."!cursor_pass"(rx1186_pos, "infix:sym<eq>")
+ rx1186_cur."!cursor_debug"("PASS ", "infix:sym<eq>", " at pos=", rx1186_pos)
+ .return (rx1186_cur)
+ rx1186_fail:
+.annotate 'line', 446
+ (rx1186_rep, rx1186_pos, $I10, $P10) = rx1186_cur."!mark_fail"(0)
+ lt rx1186_pos, -1, rx1186_done
+ eq rx1186_pos, -1, rx1186_fail
jump $I10
- rx1192_done:
- rx1192_cur."!cursor_fail"()
- rx1192_cur."!cursor_debug"("FAIL ", "infix:sym<&&>")
- .return (rx1192_cur)
+ rx1186_done:
+ rx1186_cur."!cursor_fail"()
+ rx1186_cur."!cursor_debug"("FAIL ", "infix:sym<eq>")
+ .return (rx1186_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<&&>" :subid("304_1274022894.43745") :method
-.annotate 'line', 431
- $P1194 = self."!PREFIX__!subrule"("O", "&&")
- new $P1195, "ResizablePMCArray"
- push $P1195, $P1194
- .return ($P1195)
+.sub "!PREFIX__infix:sym<eq>" :subid("299_1275811487.95429") :method
+.annotate 'line', 446
+ $P1188 = self."!PREFIX__!subrule"("O", "eq")
+ new $P1189, "ResizablePMCArray"
+ push $P1189, $P1188
+ .return ($P1189)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<||>" :subid("305_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1199_tgt
- .local int rx1199_pos
- .local int rx1199_off
- .local int rx1199_eos
- .local int rx1199_rep
- .local pmc rx1199_cur
- (rx1199_cur, rx1199_pos, rx1199_tgt) = self."!cursor_start"()
- rx1199_cur."!cursor_debug"("START ", "infix:sym<||>")
- .lex unicode:"$\x{a2}", rx1199_cur
- .local pmc match
- .lex "$/", match
- length rx1199_eos, rx1199_tgt
- set rx1199_off, 0
- lt rx1199_pos, 2, rx1199_start
- sub rx1199_off, rx1199_pos, 1
- substr rx1199_tgt, rx1199_tgt, rx1199_off
- rx1199_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1203_done
- goto rxscan1203_scan
- rxscan1203_loop:
- ($P10) = rx1199_cur."from"()
- inc $P10
- set rx1199_pos, $P10
- ge rx1199_pos, rx1199_eos, rxscan1203_done
- rxscan1203_scan:
- set_addr $I10, rxscan1203_loop
- rx1199_cur."!mark_push"(0, rx1199_pos, $I10)
- rxscan1203_done:
-.annotate 'line', 517
+.sub "infix:sym<ne>" :subid("300_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1193_tgt
+ .local int rx1193_pos
+ .local int rx1193_off
+ .local int rx1193_eos
+ .local int rx1193_rep
+ .local pmc rx1193_cur
+ (rx1193_cur, rx1193_pos, rx1193_tgt) = self."!cursor_start"()
+ rx1193_cur."!cursor_debug"("START ", "infix:sym<ne>")
+ .lex unicode:"$\x{a2}", rx1193_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1193_eos, rx1193_tgt
+ gt rx1193_pos, rx1193_eos, rx1193_done
+ set rx1193_off, 0
+ lt rx1193_pos, 2, rx1193_start
+ sub rx1193_off, rx1193_pos, 1
+ substr rx1193_tgt, rx1193_tgt, rx1193_off
+ rx1193_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1197_done
+ goto rxscan1197_scan
+ rxscan1197_loop:
+ ($P10) = rx1193_cur."from"()
+ inc $P10
+ set rx1193_pos, $P10
+ ge rx1193_pos, rx1193_eos, rxscan1197_done
+ rxscan1197_scan:
+ set_addr $I10, rxscan1197_loop
+ rx1193_cur."!mark_push"(0, rx1193_pos, $I10)
+ rxscan1197_done:
+.annotate 'line', 522
# rx subcapture "sym"
- set_addr $I10, rxcap_1204_fail
- rx1199_cur."!mark_push"(0, rx1199_pos, $I10)
- # rx literal "||"
- add $I11, rx1199_pos, 2
- gt $I11, rx1199_eos, rx1199_fail
- sub $I11, rx1199_pos, rx1199_off
- substr $S10, rx1199_tgt, $I11, 2
- ne $S10, "||", rx1199_fail
- add rx1199_pos, 2
- set_addr $I10, rxcap_1204_fail
- ($I12, $I11) = rx1199_cur."!mark_peek"($I10)
- rx1199_cur."!cursor_pos"($I11)
- ($P10) = rx1199_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1199_pos, "")
- rx1199_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1198_fail
+ rx1193_cur."!mark_push"(0, rx1193_pos, $I10)
+ # rx literal "ne"
+ add $I11, rx1193_pos, 2
+ gt $I11, rx1193_eos, rx1193_fail
+ sub $I11, rx1193_pos, rx1193_off
+ substr $S10, rx1193_tgt, $I11, 2
+ ne $S10, "ne", rx1193_fail
+ add rx1193_pos, 2
+ set_addr $I10, rxcap_1198_fail
+ ($I12, $I11) = rx1193_cur."!mark_peek"($I10)
+ rx1193_cur."!cursor_pos"($I11)
+ ($P10) = rx1193_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1193_pos, "")
+ rx1193_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1204_done
- rxcap_1204_fail:
- goto rx1199_fail
- rxcap_1204_done:
+ goto rxcap_1198_done
+ rxcap_1198_fail:
+ goto rx1193_fail
+ rxcap_1198_done:
# rx subrule "O" subtype=capture negate=
- rx1199_cur."!cursor_pos"(rx1199_pos)
- $P10 = rx1199_cur."O"("%tight_or, :pasttype<unless>")
- unless $P10, rx1199_fail
- rx1199_cur."!mark_push"(0, -1, 0, $P10)
+ rx1193_cur."!cursor_pos"(rx1193_pos)
+ $P10 = rx1193_cur."O"("%relational, :pirop<isne ISs>")
+ unless $P10, rx1193_fail
+ rx1193_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1199_pos = $P10."pos"()
+ rx1193_pos = $P10."pos"()
# rx pass
- rx1199_cur."!cursor_pass"(rx1199_pos, "infix:sym<||>")
- rx1199_cur."!cursor_debug"("PASS ", "infix:sym<||>", " at pos=", rx1199_pos)
- .return (rx1199_cur)
- rx1199_fail:
-.annotate 'line', 431
- (rx1199_rep, rx1199_pos, $I10, $P10) = rx1199_cur."!mark_fail"(0)
- lt rx1199_pos, -1, rx1199_done
- eq rx1199_pos, -1, rx1199_fail
+ rx1193_cur."!cursor_pass"(rx1193_pos, "infix:sym<ne>")
+ rx1193_cur."!cursor_debug"("PASS ", "infix:sym<ne>", " at pos=", rx1193_pos)
+ .return (rx1193_cur)
+ rx1193_fail:
+.annotate 'line', 446
+ (rx1193_rep, rx1193_pos, $I10, $P10) = rx1193_cur."!mark_fail"(0)
+ lt rx1193_pos, -1, rx1193_done
+ eq rx1193_pos, -1, rx1193_fail
jump $I10
- rx1199_done:
- rx1199_cur."!cursor_fail"()
- rx1199_cur."!cursor_debug"("FAIL ", "infix:sym<||>")
- .return (rx1199_cur)
+ rx1193_done:
+ rx1193_cur."!cursor_fail"()
+ rx1193_cur."!cursor_debug"("FAIL ", "infix:sym<ne>")
+ .return (rx1193_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<||>" :subid("306_1274022894.43745") :method
-.annotate 'line', 431
- $P1201 = self."!PREFIX__!subrule"("O", "||")
- new $P1202, "ResizablePMCArray"
- push $P1202, $P1201
- .return ($P1202)
+.sub "!PREFIX__infix:sym<ne>" :subid("301_1275811487.95429") :method
+.annotate 'line', 446
+ $P1195 = self."!PREFIX__!subrule"("O", "ne")
+ new $P1196, "ResizablePMCArray"
+ push $P1196, $P1195
+ .return ($P1196)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<//>" :subid("307_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1206_tgt
- .local int rx1206_pos
- .local int rx1206_off
- .local int rx1206_eos
- .local int rx1206_rep
- .local pmc rx1206_cur
- (rx1206_cur, rx1206_pos, rx1206_tgt) = self."!cursor_start"()
- rx1206_cur."!cursor_debug"("START ", "infix:sym<//>")
- .lex unicode:"$\x{a2}", rx1206_cur
- .local pmc match
- .lex "$/", match
- length rx1206_eos, rx1206_tgt
- set rx1206_off, 0
- lt rx1206_pos, 2, rx1206_start
- sub rx1206_off, rx1206_pos, 1
- substr rx1206_tgt, rx1206_tgt, rx1206_off
- rx1206_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1210_done
- goto rxscan1210_scan
- rxscan1210_loop:
- ($P10) = rx1206_cur."from"()
- inc $P10
- set rx1206_pos, $P10
- ge rx1206_pos, rx1206_eos, rxscan1210_done
- rxscan1210_scan:
- set_addr $I10, rxscan1210_loop
- rx1206_cur."!mark_push"(0, rx1206_pos, $I10)
- rxscan1210_done:
-.annotate 'line', 518
+.sub "infix:sym<le>" :subid("302_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1200_tgt
+ .local int rx1200_pos
+ .local int rx1200_off
+ .local int rx1200_eos
+ .local int rx1200_rep
+ .local pmc rx1200_cur
+ (rx1200_cur, rx1200_pos, rx1200_tgt) = self."!cursor_start"()
+ rx1200_cur."!cursor_debug"("START ", "infix:sym<le>")
+ .lex unicode:"$\x{a2}", rx1200_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1200_eos, rx1200_tgt
+ gt rx1200_pos, rx1200_eos, rx1200_done
+ set rx1200_off, 0
+ lt rx1200_pos, 2, rx1200_start
+ sub rx1200_off, rx1200_pos, 1
+ substr rx1200_tgt, rx1200_tgt, rx1200_off
+ rx1200_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1204_done
+ goto rxscan1204_scan
+ rxscan1204_loop:
+ ($P10) = rx1200_cur."from"()
+ inc $P10
+ set rx1200_pos, $P10
+ ge rx1200_pos, rx1200_eos, rxscan1204_done
+ rxscan1204_scan:
+ set_addr $I10, rxscan1204_loop
+ rx1200_cur."!mark_push"(0, rx1200_pos, $I10)
+ rxscan1204_done:
+.annotate 'line', 523
# rx subcapture "sym"
- set_addr $I10, rxcap_1211_fail
- rx1206_cur."!mark_push"(0, rx1206_pos, $I10)
- # rx literal "//"
- add $I11, rx1206_pos, 2
- gt $I11, rx1206_eos, rx1206_fail
- sub $I11, rx1206_pos, rx1206_off
- substr $S10, rx1206_tgt, $I11, 2
- ne $S10, "//", rx1206_fail
- add rx1206_pos, 2
- set_addr $I10, rxcap_1211_fail
- ($I12, $I11) = rx1206_cur."!mark_peek"($I10)
- rx1206_cur."!cursor_pos"($I11)
- ($P10) = rx1206_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1206_pos, "")
- rx1206_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1205_fail
+ rx1200_cur."!mark_push"(0, rx1200_pos, $I10)
+ # rx literal "le"
+ add $I11, rx1200_pos, 2
+ gt $I11, rx1200_eos, rx1200_fail
+ sub $I11, rx1200_pos, rx1200_off
+ substr $S10, rx1200_tgt, $I11, 2
+ ne $S10, "le", rx1200_fail
+ add rx1200_pos, 2
+ set_addr $I10, rxcap_1205_fail
+ ($I12, $I11) = rx1200_cur."!mark_peek"($I10)
+ rx1200_cur."!cursor_pos"($I11)
+ ($P10) = rx1200_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1200_pos, "")
+ rx1200_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1211_done
- rxcap_1211_fail:
- goto rx1206_fail
- rxcap_1211_done:
+ goto rxcap_1205_done
+ rxcap_1205_fail:
+ goto rx1200_fail
+ rxcap_1205_done:
# rx subrule "O" subtype=capture negate=
- rx1206_cur."!cursor_pos"(rx1206_pos)
- $P10 = rx1206_cur."O"("%tight_or, :pasttype<def_or>")
- unless $P10, rx1206_fail
- rx1206_cur."!mark_push"(0, -1, 0, $P10)
+ rx1200_cur."!cursor_pos"(rx1200_pos)
+ $P10 = rx1200_cur."O"("%relational, :pirop<isle ISs>")
+ unless $P10, rx1200_fail
+ rx1200_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1206_pos = $P10."pos"()
+ rx1200_pos = $P10."pos"()
# rx pass
- rx1206_cur."!cursor_pass"(rx1206_pos, "infix:sym<//>")
- rx1206_cur."!cursor_debug"("PASS ", "infix:sym<//>", " at pos=", rx1206_pos)
- .return (rx1206_cur)
- rx1206_fail:
-.annotate 'line', 431
- (rx1206_rep, rx1206_pos, $I10, $P10) = rx1206_cur."!mark_fail"(0)
- lt rx1206_pos, -1, rx1206_done
- eq rx1206_pos, -1, rx1206_fail
+ rx1200_cur."!cursor_pass"(rx1200_pos, "infix:sym<le>")
+ rx1200_cur."!cursor_debug"("PASS ", "infix:sym<le>", " at pos=", rx1200_pos)
+ .return (rx1200_cur)
+ rx1200_fail:
+.annotate 'line', 446
+ (rx1200_rep, rx1200_pos, $I10, $P10) = rx1200_cur."!mark_fail"(0)
+ lt rx1200_pos, -1, rx1200_done
+ eq rx1200_pos, -1, rx1200_fail
jump $I10
- rx1206_done:
- rx1206_cur."!cursor_fail"()
- rx1206_cur."!cursor_debug"("FAIL ", "infix:sym<//>")
- .return (rx1206_cur)
+ rx1200_done:
+ rx1200_cur."!cursor_fail"()
+ rx1200_cur."!cursor_debug"("FAIL ", "infix:sym<le>")
+ .return (rx1200_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<//>" :subid("308_1274022894.43745") :method
-.annotate 'line', 431
- $P1208 = self."!PREFIX__!subrule"("O", "//")
- new $P1209, "ResizablePMCArray"
- push $P1209, $P1208
- .return ($P1209)
+.sub "!PREFIX__infix:sym<le>" :subid("303_1275811487.95429") :method
+.annotate 'line', 446
+ $P1202 = self."!PREFIX__!subrule"("O", "le")
+ new $P1203, "ResizablePMCArray"
+ push $P1203, $P1202
+ .return ($P1203)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<?? !!>" :subid("309_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1213_tgt
- .local int rx1213_pos
- .local int rx1213_off
- .local int rx1213_eos
- .local int rx1213_rep
- .local pmc rx1213_cur
- (rx1213_cur, rx1213_pos, rx1213_tgt) = self."!cursor_start"()
- rx1213_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
- .lex unicode:"$\x{a2}", rx1213_cur
- .local pmc match
- .lex "$/", match
- length rx1213_eos, rx1213_tgt
- set rx1213_off, 0
- lt rx1213_pos, 2, rx1213_start
- sub rx1213_off, rx1213_pos, 1
- substr rx1213_tgt, rx1213_tgt, rx1213_off
- rx1213_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1217_done
- goto rxscan1217_scan
- rxscan1217_loop:
- ($P10) = rx1213_cur."from"()
- inc $P10
- set rx1213_pos, $P10
- ge rx1213_pos, rx1213_eos, rxscan1217_done
- rxscan1217_scan:
- set_addr $I10, rxscan1217_loop
- rx1213_cur."!mark_push"(0, rx1213_pos, $I10)
- rxscan1217_done:
-.annotate 'line', 521
- # rx literal "??"
- add $I11, rx1213_pos, 2
- gt $I11, rx1213_eos, rx1213_fail
- sub $I11, rx1213_pos, rx1213_off
- substr $S10, rx1213_tgt, $I11, 2
- ne $S10, "??", rx1213_fail
- add rx1213_pos, 2
-.annotate 'line', 522
- # rx subrule "ws" subtype=method negate=
- rx1213_cur."!cursor_pos"(rx1213_pos)
- $P10 = rx1213_cur."ws"()
- unless $P10, rx1213_fail
- rx1213_pos = $P10."pos"()
-.annotate 'line', 523
- # rx subrule "EXPR" subtype=capture negate=
- rx1213_cur."!cursor_pos"(rx1213_pos)
- $P10 = rx1213_cur."EXPR"("i=")
- unless $P10, rx1213_fail
- rx1213_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("EXPR")
- rx1213_pos = $P10."pos"()
+.sub "infix:sym<ge>" :subid("304_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1207_tgt
+ .local int rx1207_pos
+ .local int rx1207_off
+ .local int rx1207_eos
+ .local int rx1207_rep
+ .local pmc rx1207_cur
+ (rx1207_cur, rx1207_pos, rx1207_tgt) = self."!cursor_start"()
+ rx1207_cur."!cursor_debug"("START ", "infix:sym<ge>")
+ .lex unicode:"$\x{a2}", rx1207_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1207_eos, rx1207_tgt
+ gt rx1207_pos, rx1207_eos, rx1207_done
+ set rx1207_off, 0
+ lt rx1207_pos, 2, rx1207_start
+ sub rx1207_off, rx1207_pos, 1
+ substr rx1207_tgt, rx1207_tgt, rx1207_off
+ rx1207_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1211_done
+ goto rxscan1211_scan
+ rxscan1211_loop:
+ ($P10) = rx1207_cur."from"()
+ inc $P10
+ set rx1207_pos, $P10
+ ge rx1207_pos, rx1207_eos, rxscan1211_done
+ rxscan1211_scan:
+ set_addr $I10, rxscan1211_loop
+ rx1207_cur."!mark_push"(0, rx1207_pos, $I10)
+ rxscan1211_done:
.annotate 'line', 524
- # rx literal "!!"
- add $I11, rx1213_pos, 2
- gt $I11, rx1213_eos, rx1213_fail
- sub $I11, rx1213_pos, rx1213_off
- substr $S10, rx1213_tgt, $I11, 2
- ne $S10, "!!", rx1213_fail
- add rx1213_pos, 2
-.annotate 'line', 525
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_1212_fail
+ rx1207_cur."!mark_push"(0, rx1207_pos, $I10)
+ # rx literal "ge"
+ add $I11, rx1207_pos, 2
+ gt $I11, rx1207_eos, rx1207_fail
+ sub $I11, rx1207_pos, rx1207_off
+ substr $S10, rx1207_tgt, $I11, 2
+ ne $S10, "ge", rx1207_fail
+ add rx1207_pos, 2
+ set_addr $I10, rxcap_1212_fail
+ ($I12, $I11) = rx1207_cur."!mark_peek"($I10)
+ rx1207_cur."!cursor_pos"($I11)
+ ($P10) = rx1207_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1207_pos, "")
+ rx1207_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_1212_done
+ rxcap_1212_fail:
+ goto rx1207_fail
+ rxcap_1212_done:
# rx subrule "O" subtype=capture negate=
- rx1213_cur."!cursor_pos"(rx1213_pos)
- $P10 = rx1213_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
- unless $P10, rx1213_fail
- rx1213_cur."!mark_push"(0, -1, 0, $P10)
+ rx1207_cur."!cursor_pos"(rx1207_pos)
+ $P10 = rx1207_cur."O"("%relational, :pirop<isge ISs>")
+ unless $P10, rx1207_fail
+ rx1207_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1213_pos = $P10."pos"()
-.annotate 'line', 520
+ rx1207_pos = $P10."pos"()
# rx pass
- rx1213_cur."!cursor_pass"(rx1213_pos, "infix:sym<?? !!>")
- rx1213_cur."!cursor_debug"("PASS ", "infix:sym<?? !!>", " at pos=", rx1213_pos)
- .return (rx1213_cur)
- rx1213_fail:
-.annotate 'line', 431
- (rx1213_rep, rx1213_pos, $I10, $P10) = rx1213_cur."!mark_fail"(0)
- lt rx1213_pos, -1, rx1213_done
- eq rx1213_pos, -1, rx1213_fail
+ rx1207_cur."!cursor_pass"(rx1207_pos, "infix:sym<ge>")
+ rx1207_cur."!cursor_debug"("PASS ", "infix:sym<ge>", " at pos=", rx1207_pos)
+ .return (rx1207_cur)
+ rx1207_fail:
+.annotate 'line', 446
+ (rx1207_rep, rx1207_pos, $I10, $P10) = rx1207_cur."!mark_fail"(0)
+ lt rx1207_pos, -1, rx1207_done
+ eq rx1207_pos, -1, rx1207_fail
jump $I10
- rx1213_done:
- rx1213_cur."!cursor_fail"()
- rx1213_cur."!cursor_debug"("FAIL ", "infix:sym<?? !!>")
- .return (rx1213_cur)
+ rx1207_done:
+ rx1207_cur."!cursor_fail"()
+ rx1207_cur."!cursor_debug"("FAIL ", "infix:sym<ge>")
+ .return (rx1207_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<?? !!>" :subid("310_1274022894.43745") :method
-.annotate 'line', 431
- $P1215 = self."!PREFIX__!subrule"("", "??")
- new $P1216, "ResizablePMCArray"
- push $P1216, $P1215
- .return ($P1216)
+.sub "!PREFIX__infix:sym<ge>" :subid("305_1275811487.95429") :method
+.annotate 'line', 446
+ $P1209 = self."!PREFIX__!subrule"("O", "ge")
+ new $P1210, "ResizablePMCArray"
+ push $P1210, $P1209
+ .return ($P1210)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<=>" :subid("311_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1219_tgt
- .local int rx1219_pos
- .local int rx1219_off
- .local int rx1219_eos
- .local int rx1219_rep
- .local pmc rx1219_cur
- (rx1219_cur, rx1219_pos, rx1219_tgt) = self."!cursor_start"()
- rx1219_cur."!cursor_debug"("START ", "infix:sym<=>")
- .lex unicode:"$\x{a2}", rx1219_cur
- .local pmc match
- .lex "$/", match
- length rx1219_eos, rx1219_tgt
- set rx1219_off, 0
- lt rx1219_pos, 2, rx1219_start
- sub rx1219_off, rx1219_pos, 1
- substr rx1219_tgt, rx1219_tgt, rx1219_off
- rx1219_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1223_done
- goto rxscan1223_scan
- rxscan1223_loop:
- ($P10) = rx1219_cur."from"()
- inc $P10
- set rx1219_pos, $P10
- ge rx1219_pos, rx1219_eos, rxscan1223_done
- rxscan1223_scan:
- set_addr $I10, rxscan1223_loop
- rx1219_cur."!mark_push"(0, rx1219_pos, $I10)
- rxscan1223_done:
-.annotate 'line', 529
+.sub "infix:sym<lt>" :subid("306_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1214_tgt
+ .local int rx1214_pos
+ .local int rx1214_off
+ .local int rx1214_eos
+ .local int rx1214_rep
+ .local pmc rx1214_cur
+ (rx1214_cur, rx1214_pos, rx1214_tgt) = self."!cursor_start"()
+ rx1214_cur."!cursor_debug"("START ", "infix:sym<lt>")
+ .lex unicode:"$\x{a2}", rx1214_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1214_eos, rx1214_tgt
+ gt rx1214_pos, rx1214_eos, rx1214_done
+ set rx1214_off, 0
+ lt rx1214_pos, 2, rx1214_start
+ sub rx1214_off, rx1214_pos, 1
+ substr rx1214_tgt, rx1214_tgt, rx1214_off
+ rx1214_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1218_done
+ goto rxscan1218_scan
+ rxscan1218_loop:
+ ($P10) = rx1214_cur."from"()
+ inc $P10
+ set rx1214_pos, $P10
+ ge rx1214_pos, rx1214_eos, rxscan1218_done
+ rxscan1218_scan:
+ set_addr $I10, rxscan1218_loop
+ rx1214_cur."!mark_push"(0, rx1214_pos, $I10)
+ rxscan1218_done:
+.annotate 'line', 525
# rx subcapture "sym"
- set_addr $I10, rxcap_1224_fail
- rx1219_cur."!mark_push"(0, rx1219_pos, $I10)
- # rx literal "="
- add $I11, rx1219_pos, 1
- gt $I11, rx1219_eos, rx1219_fail
- sub $I11, rx1219_pos, rx1219_off
- substr $S10, rx1219_tgt, $I11, 1
- ne $S10, "=", rx1219_fail
- add rx1219_pos, 1
- set_addr $I10, rxcap_1224_fail
- ($I12, $I11) = rx1219_cur."!mark_peek"($I10)
- rx1219_cur."!cursor_pos"($I11)
- ($P10) = rx1219_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1219_pos, "")
- rx1219_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1219_fail
+ rx1214_cur."!mark_push"(0, rx1214_pos, $I10)
+ # rx literal "lt"
+ add $I11, rx1214_pos, 2
+ gt $I11, rx1214_eos, rx1214_fail
+ sub $I11, rx1214_pos, rx1214_off
+ substr $S10, rx1214_tgt, $I11, 2
+ ne $S10, "lt", rx1214_fail
+ add rx1214_pos, 2
+ set_addr $I10, rxcap_1219_fail
+ ($I12, $I11) = rx1214_cur."!mark_peek"($I10)
+ rx1214_cur."!cursor_pos"($I11)
+ ($P10) = rx1214_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1214_pos, "")
+ rx1214_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1224_done
- rxcap_1224_fail:
- goto rx1219_fail
- rxcap_1224_done:
- # rx subrule "panic" subtype=method negate=
- rx1219_cur."!cursor_pos"(rx1219_pos)
- $P10 = rx1219_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
- unless $P10, rx1219_fail
- rx1219_pos = $P10."pos"()
-.annotate 'line', 528
+ goto rxcap_1219_done
+ rxcap_1219_fail:
+ goto rx1214_fail
+ rxcap_1219_done:
+ # rx subrule "O" subtype=capture negate=
+ rx1214_cur."!cursor_pos"(rx1214_pos)
+ $P10 = rx1214_cur."O"("%relational, :pirop<islt ISs>")
+ unless $P10, rx1214_fail
+ rx1214_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx1214_pos = $P10."pos"()
# rx pass
- rx1219_cur."!cursor_pass"(rx1219_pos, "infix:sym<=>")
- rx1219_cur."!cursor_debug"("PASS ", "infix:sym<=>", " at pos=", rx1219_pos)
- .return (rx1219_cur)
- rx1219_fail:
-.annotate 'line', 431
- (rx1219_rep, rx1219_pos, $I10, $P10) = rx1219_cur."!mark_fail"(0)
- lt rx1219_pos, -1, rx1219_done
- eq rx1219_pos, -1, rx1219_fail
+ rx1214_cur."!cursor_pass"(rx1214_pos, "infix:sym<lt>")
+ rx1214_cur."!cursor_debug"("PASS ", "infix:sym<lt>", " at pos=", rx1214_pos)
+ .return (rx1214_cur)
+ rx1214_fail:
+.annotate 'line', 446
+ (rx1214_rep, rx1214_pos, $I10, $P10) = rx1214_cur."!mark_fail"(0)
+ lt rx1214_pos, -1, rx1214_done
+ eq rx1214_pos, -1, rx1214_fail
jump $I10
- rx1219_done:
- rx1219_cur."!cursor_fail"()
- rx1219_cur."!cursor_debug"("FAIL ", "infix:sym<=>")
- .return (rx1219_cur)
+ rx1214_done:
+ rx1214_cur."!cursor_fail"()
+ rx1214_cur."!cursor_debug"("FAIL ", "infix:sym<lt>")
+ .return (rx1214_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<=>" :subid("312_1274022894.43745") :method
-.annotate 'line', 431
- $P1221 = self."!PREFIX__!subrule"("", "=")
- new $P1222, "ResizablePMCArray"
- push $P1222, $P1221
- .return ($P1222)
+.sub "!PREFIX__infix:sym<lt>" :subid("307_1275811487.95429") :method
+.annotate 'line', 446
+ $P1216 = self."!PREFIX__!subrule"("O", "lt")
+ new $P1217, "ResizablePMCArray"
+ push $P1217, $P1216
+ .return ($P1217)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<:=>" :subid("313_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1226_tgt
- .local int rx1226_pos
- .local int rx1226_off
- .local int rx1226_eos
- .local int rx1226_rep
- .local pmc rx1226_cur
- (rx1226_cur, rx1226_pos, rx1226_tgt) = self."!cursor_start"()
- rx1226_cur."!cursor_debug"("START ", "infix:sym<:=>")
- .lex unicode:"$\x{a2}", rx1226_cur
- .local pmc match
- .lex "$/", match
- length rx1226_eos, rx1226_tgt
- set rx1226_off, 0
- lt rx1226_pos, 2, rx1226_start
- sub rx1226_off, rx1226_pos, 1
- substr rx1226_tgt, rx1226_tgt, rx1226_off
- rx1226_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1230_done
- goto rxscan1230_scan
- rxscan1230_loop:
- ($P10) = rx1226_cur."from"()
- inc $P10
- set rx1226_pos, $P10
- ge rx1226_pos, rx1226_eos, rxscan1230_done
- rxscan1230_scan:
- set_addr $I10, rxscan1230_loop
- rx1226_cur."!mark_push"(0, rx1226_pos, $I10)
- rxscan1230_done:
-.annotate 'line', 531
+.sub "infix:sym<gt>" :subid("308_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1221_tgt
+ .local int rx1221_pos
+ .local int rx1221_off
+ .local int rx1221_eos
+ .local int rx1221_rep
+ .local pmc rx1221_cur
+ (rx1221_cur, rx1221_pos, rx1221_tgt) = self."!cursor_start"()
+ rx1221_cur."!cursor_debug"("START ", "infix:sym<gt>")
+ .lex unicode:"$\x{a2}", rx1221_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1221_eos, rx1221_tgt
+ gt rx1221_pos, rx1221_eos, rx1221_done
+ set rx1221_off, 0
+ lt rx1221_pos, 2, rx1221_start
+ sub rx1221_off, rx1221_pos, 1
+ substr rx1221_tgt, rx1221_tgt, rx1221_off
+ rx1221_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1225_done
+ goto rxscan1225_scan
+ rxscan1225_loop:
+ ($P10) = rx1221_cur."from"()
+ inc $P10
+ set rx1221_pos, $P10
+ ge rx1221_pos, rx1221_eos, rxscan1225_done
+ rxscan1225_scan:
+ set_addr $I10, rxscan1225_loop
+ rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
+ rxscan1225_done:
+.annotate 'line', 526
# rx subcapture "sym"
- set_addr $I10, rxcap_1231_fail
- rx1226_cur."!mark_push"(0, rx1226_pos, $I10)
- # rx literal ":="
- add $I11, rx1226_pos, 2
- gt $I11, rx1226_eos, rx1226_fail
- sub $I11, rx1226_pos, rx1226_off
- substr $S10, rx1226_tgt, $I11, 2
- ne $S10, ":=", rx1226_fail
- add rx1226_pos, 2
- set_addr $I10, rxcap_1231_fail
- ($I12, $I11) = rx1226_cur."!mark_peek"($I10)
- rx1226_cur."!cursor_pos"($I11)
- ($P10) = rx1226_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1226_pos, "")
- rx1226_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1226_fail
+ rx1221_cur."!mark_push"(0, rx1221_pos, $I10)
+ # rx literal "gt"
+ add $I11, rx1221_pos, 2
+ gt $I11, rx1221_eos, rx1221_fail
+ sub $I11, rx1221_pos, rx1221_off
+ substr $S10, rx1221_tgt, $I11, 2
+ ne $S10, "gt", rx1221_fail
+ add rx1221_pos, 2
+ set_addr $I10, rxcap_1226_fail
+ ($I12, $I11) = rx1221_cur."!mark_peek"($I10)
+ rx1221_cur."!cursor_pos"($I11)
+ ($P10) = rx1221_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1221_pos, "")
+ rx1221_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1231_done
- rxcap_1231_fail:
- goto rx1226_fail
- rxcap_1231_done:
+ goto rxcap_1226_done
+ rxcap_1226_fail:
+ goto rx1221_fail
+ rxcap_1226_done:
# rx subrule "O" subtype=capture negate=
- rx1226_cur."!cursor_pos"(rx1226_pos)
- $P10 = rx1226_cur."O"("%assignment, :pasttype<bind>")
- unless $P10, rx1226_fail
- rx1226_cur."!mark_push"(0, -1, 0, $P10)
+ rx1221_cur."!cursor_pos"(rx1221_pos)
+ $P10 = rx1221_cur."O"("%relational, :pirop<isgt ISs>")
+ unless $P10, rx1221_fail
+ rx1221_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1226_pos = $P10."pos"()
+ rx1221_pos = $P10."pos"()
# rx pass
- rx1226_cur."!cursor_pass"(rx1226_pos, "infix:sym<:=>")
- rx1226_cur."!cursor_debug"("PASS ", "infix:sym<:=>", " at pos=", rx1226_pos)
- .return (rx1226_cur)
- rx1226_fail:
-.annotate 'line', 431
- (rx1226_rep, rx1226_pos, $I10, $P10) = rx1226_cur."!mark_fail"(0)
- lt rx1226_pos, -1, rx1226_done
- eq rx1226_pos, -1, rx1226_fail
+ rx1221_cur."!cursor_pass"(rx1221_pos, "infix:sym<gt>")
+ rx1221_cur."!cursor_debug"("PASS ", "infix:sym<gt>", " at pos=", rx1221_pos)
+ .return (rx1221_cur)
+ rx1221_fail:
+.annotate 'line', 446
+ (rx1221_rep, rx1221_pos, $I10, $P10) = rx1221_cur."!mark_fail"(0)
+ lt rx1221_pos, -1, rx1221_done
+ eq rx1221_pos, -1, rx1221_fail
jump $I10
- rx1226_done:
- rx1226_cur."!cursor_fail"()
- rx1226_cur."!cursor_debug"("FAIL ", "infix:sym<:=>")
- .return (rx1226_cur)
+ rx1221_done:
+ rx1221_cur."!cursor_fail"()
+ rx1221_cur."!cursor_debug"("FAIL ", "infix:sym<gt>")
+ .return (rx1221_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<:=>" :subid("314_1274022894.43745") :method
-.annotate 'line', 431
- $P1228 = self."!PREFIX__!subrule"("O", ":=")
- new $P1229, "ResizablePMCArray"
- push $P1229, $P1228
- .return ($P1229)
+.sub "!PREFIX__infix:sym<gt>" :subid("309_1275811487.95429") :method
+.annotate 'line', 446
+ $P1223 = self."!PREFIX__!subrule"("O", "gt")
+ new $P1224, "ResizablePMCArray"
+ push $P1224, $P1223
+ .return ($P1224)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<::=>" :subid("315_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1233_tgt
- .local int rx1233_pos
- .local int rx1233_off
- .local int rx1233_eos
- .local int rx1233_rep
- .local pmc rx1233_cur
- (rx1233_cur, rx1233_pos, rx1233_tgt) = self."!cursor_start"()
- rx1233_cur."!cursor_debug"("START ", "infix:sym<::=>")
- .lex unicode:"$\x{a2}", rx1233_cur
- .local pmc match
- .lex "$/", match
- length rx1233_eos, rx1233_tgt
- set rx1233_off, 0
- lt rx1233_pos, 2, rx1233_start
- sub rx1233_off, rx1233_pos, 1
- substr rx1233_tgt, rx1233_tgt, rx1233_off
- rx1233_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1237_done
- goto rxscan1237_scan
- rxscan1237_loop:
- ($P10) = rx1233_cur."from"()
- inc $P10
- set rx1233_pos, $P10
- ge rx1233_pos, rx1233_eos, rxscan1237_done
- rxscan1237_scan:
- set_addr $I10, rxscan1237_loop
- rx1233_cur."!mark_push"(0, rx1233_pos, $I10)
- rxscan1237_done:
-.annotate 'line', 532
+.sub "infix:sym<=:=>" :subid("310_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1228_tgt
+ .local int rx1228_pos
+ .local int rx1228_off
+ .local int rx1228_eos
+ .local int rx1228_rep
+ .local pmc rx1228_cur
+ (rx1228_cur, rx1228_pos, rx1228_tgt) = self."!cursor_start"()
+ rx1228_cur."!cursor_debug"("START ", "infix:sym<=:=>")
+ .lex unicode:"$\x{a2}", rx1228_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1228_eos, rx1228_tgt
+ gt rx1228_pos, rx1228_eos, rx1228_done
+ set rx1228_off, 0
+ lt rx1228_pos, 2, rx1228_start
+ sub rx1228_off, rx1228_pos, 1
+ substr rx1228_tgt, rx1228_tgt, rx1228_off
+ rx1228_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1232_done
+ goto rxscan1232_scan
+ rxscan1232_loop:
+ ($P10) = rx1228_cur."from"()
+ inc $P10
+ set rx1228_pos, $P10
+ ge rx1228_pos, rx1228_eos, rxscan1232_done
+ rxscan1232_scan:
+ set_addr $I10, rxscan1232_loop
+ rx1228_cur."!mark_push"(0, rx1228_pos, $I10)
+ rxscan1232_done:
+.annotate 'line', 527
# rx subcapture "sym"
- set_addr $I10, rxcap_1238_fail
- rx1233_cur."!mark_push"(0, rx1233_pos, $I10)
- # rx literal "::="
- add $I11, rx1233_pos, 3
- gt $I11, rx1233_eos, rx1233_fail
- sub $I11, rx1233_pos, rx1233_off
- substr $S10, rx1233_tgt, $I11, 3
- ne $S10, "::=", rx1233_fail
- add rx1233_pos, 3
- set_addr $I10, rxcap_1238_fail
- ($I12, $I11) = rx1233_cur."!mark_peek"($I10)
- rx1233_cur."!cursor_pos"($I11)
- ($P10) = rx1233_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1233_pos, "")
- rx1233_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1233_fail
+ rx1228_cur."!mark_push"(0, rx1228_pos, $I10)
+ # rx literal "=:="
+ add $I11, rx1228_pos, 3
+ gt $I11, rx1228_eos, rx1228_fail
+ sub $I11, rx1228_pos, rx1228_off
+ substr $S10, rx1228_tgt, $I11, 3
+ ne $S10, "=:=", rx1228_fail
+ add rx1228_pos, 3
+ set_addr $I10, rxcap_1233_fail
+ ($I12, $I11) = rx1228_cur."!mark_peek"($I10)
+ rx1228_cur."!cursor_pos"($I11)
+ ($P10) = rx1228_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1228_pos, "")
+ rx1228_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1238_done
- rxcap_1238_fail:
- goto rx1233_fail
- rxcap_1238_done:
+ goto rxcap_1233_done
+ rxcap_1233_fail:
+ goto rx1228_fail
+ rxcap_1233_done:
# rx subrule "O" subtype=capture negate=
- rx1233_cur."!cursor_pos"(rx1233_pos)
- $P10 = rx1233_cur."O"("%assignment, :pasttype<bind>")
- unless $P10, rx1233_fail
- rx1233_cur."!mark_push"(0, -1, 0, $P10)
+ rx1228_cur."!cursor_pos"(rx1228_pos)
+ $P10 = rx1228_cur."O"("%relational, :pirop<issame>")
+ unless $P10, rx1228_fail
+ rx1228_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1233_pos = $P10."pos"()
+ rx1228_pos = $P10."pos"()
# rx pass
- rx1233_cur."!cursor_pass"(rx1233_pos, "infix:sym<::=>")
- rx1233_cur."!cursor_debug"("PASS ", "infix:sym<::=>", " at pos=", rx1233_pos)
- .return (rx1233_cur)
- rx1233_fail:
-.annotate 'line', 431
- (rx1233_rep, rx1233_pos, $I10, $P10) = rx1233_cur."!mark_fail"(0)
- lt rx1233_pos, -1, rx1233_done
- eq rx1233_pos, -1, rx1233_fail
+ rx1228_cur."!cursor_pass"(rx1228_pos, "infix:sym<=:=>")
+ rx1228_cur."!cursor_debug"("PASS ", "infix:sym<=:=>", " at pos=", rx1228_pos)
+ .return (rx1228_cur)
+ rx1228_fail:
+.annotate 'line', 446
+ (rx1228_rep, rx1228_pos, $I10, $P10) = rx1228_cur."!mark_fail"(0)
+ lt rx1228_pos, -1, rx1228_done
+ eq rx1228_pos, -1, rx1228_fail
jump $I10
- rx1233_done:
- rx1233_cur."!cursor_fail"()
- rx1233_cur."!cursor_debug"("FAIL ", "infix:sym<::=>")
- .return (rx1233_cur)
+ rx1228_done:
+ rx1228_cur."!cursor_fail"()
+ rx1228_cur."!cursor_debug"("FAIL ", "infix:sym<=:=>")
+ .return (rx1228_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<::=>" :subid("316_1274022894.43745") :method
-.annotate 'line', 431
- $P1235 = self."!PREFIX__!subrule"("O", "::=")
- new $P1236, "ResizablePMCArray"
- push $P1236, $P1235
- .return ($P1236)
+.sub "!PREFIX__infix:sym<=:=>" :subid("311_1275811487.95429") :method
+.annotate 'line', 446
+ $P1230 = self."!PREFIX__!subrule"("O", "=:=")
+ new $P1231, "ResizablePMCArray"
+ push $P1231, $P1230
+ .return ($P1231)
.end
.namespace ["NQP";"Grammar"]
-.sub "infix:sym<,>" :subid("317_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1240_tgt
- .local int rx1240_pos
- .local int rx1240_off
- .local int rx1240_eos
- .local int rx1240_rep
- .local pmc rx1240_cur
- (rx1240_cur, rx1240_pos, rx1240_tgt) = self."!cursor_start"()
- rx1240_cur."!cursor_debug"("START ", "infix:sym<,>")
- .lex unicode:"$\x{a2}", rx1240_cur
- .local pmc match
- .lex "$/", match
- length rx1240_eos, rx1240_tgt
- set rx1240_off, 0
- lt rx1240_pos, 2, rx1240_start
- sub rx1240_off, rx1240_pos, 1
- substr rx1240_tgt, rx1240_tgt, rx1240_off
- rx1240_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1244_done
- goto rxscan1244_scan
- rxscan1244_loop:
- ($P10) = rx1240_cur."from"()
- inc $P10
- set rx1240_pos, $P10
- ge rx1240_pos, rx1240_eos, rxscan1244_done
- rxscan1244_scan:
- set_addr $I10, rxscan1244_loop
- rx1240_cur."!mark_push"(0, rx1240_pos, $I10)
- rxscan1244_done:
-.annotate 'line', 534
+.sub "infix:sym<~~>" :subid("312_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1235_tgt
+ .local int rx1235_pos
+ .local int rx1235_off
+ .local int rx1235_eos
+ .local int rx1235_rep
+ .local pmc rx1235_cur
+ (rx1235_cur, rx1235_pos, rx1235_tgt) = self."!cursor_start"()
+ rx1235_cur."!cursor_debug"("START ", "infix:sym<~~>")
+ .lex unicode:"$\x{a2}", rx1235_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1235_eos, rx1235_tgt
+ gt rx1235_pos, rx1235_eos, rx1235_done
+ set rx1235_off, 0
+ lt rx1235_pos, 2, rx1235_start
+ sub rx1235_off, rx1235_pos, 1
+ substr rx1235_tgt, rx1235_tgt, rx1235_off
+ rx1235_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1239_done
+ goto rxscan1239_scan
+ rxscan1239_loop:
+ ($P10) = rx1235_cur."from"()
+ inc $P10
+ set rx1235_pos, $P10
+ ge rx1235_pos, rx1235_eos, rxscan1239_done
+ rxscan1239_scan:
+ set_addr $I10, rxscan1239_loop
+ rx1235_cur."!mark_push"(0, rx1235_pos, $I10)
+ rxscan1239_done:
+.annotate 'line', 528
# rx subcapture "sym"
- set_addr $I10, rxcap_1245_fail
- rx1240_cur."!mark_push"(0, rx1240_pos, $I10)
- # rx literal ","
- add $I11, rx1240_pos, 1
- gt $I11, rx1240_eos, rx1240_fail
- sub $I11, rx1240_pos, rx1240_off
- substr $S10, rx1240_tgt, $I11, 1
- ne $S10, ",", rx1240_fail
- add rx1240_pos, 1
- set_addr $I10, rxcap_1245_fail
- ($I12, $I11) = rx1240_cur."!mark_peek"($I10)
- rx1240_cur."!cursor_pos"($I11)
- ($P10) = rx1240_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1240_pos, "")
- rx1240_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1240_fail
+ rx1235_cur."!mark_push"(0, rx1235_pos, $I10)
+ # rx literal "~~"
+ add $I11, rx1235_pos, 2
+ gt $I11, rx1235_eos, rx1235_fail
+ sub $I11, rx1235_pos, rx1235_off
+ substr $S10, rx1235_tgt, $I11, 2
+ ne $S10, "~~", rx1235_fail
+ add rx1235_pos, 2
+ set_addr $I10, rxcap_1240_fail
+ ($I12, $I11) = rx1235_cur."!mark_peek"($I10)
+ rx1235_cur."!cursor_pos"($I11)
+ ($P10) = rx1235_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1235_pos, "")
+ rx1235_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1245_done
- rxcap_1245_fail:
- goto rx1240_fail
- rxcap_1245_done:
+ goto rxcap_1240_done
+ rxcap_1240_fail:
+ goto rx1235_fail
+ rxcap_1240_done:
# rx subrule "O" subtype=capture negate=
- rx1240_cur."!cursor_pos"(rx1240_pos)
- $P10 = rx1240_cur."O"("%comma, :pasttype<list>")
- unless $P10, rx1240_fail
- rx1240_cur."!mark_push"(0, -1, 0, $P10)
+ rx1235_cur."!cursor_pos"(rx1235_pos)
+ $P10 = rx1235_cur."O"("%relational, :reducecheck<smartmatch>")
+ unless $P10, rx1235_fail
+ rx1235_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1240_pos = $P10."pos"()
+ rx1235_pos = $P10."pos"()
# rx pass
- rx1240_cur."!cursor_pass"(rx1240_pos, "infix:sym<,>")
- rx1240_cur."!cursor_debug"("PASS ", "infix:sym<,>", " at pos=", rx1240_pos)
- .return (rx1240_cur)
- rx1240_fail:
-.annotate 'line', 431
- (rx1240_rep, rx1240_pos, $I10, $P10) = rx1240_cur."!mark_fail"(0)
- lt rx1240_pos, -1, rx1240_done
- eq rx1240_pos, -1, rx1240_fail
+ rx1235_cur."!cursor_pass"(rx1235_pos, "infix:sym<~~>")
+ rx1235_cur."!cursor_debug"("PASS ", "infix:sym<~~>", " at pos=", rx1235_pos)
+ .return (rx1235_cur)
+ rx1235_fail:
+.annotate 'line', 446
+ (rx1235_rep, rx1235_pos, $I10, $P10) = rx1235_cur."!mark_fail"(0)
+ lt rx1235_pos, -1, rx1235_done
+ eq rx1235_pos, -1, rx1235_fail
jump $I10
- rx1240_done:
- rx1240_cur."!cursor_fail"()
- rx1240_cur."!cursor_debug"("FAIL ", "infix:sym<,>")
- .return (rx1240_cur)
+ rx1235_done:
+ rx1235_cur."!cursor_fail"()
+ rx1235_cur."!cursor_debug"("FAIL ", "infix:sym<~~>")
+ .return (rx1235_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__infix:sym<,>" :subid("318_1274022894.43745") :method
-.annotate 'line', 431
- $P1242 = self."!PREFIX__!subrule"("O", ",")
- new $P1243, "ResizablePMCArray"
- push $P1243, $P1242
- .return ($P1243)
+.sub "!PREFIX__infix:sym<~~>" :subid("313_1275811487.95429") :method
+.annotate 'line', 446
+ $P1237 = self."!PREFIX__!subrule"("O", "~~")
+ new $P1238, "ResizablePMCArray"
+ push $P1238, $P1237
+ .return ($P1238)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<return>" :subid("319_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1247_tgt
- .local int rx1247_pos
- .local int rx1247_off
- .local int rx1247_eos
- .local int rx1247_rep
- .local pmc rx1247_cur
- (rx1247_cur, rx1247_pos, rx1247_tgt) = self."!cursor_start"()
- rx1247_cur."!cursor_debug"("START ", "prefix:sym<return>")
- .lex unicode:"$\x{a2}", rx1247_cur
- .local pmc match
- .lex "$/", match
- length rx1247_eos, rx1247_tgt
- set rx1247_off, 0
- lt rx1247_pos, 2, rx1247_start
- sub rx1247_off, rx1247_pos, 1
- substr rx1247_tgt, rx1247_tgt, rx1247_off
- rx1247_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1250_done
- goto rxscan1250_scan
- rxscan1250_loop:
- ($P10) = rx1247_cur."from"()
- inc $P10
- set rx1247_pos, $P10
- ge rx1247_pos, rx1247_eos, rxscan1250_done
- rxscan1250_scan:
- set_addr $I10, rxscan1250_loop
- rx1247_cur."!mark_push"(0, rx1247_pos, $I10)
- rxscan1250_done:
-.annotate 'line', 536
+.sub "infix:sym<&&>" :subid("314_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1242_tgt
+ .local int rx1242_pos
+ .local int rx1242_off
+ .local int rx1242_eos
+ .local int rx1242_rep
+ .local pmc rx1242_cur
+ (rx1242_cur, rx1242_pos, rx1242_tgt) = self."!cursor_start"()
+ rx1242_cur."!cursor_debug"("START ", "infix:sym<&&>")
+ .lex unicode:"$\x{a2}", rx1242_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1242_eos, rx1242_tgt
+ gt rx1242_pos, rx1242_eos, rx1242_done
+ set rx1242_off, 0
+ lt rx1242_pos, 2, rx1242_start
+ sub rx1242_off, rx1242_pos, 1
+ substr rx1242_tgt, rx1242_tgt, rx1242_off
+ rx1242_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1246_done
+ goto rxscan1246_scan
+ rxscan1246_loop:
+ ($P10) = rx1242_cur."from"()
+ inc $P10
+ set rx1242_pos, $P10
+ ge rx1242_pos, rx1242_eos, rxscan1246_done
+ rxscan1246_scan:
+ set_addr $I10, rxscan1246_loop
+ rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
+ rxscan1246_done:
+.annotate 'line', 530
# rx subcapture "sym"
- set_addr $I10, rxcap_1251_fail
- rx1247_cur."!mark_push"(0, rx1247_pos, $I10)
- # rx literal "return"
- add $I11, rx1247_pos, 6
- gt $I11, rx1247_eos, rx1247_fail
- sub $I11, rx1247_pos, rx1247_off
- substr $S10, rx1247_tgt, $I11, 6
- ne $S10, "return", rx1247_fail
- add rx1247_pos, 6
- set_addr $I10, rxcap_1251_fail
- ($I12, $I11) = rx1247_cur."!mark_peek"($I10)
- rx1247_cur."!cursor_pos"($I11)
- ($P10) = rx1247_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1247_pos, "")
- rx1247_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1247_fail
+ rx1242_cur."!mark_push"(0, rx1242_pos, $I10)
+ # rx literal "&&"
+ add $I11, rx1242_pos, 2
+ gt $I11, rx1242_eos, rx1242_fail
+ sub $I11, rx1242_pos, rx1242_off
+ substr $S10, rx1242_tgt, $I11, 2
+ ne $S10, "&&", rx1242_fail
+ add rx1242_pos, 2
+ set_addr $I10, rxcap_1247_fail
+ ($I12, $I11) = rx1242_cur."!mark_peek"($I10)
+ rx1242_cur."!cursor_pos"($I11)
+ ($P10) = rx1242_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1242_pos, "")
+ rx1242_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1251_done
- rxcap_1251_fail:
- goto rx1247_fail
- rxcap_1251_done:
- # rx charclass s
- ge rx1247_pos, rx1247_eos, rx1247_fail
- sub $I10, rx1247_pos, rx1247_off
- is_cclass $I11, 32, rx1247_tgt, $I10
- unless $I11, rx1247_fail
- inc rx1247_pos
+ goto rxcap_1247_done
+ rxcap_1247_fail:
+ goto rx1242_fail
+ rxcap_1247_done:
# rx subrule "O" subtype=capture negate=
- rx1247_cur."!cursor_pos"(rx1247_pos)
- $P10 = rx1247_cur."O"("%list_prefix, :pasttype<return>")
- unless $P10, rx1247_fail
- rx1247_cur."!mark_push"(0, -1, 0, $P10)
+ rx1242_cur."!cursor_pos"(rx1242_pos)
+ $P10 = rx1242_cur."O"("%tight_and, :pasttype<if>")
+ unless $P10, rx1242_fail
+ rx1242_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1247_pos = $P10."pos"()
+ rx1242_pos = $P10."pos"()
# rx pass
- rx1247_cur."!cursor_pass"(rx1247_pos, "prefix:sym<return>")
- rx1247_cur."!cursor_debug"("PASS ", "prefix:sym<return>", " at pos=", rx1247_pos)
- .return (rx1247_cur)
- rx1247_fail:
-.annotate 'line', 431
- (rx1247_rep, rx1247_pos, $I10, $P10) = rx1247_cur."!mark_fail"(0)
- lt rx1247_pos, -1, rx1247_done
- eq rx1247_pos, -1, rx1247_fail
+ rx1242_cur."!cursor_pass"(rx1242_pos, "infix:sym<&&>")
+ rx1242_cur."!cursor_debug"("PASS ", "infix:sym<&&>", " at pos=", rx1242_pos)
+ .return (rx1242_cur)
+ rx1242_fail:
+.annotate 'line', 446
+ (rx1242_rep, rx1242_pos, $I10, $P10) = rx1242_cur."!mark_fail"(0)
+ lt rx1242_pos, -1, rx1242_done
+ eq rx1242_pos, -1, rx1242_fail
jump $I10
- rx1247_done:
- rx1247_cur."!cursor_fail"()
- rx1247_cur."!cursor_debug"("FAIL ", "prefix:sym<return>")
- .return (rx1247_cur)
+ rx1242_done:
+ rx1242_cur."!cursor_fail"()
+ rx1242_cur."!cursor_debug"("FAIL ", "infix:sym<&&>")
+ .return (rx1242_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<return>" :subid("320_1274022894.43745") :method
-.annotate 'line', 431
- new $P1249, "ResizablePMCArray"
- push $P1249, "return"
- .return ($P1249)
+.sub "!PREFIX__infix:sym<&&>" :subid("315_1275811487.95429") :method
+.annotate 'line', 446
+ $P1244 = self."!PREFIX__!subrule"("O", "&&")
+ new $P1245, "ResizablePMCArray"
+ push $P1245, $P1244
+ .return ($P1245)
.end
.namespace ["NQP";"Grammar"]
-.sub "prefix:sym<make>" :subid("321_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1253_tgt
- .local int rx1253_pos
- .local int rx1253_off
- .local int rx1253_eos
- .local int rx1253_rep
- .local pmc rx1253_cur
- (rx1253_cur, rx1253_pos, rx1253_tgt) = self."!cursor_start"()
- rx1253_cur."!cursor_debug"("START ", "prefix:sym<make>")
- .lex unicode:"$\x{a2}", rx1253_cur
- .local pmc match
- .lex "$/", match
- length rx1253_eos, rx1253_tgt
- set rx1253_off, 0
- lt rx1253_pos, 2, rx1253_start
- sub rx1253_off, rx1253_pos, 1
- substr rx1253_tgt, rx1253_tgt, rx1253_off
- rx1253_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1256_done
- goto rxscan1256_scan
- rxscan1256_loop:
- ($P10) = rx1253_cur."from"()
- inc $P10
- set rx1253_pos, $P10
- ge rx1253_pos, rx1253_eos, rxscan1256_done
- rxscan1256_scan:
- set_addr $I10, rxscan1256_loop
- rx1253_cur."!mark_push"(0, rx1253_pos, $I10)
- rxscan1256_done:
-.annotate 'line', 537
+.sub "infix:sym<||>" :subid("316_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1249_tgt
+ .local int rx1249_pos
+ .local int rx1249_off
+ .local int rx1249_eos
+ .local int rx1249_rep
+ .local pmc rx1249_cur
+ (rx1249_cur, rx1249_pos, rx1249_tgt) = self."!cursor_start"()
+ rx1249_cur."!cursor_debug"("START ", "infix:sym<||>")
+ .lex unicode:"$\x{a2}", rx1249_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1249_eos, rx1249_tgt
+ gt rx1249_pos, rx1249_eos, rx1249_done
+ set rx1249_off, 0
+ lt rx1249_pos, 2, rx1249_start
+ sub rx1249_off, rx1249_pos, 1
+ substr rx1249_tgt, rx1249_tgt, rx1249_off
+ rx1249_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1253_done
+ goto rxscan1253_scan
+ rxscan1253_loop:
+ ($P10) = rx1249_cur."from"()
+ inc $P10
+ set rx1249_pos, $P10
+ ge rx1249_pos, rx1249_eos, rxscan1253_done
+ rxscan1253_scan:
+ set_addr $I10, rxscan1253_loop
+ rx1249_cur."!mark_push"(0, rx1249_pos, $I10)
+ rxscan1253_done:
+.annotate 'line', 532
# rx subcapture "sym"
- set_addr $I10, rxcap_1257_fail
- rx1253_cur."!mark_push"(0, rx1253_pos, $I10)
- # rx literal "make"
- add $I11, rx1253_pos, 4
- gt $I11, rx1253_eos, rx1253_fail
- sub $I11, rx1253_pos, rx1253_off
- substr $S10, rx1253_tgt, $I11, 4
- ne $S10, "make", rx1253_fail
- add rx1253_pos, 4
- set_addr $I10, rxcap_1257_fail
- ($I12, $I11) = rx1253_cur."!mark_peek"($I10)
- rx1253_cur."!cursor_pos"($I11)
- ($P10) = rx1253_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1253_pos, "")
- rx1253_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1254_fail
+ rx1249_cur."!mark_push"(0, rx1249_pos, $I10)
+ # rx literal "||"
+ add $I11, rx1249_pos, 2
+ gt $I11, rx1249_eos, rx1249_fail
+ sub $I11, rx1249_pos, rx1249_off
+ substr $S10, rx1249_tgt, $I11, 2
+ ne $S10, "||", rx1249_fail
+ add rx1249_pos, 2
+ set_addr $I10, rxcap_1254_fail
+ ($I12, $I11) = rx1249_cur."!mark_peek"($I10)
+ rx1249_cur."!cursor_pos"($I11)
+ ($P10) = rx1249_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1249_pos, "")
+ rx1249_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1257_done
- rxcap_1257_fail:
- goto rx1253_fail
- rxcap_1257_done:
- # rx charclass s
- ge rx1253_pos, rx1253_eos, rx1253_fail
- sub $I10, rx1253_pos, rx1253_off
- is_cclass $I11, 32, rx1253_tgt, $I10
- unless $I11, rx1253_fail
- inc rx1253_pos
+ goto rxcap_1254_done
+ rxcap_1254_fail:
+ goto rx1249_fail
+ rxcap_1254_done:
# rx subrule "O" subtype=capture negate=
- rx1253_cur."!cursor_pos"(rx1253_pos)
- $P10 = rx1253_cur."O"("%list_prefix")
- unless $P10, rx1253_fail
- rx1253_cur."!mark_push"(0, -1, 0, $P10)
+ rx1249_cur."!cursor_pos"(rx1249_pos)
+ $P10 = rx1249_cur."O"("%tight_or, :pasttype<unless>")
+ unless $P10, rx1249_fail
+ rx1249_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("O")
- rx1253_pos = $P10."pos"()
+ rx1249_pos = $P10."pos"()
# rx pass
- rx1253_cur."!cursor_pass"(rx1253_pos, "prefix:sym<make>")
- rx1253_cur."!cursor_debug"("PASS ", "prefix:sym<make>", " at pos=", rx1253_pos)
- .return (rx1253_cur)
- rx1253_fail:
-.annotate 'line', 431
- (rx1253_rep, rx1253_pos, $I10, $P10) = rx1253_cur."!mark_fail"(0)
- lt rx1253_pos, -1, rx1253_done
- eq rx1253_pos, -1, rx1253_fail
+ rx1249_cur."!cursor_pass"(rx1249_pos, "infix:sym<||>")
+ rx1249_cur."!cursor_debug"("PASS ", "infix:sym<||>", " at pos=", rx1249_pos)
+ .return (rx1249_cur)
+ rx1249_fail:
+.annotate 'line', 446
+ (rx1249_rep, rx1249_pos, $I10, $P10) = rx1249_cur."!mark_fail"(0)
+ lt rx1249_pos, -1, rx1249_done
+ eq rx1249_pos, -1, rx1249_fail
jump $I10
- rx1253_done:
- rx1253_cur."!cursor_fail"()
- rx1253_cur."!cursor_debug"("FAIL ", "prefix:sym<make>")
- .return (rx1253_cur)
+ rx1249_done:
+ rx1249_cur."!cursor_fail"()
+ rx1249_cur."!cursor_debug"("FAIL ", "infix:sym<||>")
+ .return (rx1249_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__prefix:sym<make>" :subid("322_1274022894.43745") :method
-.annotate 'line', 431
- new $P1255, "ResizablePMCArray"
- push $P1255, "make"
- .return ($P1255)
+.sub "!PREFIX__infix:sym<||>" :subid("317_1275811487.95429") :method
+.annotate 'line', 446
+ $P1251 = self."!PREFIX__!subrule"("O", "||")
+ new $P1252, "ResizablePMCArray"
+ push $P1252, $P1251
+ .return ($P1252)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<last>" :subid("323_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1259_tgt
- .local int rx1259_pos
- .local int rx1259_off
- .local int rx1259_eos
- .local int rx1259_rep
- .local pmc rx1259_cur
- (rx1259_cur, rx1259_pos, rx1259_tgt) = self."!cursor_start"()
- rx1259_cur."!cursor_debug"("START ", "term:sym<last>")
- .lex unicode:"$\x{a2}", rx1259_cur
- .local pmc match
- .lex "$/", match
- length rx1259_eos, rx1259_tgt
- set rx1259_off, 0
- lt rx1259_pos, 2, rx1259_start
- sub rx1259_off, rx1259_pos, 1
- substr rx1259_tgt, rx1259_tgt, rx1259_off
- rx1259_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1262_done
- goto rxscan1262_scan
- rxscan1262_loop:
- ($P10) = rx1259_cur."from"()
- inc $P10
- set rx1259_pos, $P10
- ge rx1259_pos, rx1259_eos, rxscan1262_done
- rxscan1262_scan:
- set_addr $I10, rxscan1262_loop
- rx1259_cur."!mark_push"(0, rx1259_pos, $I10)
- rxscan1262_done:
-.annotate 'line', 538
+.sub "infix:sym<//>" :subid("318_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1256_tgt
+ .local int rx1256_pos
+ .local int rx1256_off
+ .local int rx1256_eos
+ .local int rx1256_rep
+ .local pmc rx1256_cur
+ (rx1256_cur, rx1256_pos, rx1256_tgt) = self."!cursor_start"()
+ rx1256_cur."!cursor_debug"("START ", "infix:sym<//>")
+ .lex unicode:"$\x{a2}", rx1256_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1256_eos, rx1256_tgt
+ gt rx1256_pos, rx1256_eos, rx1256_done
+ set rx1256_off, 0
+ lt rx1256_pos, 2, rx1256_start
+ sub rx1256_off, rx1256_pos, 1
+ substr rx1256_tgt, rx1256_tgt, rx1256_off
+ rx1256_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1260_done
+ goto rxscan1260_scan
+ rxscan1260_loop:
+ ($P10) = rx1256_cur."from"()
+ inc $P10
+ set rx1256_pos, $P10
+ ge rx1256_pos, rx1256_eos, rxscan1260_done
+ rxscan1260_scan:
+ set_addr $I10, rxscan1260_loop
+ rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
+ rxscan1260_done:
+.annotate 'line', 533
# rx subcapture "sym"
- set_addr $I10, rxcap_1263_fail
- rx1259_cur."!mark_push"(0, rx1259_pos, $I10)
- # rx literal "last"
- add $I11, rx1259_pos, 4
- gt $I11, rx1259_eos, rx1259_fail
- sub $I11, rx1259_pos, rx1259_off
- substr $S10, rx1259_tgt, $I11, 4
- ne $S10, "last", rx1259_fail
- add rx1259_pos, 4
- set_addr $I10, rxcap_1263_fail
- ($I12, $I11) = rx1259_cur."!mark_peek"($I10)
- rx1259_cur."!cursor_pos"($I11)
- ($P10) = rx1259_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1259_pos, "")
- rx1259_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1261_fail
+ rx1256_cur."!mark_push"(0, rx1256_pos, $I10)
+ # rx literal "//"
+ add $I11, rx1256_pos, 2
+ gt $I11, rx1256_eos, rx1256_fail
+ sub $I11, rx1256_pos, rx1256_off
+ substr $S10, rx1256_tgt, $I11, 2
+ ne $S10, "//", rx1256_fail
+ add rx1256_pos, 2
+ set_addr $I10, rxcap_1261_fail
+ ($I12, $I11) = rx1256_cur."!mark_peek"($I10)
+ rx1256_cur."!cursor_pos"($I11)
+ ($P10) = rx1256_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1256_pos, "")
+ rx1256_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1263_done
- rxcap_1263_fail:
- goto rx1259_fail
- rxcap_1263_done:
- # rx pass
- rx1259_cur."!cursor_pass"(rx1259_pos, "term:sym<last>")
- rx1259_cur."!cursor_debug"("PASS ", "term:sym<last>", " at pos=", rx1259_pos)
- .return (rx1259_cur)
- rx1259_fail:
-.annotate 'line', 431
- (rx1259_rep, rx1259_pos, $I10, $P10) = rx1259_cur."!mark_fail"(0)
- lt rx1259_pos, -1, rx1259_done
- eq rx1259_pos, -1, rx1259_fail
+ goto rxcap_1261_done
+ rxcap_1261_fail:
+ goto rx1256_fail
+ rxcap_1261_done:
+ # rx subrule "O" subtype=capture negate=
+ rx1256_cur."!cursor_pos"(rx1256_pos)
+ $P10 = rx1256_cur."O"("%tight_or, :pasttype<def_or>")
+ unless $P10, rx1256_fail
+ rx1256_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx1256_pos = $P10."pos"()
+ # rx pass
+ rx1256_cur."!cursor_pass"(rx1256_pos, "infix:sym<//>")
+ rx1256_cur."!cursor_debug"("PASS ", "infix:sym<//>", " at pos=", rx1256_pos)
+ .return (rx1256_cur)
+ rx1256_fail:
+.annotate 'line', 446
+ (rx1256_rep, rx1256_pos, $I10, $P10) = rx1256_cur."!mark_fail"(0)
+ lt rx1256_pos, -1, rx1256_done
+ eq rx1256_pos, -1, rx1256_fail
jump $I10
- rx1259_done:
- rx1259_cur."!cursor_fail"()
- rx1259_cur."!cursor_debug"("FAIL ", "term:sym<last>")
- .return (rx1259_cur)
+ rx1256_done:
+ rx1256_cur."!cursor_fail"()
+ rx1256_cur."!cursor_debug"("FAIL ", "infix:sym<//>")
+ .return (rx1256_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<last>" :subid("324_1274022894.43745") :method
-.annotate 'line', 431
- new $P1261, "ResizablePMCArray"
- push $P1261, "last"
- .return ($P1261)
+.sub "!PREFIX__infix:sym<//>" :subid("319_1275811487.95429") :method
+.annotate 'line', 446
+ $P1258 = self."!PREFIX__!subrule"("O", "//")
+ new $P1259, "ResizablePMCArray"
+ push $P1259, $P1258
+ .return ($P1259)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<next>" :subid("325_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1265_tgt
- .local int rx1265_pos
- .local int rx1265_off
- .local int rx1265_eos
- .local int rx1265_rep
- .local pmc rx1265_cur
- (rx1265_cur, rx1265_pos, rx1265_tgt) = self."!cursor_start"()
- rx1265_cur."!cursor_debug"("START ", "term:sym<next>")
- .lex unicode:"$\x{a2}", rx1265_cur
- .local pmc match
- .lex "$/", match
- length rx1265_eos, rx1265_tgt
- set rx1265_off, 0
- lt rx1265_pos, 2, rx1265_start
- sub rx1265_off, rx1265_pos, 1
- substr rx1265_tgt, rx1265_tgt, rx1265_off
- rx1265_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1268_done
- goto rxscan1268_scan
- rxscan1268_loop:
- ($P10) = rx1265_cur."from"()
- inc $P10
- set rx1265_pos, $P10
- ge rx1265_pos, rx1265_eos, rxscan1268_done
- rxscan1268_scan:
- set_addr $I10, rxscan1268_loop
- rx1265_cur."!mark_push"(0, rx1265_pos, $I10)
- rxscan1268_done:
+.sub "infix:sym<?? !!>" :subid("320_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1263_tgt
+ .local int rx1263_pos
+ .local int rx1263_off
+ .local int rx1263_eos
+ .local int rx1263_rep
+ .local pmc rx1263_cur
+ (rx1263_cur, rx1263_pos, rx1263_tgt) = self."!cursor_start"()
+ rx1263_cur."!cursor_debug"("START ", "infix:sym<?? !!>")
+ .lex unicode:"$\x{a2}", rx1263_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1263_eos, rx1263_tgt
+ gt rx1263_pos, rx1263_eos, rx1263_done
+ set rx1263_off, 0
+ lt rx1263_pos, 2, rx1263_start
+ sub rx1263_off, rx1263_pos, 1
+ substr rx1263_tgt, rx1263_tgt, rx1263_off
+ rx1263_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1267_done
+ goto rxscan1267_scan
+ rxscan1267_loop:
+ ($P10) = rx1263_cur."from"()
+ inc $P10
+ set rx1263_pos, $P10
+ ge rx1263_pos, rx1263_eos, rxscan1267_done
+ rxscan1267_scan:
+ set_addr $I10, rxscan1267_loop
+ rx1263_cur."!mark_push"(0, rx1263_pos, $I10)
+ rxscan1267_done:
+.annotate 'line', 536
+ # rx literal "??"
+ add $I11, rx1263_pos, 2
+ gt $I11, rx1263_eos, rx1263_fail
+ sub $I11, rx1263_pos, rx1263_off
+ substr $S10, rx1263_tgt, $I11, 2
+ ne $S10, "??", rx1263_fail
+ add rx1263_pos, 2
+.annotate 'line', 537
+ # rx subrule "ws" subtype=method negate=
+ rx1263_cur."!cursor_pos"(rx1263_pos)
+ $P10 = rx1263_cur."ws"()
+ unless $P10, rx1263_fail
+ rx1263_pos = $P10."pos"()
+.annotate 'line', 538
+ # rx subrule "EXPR" subtype=capture negate=
+ rx1263_cur."!cursor_pos"(rx1263_pos)
+ $P10 = rx1263_cur."EXPR"("i=")
+ unless $P10, rx1263_fail
+ rx1263_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("EXPR")
+ rx1263_pos = $P10."pos"()
.annotate 'line', 539
- # rx subcapture "sym"
- set_addr $I10, rxcap_1269_fail
- rx1265_cur."!mark_push"(0, rx1265_pos, $I10)
- # rx literal "next"
- add $I11, rx1265_pos, 4
- gt $I11, rx1265_eos, rx1265_fail
- sub $I11, rx1265_pos, rx1265_off
- substr $S10, rx1265_tgt, $I11, 4
- ne $S10, "next", rx1265_fail
- add rx1265_pos, 4
- set_addr $I10, rxcap_1269_fail
- ($I12, $I11) = rx1265_cur."!mark_peek"($I10)
- rx1265_cur."!cursor_pos"($I11)
- ($P10) = rx1265_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1265_pos, "")
- rx1265_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_1269_done
- rxcap_1269_fail:
- goto rx1265_fail
- rxcap_1269_done:
- # rx pass
- rx1265_cur."!cursor_pass"(rx1265_pos, "term:sym<next>")
- rx1265_cur."!cursor_debug"("PASS ", "term:sym<next>", " at pos=", rx1265_pos)
- .return (rx1265_cur)
- rx1265_fail:
-.annotate 'line', 431
- (rx1265_rep, rx1265_pos, $I10, $P10) = rx1265_cur."!mark_fail"(0)
- lt rx1265_pos, -1, rx1265_done
- eq rx1265_pos, -1, rx1265_fail
+ # rx literal "!!"
+ add $I11, rx1263_pos, 2
+ gt $I11, rx1263_eos, rx1263_fail
+ sub $I11, rx1263_pos, rx1263_off
+ substr $S10, rx1263_tgt, $I11, 2
+ ne $S10, "!!", rx1263_fail
+ add rx1263_pos, 2
+.annotate 'line', 540
+ # rx subrule "O" subtype=capture negate=
+ rx1263_cur."!cursor_pos"(rx1263_pos)
+ $P10 = rx1263_cur."O"("%conditional, :reducecheck<ternary>, :pasttype<if>")
+ unless $P10, rx1263_fail
+ rx1263_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx1263_pos = $P10."pos"()
+.annotate 'line', 535
+ # rx pass
+ rx1263_cur."!cursor_pass"(rx1263_pos, "infix:sym<?? !!>")
+ rx1263_cur."!cursor_debug"("PASS ", "infix:sym<?? !!>", " at pos=", rx1263_pos)
+ .return (rx1263_cur)
+ rx1263_fail:
+.annotate 'line', 446
+ (rx1263_rep, rx1263_pos, $I10, $P10) = rx1263_cur."!mark_fail"(0)
+ lt rx1263_pos, -1, rx1263_done
+ eq rx1263_pos, -1, rx1263_fail
jump $I10
- rx1265_done:
- rx1265_cur."!cursor_fail"()
- rx1265_cur."!cursor_debug"("FAIL ", "term:sym<next>")
- .return (rx1265_cur)
+ rx1263_done:
+ rx1263_cur."!cursor_fail"()
+ rx1263_cur."!cursor_debug"("FAIL ", "infix:sym<?? !!>")
+ .return (rx1263_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<next>" :subid("326_1274022894.43745") :method
-.annotate 'line', 431
- new $P1267, "ResizablePMCArray"
- push $P1267, "next"
- .return ($P1267)
+.sub "!PREFIX__infix:sym<?? !!>" :subid("321_1275811487.95429") :method
+.annotate 'line', 446
+ $P1265 = self."!PREFIX__!subrule"("ws", "??")
+ new $P1266, "ResizablePMCArray"
+ push $P1266, $P1265
+ .return ($P1266)
.end
.namespace ["NQP";"Grammar"]
-.sub "term:sym<redo>" :subid("327_1274022894.43745") :method :outer("11_1274022894.43745")
-.annotate 'line', 431
- .local string rx1271_tgt
- .local int rx1271_pos
- .local int rx1271_off
- .local int rx1271_eos
- .local int rx1271_rep
- .local pmc rx1271_cur
- (rx1271_cur, rx1271_pos, rx1271_tgt) = self."!cursor_start"()
- rx1271_cur."!cursor_debug"("START ", "term:sym<redo>")
- .lex unicode:"$\x{a2}", rx1271_cur
- .local pmc match
- .lex "$/", match
- length rx1271_eos, rx1271_tgt
- set rx1271_off, 0
- lt rx1271_pos, 2, rx1271_start
- sub rx1271_off, rx1271_pos, 1
- substr rx1271_tgt, rx1271_tgt, rx1271_off
- rx1271_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1274_done
- goto rxscan1274_scan
- rxscan1274_loop:
- ($P10) = rx1271_cur."from"()
- inc $P10
- set rx1271_pos, $P10
- ge rx1271_pos, rx1271_eos, rxscan1274_done
- rxscan1274_scan:
- set_addr $I10, rxscan1274_loop
- rx1271_cur."!mark_push"(0, rx1271_pos, $I10)
- rxscan1274_done:
-.annotate 'line', 540
+.sub "infix:sym<=>" :subid("322_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1269_tgt
+ .local int rx1269_pos
+ .local int rx1269_off
+ .local int rx1269_eos
+ .local int rx1269_rep
+ .local pmc rx1269_cur
+ (rx1269_cur, rx1269_pos, rx1269_tgt) = self."!cursor_start"()
+ rx1269_cur."!cursor_debug"("START ", "infix:sym<=>")
+ .lex unicode:"$\x{a2}", rx1269_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1269_eos, rx1269_tgt
+ gt rx1269_pos, rx1269_eos, rx1269_done
+ set rx1269_off, 0
+ lt rx1269_pos, 2, rx1269_start
+ sub rx1269_off, rx1269_pos, 1
+ substr rx1269_tgt, rx1269_tgt, rx1269_off
+ rx1269_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1273_done
+ goto rxscan1273_scan
+ rxscan1273_loop:
+ ($P10) = rx1269_cur."from"()
+ inc $P10
+ set rx1269_pos, $P10
+ ge rx1269_pos, rx1269_eos, rxscan1273_done
+ rxscan1273_scan:
+ set_addr $I10, rxscan1273_loop
+ rx1269_cur."!mark_push"(0, rx1269_pos, $I10)
+ rxscan1273_done:
+.annotate 'line', 544
# rx subcapture "sym"
- set_addr $I10, rxcap_1275_fail
- rx1271_cur."!mark_push"(0, rx1271_pos, $I10)
- # rx literal "redo"
- add $I11, rx1271_pos, 4
- gt $I11, rx1271_eos, rx1271_fail
- sub $I11, rx1271_pos, rx1271_off
- substr $S10, rx1271_tgt, $I11, 4
- ne $S10, "redo", rx1271_fail
- add rx1271_pos, 4
- set_addr $I10, rxcap_1275_fail
- ($I12, $I11) = rx1271_cur."!mark_peek"($I10)
- rx1271_cur."!cursor_pos"($I11)
- ($P10) = rx1271_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1271_pos, "")
- rx1271_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_1274_fail
+ rx1269_cur."!mark_push"(0, rx1269_pos, $I10)
+ # rx literal "="
+ add $I11, rx1269_pos, 1
+ gt $I11, rx1269_eos, rx1269_fail
+ sub $I11, rx1269_pos, rx1269_off
+ substr $S10, rx1269_tgt, $I11, 1
+ ne $S10, "=", rx1269_fail
+ add rx1269_pos, 1
+ set_addr $I10, rxcap_1274_fail
+ ($I12, $I11) = rx1269_cur."!mark_peek"($I10)
+ rx1269_cur."!cursor_pos"($I11)
+ ($P10) = rx1269_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1269_pos, "")
+ rx1269_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_1275_done
- rxcap_1275_fail:
- goto rx1271_fail
- rxcap_1275_done:
- # rx pass
- rx1271_cur."!cursor_pass"(rx1271_pos, "term:sym<redo>")
- rx1271_cur."!cursor_debug"("PASS ", "term:sym<redo>", " at pos=", rx1271_pos)
- .return (rx1271_cur)
- rx1271_fail:
-.annotate 'line', 431
- (rx1271_rep, rx1271_pos, $I10, $P10) = rx1271_cur."!mark_fail"(0)
- lt rx1271_pos, -1, rx1271_done
- eq rx1271_pos, -1, rx1271_fail
+ goto rxcap_1274_done
+ rxcap_1274_fail:
+ goto rx1269_fail
+ rxcap_1274_done:
+ # rx subrule "panic" subtype=method negate=
+ rx1269_cur."!cursor_pos"(rx1269_pos)
+ $P10 = rx1269_cur."panic"("Assignment (\"=\") not supported in NQP, use \":=\" instead")
+ unless $P10, rx1269_fail
+ rx1269_pos = $P10."pos"()
+.annotate 'line', 543
+ # rx pass
+ rx1269_cur."!cursor_pass"(rx1269_pos, "infix:sym<=>")
+ rx1269_cur."!cursor_debug"("PASS ", "infix:sym<=>", " at pos=", rx1269_pos)
+ .return (rx1269_cur)
+ rx1269_fail:
+.annotate 'line', 446
+ (rx1269_rep, rx1269_pos, $I10, $P10) = rx1269_cur."!mark_fail"(0)
+ lt rx1269_pos, -1, rx1269_done
+ eq rx1269_pos, -1, rx1269_fail
jump $I10
- rx1271_done:
- rx1271_cur."!cursor_fail"()
- rx1271_cur."!cursor_debug"("FAIL ", "term:sym<redo>")
- .return (rx1271_cur)
+ rx1269_done:
+ rx1269_cur."!cursor_fail"()
+ rx1269_cur."!cursor_debug"("FAIL ", "infix:sym<=>")
+ .return (rx1269_cur)
.return ()
.end
.namespace ["NQP";"Grammar"]
-.sub "!PREFIX__term:sym<redo>" :subid("328_1274022894.43745") :method
-.annotate 'line', 431
- new $P1273, "ResizablePMCArray"
- push $P1273, "redo"
- .return ($P1273)
+.sub "!PREFIX__infix:sym<=>" :subid("323_1275811487.95429") :method
+.annotate 'line', 446
+ $P1271 = self."!PREFIX__!subrule"("panic", "=")
+ new $P1272, "ResizablePMCArray"
+ push $P1272, $P1271
+ .return ($P1272)
.end
.namespace ["NQP";"Grammar"]
-.sub "smartmatch" :subid("329_1274022894.43745") :method :outer("11_1274022894.43745")
- .param pmc param_1279
-.annotate 'line', 542
- new $P1278, 'ExceptionHandler'
- set_addr $P1278, control_1277
- $P1278."handle_types"(57)
- push_eh $P1278
- .lex "self", self
- .lex "$/", param_1279
-.annotate 'line', 544
- new $P1280, "Undef"
- .lex "$t", $P1280
- find_lex $P1281, "$/"
- unless_null $P1281, vivify_357
- $P1281 = root_new ['parrot';'ResizablePMCArray']
- vivify_357:
- set $P1282, $P1281[0]
- unless_null $P1282, vivify_358
- new $P1282, "Undef"
- vivify_358:
- store_lex "$t", $P1282
- find_lex $P1283, "$/"
- unless_null $P1283, vivify_359
- $P1283 = root_new ['parrot';'ResizablePMCArray']
- vivify_359:
- set $P1284, $P1283[1]
- unless_null $P1284, vivify_360
- new $P1284, "Undef"
- vivify_360:
- find_lex $P1285, "$/"
- unless_null $P1285, vivify_361
- $P1285 = root_new ['parrot';'ResizablePMCArray']
- store_lex "$/", $P1285
- vivify_361:
- set $P1285[0], $P1284
- find_lex $P1286, "$t"
- find_lex $P1287, "$/"
- unless_null $P1287, vivify_362
- $P1287 = root_new ['parrot';'ResizablePMCArray']
- store_lex "$/", $P1287
- vivify_362:
- set $P1287[1], $P1286
-.annotate 'line', 542
- .return ($P1286)
- control_1277:
- .local pmc exception
- .get_results (exception)
- getattribute $P1288, exception, "payload"
- .return ($P1288)
+.sub "infix:sym<:=>" :subid("324_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1276_tgt
+ .local int rx1276_pos
+ .local int rx1276_off
+ .local int rx1276_eos
+ .local int rx1276_rep
+ .local pmc rx1276_cur
+ (rx1276_cur, rx1276_pos, rx1276_tgt) = self."!cursor_start"()
+ rx1276_cur."!cursor_debug"("START ", "infix:sym<:=>")
+ .lex unicode:"$\x{a2}", rx1276_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1276_eos, rx1276_tgt
+ gt rx1276_pos, rx1276_eos, rx1276_done
+ set rx1276_off, 0
+ lt rx1276_pos, 2, rx1276_start
+ sub rx1276_off, rx1276_pos, 1
+ substr rx1276_tgt, rx1276_tgt, rx1276_off
+ rx1276_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1280_done
+ goto rxscan1280_scan
+ rxscan1280_loop:
+ ($P10) = rx1276_cur."from"()
+ inc $P10
+ set rx1276_pos, $P10
+ ge rx1276_pos, rx1276_eos, rxscan1280_done
+ rxscan1280_scan:
+ set_addr $I10, rxscan1280_loop
+ rx1276_cur."!mark_push"(0, rx1276_pos, $I10)
+ rxscan1280_done:
+.annotate 'line', 546
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_1281_fail
+ rx1276_cur."!mark_push"(0, rx1276_pos, $I10)
+ # rx literal ":="
+ add $I11, rx1276_pos, 2
+ gt $I11, rx1276_eos, rx1276_fail
+ sub $I11, rx1276_pos, rx1276_off
+ substr $S10, rx1276_tgt, $I11, 2
+ ne $S10, ":=", rx1276_fail
+ add rx1276_pos, 2
+ set_addr $I10, rxcap_1281_fail
+ ($I12, $I11) = rx1276_cur."!mark_peek"($I10)
+ rx1276_cur."!cursor_pos"($I11)
+ ($P10) = rx1276_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1276_pos, "")
+ rx1276_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_1281_done
+ rxcap_1281_fail:
+ goto rx1276_fail
+ rxcap_1281_done:
+ # rx subrule "O" subtype=capture negate=
+ rx1276_cur."!cursor_pos"(rx1276_pos)
+ $P10 = rx1276_cur."O"("%assignment, :pasttype<bind>")
+ unless $P10, rx1276_fail
+ rx1276_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx1276_pos = $P10."pos"()
+ # rx pass
+ rx1276_cur."!cursor_pass"(rx1276_pos, "infix:sym<:=>")
+ rx1276_cur."!cursor_debug"("PASS ", "infix:sym<:=>", " at pos=", rx1276_pos)
+ .return (rx1276_cur)
+ rx1276_fail:
+.annotate 'line', 446
+ (rx1276_rep, rx1276_pos, $I10, $P10) = rx1276_cur."!mark_fail"(0)
+ lt rx1276_pos, -1, rx1276_done
+ eq rx1276_pos, -1, rx1276_fail
+ jump $I10
+ rx1276_done:
+ rx1276_cur."!cursor_fail"()
+ rx1276_cur."!cursor_debug"("FAIL ", "infix:sym<:=>")
+ .return (rx1276_cur)
+ .return ()
.end
-.namespace ["NQP";"Regex"]
-.sub "_block1289" :subid("330_1274022894.43745") :outer("11_1274022894.43745")
-.annotate 'line', 548
- .const 'Sub' $P1323 = "341_1274022894.43745"
- capture_lex $P1323
- .const 'Sub' $P1310 = "338_1274022894.43745"
- capture_lex $P1310
- .const 'Sub' $P1305 = "336_1274022894.43745"
- capture_lex $P1305
- .const 'Sub' $P1300 = "334_1274022894.43745"
- capture_lex $P1300
- .const 'Sub' $P1291 = "331_1274022894.43745"
- capture_lex $P1291
- .const 'Sub' $P1323 = "341_1274022894.43745"
- capture_lex $P1323
- .return ($P1323)
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__infix:sym<:=>" :subid("325_1275811487.95429") :method
+.annotate 'line', 446
+ $P1278 = self."!PREFIX__!subrule"("O", ":=")
+ new $P1279, "ResizablePMCArray"
+ push $P1279, $P1278
+ .return ($P1279)
.end
-.namespace ["NQP";"Regex"]
-.sub "metachar:sym<:my>" :subid("331_1274022894.43745") :method :outer("330_1274022894.43745")
-.annotate 'line', 548
- .const 'Sub' $P1297 = "333_1274022894.43745"
- capture_lex $P1297
- .local string rx1292_tgt
- .local int rx1292_pos
- .local int rx1292_off
- .local int rx1292_eos
- .local int rx1292_rep
- .local pmc rx1292_cur
- (rx1292_cur, rx1292_pos, rx1292_tgt) = self."!cursor_start"()
- rx1292_cur."!cursor_debug"("START ", "metachar:sym<:my>")
- .lex unicode:"$\x{a2}", rx1292_cur
- .local pmc match
- .lex "$/", match
- length rx1292_eos, rx1292_tgt
- set rx1292_off, 0
- lt rx1292_pos, 2, rx1292_start
- sub rx1292_off, rx1292_pos, 1
- substr rx1292_tgt, rx1292_tgt, rx1292_off
- rx1292_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1295_done
- goto rxscan1295_scan
- rxscan1295_loop:
- ($P10) = rx1292_cur."from"()
- inc $P10
- set rx1292_pos, $P10
- ge rx1292_pos, rx1292_eos, rxscan1295_done
- rxscan1295_scan:
- set_addr $I10, rxscan1295_loop
- rx1292_cur."!mark_push"(0, rx1292_pos, $I10)
- rxscan1295_done:
-.annotate 'line', 550
- # rx literal ":"
- add $I11, rx1292_pos, 1
- gt $I11, rx1292_eos, rx1292_fail
- sub $I11, rx1292_pos, rx1292_off
- substr $S10, rx1292_tgt, $I11, 1
- ne $S10, ":", rx1292_fail
- add rx1292_pos, 1
- # rx subrule "before" subtype=zerowidth negate=
- rx1292_cur."!cursor_pos"(rx1292_pos)
- .const 'Sub' $P1297 = "333_1274022894.43745"
- capture_lex $P1297
- $P10 = rx1292_cur."before"($P1297)
- unless $P10, rx1292_fail
- # rx subrule "LANG" subtype=capture negate=
- rx1292_cur."!cursor_pos"(rx1292_pos)
- $P10 = rx1292_cur."LANG"("MAIN", "statement")
- unless $P10, rx1292_fail
- rx1292_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("statement")
- rx1292_pos = $P10."pos"()
- # rx subrule "ws" subtype=method negate=
- rx1292_cur."!cursor_pos"(rx1292_pos)
- $P10 = rx1292_cur."ws"()
- unless $P10, rx1292_fail
- rx1292_pos = $P10."pos"()
- # rx literal ";"
- add $I11, rx1292_pos, 1
- gt $I11, rx1292_eos, rx1292_fail
- sub $I11, rx1292_pos, rx1292_off
- substr $S10, rx1292_tgt, $I11, 1
- ne $S10, ";", rx1292_fail
- add rx1292_pos, 1
+.namespace ["NQP";"Grammar"]
+.sub "infix:sym<::=>" :subid("326_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1283_tgt
+ .local int rx1283_pos
+ .local int rx1283_off
+ .local int rx1283_eos
+ .local int rx1283_rep
+ .local pmc rx1283_cur
+ (rx1283_cur, rx1283_pos, rx1283_tgt) = self."!cursor_start"()
+ rx1283_cur."!cursor_debug"("START ", "infix:sym<::=>")
+ .lex unicode:"$\x{a2}", rx1283_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1283_eos, rx1283_tgt
+ gt rx1283_pos, rx1283_eos, rx1283_done
+ set rx1283_off, 0
+ lt rx1283_pos, 2, rx1283_start
+ sub rx1283_off, rx1283_pos, 1
+ substr rx1283_tgt, rx1283_tgt, rx1283_off
+ rx1283_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1287_done
+ goto rxscan1287_scan
+ rxscan1287_loop:
+ ($P10) = rx1283_cur."from"()
+ inc $P10
+ set rx1283_pos, $P10
+ ge rx1283_pos, rx1283_eos, rxscan1287_done
+ rxscan1287_scan:
+ set_addr $I10, rxscan1287_loop
+ rx1283_cur."!mark_push"(0, rx1283_pos, $I10)
+ rxscan1287_done:
+.annotate 'line', 547
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_1288_fail
+ rx1283_cur."!mark_push"(0, rx1283_pos, $I10)
+ # rx literal "::="
+ add $I11, rx1283_pos, 3
+ gt $I11, rx1283_eos, rx1283_fail
+ sub $I11, rx1283_pos, rx1283_off
+ substr $S10, rx1283_tgt, $I11, 3
+ ne $S10, "::=", rx1283_fail
+ add rx1283_pos, 3
+ set_addr $I10, rxcap_1288_fail
+ ($I12, $I11) = rx1283_cur."!mark_peek"($I10)
+ rx1283_cur."!cursor_pos"($I11)
+ ($P10) = rx1283_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1283_pos, "")
+ rx1283_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_1288_done
+ rxcap_1288_fail:
+ goto rx1283_fail
+ rxcap_1288_done:
+ # rx subrule "O" subtype=capture negate=
+ rx1283_cur."!cursor_pos"(rx1283_pos)
+ $P10 = rx1283_cur."O"("%assignment, :pasttype<bind>")
+ unless $P10, rx1283_fail
+ rx1283_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx1283_pos = $P10."pos"()
+ # rx pass
+ rx1283_cur."!cursor_pass"(rx1283_pos, "infix:sym<::=>")
+ rx1283_cur."!cursor_debug"("PASS ", "infix:sym<::=>", " at pos=", rx1283_pos)
+ .return (rx1283_cur)
+ rx1283_fail:
+.annotate 'line', 446
+ (rx1283_rep, rx1283_pos, $I10, $P10) = rx1283_cur."!mark_fail"(0)
+ lt rx1283_pos, -1, rx1283_done
+ eq rx1283_pos, -1, rx1283_fail
+ jump $I10
+ rx1283_done:
+ rx1283_cur."!cursor_fail"()
+ rx1283_cur."!cursor_debug"("FAIL ", "infix:sym<::=>")
+ .return (rx1283_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__infix:sym<::=>" :subid("327_1275811487.95429") :method
+.annotate 'line', 446
+ $P1285 = self."!PREFIX__!subrule"("O", "::=")
+ new $P1286, "ResizablePMCArray"
+ push $P1286, $P1285
+ .return ($P1286)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "infix:sym<,>" :subid("328_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1290_tgt
+ .local int rx1290_pos
+ .local int rx1290_off
+ .local int rx1290_eos
+ .local int rx1290_rep
+ .local pmc rx1290_cur
+ (rx1290_cur, rx1290_pos, rx1290_tgt) = self."!cursor_start"()
+ rx1290_cur."!cursor_debug"("START ", "infix:sym<,>")
+ .lex unicode:"$\x{a2}", rx1290_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1290_eos, rx1290_tgt
+ gt rx1290_pos, rx1290_eos, rx1290_done
+ set rx1290_off, 0
+ lt rx1290_pos, 2, rx1290_start
+ sub rx1290_off, rx1290_pos, 1
+ substr rx1290_tgt, rx1290_tgt, rx1290_off
+ rx1290_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1294_done
+ goto rxscan1294_scan
+ rxscan1294_loop:
+ ($P10) = rx1290_cur."from"()
+ inc $P10
+ set rx1290_pos, $P10
+ ge rx1290_pos, rx1290_eos, rxscan1294_done
+ rxscan1294_scan:
+ set_addr $I10, rxscan1294_loop
+ rx1290_cur."!mark_push"(0, rx1290_pos, $I10)
+ rxscan1294_done:
.annotate 'line', 549
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_1295_fail
+ rx1290_cur."!mark_push"(0, rx1290_pos, $I10)
+ # rx literal ","
+ add $I11, rx1290_pos, 1
+ gt $I11, rx1290_eos, rx1290_fail
+ sub $I11, rx1290_pos, rx1290_off
+ substr $S10, rx1290_tgt, $I11, 1
+ ne $S10, ",", rx1290_fail
+ add rx1290_pos, 1
+ set_addr $I10, rxcap_1295_fail
+ ($I12, $I11) = rx1290_cur."!mark_peek"($I10)
+ rx1290_cur."!cursor_pos"($I11)
+ ($P10) = rx1290_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1290_pos, "")
+ rx1290_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_1295_done
+ rxcap_1295_fail:
+ goto rx1290_fail
+ rxcap_1295_done:
+ # rx subrule "O" subtype=capture negate=
+ rx1290_cur."!cursor_pos"(rx1290_pos)
+ $P10 = rx1290_cur."O"("%comma, :pasttype<list>")
+ unless $P10, rx1290_fail
+ rx1290_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx1290_pos = $P10."pos"()
# rx pass
- rx1292_cur."!cursor_pass"(rx1292_pos, "metachar:sym<:my>")
- rx1292_cur."!cursor_debug"("PASS ", "metachar:sym<:my>", " at pos=", rx1292_pos)
- .return (rx1292_cur)
- rx1292_fail:
-.annotate 'line', 548
- (rx1292_rep, rx1292_pos, $I10, $P10) = rx1292_cur."!mark_fail"(0)
- lt rx1292_pos, -1, rx1292_done
- eq rx1292_pos, -1, rx1292_fail
- jump $I10
- rx1292_done:
- rx1292_cur."!cursor_fail"()
- rx1292_cur."!cursor_debug"("FAIL ", "metachar:sym<:my>")
- .return (rx1292_cur)
+ rx1290_cur."!cursor_pass"(rx1290_pos, "infix:sym<,>")
+ rx1290_cur."!cursor_debug"("PASS ", "infix:sym<,>", " at pos=", rx1290_pos)
+ .return (rx1290_cur)
+ rx1290_fail:
+.annotate 'line', 446
+ (rx1290_rep, rx1290_pos, $I10, $P10) = rx1290_cur."!mark_fail"(0)
+ lt rx1290_pos, -1, rx1290_done
+ eq rx1290_pos, -1, rx1290_fail
+ jump $I10
+ rx1290_done:
+ rx1290_cur."!cursor_fail"()
+ rx1290_cur."!cursor_debug"("FAIL ", "infix:sym<,>")
+ .return (rx1290_cur)
.return ()
.end
-.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<:my>" :subid("332_1274022894.43745") :method
-.annotate 'line', 548
- new $P1294, "ResizablePMCArray"
- push $P1294, ":"
- .return ($P1294)
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__infix:sym<,>" :subid("329_1275811487.95429") :method
+.annotate 'line', 446
+ $P1292 = self."!PREFIX__!subrule"("O", ",")
+ new $P1293, "ResizablePMCArray"
+ push $P1293, $P1292
+ .return ($P1293)
.end
-.namespace ["NQP";"Regex"]
-.sub "_block1296" :anon :subid("333_1274022894.43745") :method :outer("331_1274022894.43745")
-.annotate 'line', 550
- .local string rx1298_tgt
- .local int rx1298_pos
- .local int rx1298_off
- .local int rx1298_eos
- .local int rx1298_rep
- .local pmc rx1298_cur
- (rx1298_cur, rx1298_pos, rx1298_tgt) = self."!cursor_start"()
- rx1298_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx1298_cur
- .local pmc match
- .lex "$/", match
- length rx1298_eos, rx1298_tgt
- set rx1298_off, 0
- lt rx1298_pos, 2, rx1298_start
- sub rx1298_off, rx1298_pos, 1
- substr rx1298_tgt, rx1298_tgt, rx1298_off
- rx1298_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1299_done
- goto rxscan1299_scan
- rxscan1299_loop:
- ($P10) = rx1298_cur."from"()
- inc $P10
- set rx1298_pos, $P10
- ge rx1298_pos, rx1298_eos, rxscan1299_done
- rxscan1299_scan:
- set_addr $I10, rxscan1299_loop
- rx1298_cur."!mark_push"(0, rx1298_pos, $I10)
- rxscan1299_done:
- # rx literal "my"
- add $I11, rx1298_pos, 2
- gt $I11, rx1298_eos, rx1298_fail
- sub $I11, rx1298_pos, rx1298_off
- substr $S10, rx1298_tgt, $I11, 2
- ne $S10, "my", rx1298_fail
- add rx1298_pos, 2
- # rx pass
- rx1298_cur."!cursor_pass"(rx1298_pos, "")
- rx1298_cur."!cursor_debug"("PASS ", "", " at pos=", rx1298_pos)
- .return (rx1298_cur)
- rx1298_fail:
- (rx1298_rep, rx1298_pos, $I10, $P10) = rx1298_cur."!mark_fail"(0)
- lt rx1298_pos, -1, rx1298_done
- eq rx1298_pos, -1, rx1298_fail
- jump $I10
- rx1298_done:
- rx1298_cur."!cursor_fail"()
- rx1298_cur."!cursor_debug"("FAIL ", "")
- .return (rx1298_cur)
+.namespace ["NQP";"Grammar"]
+.sub "prefix:sym<return>" :subid("330_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1297_tgt
+ .local int rx1297_pos
+ .local int rx1297_off
+ .local int rx1297_eos
+ .local int rx1297_rep
+ .local pmc rx1297_cur
+ (rx1297_cur, rx1297_pos, rx1297_tgt) = self."!cursor_start"()
+ rx1297_cur."!cursor_debug"("START ", "prefix:sym<return>")
+ .lex unicode:"$\x{a2}", rx1297_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1297_eos, rx1297_tgt
+ gt rx1297_pos, rx1297_eos, rx1297_done
+ set rx1297_off, 0
+ lt rx1297_pos, 2, rx1297_start
+ sub rx1297_off, rx1297_pos, 1
+ substr rx1297_tgt, rx1297_tgt, rx1297_off
+ rx1297_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1300_done
+ goto rxscan1300_scan
+ rxscan1300_loop:
+ ($P10) = rx1297_cur."from"()
+ inc $P10
+ set rx1297_pos, $P10
+ ge rx1297_pos, rx1297_eos, rxscan1300_done
+ rxscan1300_scan:
+ set_addr $I10, rxscan1300_loop
+ rx1297_cur."!mark_push"(0, rx1297_pos, $I10)
+ rxscan1300_done:
+.annotate 'line', 551
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_1301_fail
+ rx1297_cur."!mark_push"(0, rx1297_pos, $I10)
+ # rx literal "return"
+ add $I11, rx1297_pos, 6
+ gt $I11, rx1297_eos, rx1297_fail
+ sub $I11, rx1297_pos, rx1297_off
+ substr $S10, rx1297_tgt, $I11, 6
+ ne $S10, "return", rx1297_fail
+ add rx1297_pos, 6
+ set_addr $I10, rxcap_1301_fail
+ ($I12, $I11) = rx1297_cur."!mark_peek"($I10)
+ rx1297_cur."!cursor_pos"($I11)
+ ($P10) = rx1297_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1297_pos, "")
+ rx1297_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_1301_done
+ rxcap_1301_fail:
+ goto rx1297_fail
+ rxcap_1301_done:
+ # rx charclass s
+ ge rx1297_pos, rx1297_eos, rx1297_fail
+ sub $I10, rx1297_pos, rx1297_off
+ is_cclass $I11, 32, rx1297_tgt, $I10
+ unless $I11, rx1297_fail
+ inc rx1297_pos
+ # rx subrule "O" subtype=capture negate=
+ rx1297_cur."!cursor_pos"(rx1297_pos)
+ $P10 = rx1297_cur."O"("%list_prefix, :pasttype<return>")
+ unless $P10, rx1297_fail
+ rx1297_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx1297_pos = $P10."pos"()
+ # rx pass
+ rx1297_cur."!cursor_pass"(rx1297_pos, "prefix:sym<return>")
+ rx1297_cur."!cursor_debug"("PASS ", "prefix:sym<return>", " at pos=", rx1297_pos)
+ .return (rx1297_cur)
+ rx1297_fail:
+.annotate 'line', 446
+ (rx1297_rep, rx1297_pos, $I10, $P10) = rx1297_cur."!mark_fail"(0)
+ lt rx1297_pos, -1, rx1297_done
+ eq rx1297_pos, -1, rx1297_fail
+ jump $I10
+ rx1297_done:
+ rx1297_cur."!cursor_fail"()
+ rx1297_cur."!cursor_debug"("FAIL ", "prefix:sym<return>")
+ .return (rx1297_cur)
.return ()
.end
-.namespace ["NQP";"Regex"]
-.sub "metachar:sym<{ }>" :subid("334_1274022894.43745") :method :outer("330_1274022894.43745")
-.annotate 'line', 548
- .local string rx1301_tgt
- .local int rx1301_pos
- .local int rx1301_off
- .local int rx1301_eos
- .local int rx1301_rep
- .local pmc rx1301_cur
- (rx1301_cur, rx1301_pos, rx1301_tgt) = self."!cursor_start"()
- rx1301_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
- .lex unicode:"$\x{a2}", rx1301_cur
- .local pmc match
- .lex "$/", match
- length rx1301_eos, rx1301_tgt
- set rx1301_off, 0
- lt rx1301_pos, 2, rx1301_start
- sub rx1301_off, rx1301_pos, 1
- substr rx1301_tgt, rx1301_tgt, rx1301_off
- rx1301_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1304_done
- goto rxscan1304_scan
- rxscan1304_loop:
- ($P10) = rx1301_cur."from"()
- inc $P10
- set rx1301_pos, $P10
- ge rx1301_pos, rx1301_eos, rxscan1304_done
- rxscan1304_scan:
- set_addr $I10, rxscan1304_loop
- rx1301_cur."!mark_push"(0, rx1301_pos, $I10)
- rxscan1304_done:
-.annotate 'line', 554
- # rx enumcharlist negate=0 zerowidth
- ge rx1301_pos, rx1301_eos, rx1301_fail
- sub $I10, rx1301_pos, rx1301_off
- substr $S10, rx1301_tgt, $I10, 1
- index $I11, "{", $S10
- lt $I11, 0, rx1301_fail
- # rx subrule "codeblock" subtype=capture negate=
- rx1301_cur."!cursor_pos"(rx1301_pos)
- $P10 = rx1301_cur."codeblock"()
- unless $P10, rx1301_fail
- rx1301_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("codeblock")
- rx1301_pos = $P10."pos"()
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__prefix:sym<return>" :subid("331_1275811487.95429") :method
+.annotate 'line', 446
+ new $P1299, "ResizablePMCArray"
+ push $P1299, "return"
+ .return ($P1299)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "prefix:sym<make>" :subid("332_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1303_tgt
+ .local int rx1303_pos
+ .local int rx1303_off
+ .local int rx1303_eos
+ .local int rx1303_rep
+ .local pmc rx1303_cur
+ (rx1303_cur, rx1303_pos, rx1303_tgt) = self."!cursor_start"()
+ rx1303_cur."!cursor_debug"("START ", "prefix:sym<make>")
+ .lex unicode:"$\x{a2}", rx1303_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1303_eos, rx1303_tgt
+ gt rx1303_pos, rx1303_eos, rx1303_done
+ set rx1303_off, 0
+ lt rx1303_pos, 2, rx1303_start
+ sub rx1303_off, rx1303_pos, 1
+ substr rx1303_tgt, rx1303_tgt, rx1303_off
+ rx1303_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1306_done
+ goto rxscan1306_scan
+ rxscan1306_loop:
+ ($P10) = rx1303_cur."from"()
+ inc $P10
+ set rx1303_pos, $P10
+ ge rx1303_pos, rx1303_eos, rxscan1306_done
+ rxscan1306_scan:
+ set_addr $I10, rxscan1306_loop
+ rx1303_cur."!mark_push"(0, rx1303_pos, $I10)
+ rxscan1306_done:
+.annotate 'line', 552
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_1307_fail
+ rx1303_cur."!mark_push"(0, rx1303_pos, $I10)
+ # rx literal "make"
+ add $I11, rx1303_pos, 4
+ gt $I11, rx1303_eos, rx1303_fail
+ sub $I11, rx1303_pos, rx1303_off
+ substr $S10, rx1303_tgt, $I11, 4
+ ne $S10, "make", rx1303_fail
+ add rx1303_pos, 4
+ set_addr $I10, rxcap_1307_fail
+ ($I12, $I11) = rx1303_cur."!mark_peek"($I10)
+ rx1303_cur."!cursor_pos"($I11)
+ ($P10) = rx1303_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1303_pos, "")
+ rx1303_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_1307_done
+ rxcap_1307_fail:
+ goto rx1303_fail
+ rxcap_1307_done:
+ # rx charclass s
+ ge rx1303_pos, rx1303_eos, rx1303_fail
+ sub $I10, rx1303_pos, rx1303_off
+ is_cclass $I11, 32, rx1303_tgt, $I10
+ unless $I11, rx1303_fail
+ inc rx1303_pos
+ # rx subrule "O" subtype=capture negate=
+ rx1303_cur."!cursor_pos"(rx1303_pos)
+ $P10 = rx1303_cur."O"("%list_prefix")
+ unless $P10, rx1303_fail
+ rx1303_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("O")
+ rx1303_pos = $P10."pos"()
+ # rx pass
+ rx1303_cur."!cursor_pass"(rx1303_pos, "prefix:sym<make>")
+ rx1303_cur."!cursor_debug"("PASS ", "prefix:sym<make>", " at pos=", rx1303_pos)
+ .return (rx1303_cur)
+ rx1303_fail:
+.annotate 'line', 446
+ (rx1303_rep, rx1303_pos, $I10, $P10) = rx1303_cur."!mark_fail"(0)
+ lt rx1303_pos, -1, rx1303_done
+ eq rx1303_pos, -1, rx1303_fail
+ jump $I10
+ rx1303_done:
+ rx1303_cur."!cursor_fail"()
+ rx1303_cur."!cursor_debug"("FAIL ", "prefix:sym<make>")
+ .return (rx1303_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__prefix:sym<make>" :subid("333_1275811487.95429") :method
+.annotate 'line', 446
+ new $P1305, "ResizablePMCArray"
+ push $P1305, "make"
+ .return ($P1305)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<last>" :subid("334_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1309_tgt
+ .local int rx1309_pos
+ .local int rx1309_off
+ .local int rx1309_eos
+ .local int rx1309_rep
+ .local pmc rx1309_cur
+ (rx1309_cur, rx1309_pos, rx1309_tgt) = self."!cursor_start"()
+ rx1309_cur."!cursor_debug"("START ", "term:sym<last>")
+ .lex unicode:"$\x{a2}", rx1309_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1309_eos, rx1309_tgt
+ gt rx1309_pos, rx1309_eos, rx1309_done
+ set rx1309_off, 0
+ lt rx1309_pos, 2, rx1309_start
+ sub rx1309_off, rx1309_pos, 1
+ substr rx1309_tgt, rx1309_tgt, rx1309_off
+ rx1309_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1312_done
+ goto rxscan1312_scan
+ rxscan1312_loop:
+ ($P10) = rx1309_cur."from"()
+ inc $P10
+ set rx1309_pos, $P10
+ ge rx1309_pos, rx1309_eos, rxscan1312_done
+ rxscan1312_scan:
+ set_addr $I10, rxscan1312_loop
+ rx1309_cur."!mark_push"(0, rx1309_pos, $I10)
+ rxscan1312_done:
.annotate 'line', 553
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_1313_fail
+ rx1309_cur."!mark_push"(0, rx1309_pos, $I10)
+ # rx literal "last"
+ add $I11, rx1309_pos, 4
+ gt $I11, rx1309_eos, rx1309_fail
+ sub $I11, rx1309_pos, rx1309_off
+ substr $S10, rx1309_tgt, $I11, 4
+ ne $S10, "last", rx1309_fail
+ add rx1309_pos, 4
+ set_addr $I10, rxcap_1313_fail
+ ($I12, $I11) = rx1309_cur."!mark_peek"($I10)
+ rx1309_cur."!cursor_pos"($I11)
+ ($P10) = rx1309_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1309_pos, "")
+ rx1309_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_1313_done
+ rxcap_1313_fail:
+ goto rx1309_fail
+ rxcap_1313_done:
+ # rx pass
+ rx1309_cur."!cursor_pass"(rx1309_pos, "term:sym<last>")
+ rx1309_cur."!cursor_debug"("PASS ", "term:sym<last>", " at pos=", rx1309_pos)
+ .return (rx1309_cur)
+ rx1309_fail:
+.annotate 'line', 446
+ (rx1309_rep, rx1309_pos, $I10, $P10) = rx1309_cur."!mark_fail"(0)
+ lt rx1309_pos, -1, rx1309_done
+ eq rx1309_pos, -1, rx1309_fail
+ jump $I10
+ rx1309_done:
+ rx1309_cur."!cursor_fail"()
+ rx1309_cur."!cursor_debug"("FAIL ", "term:sym<last>")
+ .return (rx1309_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<last>" :subid("335_1275811487.95429") :method
+.annotate 'line', 446
+ new $P1311, "ResizablePMCArray"
+ push $P1311, "last"
+ .return ($P1311)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<next>" :subid("336_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1315_tgt
+ .local int rx1315_pos
+ .local int rx1315_off
+ .local int rx1315_eos
+ .local int rx1315_rep
+ .local pmc rx1315_cur
+ (rx1315_cur, rx1315_pos, rx1315_tgt) = self."!cursor_start"()
+ rx1315_cur."!cursor_debug"("START ", "term:sym<next>")
+ .lex unicode:"$\x{a2}", rx1315_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1315_eos, rx1315_tgt
+ gt rx1315_pos, rx1315_eos, rx1315_done
+ set rx1315_off, 0
+ lt rx1315_pos, 2, rx1315_start
+ sub rx1315_off, rx1315_pos, 1
+ substr rx1315_tgt, rx1315_tgt, rx1315_off
+ rx1315_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1318_done
+ goto rxscan1318_scan
+ rxscan1318_loop:
+ ($P10) = rx1315_cur."from"()
+ inc $P10
+ set rx1315_pos, $P10
+ ge rx1315_pos, rx1315_eos, rxscan1318_done
+ rxscan1318_scan:
+ set_addr $I10, rxscan1318_loop
+ rx1315_cur."!mark_push"(0, rx1315_pos, $I10)
+ rxscan1318_done:
+.annotate 'line', 554
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_1319_fail
+ rx1315_cur."!mark_push"(0, rx1315_pos, $I10)
+ # rx literal "next"
+ add $I11, rx1315_pos, 4
+ gt $I11, rx1315_eos, rx1315_fail
+ sub $I11, rx1315_pos, rx1315_off
+ substr $S10, rx1315_tgt, $I11, 4
+ ne $S10, "next", rx1315_fail
+ add rx1315_pos, 4
+ set_addr $I10, rxcap_1319_fail
+ ($I12, $I11) = rx1315_cur."!mark_peek"($I10)
+ rx1315_cur."!cursor_pos"($I11)
+ ($P10) = rx1315_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1315_pos, "")
+ rx1315_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_1319_done
+ rxcap_1319_fail:
+ goto rx1315_fail
+ rxcap_1319_done:
+ # rx pass
+ rx1315_cur."!cursor_pass"(rx1315_pos, "term:sym<next>")
+ rx1315_cur."!cursor_debug"("PASS ", "term:sym<next>", " at pos=", rx1315_pos)
+ .return (rx1315_cur)
+ rx1315_fail:
+.annotate 'line', 446
+ (rx1315_rep, rx1315_pos, $I10, $P10) = rx1315_cur."!mark_fail"(0)
+ lt rx1315_pos, -1, rx1315_done
+ eq rx1315_pos, -1, rx1315_fail
+ jump $I10
+ rx1315_done:
+ rx1315_cur."!cursor_fail"()
+ rx1315_cur."!cursor_debug"("FAIL ", "term:sym<next>")
+ .return (rx1315_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<next>" :subid("337_1275811487.95429") :method
+.annotate 'line', 446
+ new $P1317, "ResizablePMCArray"
+ push $P1317, "next"
+ .return ($P1317)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "term:sym<redo>" :subid("338_1275811487.95429") :method :outer("11_1275811487.95429")
+.annotate 'line', 446
+ .local string rx1321_tgt
+ .local int rx1321_pos
+ .local int rx1321_off
+ .local int rx1321_eos
+ .local int rx1321_rep
+ .local pmc rx1321_cur
+ (rx1321_cur, rx1321_pos, rx1321_tgt) = self."!cursor_start"()
+ rx1321_cur."!cursor_debug"("START ", "term:sym<redo>")
+ .lex unicode:"$\x{a2}", rx1321_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1321_eos, rx1321_tgt
+ gt rx1321_pos, rx1321_eos, rx1321_done
+ set rx1321_off, 0
+ lt rx1321_pos, 2, rx1321_start
+ sub rx1321_off, rx1321_pos, 1
+ substr rx1321_tgt, rx1321_tgt, rx1321_off
+ rx1321_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1324_done
+ goto rxscan1324_scan
+ rxscan1324_loop:
+ ($P10) = rx1321_cur."from"()
+ inc $P10
+ set rx1321_pos, $P10
+ ge rx1321_pos, rx1321_eos, rxscan1324_done
+ rxscan1324_scan:
+ set_addr $I10, rxscan1324_loop
+ rx1321_cur."!mark_push"(0, rx1321_pos, $I10)
+ rxscan1324_done:
+.annotate 'line', 555
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_1325_fail
+ rx1321_cur."!mark_push"(0, rx1321_pos, $I10)
+ # rx literal "redo"
+ add $I11, rx1321_pos, 4
+ gt $I11, rx1321_eos, rx1321_fail
+ sub $I11, rx1321_pos, rx1321_off
+ substr $S10, rx1321_tgt, $I11, 4
+ ne $S10, "redo", rx1321_fail
+ add rx1321_pos, 4
+ set_addr $I10, rxcap_1325_fail
+ ($I12, $I11) = rx1321_cur."!mark_peek"($I10)
+ rx1321_cur."!cursor_pos"($I11)
+ ($P10) = rx1321_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1321_pos, "")
+ rx1321_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_1325_done
+ rxcap_1325_fail:
+ goto rx1321_fail
+ rxcap_1325_done:
+ # rx pass
+ rx1321_cur."!cursor_pass"(rx1321_pos, "term:sym<redo>")
+ rx1321_cur."!cursor_debug"("PASS ", "term:sym<redo>", " at pos=", rx1321_pos)
+ .return (rx1321_cur)
+ rx1321_fail:
+.annotate 'line', 446
+ (rx1321_rep, rx1321_pos, $I10, $P10) = rx1321_cur."!mark_fail"(0)
+ lt rx1321_pos, -1, rx1321_done
+ eq rx1321_pos, -1, rx1321_fail
+ jump $I10
+ rx1321_done:
+ rx1321_cur."!cursor_fail"()
+ rx1321_cur."!cursor_debug"("FAIL ", "term:sym<redo>")
+ .return (rx1321_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "!PREFIX__term:sym<redo>" :subid("339_1275811487.95429") :method
+.annotate 'line', 446
+ new $P1323, "ResizablePMCArray"
+ push $P1323, "redo"
+ .return ($P1323)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.include "except_types.pasm"
+.sub "smartmatch" :subid("340_1275811487.95429") :method :outer("11_1275811487.95429")
+ .param pmc param_1329
+.annotate 'line', 557
+ new $P1328, 'ExceptionHandler'
+ set_addr $P1328, control_1327
+ $P1328."handle_types"(.CONTROL_RETURN)
+ push_eh $P1328
+ .lex "self", self
+ .lex "$/", param_1329
+.annotate 'line', 559
+ new $P1330, "Undef"
+ .lex "$t", $P1330
+ find_lex $P1331, "$/"
+ unless_null $P1331, vivify_376
+ $P1331 = root_new ['parrot';'ResizablePMCArray']
+ vivify_376:
+ set $P1332, $P1331[0]
+ unless_null $P1332, vivify_377
+ new $P1332, "Undef"
+ vivify_377:
+ store_lex "$t", $P1332
+ find_lex $P1333, "$/"
+ unless_null $P1333, vivify_378
+ $P1333 = root_new ['parrot';'ResizablePMCArray']
+ vivify_378:
+ set $P1334, $P1333[1]
+ unless_null $P1334, vivify_379
+ new $P1334, "Undef"
+ vivify_379:
+ find_lex $P1335, "$/"
+ unless_null $P1335, vivify_380
+ $P1335 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$/", $P1335
+ vivify_380:
+ set $P1335[0], $P1334
+ find_lex $P1336, "$t"
+ find_lex $P1337, "$/"
+ unless_null $P1337, vivify_381
+ $P1337 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$/", $P1337
+ vivify_381:
+ set $P1337[1], $P1336
+.annotate 'line', 557
+ .return ($P1336)
+ control_1327:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1338, exception, "payload"
+ .return ($P1338)
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "_block1339" :subid("341_1275811487.95429") :outer("11_1275811487.95429")
+.annotate 'line', 563
+ .const 'Sub' $P1397 = "360_1275811487.95429"
+ capture_lex $P1397
+ .const 'Sub' $P1392 = "358_1275811487.95429"
+ capture_lex $P1392
+ .const 'Sub' $P1379 = "355_1275811487.95429"
+ capture_lex $P1379
+ .const 'Sub' $P1369 = "352_1275811487.95429"
+ capture_lex $P1369
+ .const 'Sub' $P1364 = "350_1275811487.95429"
+ capture_lex $P1364
+ .const 'Sub' $P1355 = "347_1275811487.95429"
+ capture_lex $P1355
+ .const 'Sub' $P1350 = "345_1275811487.95429"
+ capture_lex $P1350
+ .const 'Sub' $P1341 = "342_1275811487.95429"
+ capture_lex $P1341
+ .const 'Sub' $P1397 = "360_1275811487.95429"
+ capture_lex $P1397
+ .return ($P1397)
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "metachar:sym<:my>" :subid("342_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+ .const 'Sub' $P1347 = "344_1275811487.95429"
+ capture_lex $P1347
+ .local string rx1342_tgt
+ .local int rx1342_pos
+ .local int rx1342_off
+ .local int rx1342_eos
+ .local int rx1342_rep
+ .local pmc rx1342_cur
+ (rx1342_cur, rx1342_pos, rx1342_tgt) = self."!cursor_start"()
+ rx1342_cur."!cursor_debug"("START ", "metachar:sym<:my>")
+ .lex unicode:"$\x{a2}", rx1342_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1342_eos, rx1342_tgt
+ gt rx1342_pos, rx1342_eos, rx1342_done
+ set rx1342_off, 0
+ lt rx1342_pos, 2, rx1342_start
+ sub rx1342_off, rx1342_pos, 1
+ substr rx1342_tgt, rx1342_tgt, rx1342_off
+ rx1342_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1345_done
+ goto rxscan1345_scan
+ rxscan1345_loop:
+ ($P10) = rx1342_cur."from"()
+ inc $P10
+ set rx1342_pos, $P10
+ ge rx1342_pos, rx1342_eos, rxscan1345_done
+ rxscan1345_scan:
+ set_addr $I10, rxscan1345_loop
+ rx1342_cur."!mark_push"(0, rx1342_pos, $I10)
+ rxscan1345_done:
+.annotate 'line', 565
+ # rx literal ":"
+ add $I11, rx1342_pos, 1
+ gt $I11, rx1342_eos, rx1342_fail
+ sub $I11, rx1342_pos, rx1342_off
+ substr $S10, rx1342_tgt, $I11, 1
+ ne $S10, ":", rx1342_fail
+ add rx1342_pos, 1
+ # rx subrule "before" subtype=zerowidth negate=
+ rx1342_cur."!cursor_pos"(rx1342_pos)
+ .const 'Sub' $P1347 = "344_1275811487.95429"
+ capture_lex $P1347
+ $P10 = rx1342_cur."before"($P1347)
+ unless $P10, rx1342_fail
+ # rx subrule "LANG" subtype=capture negate=
+ rx1342_cur."!cursor_pos"(rx1342_pos)
+ $P10 = rx1342_cur."LANG"("MAIN", "statement")
+ unless $P10, rx1342_fail
+ rx1342_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("statement")
+ rx1342_pos = $P10."pos"()
+ # rx subrule "ws" subtype=method negate=
+ rx1342_cur."!cursor_pos"(rx1342_pos)
+ $P10 = rx1342_cur."ws"()
+ unless $P10, rx1342_fail
+ rx1342_pos = $P10."pos"()
+ # rx literal ";"
+ add $I11, rx1342_pos, 1
+ gt $I11, rx1342_eos, rx1342_fail
+ sub $I11, rx1342_pos, rx1342_off
+ substr $S10, rx1342_tgt, $I11, 1
+ ne $S10, ";", rx1342_fail
+ add rx1342_pos, 1
+.annotate 'line', 564
# rx pass
- rx1301_cur."!cursor_pass"(rx1301_pos, "metachar:sym<{ }>")
- rx1301_cur."!cursor_debug"("PASS ", "metachar:sym<{ }>", " at pos=", rx1301_pos)
- .return (rx1301_cur)
- rx1301_fail:
-.annotate 'line', 548
- (rx1301_rep, rx1301_pos, $I10, $P10) = rx1301_cur."!mark_fail"(0)
- lt rx1301_pos, -1, rx1301_done
- eq rx1301_pos, -1, rx1301_fail
- jump $I10
- rx1301_done:
- rx1301_cur."!cursor_fail"()
- rx1301_cur."!cursor_debug"("FAIL ", "metachar:sym<{ }>")
- .return (rx1301_cur)
+ rx1342_cur."!cursor_pass"(rx1342_pos, "metachar:sym<:my>")
+ rx1342_cur."!cursor_debug"("PASS ", "metachar:sym<:my>", " at pos=", rx1342_pos)
+ .return (rx1342_cur)
+ rx1342_fail:
+.annotate 'line', 563
+ (rx1342_rep, rx1342_pos, $I10, $P10) = rx1342_cur."!mark_fail"(0)
+ lt rx1342_pos, -1, rx1342_done
+ eq rx1342_pos, -1, rx1342_fail
+ jump $I10
+ rx1342_done:
+ rx1342_cur."!cursor_fail"()
+ rx1342_cur."!cursor_debug"("FAIL ", "metachar:sym<:my>")
+ .return (rx1342_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__metachar:sym<{ }>" :subid("335_1274022894.43745") :method
-.annotate 'line', 548
- new $P1303, "ResizablePMCArray"
- push $P1303, "{"
- .return ($P1303)
+.sub "!PREFIX__metachar:sym<:my>" :subid("343_1275811487.95429") :method
+.annotate 'line', 563
+ new $P1344, "ResizablePMCArray"
+ push $P1344, ":"
+ .return ($P1344)
.end
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<{ }>" :subid("336_1274022894.43745") :method :outer("330_1274022894.43745")
-.annotate 'line', 548
- .local string rx1306_tgt
- .local int rx1306_pos
- .local int rx1306_off
- .local int rx1306_eos
- .local int rx1306_rep
- .local pmc rx1306_cur
- (rx1306_cur, rx1306_pos, rx1306_tgt) = self."!cursor_start"()
- rx1306_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
- .lex unicode:"$\x{a2}", rx1306_cur
- .local pmc match
- .lex "$/", match
- length rx1306_eos, rx1306_tgt
- set rx1306_off, 0
- lt rx1306_pos, 2, rx1306_start
- sub rx1306_off, rx1306_pos, 1
- substr rx1306_tgt, rx1306_tgt, rx1306_off
- rx1306_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1309_done
- goto rxscan1309_scan
- rxscan1309_loop:
- ($P10) = rx1306_cur."from"()
- inc $P10
- set rx1306_pos, $P10
- ge rx1306_pos, rx1306_eos, rxscan1309_done
- rxscan1309_scan:
- set_addr $I10, rxscan1309_loop
- rx1306_cur."!mark_push"(0, rx1306_pos, $I10)
- rxscan1309_done:
-.annotate 'line', 558
+.sub "_block1346" :anon :subid("344_1275811487.95429") :method :outer("342_1275811487.95429")
+.annotate 'line', 565
+ .local string rx1348_tgt
+ .local int rx1348_pos
+ .local int rx1348_off
+ .local int rx1348_eos
+ .local int rx1348_rep
+ .local pmc rx1348_cur
+ (rx1348_cur, rx1348_pos, rx1348_tgt) = self."!cursor_start"()
+ rx1348_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx1348_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1348_eos, rx1348_tgt
+ gt rx1348_pos, rx1348_eos, rx1348_done
+ set rx1348_off, 0
+ lt rx1348_pos, 2, rx1348_start
+ sub rx1348_off, rx1348_pos, 1
+ substr rx1348_tgt, rx1348_tgt, rx1348_off
+ rx1348_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1349_done
+ goto rxscan1349_scan
+ rxscan1349_loop:
+ ($P10) = rx1348_cur."from"()
+ inc $P10
+ set rx1348_pos, $P10
+ ge rx1348_pos, rx1348_eos, rxscan1349_done
+ rxscan1349_scan:
+ set_addr $I10, rxscan1349_loop
+ rx1348_cur."!mark_push"(0, rx1348_pos, $I10)
+ rxscan1349_done:
+ # rx literal "my"
+ add $I11, rx1348_pos, 2
+ gt $I11, rx1348_eos, rx1348_fail
+ sub $I11, rx1348_pos, rx1348_off
+ substr $S10, rx1348_tgt, $I11, 2
+ ne $S10, "my", rx1348_fail
+ add rx1348_pos, 2
+ # rx pass
+ rx1348_cur."!cursor_pass"(rx1348_pos, "")
+ rx1348_cur."!cursor_debug"("PASS ", "", " at pos=", rx1348_pos)
+ .return (rx1348_cur)
+ rx1348_fail:
+ (rx1348_rep, rx1348_pos, $I10, $P10) = rx1348_cur."!mark_fail"(0)
+ lt rx1348_pos, -1, rx1348_done
+ eq rx1348_pos, -1, rx1348_fail
+ jump $I10
+ rx1348_done:
+ rx1348_cur."!cursor_fail"()
+ rx1348_cur."!cursor_debug"("FAIL ", "")
+ .return (rx1348_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "metachar:sym<{ }>" :subid("345_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+ .local string rx1351_tgt
+ .local int rx1351_pos
+ .local int rx1351_off
+ .local int rx1351_eos
+ .local int rx1351_rep
+ .local pmc rx1351_cur
+ (rx1351_cur, rx1351_pos, rx1351_tgt) = self."!cursor_start"()
+ rx1351_cur."!cursor_debug"("START ", "metachar:sym<{ }>")
+ .lex unicode:"$\x{a2}", rx1351_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1351_eos, rx1351_tgt
+ gt rx1351_pos, rx1351_eos, rx1351_done
+ set rx1351_off, 0
+ lt rx1351_pos, 2, rx1351_start
+ sub rx1351_off, rx1351_pos, 1
+ substr rx1351_tgt, rx1351_tgt, rx1351_off
+ rx1351_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1354_done
+ goto rxscan1354_scan
+ rxscan1354_loop:
+ ($P10) = rx1351_cur."from"()
+ inc $P10
+ set rx1351_pos, $P10
+ ge rx1351_pos, rx1351_eos, rxscan1354_done
+ rxscan1354_scan:
+ set_addr $I10, rxscan1354_loop
+ rx1351_cur."!mark_push"(0, rx1351_pos, $I10)
+ rxscan1354_done:
+.annotate 'line', 569
# rx enumcharlist negate=0 zerowidth
- ge rx1306_pos, rx1306_eos, rx1306_fail
- sub $I10, rx1306_pos, rx1306_off
- substr $S10, rx1306_tgt, $I10, 1
+ ge rx1351_pos, rx1351_eos, rx1351_fail
+ sub $I10, rx1351_pos, rx1351_off
+ substr $S10, rx1351_tgt, $I10, 1
index $I11, "{", $S10
- lt $I11, 0, rx1306_fail
+ lt $I11, 0, rx1351_fail
# rx subrule "codeblock" subtype=capture negate=
- rx1306_cur."!cursor_pos"(rx1306_pos)
- $P10 = rx1306_cur."codeblock"()
- unless $P10, rx1306_fail
- rx1306_cur."!mark_push"(0, -1, 0, $P10)
+ rx1351_cur."!cursor_pos"(rx1351_pos)
+ $P10 = rx1351_cur."codeblock"()
+ unless $P10, rx1351_fail
+ rx1351_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("codeblock")
- rx1306_pos = $P10."pos"()
-.annotate 'line', 557
+ rx1351_pos = $P10."pos"()
+.annotate 'line', 568
# rx pass
- rx1306_cur."!cursor_pass"(rx1306_pos, "assertion:sym<{ }>")
- rx1306_cur."!cursor_debug"("PASS ", "assertion:sym<{ }>", " at pos=", rx1306_pos)
- .return (rx1306_cur)
- rx1306_fail:
-.annotate 'line', 548
- (rx1306_rep, rx1306_pos, $I10, $P10) = rx1306_cur."!mark_fail"(0)
- lt rx1306_pos, -1, rx1306_done
- eq rx1306_pos, -1, rx1306_fail
- jump $I10
- rx1306_done:
- rx1306_cur."!cursor_fail"()
- rx1306_cur."!cursor_debug"("FAIL ", "assertion:sym<{ }>")
- .return (rx1306_cur)
+ rx1351_cur."!cursor_pass"(rx1351_pos, "metachar:sym<{ }>")
+ rx1351_cur."!cursor_debug"("PASS ", "metachar:sym<{ }>", " at pos=", rx1351_pos)
+ .return (rx1351_cur)
+ rx1351_fail:
+.annotate 'line', 563
+ (rx1351_rep, rx1351_pos, $I10, $P10) = rx1351_cur."!mark_fail"(0)
+ lt rx1351_pos, -1, rx1351_done
+ eq rx1351_pos, -1, rx1351_fail
+ jump $I10
+ rx1351_done:
+ rx1351_cur."!cursor_fail"()
+ rx1351_cur."!cursor_debug"("FAIL ", "metachar:sym<{ }>")
+ .return (rx1351_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<{ }>" :subid("337_1274022894.43745") :method
-.annotate 'line', 548
- new $P1308, "ResizablePMCArray"
- push $P1308, "{"
- .return ($P1308)
+.sub "!PREFIX__metachar:sym<{ }>" :subid("346_1275811487.95429") :method
+.annotate 'line', 563
+ new $P1353, "ResizablePMCArray"
+ push $P1353, "{"
+ .return ($P1353)
.end
.namespace ["NQP";"Regex"]
-.sub "assertion:sym<name>" :subid("338_1274022894.43745") :method :outer("330_1274022894.43745")
-.annotate 'line', 548
- .const 'Sub' $P1319 = "340_1274022894.43745"
- capture_lex $P1319
- .local string rx1311_tgt
- .local int rx1311_pos
- .local int rx1311_off
- .local int rx1311_eos
- .local int rx1311_rep
- .local pmc rx1311_cur
- (rx1311_cur, rx1311_pos, rx1311_tgt) = self."!cursor_start"()
- rx1311_cur."!cursor_debug"("START ", "assertion:sym<name>")
- rx1311_cur."!cursor_caparray"("arglist", "nibbler", "assertion")
- .lex unicode:"$\x{a2}", rx1311_cur
- .local pmc match
- .lex "$/", match
- length rx1311_eos, rx1311_tgt
- set rx1311_off, 0
- lt rx1311_pos, 2, rx1311_start
- sub rx1311_off, rx1311_pos, 1
- substr rx1311_tgt, rx1311_tgt, rx1311_off
- rx1311_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1314_done
- goto rxscan1314_scan
- rxscan1314_loop:
- ($P10) = rx1311_cur."from"()
- inc $P10
- set rx1311_pos, $P10
- ge rx1311_pos, rx1311_eos, rxscan1314_done
- rxscan1314_scan:
- set_addr $I10, rxscan1314_loop
- rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
- rxscan1314_done:
-.annotate 'line', 562
- # rx subcapture "longname"
- set_addr $I10, rxcap_1315_fail
- rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
- # rx charclass_q w r 1..-1
- sub $I10, rx1311_pos, rx1311_off
- find_not_cclass $I11, 8192, rx1311_tgt, $I10, rx1311_eos
- add $I12, $I10, 1
- lt $I11, $I12, rx1311_fail
- add rx1311_pos, rx1311_off, $I11
- set_addr $I10, rxcap_1315_fail
- ($I12, $I11) = rx1311_cur."!mark_peek"($I10)
- rx1311_cur."!cursor_pos"($I11)
- ($P10) = rx1311_cur."!cursor_start"()
- $P10."!cursor_pass"(rx1311_pos, "")
- rx1311_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("longname")
- goto rxcap_1315_done
- rxcap_1315_fail:
- goto rx1311_fail
- rxcap_1315_done:
-.annotate 'line', 569
- # rx rxquantr1316 ** 0..1
- set_addr $I1322, rxquantr1316_done
- rx1311_cur."!mark_push"(0, rx1311_pos, $I1322)
- rxquantr1316_loop:
- alt1317_0:
+.sub "metachar:sym<nqpvar>" :subid("347_1275811487.95429") :method :outer("341_1275811487.95429")
.annotate 'line', 563
- set_addr $I10, alt1317_1
- rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
-.annotate 'line', 564
+ .const 'Sub' $P1361 = "349_1275811487.95429"
+ capture_lex $P1361
+ .local string rx1356_tgt
+ .local int rx1356_pos
+ .local int rx1356_off
+ .local int rx1356_eos
+ .local int rx1356_rep
+ .local pmc rx1356_cur
+ (rx1356_cur, rx1356_pos, rx1356_tgt) = self."!cursor_start"()
+ rx1356_cur."!cursor_debug"("START ", "metachar:sym<nqpvar>")
+ .lex unicode:"$\x{a2}", rx1356_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1356_eos, rx1356_tgt
+ gt rx1356_pos, rx1356_eos, rx1356_done
+ set rx1356_off, 0
+ lt rx1356_pos, 2, rx1356_start
+ sub rx1356_off, rx1356_pos, 1
+ substr rx1356_tgt, rx1356_tgt, rx1356_off
+ rx1356_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1359_done
+ goto rxscan1359_scan
+ rxscan1359_loop:
+ ($P10) = rx1356_cur."from"()
+ inc $P10
+ set rx1356_pos, $P10
+ ge rx1356_pos, rx1356_eos, rxscan1359_done
+ rxscan1359_scan:
+ set_addr $I10, rxscan1359_loop
+ rx1356_cur."!mark_push"(0, rx1356_pos, $I10)
+ rxscan1359_done:
+.annotate 'line', 573
+ # rx enumcharlist negate=0 zerowidth
+ ge rx1356_pos, rx1356_eos, rx1356_fail
+ sub $I10, rx1356_pos, rx1356_off
+ substr $S10, rx1356_tgt, $I10, 1
+ index $I11, "$@", $S10
+ lt $I11, 0, rx1356_fail
# rx subrule "before" subtype=zerowidth negate=
- rx1311_cur."!cursor_pos"(rx1311_pos)
- .const 'Sub' $P1319 = "340_1274022894.43745"
- capture_lex $P1319
- $P10 = rx1311_cur."before"($P1319)
- unless $P10, rx1311_fail
- goto alt1317_end
- alt1317_1:
- set_addr $I10, alt1317_2
- rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
-.annotate 'line', 565
- # rx literal "="
- add $I11, rx1311_pos, 1
- gt $I11, rx1311_eos, rx1311_fail
- sub $I11, rx1311_pos, rx1311_off
- substr $S10, rx1311_tgt, $I11, 1
- ne $S10, "=", rx1311_fail
- add rx1311_pos, 1
- # rx subrule "assertion" subtype=capture negate=
- rx1311_cur."!cursor_pos"(rx1311_pos)
- $P10 = rx1311_cur."assertion"()
- unless $P10, rx1311_fail
- rx1311_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("assertion")
- rx1311_pos = $P10."pos"()
- goto alt1317_end
- alt1317_2:
- set_addr $I10, alt1317_3
- rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
-.annotate 'line', 566
- # rx literal ":"
- add $I11, rx1311_pos, 1
- gt $I11, rx1311_eos, rx1311_fail
- sub $I11, rx1311_pos, rx1311_off
- substr $S10, rx1311_tgt, $I11, 1
- ne $S10, ":", rx1311_fail
- add rx1311_pos, 1
- # rx subrule "arglist" subtype=capture negate=
- rx1311_cur."!cursor_pos"(rx1311_pos)
- $P10 = rx1311_cur."arglist"()
- unless $P10, rx1311_fail
- rx1311_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("arglist")
- rx1311_pos = $P10."pos"()
- goto alt1317_end
- alt1317_3:
- set_addr $I10, alt1317_4
- rx1311_cur."!mark_push"(0, rx1311_pos, $I10)
-.annotate 'line', 567
- # rx literal "("
- add $I11, rx1311_pos, 1
- gt $I11, rx1311_eos, rx1311_fail
- sub $I11, rx1311_pos, rx1311_off
- substr $S10, rx1311_tgt, $I11, 1
- ne $S10, "(", rx1311_fail
- add rx1311_pos, 1
+ rx1356_cur."!cursor_pos"(rx1356_pos)
+ .const 'Sub' $P1361 = "349_1275811487.95429"
+ capture_lex $P1361
+ $P10 = rx1356_cur."before"($P1361)
+ unless $P10, rx1356_fail
# rx subrule "LANG" subtype=capture negate=
- rx1311_cur."!cursor_pos"(rx1311_pos)
- $P10 = rx1311_cur."LANG"("MAIN", "arglist")
- unless $P10, rx1311_fail
- rx1311_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("arglist")
- rx1311_pos = $P10."pos"()
- # rx literal ")"
- add $I11, rx1311_pos, 1
- gt $I11, rx1311_eos, rx1311_fail
- sub $I11, rx1311_pos, rx1311_off
- substr $S10, rx1311_tgt, $I11, 1
- ne $S10, ")", rx1311_fail
- add rx1311_pos, 1
- goto alt1317_end
- alt1317_4:
-.annotate 'line', 568
- # rx subrule "normspace" subtype=method negate=
- rx1311_cur."!cursor_pos"(rx1311_pos)
- $P10 = rx1311_cur."normspace"()
- unless $P10, rx1311_fail
- rx1311_pos = $P10."pos"()
- # rx subrule "nibbler" subtype=capture negate=
- rx1311_cur."!cursor_pos"(rx1311_pos)
- $P10 = rx1311_cur."nibbler"()
- unless $P10, rx1311_fail
- rx1311_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("nibbler")
- rx1311_pos = $P10."pos"()
- alt1317_end:
-.annotate 'line', 569
- (rx1311_rep) = rx1311_cur."!mark_commit"($I1322)
- rxquantr1316_done:
-.annotate 'line', 561
+ rx1356_cur."!cursor_pos"(rx1356_pos)
+ $P10 = rx1356_cur."LANG"("MAIN", "variable")
+ unless $P10, rx1356_fail
+ rx1356_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("var")
+ rx1356_pos = $P10."pos"()
+.annotate 'line', 572
# rx pass
- rx1311_cur."!cursor_pass"(rx1311_pos, "assertion:sym<name>")
- rx1311_cur."!cursor_debug"("PASS ", "assertion:sym<name>", " at pos=", rx1311_pos)
- .return (rx1311_cur)
- rx1311_fail:
-.annotate 'line', 548
- (rx1311_rep, rx1311_pos, $I10, $P10) = rx1311_cur."!mark_fail"(0)
- lt rx1311_pos, -1, rx1311_done
- eq rx1311_pos, -1, rx1311_fail
- jump $I10
- rx1311_done:
- rx1311_cur."!cursor_fail"()
- rx1311_cur."!cursor_debug"("FAIL ", "assertion:sym<name>")
- .return (rx1311_cur)
+ rx1356_cur."!cursor_pass"(rx1356_pos, "metachar:sym<nqpvar>")
+ rx1356_cur."!cursor_debug"("PASS ", "metachar:sym<nqpvar>", " at pos=", rx1356_pos)
+ .return (rx1356_cur)
+ rx1356_fail:
+.annotate 'line', 563
+ (rx1356_rep, rx1356_pos, $I10, $P10) = rx1356_cur."!mark_fail"(0)
+ lt rx1356_pos, -1, rx1356_done
+ eq rx1356_pos, -1, rx1356_fail
+ jump $I10
+ rx1356_done:
+ rx1356_cur."!cursor_fail"()
+ rx1356_cur."!cursor_debug"("FAIL ", "metachar:sym<nqpvar>")
+ .return (rx1356_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__assertion:sym<name>" :subid("339_1274022894.43745") :method
-.annotate 'line', 548
- new $P1313, "ResizablePMCArray"
- push $P1313, ""
- .return ($P1313)
+.sub "!PREFIX__metachar:sym<nqpvar>" :subid("348_1275811487.95429") :method
+.annotate 'line', 563
+ new $P1358, "ResizablePMCArray"
+ push $P1358, "$"
+ push $P1358, "@"
+ .return ($P1358)
.end
.namespace ["NQP";"Regex"]
-.sub "_block1318" :anon :subid("340_1274022894.43745") :method :outer("338_1274022894.43745")
-.annotate 'line', 564
- .local string rx1320_tgt
- .local int rx1320_pos
- .local int rx1320_off
- .local int rx1320_eos
- .local int rx1320_rep
- .local pmc rx1320_cur
- (rx1320_cur, rx1320_pos, rx1320_tgt) = self."!cursor_start"()
- rx1320_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx1320_cur
- .local pmc match
- .lex "$/", match
- length rx1320_eos, rx1320_tgt
- set rx1320_off, 0
- lt rx1320_pos, 2, rx1320_start
- sub rx1320_off, rx1320_pos, 1
- substr rx1320_tgt, rx1320_tgt, rx1320_off
- rx1320_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1321_done
- goto rxscan1321_scan
- rxscan1321_loop:
- ($P10) = rx1320_cur."from"()
- inc $P10
- set rx1320_pos, $P10
- ge rx1320_pos, rx1320_eos, rxscan1321_done
- rxscan1321_scan:
- set_addr $I10, rxscan1321_loop
- rx1320_cur."!mark_push"(0, rx1320_pos, $I10)
- rxscan1321_done:
- # rx literal ">"
- add $I11, rx1320_pos, 1
- gt $I11, rx1320_eos, rx1320_fail
- sub $I11, rx1320_pos, rx1320_off
- substr $S10, rx1320_tgt, $I11, 1
- ne $S10, ">", rx1320_fail
- add rx1320_pos, 1
- # rx pass
- rx1320_cur."!cursor_pass"(rx1320_pos, "")
- rx1320_cur."!cursor_debug"("PASS ", "", " at pos=", rx1320_pos)
- .return (rx1320_cur)
- rx1320_fail:
- (rx1320_rep, rx1320_pos, $I10, $P10) = rx1320_cur."!mark_fail"(0)
- lt rx1320_pos, -1, rx1320_done
- eq rx1320_pos, -1, rx1320_fail
- jump $I10
- rx1320_done:
- rx1320_cur."!cursor_fail"()
- rx1320_cur."!cursor_debug"("FAIL ", "")
- .return (rx1320_cur)
+.sub "_block1360" :anon :subid("349_1275811487.95429") :method :outer("347_1275811487.95429")
+.annotate 'line', 573
+ .local string rx1362_tgt
+ .local int rx1362_pos
+ .local int rx1362_off
+ .local int rx1362_eos
+ .local int rx1362_rep
+ .local pmc rx1362_cur
+ (rx1362_cur, rx1362_pos, rx1362_tgt) = self."!cursor_start"()
+ rx1362_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx1362_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1362_eos, rx1362_tgt
+ gt rx1362_pos, rx1362_eos, rx1362_done
+ set rx1362_off, 0
+ lt rx1362_pos, 2, rx1362_start
+ sub rx1362_off, rx1362_pos, 1
+ substr rx1362_tgt, rx1362_tgt, rx1362_off
+ rx1362_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1363_done
+ goto rxscan1363_scan
+ rxscan1363_loop:
+ ($P10) = rx1362_cur."from"()
+ inc $P10
+ set rx1362_pos, $P10
+ ge rx1362_pos, rx1362_eos, rxscan1363_done
+ rxscan1363_scan:
+ set_addr $I10, rxscan1363_loop
+ rx1362_cur."!mark_push"(0, rx1362_pos, $I10)
+ rxscan1363_done:
+ # rx charclass .
+ ge rx1362_pos, rx1362_eos, rx1362_fail
+ inc rx1362_pos
+ # rx charclass w
+ ge rx1362_pos, rx1362_eos, rx1362_fail
+ sub $I10, rx1362_pos, rx1362_off
+ is_cclass $I11, 8192, rx1362_tgt, $I10
+ unless $I11, rx1362_fail
+ inc rx1362_pos
+ # rx pass
+ rx1362_cur."!cursor_pass"(rx1362_pos, "")
+ rx1362_cur."!cursor_debug"("PASS ", "", " at pos=", rx1362_pos)
+ .return (rx1362_cur)
+ rx1362_fail:
+ (rx1362_rep, rx1362_pos, $I10, $P10) = rx1362_cur."!mark_fail"(0)
+ lt rx1362_pos, -1, rx1362_done
+ eq rx1362_pos, -1, rx1362_fail
+ jump $I10
+ rx1362_done:
+ rx1362_cur."!cursor_fail"()
+ rx1362_cur."!cursor_debug"("FAIL ", "")
+ .return (rx1362_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "codeblock" :subid("341_1274022894.43745") :method :outer("330_1274022894.43745")
-.annotate 'line', 548
- .local string rx1324_tgt
- .local int rx1324_pos
- .local int rx1324_off
- .local int rx1324_eos
- .local int rx1324_rep
- .local pmc rx1324_cur
- (rx1324_cur, rx1324_pos, rx1324_tgt) = self."!cursor_start"()
- rx1324_cur."!cursor_debug"("START ", "codeblock")
- .lex unicode:"$\x{a2}", rx1324_cur
- .local pmc match
- .lex "$/", match
- length rx1324_eos, rx1324_tgt
- set rx1324_off, 0
- lt rx1324_pos, 2, rx1324_start
- sub rx1324_off, rx1324_pos, 1
- substr rx1324_tgt, rx1324_tgt, rx1324_off
- rx1324_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan1328_done
- goto rxscan1328_scan
- rxscan1328_loop:
- ($P10) = rx1324_cur."from"()
- inc $P10
- set rx1324_pos, $P10
- ge rx1324_pos, rx1324_eos, rxscan1328_done
- rxscan1328_scan:
- set_addr $I10, rxscan1328_loop
- rx1324_cur."!mark_push"(0, rx1324_pos, $I10)
- rxscan1328_done:
-.annotate 'line', 574
- # rx subrule "LANG" subtype=capture negate=
- rx1324_cur."!cursor_pos"(rx1324_pos)
- $P10 = rx1324_cur."LANG"("MAIN", "pblock")
- unless $P10, rx1324_fail
- rx1324_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("block")
- rx1324_pos = $P10."pos"()
-.annotate 'line', 573
+.sub "assertion:sym<{ }>" :subid("350_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+ .local string rx1365_tgt
+ .local int rx1365_pos
+ .local int rx1365_off
+ .local int rx1365_eos
+ .local int rx1365_rep
+ .local pmc rx1365_cur
+ (rx1365_cur, rx1365_pos, rx1365_tgt) = self."!cursor_start"()
+ rx1365_cur."!cursor_debug"("START ", "assertion:sym<{ }>")
+ .lex unicode:"$\x{a2}", rx1365_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1365_eos, rx1365_tgt
+ gt rx1365_pos, rx1365_eos, rx1365_done
+ set rx1365_off, 0
+ lt rx1365_pos, 2, rx1365_start
+ sub rx1365_off, rx1365_pos, 1
+ substr rx1365_tgt, rx1365_tgt, rx1365_off
+ rx1365_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1368_done
+ goto rxscan1368_scan
+ rxscan1368_loop:
+ ($P10) = rx1365_cur."from"()
+ inc $P10
+ set rx1365_pos, $P10
+ ge rx1365_pos, rx1365_eos, rxscan1368_done
+ rxscan1368_scan:
+ set_addr $I10, rxscan1368_loop
+ rx1365_cur."!mark_push"(0, rx1365_pos, $I10)
+ rxscan1368_done:
+.annotate 'line', 577
+ # rx enumcharlist negate=0 zerowidth
+ ge rx1365_pos, rx1365_eos, rx1365_fail
+ sub $I10, rx1365_pos, rx1365_off
+ substr $S10, rx1365_tgt, $I10, 1
+ index $I11, "{", $S10
+ lt $I11, 0, rx1365_fail
+ # rx subrule "codeblock" subtype=capture negate=
+ rx1365_cur."!cursor_pos"(rx1365_pos)
+ $P10 = rx1365_cur."codeblock"()
+ unless $P10, rx1365_fail
+ rx1365_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("codeblock")
+ rx1365_pos = $P10."pos"()
+.annotate 'line', 576
# rx pass
- rx1324_cur."!cursor_pass"(rx1324_pos, "codeblock")
- rx1324_cur."!cursor_debug"("PASS ", "codeblock", " at pos=", rx1324_pos)
- .return (rx1324_cur)
- rx1324_fail:
-.annotate 'line', 548
- (rx1324_rep, rx1324_pos, $I10, $P10) = rx1324_cur."!mark_fail"(0)
- lt rx1324_pos, -1, rx1324_done
- eq rx1324_pos, -1, rx1324_fail
- jump $I10
- rx1324_done:
- rx1324_cur."!cursor_fail"()
- rx1324_cur."!cursor_debug"("FAIL ", "codeblock")
- .return (rx1324_cur)
+ rx1365_cur."!cursor_pass"(rx1365_pos, "assertion:sym<{ }>")
+ rx1365_cur."!cursor_debug"("PASS ", "assertion:sym<{ }>", " at pos=", rx1365_pos)
+ .return (rx1365_cur)
+ rx1365_fail:
+.annotate 'line', 563
+ (rx1365_rep, rx1365_pos, $I10, $P10) = rx1365_cur."!mark_fail"(0)
+ lt rx1365_pos, -1, rx1365_done
+ eq rx1365_pos, -1, rx1365_fail
+ jump $I10
+ rx1365_done:
+ rx1365_cur."!cursor_fail"()
+ rx1365_cur."!cursor_debug"("FAIL ", "assertion:sym<{ }>")
+ .return (rx1365_cur)
.return ()
.end
.namespace ["NQP";"Regex"]
-.sub "!PREFIX__codeblock" :subid("342_1274022894.43745") :method
-.annotate 'line', 548
- $P1326 = self."!PREFIX__!subrule"("block", "")
- new $P1327, "ResizablePMCArray"
- push $P1327, $P1326
- .return ($P1327)
+.sub "!PREFIX__assertion:sym<{ }>" :subid("351_1275811487.95429") :method
+.annotate 'line', 563
+ new $P1367, "ResizablePMCArray"
+ push $P1367, "{"
+ .return ($P1367)
.end
-.namespace ["NQP";"Grammar"]
-.sub "_block1330" :load :anon :subid("343_1274022894.43745")
-.annotate 'line', 4
- .const 'Sub' $P1332 = "11_1274022894.43745"
- $P1333 = $P1332()
- .return ($P1333)
+.namespace ["NQP";"Regex"]
+.sub "assertion:sym<?{ }>" :subid("352_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+ .const 'Sub' $P1375 = "354_1275811487.95429"
+ capture_lex $P1375
+ .local string rx1370_tgt
+ .local int rx1370_pos
+ .local int rx1370_off
+ .local int rx1370_eos
+ .local int rx1370_rep
+ .local pmc rx1370_cur
+ (rx1370_cur, rx1370_pos, rx1370_tgt) = self."!cursor_start"()
+ rx1370_cur."!cursor_debug"("START ", "assertion:sym<?{ }>")
+ .lex unicode:"$\x{a2}", rx1370_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1370_eos, rx1370_tgt
+ gt rx1370_pos, rx1370_eos, rx1370_done
+ set rx1370_off, 0
+ lt rx1370_pos, 2, rx1370_start
+ sub rx1370_off, rx1370_pos, 1
+ substr rx1370_tgt, rx1370_tgt, rx1370_off
+ rx1370_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1373_done
+ goto rxscan1373_scan
+ rxscan1373_loop:
+ ($P10) = rx1370_cur."from"()
+ inc $P10
+ set rx1370_pos, $P10
+ ge rx1370_pos, rx1370_eos, rxscan1373_done
+ rxscan1373_scan:
+ set_addr $I10, rxscan1373_loop
+ rx1370_cur."!mark_push"(0, rx1370_pos, $I10)
+ rxscan1373_done:
+.annotate 'line', 581
+ # rx subcapture "zw"
+ set_addr $I10, rxcap_1378_fail
+ rx1370_cur."!mark_push"(0, rx1370_pos, $I10)
+ # rx enumcharlist negate=0
+ ge rx1370_pos, rx1370_eos, rx1370_fail
+ sub $I10, rx1370_pos, rx1370_off
+ substr $S10, rx1370_tgt, $I10, 1
+ index $I11, "?!", $S10
+ lt $I11, 0, rx1370_fail
+ inc rx1370_pos
+ # rx subrule "before" subtype=zerowidth negate=
+ rx1370_cur."!cursor_pos"(rx1370_pos)
+ .const 'Sub' $P1375 = "354_1275811487.95429"
+ capture_lex $P1375
+ $P10 = rx1370_cur."before"($P1375)
+ unless $P10, rx1370_fail
+ set_addr $I10, rxcap_1378_fail
+ ($I12, $I11) = rx1370_cur."!mark_peek"($I10)
+ rx1370_cur."!cursor_pos"($I11)
+ ($P10) = rx1370_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1370_pos, "")
+ rx1370_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("zw")
+ goto rxcap_1378_done
+ rxcap_1378_fail:
+ goto rx1370_fail
+ rxcap_1378_done:
+ # rx subrule "codeblock" subtype=capture negate=
+ rx1370_cur."!cursor_pos"(rx1370_pos)
+ $P10 = rx1370_cur."codeblock"()
+ unless $P10, rx1370_fail
+ rx1370_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("codeblock")
+ rx1370_pos = $P10."pos"()
+.annotate 'line', 580
+ # rx pass
+ rx1370_cur."!cursor_pass"(rx1370_pos, "assertion:sym<?{ }>")
+ rx1370_cur."!cursor_debug"("PASS ", "assertion:sym<?{ }>", " at pos=", rx1370_pos)
+ .return (rx1370_cur)
+ rx1370_fail:
+.annotate 'line', 563
+ (rx1370_rep, rx1370_pos, $I10, $P10) = rx1370_cur."!mark_fail"(0)
+ lt rx1370_pos, -1, rx1370_done
+ eq rx1370_pos, -1, rx1370_fail
+ jump $I10
+ rx1370_done:
+ rx1370_cur."!cursor_fail"()
+ rx1370_cur."!cursor_debug"("FAIL ", "assertion:sym<?{ }>")
+ .return (rx1370_cur)
+ .return ()
.end
-.namespace []
-.sub "_block1351" :load :anon :subid("344_1274022894.43745")
-.annotate 'line', 1
- .const 'Sub' $P1353 = "10_1274022894.43745"
- $P1354 = $P1353()
- .return ($P1354)
+.namespace ["NQP";"Regex"]
+.sub "!PREFIX__assertion:sym<?{ }>" :subid("353_1275811487.95429") :method
+.annotate 'line', 563
+ new $P1372, "ResizablePMCArray"
+ push $P1372, "!"
+ push $P1372, "?"
+ .return ($P1372)
.end
-### .include 'gen/nqp-actions.pir'
-.namespace []
-.sub "_block11" :anon :subid("10_1274022903.56472")
+.namespace ["NQP";"Regex"]
+.sub "_block1374" :anon :subid("354_1275811487.95429") :method :outer("352_1275811487.95429")
+.annotate 'line', 581
+ .local string rx1376_tgt
+ .local int rx1376_pos
+ .local int rx1376_off
+ .local int rx1376_eos
+ .local int rx1376_rep
+ .local pmc rx1376_cur
+ (rx1376_cur, rx1376_pos, rx1376_tgt) = self."!cursor_start"()
+ rx1376_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx1376_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1376_eos, rx1376_tgt
+ gt rx1376_pos, rx1376_eos, rx1376_done
+ set rx1376_off, 0
+ lt rx1376_pos, 2, rx1376_start
+ sub rx1376_off, rx1376_pos, 1
+ substr rx1376_tgt, rx1376_tgt, rx1376_off
+ rx1376_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1377_done
+ goto rxscan1377_scan
+ rxscan1377_loop:
+ ($P10) = rx1376_cur."from"()
+ inc $P10
+ set rx1376_pos, $P10
+ ge rx1376_pos, rx1376_eos, rxscan1377_done
+ rxscan1377_scan:
+ set_addr $I10, rxscan1377_loop
+ rx1376_cur."!mark_push"(0, rx1376_pos, $I10)
+ rxscan1377_done:
+ # rx literal "{"
+ add $I11, rx1376_pos, 1
+ gt $I11, rx1376_eos, rx1376_fail
+ sub $I11, rx1376_pos, rx1376_off
+ substr $S10, rx1376_tgt, $I11, 1
+ ne $S10, "{", rx1376_fail
+ add rx1376_pos, 1
+ # rx pass
+ rx1376_cur."!cursor_pass"(rx1376_pos, "")
+ rx1376_cur."!cursor_debug"("PASS ", "", " at pos=", rx1376_pos)
+ .return (rx1376_cur)
+ rx1376_fail:
+ (rx1376_rep, rx1376_pos, $I10, $P10) = rx1376_cur."!mark_fail"(0)
+ lt rx1376_pos, -1, rx1376_done
+ eq rx1376_pos, -1, rx1376_fail
+ jump $I10
+ rx1376_done:
+ rx1376_cur."!cursor_fail"()
+ rx1376_cur."!cursor_debug"("FAIL ", "")
+ .return (rx1376_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "assertion:sym<name>" :subid("355_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+ .const 'Sub' $P1388 = "357_1275811487.95429"
+ capture_lex $P1388
+ .local string rx1380_tgt
+ .local int rx1380_pos
+ .local int rx1380_off
+ .local int rx1380_eos
+ .local int rx1380_rep
+ .local pmc rx1380_cur
+ (rx1380_cur, rx1380_pos, rx1380_tgt) = self."!cursor_start"()
+ rx1380_cur."!cursor_debug"("START ", "assertion:sym<name>")
+ rx1380_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+ .lex unicode:"$\x{a2}", rx1380_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1380_eos, rx1380_tgt
+ gt rx1380_pos, rx1380_eos, rx1380_done
+ set rx1380_off, 0
+ lt rx1380_pos, 2, rx1380_start
+ sub rx1380_off, rx1380_pos, 1
+ substr rx1380_tgt, rx1380_tgt, rx1380_off
+ rx1380_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1383_done
+ goto rxscan1383_scan
+ rxscan1383_loop:
+ ($P10) = rx1380_cur."from"()
+ inc $P10
+ set rx1380_pos, $P10
+ ge rx1380_pos, rx1380_eos, rxscan1383_done
+ rxscan1383_scan:
+ set_addr $I10, rxscan1383_loop
+ rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+ rxscan1383_done:
+.annotate 'line', 585
+ # rx subcapture "longname"
+ set_addr $I10, rxcap_1384_fail
+ rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+ # rx charclass_q w r 1..-1
+ sub $I10, rx1380_pos, rx1380_off
+ find_not_cclass $I11, 8192, rx1380_tgt, $I10, rx1380_eos
+ add $I12, $I10, 1
+ lt $I11, $I12, rx1380_fail
+ add rx1380_pos, rx1380_off, $I11
+ set_addr $I10, rxcap_1384_fail
+ ($I12, $I11) = rx1380_cur."!mark_peek"($I10)
+ rx1380_cur."!cursor_pos"($I11)
+ ($P10) = rx1380_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx1380_pos, "")
+ rx1380_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("longname")
+ goto rxcap_1384_done
+ rxcap_1384_fail:
+ goto rx1380_fail
+ rxcap_1384_done:
+.annotate 'line', 592
+ # rx rxquantr1385 ** 0..1
+ set_addr $I1391, rxquantr1385_done
+ rx1380_cur."!mark_push"(0, rx1380_pos, $I1391)
+ rxquantr1385_loop:
+ alt1386_0:
+.annotate 'line', 586
+ set_addr $I10, alt1386_1
+ rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+.annotate 'line', 587
+ # rx subrule "before" subtype=zerowidth negate=
+ rx1380_cur."!cursor_pos"(rx1380_pos)
+ .const 'Sub' $P1388 = "357_1275811487.95429"
+ capture_lex $P1388
+ $P10 = rx1380_cur."before"($P1388)
+ unless $P10, rx1380_fail
+ goto alt1386_end
+ alt1386_1:
+ set_addr $I10, alt1386_2
+ rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+.annotate 'line', 588
+ # rx literal "="
+ add $I11, rx1380_pos, 1
+ gt $I11, rx1380_eos, rx1380_fail
+ sub $I11, rx1380_pos, rx1380_off
+ substr $S10, rx1380_tgt, $I11, 1
+ ne $S10, "=", rx1380_fail
+ add rx1380_pos, 1
+ # rx subrule "assertion" subtype=capture negate=
+ rx1380_cur."!cursor_pos"(rx1380_pos)
+ $P10 = rx1380_cur."assertion"()
+ unless $P10, rx1380_fail
+ rx1380_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("assertion")
+ rx1380_pos = $P10."pos"()
+ goto alt1386_end
+ alt1386_2:
+ set_addr $I10, alt1386_3
+ rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+.annotate 'line', 589
+ # rx literal ":"
+ add $I11, rx1380_pos, 1
+ gt $I11, rx1380_eos, rx1380_fail
+ sub $I11, rx1380_pos, rx1380_off
+ substr $S10, rx1380_tgt, $I11, 1
+ ne $S10, ":", rx1380_fail
+ add rx1380_pos, 1
+ # rx subrule "arglist" subtype=capture negate=
+ rx1380_cur."!cursor_pos"(rx1380_pos)
+ $P10 = rx1380_cur."arglist"()
+ unless $P10, rx1380_fail
+ rx1380_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("arglist")
+ rx1380_pos = $P10."pos"()
+ goto alt1386_end
+ alt1386_3:
+ set_addr $I10, alt1386_4
+ rx1380_cur."!mark_push"(0, rx1380_pos, $I10)
+.annotate 'line', 590
+ # rx literal "("
+ add $I11, rx1380_pos, 1
+ gt $I11, rx1380_eos, rx1380_fail
+ sub $I11, rx1380_pos, rx1380_off
+ substr $S10, rx1380_tgt, $I11, 1
+ ne $S10, "(", rx1380_fail
+ add rx1380_pos, 1
+ # rx subrule "LANG" subtype=capture negate=
+ rx1380_cur."!cursor_pos"(rx1380_pos)
+ $P10 = rx1380_cur."LANG"("MAIN", "arglist")
+ unless $P10, rx1380_fail
+ rx1380_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("arglist")
+ rx1380_pos = $P10."pos"()
+ # rx literal ")"
+ add $I11, rx1380_pos, 1
+ gt $I11, rx1380_eos, rx1380_fail
+ sub $I11, rx1380_pos, rx1380_off
+ substr $S10, rx1380_tgt, $I11, 1
+ ne $S10, ")", rx1380_fail
+ add rx1380_pos, 1
+ goto alt1386_end
+ alt1386_4:
+.annotate 'line', 591
+ # rx subrule "normspace" subtype=method negate=
+ rx1380_cur."!cursor_pos"(rx1380_pos)
+ $P10 = rx1380_cur."normspace"()
+ unless $P10, rx1380_fail
+ rx1380_pos = $P10."pos"()
+ # rx subrule "nibbler" subtype=capture negate=
+ rx1380_cur."!cursor_pos"(rx1380_pos)
+ $P10 = rx1380_cur."nibbler"()
+ unless $P10, rx1380_fail
+ rx1380_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("nibbler")
+ rx1380_pos = $P10."pos"()
+ alt1386_end:
+.annotate 'line', 592
+ (rx1380_rep) = rx1380_cur."!mark_commit"($I1391)
+ rxquantr1385_done:
+.annotate 'line', 584
+ # rx pass
+ rx1380_cur."!cursor_pass"(rx1380_pos, "assertion:sym<name>")
+ rx1380_cur."!cursor_debug"("PASS ", "assertion:sym<name>", " at pos=", rx1380_pos)
+ .return (rx1380_cur)
+ rx1380_fail:
+.annotate 'line', 563
+ (rx1380_rep, rx1380_pos, $I10, $P10) = rx1380_cur."!mark_fail"(0)
+ lt rx1380_pos, -1, rx1380_done
+ eq rx1380_pos, -1, rx1380_fail
+ jump $I10
+ rx1380_done:
+ rx1380_cur."!cursor_fail"()
+ rx1380_cur."!cursor_debug"("FAIL ", "assertion:sym<name>")
+ .return (rx1380_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "!PREFIX__assertion:sym<name>" :subid("356_1275811487.95429") :method
+.annotate 'line', 563
+ new $P1382, "ResizablePMCArray"
+ push $P1382, ""
+ .return ($P1382)
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "_block1387" :anon :subid("357_1275811487.95429") :method :outer("355_1275811487.95429")
+.annotate 'line', 587
+ .local string rx1389_tgt
+ .local int rx1389_pos
+ .local int rx1389_off
+ .local int rx1389_eos
+ .local int rx1389_rep
+ .local pmc rx1389_cur
+ (rx1389_cur, rx1389_pos, rx1389_tgt) = self."!cursor_start"()
+ rx1389_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx1389_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1389_eos, rx1389_tgt
+ gt rx1389_pos, rx1389_eos, rx1389_done
+ set rx1389_off, 0
+ lt rx1389_pos, 2, rx1389_start
+ sub rx1389_off, rx1389_pos, 1
+ substr rx1389_tgt, rx1389_tgt, rx1389_off
+ rx1389_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1390_done
+ goto rxscan1390_scan
+ rxscan1390_loop:
+ ($P10) = rx1389_cur."from"()
+ inc $P10
+ set rx1389_pos, $P10
+ ge rx1389_pos, rx1389_eos, rxscan1390_done
+ rxscan1390_scan:
+ set_addr $I10, rxscan1390_loop
+ rx1389_cur."!mark_push"(0, rx1389_pos, $I10)
+ rxscan1390_done:
+ # rx literal ">"
+ add $I11, rx1389_pos, 1
+ gt $I11, rx1389_eos, rx1389_fail
+ sub $I11, rx1389_pos, rx1389_off
+ substr $S10, rx1389_tgt, $I11, 1
+ ne $S10, ">", rx1389_fail
+ add rx1389_pos, 1
+ # rx pass
+ rx1389_cur."!cursor_pass"(rx1389_pos, "")
+ rx1389_cur."!cursor_debug"("PASS ", "", " at pos=", rx1389_pos)
+ .return (rx1389_cur)
+ rx1389_fail:
+ (rx1389_rep, rx1389_pos, $I10, $P10) = rx1389_cur."!mark_fail"(0)
+ lt rx1389_pos, -1, rx1389_done
+ eq rx1389_pos, -1, rx1389_fail
+ jump $I10
+ rx1389_done:
+ rx1389_cur."!cursor_fail"()
+ rx1389_cur."!cursor_debug"("FAIL ", "")
+ .return (rx1389_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "assertion:sym<var>" :subid("358_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+ .local string rx1393_tgt
+ .local int rx1393_pos
+ .local int rx1393_off
+ .local int rx1393_eos
+ .local int rx1393_rep
+ .local pmc rx1393_cur
+ (rx1393_cur, rx1393_pos, rx1393_tgt) = self."!cursor_start"()
+ rx1393_cur."!cursor_debug"("START ", "assertion:sym<var>")
+ .lex unicode:"$\x{a2}", rx1393_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1393_eos, rx1393_tgt
+ gt rx1393_pos, rx1393_eos, rx1393_done
+ set rx1393_off, 0
+ lt rx1393_pos, 2, rx1393_start
+ sub rx1393_off, rx1393_pos, 1
+ substr rx1393_tgt, rx1393_tgt, rx1393_off
+ rx1393_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1396_done
+ goto rxscan1396_scan
+ rxscan1396_loop:
+ ($P10) = rx1393_cur."from"()
+ inc $P10
+ set rx1393_pos, $P10
+ ge rx1393_pos, rx1393_eos, rxscan1396_done
+ rxscan1396_scan:
+ set_addr $I10, rxscan1396_loop
+ rx1393_cur."!mark_push"(0, rx1393_pos, $I10)
+ rxscan1396_done:
+.annotate 'line', 596
+ # rx enumcharlist negate=0 zerowidth
+ ge rx1393_pos, rx1393_eos, rx1393_fail
+ sub $I10, rx1393_pos, rx1393_off
+ substr $S10, rx1393_tgt, $I10, 1
+ index $I11, "$@", $S10
+ lt $I11, 0, rx1393_fail
+ # rx subrule "LANG" subtype=capture negate=
+ rx1393_cur."!cursor_pos"(rx1393_pos)
+ $P10 = rx1393_cur."LANG"("MAIN", "variable")
+ unless $P10, rx1393_fail
+ rx1393_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("var")
+ rx1393_pos = $P10."pos"()
+.annotate 'line', 595
+ # rx pass
+ rx1393_cur."!cursor_pass"(rx1393_pos, "assertion:sym<var>")
+ rx1393_cur."!cursor_debug"("PASS ", "assertion:sym<var>", " at pos=", rx1393_pos)
+ .return (rx1393_cur)
+ rx1393_fail:
+.annotate 'line', 563
+ (rx1393_rep, rx1393_pos, $I10, $P10) = rx1393_cur."!mark_fail"(0)
+ lt rx1393_pos, -1, rx1393_done
+ eq rx1393_pos, -1, rx1393_fail
+ jump $I10
+ rx1393_done:
+ rx1393_cur."!cursor_fail"()
+ rx1393_cur."!cursor_debug"("FAIL ", "assertion:sym<var>")
+ .return (rx1393_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "!PREFIX__assertion:sym<var>" :subid("359_1275811487.95429") :method
+.annotate 'line', 563
+ new $P1395, "ResizablePMCArray"
+ push $P1395, "$"
+ push $P1395, "@"
+ .return ($P1395)
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "codeblock" :subid("360_1275811487.95429") :method :outer("341_1275811487.95429")
+.annotate 'line', 563
+ .local string rx1398_tgt
+ .local int rx1398_pos
+ .local int rx1398_off
+ .local int rx1398_eos
+ .local int rx1398_rep
+ .local pmc rx1398_cur
+ (rx1398_cur, rx1398_pos, rx1398_tgt) = self."!cursor_start"()
+ rx1398_cur."!cursor_debug"("START ", "codeblock")
+ .lex unicode:"$\x{a2}", rx1398_cur
+ .local pmc match
+ .lex "$/", match
+ length rx1398_eos, rx1398_tgt
+ gt rx1398_pos, rx1398_eos, rx1398_done
+ set rx1398_off, 0
+ lt rx1398_pos, 2, rx1398_start
+ sub rx1398_off, rx1398_pos, 1
+ substr rx1398_tgt, rx1398_tgt, rx1398_off
+ rx1398_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan1402_done
+ goto rxscan1402_scan
+ rxscan1402_loop:
+ ($P10) = rx1398_cur."from"()
+ inc $P10
+ set rx1398_pos, $P10
+ ge rx1398_pos, rx1398_eos, rxscan1402_done
+ rxscan1402_scan:
+ set_addr $I10, rxscan1402_loop
+ rx1398_cur."!mark_push"(0, rx1398_pos, $I10)
+ rxscan1402_done:
+.annotate 'line', 600
+ # rx subrule "LANG" subtype=capture negate=
+ rx1398_cur."!cursor_pos"(rx1398_pos)
+ $P10 = rx1398_cur."LANG"("MAIN", "pblock")
+ unless $P10, rx1398_fail
+ rx1398_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("block")
+ rx1398_pos = $P10."pos"()
+.annotate 'line', 599
+ # rx pass
+ rx1398_cur."!cursor_pass"(rx1398_pos, "codeblock")
+ rx1398_cur."!cursor_debug"("PASS ", "codeblock", " at pos=", rx1398_pos)
+ .return (rx1398_cur)
+ rx1398_fail:
+.annotate 'line', 563
+ (rx1398_rep, rx1398_pos, $I10, $P10) = rx1398_cur."!mark_fail"(0)
+ lt rx1398_pos, -1, rx1398_done
+ eq rx1398_pos, -1, rx1398_fail
+ jump $I10
+ rx1398_done:
+ rx1398_cur."!cursor_fail"()
+ rx1398_cur."!cursor_debug"("FAIL ", "codeblock")
+ .return (rx1398_cur)
+ .return ()
+.end
+
+
+.namespace ["NQP";"Regex"]
+.sub "!PREFIX__codeblock" :subid("361_1275811487.95429") :method
+.annotate 'line', 563
+ $P1400 = self."!PREFIX__!subrule"("LANG", "")
+ new $P1401, "ResizablePMCArray"
+ push $P1401, $P1400
+ .return ($P1401)
+.end
+
+
+.namespace ["NQP";"Grammar"]
+.sub "_block1404" :load :anon :subid("362_1275811487.95429")
+.annotate 'line', 4
+ .const 'Sub' $P1406 = "11_1275811487.95429"
+ $P1407 = $P1406()
+ .return ($P1407)
+.end
+
+
+.namespace []
+.sub "_block1425" :load :anon :subid("363_1275811487.95429")
+.annotate 'line', 1
+ .const 'Sub' $P1427 = "10_1275811487.95429"
+ $P1428 = $P1427()
+ .return ($P1428)
+.end
+
+### .include 'gen/nqp-actions.pir'
+
+.namespace []
+.sub "_block11" :anon :subid("10_1275811497.55064")
.annotate 'line', 0
get_hll_global $P14, ["NQP";"Actions"], "_block13"
capture_lex $P14
+.annotate 'line', 1
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
.annotate 'line', 3
get_hll_global $P14, ["NQP";"Actions"], "_block13"
capture_lex $P14
- $P2262 = $P14()
+ $P2424 = $P14()
.annotate 'line', 1
- .return ($P2262)
- .const 'Sub' $P2264 = "133_1274022903.56472"
- .return ($P2264)
+ .return ($P2424)
+ .const 'Sub' $P2426 = "143_1275811497.55064"
+ .return ($P2426)
.end
.namespace []
-.sub "" :load :init :subid("post134") :outer("10_1274022903.56472")
+.sub "" :load :init :subid("post144") :outer("10_1275811497.55064")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1274022903.56472"
+ .const 'Sub' $P12 = "10_1275811497.55064"
.local pmc block
set block, $P12
- $P2267 = get_root_global ["parrot"], "P6metaclass"
- $P2267."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
+ $P2429 = get_root_global ["parrot"], "P6metaclass"
+ $P2429."new_class"("NQP::Actions", "HLL::Actions" :named("parent"))
.end
.namespace ["NQP";"Actions"]
-.sub "_block13" :subid("11_1274022903.56472") :outer("10_1274022903.56472")
+.sub "_block13" :subid("11_1275811497.55064") :outer("10_1275811497.55064")
.annotate 'line', 3
- .const 'Sub' $P2258 = "132_1274022903.56472"
+ .const 'Sub' $P2420 = "142_1275811497.55064"
+ capture_lex $P2420
+ get_hll_global $P2303, ["NQP";"RegexActions"], "_block2302"
+ capture_lex $P2303
+ .const 'Sub' $P2292 = "132_1275811497.55064"
+ capture_lex $P2292
+ .const 'Sub' $P2285 = "131_1275811497.55064"
+ capture_lex $P2285
+ .const 'Sub' $P2278 = "130_1275811497.55064"
+ capture_lex $P2278
+ .const 'Sub' $P2271 = "129_1275811497.55064"
+ capture_lex $P2271
+ .const 'Sub' $P2258 = "128_1275811497.55064"
capture_lex $P2258
- get_hll_global $P2189, ["NQP";"RegexActions"], "_block2188"
- capture_lex $P2189
- .const 'Sub' $P2178 = "125_1274022903.56472"
- capture_lex $P2178
- .const 'Sub' $P2171 = "124_1274022903.56472"
- capture_lex $P2171
- .const 'Sub' $P2164 = "123_1274022903.56472"
- capture_lex $P2164
- .const 'Sub' $P2157 = "122_1274022903.56472"
- capture_lex $P2157
- .const 'Sub' $P2144 = "121_1274022903.56472"
- capture_lex $P2144
- .const 'Sub' $P2134 = "120_1274022903.56472"
- capture_lex $P2134
- .const 'Sub' $P2124 = "119_1274022903.56472"
- capture_lex $P2124
- .const 'Sub' $P2114 = "118_1274022903.56472"
- capture_lex $P2114
- .const 'Sub' $P2107 = "117_1274022903.56472"
- capture_lex $P2107
- .const 'Sub' $P2093 = "116_1274022903.56472"
- capture_lex $P2093
- .const 'Sub' $P2083 = "115_1274022903.56472"
- capture_lex $P2083
- .const 'Sub' $P2046 = "114_1274022903.56472"
- capture_lex $P2046
- .const 'Sub' $P2032 = "113_1274022903.56472"
- capture_lex $P2032
- .const 'Sub' $P2022 = "112_1274022903.56472"
- capture_lex $P2022
- .const 'Sub' $P2012 = "111_1274022903.56472"
- capture_lex $P2012
- .const 'Sub' $P2002 = "110_1274022903.56472"
+ .const 'Sub' $P2248 = "127_1275811497.55064"
+ capture_lex $P2248
+ .const 'Sub' $P2238 = "126_1275811497.55064"
+ capture_lex $P2238
+ .const 'Sub' $P2228 = "125_1275811497.55064"
+ capture_lex $P2228
+ .const 'Sub' $P2221 = "124_1275811497.55064"
+ capture_lex $P2221
+ .const 'Sub' $P2207 = "123_1275811497.55064"
+ capture_lex $P2207
+ .const 'Sub' $P2197 = "122_1275811497.55064"
+ capture_lex $P2197
+ .const 'Sub' $P2160 = "121_1275811497.55064"
+ capture_lex $P2160
+ .const 'Sub' $P2146 = "120_1275811497.55064"
+ capture_lex $P2146
+ .const 'Sub' $P2136 = "119_1275811497.55064"
+ capture_lex $P2136
+ .const 'Sub' $P2126 = "118_1275811497.55064"
+ capture_lex $P2126
+ .const 'Sub' $P2116 = "117_1275811497.55064"
+ capture_lex $P2116
+ .const 'Sub' $P2106 = "116_1275811497.55064"
+ capture_lex $P2106
+ .const 'Sub' $P2096 = "115_1275811497.55064"
+ capture_lex $P2096
+ .const 'Sub' $P2068 = "114_1275811497.55064"
+ capture_lex $P2068
+ .const 'Sub' $P2051 = "113_1275811497.55064"
+ capture_lex $P2051
+ .const 'Sub' $P2041 = "112_1275811497.55064"
+ capture_lex $P2041
+ .const 'Sub' $P2028 = "111_1275811497.55064"
+ capture_lex $P2028
+ .const 'Sub' $P2015 = "110_1275811497.55064"
+ capture_lex $P2015
+ .const 'Sub' $P2002 = "109_1275811497.55064"
capture_lex $P2002
- .const 'Sub' $P1992 = "109_1274022903.56472"
+ .const 'Sub' $P1992 = "108_1275811497.55064"
capture_lex $P1992
- .const 'Sub' $P1982 = "108_1274022903.56472"
- capture_lex $P1982
- .const 'Sub' $P1954 = "107_1274022903.56472"
- capture_lex $P1954
- .const 'Sub' $P1937 = "106_1274022903.56472"
- capture_lex $P1937
- .const 'Sub' $P1927 = "105_1274022903.56472"
- capture_lex $P1927
- .const 'Sub' $P1914 = "104_1274022903.56472"
- capture_lex $P1914
- .const 'Sub' $P1901 = "103_1274022903.56472"
- capture_lex $P1901
- .const 'Sub' $P1888 = "102_1274022903.56472"
- capture_lex $P1888
- .const 'Sub' $P1878 = "101_1274022903.56472"
- capture_lex $P1878
- .const 'Sub' $P1849 = "100_1274022903.56472"
- capture_lex $P1849
- .const 'Sub' $P1825 = "99_1274022903.56472"
- capture_lex $P1825
- .const 'Sub' $P1815 = "98_1274022903.56472"
- capture_lex $P1815
- .const 'Sub' $P1805 = "97_1274022903.56472"
- capture_lex $P1805
- .const 'Sub' $P1778 = "96_1274022903.56472"
- capture_lex $P1778
- .const 'Sub' $P1760 = "95_1274022903.56472"
+ .const 'Sub' $P1963 = "107_1275811497.55064"
+ capture_lex $P1963
+ .const 'Sub' $P1939 = "106_1275811497.55064"
+ capture_lex $P1939
+ .const 'Sub' $P1929 = "105_1275811497.55064"
+ capture_lex $P1929
+ .const 'Sub' $P1919 = "104_1275811497.55064"
+ capture_lex $P1919
+ .const 'Sub' $P1892 = "103_1275811497.55064"
+ capture_lex $P1892
+ .const 'Sub' $P1874 = "102_1275811497.55064"
+ capture_lex $P1874
+ .const 'Sub' $P1864 = "101_1275811497.55064"
+ capture_lex $P1864
+ .const 'Sub' $P1760 = "98_1275811497.55064"
capture_lex $P1760
- .const 'Sub' $P1750 = "94_1274022903.56472"
+ .const 'Sub' $P1750 = "97_1275811497.55064"
capture_lex $P1750
- .const 'Sub' $P1646 = "91_1274022903.56472"
- capture_lex $P1646
- .const 'Sub' $P1636 = "90_1274022903.56472"
- capture_lex $P1636
- .const 'Sub' $P1607 = "89_1274022903.56472"
- capture_lex $P1607
- .const 'Sub' $P1565 = "88_1274022903.56472"
- capture_lex $P1565
- .const 'Sub' $P1549 = "87_1274022903.56472"
- capture_lex $P1549
- .const 'Sub' $P1540 = "86_1274022903.56472"
- capture_lex $P1540
- .const 'Sub' $P1508 = "85_1274022903.56472"
- capture_lex $P1508
- .const 'Sub' $P1409 = "82_1274022903.56472"
- capture_lex $P1409
- .const 'Sub' $P1392 = "81_1274022903.56472"
- capture_lex $P1392
- .const 'Sub' $P1372 = "80_1274022903.56472"
- capture_lex $P1372
- .const 'Sub' $P1288 = "79_1274022903.56472"
- capture_lex $P1288
- .const 'Sub' $P1264 = "77_1274022903.56472"
- capture_lex $P1264
- .const 'Sub' $P1230 = "75_1274022903.56472"
- capture_lex $P1230
- .const 'Sub' $P1180 = "73_1274022903.56472"
- capture_lex $P1180
- .const 'Sub' $P1170 = "72_1274022903.56472"
- capture_lex $P1170
- .const 'Sub' $P1160 = "71_1274022903.56472"
- capture_lex $P1160
- .const 'Sub' $P1089 = "69_1274022903.56472"
- capture_lex $P1089
- .const 'Sub' $P1072 = "68_1274022903.56472"
- capture_lex $P1072
- .const 'Sub' $P1062 = "67_1274022903.56472"
- capture_lex $P1062
- .const 'Sub' $P1052 = "66_1274022903.56472"
- capture_lex $P1052
- .const 'Sub' $P1042 = "65_1274022903.56472"
- capture_lex $P1042
- .const 'Sub' $P1032 = "64_1274022903.56472"
- capture_lex $P1032
- .const 'Sub' $P1008 = "63_1274022903.56472"
- capture_lex $P1008
- .const 'Sub' $P955 = "62_1274022903.56472"
- capture_lex $P955
- .const 'Sub' $P945 = "61_1274022903.56472"
- capture_lex $P945
- .const 'Sub' $P856 = "59_1274022903.56472"
- capture_lex $P856
- .const 'Sub' $P830 = "58_1274022903.56472"
- capture_lex $P830
- .const 'Sub' $P814 = "57_1274022903.56472"
- capture_lex $P814
- .const 'Sub' $P804 = "56_1274022903.56472"
- capture_lex $P804
- .const 'Sub' $P794 = "55_1274022903.56472"
- capture_lex $P794
- .const 'Sub' $P784 = "54_1274022903.56472"
- capture_lex $P784
- .const 'Sub' $P774 = "53_1274022903.56472"
- capture_lex $P774
- .const 'Sub' $P764 = "52_1274022903.56472"
- capture_lex $P764
- .const 'Sub' $P754 = "51_1274022903.56472"
- capture_lex $P754
- .const 'Sub' $P744 = "50_1274022903.56472"
- capture_lex $P744
- .const 'Sub' $P734 = "49_1274022903.56472"
- capture_lex $P734
- .const 'Sub' $P724 = "48_1274022903.56472"
- capture_lex $P724
- .const 'Sub' $P714 = "47_1274022903.56472"
- capture_lex $P714
- .const 'Sub' $P704 = "46_1274022903.56472"
- capture_lex $P704
- .const 'Sub' $P694 = "45_1274022903.56472"
- capture_lex $P694
- .const 'Sub' $P684 = "44_1274022903.56472"
- capture_lex $P684
- .const 'Sub' $P666 = "43_1274022903.56472"
- capture_lex $P666
- .const 'Sub' $P631 = "42_1274022903.56472"
- capture_lex $P631
- .const 'Sub' $P615 = "41_1274022903.56472"
- capture_lex $P615
- .const 'Sub' $P594 = "40_1274022903.56472"
- capture_lex $P594
- .const 'Sub' $P574 = "39_1274022903.56472"
+ .const 'Sub' $P1721 = "96_1275811497.55064"
+ capture_lex $P1721
+ .const 'Sub' $P1679 = "95_1275811497.55064"
+ capture_lex $P1679
+ .const 'Sub' $P1663 = "94_1275811497.55064"
+ capture_lex $P1663
+ .const 'Sub' $P1654 = "93_1275811497.55064"
+ capture_lex $P1654
+ .const 'Sub' $P1622 = "92_1275811497.55064"
+ capture_lex $P1622
+ .const 'Sub' $P1523 = "89_1275811497.55064"
+ capture_lex $P1523
+ .const 'Sub' $P1506 = "88_1275811497.55064"
+ capture_lex $P1506
+ .const 'Sub' $P1486 = "87_1275811497.55064"
+ capture_lex $P1486
+ .const 'Sub' $P1374 = "84_1275811497.55064"
+ capture_lex $P1374
+ .const 'Sub' $P1317 = "80_1275811497.55064"
+ capture_lex $P1317
+ .const 'Sub' $P1277 = "78_1275811497.55064"
+ capture_lex $P1277
+ .const 'Sub' $P1227 = "76_1275811497.55064"
+ capture_lex $P1227
+ .const 'Sub' $P1217 = "75_1275811497.55064"
+ capture_lex $P1217
+ .const 'Sub' $P1207 = "74_1275811497.55064"
+ capture_lex $P1207
+ .const 'Sub' $P1136 = "72_1275811497.55064"
+ capture_lex $P1136
+ .const 'Sub' $P1126 = "71_1275811497.55064"
+ capture_lex $P1126
+ .const 'Sub' $P1109 = "70_1275811497.55064"
+ capture_lex $P1109
+ .const 'Sub' $P1092 = "69_1275811497.55064"
+ capture_lex $P1092
+ .const 'Sub' $P1075 = "68_1275811497.55064"
+ capture_lex $P1075
+ .const 'Sub' $P1065 = "67_1275811497.55064"
+ capture_lex $P1065
+ .const 'Sub' $P1055 = "66_1275811497.55064"
+ capture_lex $P1055
+ .const 'Sub' $P1045 = "65_1275811497.55064"
+ capture_lex $P1045
+ .const 'Sub' $P1021 = "64_1275811497.55064"
+ capture_lex $P1021
+ .const 'Sub' $P968 = "63_1275811497.55064"
+ capture_lex $P968
+ .const 'Sub' $P958 = "62_1275811497.55064"
+ capture_lex $P958
+ .const 'Sub' $P869 = "60_1275811497.55064"
+ capture_lex $P869
+ .const 'Sub' $P843 = "59_1275811497.55064"
+ capture_lex $P843
+ .const 'Sub' $P827 = "58_1275811497.55064"
+ capture_lex $P827
+ .const 'Sub' $P817 = "57_1275811497.55064"
+ capture_lex $P817
+ .const 'Sub' $P807 = "56_1275811497.55064"
+ capture_lex $P807
+ .const 'Sub' $P797 = "55_1275811497.55064"
+ capture_lex $P797
+ .const 'Sub' $P787 = "54_1275811497.55064"
+ capture_lex $P787
+ .const 'Sub' $P777 = "53_1275811497.55064"
+ capture_lex $P777
+ .const 'Sub' $P767 = "52_1275811497.55064"
+ capture_lex $P767
+ .const 'Sub' $P757 = "51_1275811497.55064"
+ capture_lex $P757
+ .const 'Sub' $P747 = "50_1275811497.55064"
+ capture_lex $P747
+ .const 'Sub' $P737 = "49_1275811497.55064"
+ capture_lex $P737
+ .const 'Sub' $P727 = "48_1275811497.55064"
+ capture_lex $P727
+ .const 'Sub' $P717 = "47_1275811497.55064"
+ capture_lex $P717
+ .const 'Sub' $P707 = "46_1275811497.55064"
+ capture_lex $P707
+ .const 'Sub' $P697 = "45_1275811497.55064"
+ capture_lex $P697
+ .const 'Sub' $P679 = "44_1275811497.55064"
+ capture_lex $P679
+ .const 'Sub' $P644 = "43_1275811497.55064"
+ capture_lex $P644
+ .const 'Sub' $P628 = "42_1275811497.55064"
+ capture_lex $P628
+ .const 'Sub' $P607 = "41_1275811497.55064"
+ capture_lex $P607
+ .const 'Sub' $P587 = "40_1275811497.55064"
+ capture_lex $P587
+ .const 'Sub' $P574 = "39_1275811497.55064"
capture_lex $P574
- .const 'Sub' $P561 = "38_1274022903.56472"
- capture_lex $P561
- .const 'Sub' $P535 = "37_1274022903.56472"
- capture_lex $P535
- .const 'Sub' $P499 = "36_1274022903.56472"
- capture_lex $P499
- .const 'Sub' $P482 = "35_1274022903.56472"
- capture_lex $P482
- .const 'Sub' $P468 = "34_1274022903.56472"
- capture_lex $P468
- .const 'Sub' $P415 = "32_1274022903.56472"
- capture_lex $P415
- .const 'Sub' $P402 = "31_1274022903.56472"
- capture_lex $P402
- .const 'Sub' $P382 = "30_1274022903.56472"
- capture_lex $P382
- .const 'Sub' $P372 = "29_1274022903.56472"
- capture_lex $P372
- .const 'Sub' $P362 = "28_1274022903.56472"
- capture_lex $P362
- .const 'Sub' $P346 = "27_1274022903.56472"
- capture_lex $P346
- .const 'Sub' $P286 = "25_1274022903.56472"
- capture_lex $P286
- .const 'Sub' $P243 = "23_1274022903.56472"
- capture_lex $P243
- .const 'Sub' $P214 = "22_1274022903.56472"
- capture_lex $P214
- .const 'Sub' $P181 = "21_1274022903.56472"
- capture_lex $P181
- .const 'Sub' $P171 = "20_1274022903.56472"
- capture_lex $P171
- .const 'Sub' $P151 = "19_1274022903.56472"
+ .const 'Sub' $P548 = "38_1275811497.55064"
+ capture_lex $P548
+ .const 'Sub' $P512 = "37_1275811497.55064"
+ capture_lex $P512
+ .const 'Sub' $P495 = "36_1275811497.55064"
+ capture_lex $P495
+ .const 'Sub' $P481 = "35_1275811497.55064"
+ capture_lex $P481
+ .const 'Sub' $P428 = "33_1275811497.55064"
+ capture_lex $P428
+ .const 'Sub' $P417 = "32_1275811497.55064"
+ capture_lex $P417
+ .const 'Sub' $P404 = "31_1275811497.55064"
+ capture_lex $P404
+ .const 'Sub' $P384 = "30_1275811497.55064"
+ capture_lex $P384
+ .const 'Sub' $P374 = "29_1275811497.55064"
+ capture_lex $P374
+ .const 'Sub' $P364 = "28_1275811497.55064"
+ capture_lex $P364
+ .const 'Sub' $P348 = "27_1275811497.55064"
+ capture_lex $P348
+ .const 'Sub' $P288 = "25_1275811497.55064"
+ capture_lex $P288
+ .const 'Sub' $P245 = "23_1275811497.55064"
+ capture_lex $P245
+ .const 'Sub' $P213 = "22_1275811497.55064"
+ capture_lex $P213
+ .const 'Sub' $P180 = "21_1275811497.55064"
+ capture_lex $P180
+ .const 'Sub' $P170 = "20_1275811497.55064"
+ capture_lex $P170
+ .const 'Sub' $P151 = "19_1275811497.55064"
capture_lex $P151
- .const 'Sub' $P100 = "18_1274022903.56472"
+ .const 'Sub' $P100 = "18_1275811497.55064"
capture_lex $P100
- .const 'Sub' $P84 = "17_1274022903.56472"
+ .const 'Sub' $P84 = "17_1275811497.55064"
capture_lex $P84
- .const 'Sub' $P63 = "16_1274022903.56472"
+ .const 'Sub' $P63 = "16_1275811497.55064"
capture_lex $P63
- .const 'Sub' $P27 = "13_1274022903.56472"
+ .const 'Sub' $P27 = "13_1275811497.55064"
capture_lex $P27
- .const 'Sub' $P16 = "12_1274022903.56472"
+ .const 'Sub' $P16 = "12_1275811497.55064"
capture_lex $P16
get_global $P15, "@BLOCK"
- unless_null $P15, vivify_137
+ unless_null $P15, vivify_147
$P15 = root_new ['parrot';'ResizablePMCArray']
set_global "@BLOCK", $P15
- vivify_137:
+ vivify_147:
.annotate 'line', 9
- .const 'Sub' $P16 = "12_1274022903.56472"
+ .const 'Sub' $P16 = "12_1275811497.55064"
newclosure $P26, $P16
.lex "xblock_immediate", $P26
.annotate 'line', 14
- .const 'Sub' $P27 = "13_1274022903.56472"
+ .const 'Sub' $P27 = "13_1275811497.55064"
newclosure $P62, $P27
.lex "block_immediate", $P62
.annotate 'line', 24
- .const 'Sub' $P63 = "16_1274022903.56472"
+ .const 'Sub' $P63 = "16_1275811497.55064"
newclosure $P83, $P63
.lex "vivitype", $P83
.annotate 'line', 43
- .const 'Sub' $P84 = "17_1274022903.56472"
+ .const 'Sub' $P84 = "17_1275811497.55064"
newclosure $P99, $P84
.lex "colonpair_str", $P99
-.annotate 'line', 204
- .const 'Sub' $P100 = "18_1274022903.56472"
+.annotate 'line', 213
+ .const 'Sub' $P100 = "18_1275811497.55064"
newclosure $P150, $P100
.lex "push_block_handler", $P150
-.annotate 'line', 788
- .const 'Sub' $P151 = "19_1274022903.56472"
- newclosure $P166, $P151
- .lex "control", $P166
+.annotate 'line', 822
+ .const 'Sub' $P151 = "19_1275811497.55064"
+ newclosure $P165, $P151
+ .lex "control", $P165
.annotate 'line', 3
- get_global $P167, "@BLOCK"
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
+ get_global $P166, "@BLOCK"
.annotate 'line', 5
- find_lex $P168, "xblock_immediate"
- find_lex $P169, "block_immediate"
- find_lex $P170, "vivitype"
+ find_lex $P167, "xblock_immediate"
+ find_lex $P168, "block_immediate"
+ find_lex $P169, "vivitype"
.annotate 'line', 35
- find_lex $P213, "colonpair_str"
-.annotate 'line', 197
- find_lex $P614, "push_block_handler"
-.annotate 'line', 779
- find_lex $P2156, "control"
-.annotate 'line', 810
- get_hll_global $P2189, ["NQP";"RegexActions"], "_block2188"
- capture_lex $P2189
- $P2252 = $P2189()
+ find_lex $P212, "colonpair_str"
+.annotate 'line', 206
+ find_lex $P627, "push_block_handler"
+.annotate 'line', 813
+ find_lex $P2270, "control"
+.annotate 'line', 840
+ get_hll_global $P2303, ["NQP";"RegexActions"], "_block2302"
+ capture_lex $P2303
+ $P2414 = $P2303()
.annotate 'line', 3
- .return ($P2252)
- .const 'Sub' $P2254 = "131_1274022903.56472"
- .return ($P2254)
+ .return ($P2414)
+ .const 'Sub' $P2416 = "141_1275811497.55064"
+ .return ($P2416)
.end
.namespace ["NQP";"Actions"]
-.sub "" :load :init :subid("post135") :outer("11_1274022903.56472")
+.sub "" :load :init :subid("post145") :outer("11_1275811497.55064")
.annotate 'line', 3
get_hll_global $P14, ["NQP";"Actions"], "_block13"
.local pmc block
set block, $P14
.annotate 'line', 5
- .const 'Sub' $P2258 = "132_1274022903.56472"
- capture_lex $P2258
- $P2258()
- $P2261 = get_root_global ["parrot"], "P6metaclass"
- $P2261."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
+ .const 'Sub' $P2420 = "142_1275811497.55064"
+ capture_lex $P2420
+ $P2420()
+ $P2423 = get_root_global ["parrot"], "P6metaclass"
+ $P2423."new_class"("NQP::RegexActions", "Regex::P6Regex::Actions" :named("parent"))
.end
.namespace ["NQP";"Actions"]
-.sub "_block2257" :anon :subid("132_1274022903.56472") :outer("11_1274022903.56472")
+.sub "_block2419" :anon :subid("142_1275811497.55064") :outer("11_1275811497.55064")
.annotate 'line', 6
- get_global $P2259, "@BLOCK"
- unless_null $P2259, vivify_136
- $P2259 = root_new ['parrot';'ResizablePMCArray']
- set_global "@BLOCK", $P2259
- vivify_136:
- $P2260 = new ['ResizablePMCArray']
- set_global "@BLOCK", $P2260
+ get_global $P2421, "@BLOCK"
+ unless_null $P2421, vivify_146
+ $P2421 = root_new ['parrot';'ResizablePMCArray']
+ set_global "@BLOCK", $P2421
+ vivify_146:
+ $P2422 = new ['ResizablePMCArray']
+ set_global "@BLOCK", $P2422
.annotate 'line', 5
- .return ($P2260)
+ .return ($P2422)
.end
.namespace ["NQP";"Actions"]
-.sub "xblock_immediate" :subid("12_1274022903.56472") :outer("11_1274022903.56472")
+.include "except_types.pasm"
+.sub "xblock_immediate" :subid("12_1275811497.55064") :outer("11_1275811497.55064")
.param pmc param_19
.annotate 'line', 9
new $P18, 'ExceptionHandler'
set_addr $P18, control_17
- $P18."handle_types"(57)
+ $P18."handle_types"(.CONTROL_RETURN)
push_eh $P18
.lex "$xblock", param_19
.annotate 'line', 10
find_lex $P20, "$xblock"
- unless_null $P20, vivify_138
+ unless_null $P20, vivify_148
$P20 = root_new ['parrot';'ResizablePMCArray']
- vivify_138:
+ vivify_148:
set $P21, $P20[1]
- unless_null $P21, vivify_139
+ unless_null $P21, vivify_149
new $P21, "Undef"
- vivify_139:
+ vivify_149:
$P22 = "block_immediate"($P21)
find_lex $P23, "$xblock"
- unless_null $P23, vivify_140
+ unless_null $P23, vivify_150
$P23 = root_new ['parrot';'ResizablePMCArray']
store_lex "$xblock", $P23
- vivify_140:
+ vivify_150:
set $P23[1], $P22
find_lex $P24, "$xblock"
.annotate 'line', 9
@@ -16779,14 +17805,15 @@
.namespace ["NQP";"Actions"]
-.sub "block_immediate" :subid("13_1274022903.56472") :outer("11_1274022903.56472")
+.include "except_types.pasm"
+.sub "block_immediate" :subid("13_1275811497.55064") :outer("11_1275811497.55064")
.param pmc param_30
.annotate 'line', 14
- .const 'Sub' $P40 = "14_1274022903.56472"
+ .const 'Sub' $P40 = "14_1275811497.55064"
capture_lex $P40
new $P29, 'ExceptionHandler'
set_addr $P29, control_28
- $P29."handle_types"(57)
+ $P29."handle_types"(.CONTROL_RETURN)
push_eh $P29
.lex "$block", param_30
.annotate 'line', 15
@@ -16804,7 +17831,7 @@
set $P33, $P38
unless_34_end:
if $P33, unless_32_end
- .const 'Sub' $P40 = "14_1274022903.56472"
+ .const 'Sub' $P40 = "14_1275811497.55064"
capture_lex $P40
$P40()
unless_32_end:
@@ -16820,9 +17847,10 @@
.namespace ["NQP";"Actions"]
-.sub "_block39" :anon :subid("14_1274022903.56472") :outer("13_1274022903.56472")
+.include "except_types.pasm"
+.sub "_block39" :anon :subid("14_1275811497.55064") :outer("13_1275811497.55064")
.annotate 'line', 16
- .const 'Sub' $P51 = "15_1274022903.56472"
+ .const 'Sub' $P51 = "15_1275811497.55064"
capture_lex $P51
.annotate 'line', 17
new $P41, "Undef"
@@ -16835,17 +17863,17 @@
find_lex $P46, "$block"
$P47 = $P46."list"()
defined $I48, $P47
- unless $I48, for_undef_141
+ unless $I48, for_undef_151
iter $P45, $P47
new $P57, 'ExceptionHandler'
set_addr $P57, loop56_handler
- $P57."handle_types"(64, 66, 65)
+ $P57."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P57
loop56_test:
unless $P45, loop56_done
shift $P49, $P45
loop56_redo:
- .const 'Sub' $P51 = "15_1274022903.56472"
+ .const 'Sub' $P51 = "15_1275811497.55064"
capture_lex $P51
$P51($P49)
loop56_next:
@@ -16854,11 +17882,11 @@
.local pmc exception
.get_results (exception)
getattribute $P58, exception, 'type'
- eq $P58, 64, loop56_next
- eq $P58, 66, loop56_redo
+ eq $P58, .CONTROL_LOOP_NEXT, loop56_next
+ eq $P58, .CONTROL_LOOP_REDO, loop56_redo
loop56_done:
pop_eh
- for_undef_141:
+ for_undef_151:
.annotate 'line', 19
find_lex $P59, "$stmts"
store_lex "$block", $P59
@@ -16868,7 +17896,7 @@
.namespace ["NQP";"Actions"]
-.sub "_block50" :anon :subid("15_1274022903.56472") :outer("14_1274022903.56472")
+.sub "_block50" :anon :subid("15_1275811497.55064") :outer("14_1275811497.55064")
.param pmc param_52
.annotate 'line', 18
.lex "$_", param_52
@@ -16880,12 +17908,13 @@
.namespace ["NQP";"Actions"]
-.sub "vivitype" :subid("16_1274022903.56472") :outer("11_1274022903.56472")
+.include "except_types.pasm"
+.sub "vivitype" :subid("16_1275811497.55064") :outer("11_1275811497.55064")
.param pmc param_66
.annotate 'line', 24
new $P65, 'ExceptionHandler'
set_addr $P65, control_64
- $P65."handle_types"(57)
+ $P65."handle_types"(.CONTROL_RETURN)
push_eh $P65
.lex "$sigil", param_66
.annotate 'line', 25
@@ -16928,12 +17957,13 @@
.namespace ["NQP";"Actions"]
-.sub "colonpair_str" :subid("17_1274022903.56472") :outer("11_1274022903.56472")
+.include "except_types.pasm"
+.sub "colonpair_str" :subid("17_1275811497.55064") :outer("11_1275811497.55064")
.param pmc param_87
.annotate 'line', 43
new $P86, 'ExceptionHandler'
set_addr $P86, control_85
- $P86."handle_types"(57)
+ $P86."handle_types"(.CONTROL_RETURN)
push_eh $P86
.lex "$ast", param_87
.annotate 'line', 44
@@ -16966,113 +17996,114 @@
.namespace ["NQP";"Actions"]
-.sub "push_block_handler" :subid("18_1274022903.56472") :outer("11_1274022903.56472")
+.include "except_types.pasm"
+.sub "push_block_handler" :subid("18_1275811497.55064") :outer("11_1275811497.55064")
.param pmc param_103
.param pmc param_104
-.annotate 'line', 204
+.annotate 'line', 213
new $P102, 'ExceptionHandler'
set_addr $P102, control_101
- $P102."handle_types"(57)
+ $P102."handle_types"(.CONTROL_RETURN)
push_eh $P102
.lex "$/", param_103
.lex "$block", param_104
-.annotate 'line', 205
+.annotate 'line', 214
get_global $P106, "@BLOCK"
- unless_null $P106, vivify_142
+ unless_null $P106, vivify_152
$P106 = root_new ['parrot';'ResizablePMCArray']
- vivify_142:
+ vivify_152:
set $P107, $P106[0]
- unless_null $P107, vivify_143
+ unless_null $P107, vivify_153
new $P107, "Undef"
- vivify_143:
+ vivify_153:
$P108 = $P107."handlers"()
if $P108, unless_105_end
-.annotate 'line', 206
+.annotate 'line', 215
get_global $P109, "@BLOCK"
- unless_null $P109, vivify_144
+ unless_null $P109, vivify_154
$P109 = root_new ['parrot';'ResizablePMCArray']
- vivify_144:
+ vivify_154:
set $P110, $P109[0]
- unless_null $P110, vivify_145
+ unless_null $P110, vivify_155
new $P110, "Undef"
- vivify_145:
+ vivify_155:
new $P111, "ResizablePMCArray"
$P110."handlers"($P111)
unless_105_end:
-.annotate 'line', 208
+.annotate 'line', 217
find_lex $P113, "$block"
$P114 = $P113."arity"()
if $P114, unless_112_end
-.annotate 'line', 209
+.annotate 'line', 218
find_lex $P115, "$block"
-.annotate 'line', 210
+.annotate 'line', 219
get_hll_global $P116, ["PAST"], "Op"
-.annotate 'line', 211
+.annotate 'line', 220
get_hll_global $P117, ["PAST"], "Var"
$P118 = $P117."new"("lexical" :named("scope"), "$!" :named("name"), 1 :named("isdecl"))
-.annotate 'line', 212
+.annotate 'line', 221
get_hll_global $P119, ["PAST"], "Var"
$P120 = $P119."new"("lexical" :named("scope"), "$_" :named("name"))
$P121 = $P116."new"($P118, $P120, "bind" :named("pasttype"))
-.annotate 'line', 210
+.annotate 'line', 219
$P115."unshift"($P121)
-.annotate 'line', 215
+.annotate 'line', 224
find_lex $P122, "$block"
get_hll_global $P123, ["PAST"], "Var"
$P124 = $P123."new"("$_" :named("name"), "parameter" :named("scope"))
$P122."unshift"($P124)
-.annotate 'line', 216
+.annotate 'line', 225
find_lex $P125, "$block"
$P125."symbol"("$_", "lexical" :named("scope"))
-.annotate 'line', 217
+.annotate 'line', 226
find_lex $P126, "$block"
$P126."symbol"("$!", "lexical" :named("scope"))
-.annotate 'line', 218
+.annotate 'line', 227
find_lex $P127, "$block"
$P127."arity"(1)
unless_112_end:
-.annotate 'line', 220
+.annotate 'line', 229
find_lex $P128, "$block"
$P128."blocktype"("declaration")
-.annotate 'line', 221
+.annotate 'line', 230
get_global $P129, "@BLOCK"
- unless_null $P129, vivify_146
+ unless_null $P129, vivify_156
$P129 = root_new ['parrot';'ResizablePMCArray']
- vivify_146:
+ vivify_156:
set $P130, $P129[0]
- unless_null $P130, vivify_147
+ unless_null $P130, vivify_157
new $P130, "Undef"
- vivify_147:
+ vivify_157:
$P131 = $P130."handlers"()
-.annotate 'line', 222
+.annotate 'line', 231
get_hll_global $P132, ["PAST"], "Control"
find_lex $P133, "$/"
-.annotate 'line', 224
+.annotate 'line', 233
get_hll_global $P134, ["PAST"], "Stmts"
-.annotate 'line', 225
+.annotate 'line', 234
get_hll_global $P135, ["PAST"], "Op"
find_lex $P136, "$block"
-.annotate 'line', 227
+.annotate 'line', 236
get_hll_global $P137, ["PAST"], "Var"
$P138 = $P137."new"("register" :named("scope"), "exception" :named("name"))
$P139 = $P135."new"($P136, $P138, "call" :named("pasttype"))
-.annotate 'line', 229
+.annotate 'line', 238
get_hll_global $P140, ["PAST"], "Op"
-.annotate 'line', 230
+.annotate 'line', 239
get_hll_global $P141, ["PAST"], "Var"
-.annotate 'line', 231
+.annotate 'line', 240
get_hll_global $P142, ["PAST"], "Var"
$P143 = $P142."new"("register" :named("scope"), "exception" :named("name"))
$P144 = $P141."new"($P143, "handled", "keyed" :named("scope"))
-.annotate 'line', 230
+.annotate 'line', 239
$P145 = $P140."new"($P144, 1, "bind" :named("pasttype"))
-.annotate 'line', 229
+.annotate 'line', 238
$P146 = $P134."new"($P139, $P145)
-.annotate 'line', 224
+.annotate 'line', 233
$P147 = $P132."new"($P146, $P133 :named("node"))
-.annotate 'line', 222
+.annotate 'line', 231
$P148 = $P131."unshift"($P147)
-.annotate 'line', 204
+.annotate 'line', 213
.return ($P148)
control_101:
.local pmc exception
@@ -17083,1212 +18114,1232 @@
.namespace ["NQP";"Actions"]
-.sub "control" :subid("19_1274022903.56472") :outer("11_1274022903.56472")
+.include "except_types.pasm"
+.sub "control" :subid("19_1275811497.55064") :outer("11_1275811497.55064")
.param pmc param_154
.param pmc param_155
-.annotate 'line', 788
+.annotate 'line', 822
new $P153, 'ExceptionHandler'
set_addr $P153, control_152
- $P153."handle_types"(57)
+ $P153."handle_types"(.CONTROL_RETURN)
push_eh $P153
.lex "$/", param_154
- .lex "$id", param_155
-.annotate 'line', 789
+ .lex "$type", param_155
+.annotate 'line', 823
find_lex $P156, "$/"
get_hll_global $P157, ["PAST"], "Op"
find_lex $P158, "$/"
-.annotate 'line', 795
- new $P159, "String"
- assign $P159, " %r[\"type\"] = "
- find_lex $P160, "$id"
- concat $P161, $P159, $P160
- new $P162, "ResizablePMCArray"
- push $P162, ".include \"except_types.pasm\""
- push $P162, " %r = new \"Exception\""
- push $P162, $P161
- push $P162, " throw %r"
- $P163 = $P157."new"($P158 :named("node"), "inline" :named("pasttype"), $P162 :named("inline"))
-.annotate 'line', 789
- $P164 = $P156."!make"($P163)
-.annotate 'line', 788
- .return ($P164)
+.annotate 'line', 827
+ get_hll_global $P159, ["PAST"], "Val"
+ find_lex $P160, "$type"
+ $P161 = $P159."new"($P160 :named("value"), "!except_types" :named("returns"))
+ $P162 = $P157."new"(0, $P161, $P158 :named("node"), "die__vii" :named("pirop"))
+.annotate 'line', 823
+ $P163 = $P156."!make"($P162)
+.annotate 'line', 822
+ .return ($P163)
control_152:
.local pmc exception
.get_results (exception)
- getattribute $P165, exception, "payload"
- .return ($P165)
+ getattribute $P164, exception, "payload"
+ .return ($P164)
.end
.namespace ["NQP";"Actions"]
-.sub "TOP" :subid("20_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_174
+.include "except_types.pasm"
+.sub "TOP" :subid("20_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_173
.annotate 'line', 33
- new $P173, 'ExceptionHandler'
- set_addr $P173, control_172
- $P173."handle_types"(57)
- push_eh $P173
+ new $P172, 'ExceptionHandler'
+ set_addr $P172, control_171
+ $P172."handle_types"(.CONTROL_RETURN)
+ push_eh $P172
.lex "self", self
- .lex "$/", param_174
+ .lex "$/", param_173
+ find_lex $P174, "$/"
find_lex $P175, "$/"
- find_lex $P176, "$/"
- unless_null $P176, vivify_148
- $P176 = root_new ['parrot';'Hash']
- vivify_148:
- set $P177, $P176["comp_unit"]
- unless_null $P177, vivify_149
- new $P177, "Undef"
- vivify_149:
- $P178 = $P177."ast"()
- $P179 = $P175."!make"($P178)
- .return ($P179)
- control_172:
+ unless_null $P175, vivify_158
+ $P175 = root_new ['parrot';'Hash']
+ vivify_158:
+ set $P176, $P175["comp_unit"]
+ unless_null $P176, vivify_159
+ new $P176, "Undef"
+ vivify_159:
+ $P177 = $P176."ast"()
+ $P178 = $P174."!make"($P177)
+ .return ($P178)
+ control_171:
.local pmc exception
.get_results (exception)
- getattribute $P180, exception, "payload"
- .return ($P180)
+ getattribute $P179, exception, "payload"
+ .return ($P179)
.end
.namespace ["NQP";"Actions"]
-.sub "deflongname" :subid("21_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_184
+.include "except_types.pasm"
+.sub "deflongname" :subid("21_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_183
.annotate 'line', 35
- new $P183, 'ExceptionHandler'
- set_addr $P183, control_182
- $P183."handle_types"(57)
- push_eh $P183
+ new $P182, 'ExceptionHandler'
+ set_addr $P182, control_181
+ $P182."handle_types"(.CONTROL_RETURN)
+ push_eh $P182
.lex "self", self
- .lex "$/", param_184
+ .lex "$/", param_183
.annotate 'line', 36
- find_lex $P185, "$/"
+ find_lex $P184, "$/"
.annotate 'line', 37
- find_lex $P188, "$/"
- unless_null $P188, vivify_150
- $P188 = root_new ['parrot';'Hash']
- vivify_150:
- set $P189, $P188["colonpair"]
- unless_null $P189, vivify_151
- new $P189, "Undef"
- vivify_151:
- if $P189, if_187
+ find_lex $P187, "$/"
+ unless_null $P187, vivify_160
+ $P187 = root_new ['parrot';'Hash']
+ vivify_160:
+ set $P188, $P187["colonpair"]
+ unless_null $P188, vivify_161
+ new $P188, "Undef"
+ vivify_161:
+ if $P188, if_186
.annotate 'line', 39
- find_lex $P209, "$/"
- set $S210, $P209
- new $P186, 'String'
- set $P186, $S210
+ find_lex $P208, "$/"
+ set $S209, $P208
+ new $P185, 'String'
+ set $P185, $S209
.annotate 'line', 37
- goto if_187_end
- if_187:
- find_lex $P190, "$/"
- unless_null $P190, vivify_152
- $P190 = root_new ['parrot';'Hash']
- vivify_152:
- set $P191, $P190["identifier"]
- unless_null $P191, vivify_153
- new $P191, "Undef"
- vivify_153:
- set $S192, $P191
- new $P193, 'String'
- set $P193, $S192
- concat $P194, $P193, ":"
- find_lex $P195, "$/"
- unless_null $P195, vivify_154
- $P195 = root_new ['parrot';'Hash']
- vivify_154:
- set $P196, $P195["colonpair"]
- unless_null $P196, vivify_155
- $P196 = root_new ['parrot';'ResizablePMCArray']
- vivify_155:
- set $P197, $P196[0]
- unless_null $P197, vivify_156
- new $P197, "Undef"
- vivify_156:
- $P198 = $P197."ast"()
- $S199 = $P198."named"()
- concat $P200, $P194, $S199
- concat $P201, $P200, "<"
+ goto if_186_end
+ if_186:
+ find_lex $P189, "$/"
+ unless_null $P189, vivify_162
+ $P189 = root_new ['parrot';'Hash']
+ vivify_162:
+ set $P190, $P189["identifier"]
+ unless_null $P190, vivify_163
+ new $P190, "Undef"
+ vivify_163:
+ set $S191, $P190
+ new $P192, 'String'
+ set $P192, $S191
+ concat $P193, $P192, ":"
+ find_lex $P194, "$/"
+ unless_null $P194, vivify_164
+ $P194 = root_new ['parrot';'Hash']
+ vivify_164:
+ set $P195, $P194["colonpair"]
+ unless_null $P195, vivify_165
+ $P195 = root_new ['parrot';'ResizablePMCArray']
+ vivify_165:
+ set $P196, $P195[0]
+ unless_null $P196, vivify_166
+ new $P196, "Undef"
+ vivify_166:
+ $P197 = $P196."ast"()
+ $S198 = $P197."named"()
+ concat $P199, $P193, $S198
+ concat $P200, $P199, "<"
.annotate 'line', 38
- find_lex $P202, "$/"
- unless_null $P202, vivify_157
- $P202 = root_new ['parrot';'Hash']
- vivify_157:
- set $P203, $P202["colonpair"]
- unless_null $P203, vivify_158
- $P203 = root_new ['parrot';'ResizablePMCArray']
- vivify_158:
- set $P204, $P203[0]
- unless_null $P204, vivify_159
- new $P204, "Undef"
- vivify_159:
- $P205 = $P204."ast"()
- $S206 = "colonpair_str"($P205)
- concat $P207, $P201, $S206
- concat $P208, $P207, ">"
- set $P186, $P208
- if_187_end:
+ find_lex $P201, "$/"
+ unless_null $P201, vivify_167
+ $P201 = root_new ['parrot';'Hash']
+ vivify_167:
+ set $P202, $P201["colonpair"]
+ unless_null $P202, vivify_168
+ $P202 = root_new ['parrot';'ResizablePMCArray']
+ vivify_168:
+ set $P203, $P202[0]
+ unless_null $P203, vivify_169
+ new $P203, "Undef"
+ vivify_169:
+ $P204 = $P203."ast"()
+ $S205 = "colonpair_str"($P204)
+ concat $P206, $P200, $S205
+ concat $P207, $P206, ">"
+ set $P185, $P207
+ if_186_end:
.annotate 'line', 37
- $P211 = $P185."!make"($P186)
+ $P210 = $P184."!make"($P185)
.annotate 'line', 35
- .return ($P211)
- control_182:
+ .return ($P210)
+ control_181:
.local pmc exception
.get_results (exception)
- getattribute $P212, exception, "payload"
- .return ($P212)
+ getattribute $P211, exception, "payload"
+ .return ($P211)
.end
.namespace ["NQP";"Actions"]
-.sub "comp_unit" :subid("22_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_217
+.include "except_types.pasm"
+.sub "comp_unit" :subid("22_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_216
.annotate 'line', 49
- new $P216, 'ExceptionHandler'
- set_addr $P216, control_215
- $P216."handle_types"(57)
- push_eh $P216
+ new $P215, 'ExceptionHandler'
+ set_addr $P215, control_214
+ $P215."handle_types"(.CONTROL_RETURN)
+ push_eh $P215
.lex "self", self
- .lex "$/", param_217
+ .lex "$/", param_216
.annotate 'line', 50
- new $P218, "Undef"
- .lex "$mainline", $P218
+ new $P217, "Undef"
+ .lex "$mainline", $P217
.annotate 'line', 51
- new $P219, "Undef"
- .lex "$unit", $P219
+ new $P218, "Undef"
+ .lex "$unit", $P218
.annotate 'line', 50
- find_lex $P220, "$/"
- unless_null $P220, vivify_160
- $P220 = root_new ['parrot';'Hash']
- vivify_160:
- set $P221, $P220["statementlist"]
- unless_null $P221, vivify_161
- new $P221, "Undef"
- vivify_161:
- $P222 = $P221."ast"()
- store_lex "$mainline", $P222
+ find_lex $P219, "$/"
+ unless_null $P219, vivify_170
+ $P219 = root_new ['parrot';'Hash']
+ vivify_170:
+ set $P220, $P219["statementlist"]
+ unless_null $P220, vivify_171
+ new $P220, "Undef"
+ vivify_171:
+ $P221 = $P220."ast"()
+ store_lex "$mainline", $P221
.annotate 'line', 51
- get_global $P223, "@BLOCK"
- $P224 = $P223."shift"()
- store_lex "$unit", $P224
-.annotate 'line', 56
- find_lex $P225, "$unit"
-.annotate 'line', 57
- get_hll_global $P226, ["PAST"], "Op"
- find_lex $P227, "$mainline"
- $P228 = $P226."new"($P227, "return" :named("pirop"))
- $P225."push"($P228)
-.annotate 'line', 62
- find_lex $P229, "$unit"
-.annotate 'line', 63
- get_hll_global $P230, ["PAST"], "Block"
-.annotate 'line', 65
- get_hll_global $P231, ["PAST"], "Op"
- get_hll_global $P232, ["PAST"], "Val"
- find_lex $P233, "$unit"
- $P234 = $P232."new"($P233 :named("value"))
- $P235 = $P231."new"($P234, "call" :named("pasttype"))
- $P236 = $P230."new"($P235, ":load" :named("pirflags"), 0 :named("lexical"), "" :named("namespace"))
-.annotate 'line', 63
- $P229."push"($P236)
-.annotate 'line', 68
- find_lex $P237, "$unit"
- find_lex $P238, "$/"
- $P237."node"($P238)
+ get_global $P222, "@BLOCK"
+ $P223 = $P222."shift"()
+ store_lex "$unit", $P223
+.annotate 'line', 55
+ find_lex $P224, "$unit"
+ find_lex $P225, "self"
+ $P226 = $P225."CTXSAVE"()
+ $P224."push"($P226)
+.annotate 'line', 60
+ find_lex $P227, "$unit"
+.annotate 'line', 61
+ get_hll_global $P228, ["PAST"], "Op"
+ find_lex $P229, "$mainline"
+ $P230 = $P228."new"($P229, "return" :named("pirop"))
+ $P227."push"($P230)
+.annotate 'line', 66
+ find_lex $P231, "$unit"
+.annotate 'line', 67
+ get_hll_global $P232, ["PAST"], "Block"
.annotate 'line', 69
- find_lex $P239, "$/"
- find_lex $P240, "$unit"
- $P241 = $P239."!make"($P240)
+ get_hll_global $P233, ["PAST"], "Op"
+ get_hll_global $P234, ["PAST"], "Val"
+ find_lex $P235, "$unit"
+ $P236 = $P234."new"($P235 :named("value"))
+ $P237 = $P233."new"($P236, "call" :named("pasttype"))
+ $P238 = $P232."new"($P237, ":load" :named("pirflags"), 0 :named("lexical"), "" :named("namespace"))
+.annotate 'line', 67
+ $P231."push"($P238)
+.annotate 'line', 72
+ find_lex $P239, "$unit"
+ find_lex $P240, "$/"
+ $P239."node"($P240)
+.annotate 'line', 73
+ find_lex $P241, "$/"
+ find_lex $P242, "$unit"
+ $P243 = $P241."!make"($P242)
.annotate 'line', 49
- .return ($P241)
- control_215:
+ .return ($P243)
+ control_214:
.local pmc exception
.get_results (exception)
- getattribute $P242, exception, "payload"
- .return ($P242)
+ getattribute $P244, exception, "payload"
+ .return ($P244)
.end
.namespace ["NQP";"Actions"]
-.sub "statementlist" :subid("23_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_246
-.annotate 'line', 72
- .const 'Sub' $P260 = "24_1274022903.56472"
- capture_lex $P260
- new $P245, 'ExceptionHandler'
- set_addr $P245, control_244
- $P245."handle_types"(57)
- push_eh $P245
+.include "except_types.pasm"
+.sub "statementlist" :subid("23_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_248
+.annotate 'line', 76
+ .const 'Sub' $P262 = "24_1275811497.55064"
+ capture_lex $P262
+ new $P247, 'ExceptionHandler'
+ set_addr $P247, control_246
+ $P247."handle_types"(.CONTROL_RETURN)
+ push_eh $P247
.lex "self", self
- .lex "$/", param_246
-.annotate 'line', 73
- new $P247, "Undef"
- .lex "$past", $P247
- get_hll_global $P248, ["PAST"], "Stmts"
- find_lex $P249, "$/"
- $P250 = $P248."new"($P249 :named("node"))
- store_lex "$past", $P250
-.annotate 'line', 74
- find_lex $P252, "$/"
- unless_null $P252, vivify_162
- $P252 = root_new ['parrot';'Hash']
- vivify_162:
- set $P253, $P252["statement"]
- unless_null $P253, vivify_163
- new $P253, "Undef"
- vivify_163:
- unless $P253, if_251_end
-.annotate 'line', 75
- find_lex $P255, "$/"
- unless_null $P255, vivify_164
- $P255 = root_new ['parrot';'Hash']
- vivify_164:
- set $P256, $P255["statement"]
- unless_null $P256, vivify_165
- new $P256, "Undef"
- vivify_165:
- defined $I257, $P256
- unless $I257, for_undef_166
- iter $P254, $P256
- new $P280, 'ExceptionHandler'
- set_addr $P280, loop279_handler
- $P280."handle_types"(64, 66, 65)
- push_eh $P280
- loop279_test:
- unless $P254, loop279_done
- shift $P258, $P254
- loop279_redo:
- .const 'Sub' $P260 = "24_1274022903.56472"
- capture_lex $P260
- $P260($P258)
- loop279_next:
- goto loop279_test
- loop279_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P281, exception, 'type'
- eq $P281, 64, loop279_next
- eq $P281, 66, loop279_redo
- loop279_done:
+ .lex "$/", param_248
+.annotate 'line', 77
+ new $P249, "Undef"
+ .lex "$past", $P249
+ get_hll_global $P250, ["PAST"], "Stmts"
+ find_lex $P251, "$/"
+ $P252 = $P250."new"($P251 :named("node"))
+ store_lex "$past", $P252
+.annotate 'line', 78
+ find_lex $P254, "$/"
+ unless_null $P254, vivify_172
+ $P254 = root_new ['parrot';'Hash']
+ vivify_172:
+ set $P255, $P254["statement"]
+ unless_null $P255, vivify_173
+ new $P255, "Undef"
+ vivify_173:
+ unless $P255, if_253_end
+.annotate 'line', 79
+ find_lex $P257, "$/"
+ unless_null $P257, vivify_174
+ $P257 = root_new ['parrot';'Hash']
+ vivify_174:
+ set $P258, $P257["statement"]
+ unless_null $P258, vivify_175
+ new $P258, "Undef"
+ vivify_175:
+ defined $I259, $P258
+ unless $I259, for_undef_176
+ iter $P256, $P258
+ new $P282, 'ExceptionHandler'
+ set_addr $P282, loop281_handler
+ $P282."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P282
+ loop281_test:
+ unless $P256, loop281_done
+ shift $P260, $P256
+ loop281_redo:
+ .const 'Sub' $P262 = "24_1275811497.55064"
+ capture_lex $P262
+ $P262($P260)
+ loop281_next:
+ goto loop281_test
+ loop281_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P283, exception, 'type'
+ eq $P283, .CONTROL_LOOP_NEXT, loop281_next
+ eq $P283, .CONTROL_LOOP_REDO, loop281_redo
+ loop281_done:
pop_eh
- for_undef_166:
- if_251_end:
-.annotate 'line', 82
- find_lex $P282, "$/"
- find_lex $P283, "$past"
- $P284 = $P282."!make"($P283)
-.annotate 'line', 72
- .return ($P284)
- control_244:
+ for_undef_176:
+ if_253_end:
+.annotate 'line', 86
+ find_lex $P284, "$/"
+ find_lex $P285, "$past"
+ $P286 = $P284."!make"($P285)
+.annotate 'line', 76
+ .return ($P286)
+ control_246:
.local pmc exception
.get_results (exception)
- getattribute $P285, exception, "payload"
- .return ($P285)
+ getattribute $P287, exception, "payload"
+ .return ($P287)
.end
.namespace ["NQP";"Actions"]
-.sub "_block259" :anon :subid("24_1274022903.56472") :outer("23_1274022903.56472")
- .param pmc param_262
-.annotate 'line', 76
- new $P261, "Undef"
- .lex "$ast", $P261
- .lex "$_", param_262
- find_lex $P263, "$_"
- $P264 = $P263."ast"()
- store_lex "$ast", $P264
-.annotate 'line', 77
- find_lex $P266, "$ast"
- unless_null $P266, vivify_167
- $P266 = root_new ['parrot';'Hash']
- vivify_167:
- set $P267, $P266["sink"]
- unless_null $P267, vivify_168
- new $P267, "Undef"
- vivify_168:
- defined $I268, $P267
- unless $I268, if_265_end
- find_lex $P269, "$ast"
- unless_null $P269, vivify_169
- $P269 = root_new ['parrot';'Hash']
- vivify_169:
- set $P270, $P269["sink"]
- unless_null $P270, vivify_170
- new $P270, "Undef"
- vivify_170:
- store_lex "$ast", $P270
- if_265_end:
-.annotate 'line', 78
- find_lex $P272, "$ast"
- unless_null $P272, vivify_171
- $P272 = root_new ['parrot';'Hash']
- vivify_171:
- set $P273, $P272["bareblock"]
- unless_null $P273, vivify_172
- new $P273, "Undef"
- vivify_172:
- unless $P273, if_271_end
+.sub "_block261" :anon :subid("24_1275811497.55064") :outer("23_1275811497.55064")
+ .param pmc param_264
+.annotate 'line', 80
+ new $P263, "Undef"
+ .lex "$ast", $P263
+ .lex "$_", param_264
+ find_lex $P265, "$_"
+ $P266 = $P265."ast"()
+ store_lex "$ast", $P266
+.annotate 'line', 81
+ find_lex $P268, "$ast"
+ unless_null $P268, vivify_177
+ $P268 = root_new ['parrot';'Hash']
+ vivify_177:
+ set $P269, $P268["sink"]
+ unless_null $P269, vivify_178
+ new $P269, "Undef"
+ vivify_178:
+ defined $I270, $P269
+ unless $I270, if_267_end
+ find_lex $P271, "$ast"
+ unless_null $P271, vivify_179
+ $P271 = root_new ['parrot';'Hash']
+ vivify_179:
+ set $P272, $P271["sink"]
+ unless_null $P272, vivify_180
+ new $P272, "Undef"
+ vivify_180:
+ store_lex "$ast", $P272
+ if_267_end:
+.annotate 'line', 82
find_lex $P274, "$ast"
- $P275 = "block_immediate"($P274)
- store_lex "$ast", $P275
- if_271_end:
+ unless_null $P274, vivify_181
+ $P274 = root_new ['parrot';'Hash']
+ vivify_181:
+ set $P275, $P274["bareblock"]
+ unless_null $P275, vivify_182
+ new $P275, "Undef"
+ vivify_182:
+ unless $P275, if_273_end
+ find_lex $P276, "$ast"
+ $P277 = "block_immediate"($P276)
+ store_lex "$ast", $P277
+ if_273_end:
+.annotate 'line', 83
+ find_lex $P278, "$past"
+ find_lex $P279, "$ast"
+ $P280 = $P278."push"($P279)
.annotate 'line', 79
- find_lex $P276, "$past"
- find_lex $P277, "$ast"
- $P278 = $P276."push"($P277)
-.annotate 'line', 75
- .return ($P278)
+ .return ($P280)
.end
.namespace ["NQP";"Actions"]
-.sub "statement" :subid("25_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_289
- .param pmc param_290 :optional
- .param int has_param_290 :opt_flag
-.annotate 'line', 85
- .const 'Sub' $P298 = "26_1274022903.56472"
- capture_lex $P298
- new $P288, 'ExceptionHandler'
- set_addr $P288, control_287
- $P288."handle_types"(57)
- push_eh $P288
- .lex "self", self
- .lex "$/", param_289
- if has_param_290, optparam_173
- new $P291, "Undef"
- set param_290, $P291
- optparam_173:
- .lex "$key", param_290
-.annotate 'line', 86
- new $P292, "Undef"
- .lex "$past", $P292
-.annotate 'line', 85
- find_lex $P293, "$past"
-.annotate 'line', 87
- find_lex $P295, "$/"
- unless_null $P295, vivify_174
- $P295 = root_new ['parrot';'Hash']
- vivify_174:
- set $P296, $P295["EXPR"]
- unless_null $P296, vivify_175
- new $P296, "Undef"
- vivify_175:
- if $P296, if_294
-.annotate 'line', 98
- find_lex $P336, "$/"
- unless_null $P336, vivify_176
- $P336 = root_new ['parrot';'Hash']
- vivify_176:
- set $P337, $P336["statement_control"]
- unless_null $P337, vivify_177
- new $P337, "Undef"
- vivify_177:
- if $P337, if_335
-.annotate 'line', 99
- new $P341, "Integer"
- assign $P341, 0
- store_lex "$past", $P341
- goto if_335_end
- if_335:
-.annotate 'line', 98
+.include "except_types.pasm"
+.sub "statement" :subid("25_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_291
+ .param pmc param_292 :optional
+ .param int has_param_292 :opt_flag
+.annotate 'line', 89
+ .const 'Sub' $P300 = "26_1275811497.55064"
+ capture_lex $P300
+ new $P290, 'ExceptionHandler'
+ set_addr $P290, control_289
+ $P290."handle_types"(.CONTROL_RETURN)
+ push_eh $P290
+ .lex "self", self
+ .lex "$/", param_291
+ if has_param_292, optparam_183
+ new $P293, "Undef"
+ set param_292, $P293
+ optparam_183:
+ .lex "$key", param_292
+.annotate 'line', 90
+ new $P294, "Undef"
+ .lex "$past", $P294
+.annotate 'line', 89
+ find_lex $P295, "$past"
+.annotate 'line', 91
+ find_lex $P297, "$/"
+ unless_null $P297, vivify_184
+ $P297 = root_new ['parrot';'Hash']
+ vivify_184:
+ set $P298, $P297["EXPR"]
+ unless_null $P298, vivify_185
+ new $P298, "Undef"
+ vivify_185:
+ if $P298, if_296
+.annotate 'line', 102
find_lex $P338, "$/"
- unless_null $P338, vivify_178
+ unless_null $P338, vivify_186
$P338 = root_new ['parrot';'Hash']
- vivify_178:
+ vivify_186:
set $P339, $P338["statement_control"]
- unless_null $P339, vivify_179
+ unless_null $P339, vivify_187
new $P339, "Undef"
- vivify_179:
- $P340 = $P339."ast"()
- store_lex "$past", $P340
- if_335_end:
- goto if_294_end
- if_294:
-.annotate 'line', 87
- .const 'Sub' $P298 = "26_1274022903.56472"
- capture_lex $P298
- $P298()
- if_294_end:
-.annotate 'line', 100
- find_lex $P342, "$/"
- find_lex $P343, "$past"
- $P344 = $P342."!make"($P343)
-.annotate 'line', 85
- .return ($P344)
- control_287:
+ vivify_187:
+ if $P339, if_337
+.annotate 'line', 103
+ new $P343, "Integer"
+ assign $P343, 0
+ store_lex "$past", $P343
+ goto if_337_end
+ if_337:
+.annotate 'line', 102
+ find_lex $P340, "$/"
+ unless_null $P340, vivify_188
+ $P340 = root_new ['parrot';'Hash']
+ vivify_188:
+ set $P341, $P340["statement_control"]
+ unless_null $P341, vivify_189
+ new $P341, "Undef"
+ vivify_189:
+ $P342 = $P341."ast"()
+ store_lex "$past", $P342
+ if_337_end:
+ goto if_296_end
+ if_296:
+.annotate 'line', 91
+ .const 'Sub' $P300 = "26_1275811497.55064"
+ capture_lex $P300
+ $P300()
+ if_296_end:
+.annotate 'line', 104
+ find_lex $P344, "$/"
+ find_lex $P345, "$past"
+ $P346 = $P344."!make"($P345)
+.annotate 'line', 89
+ .return ($P346)
+ control_289:
.local pmc exception
.get_results (exception)
- getattribute $P345, exception, "payload"
- .return ($P345)
+ getattribute $P347, exception, "payload"
+ .return ($P347)
.end
.namespace ["NQP";"Actions"]
-.sub "_block297" :anon :subid("26_1274022903.56472") :outer("25_1274022903.56472")
-.annotate 'line', 88
- new $P299, "Undef"
- .lex "$mc", $P299
-.annotate 'line', 89
- new $P300, "Undef"
- .lex "$ml", $P300
-.annotate 'line', 88
- find_lex $P301, "$/"
- unless_null $P301, vivify_180
- $P301 = root_new ['parrot';'Hash']
- vivify_180:
- set $P302, $P301["statement_mod_cond"]
- unless_null $P302, vivify_181
- $P302 = root_new ['parrot';'ResizablePMCArray']
- vivify_181:
- set $P303, $P302[0]
- unless_null $P303, vivify_182
- new $P303, "Undef"
- vivify_182:
- store_lex "$mc", $P303
-.annotate 'line', 89
- find_lex $P304, "$/"
- unless_null $P304, vivify_183
- $P304 = root_new ['parrot';'Hash']
- vivify_183:
- set $P305, $P304["statement_mod_loop"]
- unless_null $P305, vivify_184
- $P305 = root_new ['parrot';'ResizablePMCArray']
- vivify_184:
- set $P306, $P305[0]
- unless_null $P306, vivify_185
- new $P306, "Undef"
- vivify_185:
- store_lex "$ml", $P306
-.annotate 'line', 90
- find_lex $P307, "$/"
- unless_null $P307, vivify_186
- $P307 = root_new ['parrot';'Hash']
- vivify_186:
- set $P308, $P307["EXPR"]
- unless_null $P308, vivify_187
- new $P308, "Undef"
- vivify_187:
- $P309 = $P308."ast"()
- store_lex "$past", $P309
-.annotate 'line', 91
- find_lex $P311, "$mc"
- unless $P311, if_310_end
+.sub "_block299" :anon :subid("26_1275811497.55064") :outer("25_1275811497.55064")
.annotate 'line', 92
- get_hll_global $P312, ["PAST"], "Op"
- find_lex $P313, "$mc"
- unless_null $P313, vivify_188
- $P313 = root_new ['parrot';'Hash']
- vivify_188:
- set $P314, $P313["cond"]
- unless_null $P314, vivify_189
- new $P314, "Undef"
- vivify_189:
- $P315 = $P314."ast"()
- find_lex $P316, "$past"
- find_lex $P317, "$mc"
- unless_null $P317, vivify_190
- $P317 = root_new ['parrot';'Hash']
+ new $P301, "Undef"
+ .lex "$mc", $P301
+.annotate 'line', 93
+ new $P302, "Undef"
+ .lex "$ml", $P302
+.annotate 'line', 92
+ find_lex $P303, "$/"
+ unless_null $P303, vivify_190
+ $P303 = root_new ['parrot';'Hash']
vivify_190:
- set $P318, $P317["sym"]
- unless_null $P318, vivify_191
- new $P318, "Undef"
+ set $P304, $P303["statement_mod_cond"]
+ unless_null $P304, vivify_191
+ $P304 = root_new ['parrot';'ResizablePMCArray']
vivify_191:
- set $S319, $P318
- find_lex $P320, "$/"
- $P321 = $P312."new"($P315, $P316, $S319 :named("pasttype"), $P320 :named("node"))
- store_lex "$past", $P321
- if_310_end:
-.annotate 'line', 94
- find_lex $P324, "$ml"
- if $P324, if_323
- set $P322, $P324
- goto if_323_end
- if_323:
-.annotate 'line', 95
- get_hll_global $P325, ["PAST"], "Op"
- find_lex $P326, "$ml"
- unless_null $P326, vivify_192
- $P326 = root_new ['parrot';'Hash']
+ set $P305, $P304[0]
+ unless_null $P305, vivify_192
+ new $P305, "Undef"
vivify_192:
- set $P327, $P326["cond"]
- unless_null $P327, vivify_193
- new $P327, "Undef"
+ store_lex "$mc", $P305
+.annotate 'line', 93
+ find_lex $P306, "$/"
+ unless_null $P306, vivify_193
+ $P306 = root_new ['parrot';'Hash']
vivify_193:
- $P328 = $P327."ast"()
- find_lex $P329, "$past"
- find_lex $P330, "$ml"
- unless_null $P330, vivify_194
- $P330 = root_new ['parrot';'Hash']
+ set $P307, $P306["statement_mod_loop"]
+ unless_null $P307, vivify_194
+ $P307 = root_new ['parrot';'ResizablePMCArray']
vivify_194:
- set $P331, $P330["sym"]
- unless_null $P331, vivify_195
- new $P331, "Undef"
+ set $P308, $P307[0]
+ unless_null $P308, vivify_195
+ new $P308, "Undef"
vivify_195:
- set $S332, $P331
- find_lex $P333, "$/"
- $P334 = $P325."new"($P328, $P329, $S332 :named("pasttype"), $P333 :named("node"))
- store_lex "$past", $P334
+ store_lex "$ml", $P308
.annotate 'line', 94
- set $P322, $P334
- if_323_end:
-.annotate 'line', 87
- .return ($P322)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "xblock" :subid("27_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_349
-.annotate 'line', 103
- new $P348, 'ExceptionHandler'
- set_addr $P348, control_347
- $P348."handle_types"(57)
- push_eh $P348
- .lex "self", self
- .lex "$/", param_349
-.annotate 'line', 104
- find_lex $P350, "$/"
- get_hll_global $P351, ["PAST"], "Op"
- find_lex $P352, "$/"
- unless_null $P352, vivify_196
- $P352 = root_new ['parrot';'Hash']
+ find_lex $P309, "$/"
+ unless_null $P309, vivify_196
+ $P309 = root_new ['parrot';'Hash']
vivify_196:
- set $P353, $P352["EXPR"]
- unless_null $P353, vivify_197
- new $P353, "Undef"
+ set $P310, $P309["EXPR"]
+ unless_null $P310, vivify_197
+ new $P310, "Undef"
vivify_197:
- $P354 = $P353."ast"()
- find_lex $P355, "$/"
- unless_null $P355, vivify_198
- $P355 = root_new ['parrot';'Hash']
+ $P311 = $P310."ast"()
+ store_lex "$past", $P311
+.annotate 'line', 95
+ find_lex $P313, "$mc"
+ unless $P313, if_312_end
+.annotate 'line', 96
+ get_hll_global $P314, ["PAST"], "Op"
+ find_lex $P315, "$mc"
+ unless_null $P315, vivify_198
+ $P315 = root_new ['parrot';'Hash']
vivify_198:
- set $P356, $P355["pblock"]
- unless_null $P356, vivify_199
- new $P356, "Undef"
+ set $P316, $P315["cond"]
+ unless_null $P316, vivify_199
+ new $P316, "Undef"
vivify_199:
- $P357 = $P356."ast"()
- find_lex $P358, "$/"
- $P359 = $P351."new"($P354, $P357, "if" :named("pasttype"), $P358 :named("node"))
- $P360 = $P350."!make"($P359)
-.annotate 'line', 103
- .return ($P360)
- control_347:
- .local pmc exception
- .get_results (exception)
- getattribute $P361, exception, "payload"
- .return ($P361)
+ $P317 = $P316."ast"()
+ find_lex $P318, "$past"
+ find_lex $P319, "$mc"
+ unless_null $P319, vivify_200
+ $P319 = root_new ['parrot';'Hash']
+ vivify_200:
+ set $P320, $P319["sym"]
+ unless_null $P320, vivify_201
+ new $P320, "Undef"
+ vivify_201:
+ set $S321, $P320
+ find_lex $P322, "$/"
+ $P323 = $P314."new"($P317, $P318, $S321 :named("pasttype"), $P322 :named("node"))
+ store_lex "$past", $P323
+ if_312_end:
+.annotate 'line', 98
+ find_lex $P326, "$ml"
+ if $P326, if_325
+ set $P324, $P326
+ goto if_325_end
+ if_325:
+.annotate 'line', 99
+ get_hll_global $P327, ["PAST"], "Op"
+ find_lex $P328, "$ml"
+ unless_null $P328, vivify_202
+ $P328 = root_new ['parrot';'Hash']
+ vivify_202:
+ set $P329, $P328["cond"]
+ unless_null $P329, vivify_203
+ new $P329, "Undef"
+ vivify_203:
+ $P330 = $P329."ast"()
+ find_lex $P331, "$past"
+ find_lex $P332, "$ml"
+ unless_null $P332, vivify_204
+ $P332 = root_new ['parrot';'Hash']
+ vivify_204:
+ set $P333, $P332["sym"]
+ unless_null $P333, vivify_205
+ new $P333, "Undef"
+ vivify_205:
+ set $S334, $P333
+ find_lex $P335, "$/"
+ $P336 = $P327."new"($P330, $P331, $S334 :named("pasttype"), $P335 :named("node"))
+ store_lex "$past", $P336
+.annotate 'line', 98
+ set $P324, $P336
+ if_325_end:
+.annotate 'line', 91
+ .return ($P324)
.end
.namespace ["NQP";"Actions"]
-.sub "pblock" :subid("28_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_365
+.include "except_types.pasm"
+.sub "xblock" :subid("27_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_351
.annotate 'line', 107
- new $P364, 'ExceptionHandler'
- set_addr $P364, control_363
- $P364."handle_types"(57)
- push_eh $P364
+ new $P350, 'ExceptionHandler'
+ set_addr $P350, control_349
+ $P350."handle_types"(.CONTROL_RETURN)
+ push_eh $P350
.lex "self", self
- .lex "$/", param_365
+ .lex "$/", param_351
.annotate 'line', 108
- find_lex $P366, "$/"
- find_lex $P367, "$/"
- unless_null $P367, vivify_200
- $P367 = root_new ['parrot';'Hash']
- vivify_200:
- set $P368, $P367["blockoid"]
- unless_null $P368, vivify_201
- new $P368, "Undef"
- vivify_201:
- $P369 = $P368."ast"()
- $P370 = $P366."!make"($P369)
+ find_lex $P352, "$/"
+ get_hll_global $P353, ["PAST"], "Op"
+ find_lex $P354, "$/"
+ unless_null $P354, vivify_206
+ $P354 = root_new ['parrot';'Hash']
+ vivify_206:
+ set $P355, $P354["EXPR"]
+ unless_null $P355, vivify_207
+ new $P355, "Undef"
+ vivify_207:
+ $P356 = $P355."ast"()
+ find_lex $P357, "$/"
+ unless_null $P357, vivify_208
+ $P357 = root_new ['parrot';'Hash']
+ vivify_208:
+ set $P358, $P357["pblock"]
+ unless_null $P358, vivify_209
+ new $P358, "Undef"
+ vivify_209:
+ $P359 = $P358."ast"()
+ find_lex $P360, "$/"
+ $P361 = $P353."new"($P356, $P359, "if" :named("pasttype"), $P360 :named("node"))
+ $P362 = $P352."!make"($P361)
.annotate 'line', 107
- .return ($P370)
- control_363:
+ .return ($P362)
+ control_349:
.local pmc exception
.get_results (exception)
- getattribute $P371, exception, "payload"
- .return ($P371)
+ getattribute $P363, exception, "payload"
+ .return ($P363)
.end
.namespace ["NQP";"Actions"]
-.sub "block" :subid("29_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_375
+.include "except_types.pasm"
+.sub "pblock" :subid("28_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_367
.annotate 'line', 111
- new $P374, 'ExceptionHandler'
- set_addr $P374, control_373
- $P374."handle_types"(57)
- push_eh $P374
+ new $P366, 'ExceptionHandler'
+ set_addr $P366, control_365
+ $P366."handle_types"(.CONTROL_RETURN)
+ push_eh $P366
.lex "self", self
- .lex "$/", param_375
+ .lex "$/", param_367
.annotate 'line', 112
- find_lex $P376, "$/"
- find_lex $P377, "$/"
- unless_null $P377, vivify_202
- $P377 = root_new ['parrot';'Hash']
- vivify_202:
- set $P378, $P377["blockoid"]
- unless_null $P378, vivify_203
- new $P378, "Undef"
- vivify_203:
- $P379 = $P378."ast"()
- $P380 = $P376."!make"($P379)
+ find_lex $P368, "$/"
+ find_lex $P369, "$/"
+ unless_null $P369, vivify_210
+ $P369 = root_new ['parrot';'Hash']
+ vivify_210:
+ set $P370, $P369["blockoid"]
+ unless_null $P370, vivify_211
+ new $P370, "Undef"
+ vivify_211:
+ $P371 = $P370."ast"()
+ $P372 = $P368."!make"($P371)
.annotate 'line', 111
- .return ($P380)
- control_373:
+ .return ($P372)
+ control_365:
.local pmc exception
.get_results (exception)
- getattribute $P381, exception, "payload"
- .return ($P381)
+ getattribute $P373, exception, "payload"
+ .return ($P373)
.end
.namespace ["NQP";"Actions"]
-.sub "blockoid" :subid("30_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_385
+.include "except_types.pasm"
+.sub "block" :subid("29_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_377
.annotate 'line', 115
- new $P384, 'ExceptionHandler'
- set_addr $P384, control_383
- $P384."handle_types"(57)
- push_eh $P384
+ new $P376, 'ExceptionHandler'
+ set_addr $P376, control_375
+ $P376."handle_types"(.CONTROL_RETURN)
+ push_eh $P376
.lex "self", self
- .lex "$/", param_385
-.annotate 'line', 116
- new $P386, "Undef"
- .lex "$past", $P386
-.annotate 'line', 117
- new $P387, "Undef"
- .lex "$BLOCK", $P387
+ .lex "$/", param_377
.annotate 'line', 116
- find_lex $P388, "$/"
- unless_null $P388, vivify_204
- $P388 = root_new ['parrot';'Hash']
- vivify_204:
- set $P389, $P388["statementlist"]
- unless_null $P389, vivify_205
- new $P389, "Undef"
- vivify_205:
- $P390 = $P389."ast"()
- store_lex "$past", $P390
-.annotate 'line', 117
- get_global $P391, "@BLOCK"
- $P392 = $P391."shift"()
- store_lex "$BLOCK", $P392
-.annotate 'line', 118
- find_lex $P393, "$BLOCK"
- find_lex $P394, "$past"
- $P393."push"($P394)
+ find_lex $P378, "$/"
+ find_lex $P379, "$/"
+ unless_null $P379, vivify_212
+ $P379 = root_new ['parrot';'Hash']
+ vivify_212:
+ set $P380, $P379["blockoid"]
+ unless_null $P380, vivify_213
+ new $P380, "Undef"
+ vivify_213:
+ $P381 = $P380."ast"()
+ $P382 = $P378."!make"($P381)
+.annotate 'line', 115
+ .return ($P382)
+ control_375:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P383, exception, "payload"
+ .return ($P383)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "blockoid" :subid("30_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_387
.annotate 'line', 119
- find_lex $P395, "$BLOCK"
- find_lex $P396, "$/"
- $P395."node"($P396)
+ new $P386, 'ExceptionHandler'
+ set_addr $P386, control_385
+ $P386."handle_types"(.CONTROL_RETURN)
+ push_eh $P386
+ .lex "self", self
+ .lex "$/", param_387
.annotate 'line', 120
- find_lex $P397, "$BLOCK"
- $P397."closure"(1)
+ new $P388, "Undef"
+ .lex "$past", $P388
+.annotate 'line', 121
+ new $P389, "Undef"
+ .lex "$BLOCK", $P389
+.annotate 'line', 120
+ find_lex $P390, "$/"
+ unless_null $P390, vivify_214
+ $P390 = root_new ['parrot';'Hash']
+ vivify_214:
+ set $P391, $P390["statementlist"]
+ unless_null $P391, vivify_215
+ new $P391, "Undef"
+ vivify_215:
+ $P392 = $P391."ast"()
+ store_lex "$past", $P392
.annotate 'line', 121
+ get_global $P393, "@BLOCK"
+ $P394 = $P393."shift"()
+ store_lex "$BLOCK", $P394
+.annotate 'line', 122
+ find_lex $P395, "$BLOCK"
+ find_lex $P396, "$past"
+ $P395."push"($P396)
+.annotate 'line', 123
+ find_lex $P397, "$BLOCK"
find_lex $P398, "$/"
+ $P397."node"($P398)
+.annotate 'line', 124
find_lex $P399, "$BLOCK"
- $P400 = $P398."!make"($P399)
-.annotate 'line', 115
- .return ($P400)
- control_383:
+ $P399."closure"(1)
+.annotate 'line', 125
+ find_lex $P400, "$/"
+ find_lex $P401, "$BLOCK"
+ $P402 = $P400."!make"($P401)
+.annotate 'line', 119
+ .return ($P402)
+ control_385:
.local pmc exception
.get_results (exception)
- getattribute $P401, exception, "payload"
- .return ($P401)
+ getattribute $P403, exception, "payload"
+ .return ($P403)
.end
.namespace ["NQP";"Actions"]
-.sub "newpad" :subid("31_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_405
-.annotate 'line', 124
- new $P404, 'ExceptionHandler'
- set_addr $P404, control_403
- $P404."handle_types"(57)
- push_eh $P404
+.include "except_types.pasm"
+.sub "newpad" :subid("31_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_407
+.annotate 'line', 128
+ new $P406, 'ExceptionHandler'
+ set_addr $P406, control_405
+ $P406."handle_types"(.CONTROL_RETURN)
+ push_eh $P406
.lex "self", self
- .lex "$/", param_405
-.annotate 'line', 125
- get_global $P406, "@BLOCK"
- unless_null $P406, vivify_206
- $P406 = root_new ['parrot';'ResizablePMCArray']
- set_global "@BLOCK", $P406
- vivify_206:
-.annotate 'line', 124
- get_global $P407, "@BLOCK"
-.annotate 'line', 126
+ .lex "$/", param_407
+.annotate 'line', 129
get_global $P408, "@BLOCK"
- get_hll_global $P409, ["PAST"], "Block"
- get_hll_global $P410, ["PAST"], "Stmts"
- $P411 = $P410."new"()
- $P412 = $P409."new"($P411)
- $P413 = $P408."unshift"($P412)
-.annotate 'line', 124
- .return ($P413)
- control_403:
+ unless_null $P408, vivify_216
+ $P408 = root_new ['parrot';'ResizablePMCArray']
+ set_global "@BLOCK", $P408
+ vivify_216:
+.annotate 'line', 128
+ get_global $P409, "@BLOCK"
+.annotate 'line', 130
+ get_global $P410, "@BLOCK"
+ get_hll_global $P411, ["PAST"], "Block"
+ get_hll_global $P412, ["PAST"], "Stmts"
+ $P413 = $P412."new"()
+ $P414 = $P411."new"($P413)
+ $P415 = $P410."unshift"($P414)
+.annotate 'line', 128
+ .return ($P415)
+ control_405:
.local pmc exception
.get_results (exception)
- getattribute $P414, exception, "payload"
- .return ($P414)
+ getattribute $P416, exception, "payload"
+ .return ($P416)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<if>" :subid("32_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_418
-.annotate 'line', 131
- .const 'Sub' $P446 = "33_1274022903.56472"
- capture_lex $P446
- new $P417, 'ExceptionHandler'
- set_addr $P417, control_416
- $P417."handle_types"(57)
- push_eh $P417
- .lex "self", self
- .lex "$/", param_418
-.annotate 'line', 132
- new $P419, "Undef"
- .lex "$count", $P419
-.annotate 'line', 133
- new $P420, "Undef"
- .lex "$past", $P420
-.annotate 'line', 132
- find_lex $P421, "$/"
- unless_null $P421, vivify_207
- $P421 = root_new ['parrot';'Hash']
- vivify_207:
- set $P422, $P421["xblock"]
- unless_null $P422, vivify_208
- new $P422, "Undef"
- vivify_208:
- set $N423, $P422
- new $P424, 'Float'
- set $P424, $N423
- sub $P425, $P424, 1
- store_lex "$count", $P425
+.include "except_types.pasm"
+.sub "outerctx" :subid("32_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_420
.annotate 'line', 133
- find_lex $P426, "$count"
- set $I427, $P426
- find_lex $P428, "$/"
- unless_null $P428, vivify_209
- $P428 = root_new ['parrot';'Hash']
- vivify_209:
- set $P429, $P428["xblock"]
- unless_null $P429, vivify_210
- $P429 = root_new ['parrot';'ResizablePMCArray']
- vivify_210:
- set $P430, $P429[$I427]
- unless_null $P430, vivify_211
- new $P430, "Undef"
- vivify_211:
- $P431 = $P430."ast"()
- $P432 = "xblock_immediate"($P431)
- store_lex "$past", $P432
+ new $P419, 'ExceptionHandler'
+ set_addr $P419, control_418
+ $P419."handle_types"(.CONTROL_RETURN)
+ push_eh $P419
+ .lex "self", self
+ .lex "$/", param_420
.annotate 'line', 134
- find_lex $P434, "$/"
- unless_null $P434, vivify_212
- $P434 = root_new ['parrot';'Hash']
- vivify_212:
- set $P435, $P434["else"]
- unless_null $P435, vivify_213
- new $P435, "Undef"
- vivify_213:
- unless $P435, if_433_end
+ get_global $P421, "@BLOCK"
+ unless_null $P421, vivify_217
+ $P421 = root_new ['parrot';'ResizablePMCArray']
+ set_global "@BLOCK", $P421
+ vivify_217:
+.annotate 'line', 133
+ get_global $P422, "@BLOCK"
.annotate 'line', 135
- find_lex $P436, "$past"
- find_lex $P437, "$/"
- unless_null $P437, vivify_214
- $P437 = root_new ['parrot';'Hash']
- vivify_214:
- set $P438, $P437["else"]
- unless_null $P438, vivify_215
- $P438 = root_new ['parrot';'ResizablePMCArray']
- vivify_215:
- set $P439, $P438[0]
- unless_null $P439, vivify_216
- new $P439, "Undef"
- vivify_216:
- $P440 = $P439."ast"()
- $P441 = "block_immediate"($P440)
- $P436."push"($P441)
- if_433_end:
-.annotate 'line', 138
- new $P462, 'ExceptionHandler'
- set_addr $P462, loop461_handler
- $P462."handle_types"(64, 66, 65)
- push_eh $P462
- loop461_test:
- find_lex $P442, "$count"
- set $N443, $P442
- isgt $I444, $N443, 0.0
- unless $I444, loop461_done
- loop461_redo:
- .const 'Sub' $P446 = "33_1274022903.56472"
- capture_lex $P446
- $P446()
- loop461_next:
- goto loop461_test
- loop461_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P463, exception, 'type'
- eq $P463, 64, loop461_next
- eq $P463, 66, loop461_redo
- loop461_done:
- pop_eh
-.annotate 'line', 144
- find_lex $P464, "$/"
- find_lex $P465, "$past"
- $P466 = $P464."!make"($P465)
-.annotate 'line', 131
- .return ($P466)
- control_416:
+ find_lex $P423, "self"
+ get_global $P424, "@BLOCK"
+ unless_null $P424, vivify_218
+ $P424 = root_new ['parrot';'ResizablePMCArray']
+ vivify_218:
+ set $P425, $P424[0]
+ unless_null $P425, vivify_219
+ new $P425, "Undef"
+ vivify_219:
+ $P426 = $P423."SET_BLOCK_OUTER_CTX"($P425)
+.annotate 'line', 133
+ .return ($P426)
+ control_418:
.local pmc exception
.get_results (exception)
- getattribute $P467, exception, "payload"
- .return ($P467)
+ getattribute $P427, exception, "payload"
+ .return ($P427)
.end
.namespace ["NQP";"Actions"]
-.sub "_block445" :anon :subid("33_1274022903.56472") :outer("32_1274022903.56472")
+.include "except_types.pasm"
+.sub "statement_control:sym<if>" :subid("33_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_431
.annotate 'line', 140
- new $P447, "Undef"
- .lex "$else", $P447
-.annotate 'line', 138
- find_lex $P448, "$count"
- clone $P449, $P448
- dec $P448
-.annotate 'line', 140
- find_lex $P450, "$past"
- store_lex "$else", $P450
+ .const 'Sub' $P459 = "34_1275811497.55064"
+ capture_lex $P459
+ new $P430, 'ExceptionHandler'
+ set_addr $P430, control_429
+ $P430."handle_types"(.CONTROL_RETURN)
+ push_eh $P430
+ .lex "self", self
+ .lex "$/", param_431
.annotate 'line', 141
- find_lex $P451, "$count"
- set $I452, $P451
- find_lex $P453, "$/"
- unless_null $P453, vivify_217
- $P453 = root_new ['parrot';'Hash']
- vivify_217:
- set $P454, $P453["xblock"]
- unless_null $P454, vivify_218
- $P454 = root_new ['parrot';'ResizablePMCArray']
- vivify_218:
- set $P455, $P454[$I452]
- unless_null $P455, vivify_219
- new $P455, "Undef"
- vivify_219:
- $P456 = $P455."ast"()
- $P457 = "xblock_immediate"($P456)
- store_lex "$past", $P457
+ new $P432, "Undef"
+ .lex "$count", $P432
.annotate 'line', 142
- find_lex $P458, "$past"
- find_lex $P459, "$else"
- $P460 = $P458."push"($P459)
-.annotate 'line', 138
- .return ($P460)
+ new $P433, "Undef"
+ .lex "$past", $P433
+.annotate 'line', 141
+ find_lex $P434, "$/"
+ unless_null $P434, vivify_220
+ $P434 = root_new ['parrot';'Hash']
+ vivify_220:
+ set $P435, $P434["xblock"]
+ unless_null $P435, vivify_221
+ new $P435, "Undef"
+ vivify_221:
+ set $N436, $P435
+ new $P437, 'Float'
+ set $P437, $N436
+ sub $P438, $P437, 1
+ store_lex "$count", $P438
+.annotate 'line', 142
+ find_lex $P439, "$count"
+ set $I440, $P439
+ find_lex $P441, "$/"
+ unless_null $P441, vivify_222
+ $P441 = root_new ['parrot';'Hash']
+ vivify_222:
+ set $P442, $P441["xblock"]
+ unless_null $P442, vivify_223
+ $P442 = root_new ['parrot';'ResizablePMCArray']
+ vivify_223:
+ set $P443, $P442[$I440]
+ unless_null $P443, vivify_224
+ new $P443, "Undef"
+ vivify_224:
+ $P444 = $P443."ast"()
+ $P445 = "xblock_immediate"($P444)
+ store_lex "$past", $P445
+.annotate 'line', 143
+ find_lex $P447, "$/"
+ unless_null $P447, vivify_225
+ $P447 = root_new ['parrot';'Hash']
+ vivify_225:
+ set $P448, $P447["else"]
+ unless_null $P448, vivify_226
+ new $P448, "Undef"
+ vivify_226:
+ unless $P448, if_446_end
+.annotate 'line', 144
+ find_lex $P449, "$past"
+ find_lex $P450, "$/"
+ unless_null $P450, vivify_227
+ $P450 = root_new ['parrot';'Hash']
+ vivify_227:
+ set $P451, $P450["else"]
+ unless_null $P451, vivify_228
+ $P451 = root_new ['parrot';'ResizablePMCArray']
+ vivify_228:
+ set $P452, $P451[0]
+ unless_null $P452, vivify_229
+ new $P452, "Undef"
+ vivify_229:
+ $P453 = $P452."ast"()
+ $P454 = "block_immediate"($P453)
+ $P449."push"($P454)
+ if_446_end:
+.annotate 'line', 147
+ new $P475, 'ExceptionHandler'
+ set_addr $P475, loop474_handler
+ $P475."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P475
+ loop474_test:
+ find_lex $P455, "$count"
+ set $N456, $P455
+ isgt $I457, $N456, 0.0
+ unless $I457, loop474_done
+ loop474_redo:
+ .const 'Sub' $P459 = "34_1275811497.55064"
+ capture_lex $P459
+ $P459()
+ loop474_next:
+ goto loop474_test
+ loop474_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P476, exception, 'type'
+ eq $P476, .CONTROL_LOOP_NEXT, loop474_next
+ eq $P476, .CONTROL_LOOP_REDO, loop474_redo
+ loop474_done:
+ pop_eh
+.annotate 'line', 153
+ find_lex $P477, "$/"
+ find_lex $P478, "$past"
+ $P479 = $P477."!make"($P478)
+.annotate 'line', 140
+ .return ($P479)
+ control_429:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P480, exception, "payload"
+ .return ($P480)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<unless>" :subid("34_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_471
+.sub "_block458" :anon :subid("34_1275811497.55064") :outer("33_1275811497.55064")
+.annotate 'line', 149
+ new $P460, "Undef"
+ .lex "$else", $P460
.annotate 'line', 147
- new $P470, 'ExceptionHandler'
- set_addr $P470, control_469
- $P470."handle_types"(57)
- push_eh $P470
- .lex "self", self
- .lex "$/", param_471
-.annotate 'line', 148
- new $P472, "Undef"
- .lex "$past", $P472
- find_lex $P473, "$/"
- unless_null $P473, vivify_220
- $P473 = root_new ['parrot';'Hash']
- vivify_220:
- set $P474, $P473["xblock"]
- unless_null $P474, vivify_221
- new $P474, "Undef"
- vivify_221:
- $P475 = $P474."ast"()
- $P476 = "xblock_immediate"($P475)
- store_lex "$past", $P476
+ find_lex $P461, "$count"
+ clone $P462, $P461
+ dec $P461
.annotate 'line', 149
- find_lex $P477, "$past"
- $P477."pasttype"("unless")
+ find_lex $P463, "$past"
+ store_lex "$else", $P463
.annotate 'line', 150
- find_lex $P478, "$/"
- find_lex $P479, "$past"
- $P480 = $P478."!make"($P479)
+ find_lex $P464, "$count"
+ set $I465, $P464
+ find_lex $P466, "$/"
+ unless_null $P466, vivify_230
+ $P466 = root_new ['parrot';'Hash']
+ vivify_230:
+ set $P467, $P466["xblock"]
+ unless_null $P467, vivify_231
+ $P467 = root_new ['parrot';'ResizablePMCArray']
+ vivify_231:
+ set $P468, $P467[$I465]
+ unless_null $P468, vivify_232
+ new $P468, "Undef"
+ vivify_232:
+ $P469 = $P468."ast"()
+ $P470 = "xblock_immediate"($P469)
+ store_lex "$past", $P470
+.annotate 'line', 151
+ find_lex $P471, "$past"
+ find_lex $P472, "$else"
+ $P473 = $P471."push"($P472)
.annotate 'line', 147
- .return ($P480)
- control_469:
- .local pmc exception
- .get_results (exception)
- getattribute $P481, exception, "payload"
- .return ($P481)
+ .return ($P473)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<while>" :subid("35_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_485
-.annotate 'line', 153
- new $P484, 'ExceptionHandler'
- set_addr $P484, control_483
- $P484."handle_types"(57)
- push_eh $P484
- .lex "self", self
- .lex "$/", param_485
-.annotate 'line', 154
- new $P486, "Undef"
- .lex "$past", $P486
- find_lex $P487, "$/"
- unless_null $P487, vivify_222
- $P487 = root_new ['parrot';'Hash']
- vivify_222:
- set $P488, $P487["xblock"]
- unless_null $P488, vivify_223
- new $P488, "Undef"
- vivify_223:
- $P489 = $P488."ast"()
- $P490 = "xblock_immediate"($P489)
- store_lex "$past", $P490
-.annotate 'line', 155
- find_lex $P491, "$past"
- find_lex $P492, "$/"
- unless_null $P492, vivify_224
- $P492 = root_new ['parrot';'Hash']
- vivify_224:
- set $P493, $P492["sym"]
- unless_null $P493, vivify_225
- new $P493, "Undef"
- vivify_225:
- set $S494, $P493
- $P491."pasttype"($S494)
+.include "except_types.pasm"
+.sub "statement_control:sym<unless>" :subid("35_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_484
.annotate 'line', 156
- find_lex $P495, "$/"
- find_lex $P496, "$past"
- $P497 = $P495."!make"($P496)
-.annotate 'line', 153
- .return ($P497)
- control_483:
+ new $P483, 'ExceptionHandler'
+ set_addr $P483, control_482
+ $P483."handle_types"(.CONTROL_RETURN)
+ push_eh $P483
+ .lex "self", self
+ .lex "$/", param_484
+.annotate 'line', 157
+ new $P485, "Undef"
+ .lex "$past", $P485
+ find_lex $P486, "$/"
+ unless_null $P486, vivify_233
+ $P486 = root_new ['parrot';'Hash']
+ vivify_233:
+ set $P487, $P486["xblock"]
+ unless_null $P487, vivify_234
+ new $P487, "Undef"
+ vivify_234:
+ $P488 = $P487."ast"()
+ $P489 = "xblock_immediate"($P488)
+ store_lex "$past", $P489
+.annotate 'line', 158
+ find_lex $P490, "$past"
+ $P490."pasttype"("unless")
+.annotate 'line', 159
+ find_lex $P491, "$/"
+ find_lex $P492, "$past"
+ $P493 = $P491."!make"($P492)
+.annotate 'line', 156
+ .return ($P493)
+ control_482:
.local pmc exception
.get_results (exception)
- getattribute $P498, exception, "payload"
- .return ($P498)
+ getattribute $P494, exception, "payload"
+ .return ($P494)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<repeat>" :subid("36_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_502
-.annotate 'line', 159
- new $P501, 'ExceptionHandler'
- set_addr $P501, control_500
- $P501."handle_types"(57)
- push_eh $P501
- .lex "self", self
- .lex "$/", param_502
-.annotate 'line', 160
- new $P503, "Undef"
- .lex "$pasttype", $P503
-.annotate 'line', 161
- new $P504, "Undef"
- .lex "$past", $P504
-.annotate 'line', 160
- new $P505, "String"
- assign $P505, "repeat_"
- find_lex $P506, "$/"
- unless_null $P506, vivify_226
- $P506 = root_new ['parrot';'Hash']
- vivify_226:
- set $P507, $P506["wu"]
- unless_null $P507, vivify_227
- new $P507, "Undef"
- vivify_227:
- set $S508, $P507
- concat $P509, $P505, $S508
- store_lex "$pasttype", $P509
- find_lex $P510, "$past"
+.include "except_types.pasm"
+.sub "statement_control:sym<while>" :subid("36_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_498
.annotate 'line', 162
- find_lex $P512, "$/"
- unless_null $P512, vivify_228
- $P512 = root_new ['parrot';'Hash']
- vivify_228:
- set $P513, $P512["xblock"]
- unless_null $P513, vivify_229
- new $P513, "Undef"
- vivify_229:
- if $P513, if_511
-.annotate 'line', 167
- get_hll_global $P520, ["PAST"], "Op"
- find_lex $P521, "$/"
- unless_null $P521, vivify_230
- $P521 = root_new ['parrot';'Hash']
- vivify_230:
- set $P522, $P521["EXPR"]
- unless_null $P522, vivify_231
- new $P522, "Undef"
- vivify_231:
- $P523 = $P522."ast"()
- find_lex $P524, "$/"
- unless_null $P524, vivify_232
- $P524 = root_new ['parrot';'Hash']
- vivify_232:
- set $P525, $P524["pblock"]
- unless_null $P525, vivify_233
- new $P525, "Undef"
- vivify_233:
- $P526 = $P525."ast"()
- $P527 = "block_immediate"($P526)
- find_lex $P528, "$pasttype"
- find_lex $P529, "$/"
- $P530 = $P520."new"($P523, $P527, $P528 :named("pasttype"), $P529 :named("node"))
- store_lex "$past", $P530
-.annotate 'line', 166
- goto if_511_end
- if_511:
+ new $P497, 'ExceptionHandler'
+ set_addr $P497, control_496
+ $P497."handle_types"(.CONTROL_RETURN)
+ push_eh $P497
+ .lex "self", self
+ .lex "$/", param_498
.annotate 'line', 163
- find_lex $P514, "$/"
- unless_null $P514, vivify_234
- $P514 = root_new ['parrot';'Hash']
- vivify_234:
- set $P515, $P514["xblock"]
- unless_null $P515, vivify_235
- new $P515, "Undef"
+ new $P499, "Undef"
+ .lex "$past", $P499
+ find_lex $P500, "$/"
+ unless_null $P500, vivify_235
+ $P500 = root_new ['parrot';'Hash']
vivify_235:
- $P516 = $P515."ast"()
- $P517 = "xblock_immediate"($P516)
- store_lex "$past", $P517
+ set $P501, $P500["xblock"]
+ unless_null $P501, vivify_236
+ new $P501, "Undef"
+ vivify_236:
+ $P502 = $P501."ast"()
+ $P503 = "xblock_immediate"($P502)
+ store_lex "$past", $P503
.annotate 'line', 164
- find_lex $P518, "$past"
- find_lex $P519, "$pasttype"
- $P518."pasttype"($P519)
- if_511_end:
-.annotate 'line', 170
- find_lex $P531, "$/"
- find_lex $P532, "$past"
- $P533 = $P531."!make"($P532)
-.annotate 'line', 159
- .return ($P533)
- control_500:
+ find_lex $P504, "$past"
+ find_lex $P505, "$/"
+ unless_null $P505, vivify_237
+ $P505 = root_new ['parrot';'Hash']
+ vivify_237:
+ set $P506, $P505["sym"]
+ unless_null $P506, vivify_238
+ new $P506, "Undef"
+ vivify_238:
+ set $S507, $P506
+ $P504."pasttype"($S507)
+.annotate 'line', 165
+ find_lex $P508, "$/"
+ find_lex $P509, "$past"
+ $P510 = $P508."!make"($P509)
+.annotate 'line', 162
+ .return ($P510)
+ control_496:
.local pmc exception
.get_results (exception)
- getattribute $P534, exception, "payload"
- .return ($P534)
+ getattribute $P511, exception, "payload"
+ .return ($P511)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<for>" :subid("37_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_538
-.annotate 'line', 173
- new $P537, 'ExceptionHandler'
- set_addr $P537, control_536
- $P537."handle_types"(57)
- push_eh $P537
- .lex "self", self
- .lex "$/", param_538
-.annotate 'line', 174
- new $P539, "Undef"
- .lex "$past", $P539
-.annotate 'line', 176
- new $P540, "Undef"
- .lex "$block", $P540
-.annotate 'line', 174
- find_lex $P541, "$/"
- unless_null $P541, vivify_236
- $P541 = root_new ['parrot';'Hash']
- vivify_236:
- set $P542, $P541["xblock"]
- unless_null $P542, vivify_237
- new $P542, "Undef"
- vivify_237:
- $P543 = $P542."ast"()
- store_lex "$past", $P543
-.annotate 'line', 175
- find_lex $P544, "$past"
- $P544."pasttype"("for")
-.annotate 'line', 176
- find_lex $P545, "$past"
- unless_null $P545, vivify_238
- $P545 = root_new ['parrot';'ResizablePMCArray']
- vivify_238:
- set $P546, $P545[1]
- unless_null $P546, vivify_239
- new $P546, "Undef"
+.include "except_types.pasm"
+.sub "statement_control:sym<repeat>" :subid("37_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_515
+.annotate 'line', 168
+ new $P514, 'ExceptionHandler'
+ set_addr $P514, control_513
+ $P514."handle_types"(.CONTROL_RETURN)
+ push_eh $P514
+ .lex "self", self
+ .lex "$/", param_515
+.annotate 'line', 169
+ new $P516, "Undef"
+ .lex "$pasttype", $P516
+.annotate 'line', 170
+ new $P517, "Undef"
+ .lex "$past", $P517
+.annotate 'line', 169
+ new $P518, "String"
+ assign $P518, "repeat_"
+ find_lex $P519, "$/"
+ unless_null $P519, vivify_239
+ $P519 = root_new ['parrot';'Hash']
vivify_239:
- store_lex "$block", $P546
-.annotate 'line', 177
- find_lex $P548, "$block"
- $P549 = $P548."arity"()
- if $P549, unless_547_end
-.annotate 'line', 178
- find_lex $P550, "$block"
- unless_null $P550, vivify_240
- $P550 = root_new ['parrot';'ResizablePMCArray']
+ set $P520, $P519["wu"]
+ unless_null $P520, vivify_240
+ new $P520, "Undef"
vivify_240:
- set $P551, $P550[0]
- unless_null $P551, vivify_241
- new $P551, "Undef"
+ set $S521, $P520
+ concat $P522, $P518, $S521
+ store_lex "$pasttype", $P522
+ find_lex $P523, "$past"
+.annotate 'line', 171
+ find_lex $P525, "$/"
+ unless_null $P525, vivify_241
+ $P525 = root_new ['parrot';'Hash']
vivify_241:
- get_hll_global $P552, ["PAST"], "Var"
- $P553 = $P552."new"("$_" :named("name"), "parameter" :named("scope"))
- $P551."push"($P553)
-.annotate 'line', 179
- find_lex $P554, "$block"
- $P554."symbol"("$_", "lexical" :named("scope"))
-.annotate 'line', 180
- find_lex $P555, "$block"
- $P555."arity"(1)
- unless_547_end:
-.annotate 'line', 182
- find_lex $P556, "$block"
- $P556."blocktype"("immediate")
-.annotate 'line', 183
- find_lex $P557, "$/"
- find_lex $P558, "$past"
- $P559 = $P557."!make"($P558)
+ set $P526, $P525["xblock"]
+ unless_null $P526, vivify_242
+ new $P526, "Undef"
+ vivify_242:
+ if $P526, if_524
+.annotate 'line', 176
+ get_hll_global $P533, ["PAST"], "Op"
+ find_lex $P534, "$/"
+ unless_null $P534, vivify_243
+ $P534 = root_new ['parrot';'Hash']
+ vivify_243:
+ set $P535, $P534["EXPR"]
+ unless_null $P535, vivify_244
+ new $P535, "Undef"
+ vivify_244:
+ $P536 = $P535."ast"()
+ find_lex $P537, "$/"
+ unless_null $P537, vivify_245
+ $P537 = root_new ['parrot';'Hash']
+ vivify_245:
+ set $P538, $P537["pblock"]
+ unless_null $P538, vivify_246
+ new $P538, "Undef"
+ vivify_246:
+ $P539 = $P538."ast"()
+ $P540 = "block_immediate"($P539)
+ find_lex $P541, "$pasttype"
+ find_lex $P542, "$/"
+ $P543 = $P533."new"($P536, $P540, $P541 :named("pasttype"), $P542 :named("node"))
+ store_lex "$past", $P543
+.annotate 'line', 175
+ goto if_524_end
+ if_524:
+.annotate 'line', 172
+ find_lex $P527, "$/"
+ unless_null $P527, vivify_247
+ $P527 = root_new ['parrot';'Hash']
+ vivify_247:
+ set $P528, $P527["xblock"]
+ unless_null $P528, vivify_248
+ new $P528, "Undef"
+ vivify_248:
+ $P529 = $P528."ast"()
+ $P530 = "xblock_immediate"($P529)
+ store_lex "$past", $P530
.annotate 'line', 173
- .return ($P559)
- control_536:
+ find_lex $P531, "$past"
+ find_lex $P532, "$pasttype"
+ $P531."pasttype"($P532)
+ if_524_end:
+.annotate 'line', 179
+ find_lex $P544, "$/"
+ find_lex $P545, "$past"
+ $P546 = $P544."!make"($P545)
+.annotate 'line', 168
+ .return ($P546)
+ control_513:
.local pmc exception
.get_results (exception)
- getattribute $P560, exception, "payload"
- .return ($P560)
+ getattribute $P547, exception, "payload"
+ .return ($P547)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<return>" :subid("38_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_564
-.annotate 'line', 186
- new $P563, 'ExceptionHandler'
- set_addr $P563, control_562
- $P563."handle_types"(57)
- push_eh $P563
+.include "except_types.pasm"
+.sub "statement_control:sym<for>" :subid("38_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_551
+.annotate 'line', 182
+ new $P550, 'ExceptionHandler'
+ set_addr $P550, control_549
+ $P550."handle_types"(.CONTROL_RETURN)
+ push_eh $P550
.lex "self", self
- .lex "$/", param_564
+ .lex "$/", param_551
+.annotate 'line', 183
+ new $P552, "Undef"
+ .lex "$past", $P552
+.annotate 'line', 185
+ new $P553, "Undef"
+ .lex "$block", $P553
+.annotate 'line', 183
+ find_lex $P554, "$/"
+ unless_null $P554, vivify_249
+ $P554 = root_new ['parrot';'Hash']
+ vivify_249:
+ set $P555, $P554["xblock"]
+ unless_null $P555, vivify_250
+ new $P555, "Undef"
+ vivify_250:
+ $P556 = $P555."ast"()
+ store_lex "$past", $P556
+.annotate 'line', 184
+ find_lex $P557, "$past"
+ $P557."pasttype"("for")
+.annotate 'line', 185
+ find_lex $P558, "$past"
+ unless_null $P558, vivify_251
+ $P558 = root_new ['parrot';'ResizablePMCArray']
+ vivify_251:
+ set $P559, $P558[1]
+ unless_null $P559, vivify_252
+ new $P559, "Undef"
+ vivify_252:
+ store_lex "$block", $P559
+.annotate 'line', 186
+ find_lex $P561, "$block"
+ $P562 = $P561."arity"()
+ if $P562, unless_560_end
.annotate 'line', 187
- find_lex $P565, "$/"
- get_hll_global $P566, ["PAST"], "Op"
- find_lex $P567, "$/"
- unless_null $P567, vivify_242
- $P567 = root_new ['parrot';'Hash']
- vivify_242:
- set $P568, $P567["EXPR"]
- unless_null $P568, vivify_243
- new $P568, "Undef"
- vivify_243:
- $P569 = $P568."ast"()
+ find_lex $P563, "$block"
+ unless_null $P563, vivify_253
+ $P563 = root_new ['parrot';'ResizablePMCArray']
+ vivify_253:
+ set $P564, $P563[0]
+ unless_null $P564, vivify_254
+ new $P564, "Undef"
+ vivify_254:
+ get_hll_global $P565, ["PAST"], "Var"
+ $P566 = $P565."new"("$_" :named("name"), "parameter" :named("scope"))
+ $P564."push"($P566)
+.annotate 'line', 188
+ find_lex $P567, "$block"
+ $P567."symbol"("$_", "lexical" :named("scope"))
+.annotate 'line', 189
+ find_lex $P568, "$block"
+ $P568."arity"(1)
+ unless_560_end:
+.annotate 'line', 191
+ find_lex $P569, "$block"
+ $P569."blocktype"("immediate")
+.annotate 'line', 192
find_lex $P570, "$/"
- $P571 = $P566."new"($P569, "return" :named("pasttype"), $P570 :named("node"))
- $P572 = $P565."!make"($P571)
-.annotate 'line', 186
+ find_lex $P571, "$past"
+ $P572 = $P570."!make"($P571)
+.annotate 'line', 182
.return ($P572)
- control_562:
+ control_549:
.local pmc exception
.get_results (exception)
getattribute $P573, exception, "payload"
@@ -18297,3321 +19348,3501 @@
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CATCH>" :subid("39_1274022903.56472") :method :outer("11_1274022903.56472")
+.include "except_types.pasm"
+.sub "statement_control:sym<return>" :subid("39_1275811497.55064") :method :outer("11_1275811497.55064")
.param pmc param_577
-.annotate 'line', 190
+.annotate 'line', 195
new $P576, 'ExceptionHandler'
set_addr $P576, control_575
- $P576."handle_types"(57)
+ $P576."handle_types"(.CONTROL_RETURN)
push_eh $P576
.lex "self", self
.lex "$/", param_577
-.annotate 'line', 191
- new $P578, "Undef"
- .lex "$block", $P578
- find_lex $P579, "$/"
- unless_null $P579, vivify_244
- $P579 = root_new ['parrot';'Hash']
- vivify_244:
- set $P580, $P579["block"]
- unless_null $P580, vivify_245
- new $P580, "Undef"
- vivify_245:
- $P581 = $P580."ast"()
- store_lex "$block", $P581
-.annotate 'line', 192
- find_lex $P582, "$/"
- find_lex $P583, "$block"
- "push_block_handler"($P582, $P583)
-.annotate 'line', 193
- get_global $P584, "@BLOCK"
- unless_null $P584, vivify_246
- $P584 = root_new ['parrot';'ResizablePMCArray']
- vivify_246:
- set $P585, $P584[0]
- unless_null $P585, vivify_247
- new $P585, "Undef"
- vivify_247:
- $P586 = $P585."handlers"()
- set $P587, $P586[0]
- unless_null $P587, vivify_248
- new $P587, "Undef"
- vivify_248:
- $P587."handle_types_except"("CONTROL")
-.annotate 'line', 194
- find_lex $P588, "$/"
- get_hll_global $P589, ["PAST"], "Stmts"
- find_lex $P590, "$/"
- $P591 = $P589."new"($P590 :named("node"))
- $P592 = $P588."!make"($P591)
-.annotate 'line', 190
- .return ($P592)
+.annotate 'line', 196
+ find_lex $P578, "$/"
+ get_hll_global $P579, ["PAST"], "Op"
+ find_lex $P580, "$/"
+ unless_null $P580, vivify_255
+ $P580 = root_new ['parrot';'Hash']
+ vivify_255:
+ set $P581, $P580["EXPR"]
+ unless_null $P581, vivify_256
+ new $P581, "Undef"
+ vivify_256:
+ $P582 = $P581."ast"()
+ find_lex $P583, "$/"
+ $P584 = $P579."new"($P582, "return" :named("pasttype"), $P583 :named("node"))
+ $P585 = $P578."!make"($P584)
+.annotate 'line', 195
+ .return ($P585)
control_575:
.local pmc exception
.get_results (exception)
- getattribute $P593, exception, "payload"
- .return ($P593)
+ getattribute $P586, exception, "payload"
+ .return ($P586)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_control:sym<CONTROL>" :subid("40_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_597
-.annotate 'line', 197
- new $P596, 'ExceptionHandler'
- set_addr $P596, control_595
- $P596."handle_types"(57)
- push_eh $P596
+.include "except_types.pasm"
+.sub "statement_control:sym<CATCH>" :subid("40_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_590
+.annotate 'line', 199
+ new $P589, 'ExceptionHandler'
+ set_addr $P589, control_588
+ $P589."handle_types"(.CONTROL_RETURN)
+ push_eh $P589
.lex "self", self
- .lex "$/", param_597
-.annotate 'line', 198
+ .lex "$/", param_590
+.annotate 'line', 200
+ new $P591, "Undef"
+ .lex "$block", $P591
+ find_lex $P592, "$/"
+ unless_null $P592, vivify_257
+ $P592 = root_new ['parrot';'Hash']
+ vivify_257:
+ set $P593, $P592["block"]
+ unless_null $P593, vivify_258
+ new $P593, "Undef"
+ vivify_258:
+ $P594 = $P593."ast"()
+ store_lex "$block", $P594
+.annotate 'line', 201
+ find_lex $P595, "$/"
+ find_lex $P596, "$block"
+ "push_block_handler"($P595, $P596)
+.annotate 'line', 202
+ get_global $P597, "@BLOCK"
+ unless_null $P597, vivify_259
+ $P597 = root_new ['parrot';'ResizablePMCArray']
+ vivify_259:
+ set $P598, $P597[0]
+ unless_null $P598, vivify_260
new $P598, "Undef"
- .lex "$block", $P598
- find_lex $P599, "$/"
- unless_null $P599, vivify_249
- $P599 = root_new ['parrot';'Hash']
- vivify_249:
- set $P600, $P599["block"]
- unless_null $P600, vivify_250
+ vivify_260:
+ $P599 = $P598."handlers"()
+ set $P600, $P599[0]
+ unless_null $P600, vivify_261
new $P600, "Undef"
- vivify_250:
- $P601 = $P600."ast"()
- store_lex "$block", $P601
+ vivify_261:
+ $P600."handle_types_except"("CONTROL")
+.annotate 'line', 203
+ find_lex $P601, "$/"
+ get_hll_global $P602, ["PAST"], "Stmts"
+ find_lex $P603, "$/"
+ $P604 = $P602."new"($P603 :named("node"))
+ $P605 = $P601."!make"($P604)
.annotate 'line', 199
- find_lex $P602, "$/"
- find_lex $P603, "$block"
- "push_block_handler"($P602, $P603)
-.annotate 'line', 200
- get_global $P604, "@BLOCK"
- unless_null $P604, vivify_251
- $P604 = root_new ['parrot';'ResizablePMCArray']
- vivify_251:
- set $P605, $P604[0]
- unless_null $P605, vivify_252
- new $P605, "Undef"
- vivify_252:
- $P606 = $P605."handlers"()
- set $P607, $P606[0]
- unless_null $P607, vivify_253
- new $P607, "Undef"
- vivify_253:
- $P607."handle_types"("CONTROL")
-.annotate 'line', 201
- find_lex $P608, "$/"
- get_hll_global $P609, ["PAST"], "Stmts"
- find_lex $P610, "$/"
- $P611 = $P609."new"($P610 :named("node"))
- $P612 = $P608."!make"($P611)
-.annotate 'line', 197
- .return ($P612)
- control_595:
+ .return ($P605)
+ control_588:
.local pmc exception
.get_results (exception)
- getattribute $P613, exception, "payload"
- .return ($P613)
+ getattribute $P606, exception, "payload"
+ .return ($P606)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<INIT>" :subid("41_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_618
-.annotate 'line', 241
- new $P617, 'ExceptionHandler'
- set_addr $P617, control_616
- $P617."handle_types"(57)
- push_eh $P617
- .lex "self", self
- .lex "$/", param_618
-.annotate 'line', 242
- get_global $P619, "@BLOCK"
- unless_null $P619, vivify_254
- $P619 = root_new ['parrot';'ResizablePMCArray']
- vivify_254:
+.include "except_types.pasm"
+.sub "statement_control:sym<CONTROL>" :subid("41_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_610
+.annotate 'line', 206
+ new $P609, 'ExceptionHandler'
+ set_addr $P609, control_608
+ $P609."handle_types"(.CONTROL_RETURN)
+ push_eh $P609
+ .lex "self", self
+ .lex "$/", param_610
+.annotate 'line', 207
+ new $P611, "Undef"
+ .lex "$block", $P611
+ find_lex $P612, "$/"
+ unless_null $P612, vivify_262
+ $P612 = root_new ['parrot';'Hash']
+ vivify_262:
+ set $P613, $P612["block"]
+ unless_null $P613, vivify_263
+ new $P613, "Undef"
+ vivify_263:
+ $P614 = $P613."ast"()
+ store_lex "$block", $P614
+.annotate 'line', 208
+ find_lex $P615, "$/"
+ find_lex $P616, "$block"
+ "push_block_handler"($P615, $P616)
+.annotate 'line', 209
+ get_global $P617, "@BLOCK"
+ unless_null $P617, vivify_264
+ $P617 = root_new ['parrot';'ResizablePMCArray']
+ vivify_264:
+ set $P618, $P617[0]
+ unless_null $P618, vivify_265
+ new $P618, "Undef"
+ vivify_265:
+ $P619 = $P618."handlers"()
set $P620, $P619[0]
- unless_null $P620, vivify_255
+ unless_null $P620, vivify_266
new $P620, "Undef"
- vivify_255:
- $P621 = $P620."loadinit"()
- find_lex $P622, "$/"
- unless_null $P622, vivify_256
- $P622 = root_new ['parrot';'Hash']
- vivify_256:
- set $P623, $P622["blorst"]
- unless_null $P623, vivify_257
- new $P623, "Undef"
- vivify_257:
- $P624 = $P623."ast"()
- $P621."push"($P624)
-.annotate 'line', 243
- find_lex $P625, "$/"
- get_hll_global $P626, ["PAST"], "Stmts"
- find_lex $P627, "$/"
- $P628 = $P626."new"($P627 :named("node"))
- $P629 = $P625."!make"($P628)
-.annotate 'line', 241
- .return ($P629)
- control_616:
+ vivify_266:
+ $P620."handle_types"("CONTROL")
+.annotate 'line', 210
+ find_lex $P621, "$/"
+ get_hll_global $P622, ["PAST"], "Stmts"
+ find_lex $P623, "$/"
+ $P624 = $P622."new"($P623 :named("node"))
+ $P625 = $P621."!make"($P624)
+.annotate 'line', 206
+ .return ($P625)
+ control_608:
.local pmc exception
.get_results (exception)
- getattribute $P630, exception, "payload"
- .return ($P630)
+ getattribute $P626, exception, "payload"
+ .return ($P626)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_prefix:sym<try>" :subid("42_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_634
-.annotate 'line', 246
- new $P633, 'ExceptionHandler'
- set_addr $P633, control_632
- $P633."handle_types"(57)
- push_eh $P633
+.include "except_types.pasm"
+.sub "statement_prefix:sym<INIT>" :subid("42_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_631
+.annotate 'line', 250
+ new $P630, 'ExceptionHandler'
+ set_addr $P630, control_629
+ $P630."handle_types"(.CONTROL_RETURN)
+ push_eh $P630
.lex "self", self
- .lex "$/", param_634
-.annotate 'line', 247
- new $P635, "Undef"
- .lex "$past", $P635
- find_lex $P636, "$/"
- unless_null $P636, vivify_258
- $P636 = root_new ['parrot';'Hash']
- vivify_258:
- set $P637, $P636["blorst"]
- unless_null $P637, vivify_259
- new $P637, "Undef"
- vivify_259:
- $P638 = $P637."ast"()
- store_lex "$past", $P638
-.annotate 'line', 248
- find_lex $P640, "$past"
- $S641 = $P640."WHAT"()
- isne $I642, $S641, "PAST::Block()"
- unless $I642, if_639_end
-.annotate 'line', 249
- get_hll_global $P643, ["PAST"], "Block"
- find_lex $P644, "$past"
- find_lex $P645, "$/"
- $P646 = $P643."new"($P644, "immediate" :named("blocktype"), $P645 :named("node"))
- store_lex "$past", $P646
- if_639_end:
+ .lex "$/", param_631
.annotate 'line', 251
- find_lex $P648, "$past"
- $P649 = $P648."handlers"()
- if $P649, unless_647_end
-.annotate 'line', 252
- find_lex $P650, "$past"
- get_hll_global $P651, ["PAST"], "Control"
-.annotate 'line', 254
- get_hll_global $P652, ["PAST"], "Stmts"
-.annotate 'line', 255
- get_hll_global $P653, ["PAST"], "Op"
-.annotate 'line', 256
- get_hll_global $P654, ["PAST"], "Var"
-.annotate 'line', 257
- get_hll_global $P655, ["PAST"], "Var"
- $P656 = $P655."new"("register" :named("scope"), "exception" :named("name"))
- $P657 = $P654."new"($P656, "handled", "keyed" :named("scope"))
-.annotate 'line', 256
- $P658 = $P653."new"($P657, 1, "bind" :named("pasttype"))
-.annotate 'line', 255
- $P659 = $P652."new"($P658)
-.annotate 'line', 254
- $P660 = $P651."new"($P659, "CONTROL" :named("handle_types_except"))
+ get_global $P632, "@BLOCK"
+ unless_null $P632, vivify_267
+ $P632 = root_new ['parrot';'ResizablePMCArray']
+ vivify_267:
+ set $P633, $P632[0]
+ unless_null $P633, vivify_268
+ new $P633, "Undef"
+ vivify_268:
+ $P634 = $P633."loadinit"()
+ find_lex $P635, "$/"
+ unless_null $P635, vivify_269
+ $P635 = root_new ['parrot';'Hash']
+ vivify_269:
+ set $P636, $P635["blorst"]
+ unless_null $P636, vivify_270
+ new $P636, "Undef"
+ vivify_270:
+ $P637 = $P636."ast"()
+ $P634."push"($P637)
.annotate 'line', 252
- new $P661, "ResizablePMCArray"
- push $P661, $P660
- $P650."handlers"($P661)
- unless_647_end:
-.annotate 'line', 266
- find_lex $P662, "$/"
- find_lex $P663, "$past"
- $P664 = $P662."!make"($P663)
-.annotate 'line', 246
- .return ($P664)
- control_632:
+ find_lex $P638, "$/"
+ get_hll_global $P639, ["PAST"], "Stmts"
+ find_lex $P640, "$/"
+ $P641 = $P639."new"($P640 :named("node"))
+ $P642 = $P638."!make"($P641)
+.annotate 'line', 250
+ .return ($P642)
+ control_629:
.local pmc exception
.get_results (exception)
- getattribute $P665, exception, "payload"
- .return ($P665)
+ getattribute $P643, exception, "payload"
+ .return ($P643)
.end
.namespace ["NQP";"Actions"]
-.sub "blorst" :subid("43_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_669
-.annotate 'line', 269
- new $P668, 'ExceptionHandler'
- set_addr $P668, control_667
- $P668."handle_types"(57)
- push_eh $P668
- .lex "self", self
- .lex "$/", param_669
-.annotate 'line', 270
- find_lex $P670, "$/"
-.annotate 'line', 271
- find_lex $P673, "$/"
- unless_null $P673, vivify_260
- $P673 = root_new ['parrot';'Hash']
- vivify_260:
- set $P674, $P673["block"]
- unless_null $P674, vivify_261
- new $P674, "Undef"
- vivify_261:
- if $P674, if_672
-.annotate 'line', 272
- find_lex $P679, "$/"
- unless_null $P679, vivify_262
- $P679 = root_new ['parrot';'Hash']
- vivify_262:
- set $P680, $P679["statement"]
- unless_null $P680, vivify_263
- new $P680, "Undef"
- vivify_263:
- $P681 = $P680."ast"()
- set $P671, $P681
-.annotate 'line', 271
- goto if_672_end
- if_672:
+.include "except_types.pasm"
+.sub "statement_prefix:sym<try>" :subid("43_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_647
+.annotate 'line', 255
+ new $P646, 'ExceptionHandler'
+ set_addr $P646, control_645
+ $P646."handle_types"(.CONTROL_RETURN)
+ push_eh $P646
+ .lex "self", self
+ .lex "$/", param_647
+.annotate 'line', 256
+ new $P648, "Undef"
+ .lex "$past", $P648
+ find_lex $P649, "$/"
+ unless_null $P649, vivify_271
+ $P649 = root_new ['parrot';'Hash']
+ vivify_271:
+ set $P650, $P649["blorst"]
+ unless_null $P650, vivify_272
+ new $P650, "Undef"
+ vivify_272:
+ $P651 = $P650."ast"()
+ store_lex "$past", $P651
+.annotate 'line', 257
+ find_lex $P653, "$past"
+ $S654 = $P653."WHAT"()
+ isne $I655, $S654, "PAST::Block()"
+ unless $I655, if_652_end
+.annotate 'line', 258
+ get_hll_global $P656, ["PAST"], "Block"
+ find_lex $P657, "$past"
+ find_lex $P658, "$/"
+ $P659 = $P656."new"($P657, "immediate" :named("blocktype"), $P658 :named("node"))
+ store_lex "$past", $P659
+ if_652_end:
+.annotate 'line', 260
+ find_lex $P661, "$past"
+ $P662 = $P661."handlers"()
+ if $P662, unless_660_end
+.annotate 'line', 261
+ find_lex $P663, "$past"
+ get_hll_global $P664, ["PAST"], "Control"
+.annotate 'line', 263
+ get_hll_global $P665, ["PAST"], "Stmts"
+.annotate 'line', 264
+ get_hll_global $P666, ["PAST"], "Op"
+.annotate 'line', 265
+ get_hll_global $P667, ["PAST"], "Var"
+.annotate 'line', 266
+ get_hll_global $P668, ["PAST"], "Var"
+ $P669 = $P668."new"("register" :named("scope"), "exception" :named("name"))
+ $P670 = $P667."new"($P669, "handled", "keyed" :named("scope"))
+.annotate 'line', 265
+ $P671 = $P666."new"($P670, 1, "bind" :named("pasttype"))
+.annotate 'line', 264
+ $P672 = $P665."new"($P671)
+.annotate 'line', 263
+ $P673 = $P664."new"($P672, "CONTROL" :named("handle_types_except"))
+.annotate 'line', 261
+ new $P674, "ResizablePMCArray"
+ push $P674, $P673
+ $P663."handlers"($P674)
+ unless_660_end:
+.annotate 'line', 275
find_lex $P675, "$/"
- unless_null $P675, vivify_264
- $P675 = root_new ['parrot';'Hash']
- vivify_264:
- set $P676, $P675["block"]
- unless_null $P676, vivify_265
- new $P676, "Undef"
- vivify_265:
- $P677 = $P676."ast"()
- $P678 = "block_immediate"($P677)
- set $P671, $P678
- if_672_end:
- $P682 = $P670."!make"($P671)
-.annotate 'line', 269
- .return ($P682)
- control_667:
+ find_lex $P676, "$past"
+ $P677 = $P675."!make"($P676)
+.annotate 'line', 255
+ .return ($P677)
+ control_645:
.local pmc exception
.get_results (exception)
- getattribute $P683, exception, "payload"
- .return ($P683)
+ getattribute $P678, exception, "payload"
+ .return ($P678)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<if>" :subid("44_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_687
-.annotate 'line', 277
- new $P686, 'ExceptionHandler'
- set_addr $P686, control_685
- $P686."handle_types"(57)
- push_eh $P686
- .lex "self", self
- .lex "$/", param_687
+.include "except_types.pasm"
+.sub "blorst" :subid("44_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_682
+.annotate 'line', 278
+ new $P681, 'ExceptionHandler'
+ set_addr $P681, control_680
+ $P681."handle_types"(.CONTROL_RETURN)
+ push_eh $P681
+ .lex "self", self
+ .lex "$/", param_682
+.annotate 'line', 279
+ find_lex $P683, "$/"
+.annotate 'line', 280
+ find_lex $P686, "$/"
+ unless_null $P686, vivify_273
+ $P686 = root_new ['parrot';'Hash']
+ vivify_273:
+ set $P687, $P686["block"]
+ unless_null $P687, vivify_274
+ new $P687, "Undef"
+ vivify_274:
+ if $P687, if_685
+.annotate 'line', 281
+ find_lex $P692, "$/"
+ unless_null $P692, vivify_275
+ $P692 = root_new ['parrot';'Hash']
+ vivify_275:
+ set $P693, $P692["statement"]
+ unless_null $P693, vivify_276
+ new $P693, "Undef"
+ vivify_276:
+ $P694 = $P693."ast"()
+ set $P684, $P694
+.annotate 'line', 280
+ goto if_685_end
+ if_685:
find_lex $P688, "$/"
- find_lex $P689, "$/"
- unless_null $P689, vivify_266
- $P689 = root_new ['parrot';'Hash']
- vivify_266:
- set $P690, $P689["cond"]
- unless_null $P690, vivify_267
- new $P690, "Undef"
- vivify_267:
- $P691 = $P690."ast"()
- $P692 = $P688."!make"($P691)
- .return ($P692)
- control_685:
+ unless_null $P688, vivify_277
+ $P688 = root_new ['parrot';'Hash']
+ vivify_277:
+ set $P689, $P688["block"]
+ unless_null $P689, vivify_278
+ new $P689, "Undef"
+ vivify_278:
+ $P690 = $P689."ast"()
+ $P691 = "block_immediate"($P690)
+ set $P684, $P691
+ if_685_end:
+ $P695 = $P683."!make"($P684)
+.annotate 'line', 278
+ .return ($P695)
+ control_680:
.local pmc exception
.get_results (exception)
- getattribute $P693, exception, "payload"
- .return ($P693)
+ getattribute $P696, exception, "payload"
+ .return ($P696)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_mod_cond:sym<unless>" :subid("45_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_697
-.annotate 'line', 278
- new $P696, 'ExceptionHandler'
- set_addr $P696, control_695
- $P696."handle_types"(57)
- push_eh $P696
- .lex "self", self
- .lex "$/", param_697
- find_lex $P698, "$/"
- find_lex $P699, "$/"
- unless_null $P699, vivify_268
- $P699 = root_new ['parrot';'Hash']
- vivify_268:
- set $P700, $P699["cond"]
- unless_null $P700, vivify_269
- new $P700, "Undef"
- vivify_269:
- $P701 = $P700."ast"()
- $P702 = $P698."!make"($P701)
- .return ($P702)
- control_695:
+.include "except_types.pasm"
+.sub "statement_mod_cond:sym<if>" :subid("45_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_700
+.annotate 'line', 286
+ new $P699, 'ExceptionHandler'
+ set_addr $P699, control_698
+ $P699."handle_types"(.CONTROL_RETURN)
+ push_eh $P699
+ .lex "self", self
+ .lex "$/", param_700
+ find_lex $P701, "$/"
+ find_lex $P702, "$/"
+ unless_null $P702, vivify_279
+ $P702 = root_new ['parrot';'Hash']
+ vivify_279:
+ set $P703, $P702["cond"]
+ unless_null $P703, vivify_280
+ new $P703, "Undef"
+ vivify_280:
+ $P704 = $P703."ast"()
+ $P705 = $P701."!make"($P704)
+ .return ($P705)
+ control_698:
.local pmc exception
.get_results (exception)
- getattribute $P703, exception, "payload"
- .return ($P703)
+ getattribute $P706, exception, "payload"
+ .return ($P706)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<while>" :subid("46_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_707
-.annotate 'line', 280
- new $P706, 'ExceptionHandler'
- set_addr $P706, control_705
- $P706."handle_types"(57)
- push_eh $P706
- .lex "self", self
- .lex "$/", param_707
- find_lex $P708, "$/"
- find_lex $P709, "$/"
- unless_null $P709, vivify_270
- $P709 = root_new ['parrot';'Hash']
- vivify_270:
- set $P710, $P709["cond"]
- unless_null $P710, vivify_271
- new $P710, "Undef"
- vivify_271:
- $P711 = $P710."ast"()
- $P712 = $P708."!make"($P711)
- .return ($P712)
- control_705:
+.include "except_types.pasm"
+.sub "statement_mod_cond:sym<unless>" :subid("46_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_710
+.annotate 'line', 287
+ new $P709, 'ExceptionHandler'
+ set_addr $P709, control_708
+ $P709."handle_types"(.CONTROL_RETURN)
+ push_eh $P709
+ .lex "self", self
+ .lex "$/", param_710
+ find_lex $P711, "$/"
+ find_lex $P712, "$/"
+ unless_null $P712, vivify_281
+ $P712 = root_new ['parrot';'Hash']
+ vivify_281:
+ set $P713, $P712["cond"]
+ unless_null $P713, vivify_282
+ new $P713, "Undef"
+ vivify_282:
+ $P714 = $P713."ast"()
+ $P715 = $P711."!make"($P714)
+ .return ($P715)
+ control_708:
.local pmc exception
.get_results (exception)
- getattribute $P713, exception, "payload"
- .return ($P713)
+ getattribute $P716, exception, "payload"
+ .return ($P716)
.end
.namespace ["NQP";"Actions"]
-.sub "statement_mod_loop:sym<until>" :subid("47_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_717
-.annotate 'line', 281
- new $P716, 'ExceptionHandler'
- set_addr $P716, control_715
- $P716."handle_types"(57)
- push_eh $P716
- .lex "self", self
- .lex "$/", param_717
- find_lex $P718, "$/"
- find_lex $P719, "$/"
- unless_null $P719, vivify_272
- $P719 = root_new ['parrot';'Hash']
- vivify_272:
- set $P720, $P719["cond"]
- unless_null $P720, vivify_273
- new $P720, "Undef"
- vivify_273:
- $P721 = $P720."ast"()
- $P722 = $P718."!make"($P721)
- .return ($P722)
- control_715:
+.include "except_types.pasm"
+.sub "statement_mod_loop:sym<while>" :subid("47_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_720
+.annotate 'line', 289
+ new $P719, 'ExceptionHandler'
+ set_addr $P719, control_718
+ $P719."handle_types"(.CONTROL_RETURN)
+ push_eh $P719
+ .lex "self", self
+ .lex "$/", param_720
+ find_lex $P721, "$/"
+ find_lex $P722, "$/"
+ unless_null $P722, vivify_283
+ $P722 = root_new ['parrot';'Hash']
+ vivify_283:
+ set $P723, $P722["cond"]
+ unless_null $P723, vivify_284
+ new $P723, "Undef"
+ vivify_284:
+ $P724 = $P723."ast"()
+ $P725 = $P721."!make"($P724)
+ .return ($P725)
+ control_718:
.local pmc exception
.get_results (exception)
- getattribute $P723, exception, "payload"
- .return ($P723)
+ getattribute $P726, exception, "payload"
+ .return ($P726)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<fatarrow>" :subid("48_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_727
-.annotate 'line', 285
- new $P726, 'ExceptionHandler'
- set_addr $P726, control_725
- $P726."handle_types"(57)
- push_eh $P726
- .lex "self", self
- .lex "$/", param_727
- find_lex $P728, "$/"
- find_lex $P729, "$/"
- unless_null $P729, vivify_274
- $P729 = root_new ['parrot';'Hash']
- vivify_274:
- set $P730, $P729["fatarrow"]
- unless_null $P730, vivify_275
- new $P730, "Undef"
- vivify_275:
- $P731 = $P730."ast"()
- $P732 = $P728."!make"($P731)
- .return ($P732)
- control_725:
+.include "except_types.pasm"
+.sub "statement_mod_loop:sym<until>" :subid("48_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_730
+.annotate 'line', 290
+ new $P729, 'ExceptionHandler'
+ set_addr $P729, control_728
+ $P729."handle_types"(.CONTROL_RETURN)
+ push_eh $P729
+ .lex "self", self
+ .lex "$/", param_730
+ find_lex $P731, "$/"
+ find_lex $P732, "$/"
+ unless_null $P732, vivify_285
+ $P732 = root_new ['parrot';'Hash']
+ vivify_285:
+ set $P733, $P732["cond"]
+ unless_null $P733, vivify_286
+ new $P733, "Undef"
+ vivify_286:
+ $P734 = $P733."ast"()
+ $P735 = $P731."!make"($P734)
+ .return ($P735)
+ control_728:
.local pmc exception
.get_results (exception)
- getattribute $P733, exception, "payload"
- .return ($P733)
+ getattribute $P736, exception, "payload"
+ .return ($P736)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<colonpair>" :subid("49_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_737
-.annotate 'line', 286
- new $P736, 'ExceptionHandler'
- set_addr $P736, control_735
- $P736."handle_types"(57)
- push_eh $P736
- .lex "self", self
- .lex "$/", param_737
- find_lex $P738, "$/"
- find_lex $P739, "$/"
- unless_null $P739, vivify_276
- $P739 = root_new ['parrot';'Hash']
- vivify_276:
- set $P740, $P739["colonpair"]
- unless_null $P740, vivify_277
- new $P740, "Undef"
- vivify_277:
- $P741 = $P740."ast"()
- $P742 = $P738."!make"($P741)
- .return ($P742)
- control_735:
+.include "except_types.pasm"
+.sub "term:sym<fatarrow>" :subid("49_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_740
+.annotate 'line', 294
+ new $P739, 'ExceptionHandler'
+ set_addr $P739, control_738
+ $P739."handle_types"(.CONTROL_RETURN)
+ push_eh $P739
+ .lex "self", self
+ .lex "$/", param_740
+ find_lex $P741, "$/"
+ find_lex $P742, "$/"
+ unless_null $P742, vivify_287
+ $P742 = root_new ['parrot';'Hash']
+ vivify_287:
+ set $P743, $P742["fatarrow"]
+ unless_null $P743, vivify_288
+ new $P743, "Undef"
+ vivify_288:
+ $P744 = $P743."ast"()
+ $P745 = $P741."!make"($P744)
+ .return ($P745)
+ control_738:
.local pmc exception
.get_results (exception)
- getattribute $P743, exception, "payload"
- .return ($P743)
+ getattribute $P746, exception, "payload"
+ .return ($P746)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<variable>" :subid("50_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_747
-.annotate 'line', 287
- new $P746, 'ExceptionHandler'
- set_addr $P746, control_745
- $P746."handle_types"(57)
- push_eh $P746
- .lex "self", self
- .lex "$/", param_747
- find_lex $P748, "$/"
- find_lex $P749, "$/"
- unless_null $P749, vivify_278
- $P749 = root_new ['parrot';'Hash']
- vivify_278:
- set $P750, $P749["variable"]
- unless_null $P750, vivify_279
- new $P750, "Undef"
- vivify_279:
- $P751 = $P750."ast"()
- $P752 = $P748."!make"($P751)
- .return ($P752)
- control_745:
+.include "except_types.pasm"
+.sub "term:sym<colonpair>" :subid("50_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_750
+.annotate 'line', 295
+ new $P749, 'ExceptionHandler'
+ set_addr $P749, control_748
+ $P749."handle_types"(.CONTROL_RETURN)
+ push_eh $P749
+ .lex "self", self
+ .lex "$/", param_750
+ find_lex $P751, "$/"
+ find_lex $P752, "$/"
+ unless_null $P752, vivify_289
+ $P752 = root_new ['parrot';'Hash']
+ vivify_289:
+ set $P753, $P752["colonpair"]
+ unless_null $P753, vivify_290
+ new $P753, "Undef"
+ vivify_290:
+ $P754 = $P753."ast"()
+ $P755 = $P751."!make"($P754)
+ .return ($P755)
+ control_748:
.local pmc exception
.get_results (exception)
- getattribute $P753, exception, "payload"
- .return ($P753)
+ getattribute $P756, exception, "payload"
+ .return ($P756)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<package_declarator>" :subid("51_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_757
-.annotate 'line', 288
- new $P756, 'ExceptionHandler'
- set_addr $P756, control_755
- $P756."handle_types"(57)
- push_eh $P756
- .lex "self", self
- .lex "$/", param_757
- find_lex $P758, "$/"
- find_lex $P759, "$/"
- unless_null $P759, vivify_280
- $P759 = root_new ['parrot';'Hash']
- vivify_280:
- set $P760, $P759["package_declarator"]
- unless_null $P760, vivify_281
- new $P760, "Undef"
- vivify_281:
- $P761 = $P760."ast"()
- $P762 = $P758."!make"($P761)
- .return ($P762)
- control_755:
+.include "except_types.pasm"
+.sub "term:sym<variable>" :subid("51_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_760
+.annotate 'line', 296
+ new $P759, 'ExceptionHandler'
+ set_addr $P759, control_758
+ $P759."handle_types"(.CONTROL_RETURN)
+ push_eh $P759
+ .lex "self", self
+ .lex "$/", param_760
+ find_lex $P761, "$/"
+ find_lex $P762, "$/"
+ unless_null $P762, vivify_291
+ $P762 = root_new ['parrot';'Hash']
+ vivify_291:
+ set $P763, $P762["variable"]
+ unless_null $P763, vivify_292
+ new $P763, "Undef"
+ vivify_292:
+ $P764 = $P763."ast"()
+ $P765 = $P761."!make"($P764)
+ .return ($P765)
+ control_758:
.local pmc exception
.get_results (exception)
- getattribute $P763, exception, "payload"
- .return ($P763)
+ getattribute $P766, exception, "payload"
+ .return ($P766)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<scope_declarator>" :subid("52_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_767
-.annotate 'line', 289
- new $P766, 'ExceptionHandler'
- set_addr $P766, control_765
- $P766."handle_types"(57)
- push_eh $P766
- .lex "self", self
- .lex "$/", param_767
- find_lex $P768, "$/"
- find_lex $P769, "$/"
- unless_null $P769, vivify_282
- $P769 = root_new ['parrot';'Hash']
- vivify_282:
- set $P770, $P769["scope_declarator"]
- unless_null $P770, vivify_283
- new $P770, "Undef"
- vivify_283:
- $P771 = $P770."ast"()
- $P772 = $P768."!make"($P771)
- .return ($P772)
- control_765:
+.include "except_types.pasm"
+.sub "term:sym<package_declarator>" :subid("52_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_770
+.annotate 'line', 297
+ new $P769, 'ExceptionHandler'
+ set_addr $P769, control_768
+ $P769."handle_types"(.CONTROL_RETURN)
+ push_eh $P769
+ .lex "self", self
+ .lex "$/", param_770
+ find_lex $P771, "$/"
+ find_lex $P772, "$/"
+ unless_null $P772, vivify_293
+ $P772 = root_new ['parrot';'Hash']
+ vivify_293:
+ set $P773, $P772["package_declarator"]
+ unless_null $P773, vivify_294
+ new $P773, "Undef"
+ vivify_294:
+ $P774 = $P773."ast"()
+ $P775 = $P771."!make"($P774)
+ .return ($P775)
+ control_768:
.local pmc exception
.get_results (exception)
- getattribute $P773, exception, "payload"
- .return ($P773)
+ getattribute $P776, exception, "payload"
+ .return ($P776)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<routine_declarator>" :subid("53_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_777
-.annotate 'line', 290
- new $P776, 'ExceptionHandler'
- set_addr $P776, control_775
- $P776."handle_types"(57)
- push_eh $P776
- .lex "self", self
- .lex "$/", param_777
- find_lex $P778, "$/"
- find_lex $P779, "$/"
- unless_null $P779, vivify_284
- $P779 = root_new ['parrot';'Hash']
- vivify_284:
- set $P780, $P779["routine_declarator"]
- unless_null $P780, vivify_285
- new $P780, "Undef"
- vivify_285:
- $P781 = $P780."ast"()
- $P782 = $P778."!make"($P781)
- .return ($P782)
- control_775:
+.include "except_types.pasm"
+.sub "term:sym<scope_declarator>" :subid("53_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_780
+.annotate 'line', 298
+ new $P779, 'ExceptionHandler'
+ set_addr $P779, control_778
+ $P779."handle_types"(.CONTROL_RETURN)
+ push_eh $P779
+ .lex "self", self
+ .lex "$/", param_780
+ find_lex $P781, "$/"
+ find_lex $P782, "$/"
+ unless_null $P782, vivify_295
+ $P782 = root_new ['parrot';'Hash']
+ vivify_295:
+ set $P783, $P782["scope_declarator"]
+ unless_null $P783, vivify_296
+ new $P783, "Undef"
+ vivify_296:
+ $P784 = $P783."ast"()
+ $P785 = $P781."!make"($P784)
+ .return ($P785)
+ control_778:
.local pmc exception
.get_results (exception)
- getattribute $P783, exception, "payload"
- .return ($P783)
+ getattribute $P786, exception, "payload"
+ .return ($P786)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<regex_declarator>" :subid("54_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_787
-.annotate 'line', 291
- new $P786, 'ExceptionHandler'
- set_addr $P786, control_785
- $P786."handle_types"(57)
- push_eh $P786
- .lex "self", self
- .lex "$/", param_787
- find_lex $P788, "$/"
- find_lex $P789, "$/"
- unless_null $P789, vivify_286
- $P789 = root_new ['parrot';'Hash']
- vivify_286:
- set $P790, $P789["regex_declarator"]
- unless_null $P790, vivify_287
- new $P790, "Undef"
- vivify_287:
- $P791 = $P790."ast"()
- $P792 = $P788."!make"($P791)
- .return ($P792)
- control_785:
+.include "except_types.pasm"
+.sub "term:sym<routine_declarator>" :subid("54_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_790
+.annotate 'line', 299
+ new $P789, 'ExceptionHandler'
+ set_addr $P789, control_788
+ $P789."handle_types"(.CONTROL_RETURN)
+ push_eh $P789
+ .lex "self", self
+ .lex "$/", param_790
+ find_lex $P791, "$/"
+ find_lex $P792, "$/"
+ unless_null $P792, vivify_297
+ $P792 = root_new ['parrot';'Hash']
+ vivify_297:
+ set $P793, $P792["routine_declarator"]
+ unless_null $P793, vivify_298
+ new $P793, "Undef"
+ vivify_298:
+ $P794 = $P793."ast"()
+ $P795 = $P791."!make"($P794)
+ .return ($P795)
+ control_788:
.local pmc exception
.get_results (exception)
- getattribute $P793, exception, "payload"
- .return ($P793)
+ getattribute $P796, exception, "payload"
+ .return ($P796)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<statement_prefix>" :subid("55_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_797
-.annotate 'line', 292
- new $P796, 'ExceptionHandler'
- set_addr $P796, control_795
- $P796."handle_types"(57)
- push_eh $P796
- .lex "self", self
- .lex "$/", param_797
- find_lex $P798, "$/"
- find_lex $P799, "$/"
- unless_null $P799, vivify_288
- $P799 = root_new ['parrot';'Hash']
- vivify_288:
- set $P800, $P799["statement_prefix"]
- unless_null $P800, vivify_289
- new $P800, "Undef"
- vivify_289:
- $P801 = $P800."ast"()
- $P802 = $P798."!make"($P801)
- .return ($P802)
- control_795:
+.include "except_types.pasm"
+.sub "term:sym<regex_declarator>" :subid("55_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_800
+.annotate 'line', 300
+ new $P799, 'ExceptionHandler'
+ set_addr $P799, control_798
+ $P799."handle_types"(.CONTROL_RETURN)
+ push_eh $P799
+ .lex "self", self
+ .lex "$/", param_800
+ find_lex $P801, "$/"
+ find_lex $P802, "$/"
+ unless_null $P802, vivify_299
+ $P802 = root_new ['parrot';'Hash']
+ vivify_299:
+ set $P803, $P802["regex_declarator"]
+ unless_null $P803, vivify_300
+ new $P803, "Undef"
+ vivify_300:
+ $P804 = $P803."ast"()
+ $P805 = $P801."!make"($P804)
+ .return ($P805)
+ control_798:
.local pmc exception
.get_results (exception)
- getattribute $P803, exception, "payload"
- .return ($P803)
+ getattribute $P806, exception, "payload"
+ .return ($P806)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<lambda>" :subid("56_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_807
-.annotate 'line', 293
- new $P806, 'ExceptionHandler'
- set_addr $P806, control_805
- $P806."handle_types"(57)
- push_eh $P806
- .lex "self", self
- .lex "$/", param_807
- find_lex $P808, "$/"
- find_lex $P809, "$/"
- unless_null $P809, vivify_290
- $P809 = root_new ['parrot';'Hash']
- vivify_290:
- set $P810, $P809["pblock"]
- unless_null $P810, vivify_291
- new $P810, "Undef"
- vivify_291:
- $P811 = $P810."ast"()
- $P812 = $P808."!make"($P811)
- .return ($P812)
- control_805:
+.include "except_types.pasm"
+.sub "term:sym<statement_prefix>" :subid("56_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_810
+.annotate 'line', 301
+ new $P809, 'ExceptionHandler'
+ set_addr $P809, control_808
+ $P809."handle_types"(.CONTROL_RETURN)
+ push_eh $P809
+ .lex "self", self
+ .lex "$/", param_810
+ find_lex $P811, "$/"
+ find_lex $P812, "$/"
+ unless_null $P812, vivify_301
+ $P812 = root_new ['parrot';'Hash']
+ vivify_301:
+ set $P813, $P812["statement_prefix"]
+ unless_null $P813, vivify_302
+ new $P813, "Undef"
+ vivify_302:
+ $P814 = $P813."ast"()
+ $P815 = $P811."!make"($P814)
+ .return ($P815)
+ control_808:
.local pmc exception
.get_results (exception)
- getattribute $P813, exception, "payload"
- .return ($P813)
+ getattribute $P816, exception, "payload"
+ .return ($P816)
.end
.namespace ["NQP";"Actions"]
-.sub "fatarrow" :subid("57_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_817
-.annotate 'line', 295
- new $P816, 'ExceptionHandler'
- set_addr $P816, control_815
- $P816."handle_types"(57)
- push_eh $P816
- .lex "self", self
- .lex "$/", param_817
-.annotate 'line', 296
- new $P818, "Undef"
- .lex "$past", $P818
- find_lex $P819, "$/"
- unless_null $P819, vivify_292
- $P819 = root_new ['parrot';'Hash']
- vivify_292:
- set $P820, $P819["val"]
- unless_null $P820, vivify_293
- new $P820, "Undef"
- vivify_293:
- $P821 = $P820."ast"()
- store_lex "$past", $P821
-.annotate 'line', 297
- find_lex $P822, "$past"
- find_lex $P823, "$/"
- unless_null $P823, vivify_294
- $P823 = root_new ['parrot';'Hash']
- vivify_294:
- set $P824, $P823["key"]
- unless_null $P824, vivify_295
- new $P824, "Undef"
- vivify_295:
- $P825 = $P824."Str"()
- $P822."named"($P825)
-.annotate 'line', 298
- find_lex $P826, "$/"
- find_lex $P827, "$past"
- $P828 = $P826."!make"($P827)
-.annotate 'line', 295
- .return ($P828)
- control_815:
+.include "except_types.pasm"
+.sub "term:sym<lambda>" :subid("57_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_820
+.annotate 'line', 302
+ new $P819, 'ExceptionHandler'
+ set_addr $P819, control_818
+ $P819."handle_types"(.CONTROL_RETURN)
+ push_eh $P819
+ .lex "self", self
+ .lex "$/", param_820
+ find_lex $P821, "$/"
+ find_lex $P822, "$/"
+ unless_null $P822, vivify_303
+ $P822 = root_new ['parrot';'Hash']
+ vivify_303:
+ set $P823, $P822["pblock"]
+ unless_null $P823, vivify_304
+ new $P823, "Undef"
+ vivify_304:
+ $P824 = $P823."ast"()
+ $P825 = $P821."!make"($P824)
+ .return ($P825)
+ control_818:
.local pmc exception
.get_results (exception)
- getattribute $P829, exception, "payload"
- .return ($P829)
+ getattribute $P826, exception, "payload"
+ .return ($P826)
.end
.namespace ["NQP";"Actions"]
-.sub "colonpair" :subid("58_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_833
-.annotate 'line', 301
- new $P832, 'ExceptionHandler'
- set_addr $P832, control_831
- $P832."handle_types"(57)
- push_eh $P832
- .lex "self", self
- .lex "$/", param_833
-.annotate 'line', 302
- new $P834, "Undef"
- .lex "$past", $P834
-.annotate 'line', 303
- find_lex $P837, "$/"
- unless_null $P837, vivify_296
- $P837 = root_new ['parrot';'Hash']
- vivify_296:
- set $P838, $P837["circumfix"]
- unless_null $P838, vivify_297
- new $P838, "Undef"
- vivify_297:
- if $P838, if_836
+.include "except_types.pasm"
+.sub "fatarrow" :subid("58_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_830
.annotate 'line', 304
- get_hll_global $P843, ["PAST"], "Val"
- find_lex $P844, "$/"
- unless_null $P844, vivify_298
- $P844 = root_new ['parrot';'Hash']
- vivify_298:
- set $P845, $P844["not"]
- unless_null $P845, vivify_299
- new $P845, "Undef"
- vivify_299:
- isfalse $I846, $P845
- $P847 = $P843."new"($I846 :named("value"))
- set $P835, $P847
-.annotate 'line', 303
- goto if_836_end
- if_836:
- find_lex $P839, "$/"
- unless_null $P839, vivify_300
- $P839 = root_new ['parrot';'Hash']
- vivify_300:
- set $P840, $P839["circumfix"]
- unless_null $P840, vivify_301
- $P840 = root_new ['parrot';'ResizablePMCArray']
- vivify_301:
- set $P841, $P840[0]
- unless_null $P841, vivify_302
- new $P841, "Undef"
- vivify_302:
- $P842 = $P841."ast"()
- set $P835, $P842
- if_836_end:
- store_lex "$past", $P835
+ new $P829, 'ExceptionHandler'
+ set_addr $P829, control_828
+ $P829."handle_types"(.CONTROL_RETURN)
+ push_eh $P829
+ .lex "self", self
+ .lex "$/", param_830
.annotate 'line', 305
- find_lex $P848, "$past"
- find_lex $P849, "$/"
- unless_null $P849, vivify_303
- $P849 = root_new ['parrot';'Hash']
- vivify_303:
- set $P850, $P849["identifier"]
- unless_null $P850, vivify_304
- new $P850, "Undef"
- vivify_304:
- set $S851, $P850
- $P848."named"($S851)
+ new $P831, "Undef"
+ .lex "$past", $P831
+ find_lex $P832, "$/"
+ unless_null $P832, vivify_305
+ $P832 = root_new ['parrot';'Hash']
+ vivify_305:
+ set $P833, $P832["val"]
+ unless_null $P833, vivify_306
+ new $P833, "Undef"
+ vivify_306:
+ $P834 = $P833."ast"()
+ store_lex "$past", $P834
.annotate 'line', 306
- find_lex $P852, "$/"
- find_lex $P853, "$past"
- $P854 = $P852."!make"($P853)
-.annotate 'line', 301
- .return ($P854)
- control_831:
+ find_lex $P835, "$past"
+ find_lex $P836, "$/"
+ unless_null $P836, vivify_307
+ $P836 = root_new ['parrot';'Hash']
+ vivify_307:
+ set $P837, $P836["key"]
+ unless_null $P837, vivify_308
+ new $P837, "Undef"
+ vivify_308:
+ $P838 = $P837."Str"()
+ $P835."named"($P838)
+.annotate 'line', 307
+ find_lex $P839, "$/"
+ find_lex $P840, "$past"
+ $P841 = $P839."!make"($P840)
+.annotate 'line', 304
+ .return ($P841)
+ control_828:
.local pmc exception
.get_results (exception)
- getattribute $P855, exception, "payload"
- .return ($P855)
+ getattribute $P842, exception, "payload"
+ .return ($P842)
.end
.namespace ["NQP";"Actions"]
-.sub "variable" :subid("59_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_859
-.annotate 'line', 309
- .const 'Sub' $P872 = "60_1274022903.56472"
- capture_lex $P872
- new $P858, 'ExceptionHandler'
- set_addr $P858, control_857
- $P858."handle_types"(57)
- push_eh $P858
- .lex "self", self
- .lex "$/", param_859
+.include "except_types.pasm"
+.sub "colonpair" :subid("59_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_846
.annotate 'line', 310
- new $P860, "Undef"
- .lex "$past", $P860
-.annotate 'line', 309
- find_lex $P861, "$past"
+ new $P845, 'ExceptionHandler'
+ set_addr $P845, control_844
+ $P845."handle_types"(.CONTROL_RETURN)
+ push_eh $P845
+ .lex "self", self
+ .lex "$/", param_846
.annotate 'line', 311
- find_lex $P863, "$/"
- unless_null $P863, vivify_305
- $P863 = root_new ['parrot';'Hash']
- vivify_305:
- set $P864, $P863["postcircumfix"]
- unless_null $P864, vivify_306
- new $P864, "Undef"
- vivify_306:
- if $P864, if_862
-.annotate 'line', 315
- .const 'Sub' $P872 = "60_1274022903.56472"
- capture_lex $P872
- $P872()
- goto if_862_end
- if_862:
+ new $P847, "Undef"
+ .lex "$past", $P847
.annotate 'line', 312
- find_lex $P865, "$/"
- unless_null $P865, vivify_323
- $P865 = root_new ['parrot';'Hash']
- vivify_323:
- set $P866, $P865["postcircumfix"]
- unless_null $P866, vivify_324
- new $P866, "Undef"
- vivify_324:
- $P867 = $P866."ast"()
- store_lex "$past", $P867
+ find_lex $P850, "$/"
+ unless_null $P850, vivify_309
+ $P850 = root_new ['parrot';'Hash']
+ vivify_309:
+ set $P851, $P850["circumfix"]
+ unless_null $P851, vivify_310
+ new $P851, "Undef"
+ vivify_310:
+ if $P851, if_849
.annotate 'line', 313
- find_lex $P868, "$past"
- get_hll_global $P869, ["PAST"], "Var"
- $P870 = $P869."new"("$/" :named("name"))
- $P868."unshift"($P870)
- if_862_end:
-.annotate 'line', 344
- find_lex $P941, "$/"
- find_lex $P942, "$past"
- $P943 = $P941."!make"($P942)
-.annotate 'line', 309
- .return ($P943)
- control_857:
+ get_hll_global $P856, ["PAST"], "Val"
+ find_lex $P857, "$/"
+ unless_null $P857, vivify_311
+ $P857 = root_new ['parrot';'Hash']
+ vivify_311:
+ set $P858, $P857["not"]
+ unless_null $P858, vivify_312
+ new $P858, "Undef"
+ vivify_312:
+ isfalse $I859, $P858
+ $P860 = $P856."new"($I859 :named("value"))
+ set $P848, $P860
+.annotate 'line', 312
+ goto if_849_end
+ if_849:
+ find_lex $P852, "$/"
+ unless_null $P852, vivify_313
+ $P852 = root_new ['parrot';'Hash']
+ vivify_313:
+ set $P853, $P852["circumfix"]
+ unless_null $P853, vivify_314
+ $P853 = root_new ['parrot';'ResizablePMCArray']
+ vivify_314:
+ set $P854, $P853[0]
+ unless_null $P854, vivify_315
+ new $P854, "Undef"
+ vivify_315:
+ $P855 = $P854."ast"()
+ set $P848, $P855
+ if_849_end:
+ store_lex "$past", $P848
+.annotate 'line', 314
+ find_lex $P861, "$past"
+ find_lex $P862, "$/"
+ unless_null $P862, vivify_316
+ $P862 = root_new ['parrot';'Hash']
+ vivify_316:
+ set $P863, $P862["identifier"]
+ unless_null $P863, vivify_317
+ new $P863, "Undef"
+ vivify_317:
+ set $S864, $P863
+ $P861."named"($S864)
+.annotate 'line', 315
+ find_lex $P865, "$/"
+ find_lex $P866, "$past"
+ $P867 = $P865."!make"($P866)
+.annotate 'line', 310
+ .return ($P867)
+ control_844:
.local pmc exception
.get_results (exception)
- getattribute $P944, exception, "payload"
- .return ($P944)
+ getattribute $P868, exception, "payload"
+ .return ($P868)
.end
.namespace ["NQP";"Actions"]
-.sub "_block871" :anon :subid("60_1274022903.56472") :outer("59_1274022903.56472")
-.annotate 'line', 316
- $P873 = root_new ['parrot';'ResizablePMCArray']
- .lex "@name", $P873
- get_hll_global $P874, ["NQP"], "Compiler"
- find_lex $P875, "$/"
- set $S876, $P875
- $P877 = $P874."parse_name"($S876)
- store_lex "@name", $P877
-.annotate 'line', 317
- get_hll_global $P878, ["PAST"], "Var"
- find_lex $P879, "@name"
- $P880 = $P879."pop"()
- set $S881, $P880
- $P882 = $P878."new"($S881 :named("name"))
- store_lex "$past", $P882
+.include "except_types.pasm"
+.sub "variable" :subid("60_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_872
.annotate 'line', 318
- find_lex $P884, "@name"
- unless $P884, if_883_end
+ .const 'Sub' $P885 = "61_1275811497.55064"
+ capture_lex $P885
+ new $P871, 'ExceptionHandler'
+ set_addr $P871, control_870
+ $P871."handle_types"(.CONTROL_RETURN)
+ push_eh $P871
+ .lex "self", self
+ .lex "$/", param_872
.annotate 'line', 319
- find_lex $P886, "@name"
- unless_null $P886, vivify_307
- $P886 = root_new ['parrot';'ResizablePMCArray']
- vivify_307:
- set $P887, $P886[0]
- unless_null $P887, vivify_308
- new $P887, "Undef"
- vivify_308:
- set $S888, $P887
- iseq $I889, $S888, "GLOBAL"
- unless $I889, if_885_end
- find_lex $P890, "@name"
- $P890."shift"()
- if_885_end:
+ new $P873, "Undef"
+ .lex "$past", $P873
+.annotate 'line', 318
+ find_lex $P874, "$past"
.annotate 'line', 320
- find_lex $P891, "$past"
- find_lex $P892, "@name"
- $P891."namespace"($P892)
+ find_lex $P876, "$/"
+ unless_null $P876, vivify_318
+ $P876 = root_new ['parrot';'Hash']
+ vivify_318:
+ set $P877, $P876["postcircumfix"]
+ unless_null $P877, vivify_319
+ new $P877, "Undef"
+ vivify_319:
+ if $P877, if_875
+.annotate 'line', 324
+ .const 'Sub' $P885 = "61_1275811497.55064"
+ capture_lex $P885
+ $P885()
+ goto if_875_end
+ if_875:
.annotate 'line', 321
- find_lex $P893, "$past"
- $P893."scope"("package")
+ find_lex $P878, "$/"
+ unless_null $P878, vivify_336
+ $P878 = root_new ['parrot';'Hash']
+ vivify_336:
+ set $P879, $P878["postcircumfix"]
+ unless_null $P879, vivify_337
+ new $P879, "Undef"
+ vivify_337:
+ $P880 = $P879."ast"()
+ store_lex "$past", $P880
.annotate 'line', 322
- find_lex $P894, "$past"
- find_lex $P895, "$/"
- unless_null $P895, vivify_309
- $P895 = root_new ['parrot';'Hash']
- vivify_309:
- set $P896, $P895["sigil"]
- unless_null $P896, vivify_310
- new $P896, "Undef"
- vivify_310:
- $P897 = "vivitype"($P896)
- $P894."viviself"($P897)
-.annotate 'line', 323
- find_lex $P898, "$past"
- $P898."lvalue"(1)
- if_883_end:
-.annotate 'line', 325
- find_lex $P901, "$/"
- unless_null $P901, vivify_311
- $P901 = root_new ['parrot';'Hash']
- vivify_311:
- set $P902, $P901["twigil"]
- unless_null $P902, vivify_312
- $P902 = root_new ['parrot';'ResizablePMCArray']
- vivify_312:
- set $P903, $P902[0]
- unless_null $P903, vivify_313
- new $P903, "Undef"
- vivify_313:
- set $S904, $P903
- iseq $I905, $S904, "*"
- if $I905, if_900
-.annotate 'line', 338
- find_lex $P927, "$/"
- unless_null $P927, vivify_314
- $P927 = root_new ['parrot';'Hash']
- vivify_314:
- set $P928, $P927["twigil"]
- unless_null $P928, vivify_315
- $P928 = root_new ['parrot';'ResizablePMCArray']
- vivify_315:
- set $P929, $P928[0]
- unless_null $P929, vivify_316
- new $P929, "Undef"
- vivify_316:
- set $S930, $P929
- iseq $I931, $S930, "!"
- if $I931, if_926
- new $P925, 'Integer'
- set $P925, $I931
- goto if_926_end
- if_926:
-.annotate 'line', 339
- find_lex $P932, "$past"
- get_hll_global $P933, ["PAST"], "Var"
- $P934 = $P933."new"("self" :named("name"))
- $P932."push"($P934)
-.annotate 'line', 340
- find_lex $P935, "$past"
- $P935."scope"("attribute")
-.annotate 'line', 341
- find_lex $P936, "$past"
- find_lex $P937, "$/"
- unless_null $P937, vivify_317
- $P937 = root_new ['parrot';'Hash']
- vivify_317:
- set $P938, $P937["sigil"]
- unless_null $P938, vivify_318
- new $P938, "Undef"
- vivify_318:
- $P939 = "vivitype"($P938)
- $P940 = $P936."viviself"($P939)
-.annotate 'line', 338
- set $P925, $P940
- if_926_end:
- set $P899, $P925
+ find_lex $P881, "$past"
+ get_hll_global $P882, ["PAST"], "Var"
+ $P883 = $P882."new"("$/" :named("name"))
+ $P881."unshift"($P883)
+ if_875_end:
+.annotate 'line', 353
+ find_lex $P954, "$/"
+ find_lex $P955, "$past"
+ $P956 = $P954."!make"($P955)
+.annotate 'line', 318
+ .return ($P956)
+ control_870:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P957, exception, "payload"
+ .return ($P957)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block884" :anon :subid("61_1275811497.55064") :outer("60_1275811497.55064")
.annotate 'line', 325
- goto if_900_end
- if_900:
+ $P886 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@name", $P886
+ get_hll_global $P887, ["NQP"], "Compiler"
+ find_lex $P888, "$/"
+ set $S889, $P888
+ $P890 = $P887."parse_name"($S889)
+ store_lex "@name", $P890
.annotate 'line', 326
- find_lex $P906, "$past"
- $P906."scope"("contextual")
+ get_hll_global $P891, ["PAST"], "Var"
+ find_lex $P892, "@name"
+ $P893 = $P892."pop"()
+ set $S894, $P893
+ $P895 = $P891."new"($S894 :named("name"))
+ store_lex "$past", $P895
.annotate 'line', 327
- find_lex $P907, "$past"
+ find_lex $P897, "@name"
+ unless $P897, if_896_end
.annotate 'line', 328
- get_hll_global $P908, ["PAST"], "Var"
-.annotate 'line', 330
- find_lex $P909, "$/"
- unless_null $P909, vivify_319
- $P909 = root_new ['parrot';'Hash']
- vivify_319:
- set $P910, $P909["sigil"]
- unless_null $P910, vivify_320
- new $P910, "Undef"
+ find_lex $P899, "@name"
+ unless_null $P899, vivify_320
+ $P899 = root_new ['parrot';'ResizablePMCArray']
vivify_320:
- set $S911, $P910
- new $P912, 'String'
- set $P912, $S911
- find_lex $P913, "$/"
- unless_null $P913, vivify_321
- $P913 = root_new ['parrot';'Hash']
+ set $P900, $P899[0]
+ unless_null $P900, vivify_321
+ new $P900, "Undef"
vivify_321:
- set $P914, $P913["desigilname"]
- unless_null $P914, vivify_322
- new $P914, "Undef"
+ set $S901, $P900
+ iseq $I902, $S901, "GLOBAL"
+ unless $I902, if_898_end
+ find_lex $P903, "@name"
+ $P903."shift"()
+ if_898_end:
+.annotate 'line', 329
+ find_lex $P904, "$past"
+ find_lex $P905, "@name"
+ $P904."namespace"($P905)
+.annotate 'line', 330
+ find_lex $P906, "$past"
+ $P906."scope"("package")
+.annotate 'line', 331
+ find_lex $P907, "$past"
+ find_lex $P908, "$/"
+ unless_null $P908, vivify_322
+ $P908 = root_new ['parrot';'Hash']
vivify_322:
- concat $P915, $P912, $P914
+ set $P909, $P908["sigil"]
+ unless_null $P909, vivify_323
+ new $P909, "Undef"
+ vivify_323:
+ $P910 = "vivitype"($P909)
+ $P907."viviself"($P910)
.annotate 'line', 332
- get_hll_global $P916, ["PAST"], "Op"
- new $P917, "String"
- assign $P917, "Contextual "
- find_lex $P918, "$/"
- set $S919, $P918
- concat $P920, $P917, $S919
- concat $P921, $P920, " not found"
- $P922 = $P916."new"($P921, "die" :named("pirop"))
- $P923 = $P908."new"("package" :named("scope"), "" :named("namespace"), $P915 :named("name"), $P922 :named("viviself"))
-.annotate 'line', 328
- $P924 = $P907."viviself"($P923)
-.annotate 'line', 325
- set $P899, $P924
- if_900_end:
-.annotate 'line', 315
- .return ($P899)
+ find_lex $P911, "$past"
+ $P911."lvalue"(1)
+ if_896_end:
+.annotate 'line', 334
+ find_lex $P914, "$/"
+ unless_null $P914, vivify_324
+ $P914 = root_new ['parrot';'Hash']
+ vivify_324:
+ set $P915, $P914["twigil"]
+ unless_null $P915, vivify_325
+ $P915 = root_new ['parrot';'ResizablePMCArray']
+ vivify_325:
+ set $P916, $P915[0]
+ unless_null $P916, vivify_326
+ new $P916, "Undef"
+ vivify_326:
+ set $S917, $P916
+ iseq $I918, $S917, "*"
+ if $I918, if_913
+.annotate 'line', 347
+ find_lex $P940, "$/"
+ unless_null $P940, vivify_327
+ $P940 = root_new ['parrot';'Hash']
+ vivify_327:
+ set $P941, $P940["twigil"]
+ unless_null $P941, vivify_328
+ $P941 = root_new ['parrot';'ResizablePMCArray']
+ vivify_328:
+ set $P942, $P941[0]
+ unless_null $P942, vivify_329
+ new $P942, "Undef"
+ vivify_329:
+ set $S943, $P942
+ iseq $I944, $S943, "!"
+ if $I944, if_939
+ new $P938, 'Integer'
+ set $P938, $I944
+ goto if_939_end
+ if_939:
+.annotate 'line', 348
+ find_lex $P945, "$past"
+ get_hll_global $P946, ["PAST"], "Var"
+ $P947 = $P946."new"("self" :named("name"))
+ $P945."push"($P947)
+.annotate 'line', 349
+ find_lex $P948, "$past"
+ $P948."scope"("attribute")
+.annotate 'line', 350
+ find_lex $P949, "$past"
+ find_lex $P950, "$/"
+ unless_null $P950, vivify_330
+ $P950 = root_new ['parrot';'Hash']
+ vivify_330:
+ set $P951, $P950["sigil"]
+ unless_null $P951, vivify_331
+ new $P951, "Undef"
+ vivify_331:
+ $P952 = "vivitype"($P951)
+ $P953 = $P949."viviself"($P952)
+.annotate 'line', 347
+ set $P938, $P953
+ if_939_end:
+ set $P912, $P938
+.annotate 'line', 334
+ goto if_913_end
+ if_913:
+.annotate 'line', 335
+ find_lex $P919, "$past"
+ $P919."scope"("contextual")
+.annotate 'line', 336
+ find_lex $P920, "$past"
+.annotate 'line', 337
+ get_hll_global $P921, ["PAST"], "Var"
+.annotate 'line', 339
+ find_lex $P922, "$/"
+ unless_null $P922, vivify_332
+ $P922 = root_new ['parrot';'Hash']
+ vivify_332:
+ set $P923, $P922["sigil"]
+ unless_null $P923, vivify_333
+ new $P923, "Undef"
+ vivify_333:
+ set $S924, $P923
+ new $P925, 'String'
+ set $P925, $S924
+ find_lex $P926, "$/"
+ unless_null $P926, vivify_334
+ $P926 = root_new ['parrot';'Hash']
+ vivify_334:
+ set $P927, $P926["desigilname"]
+ unless_null $P927, vivify_335
+ new $P927, "Undef"
+ vivify_335:
+ concat $P928, $P925, $P927
+.annotate 'line', 341
+ get_hll_global $P929, ["PAST"], "Op"
+ new $P930, "String"
+ assign $P930, "Contextual "
+ find_lex $P931, "$/"
+ set $S932, $P931
+ concat $P933, $P930, $S932
+ concat $P934, $P933, " not found"
+ $P935 = $P929."new"($P934, "die" :named("pirop"))
+ $P936 = $P921."new"("package" :named("scope"), "" :named("namespace"), $P928 :named("name"), $P935 :named("viviself"))
+.annotate 'line', 337
+ $P937 = $P920."viviself"($P936)
+.annotate 'line', 334
+ set $P912, $P937
+ if_913_end:
+.annotate 'line', 324
+ .return ($P912)
.end
.namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<module>" :subid("61_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_948
-.annotate 'line', 347
- new $P947, 'ExceptionHandler'
- set_addr $P947, control_946
- $P947."handle_types"(57)
- push_eh $P947
+.include "except_types.pasm"
+.sub "package_declarator:sym<module>" :subid("62_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_961
+.annotate 'line', 356
+ new $P960, 'ExceptionHandler'
+ set_addr $P960, control_959
+ $P960."handle_types"(.CONTROL_RETURN)
+ push_eh $P960
.lex "self", self
- .lex "$/", param_948
- find_lex $P949, "$/"
- find_lex $P950, "$/"
- unless_null $P950, vivify_325
- $P950 = root_new ['parrot';'Hash']
- vivify_325:
- set $P951, $P950["package_def"]
- unless_null $P951, vivify_326
- new $P951, "Undef"
- vivify_326:
- $P952 = $P951."ast"()
- $P953 = $P949."!make"($P952)
- .return ($P953)
- control_946:
+ .lex "$/", param_961
+ find_lex $P962, "$/"
+ find_lex $P963, "$/"
+ unless_null $P963, vivify_338
+ $P963 = root_new ['parrot';'Hash']
+ vivify_338:
+ set $P964, $P963["package_def"]
+ unless_null $P964, vivify_339
+ new $P964, "Undef"
+ vivify_339:
+ $P965 = $P964."ast"()
+ $P966 = $P962."!make"($P965)
+ .return ($P966)
+ control_959:
.local pmc exception
.get_results (exception)
- getattribute $P954, exception, "payload"
- .return ($P954)
+ getattribute $P967, exception, "payload"
+ .return ($P967)
.end
.namespace ["NQP";"Actions"]
-.sub "package_declarator:sym<class>" :subid("62_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_958
-.annotate 'line', 348
- new $P957, 'ExceptionHandler'
- set_addr $P957, control_956
- $P957."handle_types"(57)
- push_eh $P957
- .lex "self", self
- .lex "$/", param_958
-.annotate 'line', 349
- new $P959, "Undef"
- .lex "$past", $P959
-.annotate 'line', 350
- new $P960, "Undef"
- .lex "$classinit", $P960
-.annotate 'line', 359
- new $P961, "Undef"
- .lex "$parent", $P961
-.annotate 'line', 349
- find_lex $P962, "$/"
- unless_null $P962, vivify_327
- $P962 = root_new ['parrot';'Hash']
- vivify_327:
- set $P963, $P962["package_def"]
- unless_null $P963, vivify_328
- new $P963, "Undef"
- vivify_328:
- $P964 = $P963."ast"()
- store_lex "$past", $P964
-.annotate 'line', 351
- get_hll_global $P965, ["PAST"], "Op"
-.annotate 'line', 352
- get_hll_global $P966, ["PAST"], "Op"
- $P967 = $P966."new"(" %r = get_root_global [\"parrot\"], \"P6metaclass\"" :named("inline"))
-.annotate 'line', 355
- find_lex $P968, "$/"
- unless_null $P968, vivify_329
- $P968 = root_new ['parrot';'Hash']
- vivify_329:
- set $P969, $P968["package_def"]
- unless_null $P969, vivify_330
- $P969 = root_new ['parrot';'Hash']
- vivify_330:
- set $P970, $P969["name"]
- unless_null $P970, vivify_331
- new $P970, "Undef"
- vivify_331:
- set $S971, $P970
- $P972 = $P965."new"($P967, $S971, "new_class" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 351
- store_lex "$classinit", $P972
+.include "except_types.pasm"
+.sub "package_declarator:sym<class>" :subid("63_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_971
+.annotate 'line', 357
+ new $P970, 'ExceptionHandler'
+ set_addr $P970, control_969
+ $P970."handle_types"(.CONTROL_RETURN)
+ push_eh $P970
+ .lex "self", self
+ .lex "$/", param_971
+.annotate 'line', 358
+ new $P972, "Undef"
+ .lex "$past", $P972
.annotate 'line', 359
+ new $P973, "Undef"
+ .lex "$classinit", $P973
+.annotate 'line', 368
+ new $P974, "Undef"
+ .lex "$parent", $P974
+.annotate 'line', 358
find_lex $P975, "$/"
- unless_null $P975, vivify_332
+ unless_null $P975, vivify_340
$P975 = root_new ['parrot';'Hash']
- vivify_332:
+ vivify_340:
set $P976, $P975["package_def"]
- unless_null $P976, vivify_333
- $P976 = root_new ['parrot';'Hash']
- vivify_333:
- set $P977, $P976["parent"]
- unless_null $P977, vivify_334
- $P977 = root_new ['parrot';'ResizablePMCArray']
- vivify_334:
- set $P978, $P977[0]
- unless_null $P978, vivify_335
- new $P978, "Undef"
- vivify_335:
- set $S979, $P978
- unless $S979, unless_974
- new $P973, 'String'
- set $P973, $S979
- goto unless_974_end
- unless_974:
+ unless_null $P976, vivify_341
+ new $P976, "Undef"
+ vivify_341:
+ $P977 = $P976."ast"()
+ store_lex "$past", $P977
.annotate 'line', 360
- find_lex $P982, "$/"
- unless_null $P982, vivify_336
- $P982 = root_new ['parrot';'Hash']
- vivify_336:
- set $P983, $P982["sym"]
- unless_null $P983, vivify_337
- new $P983, "Undef"
- vivify_337:
- set $S984, $P983
- iseq $I985, $S984, "grammar"
- if $I985, if_981
- new $P987, "String"
- assign $P987, ""
- set $P980, $P987
- goto if_981_end
- if_981:
- new $P986, "String"
- assign $P986, "Regex::Cursor"
- set $P980, $P986
- if_981_end:
- set $P973, $P980
- unless_974_end:
- store_lex "$parent", $P973
+ get_hll_global $P978, ["PAST"], "Op"
.annotate 'line', 361
- find_lex $P989, "$parent"
- unless $P989, if_988_end
-.annotate 'line', 362
- find_lex $P990, "$classinit"
- get_hll_global $P991, ["PAST"], "Val"
- find_lex $P992, "$parent"
- $P993 = $P991."new"($P992 :named("value"), "parent" :named("named"))
- $P990."push"($P993)
- if_988_end:
+ get_hll_global $P979, ["PAST"], "Op"
+ $P980 = $P979."new"(" %r = get_root_global [\"parrot\"], \"P6metaclass\"" :named("inline"))
.annotate 'line', 364
- find_lex $P995, "$past"
- unless_null $P995, vivify_338
- $P995 = root_new ['parrot';'Hash']
- vivify_338:
- set $P996, $P995["attributes"]
- unless_null $P996, vivify_339
- new $P996, "Undef"
- vivify_339:
- unless $P996, if_994_end
-.annotate 'line', 365
- find_lex $P997, "$classinit"
- find_lex $P998, "$past"
- unless_null $P998, vivify_340
- $P998 = root_new ['parrot';'Hash']
- vivify_340:
- set $P999, $P998["attributes"]
- unless_null $P999, vivify_341
- new $P999, "Undef"
- vivify_341:
- $P997."push"($P999)
- if_994_end:
-.annotate 'line', 367
- get_global $P1000, "@BLOCK"
- unless_null $P1000, vivify_342
- $P1000 = root_new ['parrot';'ResizablePMCArray']
+ find_lex $P981, "$/"
+ unless_null $P981, vivify_342
+ $P981 = root_new ['parrot';'Hash']
vivify_342:
- set $P1001, $P1000[0]
- unless_null $P1001, vivify_343
- new $P1001, "Undef"
+ set $P982, $P981["package_def"]
+ unless_null $P982, vivify_343
+ $P982 = root_new ['parrot';'Hash']
vivify_343:
- $P1002 = $P1001."loadinit"()
- find_lex $P1003, "$classinit"
- $P1002."push"($P1003)
-.annotate 'line', 368
- find_lex $P1004, "$/"
- find_lex $P1005, "$past"
- $P1006 = $P1004."!make"($P1005)
-.annotate 'line', 348
- .return ($P1006)
- control_956:
- .local pmc exception
- .get_results (exception)
- getattribute $P1007, exception, "payload"
- .return ($P1007)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "package_def" :subid("63_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1011
-.annotate 'line', 371
- new $P1010, 'ExceptionHandler'
- set_addr $P1010, control_1009
- $P1010."handle_types"(57)
- push_eh $P1010
- .lex "self", self
- .lex "$/", param_1011
-.annotate 'line', 372
- new $P1012, "Undef"
- .lex "$past", $P1012
- find_lex $P1015, "$/"
- unless_null $P1015, vivify_344
- $P1015 = root_new ['parrot';'Hash']
+ set $P983, $P982["name"]
+ unless_null $P983, vivify_344
+ new $P983, "Undef"
vivify_344:
- set $P1016, $P1015["block"]
- unless_null $P1016, vivify_345
- new $P1016, "Undef"
+ set $S984, $P983
+ $P985 = $P978."new"($P980, $S984, "new_class" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 360
+ store_lex "$classinit", $P985
+.annotate 'line', 368
+ find_lex $P988, "$/"
+ unless_null $P988, vivify_345
+ $P988 = root_new ['parrot';'Hash']
vivify_345:
- if $P1016, if_1014
- find_lex $P1020, "$/"
- unless_null $P1020, vivify_346
- $P1020 = root_new ['parrot';'Hash']
+ set $P989, $P988["package_def"]
+ unless_null $P989, vivify_346
+ $P989 = root_new ['parrot';'Hash']
vivify_346:
- set $P1021, $P1020["comp_unit"]
- unless_null $P1021, vivify_347
- new $P1021, "Undef"
+ set $P990, $P989["parent"]
+ unless_null $P990, vivify_347
+ $P990 = root_new ['parrot';'ResizablePMCArray']
vivify_347:
- $P1022 = $P1021."ast"()
- set $P1013, $P1022
- goto if_1014_end
- if_1014:
- find_lex $P1017, "$/"
- unless_null $P1017, vivify_348
- $P1017 = root_new ['parrot';'Hash']
+ set $P991, $P990[0]
+ unless_null $P991, vivify_348
+ new $P991, "Undef"
vivify_348:
- set $P1018, $P1017["block"]
- unless_null $P1018, vivify_349
- new $P1018, "Undef"
+ set $S992, $P991
+ unless $S992, unless_987
+ new $P986, 'String'
+ set $P986, $S992
+ goto unless_987_end
+ unless_987:
+.annotate 'line', 369
+ find_lex $P995, "$/"
+ unless_null $P995, vivify_349
+ $P995 = root_new ['parrot';'Hash']
vivify_349:
- $P1019 = $P1018."ast"()
- set $P1013, $P1019
- if_1014_end:
- store_lex "$past", $P1013
-.annotate 'line', 373
- find_lex $P1023, "$past"
- find_lex $P1024, "$/"
- unless_null $P1024, vivify_350
- $P1024 = root_new ['parrot';'Hash']
+ set $P996, $P995["sym"]
+ unless_null $P996, vivify_350
+ new $P996, "Undef"
vivify_350:
- set $P1025, $P1024["name"]
- unless_null $P1025, vivify_351
- $P1025 = root_new ['parrot';'Hash']
+ set $S997, $P996
+ iseq $I998, $S997, "grammar"
+ if $I998, if_994
+ new $P1000, "String"
+ assign $P1000, ""
+ set $P993, $P1000
+ goto if_994_end
+ if_994:
+ new $P999, "String"
+ assign $P999, "Regex::Cursor"
+ set $P993, $P999
+ if_994_end:
+ set $P986, $P993
+ unless_987_end:
+ store_lex "$parent", $P986
+.annotate 'line', 370
+ find_lex $P1002, "$parent"
+ unless $P1002, if_1001_end
+.annotate 'line', 371
+ find_lex $P1003, "$classinit"
+ get_hll_global $P1004, ["PAST"], "Val"
+ find_lex $P1005, "$parent"
+ $P1006 = $P1004."new"($P1005 :named("value"), "parent" :named("named"))
+ $P1003."push"($P1006)
+ if_1001_end:
+.annotate 'line', 373
+ find_lex $P1008, "$past"
+ unless_null $P1008, vivify_351
+ $P1008 = root_new ['parrot';'Hash']
vivify_351:
- set $P1026, $P1025["identifier"]
- unless_null $P1026, vivify_352
- new $P1026, "Undef"
+ set $P1009, $P1008["attributes"]
+ unless_null $P1009, vivify_352
+ new $P1009, "Undef"
vivify_352:
- $P1023."namespace"($P1026)
+ unless $P1009, if_1007_end
.annotate 'line', 374
- find_lex $P1027, "$past"
- $P1027."blocktype"("immediate")
-.annotate 'line', 375
- find_lex $P1028, "$/"
- find_lex $P1029, "$past"
- $P1030 = $P1028."!make"($P1029)
-.annotate 'line', 371
- .return ($P1030)
- control_1009:
+ find_lex $P1010, "$classinit"
+ find_lex $P1011, "$past"
+ unless_null $P1011, vivify_353
+ $P1011 = root_new ['parrot';'Hash']
+ vivify_353:
+ set $P1012, $P1011["attributes"]
+ unless_null $P1012, vivify_354
+ new $P1012, "Undef"
+ vivify_354:
+ $P1010."push"($P1012)
+ if_1007_end:
+.annotate 'line', 376
+ get_global $P1013, "@BLOCK"
+ unless_null $P1013, vivify_355
+ $P1013 = root_new ['parrot';'ResizablePMCArray']
+ vivify_355:
+ set $P1014, $P1013[0]
+ unless_null $P1014, vivify_356
+ new $P1014, "Undef"
+ vivify_356:
+ $P1015 = $P1014."loadinit"()
+ find_lex $P1016, "$classinit"
+ $P1015."push"($P1016)
+.annotate 'line', 377
+ find_lex $P1017, "$/"
+ find_lex $P1018, "$past"
+ $P1019 = $P1017."!make"($P1018)
+.annotate 'line', 357
+ .return ($P1019)
+ control_969:
.local pmc exception
.get_results (exception)
- getattribute $P1031, exception, "payload"
- .return ($P1031)
+ getattribute $P1020, exception, "payload"
+ .return ($P1020)
.end
.namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<my>" :subid("64_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1035
-.annotate 'line', 378
- new $P1034, 'ExceptionHandler'
- set_addr $P1034, control_1033
- $P1034."handle_types"(57)
- push_eh $P1034
+.include "except_types.pasm"
+.sub "package_def" :subid("64_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1024
+.annotate 'line', 380
+ new $P1023, 'ExceptionHandler'
+ set_addr $P1023, control_1022
+ $P1023."handle_types"(.CONTROL_RETURN)
+ push_eh $P1023
.lex "self", self
- .lex "$/", param_1035
- find_lex $P1036, "$/"
+ .lex "$/", param_1024
+.annotate 'line', 381
+ new $P1025, "Undef"
+ .lex "$past", $P1025
+ find_lex $P1028, "$/"
+ unless_null $P1028, vivify_357
+ $P1028 = root_new ['parrot';'Hash']
+ vivify_357:
+ set $P1029, $P1028["block"]
+ unless_null $P1029, vivify_358
+ new $P1029, "Undef"
+ vivify_358:
+ if $P1029, if_1027
+ find_lex $P1033, "$/"
+ unless_null $P1033, vivify_359
+ $P1033 = root_new ['parrot';'Hash']
+ vivify_359:
+ set $P1034, $P1033["comp_unit"]
+ unless_null $P1034, vivify_360
+ new $P1034, "Undef"
+ vivify_360:
+ $P1035 = $P1034."ast"()
+ set $P1026, $P1035
+ goto if_1027_end
+ if_1027:
+ find_lex $P1030, "$/"
+ unless_null $P1030, vivify_361
+ $P1030 = root_new ['parrot';'Hash']
+ vivify_361:
+ set $P1031, $P1030["block"]
+ unless_null $P1031, vivify_362
+ new $P1031, "Undef"
+ vivify_362:
+ $P1032 = $P1031."ast"()
+ set $P1026, $P1032
+ if_1027_end:
+ store_lex "$past", $P1026
+.annotate 'line', 382
+ find_lex $P1036, "$past"
find_lex $P1037, "$/"
- unless_null $P1037, vivify_353
+ unless_null $P1037, vivify_363
$P1037 = root_new ['parrot';'Hash']
- vivify_353:
- set $P1038, $P1037["scoped"]
- unless_null $P1038, vivify_354
- new $P1038, "Undef"
- vivify_354:
- $P1039 = $P1038."ast"()
- $P1040 = $P1036."!make"($P1039)
- .return ($P1040)
- control_1033:
+ vivify_363:
+ set $P1038, $P1037["name"]
+ unless_null $P1038, vivify_364
+ $P1038 = root_new ['parrot';'Hash']
+ vivify_364:
+ set $P1039, $P1038["identifier"]
+ unless_null $P1039, vivify_365
+ new $P1039, "Undef"
+ vivify_365:
+ $P1036."namespace"($P1039)
+.annotate 'line', 383
+ find_lex $P1040, "$past"
+ $P1040."blocktype"("immediate")
+.annotate 'line', 384
+ find_lex $P1041, "$/"
+ find_lex $P1042, "$past"
+ $P1043 = $P1041."!make"($P1042)
+.annotate 'line', 380
+ .return ($P1043)
+ control_1022:
.local pmc exception
.get_results (exception)
- getattribute $P1041, exception, "payload"
- .return ($P1041)
+ getattribute $P1044, exception, "payload"
+ .return ($P1044)
.end
.namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<our>" :subid("65_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1045
-.annotate 'line', 379
- new $P1044, 'ExceptionHandler'
- set_addr $P1044, control_1043
- $P1044."handle_types"(57)
- push_eh $P1044
- .lex "self", self
- .lex "$/", param_1045
- find_lex $P1046, "$/"
- find_lex $P1047, "$/"
- unless_null $P1047, vivify_355
- $P1047 = root_new ['parrot';'Hash']
- vivify_355:
- set $P1048, $P1047["scoped"]
- unless_null $P1048, vivify_356
- new $P1048, "Undef"
- vivify_356:
- $P1049 = $P1048."ast"()
- $P1050 = $P1046."!make"($P1049)
- .return ($P1050)
- control_1043:
+.include "except_types.pasm"
+.sub "scope_declarator:sym<my>" :subid("65_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1048
+.annotate 'line', 387
+ new $P1047, 'ExceptionHandler'
+ set_addr $P1047, control_1046
+ $P1047."handle_types"(.CONTROL_RETURN)
+ push_eh $P1047
+ .lex "self", self
+ .lex "$/", param_1048
+ find_lex $P1049, "$/"
+ find_lex $P1050, "$/"
+ unless_null $P1050, vivify_366
+ $P1050 = root_new ['parrot';'Hash']
+ vivify_366:
+ set $P1051, $P1050["scoped"]
+ unless_null $P1051, vivify_367
+ new $P1051, "Undef"
+ vivify_367:
+ $P1052 = $P1051."ast"()
+ $P1053 = $P1049."!make"($P1052)
+ .return ($P1053)
+ control_1046:
.local pmc exception
.get_results (exception)
- getattribute $P1051, exception, "payload"
- .return ($P1051)
+ getattribute $P1054, exception, "payload"
+ .return ($P1054)
.end
.namespace ["NQP";"Actions"]
-.sub "scope_declarator:sym<has>" :subid("66_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1055
-.annotate 'line', 380
- new $P1054, 'ExceptionHandler'
- set_addr $P1054, control_1053
- $P1054."handle_types"(57)
- push_eh $P1054
- .lex "self", self
- .lex "$/", param_1055
- find_lex $P1056, "$/"
- find_lex $P1057, "$/"
- unless_null $P1057, vivify_357
- $P1057 = root_new ['parrot';'Hash']
- vivify_357:
- set $P1058, $P1057["scoped"]
- unless_null $P1058, vivify_358
- new $P1058, "Undef"
- vivify_358:
- $P1059 = $P1058."ast"()
- $P1060 = $P1056."!make"($P1059)
- .return ($P1060)
- control_1053:
+.include "except_types.pasm"
+.sub "scope_declarator:sym<our>" :subid("66_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1058
+.annotate 'line', 388
+ new $P1057, 'ExceptionHandler'
+ set_addr $P1057, control_1056
+ $P1057."handle_types"(.CONTROL_RETURN)
+ push_eh $P1057
+ .lex "self", self
+ .lex "$/", param_1058
+ find_lex $P1059, "$/"
+ find_lex $P1060, "$/"
+ unless_null $P1060, vivify_368
+ $P1060 = root_new ['parrot';'Hash']
+ vivify_368:
+ set $P1061, $P1060["scoped"]
+ unless_null $P1061, vivify_369
+ new $P1061, "Undef"
+ vivify_369:
+ $P1062 = $P1061."ast"()
+ $P1063 = $P1059."!make"($P1062)
+ .return ($P1063)
+ control_1056:
.local pmc exception
.get_results (exception)
- getattribute $P1061, exception, "payload"
- .return ($P1061)
+ getattribute $P1064, exception, "payload"
+ .return ($P1064)
.end
.namespace ["NQP";"Actions"]
-.sub "scoped" :subid("67_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1065
-.annotate 'line', 382
- new $P1064, 'ExceptionHandler'
- set_addr $P1064, control_1063
- $P1064."handle_types"(57)
- push_eh $P1064
- .lex "self", self
- .lex "$/", param_1065
-.annotate 'line', 383
- find_lex $P1066, "$/"
- find_lex $P1067, "$/"
- unless_null $P1067, vivify_359
- $P1067 = root_new ['parrot';'Hash']
- vivify_359:
- set $P1068, $P1067["declarator"]
- unless_null $P1068, vivify_360
- new $P1068, "Undef"
- vivify_360:
- $P1069 = $P1068."ast"()
- $P1070 = $P1066."!make"($P1069)
-.annotate 'line', 382
- .return ($P1070)
- control_1063:
+.include "except_types.pasm"
+.sub "scope_declarator:sym<has>" :subid("67_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1068
+.annotate 'line', 389
+ new $P1067, 'ExceptionHandler'
+ set_addr $P1067, control_1066
+ $P1067."handle_types"(.CONTROL_RETURN)
+ push_eh $P1067
+ .lex "self", self
+ .lex "$/", param_1068
+ find_lex $P1069, "$/"
+ find_lex $P1070, "$/"
+ unless_null $P1070, vivify_370
+ $P1070 = root_new ['parrot';'Hash']
+ vivify_370:
+ set $P1071, $P1070["scoped"]
+ unless_null $P1071, vivify_371
+ new $P1071, "Undef"
+ vivify_371:
+ $P1072 = $P1071."ast"()
+ $P1073 = $P1069."!make"($P1072)
+ .return ($P1073)
+ control_1066:
.local pmc exception
.get_results (exception)
- getattribute $P1071, exception, "payload"
- .return ($P1071)
+ getattribute $P1074, exception, "payload"
+ .return ($P1074)
.end
.namespace ["NQP";"Actions"]
-.sub "declarator" :subid("68_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1075
-.annotate 'line', 386
- new $P1074, 'ExceptionHandler'
- set_addr $P1074, control_1073
- $P1074."handle_types"(57)
- push_eh $P1074
+.include "except_types.pasm"
+.sub "scoped" :subid("68_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1078
+.annotate 'line', 391
+ new $P1077, 'ExceptionHandler'
+ set_addr $P1077, control_1076
+ $P1077."handle_types"(.CONTROL_RETURN)
+ push_eh $P1077
.lex "self", self
- .lex "$/", param_1075
-.annotate 'line', 387
- find_lex $P1076, "$/"
-.annotate 'line', 388
+ .lex "$/", param_1078
+.annotate 'line', 392
find_lex $P1079, "$/"
- unless_null $P1079, vivify_361
- $P1079 = root_new ['parrot';'Hash']
- vivify_361:
- set $P1080, $P1079["routine_declarator"]
- unless_null $P1080, vivify_362
- new $P1080, "Undef"
- vivify_362:
- if $P1080, if_1078
-.annotate 'line', 389
+.annotate 'line', 393
+ find_lex $P1082, "$/"
+ unless_null $P1082, vivify_372
+ $P1082 = root_new ['parrot';'Hash']
+ vivify_372:
+ set $P1083, $P1082["declarator"]
+ unless_null $P1083, vivify_373
+ new $P1083, "Undef"
+ vivify_373:
+ if $P1083, if_1081
+.annotate 'line', 394
+ find_lex $P1087, "$/"
+ unless_null $P1087, vivify_374
+ $P1087 = root_new ['parrot';'Hash']
+ vivify_374:
+ set $P1088, $P1087["multi_declarator"]
+ unless_null $P1088, vivify_375
+ new $P1088, "Undef"
+ vivify_375:
+ $P1089 = $P1088."ast"()
+ set $P1080, $P1089
+.annotate 'line', 393
+ goto if_1081_end
+ if_1081:
find_lex $P1084, "$/"
- unless_null $P1084, vivify_363
+ unless_null $P1084, vivify_376
$P1084 = root_new ['parrot';'Hash']
- vivify_363:
- set $P1085, $P1084["variable_declarator"]
- unless_null $P1085, vivify_364
+ vivify_376:
+ set $P1085, $P1084["declarator"]
+ unless_null $P1085, vivify_377
new $P1085, "Undef"
- vivify_364:
+ vivify_377:
$P1086 = $P1085."ast"()
- set $P1077, $P1086
-.annotate 'line', 388
- goto if_1078_end
- if_1078:
- find_lex $P1081, "$/"
- unless_null $P1081, vivify_365
- $P1081 = root_new ['parrot';'Hash']
- vivify_365:
- set $P1082, $P1081["routine_declarator"]
- unless_null $P1082, vivify_366
- new $P1082, "Undef"
- vivify_366:
- $P1083 = $P1082."ast"()
- set $P1077, $P1083
- if_1078_end:
- $P1087 = $P1076."!make"($P1077)
-.annotate 'line', 386
- .return ($P1087)
- control_1073:
+ set $P1080, $P1086
+ if_1081_end:
+ $P1090 = $P1079."!make"($P1080)
+.annotate 'line', 391
+ .return ($P1090)
+ control_1076:
.local pmc exception
.get_results (exception)
- getattribute $P1088, exception, "payload"
- .return ($P1088)
+ getattribute $P1091, exception, "payload"
+ .return ($P1091)
.end
.namespace ["NQP";"Actions"]
-.sub "variable_declarator" :subid("69_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1092
-.annotate 'line', 392
- .const 'Sub' $P1132 = "70_1274022903.56472"
- capture_lex $P1132
- new $P1091, 'ExceptionHandler'
- set_addr $P1091, control_1090
- $P1091."handle_types"(57)
- push_eh $P1091
- .lex "self", self
- .lex "$/", param_1092
-.annotate 'line', 393
- new $P1093, "Undef"
- .lex "$past", $P1093
-.annotate 'line', 394
- new $P1094, "Undef"
- .lex "$sigil", $P1094
-.annotate 'line', 395
- new $P1095, "Undef"
- .lex "$name", $P1095
-.annotate 'line', 396
- new $P1096, "Undef"
- .lex "$BLOCK", $P1096
-.annotate 'line', 393
- find_lex $P1097, "$/"
- unless_null $P1097, vivify_367
- $P1097 = root_new ['parrot';'Hash']
- vivify_367:
- set $P1098, $P1097["variable"]
- unless_null $P1098, vivify_368
- new $P1098, "Undef"
- vivify_368:
- $P1099 = $P1098."ast"()
- store_lex "$past", $P1099
-.annotate 'line', 394
- find_lex $P1100, "$/"
- unless_null $P1100, vivify_369
- $P1100 = root_new ['parrot';'Hash']
- vivify_369:
- set $P1101, $P1100["variable"]
- unless_null $P1101, vivify_370
- $P1101 = root_new ['parrot';'Hash']
- vivify_370:
- set $P1102, $P1101["sigil"]
- unless_null $P1102, vivify_371
- new $P1102, "Undef"
- vivify_371:
- store_lex "$sigil", $P1102
-.annotate 'line', 395
- find_lex $P1103, "$past"
- $P1104 = $P1103."name"()
- store_lex "$name", $P1104
-.annotate 'line', 396
- get_global $P1105, "@BLOCK"
- unless_null $P1105, vivify_372
- $P1105 = root_new ['parrot';'ResizablePMCArray']
- vivify_372:
- set $P1106, $P1105[0]
- unless_null $P1106, vivify_373
- new $P1106, "Undef"
- vivify_373:
- store_lex "$BLOCK", $P1106
+.include "except_types.pasm"
+.sub "declarator" :subid("69_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1095
.annotate 'line', 397
- find_lex $P1108, "$BLOCK"
- find_lex $P1109, "$name"
- $P1110 = $P1108."symbol"($P1109)
- unless $P1110, if_1107_end
+ new $P1094, 'ExceptionHandler'
+ set_addr $P1094, control_1093
+ $P1094."handle_types"(.CONTROL_RETURN)
+ push_eh $P1094
+ .lex "self", self
+ .lex "$/", param_1095
.annotate 'line', 398
- find_lex $P1111, "$/"
- $P1112 = $P1111."CURSOR"()
- find_lex $P1113, "$name"
- $P1112."panic"("Redeclaration of symbol ", $P1113)
- if_1107_end:
+ find_lex $P1096, "$/"
+.annotate 'line', 399
+ find_lex $P1099, "$/"
+ unless_null $P1099, vivify_378
+ $P1099 = root_new ['parrot';'Hash']
+ vivify_378:
+ set $P1100, $P1099["routine_declarator"]
+ unless_null $P1100, vivify_379
+ new $P1100, "Undef"
+ vivify_379:
+ if $P1100, if_1098
.annotate 'line', 400
- find_dynamic_lex $P1115, "$*SCOPE"
- unless_null $P1115, vivify_374
- get_hll_global $P1115, "$SCOPE"
- unless_null $P1115, vivify_375
- die "Contextual $*SCOPE not found"
- vivify_375:
- vivify_374:
- set $S1116, $P1115
- iseq $I1117, $S1116, "has"
- if $I1117, if_1114
-.annotate 'line', 409
- .const 'Sub' $P1132 = "70_1274022903.56472"
- capture_lex $P1132
- $P1132()
- goto if_1114_end
- if_1114:
-.annotate 'line', 401
- find_lex $P1118, "$BLOCK"
- find_lex $P1119, "$name"
- $P1118."symbol"($P1119, "attribute" :named("scope"))
-.annotate 'line', 402
- find_lex $P1121, "$BLOCK"
- unless_null $P1121, vivify_380
- $P1121 = root_new ['parrot';'Hash']
+ find_lex $P1104, "$/"
+ unless_null $P1104, vivify_380
+ $P1104 = root_new ['parrot';'Hash']
vivify_380:
- set $P1122, $P1121["attributes"]
- unless_null $P1122, vivify_381
- new $P1122, "Undef"
+ set $P1105, $P1104["variable_declarator"]
+ unless_null $P1105, vivify_381
+ new $P1105, "Undef"
vivify_381:
- if $P1122, unless_1120_end
-.annotate 'line', 404
- get_hll_global $P1123, ["PAST"], "Op"
- $P1124 = $P1123."new"("list" :named("pasttype"), "attr" :named("named"))
- find_lex $P1125, "$BLOCK"
- unless_null $P1125, vivify_382
- $P1125 = root_new ['parrot';'Hash']
- store_lex "$BLOCK", $P1125
+ $P1106 = $P1105."ast"()
+ set $P1097, $P1106
+.annotate 'line', 399
+ goto if_1098_end
+ if_1098:
+ find_lex $P1101, "$/"
+ unless_null $P1101, vivify_382
+ $P1101 = root_new ['parrot';'Hash']
vivify_382:
- set $P1125["attributes"], $P1124
- unless_1120_end:
-.annotate 'line', 406
- find_lex $P1126, "$BLOCK"
- unless_null $P1126, vivify_383
- $P1126 = root_new ['parrot';'Hash']
+ set $P1102, $P1101["routine_declarator"]
+ unless_null $P1102, vivify_383
+ new $P1102, "Undef"
vivify_383:
- set $P1127, $P1126["attributes"]
- unless_null $P1127, vivify_384
- new $P1127, "Undef"
- vivify_384:
- find_lex $P1128, "$name"
- $P1127."push"($P1128)
-.annotate 'line', 407
- get_hll_global $P1129, ["PAST"], "Stmts"
- $P1130 = $P1129."new"()
- store_lex "$past", $P1130
- if_1114_end:
-.annotate 'line', 417
- find_lex $P1156, "$/"
- find_lex $P1157, "$past"
- $P1158 = $P1156."!make"($P1157)
-.annotate 'line', 392
- .return ($P1158)
- control_1090:
+ $P1103 = $P1102."ast"()
+ set $P1097, $P1103
+ if_1098_end:
+ $P1107 = $P1096."!make"($P1097)
+.annotate 'line', 397
+ .return ($P1107)
+ control_1093:
.local pmc exception
.get_results (exception)
- getattribute $P1159, exception, "payload"
- .return ($P1159)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1131" :anon :subid("70_1274022903.56472") :outer("69_1274022903.56472")
-.annotate 'line', 410
- new $P1133, "Undef"
- .lex "$scope", $P1133
-.annotate 'line', 411
- new $P1134, "Undef"
- .lex "$decl", $P1134
-.annotate 'line', 410
- find_dynamic_lex $P1137, "$*SCOPE"
- unless_null $P1137, vivify_376
- get_hll_global $P1137, "$SCOPE"
- unless_null $P1137, vivify_377
- die "Contextual $*SCOPE not found"
- vivify_377:
- vivify_376:
- set $S1138, $P1137
- iseq $I1139, $S1138, "our"
- if $I1139, if_1136
- new $P1141, "String"
- assign $P1141, "lexical"
- set $P1135, $P1141
- goto if_1136_end
- if_1136:
- new $P1140, "String"
- assign $P1140, "package"
- set $P1135, $P1140
- if_1136_end:
- store_lex "$scope", $P1135
-.annotate 'line', 411
- get_hll_global $P1142, ["PAST"], "Var"
- find_lex $P1143, "$name"
- find_lex $P1144, "$scope"
-.annotate 'line', 412
- find_lex $P1145, "$sigil"
- $P1146 = "vivitype"($P1145)
- find_lex $P1147, "$/"
- $P1148 = $P1142."new"($P1143 :named("name"), $P1144 :named("scope"), 1 :named("isdecl"), 1 :named("lvalue"), $P1146 :named("viviself"), $P1147 :named("node"))
-.annotate 'line', 411
- store_lex "$decl", $P1148
-.annotate 'line', 414
- find_lex $P1149, "$BLOCK"
- find_lex $P1150, "$name"
- find_lex $P1151, "$scope"
- $P1149."symbol"($P1150, $P1151 :named("scope"))
-.annotate 'line', 415
- find_lex $P1152, "$BLOCK"
- unless_null $P1152, vivify_378
- $P1152 = root_new ['parrot';'ResizablePMCArray']
- vivify_378:
- set $P1153, $P1152[0]
- unless_null $P1153, vivify_379
- new $P1153, "Undef"
- vivify_379:
- find_lex $P1154, "$decl"
- $P1155 = $P1153."push"($P1154)
-.annotate 'line', 409
- .return ($P1155)
+ getattribute $P1108, exception, "payload"
+ .return ($P1108)
.end
.namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<sub>" :subid("71_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1163
-.annotate 'line', 420
- new $P1162, 'ExceptionHandler'
- set_addr $P1162, control_1161
- $P1162."handle_types"(57)
- push_eh $P1162
- .lex "self", self
- .lex "$/", param_1163
- find_lex $P1164, "$/"
- find_lex $P1165, "$/"
- unless_null $P1165, vivify_385
- $P1165 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "multi_declarator:sym<multi>" :subid("70_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1112
+.annotate 'line', 403
+ new $P1111, 'ExceptionHandler'
+ set_addr $P1111, control_1110
+ $P1111."handle_types"(.CONTROL_RETURN)
+ push_eh $P1111
+ .lex "self", self
+ .lex "$/", param_1112
+ find_lex $P1113, "$/"
+ find_lex $P1116, "$/"
+ unless_null $P1116, vivify_384
+ $P1116 = root_new ['parrot';'Hash']
+ vivify_384:
+ set $P1117, $P1116["declarator"]
+ unless_null $P1117, vivify_385
+ new $P1117, "Undef"
vivify_385:
- set $P1166, $P1165["routine_def"]
- unless_null $P1166, vivify_386
- new $P1166, "Undef"
+ if $P1117, if_1115
+ find_lex $P1121, "$/"
+ unless_null $P1121, vivify_386
+ $P1121 = root_new ['parrot';'Hash']
vivify_386:
- $P1167 = $P1166."ast"()
- $P1168 = $P1164."!make"($P1167)
- .return ($P1168)
- control_1161:
- .local pmc exception
- .get_results (exception)
- getattribute $P1169, exception, "payload"
- .return ($P1169)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "routine_declarator:sym<method>" :subid("72_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1173
-.annotate 'line', 421
- new $P1172, 'ExceptionHandler'
- set_addr $P1172, control_1171
- $P1172."handle_types"(57)
- push_eh $P1172
- .lex "self", self
- .lex "$/", param_1173
- find_lex $P1174, "$/"
- find_lex $P1175, "$/"
- unless_null $P1175, vivify_387
- $P1175 = root_new ['parrot';'Hash']
+ set $P1122, $P1121["routine_def"]
+ unless_null $P1122, vivify_387
+ new $P1122, "Undef"
vivify_387:
- set $P1176, $P1175["method_def"]
- unless_null $P1176, vivify_388
- new $P1176, "Undef"
+ $P1123 = $P1122."ast"()
+ set $P1114, $P1123
+ goto if_1115_end
+ if_1115:
+ find_lex $P1118, "$/"
+ unless_null $P1118, vivify_388
+ $P1118 = root_new ['parrot';'Hash']
vivify_388:
- $P1177 = $P1176."ast"()
- $P1178 = $P1174."!make"($P1177)
- .return ($P1178)
- control_1171:
+ set $P1119, $P1118["declarator"]
+ unless_null $P1119, vivify_389
+ new $P1119, "Undef"
+ vivify_389:
+ $P1120 = $P1119."ast"()
+ set $P1114, $P1120
+ if_1115_end:
+ $P1124 = $P1113."!make"($P1114)
+ .return ($P1124)
+ control_1110:
.local pmc exception
.get_results (exception)
- getattribute $P1179, exception, "payload"
- .return ($P1179)
+ getattribute $P1125, exception, "payload"
+ .return ($P1125)
.end
.namespace ["NQP";"Actions"]
-.sub "routine_def" :subid("73_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1183
-.annotate 'line', 423
- .const 'Sub' $P1194 = "74_1274022903.56472"
- capture_lex $P1194
- new $P1182, 'ExceptionHandler'
- set_addr $P1182, control_1181
- $P1182."handle_types"(57)
- push_eh $P1182
- .lex "self", self
- .lex "$/", param_1183
-.annotate 'line', 424
- new $P1184, "Undef"
- .lex "$past", $P1184
- find_lex $P1185, "$/"
- unless_null $P1185, vivify_389
- $P1185 = root_new ['parrot';'Hash']
- vivify_389:
- set $P1186, $P1185["blockoid"]
- unless_null $P1186, vivify_390
- new $P1186, "Undef"
+.include "except_types.pasm"
+.sub "multi_declarator:sym<null>" :subid("71_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1129
+.annotate 'line', 404
+ new $P1128, 'ExceptionHandler'
+ set_addr $P1128, control_1127
+ $P1128."handle_types"(.CONTROL_RETURN)
+ push_eh $P1128
+ .lex "self", self
+ .lex "$/", param_1129
+ find_lex $P1130, "$/"
+ find_lex $P1131, "$/"
+ unless_null $P1131, vivify_390
+ $P1131 = root_new ['parrot';'Hash']
vivify_390:
- $P1187 = $P1186."ast"()
- store_lex "$past", $P1187
-.annotate 'line', 425
- find_lex $P1188, "$past"
- $P1188."blocktype"("declaration")
-.annotate 'line', 426
- find_lex $P1189, "$past"
- $P1189."control"("return_pir")
-.annotate 'line', 427
- find_lex $P1191, "$/"
- unless_null $P1191, vivify_391
- $P1191 = root_new ['parrot';'Hash']
+ set $P1132, $P1131["declarator"]
+ unless_null $P1132, vivify_391
+ new $P1132, "Undef"
vivify_391:
- set $P1192, $P1191["deflongname"]
- unless_null $P1192, vivify_392
- new $P1192, "Undef"
- vivify_392:
- unless $P1192, if_1190_end
- .const 'Sub' $P1194 = "74_1274022903.56472"
- capture_lex $P1194
- $P1194()
- if_1190_end:
-.annotate 'line', 437
- find_lex $P1226, "$/"
- find_lex $P1227, "$past"
- $P1228 = $P1226."!make"($P1227)
-.annotate 'line', 423
- .return ($P1228)
- control_1181:
+ $P1133 = $P1132."ast"()
+ $P1134 = $P1130."!make"($P1133)
+ .return ($P1134)
+ control_1127:
.local pmc exception
.get_results (exception)
- getattribute $P1229, exception, "payload"
- .return ($P1229)
+ getattribute $P1135, exception, "payload"
+ .return ($P1135)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1193" :anon :subid("74_1274022903.56472") :outer("73_1274022903.56472")
-.annotate 'line', 428
- new $P1195, "Undef"
- .lex "$name", $P1195
- find_lex $P1196, "$/"
- unless_null $P1196, vivify_393
- $P1196 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "variable_declarator" :subid("72_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1139
+.annotate 'line', 407
+ .const 'Sub' $P1179 = "73_1275811497.55064"
+ capture_lex $P1179
+ new $P1138, 'ExceptionHandler'
+ set_addr $P1138, control_1137
+ $P1138."handle_types"(.CONTROL_RETURN)
+ push_eh $P1138
+ .lex "self", self
+ .lex "$/", param_1139
+.annotate 'line', 408
+ new $P1140, "Undef"
+ .lex "$past", $P1140
+.annotate 'line', 409
+ new $P1141, "Undef"
+ .lex "$sigil", $P1141
+.annotate 'line', 410
+ new $P1142, "Undef"
+ .lex "$name", $P1142
+.annotate 'line', 411
+ new $P1143, "Undef"
+ .lex "$BLOCK", $P1143
+.annotate 'line', 408
+ find_lex $P1144, "$/"
+ unless_null $P1144, vivify_392
+ $P1144 = root_new ['parrot';'Hash']
+ vivify_392:
+ set $P1145, $P1144["variable"]
+ unless_null $P1145, vivify_393
+ new $P1145, "Undef"
vivify_393:
- set $P1197, $P1196["sigil"]
- unless_null $P1197, vivify_394
- $P1197 = root_new ['parrot';'ResizablePMCArray']
+ $P1146 = $P1145."ast"()
+ store_lex "$past", $P1146
+.annotate 'line', 409
+ find_lex $P1147, "$/"
+ unless_null $P1147, vivify_394
+ $P1147 = root_new ['parrot';'Hash']
vivify_394:
- set $P1198, $P1197[0]
- unless_null $P1198, vivify_395
- new $P1198, "Undef"
+ set $P1148, $P1147["variable"]
+ unless_null $P1148, vivify_395
+ $P1148 = root_new ['parrot';'Hash']
vivify_395:
- set $S1199, $P1198
- new $P1200, 'String'
- set $P1200, $S1199
- find_lex $P1201, "$/"
- unless_null $P1201, vivify_396
- $P1201 = root_new ['parrot';'Hash']
+ set $P1149, $P1148["sigil"]
+ unless_null $P1149, vivify_396
+ new $P1149, "Undef"
vivify_396:
- set $P1202, $P1201["deflongname"]
- unless_null $P1202, vivify_397
- $P1202 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$sigil", $P1149
+.annotate 'line', 410
+ find_lex $P1150, "$past"
+ $P1151 = $P1150."name"()
+ store_lex "$name", $P1151
+.annotate 'line', 411
+ get_global $P1152, "@BLOCK"
+ unless_null $P1152, vivify_397
+ $P1152 = root_new ['parrot';'ResizablePMCArray']
vivify_397:
- set $P1203, $P1202[0]
- unless_null $P1203, vivify_398
- new $P1203, "Undef"
+ set $P1153, $P1152[0]
+ unless_null $P1153, vivify_398
+ new $P1153, "Undef"
vivify_398:
- $S1204 = $P1203."ast"()
- concat $P1205, $P1200, $S1204
- store_lex "$name", $P1205
-.annotate 'line', 429
- find_lex $P1206, "$past"
- find_lex $P1207, "$name"
- $P1206."name"($P1207)
-.annotate 'line', 430
- find_dynamic_lex $P1210, "$*SCOPE"
- unless_null $P1210, vivify_399
- get_hll_global $P1210, "$SCOPE"
- unless_null $P1210, vivify_400
+ store_lex "$BLOCK", $P1153
+.annotate 'line', 412
+ find_lex $P1155, "$BLOCK"
+ find_lex $P1156, "$name"
+ $P1157 = $P1155."symbol"($P1156)
+ unless $P1157, if_1154_end
+.annotate 'line', 413
+ find_lex $P1158, "$/"
+ $P1159 = $P1158."CURSOR"()
+ find_lex $P1160, "$name"
+ $P1159."panic"("Redeclaration of symbol ", $P1160)
+ if_1154_end:
+.annotate 'line', 415
+ find_dynamic_lex $P1162, "$*SCOPE"
+ unless_null $P1162, vivify_399
+ get_hll_global $P1162, "$SCOPE"
+ unless_null $P1162, vivify_400
die "Contextual $*SCOPE not found"
vivify_400:
vivify_399:
- set $S1211, $P1210
- isne $I1212, $S1211, "our"
- if $I1212, if_1209
- new $P1208, 'Integer'
- set $P1208, $I1212
- goto if_1209_end
- if_1209:
-.annotate 'line', 431
- get_global $P1213, "@BLOCK"
- unless_null $P1213, vivify_401
- $P1213 = root_new ['parrot';'ResizablePMCArray']
- vivify_401:
- set $P1214, $P1213[0]
- unless_null $P1214, vivify_402
- $P1214 = root_new ['parrot';'ResizablePMCArray']
+ set $S1163, $P1162
+ iseq $I1164, $S1163, "has"
+ if $I1164, if_1161
+.annotate 'line', 424
+ .const 'Sub' $P1179 = "73_1275811497.55064"
+ capture_lex $P1179
+ $P1179()
+ goto if_1161_end
+ if_1161:
+.annotate 'line', 416
+ find_lex $P1165, "$BLOCK"
+ find_lex $P1166, "$name"
+ $P1165."symbol"($P1166, "attribute" :named("scope"))
+.annotate 'line', 417
+ find_lex $P1168, "$BLOCK"
+ unless_null $P1168, vivify_405
+ $P1168 = root_new ['parrot';'Hash']
+ vivify_405:
+ set $P1169, $P1168["attributes"]
+ unless_null $P1169, vivify_406
+ new $P1169, "Undef"
+ vivify_406:
+ if $P1169, unless_1167_end
+.annotate 'line', 419
+ get_hll_global $P1170, ["PAST"], "Op"
+ $P1171 = $P1170."new"("list" :named("pasttype"), "attr" :named("named"))
+ find_lex $P1172, "$BLOCK"
+ unless_null $P1172, vivify_407
+ $P1172 = root_new ['parrot';'Hash']
+ store_lex "$BLOCK", $P1172
+ vivify_407:
+ set $P1172["attributes"], $P1171
+ unless_1167_end:
+.annotate 'line', 421
+ find_lex $P1173, "$BLOCK"
+ unless_null $P1173, vivify_408
+ $P1173 = root_new ['parrot';'Hash']
+ vivify_408:
+ set $P1174, $P1173["attributes"]
+ unless_null $P1174, vivify_409
+ new $P1174, "Undef"
+ vivify_409:
+ find_lex $P1175, "$name"
+ $P1174."push"($P1175)
+.annotate 'line', 422
+ get_hll_global $P1176, ["PAST"], "Stmts"
+ $P1177 = $P1176."new"()
+ store_lex "$past", $P1177
+ if_1161_end:
+.annotate 'line', 432
+ find_lex $P1203, "$/"
+ find_lex $P1204, "$past"
+ $P1205 = $P1203."!make"($P1204)
+.annotate 'line', 407
+ .return ($P1205)
+ control_1137:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1206, exception, "payload"
+ .return ($P1206)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1178" :anon :subid("73_1275811497.55064") :outer("72_1275811497.55064")
+.annotate 'line', 425
+ new $P1180, "Undef"
+ .lex "$scope", $P1180
+.annotate 'line', 426
+ new $P1181, "Undef"
+ .lex "$decl", $P1181
+.annotate 'line', 425
+ find_dynamic_lex $P1184, "$*SCOPE"
+ unless_null $P1184, vivify_401
+ get_hll_global $P1184, "$SCOPE"
+ unless_null $P1184, vivify_402
+ die "Contextual $*SCOPE not found"
vivify_402:
- set $P1215, $P1214[0]
- unless_null $P1215, vivify_403
- new $P1215, "Undef"
+ vivify_401:
+ set $S1185, $P1184
+ iseq $I1186, $S1185, "our"
+ if $I1186, if_1183
+ new $P1188, "String"
+ assign $P1188, "lexical"
+ set $P1182, $P1188
+ goto if_1183_end
+ if_1183:
+ new $P1187, "String"
+ assign $P1187, "package"
+ set $P1182, $P1187
+ if_1183_end:
+ store_lex "$scope", $P1182
+.annotate 'line', 426
+ get_hll_global $P1189, ["PAST"], "Var"
+ find_lex $P1190, "$name"
+ find_lex $P1191, "$scope"
+.annotate 'line', 427
+ find_lex $P1192, "$sigil"
+ $P1193 = "vivitype"($P1192)
+ find_lex $P1194, "$/"
+ $P1195 = $P1189."new"($P1190 :named("name"), $P1191 :named("scope"), 1 :named("isdecl"), 1 :named("lvalue"), $P1193 :named("viviself"), $P1194 :named("node"))
+.annotate 'line', 426
+ store_lex "$decl", $P1195
+.annotate 'line', 429
+ find_lex $P1196, "$BLOCK"
+ find_lex $P1197, "$name"
+ find_lex $P1198, "$scope"
+ $P1196."symbol"($P1197, $P1198 :named("scope"))
+.annotate 'line', 430
+ find_lex $P1199, "$BLOCK"
+ unless_null $P1199, vivify_403
+ $P1199 = root_new ['parrot';'ResizablePMCArray']
vivify_403:
- get_hll_global $P1216, ["PAST"], "Var"
- find_lex $P1217, "$name"
- find_lex $P1218, "$past"
- $P1219 = $P1216."new"($P1217 :named("name"), 1 :named("isdecl"), $P1218 :named("viviself"), "lexical" :named("scope"))
- $P1215."push"($P1219)
-.annotate 'line', 433
- get_global $P1220, "@BLOCK"
- unless_null $P1220, vivify_404
- $P1220 = root_new ['parrot';'ResizablePMCArray']
+ set $P1200, $P1199[0]
+ unless_null $P1200, vivify_404
+ new $P1200, "Undef"
vivify_404:
- set $P1221, $P1220[0]
- unless_null $P1221, vivify_405
- new $P1221, "Undef"
- vivify_405:
- find_lex $P1222, "$name"
- $P1221."symbol"($P1222, "lexical" :named("scope"))
-.annotate 'line', 434
- get_hll_global $P1223, ["PAST"], "Var"
- find_lex $P1224, "$name"
- $P1225 = $P1223."new"($P1224 :named("name"))
- store_lex "$past", $P1225
-.annotate 'line', 430
- set $P1208, $P1225
- if_1209_end:
-.annotate 'line', 427
- .return ($P1208)
+ find_lex $P1201, "$decl"
+ $P1202 = $P1200."push"($P1201)
+.annotate 'line', 424
+ .return ($P1202)
.end
.namespace ["NQP";"Actions"]
-.sub "method_def" :subid("75_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1233
-.annotate 'line', 441
- .const 'Sub' $P1249 = "76_1274022903.56472"
- capture_lex $P1249
- new $P1232, 'ExceptionHandler'
- set_addr $P1232, control_1231
- $P1232."handle_types"(57)
- push_eh $P1232
- .lex "self", self
- .lex "$/", param_1233
-.annotate 'line', 442
- new $P1234, "Undef"
- .lex "$past", $P1234
- find_lex $P1235, "$/"
- unless_null $P1235, vivify_406
- $P1235 = root_new ['parrot';'Hash']
- vivify_406:
- set $P1236, $P1235["blockoid"]
- unless_null $P1236, vivify_407
- new $P1236, "Undef"
- vivify_407:
- $P1237 = $P1236."ast"()
- store_lex "$past", $P1237
-.annotate 'line', 443
- find_lex $P1238, "$past"
- $P1238."blocktype"("method")
-.annotate 'line', 444
- find_lex $P1239, "$past"
- $P1239."control"("return_pir")
-.annotate 'line', 445
- find_lex $P1240, "$past"
- unless_null $P1240, vivify_408
- $P1240 = root_new ['parrot';'ResizablePMCArray']
- vivify_408:
- set $P1241, $P1240[0]
- unless_null $P1241, vivify_409
- new $P1241, "Undef"
- vivify_409:
- get_hll_global $P1242, ["PAST"], "Op"
- $P1243 = $P1242."new"(" .lex \"self\", self" :named("inline"))
- $P1241."unshift"($P1243)
-.annotate 'line', 446
- find_lex $P1244, "$past"
- $P1244."symbol"("self", "lexical" :named("scope"))
-.annotate 'line', 447
- find_lex $P1246, "$/"
- unless_null $P1246, vivify_410
- $P1246 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "routine_declarator:sym<sub>" :subid("74_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1210
+.annotate 'line', 435
+ new $P1209, 'ExceptionHandler'
+ set_addr $P1209, control_1208
+ $P1209."handle_types"(.CONTROL_RETURN)
+ push_eh $P1209
+ .lex "self", self
+ .lex "$/", param_1210
+ find_lex $P1211, "$/"
+ find_lex $P1212, "$/"
+ unless_null $P1212, vivify_410
+ $P1212 = root_new ['parrot';'Hash']
vivify_410:
- set $P1247, $P1246["deflongname"]
- unless_null $P1247, vivify_411
- new $P1247, "Undef"
+ set $P1213, $P1212["routine_def"]
+ unless_null $P1213, vivify_411
+ new $P1213, "Undef"
vivify_411:
- unless $P1247, if_1245_end
- .const 'Sub' $P1249 = "76_1274022903.56472"
- capture_lex $P1249
- $P1249()
- if_1245_end:
-.annotate 'line', 451
- find_lex $P1260, "$/"
- find_lex $P1261, "$past"
- $P1262 = $P1260."!make"($P1261)
-.annotate 'line', 441
- .return ($P1262)
- control_1231:
+ $P1214 = $P1213."ast"()
+ $P1215 = $P1211."!make"($P1214)
+ .return ($P1215)
+ control_1208:
.local pmc exception
.get_results (exception)
- getattribute $P1263, exception, "payload"
- .return ($P1263)
+ getattribute $P1216, exception, "payload"
+ .return ($P1216)
.end
.namespace ["NQP";"Actions"]
-.sub "_block1248" :anon :subid("76_1274022903.56472") :outer("75_1274022903.56472")
-.annotate 'line', 448
- new $P1250, "Undef"
- .lex "$name", $P1250
- find_lex $P1251, "$/"
- unless_null $P1251, vivify_412
- $P1251 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "routine_declarator:sym<method>" :subid("75_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1220
+.annotate 'line', 436
+ new $P1219, 'ExceptionHandler'
+ set_addr $P1219, control_1218
+ $P1219."handle_types"(.CONTROL_RETURN)
+ push_eh $P1219
+ .lex "self", self
+ .lex "$/", param_1220
+ find_lex $P1221, "$/"
+ find_lex $P1222, "$/"
+ unless_null $P1222, vivify_412
+ $P1222 = root_new ['parrot';'Hash']
vivify_412:
- set $P1252, $P1251["deflongname"]
- unless_null $P1252, vivify_413
- $P1252 = root_new ['parrot';'ResizablePMCArray']
+ set $P1223, $P1222["method_def"]
+ unless_null $P1223, vivify_413
+ new $P1223, "Undef"
vivify_413:
- set $P1253, $P1252[0]
- unless_null $P1253, vivify_414
- new $P1253, "Undef"
- vivify_414:
- $P1254 = $P1253."ast"()
- set $S1255, $P1254
- new $P1256, 'String'
- set $P1256, $S1255
- store_lex "$name", $P1256
-.annotate 'line', 449
- find_lex $P1257, "$past"
- find_lex $P1258, "$name"
- $P1259 = $P1257."name"($P1258)
-.annotate 'line', 447
- .return ($P1259)
+ $P1224 = $P1223."ast"()
+ $P1225 = $P1221."!make"($P1224)
+ .return ($P1225)
+ control_1218:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1226, exception, "payload"
+ .return ($P1226)
.end
.namespace ["NQP";"Actions"]
-.sub "signature" :subid("77_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1267
-.annotate 'line', 455
- .const 'Sub' $P1278 = "78_1274022903.56472"
- capture_lex $P1278
- new $P1266, 'ExceptionHandler'
- set_addr $P1266, control_1265
- $P1266."handle_types"(57)
- push_eh $P1266
+.include "except_types.pasm"
+.sub "routine_def" :subid("76_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1230
+.annotate 'line', 438
+ .const 'Sub' $P1241 = "77_1275811497.55064"
+ capture_lex $P1241
+ new $P1229, 'ExceptionHandler'
+ set_addr $P1229, control_1228
+ $P1229."handle_types"(.CONTROL_RETURN)
+ push_eh $P1229
.lex "self", self
- .lex "$/", param_1267
-.annotate 'line', 456
- new $P1268, "Undef"
- .lex "$BLOCKINIT", $P1268
- get_global $P1269, "@BLOCK"
- unless_null $P1269, vivify_415
- $P1269 = root_new ['parrot';'ResizablePMCArray']
+ .lex "$/", param_1230
+.annotate 'line', 439
+ new $P1231, "Undef"
+ .lex "$past", $P1231
+ find_lex $P1232, "$/"
+ unless_null $P1232, vivify_414
+ $P1232 = root_new ['parrot';'Hash']
+ vivify_414:
+ set $P1233, $P1232["blockoid"]
+ unless_null $P1233, vivify_415
+ new $P1233, "Undef"
vivify_415:
- set $P1270, $P1269[0]
- unless_null $P1270, vivify_416
- $P1270 = root_new ['parrot';'ResizablePMCArray']
+ $P1234 = $P1233."ast"()
+ store_lex "$past", $P1234
+.annotate 'line', 440
+ find_lex $P1235, "$past"
+ $P1235."blocktype"("declaration")
+.annotate 'line', 441
+ find_lex $P1236, "$past"
+ $P1236."control"("return_pir")
+.annotate 'line', 442
+ find_lex $P1238, "$/"
+ unless_null $P1238, vivify_416
+ $P1238 = root_new ['parrot';'Hash']
vivify_416:
- set $P1271, $P1270[0]
- unless_null $P1271, vivify_417
- new $P1271, "Undef"
+ set $P1239, $P1238["deflongname"]
+ unless_null $P1239, vivify_417
+ new $P1239, "Undef"
vivify_417:
- store_lex "$BLOCKINIT", $P1271
-.annotate 'line', 457
+ unless $P1239, if_1237_end
+ .const 'Sub' $P1241 = "77_1275811497.55064"
+ capture_lex $P1241
+ $P1241()
+ if_1237_end:
+.annotate 'line', 452
find_lex $P1273, "$/"
- unless_null $P1273, vivify_418
- $P1273 = root_new ['parrot';'Hash']
- vivify_418:
- set $P1274, $P1273["parameter"]
- unless_null $P1274, vivify_419
- new $P1274, "Undef"
- vivify_419:
- defined $I1275, $P1274
- unless $I1275, for_undef_420
- iter $P1272, $P1274
- new $P1285, 'ExceptionHandler'
- set_addr $P1285, loop1284_handler
- $P1285."handle_types"(64, 66, 65)
- push_eh $P1285
- loop1284_test:
- unless $P1272, loop1284_done
- shift $P1276, $P1272
- loop1284_redo:
- .const 'Sub' $P1278 = "78_1274022903.56472"
- capture_lex $P1278
- $P1278($P1276)
- loop1284_next:
- goto loop1284_test
- loop1284_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1286, exception, 'type'
- eq $P1286, 64, loop1284_next
- eq $P1286, 66, loop1284_redo
- loop1284_done:
- pop_eh
- for_undef_420:
-.annotate 'line', 455
- .return ($P1272)
- control_1265:
+ find_lex $P1274, "$past"
+ $P1275 = $P1273."!make"($P1274)
+.annotate 'line', 438
+ .return ($P1275)
+ control_1228:
.local pmc exception
.get_results (exception)
- getattribute $P1287, exception, "payload"
- .return ($P1287)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1277" :anon :subid("78_1274022903.56472") :outer("77_1274022903.56472")
- .param pmc param_1279
-.annotate 'line', 457
- .lex "$_", param_1279
- find_lex $P1280, "$BLOCKINIT"
- find_lex $P1281, "$_"
- $P1282 = $P1281."ast"()
- $P1283 = $P1280."push"($P1282)
- .return ($P1283)
+ getattribute $P1276, exception, "payload"
+ .return ($P1276)
.end
.namespace ["NQP";"Actions"]
-.sub "parameter" :subid("79_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1291
-.annotate 'line', 460
- new $P1290, 'ExceptionHandler'
- set_addr $P1290, control_1289
- $P1290."handle_types"(57)
- push_eh $P1290
- .lex "self", self
- .lex "$/", param_1291
-.annotate 'line', 461
- new $P1292, "Undef"
- .lex "$quant", $P1292
-.annotate 'line', 462
- new $P1293, "Undef"
- .lex "$past", $P1293
-.annotate 'line', 461
- find_lex $P1294, "$/"
- unless_null $P1294, vivify_421
- $P1294 = root_new ['parrot';'Hash']
+.sub "_block1240" :anon :subid("77_1275811497.55064") :outer("76_1275811497.55064")
+.annotate 'line', 443
+ new $P1242, "Undef"
+ .lex "$name", $P1242
+ find_lex $P1243, "$/"
+ unless_null $P1243, vivify_418
+ $P1243 = root_new ['parrot';'Hash']
+ vivify_418:
+ set $P1244, $P1243["sigil"]
+ unless_null $P1244, vivify_419
+ $P1244 = root_new ['parrot';'ResizablePMCArray']
+ vivify_419:
+ set $P1245, $P1244[0]
+ unless_null $P1245, vivify_420
+ new $P1245, "Undef"
+ vivify_420:
+ set $S1246, $P1245
+ new $P1247, 'String'
+ set $P1247, $S1246
+ find_lex $P1248, "$/"
+ unless_null $P1248, vivify_421
+ $P1248 = root_new ['parrot';'Hash']
vivify_421:
- set $P1295, $P1294["quant"]
- unless_null $P1295, vivify_422
- new $P1295, "Undef"
+ set $P1249, $P1248["deflongname"]
+ unless_null $P1249, vivify_422
+ $P1249 = root_new ['parrot';'ResizablePMCArray']
vivify_422:
- store_lex "$quant", $P1295
- find_lex $P1296, "$past"
-.annotate 'line', 463
- find_lex $P1298, "$/"
- unless_null $P1298, vivify_423
- $P1298 = root_new ['parrot';'Hash']
+ set $P1250, $P1249[0]
+ unless_null $P1250, vivify_423
+ new $P1250, "Undef"
vivify_423:
- set $P1299, $P1298["named_param"]
- unless_null $P1299, vivify_424
- new $P1299, "Undef"
- vivify_424:
- if $P1299, if_1297
-.annotate 'line', 470
- find_lex $P1313, "$/"
- unless_null $P1313, vivify_425
- $P1313 = root_new ['parrot';'Hash']
+ $S1251 = $P1250."ast"()
+ concat $P1252, $P1247, $S1251
+ store_lex "$name", $P1252
+.annotate 'line', 444
+ find_lex $P1253, "$past"
+ find_lex $P1254, "$name"
+ $P1253."name"($P1254)
+.annotate 'line', 445
+ find_dynamic_lex $P1257, "$*SCOPE"
+ unless_null $P1257, vivify_424
+ get_hll_global $P1257, "$SCOPE"
+ unless_null $P1257, vivify_425
+ die "Contextual $*SCOPE not found"
vivify_425:
- set $P1314, $P1313["param_var"]
- unless_null $P1314, vivify_426
- new $P1314, "Undef"
+ vivify_424:
+ set $S1258, $P1257
+ isne $I1259, $S1258, "our"
+ if $I1259, if_1256
+ new $P1255, 'Integer'
+ set $P1255, $I1259
+ goto if_1256_end
+ if_1256:
+.annotate 'line', 446
+ get_global $P1260, "@BLOCK"
+ unless_null $P1260, vivify_426
+ $P1260 = root_new ['parrot';'ResizablePMCArray']
vivify_426:
- $P1315 = $P1314."ast"()
- store_lex "$past", $P1315
-.annotate 'line', 471
- find_lex $P1317, "$quant"
- set $S1318, $P1317
- iseq $I1319, $S1318, "*"
- if $I1319, if_1316
-.annotate 'line', 475
- find_lex $P1328, "$quant"
- set $S1329, $P1328
- iseq $I1330, $S1329, "?"
- unless $I1330, if_1327_end
-.annotate 'line', 476
- find_lex $P1331, "$past"
- find_lex $P1332, "$/"
- unless_null $P1332, vivify_427
- $P1332 = root_new ['parrot';'Hash']
+ set $P1261, $P1260[0]
+ unless_null $P1261, vivify_427
+ $P1261 = root_new ['parrot';'ResizablePMCArray']
vivify_427:
- set $P1333, $P1332["param_var"]
- unless_null $P1333, vivify_428
- $P1333 = root_new ['parrot';'Hash']
+ set $P1262, $P1261[0]
+ unless_null $P1262, vivify_428
+ new $P1262, "Undef"
vivify_428:
- set $P1334, $P1333["sigil"]
- unless_null $P1334, vivify_429
- new $P1334, "Undef"
+ get_hll_global $P1263, ["PAST"], "Var"
+ find_lex $P1264, "$name"
+ find_lex $P1265, "$past"
+ $P1266 = $P1263."new"($P1264 :named("name"), 1 :named("isdecl"), $P1265 :named("viviself"), "lexical" :named("scope"))
+ $P1262."push"($P1266)
+.annotate 'line', 448
+ get_global $P1267, "@BLOCK"
+ unless_null $P1267, vivify_429
+ $P1267 = root_new ['parrot';'ResizablePMCArray']
vivify_429:
- $P1335 = "vivitype"($P1334)
- $P1331."viviself"($P1335)
- if_1327_end:
-.annotate 'line', 475
- goto if_1316_end
- if_1316:
-.annotate 'line', 472
- find_lex $P1320, "$past"
- $P1320."slurpy"(1)
-.annotate 'line', 473
- find_lex $P1321, "$past"
- find_lex $P1322, "$/"
- unless_null $P1322, vivify_430
- $P1322 = root_new ['parrot';'Hash']
+ set $P1268, $P1267[0]
+ unless_null $P1268, vivify_430
+ new $P1268, "Undef"
vivify_430:
- set $P1323, $P1322["param_var"]
- unless_null $P1323, vivify_431
- $P1323 = root_new ['parrot';'Hash']
- vivify_431:
- set $P1324, $P1323["sigil"]
- unless_null $P1324, vivify_432
- new $P1324, "Undef"
- vivify_432:
- set $S1325, $P1324
- iseq $I1326, $S1325, "%"
- $P1321."named"($I1326)
- if_1316_end:
-.annotate 'line', 469
- goto if_1297_end
- if_1297:
-.annotate 'line', 464
- find_lex $P1300, "$/"
- unless_null $P1300, vivify_433
- $P1300 = root_new ['parrot';'Hash']
+ find_lex $P1269, "$name"
+ $P1268."symbol"($P1269, "lexical" :named("scope"))
+.annotate 'line', 449
+ get_hll_global $P1270, ["PAST"], "Var"
+ find_lex $P1271, "$name"
+ $P1272 = $P1270."new"($P1271 :named("name"))
+ store_lex "$past", $P1272
+.annotate 'line', 445
+ set $P1255, $P1272
+ if_1256_end:
+.annotate 'line', 442
+ .return ($P1255)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "method_def" :subid("78_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1280
+.annotate 'line', 456
+ .const 'Sub' $P1296 = "79_1275811497.55064"
+ capture_lex $P1296
+ new $P1279, 'ExceptionHandler'
+ set_addr $P1279, control_1278
+ $P1279."handle_types"(.CONTROL_RETURN)
+ push_eh $P1279
+ .lex "self", self
+ .lex "$/", param_1280
+.annotate 'line', 457
+ new $P1281, "Undef"
+ .lex "$past", $P1281
+ find_lex $P1282, "$/"
+ unless_null $P1282, vivify_431
+ $P1282 = root_new ['parrot';'Hash']
+ vivify_431:
+ set $P1283, $P1282["blockoid"]
+ unless_null $P1283, vivify_432
+ new $P1283, "Undef"
+ vivify_432:
+ $P1284 = $P1283."ast"()
+ store_lex "$past", $P1284
+.annotate 'line', 458
+ find_lex $P1285, "$past"
+ $P1285."blocktype"("method")
+.annotate 'line', 459
+ find_lex $P1286, "$past"
+ $P1286."control"("return_pir")
+.annotate 'line', 460
+ find_lex $P1287, "$past"
+ unless_null $P1287, vivify_433
+ $P1287 = root_new ['parrot';'ResizablePMCArray']
vivify_433:
- set $P1301, $P1300["named_param"]
- unless_null $P1301, vivify_434
- new $P1301, "Undef"
+ set $P1288, $P1287[0]
+ unless_null $P1288, vivify_434
+ new $P1288, "Undef"
vivify_434:
- $P1302 = $P1301."ast"()
- store_lex "$past", $P1302
-.annotate 'line', 465
- find_lex $P1304, "$quant"
- set $S1305, $P1304
- isne $I1306, $S1305, "!"
- unless $I1306, if_1303_end
-.annotate 'line', 466
- find_lex $P1307, "$past"
- find_lex $P1308, "$/"
- unless_null $P1308, vivify_435
- $P1308 = root_new ['parrot';'Hash']
+ get_hll_global $P1289, ["PAST"], "Op"
+ $P1290 = $P1289."new"(" .lex \"self\", self" :named("inline"))
+ $P1288."unshift"($P1290)
+.annotate 'line', 461
+ find_lex $P1291, "$past"
+ $P1291."symbol"("self", "lexical" :named("scope"))
+.annotate 'line', 462
+ find_lex $P1293, "$/"
+ unless_null $P1293, vivify_435
+ $P1293 = root_new ['parrot';'Hash']
vivify_435:
- set $P1309, $P1308["named_param"]
- unless_null $P1309, vivify_436
- $P1309 = root_new ['parrot';'Hash']
+ set $P1294, $P1293["deflongname"]
+ unless_null $P1294, vivify_436
+ new $P1294, "Undef"
vivify_436:
- set $P1310, $P1309["param_var"]
- unless_null $P1310, vivify_437
- $P1310 = root_new ['parrot';'Hash']
+ unless $P1294, if_1292_end
+ .const 'Sub' $P1296 = "79_1275811497.55064"
+ capture_lex $P1296
+ $P1296()
+ if_1292_end:
+.annotate 'line', 466
+ find_dynamic_lex $P1308, "$*MULTINESS"
+ unless_null $P1308, vivify_440
+ get_hll_global $P1308, "$MULTINESS"
+ unless_null $P1308, vivify_441
+ die "Contextual $*MULTINESS not found"
+ vivify_441:
+ vivify_440:
+ set $S1309, $P1308
+ iseq $I1310, $S1309, "multi"
+ unless $I1310, if_1307_end
+ find_lex $P1311, "$past"
+ $P1312 = $P1311."multi"()
+ $P1312."unshift"("_")
+ if_1307_end:
+.annotate 'line', 467
+ find_lex $P1313, "$/"
+ find_lex $P1314, "$past"
+ $P1315 = $P1313."!make"($P1314)
+.annotate 'line', 456
+ .return ($P1315)
+ control_1278:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1316, exception, "payload"
+ .return ($P1316)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1295" :anon :subid("79_1275811497.55064") :outer("78_1275811497.55064")
+.annotate 'line', 463
+ new $P1297, "Undef"
+ .lex "$name", $P1297
+ find_lex $P1298, "$/"
+ unless_null $P1298, vivify_437
+ $P1298 = root_new ['parrot';'Hash']
vivify_437:
- set $P1311, $P1310["sigil"]
- unless_null $P1311, vivify_438
- new $P1311, "Undef"
+ set $P1299, $P1298["deflongname"]
+ unless_null $P1299, vivify_438
+ $P1299 = root_new ['parrot';'ResizablePMCArray']
vivify_438:
- $P1312 = "vivitype"($P1311)
- $P1307."viviself"($P1312)
- if_1303_end:
- if_1297_end:
-.annotate 'line', 479
- find_lex $P1337, "$/"
- unless_null $P1337, vivify_439
- $P1337 = root_new ['parrot';'Hash']
+ set $P1300, $P1299[0]
+ unless_null $P1300, vivify_439
+ new $P1300, "Undef"
vivify_439:
- set $P1338, $P1337["default_value"]
- unless_null $P1338, vivify_440
- new $P1338, "Undef"
- vivify_440:
- unless $P1338, if_1336_end
-.annotate 'line', 480
- find_lex $P1340, "$quant"
- set $S1341, $P1340
- iseq $I1342, $S1341, "*"
- unless $I1342, if_1339_end
-.annotate 'line', 481
- find_lex $P1343, "$/"
- $P1344 = $P1343."CURSOR"()
- $P1344."panic"("Can't put default on slurpy parameter")
- if_1339_end:
-.annotate 'line', 483
- find_lex $P1346, "$quant"
- set $S1347, $P1346
- iseq $I1348, $S1347, "!"
- unless $I1348, if_1345_end
-.annotate 'line', 484
- find_lex $P1349, "$/"
- $P1350 = $P1349."CURSOR"()
- $P1350."panic"("Can't put default on required parameter")
- if_1345_end:
-.annotate 'line', 486
- find_lex $P1351, "$past"
- find_lex $P1352, "$/"
- unless_null $P1352, vivify_441
- $P1352 = root_new ['parrot';'Hash']
- vivify_441:
- set $P1353, $P1352["default_value"]
- unless_null $P1353, vivify_442
- $P1353 = root_new ['parrot';'ResizablePMCArray']
+ $P1301 = $P1300."ast"()
+ set $S1302, $P1301
+ new $P1303, 'String'
+ set $P1303, $S1302
+ store_lex "$name", $P1303
+.annotate 'line', 464
+ find_lex $P1304, "$past"
+ find_lex $P1305, "$name"
+ $P1306 = $P1304."name"($P1305)
+.annotate 'line', 462
+ .return ($P1306)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "signature" :subid("80_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1320
+.annotate 'line', 471
+ .const 'Sub' $P1346 = "82_1275811497.55064"
+ capture_lex $P1346
+ .const 'Sub' $P1331 = "81_1275811497.55064"
+ capture_lex $P1331
+ new $P1319, 'ExceptionHandler'
+ set_addr $P1319, control_1318
+ $P1319."handle_types"(.CONTROL_RETURN)
+ push_eh $P1319
+ .lex "self", self
+ .lex "$/", param_1320
+.annotate 'line', 472
+ new $P1321, "Undef"
+ .lex "$BLOCKINIT", $P1321
+ get_global $P1322, "@BLOCK"
+ unless_null $P1322, vivify_442
+ $P1322 = root_new ['parrot';'ResizablePMCArray']
vivify_442:
- set $P1354, $P1353[0]
- unless_null $P1354, vivify_443
- $P1354 = root_new ['parrot';'Hash']
+ set $P1323, $P1322[0]
+ unless_null $P1323, vivify_443
+ $P1323 = root_new ['parrot';'ResizablePMCArray']
vivify_443:
- set $P1355, $P1354["EXPR"]
- unless_null $P1355, vivify_444
- new $P1355, "Undef"
+ set $P1324, $P1323[0]
+ unless_null $P1324, vivify_444
+ new $P1324, "Undef"
vivify_444:
- $P1356 = $P1355."ast"()
- $P1351."viviself"($P1356)
- if_1336_end:
-.annotate 'line', 488
- find_lex $P1358, "$past"
- $P1359 = $P1358."viviself"()
- if $P1359, unless_1357_end
- get_global $P1360, "@BLOCK"
- unless_null $P1360, vivify_445
- $P1360 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$BLOCKINIT", $P1324
+.annotate 'line', 474
+ find_lex $P1326, "$/"
+ unless_null $P1326, vivify_445
+ $P1326 = root_new ['parrot';'Hash']
vivify_445:
- set $P1361, $P1360[0]
- unless_null $P1361, vivify_446
- new $P1361, "Undef"
+ set $P1327, $P1326["parameter"]
+ unless_null $P1327, vivify_446
+ new $P1327, "Undef"
vivify_446:
- get_global $P1362, "@BLOCK"
- unless_null $P1362, vivify_447
- $P1362 = root_new ['parrot';'ResizablePMCArray']
- vivify_447:
- set $P1363, $P1362[0]
- unless_null $P1363, vivify_448
- new $P1363, "Undef"
+ defined $I1328, $P1327
+ unless $I1328, for_undef_447
+ iter $P1325, $P1327
+ new $P1338, 'ExceptionHandler'
+ set_addr $P1338, loop1337_handler
+ $P1338."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1338
+ loop1337_test:
+ unless $P1325, loop1337_done
+ shift $P1329, $P1325
+ loop1337_redo:
+ .const 'Sub' $P1331 = "81_1275811497.55064"
+ capture_lex $P1331
+ $P1331($P1329)
+ loop1337_next:
+ goto loop1337_test
+ loop1337_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1339, exception, 'type'
+ eq $P1339, .CONTROL_LOOP_NEXT, loop1337_next
+ eq $P1339, .CONTROL_LOOP_REDO, loop1337_redo
+ loop1337_done:
+ pop_eh
+ for_undef_447:
+.annotate 'line', 477
+ find_dynamic_lex $P1342, "$*MULTINESS"
+ unless_null $P1342, vivify_448
+ get_hll_global $P1342, "$MULTINESS"
+ unless_null $P1342, vivify_449
+ die "Contextual $*MULTINESS not found"
+ vivify_449:
vivify_448:
- $P1364 = $P1363."arity"()
- set $N1365, $P1364
- new $P1366, 'Float'
- set $P1366, $N1365
- add $P1367, $P1366, 1
- $P1361."arity"($P1367)
- unless_1357_end:
-.annotate 'line', 489
- find_lex $P1368, "$/"
- find_lex $P1369, "$past"
- $P1370 = $P1368."!make"($P1369)
-.annotate 'line', 460
- .return ($P1370)
- control_1289:
+ set $S1343, $P1342
+ iseq $I1344, $S1343, "multi"
+ if $I1344, if_1341
+ new $P1340, 'Integer'
+ set $P1340, $I1344
+ goto if_1341_end
+ if_1341:
+ .const 'Sub' $P1346 = "82_1275811497.55064"
+ capture_lex $P1346
+ $P1372 = $P1346()
+ set $P1340, $P1372
+ if_1341_end:
+.annotate 'line', 471
+ .return ($P1340)
+ control_1318:
.local pmc exception
.get_results (exception)
- getattribute $P1371, exception, "payload"
- .return ($P1371)
+ getattribute $P1373, exception, "payload"
+ .return ($P1373)
.end
.namespace ["NQP";"Actions"]
-.sub "param_var" :subid("80_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1375
-.annotate 'line', 492
- new $P1374, 'ExceptionHandler'
- set_addr $P1374, control_1373
- $P1374."handle_types"(57)
- push_eh $P1374
- .lex "self", self
- .lex "$/", param_1375
-.annotate 'line', 493
- new $P1376, "Undef"
- .lex "$name", $P1376
-.annotate 'line', 494
- new $P1377, "Undef"
- .lex "$past", $P1377
-.annotate 'line', 493
- find_lex $P1378, "$/"
- set $S1379, $P1378
- new $P1380, 'String'
- set $P1380, $S1379
- store_lex "$name", $P1380
-.annotate 'line', 494
- get_hll_global $P1381, ["PAST"], "Var"
- find_lex $P1382, "$name"
- find_lex $P1383, "$/"
- $P1384 = $P1381."new"($P1382 :named("name"), "parameter" :named("scope"), 1 :named("isdecl"), $P1383 :named("node"))
- store_lex "$past", $P1384
-.annotate 'line', 496
- get_global $P1385, "@BLOCK"
- unless_null $P1385, vivify_449
- $P1385 = root_new ['parrot';'ResizablePMCArray']
- vivify_449:
- set $P1386, $P1385[0]
- unless_null $P1386, vivify_450
- new $P1386, "Undef"
- vivify_450:
- find_lex $P1387, "$name"
- $P1386."symbol"($P1387, "lexical" :named("scope"))
-.annotate 'line', 497
- find_lex $P1388, "$/"
- find_lex $P1389, "$past"
- $P1390 = $P1388."!make"($P1389)
-.annotate 'line', 492
- .return ($P1390)
- control_1373:
- .local pmc exception
- .get_results (exception)
- getattribute $P1391, exception, "payload"
- .return ($P1391)
+.sub "_block1330" :anon :subid("81_1275811497.55064") :outer("80_1275811497.55064")
+ .param pmc param_1332
+.annotate 'line', 474
+ .lex "$_", param_1332
+ find_lex $P1333, "$BLOCKINIT"
+ find_lex $P1334, "$_"
+ $P1335 = $P1334."ast"()
+ $P1336 = $P1333."push"($P1335)
+ .return ($P1336)
.end
.namespace ["NQP";"Actions"]
-.sub "named_param" :subid("81_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1395
-.annotate 'line', 500
- new $P1394, 'ExceptionHandler'
- set_addr $P1394, control_1393
- $P1394."handle_types"(57)
- push_eh $P1394
- .lex "self", self
- .lex "$/", param_1395
-.annotate 'line', 501
- new $P1396, "Undef"
- .lex "$past", $P1396
- find_lex $P1397, "$/"
- unless_null $P1397, vivify_451
- $P1397 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "_block1345" :anon :subid("82_1275811497.55064") :outer("80_1275811497.55064")
+.annotate 'line', 477
+ .const 'Sub' $P1355 = "83_1275811497.55064"
+ capture_lex $P1355
+.annotate 'line', 478
+ $P1347 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@params", $P1347
+.annotate 'line', 477
+ find_lex $P1348, "@params"
+.annotate 'line', 479
+ find_lex $P1350, "$BLOCKINIT"
+ $P1351 = $P1350."list"()
+ defined $I1352, $P1351
+ unless $I1352, for_undef_450
+ iter $P1349, $P1351
+ new $P1366, 'ExceptionHandler'
+ set_addr $P1366, loop1365_handler
+ $P1366."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1366
+ loop1365_test:
+ unless $P1349, loop1365_done
+ shift $P1353, $P1349
+ loop1365_redo:
+ .const 'Sub' $P1355 = "83_1275811497.55064"
+ capture_lex $P1355
+ $P1355($P1353)
+ loop1365_next:
+ goto loop1365_test
+ loop1365_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1367, exception, 'type'
+ eq $P1367, .CONTROL_LOOP_NEXT, loop1365_next
+ eq $P1367, .CONTROL_LOOP_REDO, loop1365_redo
+ loop1365_done:
+ pop_eh
+ for_undef_450:
+.annotate 'line', 482
+ get_global $P1368, "@BLOCK"
+ unless_null $P1368, vivify_451
+ $P1368 = root_new ['parrot';'ResizablePMCArray']
vivify_451:
- set $P1398, $P1397["param_var"]
- unless_null $P1398, vivify_452
- new $P1398, "Undef"
+ set $P1369, $P1368[0]
+ unless_null $P1369, vivify_452
+ new $P1369, "Undef"
vivify_452:
- $P1399 = $P1398."ast"()
- store_lex "$past", $P1399
-.annotate 'line', 502
- find_lex $P1400, "$past"
- find_lex $P1401, "$/"
- unless_null $P1401, vivify_453
- $P1401 = root_new ['parrot';'Hash']
- vivify_453:
- set $P1402, $P1401["param_var"]
- unless_null $P1402, vivify_454
- $P1402 = root_new ['parrot';'Hash']
- vivify_454:
- set $P1403, $P1402["name"]
- unless_null $P1403, vivify_455
- new $P1403, "Undef"
- vivify_455:
- set $S1404, $P1403
- $P1400."named"($S1404)
-.annotate 'line', 503
- find_lex $P1405, "$/"
- find_lex $P1406, "$past"
- $P1407 = $P1405."!make"($P1406)
-.annotate 'line', 500
- .return ($P1407)
- control_1393:
- .local pmc exception
- .get_results (exception)
- getattribute $P1408, exception, "payload"
- .return ($P1408)
+ find_lex $P1370, "@params"
+ $P1371 = $P1369."multi"($P1370)
+.annotate 'line', 477
+ .return ($P1371)
.end
.namespace ["NQP";"Actions"]
-.sub "regex_declarator" :subid("82_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1412
- .param pmc param_1413 :optional
- .param int has_param_1413 :opt_flag
-.annotate 'line', 506
- .const 'Sub' $P1483 = "84_1274022903.56472"
- capture_lex $P1483
- .const 'Sub' $P1455 = "83_1274022903.56472"
- capture_lex $P1455
- new $P1411, 'ExceptionHandler'
- set_addr $P1411, control_1410
- $P1411."handle_types"(57)
- push_eh $P1411
- .lex "self", self
- .lex "$/", param_1412
- if has_param_1413, optparam_456
- new $P1414, "Undef"
- set param_1413, $P1414
- optparam_456:
- .lex "$key", param_1413
-.annotate 'line', 507
- $P1415 = root_new ['parrot';'ResizablePMCArray']
- .lex "@MODIFIERS", $P1415
-.annotate 'line', 510
- new $P1416, "Undef"
- .lex "$name", $P1416
-.annotate 'line', 511
- new $P1417, "Undef"
- .lex "$past", $P1417
-.annotate 'line', 507
+.sub "_block1354" :anon :subid("83_1275811497.55064") :outer("82_1275811497.55064")
+ .param pmc param_1356
+.annotate 'line', 479
+ .lex "$_", param_1356
+.annotate 'line', 480
+ find_lex $P1357, "@params"
+ find_lex $P1359, "$_"
+ $P1360 = $P1359."multitype"()
+ set $P1358, $P1360
+ defined $I1362, $P1358
+ if $I1362, default_1361
+ new $P1363, "String"
+ assign $P1363, "_"
+ set $P1358, $P1363
+ default_1361:
+ $P1364 = $P1357."push"($P1358)
+.annotate 'line', 479
+ .return ($P1364)
+.end
- $P1418 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
-
- store_lex "@MODIFIERS", $P1418
-.annotate 'line', 510
- find_lex $P1419, "$/"
- unless_null $P1419, vivify_457
- $P1419 = root_new ['parrot';'Hash']
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "parameter" :subid("84_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1377
+.annotate 'line', 486
+ .const 'Sub' $P1458 = "85_1275811497.55064"
+ capture_lex $P1458
+ new $P1376, 'ExceptionHandler'
+ set_addr $P1376, control_1375
+ $P1376."handle_types"(.CONTROL_RETURN)
+ push_eh $P1376
+ .lex "self", self
+ .lex "$/", param_1377
+.annotate 'line', 487
+ new $P1378, "Undef"
+ .lex "$quant", $P1378
+.annotate 'line', 488
+ new $P1379, "Undef"
+ .lex "$past", $P1379
+.annotate 'line', 487
+ find_lex $P1380, "$/"
+ unless_null $P1380, vivify_453
+ $P1380 = root_new ['parrot';'Hash']
+ vivify_453:
+ set $P1381, $P1380["quant"]
+ unless_null $P1381, vivify_454
+ new $P1381, "Undef"
+ vivify_454:
+ store_lex "$quant", $P1381
+ find_lex $P1382, "$past"
+.annotate 'line', 489
+ find_lex $P1384, "$/"
+ unless_null $P1384, vivify_455
+ $P1384 = root_new ['parrot';'Hash']
+ vivify_455:
+ set $P1385, $P1384["named_param"]
+ unless_null $P1385, vivify_456
+ new $P1385, "Undef"
+ vivify_456:
+ if $P1385, if_1383
+.annotate 'line', 496
+ find_lex $P1399, "$/"
+ unless_null $P1399, vivify_457
+ $P1399 = root_new ['parrot';'Hash']
vivify_457:
- set $P1420, $P1419["deflongname"]
- unless_null $P1420, vivify_458
- new $P1420, "Undef"
+ set $P1400, $P1399["param_var"]
+ unless_null $P1400, vivify_458
+ new $P1400, "Undef"
vivify_458:
- $P1421 = $P1420."ast"()
- set $S1422, $P1421
- new $P1423, 'String'
- set $P1423, $S1422
- store_lex "$name", $P1423
- find_lex $P1424, "$past"
-.annotate 'line', 512
- find_lex $P1426, "$/"
- unless_null $P1426, vivify_459
- $P1426 = root_new ['parrot';'Hash']
+ $P1401 = $P1400."ast"()
+ store_lex "$past", $P1401
+.annotate 'line', 497
+ find_lex $P1403, "$quant"
+ set $S1404, $P1403
+ iseq $I1405, $S1404, "*"
+ if $I1405, if_1402
+.annotate 'line', 501
+ find_lex $P1414, "$quant"
+ set $S1415, $P1414
+ iseq $I1416, $S1415, "?"
+ unless $I1416, if_1413_end
+.annotate 'line', 502
+ find_lex $P1417, "$past"
+ find_lex $P1418, "$/"
+ unless_null $P1418, vivify_459
+ $P1418 = root_new ['parrot';'Hash']
vivify_459:
- set $P1427, $P1426["proto"]
- unless_null $P1427, vivify_460
- new $P1427, "Undef"
+ set $P1419, $P1418["param_var"]
+ unless_null $P1419, vivify_460
+ $P1419 = root_new ['parrot';'Hash']
vivify_460:
- if $P1427, if_1425
-.annotate 'line', 539
- find_lex $P1451, "$key"
- set $S1452, $P1451
- iseq $I1453, $S1452, "open"
- if $I1453, if_1450
-.annotate 'line', 552
- .const 'Sub' $P1483 = "84_1274022903.56472"
- capture_lex $P1483
- $P1483()
- goto if_1450_end
- if_1450:
-.annotate 'line', 539
- .const 'Sub' $P1455 = "83_1274022903.56472"
- capture_lex $P1455
- $P1455()
- if_1450_end:
- goto if_1425_end
- if_1425:
-.annotate 'line', 514
- get_hll_global $P1428, ["PAST"], "Stmts"
-.annotate 'line', 515
- get_hll_global $P1429, ["PAST"], "Block"
- find_lex $P1430, "$name"
-.annotate 'line', 516
- get_hll_global $P1431, ["PAST"], "Op"
-.annotate 'line', 517
- get_hll_global $P1432, ["PAST"], "Var"
- $P1433 = $P1432."new"("self" :named("name"), "register" :named("scope"))
- find_lex $P1434, "$name"
- $P1435 = $P1431."new"($P1433, $P1434, "!protoregex" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 516
- find_lex $P1436, "$/"
- $P1437 = $P1429."new"($P1435, $P1430 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1436 :named("node"))
-.annotate 'line', 526
- get_hll_global $P1438, ["PAST"], "Block"
- new $P1439, "String"
- assign $P1439, "!PREFIX__"
- find_lex $P1440, "$name"
- concat $P1441, $P1439, $P1440
-.annotate 'line', 527
- get_hll_global $P1442, ["PAST"], "Op"
-.annotate 'line', 528
- get_hll_global $P1443, ["PAST"], "Var"
- $P1444 = $P1443."new"("self" :named("name"), "register" :named("scope"))
- find_lex $P1445, "$name"
- $P1446 = $P1442."new"($P1444, $P1445, "!PREFIX__!protoregex" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 527
- find_lex $P1447, "$/"
- $P1448 = $P1438."new"($P1446, $P1441 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1447 :named("node"))
-.annotate 'line', 526
- $P1449 = $P1428."new"($P1437, $P1448)
-.annotate 'line', 514
- store_lex "$past", $P1449
- if_1425_end:
-.annotate 'line', 566
- find_lex $P1504, "$/"
- find_lex $P1505, "$past"
- $P1506 = $P1504."!make"($P1505)
-.annotate 'line', 506
- .return ($P1506)
- control_1410:
- .local pmc exception
- .get_results (exception)
- getattribute $P1507, exception, "payload"
- .return ($P1507)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1482" :anon :subid("84_1274022903.56472") :outer("82_1274022903.56472")
-.annotate 'line', 553
- new $P1484, "Undef"
- .lex "$regex", $P1484
-.annotate 'line', 554
- get_hll_global $P1485, ["Regex";"P6Regex";"Actions"], "buildsub"
- find_lex $P1486, "$/"
- unless_null $P1486, vivify_461
- $P1486 = root_new ['parrot';'Hash']
+ set $P1420, $P1419["sigil"]
+ unless_null $P1420, vivify_461
+ new $P1420, "Undef"
vivify_461:
- set $P1487, $P1486["p6regex"]
- unless_null $P1487, vivify_462
- new $P1487, "Undef"
+ $P1421 = "vivitype"($P1420)
+ $P1417."viviself"($P1421)
+ if_1413_end:
+.annotate 'line', 501
+ goto if_1402_end
+ if_1402:
+.annotate 'line', 498
+ find_lex $P1406, "$past"
+ $P1406."slurpy"(1)
+.annotate 'line', 499
+ find_lex $P1407, "$past"
+ find_lex $P1408, "$/"
+ unless_null $P1408, vivify_462
+ $P1408 = root_new ['parrot';'Hash']
vivify_462:
- $P1488 = $P1487."ast"()
- get_global $P1489, "@BLOCK"
- $P1490 = $P1489."shift"()
- $P1491 = $P1485($P1488, $P1490)
- store_lex "$regex", $P1491
-.annotate 'line', 555
- find_lex $P1492, "$regex"
- find_lex $P1493, "$name"
- $P1492."name"($P1493)
-.annotate 'line', 557
- get_hll_global $P1494, ["PAST"], "Op"
-.annotate 'line', 559
- get_hll_global $P1495, ["PAST"], "Var"
- new $P1496, "ResizablePMCArray"
- push $P1496, "Regex"
- $P1497 = $P1495."new"("Method" :named("name"), $P1496 :named("namespace"), "package" :named("scope"))
- find_lex $P1498, "$regex"
- $P1499 = $P1494."new"($P1497, $P1498, "callmethod" :named("pasttype"), "new" :named("name"))
-.annotate 'line', 557
- store_lex "$past", $P1499
-.annotate 'line', 563
- find_lex $P1500, "$regex"
- find_lex $P1501, "$past"
- unless_null $P1501, vivify_463
- $P1501 = root_new ['parrot';'Hash']
- store_lex "$past", $P1501
+ set $P1409, $P1408["param_var"]
+ unless_null $P1409, vivify_463
+ $P1409 = root_new ['parrot';'Hash']
vivify_463:
- set $P1501["sink"], $P1500
-.annotate 'line', 564
- find_lex $P1502, "@MODIFIERS"
- $P1503 = $P1502."shift"()
-.annotate 'line', 552
- .return ($P1503)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1454" :anon :subid("83_1274022903.56472") :outer("82_1274022903.56472")
-.annotate 'line', 540
- $P1456 = root_new ['parrot';'Hash']
- .lex "%h", $P1456
-.annotate 'line', 539
- find_lex $P1457, "%h"
-.annotate 'line', 541
- find_lex $P1459, "$/"
- unless_null $P1459, vivify_464
- $P1459 = root_new ['parrot';'Hash']
+ set $P1410, $P1409["sigil"]
+ unless_null $P1410, vivify_464
+ new $P1410, "Undef"
vivify_464:
- set $P1460, $P1459["sym"]
- unless_null $P1460, vivify_465
- new $P1460, "Undef"
+ set $S1411, $P1410
+ iseq $I1412, $S1411, "%"
+ $P1407."named"($I1412)
+ if_1402_end:
+.annotate 'line', 495
+ goto if_1383_end
+ if_1383:
+.annotate 'line', 490
+ find_lex $P1386, "$/"
+ unless_null $P1386, vivify_465
+ $P1386 = root_new ['parrot';'Hash']
vivify_465:
- set $S1461, $P1460
- iseq $I1462, $S1461, "token"
- unless $I1462, if_1458_end
- new $P1463, "Integer"
- assign $P1463, 1
- find_lex $P1464, "%h"
- unless_null $P1464, vivify_466
- $P1464 = root_new ['parrot';'Hash']
- store_lex "%h", $P1464
+ set $P1387, $P1386["named_param"]
+ unless_null $P1387, vivify_466
+ new $P1387, "Undef"
vivify_466:
- set $P1464["r"], $P1463
- if_1458_end:
-.annotate 'line', 542
- find_lex $P1466, "$/"
- unless_null $P1466, vivify_467
- $P1466 = root_new ['parrot';'Hash']
+ $P1388 = $P1387."ast"()
+ store_lex "$past", $P1388
+.annotate 'line', 491
+ find_lex $P1390, "$quant"
+ set $S1391, $P1390
+ isne $I1392, $S1391, "!"
+ unless $I1392, if_1389_end
+.annotate 'line', 492
+ find_lex $P1393, "$past"
+ find_lex $P1394, "$/"
+ unless_null $P1394, vivify_467
+ $P1394 = root_new ['parrot';'Hash']
vivify_467:
- set $P1467, $P1466["sym"]
- unless_null $P1467, vivify_468
- new $P1467, "Undef"
+ set $P1395, $P1394["named_param"]
+ unless_null $P1395, vivify_468
+ $P1395 = root_new ['parrot';'Hash']
vivify_468:
- set $S1468, $P1467
- iseq $I1469, $S1468, "rule"
- unless $I1469, if_1465_end
- new $P1470, "Integer"
- assign $P1470, 1
- find_lex $P1471, "%h"
- unless_null $P1471, vivify_469
- $P1471 = root_new ['parrot';'Hash']
- store_lex "%h", $P1471
+ set $P1396, $P1395["param_var"]
+ unless_null $P1396, vivify_469
+ $P1396 = root_new ['parrot';'Hash']
vivify_469:
- set $P1471["r"], $P1470
- new $P1472, "Integer"
- assign $P1472, 1
- find_lex $P1473, "%h"
- unless_null $P1473, vivify_470
- $P1473 = root_new ['parrot';'Hash']
- store_lex "%h", $P1473
+ set $P1397, $P1396["sigil"]
+ unless_null $P1397, vivify_470
+ new $P1397, "Undef"
vivify_470:
- set $P1473["s"], $P1472
- if_1465_end:
-.annotate 'line', 543
- find_lex $P1474, "@MODIFIERS"
- find_lex $P1475, "%h"
- $P1474."unshift"($P1475)
-.annotate 'line', 544
-
- $P0 = find_lex '$name'
- set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
-
-.annotate 'line', 548
- get_global $P1476, "@BLOCK"
- unless_null $P1476, vivify_471
- $P1476 = root_new ['parrot';'ResizablePMCArray']
+ $P1398 = "vivitype"($P1397)
+ $P1393."viviself"($P1398)
+ if_1389_end:
+ if_1383_end:
+.annotate 'line', 505
+ find_lex $P1423, "$/"
+ unless_null $P1423, vivify_471
+ $P1423 = root_new ['parrot';'Hash']
vivify_471:
- set $P1477, $P1476[0]
- unless_null $P1477, vivify_472
- new $P1477, "Undef"
+ set $P1424, $P1423["default_value"]
+ unless_null $P1424, vivify_472
+ new $P1424, "Undef"
vivify_472:
- $P1477."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
-.annotate 'line', 549
- get_global $P1478, "@BLOCK"
- unless_null $P1478, vivify_473
- $P1478 = root_new ['parrot';'ResizablePMCArray']
+ unless $P1424, if_1422_end
+.annotate 'line', 506
+ find_lex $P1426, "$quant"
+ set $S1427, $P1426
+ iseq $I1428, $S1427, "*"
+ unless $I1428, if_1425_end
+.annotate 'line', 507
+ find_lex $P1429, "$/"
+ $P1430 = $P1429."CURSOR"()
+ $P1430."panic"("Can't put default on slurpy parameter")
+ if_1425_end:
+.annotate 'line', 509
+ find_lex $P1432, "$quant"
+ set $S1433, $P1432
+ iseq $I1434, $S1433, "!"
+ unless $I1434, if_1431_end
+.annotate 'line', 510
+ find_lex $P1435, "$/"
+ $P1436 = $P1435."CURSOR"()
+ $P1436."panic"("Can't put default on required parameter")
+ if_1431_end:
+.annotate 'line', 512
+ find_lex $P1437, "$past"
+ find_lex $P1438, "$/"
+ unless_null $P1438, vivify_473
+ $P1438 = root_new ['parrot';'Hash']
vivify_473:
- set $P1479, $P1478[0]
- unless_null $P1479, vivify_474
- new $P1479, "Undef"
+ set $P1439, $P1438["default_value"]
+ unless_null $P1439, vivify_474
+ $P1439 = root_new ['parrot';'ResizablePMCArray']
vivify_474:
- $P1479."symbol"("$/", "lexical" :named("scope"))
-.annotate 'line', 550
- new $P1480, "Exception"
- set $P1480['type'], 57
- new $P1481, "Integer"
- assign $P1481, 0
- setattribute $P1480, 'payload', $P1481
- throw $P1480
-.annotate 'line', 539
- .return ()
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "dotty" :subid("85_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1511
-.annotate 'line', 570
- new $P1510, 'ExceptionHandler'
- set_addr $P1510, control_1509
- $P1510."handle_types"(57)
- push_eh $P1510
- .lex "self", self
- .lex "$/", param_1511
-.annotate 'line', 571
- new $P1512, "Undef"
- .lex "$past", $P1512
- find_lex $P1515, "$/"
- unless_null $P1515, vivify_475
- $P1515 = root_new ['parrot';'Hash']
+ set $P1440, $P1439[0]
+ unless_null $P1440, vivify_475
+ $P1440 = root_new ['parrot';'Hash']
vivify_475:
- set $P1516, $P1515["args"]
- unless_null $P1516, vivify_476
- new $P1516, "Undef"
+ set $P1441, $P1440["EXPR"]
+ unless_null $P1441, vivify_476
+ new $P1441, "Undef"
vivify_476:
- if $P1516, if_1514
- get_hll_global $P1521, ["PAST"], "Op"
- find_lex $P1522, "$/"
- $P1523 = $P1521."new"($P1522 :named("node"))
- set $P1513, $P1523
- goto if_1514_end
- if_1514:
- find_lex $P1517, "$/"
- unless_null $P1517, vivify_477
- $P1517 = root_new ['parrot';'Hash']
+ $P1442 = $P1441."ast"()
+ $P1437."viviself"($P1442)
+ if_1422_end:
+.annotate 'line', 514
+ find_lex $P1444, "$past"
+ $P1445 = $P1444."viviself"()
+ if $P1445, unless_1443_end
+ get_global $P1446, "@BLOCK"
+ unless_null $P1446, vivify_477
+ $P1446 = root_new ['parrot';'ResizablePMCArray']
vivify_477:
- set $P1518, $P1517["args"]
- unless_null $P1518, vivify_478
- $P1518 = root_new ['parrot';'ResizablePMCArray']
+ set $P1447, $P1446[0]
+ unless_null $P1447, vivify_478
+ new $P1447, "Undef"
vivify_478:
- set $P1519, $P1518[0]
- unless_null $P1519, vivify_479
- new $P1519, "Undef"
+ get_global $P1448, "@BLOCK"
+ unless_null $P1448, vivify_479
+ $P1448 = root_new ['parrot';'ResizablePMCArray']
vivify_479:
- $P1520 = $P1519."ast"()
- set $P1513, $P1520
- if_1514_end:
- store_lex "$past", $P1513
-.annotate 'line', 572
- find_lex $P1524, "$past"
- find_lex $P1527, "$/"
- unless_null $P1527, vivify_480
- $P1527 = root_new ['parrot';'Hash']
+ set $P1449, $P1448[0]
+ unless_null $P1449, vivify_480
+ new $P1449, "Undef"
vivify_480:
- set $P1528, $P1527["quote"]
- unless_null $P1528, vivify_481
- new $P1528, "Undef"
+ $P1450 = $P1449."arity"()
+ set $N1451, $P1450
+ new $P1452, 'Float'
+ set $P1452, $N1451
+ add $P1453, $P1452, 1
+ $P1447."arity"($P1453)
+ unless_1443_end:
+.annotate 'line', 517
+ find_lex $P1455, "$/"
+ unless_null $P1455, vivify_481
+ $P1455 = root_new ['parrot';'Hash']
vivify_481:
- if $P1528, if_1526
- find_lex $P1532, "$/"
- unless_null $P1532, vivify_482
- $P1532 = root_new ['parrot';'Hash']
+ set $P1456, $P1455["typename"]
+ unless_null $P1456, vivify_482
+ new $P1456, "Undef"
vivify_482:
- set $P1533, $P1532["longname"]
- unless_null $P1533, vivify_483
- new $P1533, "Undef"
+ unless $P1456, if_1454_end
+ .const 'Sub' $P1458 = "85_1275811497.55064"
+ capture_lex $P1458
+ $P1458()
+ if_1454_end:
+.annotate 'line', 523
+ find_lex $P1482, "$/"
+ find_lex $P1483, "$past"
+ $P1484 = $P1482."!make"($P1483)
+.annotate 'line', 486
+ .return ($P1484)
+ control_1375:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1485, exception, "payload"
+ .return ($P1485)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "_block1457" :anon :subid("85_1275811497.55064") :outer("84_1275811497.55064")
+.annotate 'line', 517
+ .const 'Sub' $P1470 = "86_1275811497.55064"
+ capture_lex $P1470
+.annotate 'line', 518
+ $P1459 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@multitype", $P1459
+.annotate 'line', 517
+ find_lex $P1460, "@multitype"
+.annotate 'line', 519
+ find_lex $P1462, "$/"
+ unless_null $P1462, vivify_483
+ $P1462 = root_new ['parrot';'Hash']
vivify_483:
- set $S1534, $P1533
- new $P1525, 'String'
- set $P1525, $S1534
- goto if_1526_end
- if_1526:
- find_lex $P1529, "$/"
- unless_null $P1529, vivify_484
- $P1529 = root_new ['parrot';'Hash']
+ set $P1463, $P1462["typename"]
+ unless_null $P1463, vivify_484
+ $P1463 = root_new ['parrot';'ResizablePMCArray']
vivify_484:
- set $P1530, $P1529["quote"]
- unless_null $P1530, vivify_485
- new $P1530, "Undef"
+ set $P1464, $P1463[0]
+ unless_null $P1464, vivify_485
+ $P1464 = root_new ['parrot';'Hash']
vivify_485:
- $P1531 = $P1530."ast"()
- set $P1525, $P1531
- if_1526_end:
- $P1524."name"($P1525)
-.annotate 'line', 573
- find_lex $P1535, "$past"
- $P1535."pasttype"("callmethod")
-.annotate 'line', 574
- find_lex $P1536, "$/"
- find_lex $P1537, "$past"
- $P1538 = $P1536."!make"($P1537)
-.annotate 'line', 570
- .return ($P1538)
- control_1509:
+ set $P1465, $P1464["name"]
+ unless_null $P1465, vivify_486
+ $P1465 = root_new ['parrot';'Hash']
+ vivify_486:
+ set $P1466, $P1465["identifier"]
+ unless_null $P1466, vivify_487
+ new $P1466, "Undef"
+ vivify_487:
+ defined $I1467, $P1466
+ unless $I1467, for_undef_488
+ iter $P1461, $P1466
+ new $P1477, 'ExceptionHandler'
+ set_addr $P1477, loop1476_handler
+ $P1477."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1477
+ loop1476_test:
+ unless $P1461, loop1476_done
+ shift $P1468, $P1461
+ loop1476_redo:
+ .const 'Sub' $P1470 = "86_1275811497.55064"
+ capture_lex $P1470
+ $P1470($P1468)
+ loop1476_next:
+ goto loop1476_test
+ loop1476_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1478, exception, 'type'
+ eq $P1478, .CONTROL_LOOP_NEXT, loop1476_next
+ eq $P1478, .CONTROL_LOOP_REDO, loop1476_redo
+ loop1476_done:
+ pop_eh
+ for_undef_488:
+.annotate 'line', 520
+ find_lex $P1479, "$past"
+ find_lex $P1480, "@multitype"
+ $P1481 = $P1479."multitype"($P1480)
+.annotate 'line', 517
+ .return ($P1481)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.sub "_block1469" :anon :subid("86_1275811497.55064") :outer("85_1275811497.55064")
+ .param pmc param_1471
+.annotate 'line', 519
+ .lex "$_", param_1471
+ find_lex $P1472, "@multitype"
+ find_lex $P1473, "$_"
+ set $S1474, $P1473
+ $P1475 = $P1472."push"($S1474)
+ .return ($P1475)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "param_var" :subid("87_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1489
+.annotate 'line', 526
+ new $P1488, 'ExceptionHandler'
+ set_addr $P1488, control_1487
+ $P1488."handle_types"(.CONTROL_RETURN)
+ push_eh $P1488
+ .lex "self", self
+ .lex "$/", param_1489
+.annotate 'line', 527
+ new $P1490, "Undef"
+ .lex "$name", $P1490
+.annotate 'line', 528
+ new $P1491, "Undef"
+ .lex "$past", $P1491
+.annotate 'line', 527
+ find_lex $P1492, "$/"
+ set $S1493, $P1492
+ new $P1494, 'String'
+ set $P1494, $S1493
+ store_lex "$name", $P1494
+.annotate 'line', 528
+ get_hll_global $P1495, ["PAST"], "Var"
+ find_lex $P1496, "$name"
+ find_lex $P1497, "$/"
+ $P1498 = $P1495."new"($P1496 :named("name"), "parameter" :named("scope"), 1 :named("isdecl"), $P1497 :named("node"))
+ store_lex "$past", $P1498
+.annotate 'line', 530
+ get_global $P1499, "@BLOCK"
+ unless_null $P1499, vivify_489
+ $P1499 = root_new ['parrot';'ResizablePMCArray']
+ vivify_489:
+ set $P1500, $P1499[0]
+ unless_null $P1500, vivify_490
+ new $P1500, "Undef"
+ vivify_490:
+ find_lex $P1501, "$name"
+ $P1500."symbol"($P1501, "lexical" :named("scope"))
+.annotate 'line', 531
+ find_lex $P1502, "$/"
+ find_lex $P1503, "$past"
+ $P1504 = $P1502."!make"($P1503)
+.annotate 'line', 526
+ .return ($P1504)
+ control_1487:
.local pmc exception
.get_results (exception)
- getattribute $P1539, exception, "payload"
- .return ($P1539)
+ getattribute $P1505, exception, "payload"
+ .return ($P1505)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<self>" :subid("86_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1543
-.annotate 'line', 579
- new $P1542, 'ExceptionHandler'
- set_addr $P1542, control_1541
- $P1542."handle_types"(57)
- push_eh $P1542
- .lex "self", self
- .lex "$/", param_1543
-.annotate 'line', 580
- find_lex $P1544, "$/"
- get_hll_global $P1545, ["PAST"], "Var"
- $P1546 = $P1545."new"("self" :named("name"))
- $P1547 = $P1544."!make"($P1546)
-.annotate 'line', 579
- .return ($P1547)
- control_1541:
+.include "except_types.pasm"
+.sub "named_param" :subid("88_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1509
+.annotate 'line', 534
+ new $P1508, 'ExceptionHandler'
+ set_addr $P1508, control_1507
+ $P1508."handle_types"(.CONTROL_RETURN)
+ push_eh $P1508
+ .lex "self", self
+ .lex "$/", param_1509
+.annotate 'line', 535
+ new $P1510, "Undef"
+ .lex "$past", $P1510
+ find_lex $P1511, "$/"
+ unless_null $P1511, vivify_491
+ $P1511 = root_new ['parrot';'Hash']
+ vivify_491:
+ set $P1512, $P1511["param_var"]
+ unless_null $P1512, vivify_492
+ new $P1512, "Undef"
+ vivify_492:
+ $P1513 = $P1512."ast"()
+ store_lex "$past", $P1513
+.annotate 'line', 536
+ find_lex $P1514, "$past"
+ find_lex $P1515, "$/"
+ unless_null $P1515, vivify_493
+ $P1515 = root_new ['parrot';'Hash']
+ vivify_493:
+ set $P1516, $P1515["param_var"]
+ unless_null $P1516, vivify_494
+ $P1516 = root_new ['parrot';'Hash']
+ vivify_494:
+ set $P1517, $P1516["name"]
+ unless_null $P1517, vivify_495
+ new $P1517, "Undef"
+ vivify_495:
+ set $S1518, $P1517
+ $P1514."named"($S1518)
+.annotate 'line', 537
+ find_lex $P1519, "$/"
+ find_lex $P1520, "$past"
+ $P1521 = $P1519."!make"($P1520)
+.annotate 'line', 534
+ .return ($P1521)
+ control_1507:
.local pmc exception
.get_results (exception)
- getattribute $P1548, exception, "payload"
- .return ($P1548)
+ getattribute $P1522, exception, "payload"
+ .return ($P1522)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<identifier>" :subid("87_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1552
-.annotate 'line', 583
- new $P1551, 'ExceptionHandler'
- set_addr $P1551, control_1550
- $P1551."handle_types"(57)
- push_eh $P1551
+.include "except_types.pasm"
+.sub "regex_declarator" :subid("89_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1526
+ .param pmc param_1527 :optional
+ .param int has_param_1527 :opt_flag
+.annotate 'line', 540
+ .const 'Sub' $P1597 = "91_1275811497.55064"
+ capture_lex $P1597
+ .const 'Sub' $P1569 = "90_1275811497.55064"
+ capture_lex $P1569
+ new $P1525, 'ExceptionHandler'
+ set_addr $P1525, control_1524
+ $P1525."handle_types"(.CONTROL_RETURN)
+ push_eh $P1525
.lex "self", self
- .lex "$/", param_1552
-.annotate 'line', 584
- new $P1553, "Undef"
- .lex "$past", $P1553
- find_lex $P1554, "$/"
- unless_null $P1554, vivify_486
- $P1554 = root_new ['parrot';'Hash']
- vivify_486:
- set $P1555, $P1554["args"]
- unless_null $P1555, vivify_487
- new $P1555, "Undef"
- vivify_487:
- $P1556 = $P1555."ast"()
- store_lex "$past", $P1556
-.annotate 'line', 585
- find_lex $P1557, "$past"
- find_lex $P1558, "$/"
- unless_null $P1558, vivify_488
- $P1558 = root_new ['parrot';'Hash']
- vivify_488:
- set $P1559, $P1558["identifier"]
- unless_null $P1559, vivify_489
- new $P1559, "Undef"
- vivify_489:
- set $S1560, $P1559
- $P1557."name"($S1560)
+ .lex "$/", param_1526
+ if has_param_1527, optparam_496
+ new $P1528, "Undef"
+ set param_1527, $P1528
+ optparam_496:
+ .lex "$key", param_1527
+.annotate 'line', 541
+ $P1529 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@MODIFIERS", $P1529
+.annotate 'line', 544
+ new $P1530, "Undef"
+ .lex "$name", $P1530
+.annotate 'line', 545
+ new $P1531, "Undef"
+ .lex "$past", $P1531
+.annotate 'line', 541
+
+ $P1532 = get_hll_global ['Regex';'P6Regex';'Actions'], '@MODIFIERS'
+
+ store_lex "@MODIFIERS", $P1532
+.annotate 'line', 544
+ find_lex $P1533, "$/"
+ unless_null $P1533, vivify_497
+ $P1533 = root_new ['parrot';'Hash']
+ vivify_497:
+ set $P1534, $P1533["deflongname"]
+ unless_null $P1534, vivify_498
+ new $P1534, "Undef"
+ vivify_498:
+ $P1535 = $P1534."ast"()
+ set $S1536, $P1535
+ new $P1537, 'String'
+ set $P1537, $S1536
+ store_lex "$name", $P1537
+ find_lex $P1538, "$past"
+.annotate 'line', 546
+ find_lex $P1540, "$/"
+ unless_null $P1540, vivify_499
+ $P1540 = root_new ['parrot';'Hash']
+ vivify_499:
+ set $P1541, $P1540["proto"]
+ unless_null $P1541, vivify_500
+ new $P1541, "Undef"
+ vivify_500:
+ if $P1541, if_1539
+.annotate 'line', 573
+ find_lex $P1565, "$key"
+ set $S1566, $P1565
+ iseq $I1567, $S1566, "open"
+ if $I1567, if_1564
.annotate 'line', 586
+ .const 'Sub' $P1597 = "91_1275811497.55064"
+ capture_lex $P1597
+ $P1597()
+ goto if_1564_end
+ if_1564:
+.annotate 'line', 573
+ .const 'Sub' $P1569 = "90_1275811497.55064"
+ capture_lex $P1569
+ $P1569()
+ if_1564_end:
+ goto if_1539_end
+ if_1539:
+.annotate 'line', 548
+ get_hll_global $P1542, ["PAST"], "Stmts"
+.annotate 'line', 549
+ get_hll_global $P1543, ["PAST"], "Block"
+ find_lex $P1544, "$name"
+.annotate 'line', 550
+ get_hll_global $P1545, ["PAST"], "Op"
+.annotate 'line', 551
+ get_hll_global $P1546, ["PAST"], "Var"
+ $P1547 = $P1546."new"("self" :named("name"), "register" :named("scope"))
+ find_lex $P1548, "$name"
+ $P1549 = $P1545."new"($P1547, $P1548, "!protoregex" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 550
+ find_lex $P1550, "$/"
+ $P1551 = $P1543."new"($P1549, $P1544 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1550 :named("node"))
+.annotate 'line', 560
+ get_hll_global $P1552, ["PAST"], "Block"
+ new $P1553, "String"
+ assign $P1553, "!PREFIX__"
+ find_lex $P1554, "$name"
+ concat $P1555, $P1553, $P1554
+.annotate 'line', 561
+ get_hll_global $P1556, ["PAST"], "Op"
+.annotate 'line', 562
+ get_hll_global $P1557, ["PAST"], "Var"
+ $P1558 = $P1557."new"("self" :named("name"), "register" :named("scope"))
+ find_lex $P1559, "$name"
+ $P1560 = $P1556."new"($P1558, $P1559, "!PREFIX__!protoregex" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 561
find_lex $P1561, "$/"
- find_lex $P1562, "$past"
- $P1563 = $P1561."!make"($P1562)
-.annotate 'line', 583
- .return ($P1563)
- control_1550:
+ $P1562 = $P1552."new"($P1560, $P1555 :named("name"), "method" :named("blocktype"), 0 :named("lexical"), $P1561 :named("node"))
+.annotate 'line', 560
+ $P1563 = $P1542."new"($P1551, $P1562)
+.annotate 'line', 548
+ store_lex "$past", $P1563
+ if_1539_end:
+.annotate 'line', 600
+ find_lex $P1618, "$/"
+ find_lex $P1619, "$past"
+ $P1620 = $P1618."!make"($P1619)
+.annotate 'line', 540
+ .return ($P1620)
+ control_1524:
.local pmc exception
.get_results (exception)
- getattribute $P1564, exception, "payload"
- .return ($P1564)
+ getattribute $P1621, exception, "payload"
+ .return ($P1621)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<name>" :subid("88_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1568
+.sub "_block1596" :anon :subid("91_1275811497.55064") :outer("89_1275811497.55064")
+.annotate 'line', 587
+ new $P1598, "Undef"
+ .lex "$regex", $P1598
+.annotate 'line', 588
+ get_hll_global $P1599, ["Regex";"P6Regex";"Actions"], "buildsub"
+ find_lex $P1600, "$/"
+ unless_null $P1600, vivify_501
+ $P1600 = root_new ['parrot';'Hash']
+ vivify_501:
+ set $P1601, $P1600["p6regex"]
+ unless_null $P1601, vivify_502
+ new $P1601, "Undef"
+ vivify_502:
+ $P1602 = $P1601."ast"()
+ get_global $P1603, "@BLOCK"
+ $P1604 = $P1603."shift"()
+ $P1605 = $P1599($P1602, $P1604)
+ store_lex "$regex", $P1605
.annotate 'line', 589
- new $P1567, 'ExceptionHandler'
- set_addr $P1567, control_1566
- $P1567."handle_types"(57)
- push_eh $P1567
- .lex "self", self
- .lex "$/", param_1568
-.annotate 'line', 590
- $P1569 = root_new ['parrot';'ResizablePMCArray']
- .lex "@ns", $P1569
+ find_lex $P1606, "$regex"
+ find_lex $P1607, "$name"
+ $P1606."name"($P1607)
.annotate 'line', 591
- new $P1570, "Undef"
- .lex "$name", $P1570
+ get_hll_global $P1608, ["PAST"], "Op"
.annotate 'line', 593
- new $P1571, "Undef"
- .lex "$var", $P1571
-.annotate 'line', 595
- new $P1572, "Undef"
- .lex "$past", $P1572
-.annotate 'line', 590
- find_lex $P1573, "$/"
- unless_null $P1573, vivify_490
- $P1573 = root_new ['parrot';'Hash']
- vivify_490:
- set $P1574, $P1573["name"]
- unless_null $P1574, vivify_491
- $P1574 = root_new ['parrot';'Hash']
- vivify_491:
- set $P1575, $P1574["identifier"]
- unless_null $P1575, vivify_492
- new $P1575, "Undef"
- vivify_492:
- clone $P1576, $P1575
- store_lex "@ns", $P1576
+ get_hll_global $P1609, ["PAST"], "Var"
+ new $P1610, "ResizablePMCArray"
+ push $P1610, "Regex"
+ $P1611 = $P1609."new"("Method" :named("name"), $P1610 :named("namespace"), "package" :named("scope"))
+ find_lex $P1612, "$regex"
+ $P1613 = $P1608."new"($P1611, $P1612, "callmethod" :named("pasttype"), "new" :named("name"))
.annotate 'line', 591
- find_lex $P1577, "@ns"
- $P1578 = $P1577."pop"()
- store_lex "$name", $P1578
-.annotate 'line', 592
- find_lex $P1582, "@ns"
- if $P1582, if_1581
- set $P1580, $P1582
- goto if_1581_end
- if_1581:
- find_lex $P1583, "@ns"
- unless_null $P1583, vivify_493
- $P1583 = root_new ['parrot';'ResizablePMCArray']
- vivify_493:
- set $P1584, $P1583[0]
- unless_null $P1584, vivify_494
- new $P1584, "Undef"
- vivify_494:
- set $S1585, $P1584
- iseq $I1586, $S1585, "GLOBAL"
- new $P1580, 'Integer'
- set $P1580, $I1586
- if_1581_end:
- unless $P1580, if_1579_end
- find_lex $P1587, "@ns"
- $P1587."shift"()
- if_1579_end:
-.annotate 'line', 594
- get_hll_global $P1588, ["PAST"], "Var"
- find_lex $P1589, "$name"
- set $S1590, $P1589
- find_lex $P1591, "@ns"
- $P1592 = $P1588."new"($S1590 :named("name"), $P1591 :named("namespace"), "package" :named("scope"))
- store_lex "$var", $P1592
-.annotate 'line', 595
- find_lex $P1593, "$var"
- store_lex "$past", $P1593
-.annotate 'line', 596
- find_lex $P1595, "$/"
- unless_null $P1595, vivify_495
- $P1595 = root_new ['parrot';'Hash']
- vivify_495:
- set $P1596, $P1595["args"]
- unless_null $P1596, vivify_496
- new $P1596, "Undef"
- vivify_496:
- unless $P1596, if_1594_end
+ store_lex "$past", $P1613
.annotate 'line', 597
- find_lex $P1597, "$/"
- unless_null $P1597, vivify_497
- $P1597 = root_new ['parrot';'Hash']
- vivify_497:
- set $P1598, $P1597["args"]
- unless_null $P1598, vivify_498
- $P1598 = root_new ['parrot';'ResizablePMCArray']
- vivify_498:
- set $P1599, $P1598[0]
- unless_null $P1599, vivify_499
- new $P1599, "Undef"
- vivify_499:
- $P1600 = $P1599."ast"()
- store_lex "$past", $P1600
+ find_lex $P1614, "$regex"
+ find_lex $P1615, "$past"
+ unless_null $P1615, vivify_503
+ $P1615 = root_new ['parrot';'Hash']
+ store_lex "$past", $P1615
+ vivify_503:
+ set $P1615["sink"], $P1614
.annotate 'line', 598
- find_lex $P1601, "$past"
- find_lex $P1602, "$var"
- $P1601."unshift"($P1602)
- if_1594_end:
-.annotate 'line', 600
- find_lex $P1603, "$/"
- find_lex $P1604, "$past"
- $P1605 = $P1603."!make"($P1604)
-.annotate 'line', 589
- .return ($P1605)
- control_1566:
+ find_lex $P1616, "@MODIFIERS"
+ $P1617 = $P1616."shift"()
+.annotate 'line', 586
+ .return ($P1617)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "_block1568" :anon :subid("90_1275811497.55064") :outer("89_1275811497.55064")
+.annotate 'line', 574
+ $P1570 = root_new ['parrot';'Hash']
+ .lex "%h", $P1570
+.annotate 'line', 573
+ find_lex $P1571, "%h"
+.annotate 'line', 575
+ find_lex $P1573, "$/"
+ unless_null $P1573, vivify_504
+ $P1573 = root_new ['parrot';'Hash']
+ vivify_504:
+ set $P1574, $P1573["sym"]
+ unless_null $P1574, vivify_505
+ new $P1574, "Undef"
+ vivify_505:
+ set $S1575, $P1574
+ iseq $I1576, $S1575, "token"
+ unless $I1576, if_1572_end
+ new $P1577, "Integer"
+ assign $P1577, 1
+ find_lex $P1578, "%h"
+ unless_null $P1578, vivify_506
+ $P1578 = root_new ['parrot';'Hash']
+ store_lex "%h", $P1578
+ vivify_506:
+ set $P1578["r"], $P1577
+ if_1572_end:
+.annotate 'line', 576
+ find_lex $P1580, "$/"
+ unless_null $P1580, vivify_507
+ $P1580 = root_new ['parrot';'Hash']
+ vivify_507:
+ set $P1581, $P1580["sym"]
+ unless_null $P1581, vivify_508
+ new $P1581, "Undef"
+ vivify_508:
+ set $S1582, $P1581
+ iseq $I1583, $S1582, "rule"
+ unless $I1583, if_1579_end
+ new $P1584, "Integer"
+ assign $P1584, 1
+ find_lex $P1585, "%h"
+ unless_null $P1585, vivify_509
+ $P1585 = root_new ['parrot';'Hash']
+ store_lex "%h", $P1585
+ vivify_509:
+ set $P1585["r"], $P1584
+ new $P1586, "Integer"
+ assign $P1586, 1
+ find_lex $P1587, "%h"
+ unless_null $P1587, vivify_510
+ $P1587 = root_new ['parrot';'Hash']
+ store_lex "%h", $P1587
+ vivify_510:
+ set $P1587["s"], $P1586
+ if_1579_end:
+.annotate 'line', 577
+ find_lex $P1588, "@MODIFIERS"
+ find_lex $P1589, "%h"
+ $P1588."unshift"($P1589)
+.annotate 'line', 578
+
+ $P0 = find_lex '$name'
+ set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
+
+.annotate 'line', 582
+ get_global $P1590, "@BLOCK"
+ unless_null $P1590, vivify_511
+ $P1590 = root_new ['parrot';'ResizablePMCArray']
+ vivify_511:
+ set $P1591, $P1590[0]
+ unless_null $P1591, vivify_512
+ new $P1591, "Undef"
+ vivify_512:
+ $P1591."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.annotate 'line', 583
+ get_global $P1592, "@BLOCK"
+ unless_null $P1592, vivify_513
+ $P1592 = root_new ['parrot';'ResizablePMCArray']
+ vivify_513:
+ set $P1593, $P1592[0]
+ unless_null $P1593, vivify_514
+ new $P1593, "Undef"
+ vivify_514:
+ $P1593."symbol"("$/", "lexical" :named("scope"))
+.annotate 'line', 584
+ new $P1594, "Exception"
+ set $P1594['type'], .CONTROL_RETURN
+ new $P1595, "Integer"
+ assign $P1595, 0
+ setattribute $P1594, 'payload', $P1595
+ throw $P1594
+.annotate 'line', 573
+ .return ()
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "dotty" :subid("92_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1625
+.annotate 'line', 604
+ new $P1624, 'ExceptionHandler'
+ set_addr $P1624, control_1623
+ $P1624."handle_types"(.CONTROL_RETURN)
+ push_eh $P1624
+ .lex "self", self
+ .lex "$/", param_1625
+.annotate 'line', 605
+ new $P1626, "Undef"
+ .lex "$past", $P1626
+ find_lex $P1629, "$/"
+ unless_null $P1629, vivify_515
+ $P1629 = root_new ['parrot';'Hash']
+ vivify_515:
+ set $P1630, $P1629["args"]
+ unless_null $P1630, vivify_516
+ new $P1630, "Undef"
+ vivify_516:
+ if $P1630, if_1628
+ get_hll_global $P1635, ["PAST"], "Op"
+ find_lex $P1636, "$/"
+ $P1637 = $P1635."new"($P1636 :named("node"))
+ set $P1627, $P1637
+ goto if_1628_end
+ if_1628:
+ find_lex $P1631, "$/"
+ unless_null $P1631, vivify_517
+ $P1631 = root_new ['parrot';'Hash']
+ vivify_517:
+ set $P1632, $P1631["args"]
+ unless_null $P1632, vivify_518
+ $P1632 = root_new ['parrot';'ResizablePMCArray']
+ vivify_518:
+ set $P1633, $P1632[0]
+ unless_null $P1633, vivify_519
+ new $P1633, "Undef"
+ vivify_519:
+ $P1634 = $P1633."ast"()
+ set $P1627, $P1634
+ if_1628_end:
+ store_lex "$past", $P1627
+.annotate 'line', 606
+ find_lex $P1638, "$past"
+ find_lex $P1641, "$/"
+ unless_null $P1641, vivify_520
+ $P1641 = root_new ['parrot';'Hash']
+ vivify_520:
+ set $P1642, $P1641["quote"]
+ unless_null $P1642, vivify_521
+ new $P1642, "Undef"
+ vivify_521:
+ if $P1642, if_1640
+ find_lex $P1646, "$/"
+ unless_null $P1646, vivify_522
+ $P1646 = root_new ['parrot';'Hash']
+ vivify_522:
+ set $P1647, $P1646["longname"]
+ unless_null $P1647, vivify_523
+ new $P1647, "Undef"
+ vivify_523:
+ set $S1648, $P1647
+ new $P1639, 'String'
+ set $P1639, $S1648
+ goto if_1640_end
+ if_1640:
+ find_lex $P1643, "$/"
+ unless_null $P1643, vivify_524
+ $P1643 = root_new ['parrot';'Hash']
+ vivify_524:
+ set $P1644, $P1643["quote"]
+ unless_null $P1644, vivify_525
+ new $P1644, "Undef"
+ vivify_525:
+ $P1645 = $P1644."ast"()
+ set $P1639, $P1645
+ if_1640_end:
+ $P1638."name"($P1639)
+.annotate 'line', 607
+ find_lex $P1649, "$past"
+ $P1649."pasttype"("callmethod")
+.annotate 'line', 608
+ find_lex $P1650, "$/"
+ find_lex $P1651, "$past"
+ $P1652 = $P1650."!make"($P1651)
+.annotate 'line', 604
+ .return ($P1652)
+ control_1623:
.local pmc exception
.get_results (exception)
- getattribute $P1606, exception, "payload"
- .return ($P1606)
+ getattribute $P1653, exception, "payload"
+ .return ($P1653)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<pir::op>" :subid("89_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1610
-.annotate 'line', 603
- new $P1609, 'ExceptionHandler'
- set_addr $P1609, control_1608
- $P1609."handle_types"(57)
- push_eh $P1609
- .lex "self", self
- .lex "$/", param_1610
-.annotate 'line', 604
- new $P1611, "Undef"
- .lex "$past", $P1611
-.annotate 'line', 605
- new $P1612, "Undef"
- .lex "$pirop", $P1612
-.annotate 'line', 604
- find_lex $P1615, "$/"
- unless_null $P1615, vivify_500
- $P1615 = root_new ['parrot';'Hash']
- vivify_500:
- set $P1616, $P1615["args"]
- unless_null $P1616, vivify_501
- new $P1616, "Undef"
- vivify_501:
- if $P1616, if_1614
- get_hll_global $P1621, ["PAST"], "Op"
- find_lex $P1622, "$/"
- $P1623 = $P1621."new"($P1622 :named("node"))
- set $P1613, $P1623
- goto if_1614_end
- if_1614:
- find_lex $P1617, "$/"
- unless_null $P1617, vivify_502
- $P1617 = root_new ['parrot';'Hash']
- vivify_502:
- set $P1618, $P1617["args"]
- unless_null $P1618, vivify_503
- $P1618 = root_new ['parrot';'ResizablePMCArray']
- vivify_503:
- set $P1619, $P1618[0]
- unless_null $P1619, vivify_504
- new $P1619, "Undef"
- vivify_504:
- $P1620 = $P1619."ast"()
- set $P1613, $P1620
- if_1614_end:
- store_lex "$past", $P1613
-.annotate 'line', 605
- find_lex $P1624, "$/"
- unless_null $P1624, vivify_505
- $P1624 = root_new ['parrot';'Hash']
- vivify_505:
- set $P1625, $P1624["op"]
- unless_null $P1625, vivify_506
- new $P1625, "Undef"
- vivify_506:
- set $S1626, $P1625
- new $P1627, 'String'
- set $P1627, $S1626
- store_lex "$pirop", $P1627
-.annotate 'line', 606
-
- $P0 = find_lex '$pirop'
- $S0 = $P0
- $P0 = split '__', $S0
- $S0 = join ' ', $P0
- $P1628 = box $S0
-
- store_lex "$pirop", $P1628
+.include "except_types.pasm"
+.sub "term:sym<self>" :subid("93_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1657
.annotate 'line', 613
- find_lex $P1629, "$past"
- find_lex $P1630, "$pirop"
- $P1629."pirop"($P1630)
+ new $P1656, 'ExceptionHandler'
+ set_addr $P1656, control_1655
+ $P1656."handle_types"(.CONTROL_RETURN)
+ push_eh $P1656
+ .lex "self", self
+ .lex "$/", param_1657
.annotate 'line', 614
- find_lex $P1631, "$past"
- $P1631."pasttype"("pirop")
-.annotate 'line', 615
- find_lex $P1632, "$/"
- find_lex $P1633, "$past"
- $P1634 = $P1632."!make"($P1633)
-.annotate 'line', 603
- .return ($P1634)
- control_1608:
+ find_lex $P1658, "$/"
+ get_hll_global $P1659, ["PAST"], "Var"
+ $P1660 = $P1659."new"("self" :named("name"))
+ $P1661 = $P1658."!make"($P1660)
+.annotate 'line', 613
+ .return ($P1661)
+ control_1655:
.local pmc exception
.get_results (exception)
- getattribute $P1635, exception, "payload"
- .return ($P1635)
+ getattribute $P1662, exception, "payload"
+ .return ($P1662)
.end
.namespace ["NQP";"Actions"]
-.sub "args" :subid("90_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1639
-.annotate 'line', 618
- new $P1638, 'ExceptionHandler'
- set_addr $P1638, control_1637
- $P1638."handle_types"(57)
- push_eh $P1638
+.include "except_types.pasm"
+.sub "term:sym<identifier>" :subid("94_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1666
+.annotate 'line', 617
+ new $P1665, 'ExceptionHandler'
+ set_addr $P1665, control_1664
+ $P1665."handle_types"(.CONTROL_RETURN)
+ push_eh $P1665
.lex "self", self
- .lex "$/", param_1639
- find_lex $P1640, "$/"
- find_lex $P1641, "$/"
- unless_null $P1641, vivify_507
- $P1641 = root_new ['parrot';'Hash']
- vivify_507:
- set $P1642, $P1641["arglist"]
- unless_null $P1642, vivify_508
- new $P1642, "Undef"
- vivify_508:
- $P1643 = $P1642."ast"()
- $P1644 = $P1640."!make"($P1643)
- .return ($P1644)
- control_1637:
+ .lex "$/", param_1666
+.annotate 'line', 618
+ new $P1667, "Undef"
+ .lex "$past", $P1667
+ find_lex $P1668, "$/"
+ unless_null $P1668, vivify_526
+ $P1668 = root_new ['parrot';'Hash']
+ vivify_526:
+ set $P1669, $P1668["args"]
+ unless_null $P1669, vivify_527
+ new $P1669, "Undef"
+ vivify_527:
+ $P1670 = $P1669."ast"()
+ store_lex "$past", $P1670
+.annotate 'line', 619
+ find_lex $P1671, "$past"
+ find_lex $P1672, "$/"
+ unless_null $P1672, vivify_528
+ $P1672 = root_new ['parrot';'Hash']
+ vivify_528:
+ set $P1673, $P1672["identifier"]
+ unless_null $P1673, vivify_529
+ new $P1673, "Undef"
+ vivify_529:
+ set $S1674, $P1673
+ $P1671."name"($S1674)
+.annotate 'line', 620
+ find_lex $P1675, "$/"
+ find_lex $P1676, "$past"
+ $P1677 = $P1675."!make"($P1676)
+.annotate 'line', 617
+ .return ($P1677)
+ control_1664:
.local pmc exception
.get_results (exception)
- getattribute $P1645, exception, "payload"
- .return ($P1645)
+ getattribute $P1678, exception, "payload"
+ .return ($P1678)
.end
.namespace ["NQP";"Actions"]
-.sub "arglist" :subid("91_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1649
-.annotate 'line', 620
- .const 'Sub' $P1660 = "92_1274022903.56472"
- capture_lex $P1660
- new $P1648, 'ExceptionHandler'
- set_addr $P1648, control_1647
- $P1648."handle_types"(57)
- push_eh $P1648
- .lex "self", self
- .lex "$/", param_1649
-.annotate 'line', 621
- new $P1650, "Undef"
- .lex "$past", $P1650
+.include "except_types.pasm"
+.sub "term:sym<name>" :subid("95_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1682
+.annotate 'line', 623
+ new $P1681, 'ExceptionHandler'
+ set_addr $P1681, control_1680
+ $P1681."handle_types"(.CONTROL_RETURN)
+ push_eh $P1681
+ .lex "self", self
+ .lex "$/", param_1682
+.annotate 'line', 624
+ $P1683 = root_new ['parrot';'ResizablePMCArray']
+ .lex "@ns", $P1683
+.annotate 'line', 625
+ new $P1684, "Undef"
+ .lex "$name", $P1684
+.annotate 'line', 627
+ new $P1685, "Undef"
+ .lex "$var", $P1685
.annotate 'line', 629
- new $P1651, "Undef"
- .lex "$i", $P1651
-.annotate 'line', 630
- new $P1652, "Undef"
- .lex "$n", $P1652
-.annotate 'line', 621
- get_hll_global $P1653, ["PAST"], "Op"
- find_lex $P1654, "$/"
- $P1655 = $P1653."new"("call" :named("pasttype"), $P1654 :named("node"))
- store_lex "$past", $P1655
-.annotate 'line', 622
- find_lex $P1657, "$/"
- unless_null $P1657, vivify_509
- $P1657 = root_new ['parrot';'Hash']
- vivify_509:
- set $P1658, $P1657["EXPR"]
- unless_null $P1658, vivify_510
- new $P1658, "Undef"
- vivify_510:
- unless $P1658, if_1656_end
- .const 'Sub' $P1660 = "92_1274022903.56472"
- capture_lex $P1660
- $P1660()
- if_1656_end:
+ new $P1686, "Undef"
+ .lex "$past", $P1686
+.annotate 'line', 624
+ find_lex $P1687, "$/"
+ unless_null $P1687, vivify_530
+ $P1687 = root_new ['parrot';'Hash']
+ vivify_530:
+ set $P1688, $P1687["name"]
+ unless_null $P1688, vivify_531
+ $P1688 = root_new ['parrot';'Hash']
+ vivify_531:
+ set $P1689, $P1688["identifier"]
+ unless_null $P1689, vivify_532
+ new $P1689, "Undef"
+ vivify_532:
+ clone $P1690, $P1689
+ store_lex "@ns", $P1690
+.annotate 'line', 625
+ find_lex $P1691, "@ns"
+ $P1692 = $P1691."pop"()
+ store_lex "$name", $P1692
+.annotate 'line', 626
+ find_lex $P1696, "@ns"
+ if $P1696, if_1695
+ set $P1694, $P1696
+ goto if_1695_end
+ if_1695:
+ find_lex $P1697, "@ns"
+ unless_null $P1697, vivify_533
+ $P1697 = root_new ['parrot';'ResizablePMCArray']
+ vivify_533:
+ set $P1698, $P1697[0]
+ unless_null $P1698, vivify_534
+ new $P1698, "Undef"
+ vivify_534:
+ set $S1699, $P1698
+ iseq $I1700, $S1699, "GLOBAL"
+ new $P1694, 'Integer'
+ set $P1694, $I1700
+ if_1695_end:
+ unless $P1694, if_1693_end
+ find_lex $P1701, "@ns"
+ $P1701."shift"()
+ if_1693_end:
+.annotate 'line', 628
+ get_hll_global $P1702, ["PAST"], "Var"
+ find_lex $P1703, "$name"
+ set $S1704, $P1703
+ find_lex $P1705, "@ns"
+ $P1706 = $P1702."new"($S1704 :named("name"), $P1705 :named("namespace"), "package" :named("scope"))
+ store_lex "$var", $P1706
.annotate 'line', 629
- new $P1692, "Integer"
- assign $P1692, 0
- store_lex "$i", $P1692
+ find_lex $P1707, "$var"
+ store_lex "$past", $P1707
.annotate 'line', 630
- find_lex $P1693, "$past"
- $P1694 = $P1693."list"()
- set $N1695, $P1694
- new $P1696, 'Float'
- set $P1696, $N1695
- store_lex "$n", $P1696
+ find_lex $P1709, "$/"
+ unless_null $P1709, vivify_535
+ $P1709 = root_new ['parrot';'Hash']
+ vivify_535:
+ set $P1710, $P1709["args"]
+ unless_null $P1710, vivify_536
+ new $P1710, "Undef"
+ vivify_536:
+ unless $P1710, if_1708_end
.annotate 'line', 631
- new $P1744, 'ExceptionHandler'
- set_addr $P1744, loop1743_handler
- $P1744."handle_types"(64, 66, 65)
- push_eh $P1744
- loop1743_test:
- find_lex $P1697, "$i"
- set $N1698, $P1697
- find_lex $P1699, "$n"
- set $N1700, $P1699
- islt $I1701, $N1698, $N1700
- unless $I1701, loop1743_done
- loop1743_redo:
-.annotate 'line', 632
- find_lex $P1703, "$i"
- set $I1704, $P1703
- find_lex $P1705, "$past"
- unless_null $P1705, vivify_514
- $P1705 = root_new ['parrot';'ResizablePMCArray']
- vivify_514:
- set $P1706, $P1705[$I1704]
- unless_null $P1706, vivify_515
- new $P1706, "Undef"
- vivify_515:
- $S1707 = $P1706."name"()
- iseq $I1708, $S1707, "&prefix:<|>"
- unless $I1708, if_1702_end
-.annotate 'line', 633
- find_lex $P1709, "$i"
- set $I1710, $P1709
- find_lex $P1711, "$past"
- unless_null $P1711, vivify_516
- $P1711 = root_new ['parrot';'ResizablePMCArray']
- vivify_516:
- set $P1712, $P1711[$I1710]
- unless_null $P1712, vivify_517
+ find_lex $P1711, "$/"
+ unless_null $P1711, vivify_537
+ $P1711 = root_new ['parrot';'Hash']
+ vivify_537:
+ set $P1712, $P1711["args"]
+ unless_null $P1712, vivify_538
$P1712 = root_new ['parrot';'ResizablePMCArray']
- vivify_517:
+ vivify_538:
set $P1713, $P1712[0]
- unless_null $P1713, vivify_518
+ unless_null $P1713, vivify_539
new $P1713, "Undef"
- vivify_518:
- find_lex $P1714, "$i"
- set $I1715, $P1714
- find_lex $P1716, "$past"
- unless_null $P1716, vivify_519
- $P1716 = root_new ['parrot';'ResizablePMCArray']
- store_lex "$past", $P1716
- vivify_519:
- set $P1716[$I1715], $P1713
-.annotate 'line', 634
- find_lex $P1717, "$i"
- set $I1718, $P1717
- find_lex $P1719, "$past"
- unless_null $P1719, vivify_520
- $P1719 = root_new ['parrot';'ResizablePMCArray']
- vivify_520:
- set $P1720, $P1719[$I1718]
- unless_null $P1720, vivify_521
- new $P1720, "Undef"
- vivify_521:
- $P1720."flat"(1)
-.annotate 'line', 635
- find_lex $P1724, "$i"
- set $I1725, $P1724
- find_lex $P1726, "$past"
- unless_null $P1726, vivify_522
- $P1726 = root_new ['parrot';'ResizablePMCArray']
- vivify_522:
- set $P1727, $P1726[$I1725]
- unless_null $P1727, vivify_523
- new $P1727, "Undef"
- vivify_523:
- get_hll_global $P1728, ["PAST"], "Val"
- $P1729 = $P1727."isa"($P1728)
- if $P1729, if_1723
- set $P1722, $P1729
- goto if_1723_end
- if_1723:
-.annotate 'line', 636
- find_lex $P1730, "$i"
- set $I1731, $P1730
- find_lex $P1732, "$past"
- unless_null $P1732, vivify_524
- $P1732 = root_new ['parrot';'ResizablePMCArray']
- vivify_524:
- set $P1733, $P1732[$I1731]
- unless_null $P1733, vivify_525
- new $P1733, "Undef"
- vivify_525:
- $S1734 = $P1733."name"()
- substr $S1735, $S1734, 0, 1
- iseq $I1736, $S1735, "%"
- new $P1722, 'Integer'
- set $P1722, $I1736
- if_1723_end:
- unless $P1722, if_1721_end
-.annotate 'line', 637
- find_lex $P1737, "$i"
- set $I1738, $P1737
- find_lex $P1739, "$past"
- unless_null $P1739, vivify_526
- $P1739 = root_new ['parrot';'ResizablePMCArray']
- vivify_526:
- set $P1740, $P1739[$I1738]
- unless_null $P1740, vivify_527
- new $P1740, "Undef"
- vivify_527:
- $P1740."named"(1)
- if_1721_end:
- if_1702_end:
+ vivify_539:
+ $P1714 = $P1713."ast"()
+ store_lex "$past", $P1714
.annotate 'line', 632
- find_lex $P1741, "$i"
- clone $P1742, $P1741
- inc $P1741
- loop1743_next:
-.annotate 'line', 631
- goto loop1743_test
- loop1743_handler:
+ find_lex $P1715, "$past"
+ find_lex $P1716, "$var"
+ $P1715."unshift"($P1716)
+ if_1708_end:
+.annotate 'line', 634
+ find_lex $P1717, "$/"
+ find_lex $P1718, "$past"
+ $P1719 = $P1717."!make"($P1718)
+.annotate 'line', 623
+ .return ($P1719)
+ control_1680:
.local pmc exception
.get_results (exception)
- getattribute $P1745, exception, 'type'
- eq $P1745, 64, loop1743_next
- eq $P1745, 66, loop1743_redo
- loop1743_done:
- pop_eh
-.annotate 'line', 642
+ getattribute $P1720, exception, "payload"
+ .return ($P1720)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "term:sym<pir::op>" :subid("96_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1724
+.annotate 'line', 637
+ new $P1723, 'ExceptionHandler'
+ set_addr $P1723, control_1722
+ $P1723."handle_types"(.CONTROL_RETURN)
+ push_eh $P1723
+ .lex "self", self
+ .lex "$/", param_1724
+.annotate 'line', 638
+ new $P1725, "Undef"
+ .lex "$past", $P1725
+.annotate 'line', 639
+ new $P1726, "Undef"
+ .lex "$pirop", $P1726
+.annotate 'line', 638
+ find_lex $P1729, "$/"
+ unless_null $P1729, vivify_540
+ $P1729 = root_new ['parrot';'Hash']
+ vivify_540:
+ set $P1730, $P1729["args"]
+ unless_null $P1730, vivify_541
+ new $P1730, "Undef"
+ vivify_541:
+ if $P1730, if_1728
+ get_hll_global $P1735, ["PAST"], "Op"
+ find_lex $P1736, "$/"
+ $P1737 = $P1735."new"($P1736 :named("node"))
+ set $P1727, $P1737
+ goto if_1728_end
+ if_1728:
+ find_lex $P1731, "$/"
+ unless_null $P1731, vivify_542
+ $P1731 = root_new ['parrot';'Hash']
+ vivify_542:
+ set $P1732, $P1731["args"]
+ unless_null $P1732, vivify_543
+ $P1732 = root_new ['parrot';'ResizablePMCArray']
+ vivify_543:
+ set $P1733, $P1732[0]
+ unless_null $P1733, vivify_544
+ new $P1733, "Undef"
+ vivify_544:
+ $P1734 = $P1733."ast"()
+ set $P1727, $P1734
+ if_1728_end:
+ store_lex "$past", $P1727
+.annotate 'line', 639
+ find_lex $P1738, "$/"
+ unless_null $P1738, vivify_545
+ $P1738 = root_new ['parrot';'Hash']
+ vivify_545:
+ set $P1739, $P1738["op"]
+ unless_null $P1739, vivify_546
+ new $P1739, "Undef"
+ vivify_546:
+ set $S1740, $P1739
+ new $P1741, 'String'
+ set $P1741, $S1740
+ store_lex "$pirop", $P1741
+.annotate 'line', 640
+
+ $P0 = find_lex '$pirop'
+ $S0 = $P0
+ $P0 = split '__', $S0
+ $S0 = join ' ', $P0
+ $P1742 = box $S0
+
+ store_lex "$pirop", $P1742
+.annotate 'line', 647
+ find_lex $P1743, "$past"
+ find_lex $P1744, "$pirop"
+ $P1743."pirop"($P1744)
+.annotate 'line', 648
+ find_lex $P1745, "$past"
+ $P1745."pasttype"("pirop")
+.annotate 'line', 649
find_lex $P1746, "$/"
find_lex $P1747, "$past"
$P1748 = $P1746."!make"($P1747)
-.annotate 'line', 620
+.annotate 'line', 637
.return ($P1748)
- control_1647:
+ control_1722:
.local pmc exception
.get_results (exception)
getattribute $P1749, exception, "payload"
@@ -21620,114 +22851,25 @@
.namespace ["NQP";"Actions"]
-.sub "_block1659" :anon :subid("92_1274022903.56472") :outer("91_1274022903.56472")
-.annotate 'line', 622
- .const 'Sub' $P1681 = "93_1274022903.56472"
- capture_lex $P1681
-.annotate 'line', 623
- new $P1661, "Undef"
- .lex "$expr", $P1661
- find_lex $P1662, "$/"
- unless_null $P1662, vivify_511
- $P1662 = root_new ['parrot';'Hash']
- vivify_511:
- set $P1663, $P1662["EXPR"]
- unless_null $P1663, vivify_512
- new $P1663, "Undef"
- vivify_512:
- $P1664 = $P1663."ast"()
- store_lex "$expr", $P1664
-.annotate 'line', 624
- find_lex $P1669, "$expr"
- $S1670 = $P1669."name"()
- iseq $I1671, $S1670, "&infix:<,>"
- if $I1671, if_1668
- new $P1667, 'Integer'
- set $P1667, $I1671
- goto if_1668_end
- if_1668:
- find_lex $P1672, "$expr"
- $P1673 = $P1672."named"()
- isfalse $I1674, $P1673
- new $P1667, 'Integer'
- set $P1667, $I1674
- if_1668_end:
- if $P1667, if_1666
-.annotate 'line', 627
- find_lex $P1689, "$past"
- find_lex $P1690, "$expr"
- $P1691 = $P1689."push"($P1690)
- set $P1665, $P1691
-.annotate 'line', 624
- goto if_1666_end
- if_1666:
-.annotate 'line', 625
- find_lex $P1676, "$expr"
- $P1677 = $P1676."list"()
- defined $I1678, $P1677
- unless $I1678, for_undef_513
- iter $P1675, $P1677
- new $P1687, 'ExceptionHandler'
- set_addr $P1687, loop1686_handler
- $P1687."handle_types"(64, 66, 65)
- push_eh $P1687
- loop1686_test:
- unless $P1675, loop1686_done
- shift $P1679, $P1675
- loop1686_redo:
- .const 'Sub' $P1681 = "93_1274022903.56472"
- capture_lex $P1681
- $P1681($P1679)
- loop1686_next:
- goto loop1686_test
- loop1686_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1688, exception, 'type'
- eq $P1688, 64, loop1686_next
- eq $P1688, 66, loop1686_redo
- loop1686_done:
- pop_eh
- for_undef_513:
-.annotate 'line', 624
- set $P1665, $P1675
- if_1666_end:
-.annotate 'line', 622
- .return ($P1665)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "_block1680" :anon :subid("93_1274022903.56472") :outer("92_1274022903.56472")
- .param pmc param_1682
-.annotate 'line', 625
- .lex "$_", param_1682
- find_lex $P1683, "$past"
- find_lex $P1684, "$_"
- $P1685 = $P1683."push"($P1684)
- .return ($P1685)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "term:sym<value>" :subid("94_1274022903.56472") :method :outer("11_1274022903.56472")
+.include "except_types.pasm"
+.sub "args" :subid("97_1275811497.55064") :method :outer("11_1275811497.55064")
.param pmc param_1753
-.annotate 'line', 646
+.annotate 'line', 652
new $P1752, 'ExceptionHandler'
set_addr $P1752, control_1751
- $P1752."handle_types"(57)
+ $P1752."handle_types"(.CONTROL_RETURN)
push_eh $P1752
.lex "self", self
.lex "$/", param_1753
find_lex $P1754, "$/"
find_lex $P1755, "$/"
- unless_null $P1755, vivify_528
+ unless_null $P1755, vivify_547
$P1755 = root_new ['parrot';'Hash']
- vivify_528:
- set $P1756, $P1755["value"]
- unless_null $P1756, vivify_529
+ vivify_547:
+ set $P1756, $P1755["arglist"]
+ unless_null $P1756, vivify_548
new $P1756, "Undef"
- vivify_529:
+ vivify_548:
$P1757 = $P1756."ast"()
$P1758 = $P1754."!make"($P1757)
.return ($P1758)
@@ -21740,683 +22882,667 @@
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<( )>" :subid("95_1274022903.56472") :method :outer("11_1274022903.56472")
+.include "except_types.pasm"
+.sub "arglist" :subid("98_1275811497.55064") :method :outer("11_1275811497.55064")
.param pmc param_1763
-.annotate 'line', 648
+.annotate 'line', 654
+ .const 'Sub' $P1774 = "99_1275811497.55064"
+ capture_lex $P1774
new $P1762, 'ExceptionHandler'
set_addr $P1762, control_1761
- $P1762."handle_types"(57)
+ $P1762."handle_types"(.CONTROL_RETURN)
push_eh $P1762
.lex "self", self
.lex "$/", param_1763
-.annotate 'line', 649
- find_lex $P1764, "$/"
-.annotate 'line', 650
- find_lex $P1767, "$/"
- unless_null $P1767, vivify_530
- $P1767 = root_new ['parrot';'Hash']
- vivify_530:
- set $P1768, $P1767["EXPR"]
- unless_null $P1768, vivify_531
- new $P1768, "Undef"
- vivify_531:
- if $P1768, if_1766
-.annotate 'line', 651
- get_hll_global $P1773, ["PAST"], "Op"
- find_lex $P1774, "$/"
- $P1775 = $P1773."new"("list" :named("pasttype"), $P1774 :named("node"))
- set $P1765, $P1775
-.annotate 'line', 650
- goto if_1766_end
- if_1766:
- find_lex $P1769, "$/"
- unless_null $P1769, vivify_532
- $P1769 = root_new ['parrot';'Hash']
- vivify_532:
- set $P1770, $P1769["EXPR"]
- unless_null $P1770, vivify_533
- $P1770 = root_new ['parrot';'ResizablePMCArray']
- vivify_533:
- set $P1771, $P1770[0]
- unless_null $P1771, vivify_534
- new $P1771, "Undef"
- vivify_534:
- $P1772 = $P1771."ast"()
- set $P1765, $P1772
- if_1766_end:
- $P1776 = $P1764."!make"($P1765)
-.annotate 'line', 648
- .return ($P1776)
- control_1761:
- .local pmc exception
- .get_results (exception)
- getattribute $P1777, exception, "payload"
- .return ($P1777)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<[ ]>" :subid("96_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1781
-.annotate 'line', 654
- new $P1780, 'ExceptionHandler'
- set_addr $P1780, control_1779
- $P1780."handle_types"(57)
- push_eh $P1780
- .lex "self", self
- .lex "$/", param_1781
.annotate 'line', 655
- new $P1782, "Undef"
- .lex "$past", $P1782
-.annotate 'line', 654
- find_lex $P1783, "$past"
+ new $P1764, "Undef"
+ .lex "$past", $P1764
+.annotate 'line', 663
+ new $P1765, "Undef"
+ .lex "$i", $P1765
+.annotate 'line', 664
+ new $P1766, "Undef"
+ .lex "$n", $P1766
+.annotate 'line', 655
+ get_hll_global $P1767, ["PAST"], "Op"
+ find_lex $P1768, "$/"
+ $P1769 = $P1767."new"("call" :named("pasttype"), $P1768 :named("node"))
+ store_lex "$past", $P1769
.annotate 'line', 656
- find_lex $P1785, "$/"
- unless_null $P1785, vivify_535
- $P1785 = root_new ['parrot';'Hash']
- vivify_535:
- set $P1786, $P1785["EXPR"]
- unless_null $P1786, vivify_536
- new $P1786, "Undef"
- vivify_536:
- if $P1786, if_1784
+ find_lex $P1771, "$/"
+ unless_null $P1771, vivify_549
+ $P1771 = root_new ['parrot';'Hash']
+ vivify_549:
+ set $P1772, $P1771["EXPR"]
+ unless_null $P1772, vivify_550
+ new $P1772, "Undef"
+ vivify_550:
+ unless $P1772, if_1770_end
+ .const 'Sub' $P1774 = "99_1275811497.55064"
+ capture_lex $P1774
+ $P1774()
+ if_1770_end:
.annotate 'line', 663
- get_hll_global $P1798, ["PAST"], "Op"
- $P1799 = $P1798."new"("list" :named("pasttype"))
- store_lex "$past", $P1799
-.annotate 'line', 662
- goto if_1784_end
- if_1784:
-.annotate 'line', 657
- find_lex $P1787, "$/"
- unless_null $P1787, vivify_537
- $P1787 = root_new ['parrot';'Hash']
- vivify_537:
- set $P1788, $P1787["EXPR"]
- unless_null $P1788, vivify_538
- $P1788 = root_new ['parrot';'ResizablePMCArray']
- vivify_538:
- set $P1789, $P1788[0]
- unless_null $P1789, vivify_539
- new $P1789, "Undef"
- vivify_539:
- $P1790 = $P1789."ast"()
- store_lex "$past", $P1790
-.annotate 'line', 658
- find_lex $P1792, "$past"
- $S1793 = $P1792."name"()
- isne $I1794, $S1793, "&infix:<,>"
- unless $I1794, if_1791_end
-.annotate 'line', 659
- get_hll_global $P1795, ["PAST"], "Op"
- find_lex $P1796, "$past"
- $P1797 = $P1795."new"($P1796, "list" :named("pasttype"))
- store_lex "$past", $P1797
- if_1791_end:
- if_1784_end:
+ new $P1806, "Integer"
+ assign $P1806, 0
+ store_lex "$i", $P1806
+.annotate 'line', 664
+ find_lex $P1807, "$past"
+ $P1808 = $P1807."list"()
+ set $N1809, $P1808
+ new $P1810, 'Float'
+ set $P1810, $N1809
+ store_lex "$n", $P1810
.annotate 'line', 665
- find_lex $P1800, "$past"
- $P1800."name"("&circumfix:<[ ]>")
+ new $P1858, 'ExceptionHandler'
+ set_addr $P1858, loop1857_handler
+ $P1858."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1858
+ loop1857_test:
+ find_lex $P1811, "$i"
+ set $N1812, $P1811
+ find_lex $P1813, "$n"
+ set $N1814, $P1813
+ islt $I1815, $N1812, $N1814
+ unless $I1815, loop1857_done
+ loop1857_redo:
.annotate 'line', 666
- find_lex $P1801, "$/"
- find_lex $P1802, "$past"
- $P1803 = $P1801."!make"($P1802)
-.annotate 'line', 654
- .return ($P1803)
- control_1779:
+ find_lex $P1817, "$i"
+ set $I1818, $P1817
+ find_lex $P1819, "$past"
+ unless_null $P1819, vivify_554
+ $P1819 = root_new ['parrot';'ResizablePMCArray']
+ vivify_554:
+ set $P1820, $P1819[$I1818]
+ unless_null $P1820, vivify_555
+ new $P1820, "Undef"
+ vivify_555:
+ $S1821 = $P1820."name"()
+ iseq $I1822, $S1821, "&prefix:<|>"
+ unless $I1822, if_1816_end
+.annotate 'line', 667
+ find_lex $P1823, "$i"
+ set $I1824, $P1823
+ find_lex $P1825, "$past"
+ unless_null $P1825, vivify_556
+ $P1825 = root_new ['parrot';'ResizablePMCArray']
+ vivify_556:
+ set $P1826, $P1825[$I1824]
+ unless_null $P1826, vivify_557
+ $P1826 = root_new ['parrot';'ResizablePMCArray']
+ vivify_557:
+ set $P1827, $P1826[0]
+ unless_null $P1827, vivify_558
+ new $P1827, "Undef"
+ vivify_558:
+ find_lex $P1828, "$i"
+ set $I1829, $P1828
+ find_lex $P1830, "$past"
+ unless_null $P1830, vivify_559
+ $P1830 = root_new ['parrot';'ResizablePMCArray']
+ store_lex "$past", $P1830
+ vivify_559:
+ set $P1830[$I1829], $P1827
+.annotate 'line', 668
+ find_lex $P1831, "$i"
+ set $I1832, $P1831
+ find_lex $P1833, "$past"
+ unless_null $P1833, vivify_560
+ $P1833 = root_new ['parrot';'ResizablePMCArray']
+ vivify_560:
+ set $P1834, $P1833[$I1832]
+ unless_null $P1834, vivify_561
+ new $P1834, "Undef"
+ vivify_561:
+ $P1834."flat"(1)
+.annotate 'line', 669
+ find_lex $P1838, "$i"
+ set $I1839, $P1838
+ find_lex $P1840, "$past"
+ unless_null $P1840, vivify_562
+ $P1840 = root_new ['parrot';'ResizablePMCArray']
+ vivify_562:
+ set $P1841, $P1840[$I1839]
+ unless_null $P1841, vivify_563
+ new $P1841, "Undef"
+ vivify_563:
+ get_hll_global $P1842, ["PAST"], "Val"
+ $P1843 = $P1841."isa"($P1842)
+ if $P1843, if_1837
+ set $P1836, $P1843
+ goto if_1837_end
+ if_1837:
+.annotate 'line', 670
+ find_lex $P1844, "$i"
+ set $I1845, $P1844
+ find_lex $P1846, "$past"
+ unless_null $P1846, vivify_564
+ $P1846 = root_new ['parrot';'ResizablePMCArray']
+ vivify_564:
+ set $P1847, $P1846[$I1845]
+ unless_null $P1847, vivify_565
+ new $P1847, "Undef"
+ vivify_565:
+ $S1848 = $P1847."name"()
+ substr $S1849, $S1848, 0, 1
+ iseq $I1850, $S1849, "%"
+ new $P1836, 'Integer'
+ set $P1836, $I1850
+ if_1837_end:
+ unless $P1836, if_1835_end
+.annotate 'line', 671
+ find_lex $P1851, "$i"
+ set $I1852, $P1851
+ find_lex $P1853, "$past"
+ unless_null $P1853, vivify_566
+ $P1853 = root_new ['parrot';'ResizablePMCArray']
+ vivify_566:
+ set $P1854, $P1853[$I1852]
+ unless_null $P1854, vivify_567
+ new $P1854, "Undef"
+ vivify_567:
+ $P1854."named"(1)
+ if_1835_end:
+ if_1816_end:
+.annotate 'line', 666
+ find_lex $P1855, "$i"
+ clone $P1856, $P1855
+ inc $P1855
+ loop1857_next:
+.annotate 'line', 665
+ goto loop1857_test
+ loop1857_handler:
.local pmc exception
.get_results (exception)
- getattribute $P1804, exception, "payload"
- .return ($P1804)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<ang>" :subid("97_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1808
-.annotate 'line', 669
- new $P1807, 'ExceptionHandler'
- set_addr $P1807, control_1806
- $P1807."handle_types"(57)
- push_eh $P1807
- .lex "self", self
- .lex "$/", param_1808
- find_lex $P1809, "$/"
- find_lex $P1810, "$/"
- unless_null $P1810, vivify_540
- $P1810 = root_new ['parrot';'Hash']
- vivify_540:
- set $P1811, $P1810["quote_EXPR"]
- unless_null $P1811, vivify_541
- new $P1811, "Undef"
- vivify_541:
- $P1812 = $P1811."ast"()
- $P1813 = $P1809."!make"($P1812)
- .return ($P1813)
- control_1806:
+ getattribute $P1859, exception, 'type'
+ eq $P1859, .CONTROL_LOOP_NEXT, loop1857_next
+ eq $P1859, .CONTROL_LOOP_REDO, loop1857_redo
+ loop1857_done:
+ pop_eh
+.annotate 'line', 676
+ find_lex $P1860, "$/"
+ find_lex $P1861, "$past"
+ $P1862 = $P1860."!make"($P1861)
+.annotate 'line', 654
+ .return ($P1862)
+ control_1761:
.local pmc exception
.get_results (exception)
- getattribute $P1814, exception, "payload"
- .return ($P1814)
+ getattribute $P1863, exception, "payload"
+ .return ($P1863)
.end
.namespace ["NQP";"Actions"]
-.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("98_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1818
-.annotate 'line', 670
- new $P1817, 'ExceptionHandler'
- set_addr $P1817, control_1816
- $P1817."handle_types"(57)
- push_eh $P1817
- .lex "self", self
- .lex "$/", param_1818
- find_lex $P1819, "$/"
- find_lex $P1820, "$/"
- unless_null $P1820, vivify_542
- $P1820 = root_new ['parrot';'Hash']
- vivify_542:
- set $P1821, $P1820["quote_EXPR"]
- unless_null $P1821, vivify_543
- new $P1821, "Undef"
- vivify_543:
- $P1822 = $P1821."ast"()
- $P1823 = $P1819."!make"($P1822)
- .return ($P1823)
- control_1816:
- .local pmc exception
- .get_results (exception)
- getattribute $P1824, exception, "payload"
- .return ($P1824)
+.include "except_types.pasm"
+.sub "_block1773" :anon :subid("99_1275811497.55064") :outer("98_1275811497.55064")
+.annotate 'line', 656
+ .const 'Sub' $P1795 = "100_1275811497.55064"
+ capture_lex $P1795
+.annotate 'line', 657
+ new $P1775, "Undef"
+ .lex "$expr", $P1775
+ find_lex $P1776, "$/"
+ unless_null $P1776, vivify_551
+ $P1776 = root_new ['parrot';'Hash']
+ vivify_551:
+ set $P1777, $P1776["EXPR"]
+ unless_null $P1777, vivify_552
+ new $P1777, "Undef"
+ vivify_552:
+ $P1778 = $P1777."ast"()
+ store_lex "$expr", $P1778
+.annotate 'line', 658
+ find_lex $P1783, "$expr"
+ $S1784 = $P1783."name"()
+ iseq $I1785, $S1784, "&infix:<,>"
+ if $I1785, if_1782
+ new $P1781, 'Integer'
+ set $P1781, $I1785
+ goto if_1782_end
+ if_1782:
+ find_lex $P1786, "$expr"
+ $P1787 = $P1786."named"()
+ isfalse $I1788, $P1787
+ new $P1781, 'Integer'
+ set $P1781, $I1788
+ if_1782_end:
+ if $P1781, if_1780
+.annotate 'line', 661
+ find_lex $P1803, "$past"
+ find_lex $P1804, "$expr"
+ $P1805 = $P1803."push"($P1804)
+ set $P1779, $P1805
+.annotate 'line', 658
+ goto if_1780_end
+ if_1780:
+.annotate 'line', 659
+ find_lex $P1790, "$expr"
+ $P1791 = $P1790."list"()
+ defined $I1792, $P1791
+ unless $I1792, for_undef_553
+ iter $P1789, $P1791
+ new $P1801, 'ExceptionHandler'
+ set_addr $P1801, loop1800_handler
+ $P1801."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1801
+ loop1800_test:
+ unless $P1789, loop1800_done
+ shift $P1793, $P1789
+ loop1800_redo:
+ .const 'Sub' $P1795 = "100_1275811497.55064"
+ capture_lex $P1795
+ $P1795($P1793)
+ loop1800_next:
+ goto loop1800_test
+ loop1800_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1802, exception, 'type'
+ eq $P1802, .CONTROL_LOOP_NEXT, loop1800_next
+ eq $P1802, .CONTROL_LOOP_REDO, loop1800_redo
+ loop1800_done:
+ pop_eh
+ for_undef_553:
+.annotate 'line', 658
+ set $P1779, $P1789
+ if_1780_end:
+.annotate 'line', 656
+ .return ($P1779)
.end
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<{ }>" :subid("99_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1828
-.annotate 'line', 672
- new $P1827, 'ExceptionHandler'
- set_addr $P1827, control_1826
- $P1827."handle_types"(57)
- push_eh $P1827
- .lex "self", self
- .lex "$/", param_1828
-.annotate 'line', 673
- new $P1829, "Undef"
- .lex "$past", $P1829
- find_lex $P1832, "$/"
- unless_null $P1832, vivify_544
- $P1832 = root_new ['parrot';'Hash']
- vivify_544:
- set $P1833, $P1832["pblock"]
- unless_null $P1833, vivify_545
- $P1833 = root_new ['parrot';'Hash']
- vivify_545:
- set $P1834, $P1833["blockoid"]
- unless_null $P1834, vivify_546
- $P1834 = root_new ['parrot';'Hash']
- vivify_546:
- set $P1835, $P1834["statementlist"]
- unless_null $P1835, vivify_547
- $P1835 = root_new ['parrot';'Hash']
- vivify_547:
- set $P1836, $P1835["statement"]
- unless_null $P1836, vivify_548
- new $P1836, "Undef"
- vivify_548:
- set $N1837, $P1836
- isgt $I1838, $N1837, 0.0
- if $I1838, if_1831
-.annotate 'line', 675
- $P1842 = "vivitype"("%")
- set $P1830, $P1842
-.annotate 'line', 673
- goto if_1831_end
- if_1831:
-.annotate 'line', 674
- find_lex $P1839, "$/"
- unless_null $P1839, vivify_549
- $P1839 = root_new ['parrot';'Hash']
- vivify_549:
- set $P1840, $P1839["pblock"]
- unless_null $P1840, vivify_550
- new $P1840, "Undef"
- vivify_550:
- $P1841 = $P1840."ast"()
- set $P1830, $P1841
- if_1831_end:
- store_lex "$past", $P1830
-.annotate 'line', 676
- new $P1843, "Integer"
- assign $P1843, 1
- find_lex $P1844, "$past"
- unless_null $P1844, vivify_551
- $P1844 = root_new ['parrot';'Hash']
- store_lex "$past", $P1844
- vivify_551:
- set $P1844["bareblock"], $P1843
-.annotate 'line', 677
- find_lex $P1845, "$/"
- find_lex $P1846, "$past"
- $P1847 = $P1845."!make"($P1846)
-.annotate 'line', 672
- .return ($P1847)
- control_1826:
- .local pmc exception
- .get_results (exception)
- getattribute $P1848, exception, "payload"
- .return ($P1848)
+.sub "_block1794" :anon :subid("100_1275811497.55064") :outer("99_1275811497.55064")
+ .param pmc param_1796
+.annotate 'line', 659
+ .lex "$_", param_1796
+ find_lex $P1797, "$past"
+ find_lex $P1798, "$_"
+ $P1799 = $P1797."push"($P1798)
+ .return ($P1799)
.end
.namespace ["NQP";"Actions"]
-.sub "circumfix:sym<sigil>" :subid("100_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1852
+.include "except_types.pasm"
+.sub "term:sym<value>" :subid("101_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1867
.annotate 'line', 680
- new $P1851, 'ExceptionHandler'
- set_addr $P1851, control_1850
- $P1851."handle_types"(57)
- push_eh $P1851
- .lex "self", self
- .lex "$/", param_1852
-.annotate 'line', 681
- new $P1853, "Undef"
- .lex "$name", $P1853
- find_lex $P1856, "$/"
- unless_null $P1856, vivify_552
- $P1856 = root_new ['parrot';'Hash']
- vivify_552:
- set $P1857, $P1856["sigil"]
- unless_null $P1857, vivify_553
- new $P1857, "Undef"
- vivify_553:
- set $S1858, $P1857
- iseq $I1859, $S1858, "@"
- if $I1859, if_1855
-.annotate 'line', 682
- find_lex $P1863, "$/"
- unless_null $P1863, vivify_554
- $P1863 = root_new ['parrot';'Hash']
- vivify_554:
- set $P1864, $P1863["sigil"]
- unless_null $P1864, vivify_555
- new $P1864, "Undef"
- vivify_555:
- set $S1865, $P1864
- iseq $I1866, $S1865, "%"
- if $I1866, if_1862
- new $P1868, "String"
- assign $P1868, "item"
- set $P1861, $P1868
- goto if_1862_end
- if_1862:
- new $P1867, "String"
- assign $P1867, "hash"
- set $P1861, $P1867
- if_1862_end:
- set $P1854, $P1861
-.annotate 'line', 681
- goto if_1855_end
- if_1855:
- new $P1860, "String"
- assign $P1860, "list"
- set $P1854, $P1860
- if_1855_end:
- store_lex "$name", $P1854
-.annotate 'line', 684
+ new $P1866, 'ExceptionHandler'
+ set_addr $P1866, control_1865
+ $P1866."handle_types"(.CONTROL_RETURN)
+ push_eh $P1866
+ .lex "self", self
+ .lex "$/", param_1867
+ find_lex $P1868, "$/"
find_lex $P1869, "$/"
- get_hll_global $P1870, ["PAST"], "Op"
- find_lex $P1871, "$name"
- find_lex $P1872, "$/"
- unless_null $P1872, vivify_556
- $P1872 = root_new ['parrot';'Hash']
- vivify_556:
- set $P1873, $P1872["semilist"]
- unless_null $P1873, vivify_557
- new $P1873, "Undef"
- vivify_557:
- $P1874 = $P1873."ast"()
- $P1875 = $P1870."new"($P1874, "callmethod" :named("pasttype"), $P1871 :named("name"))
- $P1876 = $P1869."!make"($P1875)
-.annotate 'line', 680
- .return ($P1876)
- control_1850:
+ unless_null $P1869, vivify_568
+ $P1869 = root_new ['parrot';'Hash']
+ vivify_568:
+ set $P1870, $P1869["value"]
+ unless_null $P1870, vivify_569
+ new $P1870, "Undef"
+ vivify_569:
+ $P1871 = $P1870."ast"()
+ $P1872 = $P1868."!make"($P1871)
+ .return ($P1872)
+ control_1865:
.local pmc exception
.get_results (exception)
- getattribute $P1877, exception, "payload"
- .return ($P1877)
+ getattribute $P1873, exception, "payload"
+ .return ($P1873)
.end
.namespace ["NQP";"Actions"]
-.sub "semilist" :subid("101_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1881
-.annotate 'line', 687
- new $P1880, 'ExceptionHandler'
- set_addr $P1880, control_1879
- $P1880."handle_types"(57)
- push_eh $P1880
- .lex "self", self
- .lex "$/", param_1881
- find_lex $P1882, "$/"
+.include "except_types.pasm"
+.sub "circumfix:sym<( )>" :subid("102_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1877
+.annotate 'line', 682
+ new $P1876, 'ExceptionHandler'
+ set_addr $P1876, control_1875
+ $P1876."handle_types"(.CONTROL_RETURN)
+ push_eh $P1876
+ .lex "self", self
+ .lex "$/", param_1877
+.annotate 'line', 683
+ find_lex $P1878, "$/"
+.annotate 'line', 684
+ find_lex $P1881, "$/"
+ unless_null $P1881, vivify_570
+ $P1881 = root_new ['parrot';'Hash']
+ vivify_570:
+ set $P1882, $P1881["EXPR"]
+ unless_null $P1882, vivify_571
+ new $P1882, "Undef"
+ vivify_571:
+ if $P1882, if_1880
+.annotate 'line', 685
+ get_hll_global $P1887, ["PAST"], "Op"
+ find_lex $P1888, "$/"
+ $P1889 = $P1887."new"("list" :named("pasttype"), $P1888 :named("node"))
+ set $P1879, $P1889
+.annotate 'line', 684
+ goto if_1880_end
+ if_1880:
find_lex $P1883, "$/"
- unless_null $P1883, vivify_558
+ unless_null $P1883, vivify_572
$P1883 = root_new ['parrot';'Hash']
- vivify_558:
- set $P1884, $P1883["statement"]
- unless_null $P1884, vivify_559
- new $P1884, "Undef"
- vivify_559:
- $P1885 = $P1884."ast"()
- $P1886 = $P1882."!make"($P1885)
- .return ($P1886)
- control_1879:
+ vivify_572:
+ set $P1884, $P1883["EXPR"]
+ unless_null $P1884, vivify_573
+ $P1884 = root_new ['parrot';'ResizablePMCArray']
+ vivify_573:
+ set $P1885, $P1884[0]
+ unless_null $P1885, vivify_574
+ new $P1885, "Undef"
+ vivify_574:
+ $P1886 = $P1885."ast"()
+ set $P1879, $P1886
+ if_1880_end:
+ $P1890 = $P1878."!make"($P1879)
+.annotate 'line', 682
+ .return ($P1890)
+ control_1875:
.local pmc exception
.get_results (exception)
- getattribute $P1887, exception, "payload"
- .return ($P1887)
+ getattribute $P1891, exception, "payload"
+ .return ($P1891)
.end
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<[ ]>" :subid("102_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1891
-.annotate 'line', 689
- new $P1890, 'ExceptionHandler'
- set_addr $P1890, control_1889
- $P1890."handle_types"(57)
- push_eh $P1890
+.include "except_types.pasm"
+.sub "circumfix:sym<[ ]>" :subid("103_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1895
+.annotate 'line', 688
+ new $P1894, 'ExceptionHandler'
+ set_addr $P1894, control_1893
+ $P1894."handle_types"(.CONTROL_RETURN)
+ push_eh $P1894
.lex "self", self
- .lex "$/", param_1891
+ .lex "$/", param_1895
+.annotate 'line', 689
+ new $P1896, "Undef"
+ .lex "$past", $P1896
+.annotate 'line', 688
+ find_lex $P1897, "$past"
.annotate 'line', 690
- find_lex $P1892, "$/"
- get_hll_global $P1893, ["PAST"], "Var"
- find_lex $P1894, "$/"
- unless_null $P1894, vivify_560
- $P1894 = root_new ['parrot';'Hash']
- vivify_560:
- set $P1895, $P1894["EXPR"]
- unless_null $P1895, vivify_561
- new $P1895, "Undef"
- vivify_561:
- $P1896 = $P1895."ast"()
+ find_lex $P1899, "$/"
+ unless_null $P1899, vivify_575
+ $P1899 = root_new ['parrot';'Hash']
+ vivify_575:
+ set $P1900, $P1899["EXPR"]
+ unless_null $P1900, vivify_576
+ new $P1900, "Undef"
+ vivify_576:
+ if $P1900, if_1898
+.annotate 'line', 697
+ get_hll_global $P1912, ["PAST"], "Op"
+ $P1913 = $P1912."new"("list" :named("pasttype"))
+ store_lex "$past", $P1913
+.annotate 'line', 696
+ goto if_1898_end
+ if_1898:
+.annotate 'line', 691
+ find_lex $P1901, "$/"
+ unless_null $P1901, vivify_577
+ $P1901 = root_new ['parrot';'Hash']
+ vivify_577:
+ set $P1902, $P1901["EXPR"]
+ unless_null $P1902, vivify_578
+ $P1902 = root_new ['parrot';'ResizablePMCArray']
+ vivify_578:
+ set $P1903, $P1902[0]
+ unless_null $P1903, vivify_579
+ new $P1903, "Undef"
+ vivify_579:
+ $P1904 = $P1903."ast"()
+ store_lex "$past", $P1904
.annotate 'line', 692
- $P1897 = "vivitype"("@")
- $P1898 = $P1893."new"($P1896, "keyed_int" :named("scope"), "Undef" :named("viviself"), $P1897 :named("vivibase"))
-.annotate 'line', 690
- $P1899 = $P1892."!make"($P1898)
-.annotate 'line', 689
- .return ($P1899)
- control_1889:
- .local pmc exception
- .get_results (exception)
- getattribute $P1900, exception, "payload"
- .return ($P1900)
+ find_lex $P1906, "$past"
+ $S1907 = $P1906."name"()
+ isne $I1908, $S1907, "&infix:<,>"
+ unless $I1908, if_1905_end
+.annotate 'line', 693
+ get_hll_global $P1909, ["PAST"], "Op"
+ find_lex $P1910, "$past"
+ $P1911 = $P1909."new"($P1910, "list" :named("pasttype"))
+ store_lex "$past", $P1911
+ if_1905_end:
+ if_1898_end:
+.annotate 'line', 699
+ find_lex $P1914, "$past"
+ $P1914."name"("&circumfix:<[ ]>")
+.annotate 'line', 700
+ find_lex $P1915, "$/"
+ find_lex $P1916, "$past"
+ $P1917 = $P1915."!make"($P1916)
+.annotate 'line', 688
+ .return ($P1917)
+ control_1893:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1918, exception, "payload"
+ .return ($P1918)
.end
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<{ }>" :subid("103_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1904
-.annotate 'line', 695
- new $P1903, 'ExceptionHandler'
- set_addr $P1903, control_1902
- $P1903."handle_types"(57)
- push_eh $P1903
- .lex "self", self
- .lex "$/", param_1904
-.annotate 'line', 696
- find_lex $P1905, "$/"
- get_hll_global $P1906, ["PAST"], "Var"
- find_lex $P1907, "$/"
- unless_null $P1907, vivify_562
- $P1907 = root_new ['parrot';'Hash']
- vivify_562:
- set $P1908, $P1907["EXPR"]
- unless_null $P1908, vivify_563
- new $P1908, "Undef"
- vivify_563:
- $P1909 = $P1908."ast"()
-.annotate 'line', 698
- $P1910 = "vivitype"("%")
- $P1911 = $P1906."new"($P1909, "keyed" :named("scope"), "Undef" :named("viviself"), $P1910 :named("vivibase"))
-.annotate 'line', 696
- $P1912 = $P1905."!make"($P1911)
-.annotate 'line', 695
- .return ($P1912)
- control_1902:
+.include "except_types.pasm"
+.sub "circumfix:sym<ang>" :subid("104_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1922
+.annotate 'line', 703
+ new $P1921, 'ExceptionHandler'
+ set_addr $P1921, control_1920
+ $P1921."handle_types"(.CONTROL_RETURN)
+ push_eh $P1921
+ .lex "self", self
+ .lex "$/", param_1922
+ find_lex $P1923, "$/"
+ find_lex $P1924, "$/"
+ unless_null $P1924, vivify_580
+ $P1924 = root_new ['parrot';'Hash']
+ vivify_580:
+ set $P1925, $P1924["quote_EXPR"]
+ unless_null $P1925, vivify_581
+ new $P1925, "Undef"
+ vivify_581:
+ $P1926 = $P1925."ast"()
+ $P1927 = $P1923."!make"($P1926)
+ .return ($P1927)
+ control_1920:
.local pmc exception
.get_results (exception)
- getattribute $P1913, exception, "payload"
- .return ($P1913)
+ getattribute $P1928, exception, "payload"
+ .return ($P1928)
.end
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<ang>" :subid("104_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1917
-.annotate 'line', 701
- new $P1916, 'ExceptionHandler'
- set_addr $P1916, control_1915
- $P1916."handle_types"(57)
- push_eh $P1916
- .lex "self", self
- .lex "$/", param_1917
-.annotate 'line', 702
- find_lex $P1918, "$/"
- get_hll_global $P1919, ["PAST"], "Var"
- find_lex $P1920, "$/"
- unless_null $P1920, vivify_564
- $P1920 = root_new ['parrot';'Hash']
- vivify_564:
- set $P1921, $P1920["quote_EXPR"]
- unless_null $P1921, vivify_565
- new $P1921, "Undef"
- vivify_565:
- $P1922 = $P1921."ast"()
+.include "except_types.pasm"
+.sub unicode:"circumfix:sym<\x{ab} \x{bb}>" :subid("105_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1932
.annotate 'line', 704
- $P1923 = "vivitype"("%")
- $P1924 = $P1919."new"($P1922, "keyed" :named("scope"), "Undef" :named("viviself"), $P1923 :named("vivibase"))
-.annotate 'line', 702
- $P1925 = $P1918."!make"($P1924)
-.annotate 'line', 701
- .return ($P1925)
- control_1915:
+ new $P1931, 'ExceptionHandler'
+ set_addr $P1931, control_1930
+ $P1931."handle_types"(.CONTROL_RETURN)
+ push_eh $P1931
+ .lex "self", self
+ .lex "$/", param_1932
+ find_lex $P1933, "$/"
+ find_lex $P1934, "$/"
+ unless_null $P1934, vivify_582
+ $P1934 = root_new ['parrot';'Hash']
+ vivify_582:
+ set $P1935, $P1934["quote_EXPR"]
+ unless_null $P1935, vivify_583
+ new $P1935, "Undef"
+ vivify_583:
+ $P1936 = $P1935."ast"()
+ $P1937 = $P1933."!make"($P1936)
+ .return ($P1937)
+ control_1930:
.local pmc exception
.get_results (exception)
- getattribute $P1926, exception, "payload"
- .return ($P1926)
+ getattribute $P1938, exception, "payload"
+ .return ($P1938)
.end
.namespace ["NQP";"Actions"]
-.sub "postcircumfix:sym<( )>" :subid("105_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1930
-.annotate 'line', 707
- new $P1929, 'ExceptionHandler'
- set_addr $P1929, control_1928
- $P1929."handle_types"(57)
- push_eh $P1929
+.include "except_types.pasm"
+.sub "circumfix:sym<{ }>" :subid("106_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1942
+.annotate 'line', 706
+ new $P1941, 'ExceptionHandler'
+ set_addr $P1941, control_1940
+ $P1941."handle_types"(.CONTROL_RETURN)
+ push_eh $P1941
.lex "self", self
- .lex "$/", param_1930
-.annotate 'line', 708
- find_lex $P1931, "$/"
- find_lex $P1932, "$/"
- unless_null $P1932, vivify_566
- $P1932 = root_new ['parrot';'Hash']
- vivify_566:
- set $P1933, $P1932["arglist"]
- unless_null $P1933, vivify_567
- new $P1933, "Undef"
- vivify_567:
- $P1934 = $P1933."ast"()
- $P1935 = $P1931."!make"($P1934)
+ .lex "$/", param_1942
.annotate 'line', 707
- .return ($P1935)
- control_1928:
- .local pmc exception
- .get_results (exception)
- getattribute $P1936, exception, "payload"
- .return ($P1936)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "value" :subid("106_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1940
-.annotate 'line', 711
- new $P1939, 'ExceptionHandler'
- set_addr $P1939, control_1938
- $P1939."handle_types"(57)
- push_eh $P1939
- .lex "self", self
- .lex "$/", param_1940
-.annotate 'line', 712
- find_lex $P1941, "$/"
- find_lex $P1944, "$/"
- unless_null $P1944, vivify_568
- $P1944 = root_new ['parrot';'Hash']
- vivify_568:
- set $P1945, $P1944["quote"]
- unless_null $P1945, vivify_569
- new $P1945, "Undef"
- vivify_569:
- if $P1945, if_1943
- find_lex $P1949, "$/"
- unless_null $P1949, vivify_570
- $P1949 = root_new ['parrot';'Hash']
- vivify_570:
- set $P1950, $P1949["number"]
- unless_null $P1950, vivify_571
- new $P1950, "Undef"
- vivify_571:
- $P1951 = $P1950."ast"()
- set $P1942, $P1951
- goto if_1943_end
- if_1943:
+ new $P1943, "Undef"
+ .lex "$past", $P1943
find_lex $P1946, "$/"
- unless_null $P1946, vivify_572
+ unless_null $P1946, vivify_584
$P1946 = root_new ['parrot';'Hash']
- vivify_572:
- set $P1947, $P1946["quote"]
- unless_null $P1947, vivify_573
- new $P1947, "Undef"
- vivify_573:
- $P1948 = $P1947."ast"()
- set $P1942, $P1948
- if_1943_end:
- $P1952 = $P1941."!make"($P1942)
+ vivify_584:
+ set $P1947, $P1946["pblock"]
+ unless_null $P1947, vivify_585
+ $P1947 = root_new ['parrot';'Hash']
+ vivify_585:
+ set $P1948, $P1947["blockoid"]
+ unless_null $P1948, vivify_586
+ $P1948 = root_new ['parrot';'Hash']
+ vivify_586:
+ set $P1949, $P1948["statementlist"]
+ unless_null $P1949, vivify_587
+ $P1949 = root_new ['parrot';'Hash']
+ vivify_587:
+ set $P1950, $P1949["statement"]
+ unless_null $P1950, vivify_588
+ new $P1950, "Undef"
+ vivify_588:
+ set $N1951, $P1950
+ isgt $I1952, $N1951, 0.0
+ if $I1952, if_1945
+.annotate 'line', 709
+ $P1956 = "vivitype"("%")
+ set $P1944, $P1956
+.annotate 'line', 707
+ goto if_1945_end
+ if_1945:
+.annotate 'line', 708
+ find_lex $P1953, "$/"
+ unless_null $P1953, vivify_589
+ $P1953 = root_new ['parrot';'Hash']
+ vivify_589:
+ set $P1954, $P1953["pblock"]
+ unless_null $P1954, vivify_590
+ new $P1954, "Undef"
+ vivify_590:
+ $P1955 = $P1954."ast"()
+ set $P1944, $P1955
+ if_1945_end:
+ store_lex "$past", $P1944
+.annotate 'line', 710
+ new $P1957, "Integer"
+ assign $P1957, 1
+ find_lex $P1958, "$past"
+ unless_null $P1958, vivify_591
+ $P1958 = root_new ['parrot';'Hash']
+ store_lex "$past", $P1958
+ vivify_591:
+ set $P1958["bareblock"], $P1957
.annotate 'line', 711
- .return ($P1952)
- control_1938:
+ find_lex $P1959, "$/"
+ find_lex $P1960, "$past"
+ $P1961 = $P1959."!make"($P1960)
+.annotate 'line', 706
+ .return ($P1961)
+ control_1940:
.local pmc exception
.get_results (exception)
- getattribute $P1953, exception, "payload"
- .return ($P1953)
+ getattribute $P1962, exception, "payload"
+ .return ($P1962)
.end
.namespace ["NQP";"Actions"]
-.sub "number" :subid("107_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1957
-.annotate 'line', 715
- new $P1956, 'ExceptionHandler'
- set_addr $P1956, control_1955
- $P1956."handle_types"(57)
- push_eh $P1956
+.include "except_types.pasm"
+.sub "circumfix:sym<sigil>" :subid("107_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_1966
+.annotate 'line', 714
+ new $P1965, 'ExceptionHandler'
+ set_addr $P1965, control_1964
+ $P1965."handle_types"(.CONTROL_RETURN)
+ push_eh $P1965
.lex "self", self
- .lex "$/", param_1957
-.annotate 'line', 716
- new $P1958, "Undef"
- .lex "$value", $P1958
- find_lex $P1961, "$/"
- unless_null $P1961, vivify_574
- $P1961 = root_new ['parrot';'Hash']
- vivify_574:
- set $P1962, $P1961["dec_number"]
- unless_null $P1962, vivify_575
- new $P1962, "Undef"
- vivify_575:
- if $P1962, if_1960
- find_lex $P1966, "$/"
- unless_null $P1966, vivify_576
- $P1966 = root_new ['parrot';'Hash']
- vivify_576:
- set $P1967, $P1966["integer"]
- unless_null $P1967, vivify_577
+ .lex "$/", param_1966
+.annotate 'line', 715
new $P1967, "Undef"
- vivify_577:
- $P1968 = $P1967."ast"()
- set $P1959, $P1968
- goto if_1960_end
- if_1960:
- find_lex $P1963, "$/"
- unless_null $P1963, vivify_578
- $P1963 = root_new ['parrot';'Hash']
- vivify_578:
- set $P1964, $P1963["dec_number"]
- unless_null $P1964, vivify_579
- new $P1964, "Undef"
- vivify_579:
- $P1965 = $P1964."ast"()
- set $P1959, $P1965
- if_1960_end:
- store_lex "$value", $P1959
-.annotate 'line', 717
+ .lex "$name", $P1967
find_lex $P1970, "$/"
- unless_null $P1970, vivify_580
+ unless_null $P1970, vivify_592
$P1970 = root_new ['parrot';'Hash']
- vivify_580:
- set $P1971, $P1970["sign"]
- unless_null $P1971, vivify_581
+ vivify_592:
+ set $P1971, $P1970["sigil"]
+ unless_null $P1971, vivify_593
new $P1971, "Undef"
- vivify_581:
+ vivify_593:
set $S1972, $P1971
- iseq $I1973, $S1972, "-"
- unless $I1973, if_1969_end
- find_lex $P1974, "$value"
- neg $P1975, $P1974
- store_lex "$value", $P1975
+ iseq $I1973, $S1972, "@"
+ if $I1973, if_1969
+.annotate 'line', 716
+ find_lex $P1977, "$/"
+ unless_null $P1977, vivify_594
+ $P1977 = root_new ['parrot';'Hash']
+ vivify_594:
+ set $P1978, $P1977["sigil"]
+ unless_null $P1978, vivify_595
+ new $P1978, "Undef"
+ vivify_595:
+ set $S1979, $P1978
+ iseq $I1980, $S1979, "%"
+ if $I1980, if_1976
+ new $P1982, "String"
+ assign $P1982, "item"
+ set $P1975, $P1982
+ goto if_1976_end
+ if_1976:
+ new $P1981, "String"
+ assign $P1981, "hash"
+ set $P1975, $P1981
+ if_1976_end:
+ set $P1968, $P1975
+.annotate 'line', 715
+ goto if_1969_end
+ if_1969:
+ new $P1974, "String"
+ assign $P1974, "list"
+ set $P1968, $P1974
if_1969_end:
+ store_lex "$name", $P1968
.annotate 'line', 718
- find_lex $P1976, "$/"
- get_hll_global $P1977, ["PAST"], "Val"
- find_lex $P1978, "$value"
- $P1979 = $P1977."new"($P1978 :named("value"))
- $P1980 = $P1976."!make"($P1979)
-.annotate 'line', 715
- .return ($P1980)
- control_1955:
- .local pmc exception
- .get_results (exception)
- getattribute $P1981, exception, "payload"
- .return ($P1981)
-.end
-
-
-.namespace ["NQP";"Actions"]
-.sub "quote:sym<apos>" :subid("108_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_1985
-.annotate 'line', 721
- new $P1984, 'ExceptionHandler'
- set_addr $P1984, control_1983
- $P1984."handle_types"(57)
- push_eh $P1984
- .lex "self", self
- .lex "$/", param_1985
+ find_lex $P1983, "$/"
+ get_hll_global $P1984, ["PAST"], "Op"
+ find_lex $P1985, "$name"
find_lex $P1986, "$/"
- find_lex $P1987, "$/"
- unless_null $P1987, vivify_582
- $P1987 = root_new ['parrot';'Hash']
- vivify_582:
- set $P1988, $P1987["quote_EXPR"]
- unless_null $P1988, vivify_583
- new $P1988, "Undef"
- vivify_583:
- $P1989 = $P1988."ast"()
- $P1990 = $P1986."!make"($P1989)
+ unless_null $P1986, vivify_596
+ $P1986 = root_new ['parrot';'Hash']
+ vivify_596:
+ set $P1987, $P1986["semilist"]
+ unless_null $P1987, vivify_597
+ new $P1987, "Undef"
+ vivify_597:
+ $P1988 = $P1987."ast"()
+ $P1989 = $P1984."new"($P1988, "callmethod" :named("pasttype"), $P1985 :named("name"))
+ $P1990 = $P1983."!make"($P1989)
+.annotate 'line', 714
.return ($P1990)
- control_1983:
+ control_1964:
.local pmc exception
.get_results (exception)
getattribute $P1991, exception, "payload"
@@ -22425,24 +23551,25 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<dblq>" :subid("109_1274022903.56472") :method :outer("11_1274022903.56472")
+.include "except_types.pasm"
+.sub "semilist" :subid("108_1275811497.55064") :method :outer("11_1275811497.55064")
.param pmc param_1995
-.annotate 'line', 722
+.annotate 'line', 721
new $P1994, 'ExceptionHandler'
set_addr $P1994, control_1993
- $P1994."handle_types"(57)
+ $P1994."handle_types"(.CONTROL_RETURN)
push_eh $P1994
.lex "self", self
.lex "$/", param_1995
find_lex $P1996, "$/"
find_lex $P1997, "$/"
- unless_null $P1997, vivify_584
+ unless_null $P1997, vivify_598
$P1997 = root_new ['parrot';'Hash']
- vivify_584:
- set $P1998, $P1997["quote_EXPR"]
- unless_null $P1998, vivify_585
+ vivify_598:
+ set $P1998, $P1997["statement"]
+ unless_null $P1998, vivify_599
new $P1998, "Undef"
- vivify_585:
+ vivify_599:
$P1999 = $P1998."ast"()
$P2000 = $P1996."!make"($P1999)
.return ($P2000)
@@ -22455,739 +23582,1236 @@
.namespace ["NQP";"Actions"]
-.sub "quote:sym<qq>" :subid("110_1274022903.56472") :method :outer("11_1274022903.56472")
+.include "except_types.pasm"
+.sub "postcircumfix:sym<[ ]>" :subid("109_1275811497.55064") :method :outer("11_1275811497.55064")
.param pmc param_2005
.annotate 'line', 723
new $P2004, 'ExceptionHandler'
set_addr $P2004, control_2003
- $P2004."handle_types"(57)
+ $P2004."handle_types"(.CONTROL_RETURN)
push_eh $P2004
.lex "self", self
.lex "$/", param_2005
+.annotate 'line', 724
find_lex $P2006, "$/"
- find_lex $P2007, "$/"
- unless_null $P2007, vivify_586
- $P2007 = root_new ['parrot';'Hash']
- vivify_586:
- set $P2008, $P2007["quote_EXPR"]
- unless_null $P2008, vivify_587
- new $P2008, "Undef"
- vivify_587:
- $P2009 = $P2008."ast"()
- $P2010 = $P2006."!make"($P2009)
- .return ($P2010)
+ get_hll_global $P2007, ["PAST"], "Var"
+ find_lex $P2008, "$/"
+ unless_null $P2008, vivify_600
+ $P2008 = root_new ['parrot';'Hash']
+ vivify_600:
+ set $P2009, $P2008["EXPR"]
+ unless_null $P2009, vivify_601
+ new $P2009, "Undef"
+ vivify_601:
+ $P2010 = $P2009."ast"()
+.annotate 'line', 726
+ $P2011 = "vivitype"("@")
+ $P2012 = $P2007."new"($P2010, "keyed_int" :named("scope"), "Undef" :named("viviself"), $P2011 :named("vivibase"))
+.annotate 'line', 724
+ $P2013 = $P2006."!make"($P2012)
+.annotate 'line', 723
+ .return ($P2013)
control_2003:
.local pmc exception
.get_results (exception)
- getattribute $P2011, exception, "payload"
- .return ($P2011)
+ getattribute $P2014, exception, "payload"
+ .return ($P2014)
.end
.namespace ["NQP";"Actions"]
-.sub "quote:sym<q>" :subid("111_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2015
-.annotate 'line', 724
- new $P2014, 'ExceptionHandler'
- set_addr $P2014, control_2013
- $P2014."handle_types"(57)
- push_eh $P2014
- .lex "self", self
- .lex "$/", param_2015
- find_lex $P2016, "$/"
- find_lex $P2017, "$/"
- unless_null $P2017, vivify_588
- $P2017 = root_new ['parrot';'Hash']
- vivify_588:
- set $P2018, $P2017["quote_EXPR"]
- unless_null $P2018, vivify_589
- new $P2018, "Undef"
- vivify_589:
- $P2019 = $P2018."ast"()
- $P2020 = $P2016."!make"($P2019)
- .return ($P2020)
- control_2013:
- .local pmc exception
- .get_results (exception)
- getattribute $P2021, exception, "payload"
- .return ($P2021)
+.include "except_types.pasm"
+.sub "postcircumfix:sym<{ }>" :subid("110_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2018
+.annotate 'line', 729
+ new $P2017, 'ExceptionHandler'
+ set_addr $P2017, control_2016
+ $P2017."handle_types"(.CONTROL_RETURN)
+ push_eh $P2017
+ .lex "self", self
+ .lex "$/", param_2018
+.annotate 'line', 730
+ find_lex $P2019, "$/"
+ get_hll_global $P2020, ["PAST"], "Var"
+ find_lex $P2021, "$/"
+ unless_null $P2021, vivify_602
+ $P2021 = root_new ['parrot';'Hash']
+ vivify_602:
+ set $P2022, $P2021["EXPR"]
+ unless_null $P2022, vivify_603
+ new $P2022, "Undef"
+ vivify_603:
+ $P2023 = $P2022."ast"()
+.annotate 'line', 732
+ $P2024 = "vivitype"("%")
+ $P2025 = $P2020."new"($P2023, "keyed" :named("scope"), "Undef" :named("viviself"), $P2024 :named("vivibase"))
+.annotate 'line', 730
+ $P2026 = $P2019."!make"($P2025)
+.annotate 'line', 729
+ .return ($P2026)
+ control_2016:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2027, exception, "payload"
+ .return ($P2027)
.end
.namespace ["NQP";"Actions"]
-.sub "quote:sym<Q>" :subid("112_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2025
-.annotate 'line', 725
- new $P2024, 'ExceptionHandler'
- set_addr $P2024, control_2023
- $P2024."handle_types"(57)
- push_eh $P2024
- .lex "self", self
- .lex "$/", param_2025
- find_lex $P2026, "$/"
- find_lex $P2027, "$/"
- unless_null $P2027, vivify_590
- $P2027 = root_new ['parrot';'Hash']
- vivify_590:
- set $P2028, $P2027["quote_EXPR"]
- unless_null $P2028, vivify_591
- new $P2028, "Undef"
- vivify_591:
- $P2029 = $P2028."ast"()
- $P2030 = $P2026."!make"($P2029)
- .return ($P2030)
- control_2023:
+.include "except_types.pasm"
+.sub "postcircumfix:sym<ang>" :subid("111_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2031
+.annotate 'line', 735
+ new $P2030, 'ExceptionHandler'
+ set_addr $P2030, control_2029
+ $P2030."handle_types"(.CONTROL_RETURN)
+ push_eh $P2030
+ .lex "self", self
+ .lex "$/", param_2031
+.annotate 'line', 736
+ find_lex $P2032, "$/"
+ get_hll_global $P2033, ["PAST"], "Var"
+ find_lex $P2034, "$/"
+ unless_null $P2034, vivify_604
+ $P2034 = root_new ['parrot';'Hash']
+ vivify_604:
+ set $P2035, $P2034["quote_EXPR"]
+ unless_null $P2035, vivify_605
+ new $P2035, "Undef"
+ vivify_605:
+ $P2036 = $P2035."ast"()
+.annotate 'line', 738
+ $P2037 = "vivitype"("%")
+ $P2038 = $P2033."new"($P2036, "keyed" :named("scope"), "Undef" :named("viviself"), $P2037 :named("vivibase"))
+.annotate 'line', 736
+ $P2039 = $P2032."!make"($P2038)
+.annotate 'line', 735
+ .return ($P2039)
+ control_2029:
.local pmc exception
.get_results (exception)
- getattribute $P2031, exception, "payload"
- .return ($P2031)
+ getattribute $P2040, exception, "payload"
+ .return ($P2040)
.end
.namespace ["NQP";"Actions"]
-.sub "quote:sym<Q:PIR>" :subid("113_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2035
-.annotate 'line', 726
- new $P2034, 'ExceptionHandler'
- set_addr $P2034, control_2033
- $P2034."handle_types"(57)
- push_eh $P2034
- .lex "self", self
- .lex "$/", param_2035
-.annotate 'line', 727
- find_lex $P2036, "$/"
- get_hll_global $P2037, ["PAST"], "Op"
- find_lex $P2038, "$/"
- unless_null $P2038, vivify_592
- $P2038 = root_new ['parrot';'Hash']
- vivify_592:
- set $P2039, $P2038["quote_EXPR"]
- unless_null $P2039, vivify_593
- new $P2039, "Undef"
- vivify_593:
- $P2040 = $P2039."ast"()
- $P2041 = $P2040."value"()
- find_lex $P2042, "$/"
- $P2043 = $P2037."new"($P2041 :named("inline"), "inline" :named("pasttype"), $P2042 :named("node"))
- $P2044 = $P2036."!make"($P2043)
-.annotate 'line', 726
- .return ($P2044)
- control_2033:
+.include "except_types.pasm"
+.sub "postcircumfix:sym<( )>" :subid("112_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2044
+.annotate 'line', 741
+ new $P2043, 'ExceptionHandler'
+ set_addr $P2043, control_2042
+ $P2043."handle_types"(.CONTROL_RETURN)
+ push_eh $P2043
+ .lex "self", self
+ .lex "$/", param_2044
+.annotate 'line', 742
+ find_lex $P2045, "$/"
+ find_lex $P2046, "$/"
+ unless_null $P2046, vivify_606
+ $P2046 = root_new ['parrot';'Hash']
+ vivify_606:
+ set $P2047, $P2046["arglist"]
+ unless_null $P2047, vivify_607
+ new $P2047, "Undef"
+ vivify_607:
+ $P2048 = $P2047."ast"()
+ $P2049 = $P2045."!make"($P2048)
+.annotate 'line', 741
+ .return ($P2049)
+ control_2042:
.local pmc exception
.get_results (exception)
- getattribute $P2045, exception, "payload"
- .return ($P2045)
+ getattribute $P2050, exception, "payload"
+ .return ($P2050)
.end
.namespace ["NQP";"Actions"]
-.sub "quote:sym</ />" :subid("114_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2049
- .param pmc param_2050 :optional
- .param int has_param_2050 :opt_flag
-.annotate 'line', 732
- new $P2048, 'ExceptionHandler'
- set_addr $P2048, control_2047
- $P2048."handle_types"(57)
- push_eh $P2048
- .lex "self", self
- .lex "$/", param_2049
- if has_param_2050, optparam_594
- new $P2051, "Undef"
- set param_2050, $P2051
- optparam_594:
- .lex "$key", param_2050
-.annotate 'line', 742
- new $P2052, "Undef"
- .lex "$regex", $P2052
-.annotate 'line', 744
- new $P2053, "Undef"
- .lex "$past", $P2053
-.annotate 'line', 733
- find_lex $P2055, "$key"
- set $S2056, $P2055
- iseq $I2057, $S2056, "open"
- unless $I2057, if_2054_end
-.annotate 'line', 734
-
- null $P0
- set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
-
-.annotate 'line', 738
- get_global $P2058, "@BLOCK"
- unless_null $P2058, vivify_595
- $P2058 = root_new ['parrot';'ResizablePMCArray']
- vivify_595:
- set $P2059, $P2058[0]
- unless_null $P2059, vivify_596
+.include "except_types.pasm"
+.sub "value" :subid("113_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2054
+.annotate 'line', 745
+ new $P2053, 'ExceptionHandler'
+ set_addr $P2053, control_2052
+ $P2053."handle_types"(.CONTROL_RETURN)
+ push_eh $P2053
+ .lex "self", self
+ .lex "$/", param_2054
+.annotate 'line', 746
+ find_lex $P2055, "$/"
+ find_lex $P2058, "$/"
+ unless_null $P2058, vivify_608
+ $P2058 = root_new ['parrot';'Hash']
+ vivify_608:
+ set $P2059, $P2058["quote"]
+ unless_null $P2059, vivify_609
new $P2059, "Undef"
- vivify_596:
- $P2059."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
-.annotate 'line', 739
- get_global $P2060, "@BLOCK"
- unless_null $P2060, vivify_597
- $P2060 = root_new ['parrot';'ResizablePMCArray']
- vivify_597:
- set $P2061, $P2060[0]
- unless_null $P2061, vivify_598
+ vivify_609:
+ if $P2059, if_2057
+ find_lex $P2063, "$/"
+ unless_null $P2063, vivify_610
+ $P2063 = root_new ['parrot';'Hash']
+ vivify_610:
+ set $P2064, $P2063["number"]
+ unless_null $P2064, vivify_611
+ new $P2064, "Undef"
+ vivify_611:
+ $P2065 = $P2064."ast"()
+ set $P2056, $P2065
+ goto if_2057_end
+ if_2057:
+ find_lex $P2060, "$/"
+ unless_null $P2060, vivify_612
+ $P2060 = root_new ['parrot';'Hash']
+ vivify_612:
+ set $P2061, $P2060["quote"]
+ unless_null $P2061, vivify_613
new $P2061, "Undef"
- vivify_598:
- $P2061."symbol"("$/", "lexical" :named("scope"))
-.annotate 'line', 740
- new $P2062, "Exception"
- set $P2062['type'], 57
- new $P2063, "Integer"
- assign $P2063, 0
- setattribute $P2062, 'payload', $P2063
- throw $P2062
- if_2054_end:
-.annotate 'line', 743
- get_hll_global $P2064, ["Regex";"P6Regex";"Actions"], "buildsub"
- find_lex $P2065, "$/"
- unless_null $P2065, vivify_599
- $P2065 = root_new ['parrot';'Hash']
- vivify_599:
- set $P2066, $P2065["p6regex"]
- unless_null $P2066, vivify_600
- new $P2066, "Undef"
- vivify_600:
- $P2067 = $P2066."ast"()
- get_global $P2068, "@BLOCK"
- $P2069 = $P2068."shift"()
- $P2070 = $P2064($P2067, $P2069)
- store_lex "$regex", $P2070
-.annotate 'line', 745
- get_hll_global $P2071, ["PAST"], "Op"
-.annotate 'line', 747
- get_hll_global $P2072, ["PAST"], "Var"
- new $P2073, "ResizablePMCArray"
- push $P2073, "Regex"
- $P2074 = $P2072."new"("Regex" :named("name"), $P2073 :named("namespace"), "package" :named("scope"))
- find_lex $P2075, "$regex"
- $P2076 = $P2071."new"($P2074, $P2075, "callmethod" :named("pasttype"), "new" :named("name"))
+ vivify_613:
+ $P2062 = $P2061."ast"()
+ set $P2056, $P2062
+ if_2057_end:
+ $P2066 = $P2055."!make"($P2056)
.annotate 'line', 745
- store_lex "$past", $P2076
+ .return ($P2066)
+ control_2052:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2067, exception, "payload"
+ .return ($P2067)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "number" :subid("114_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2071
+.annotate 'line', 749
+ new $P2070, 'ExceptionHandler'
+ set_addr $P2070, control_2069
+ $P2070."handle_types"(.CONTROL_RETURN)
+ push_eh $P2070
+ .lex "self", self
+ .lex "$/", param_2071
+.annotate 'line', 750
+ new $P2072, "Undef"
+ .lex "$value", $P2072
+ find_lex $P2075, "$/"
+ unless_null $P2075, vivify_614
+ $P2075 = root_new ['parrot';'Hash']
+ vivify_614:
+ set $P2076, $P2075["dec_number"]
+ unless_null $P2076, vivify_615
+ new $P2076, "Undef"
+ vivify_615:
+ if $P2076, if_2074
+ find_lex $P2080, "$/"
+ unless_null $P2080, vivify_616
+ $P2080 = root_new ['parrot';'Hash']
+ vivify_616:
+ set $P2081, $P2080["integer"]
+ unless_null $P2081, vivify_617
+ new $P2081, "Undef"
+ vivify_617:
+ $P2082 = $P2081."ast"()
+ set $P2073, $P2082
+ goto if_2074_end
+ if_2074:
+ find_lex $P2077, "$/"
+ unless_null $P2077, vivify_618
+ $P2077 = root_new ['parrot';'Hash']
+ vivify_618:
+ set $P2078, $P2077["dec_number"]
+ unless_null $P2078, vivify_619
+ new $P2078, "Undef"
+ vivify_619:
+ $P2079 = $P2078."ast"()
+ set $P2073, $P2079
+ if_2074_end:
+ store_lex "$value", $P2073
.annotate 'line', 751
- find_lex $P2077, "$regex"
- find_lex $P2078, "$past"
- unless_null $P2078, vivify_601
- $P2078 = root_new ['parrot';'Hash']
- store_lex "$past", $P2078
- vivify_601:
- set $P2078["sink"], $P2077
+ find_lex $P2084, "$/"
+ unless_null $P2084, vivify_620
+ $P2084 = root_new ['parrot';'Hash']
+ vivify_620:
+ set $P2085, $P2084["sign"]
+ unless_null $P2085, vivify_621
+ new $P2085, "Undef"
+ vivify_621:
+ set $S2086, $P2085
+ iseq $I2087, $S2086, "-"
+ unless $I2087, if_2083_end
+ find_lex $P2088, "$value"
+ neg $P2089, $P2088
+ store_lex "$value", $P2089
+ if_2083_end:
.annotate 'line', 752
- find_lex $P2079, "$/"
- find_lex $P2080, "$past"
- $P2081 = $P2079."!make"($P2080)
-.annotate 'line', 732
- .return ($P2081)
- control_2047:
+ find_lex $P2090, "$/"
+ get_hll_global $P2091, ["PAST"], "Val"
+ find_lex $P2092, "$value"
+ $P2093 = $P2091."new"($P2092 :named("value"))
+ $P2094 = $P2090."!make"($P2093)
+.annotate 'line', 749
+ .return ($P2094)
+ control_2069:
.local pmc exception
.get_results (exception)
- getattribute $P2082, exception, "payload"
- .return ($P2082)
+ getattribute $P2095, exception, "payload"
+ .return ($P2095)
.end
.namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<$>" :subid("115_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2086
+.include "except_types.pasm"
+.sub "quote:sym<apos>" :subid("115_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2099
.annotate 'line', 755
- new $P2085, 'ExceptionHandler'
- set_addr $P2085, control_2084
- $P2085."handle_types"(57)
- push_eh $P2085
- .lex "self", self
- .lex "$/", param_2086
- find_lex $P2087, "$/"
- find_lex $P2088, "$/"
- unless_null $P2088, vivify_602
- $P2088 = root_new ['parrot';'Hash']
- vivify_602:
- set $P2089, $P2088["variable"]
- unless_null $P2089, vivify_603
- new $P2089, "Undef"
- vivify_603:
- $P2090 = $P2089."ast"()
- $P2091 = $P2087."!make"($P2090)
- .return ($P2091)
- control_2084:
+ new $P2098, 'ExceptionHandler'
+ set_addr $P2098, control_2097
+ $P2098."handle_types"(.CONTROL_RETURN)
+ push_eh $P2098
+ .lex "self", self
+ .lex "$/", param_2099
+ find_lex $P2100, "$/"
+ find_lex $P2101, "$/"
+ unless_null $P2101, vivify_622
+ $P2101 = root_new ['parrot';'Hash']
+ vivify_622:
+ set $P2102, $P2101["quote_EXPR"]
+ unless_null $P2102, vivify_623
+ new $P2102, "Undef"
+ vivify_623:
+ $P2103 = $P2102."ast"()
+ $P2104 = $P2100."!make"($P2103)
+ .return ($P2104)
+ control_2097:
.local pmc exception
.get_results (exception)
- getattribute $P2092, exception, "payload"
- .return ($P2092)
+ getattribute $P2105, exception, "payload"
+ .return ($P2105)
.end
.namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<{ }>" :subid("116_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2096
+.include "except_types.pasm"
+.sub "quote:sym<dblq>" :subid("116_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2109
.annotate 'line', 756
- new $P2095, 'ExceptionHandler'
- set_addr $P2095, control_2094
- $P2095."handle_types"(57)
- push_eh $P2095
+ new $P2108, 'ExceptionHandler'
+ set_addr $P2108, control_2107
+ $P2108."handle_types"(.CONTROL_RETURN)
+ push_eh $P2108
.lex "self", self
- .lex "$/", param_2096
-.annotate 'line', 757
- find_lex $P2097, "$/"
- get_hll_global $P2098, ["PAST"], "Op"
-.annotate 'line', 758
- find_lex $P2099, "$/"
- unless_null $P2099, vivify_604
- $P2099 = root_new ['parrot';'Hash']
- vivify_604:
- set $P2100, $P2099["block"]
- unless_null $P2100, vivify_605
- new $P2100, "Undef"
- vivify_605:
- $P2101 = $P2100."ast"()
- $P2102 = "block_immediate"($P2101)
- find_lex $P2103, "$/"
- $P2104 = $P2098."new"($P2102, "set S*" :named("pirop"), $P2103 :named("node"))
-.annotate 'line', 757
- $P2105 = $P2097."!make"($P2104)
-.annotate 'line', 756
- .return ($P2105)
- control_2094:
+ .lex "$/", param_2109
+ find_lex $P2110, "$/"
+ find_lex $P2111, "$/"
+ unless_null $P2111, vivify_624
+ $P2111 = root_new ['parrot';'Hash']
+ vivify_624:
+ set $P2112, $P2111["quote_EXPR"]
+ unless_null $P2112, vivify_625
+ new $P2112, "Undef"
+ vivify_625:
+ $P2113 = $P2112."ast"()
+ $P2114 = $P2110."!make"($P2113)
+ .return ($P2114)
+ control_2107:
.local pmc exception
.get_results (exception)
- getattribute $P2106, exception, "payload"
- .return ($P2106)
+ getattribute $P2115, exception, "payload"
+ .return ($P2115)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "quote:sym<qq>" :subid("117_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2119
+.annotate 'line', 757
+ new $P2118, 'ExceptionHandler'
+ set_addr $P2118, control_2117
+ $P2118."handle_types"(.CONTROL_RETURN)
+ push_eh $P2118
+ .lex "self", self
+ .lex "$/", param_2119
+ find_lex $P2120, "$/"
+ find_lex $P2121, "$/"
+ unless_null $P2121, vivify_626
+ $P2121 = root_new ['parrot';'Hash']
+ vivify_626:
+ set $P2122, $P2121["quote_EXPR"]
+ unless_null $P2122, vivify_627
+ new $P2122, "Undef"
+ vivify_627:
+ $P2123 = $P2122."ast"()
+ $P2124 = $P2120."!make"($P2123)
+ .return ($P2124)
+ control_2117:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2125, exception, "payload"
+ .return ($P2125)
.end
.namespace ["NQP";"Actions"]
-.sub "quote_escape:sym<esc>" :subid("117_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2110
+.include "except_types.pasm"
+.sub "quote:sym<q>" :subid("118_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2129
+.annotate 'line', 758
+ new $P2128, 'ExceptionHandler'
+ set_addr $P2128, control_2127
+ $P2128."handle_types"(.CONTROL_RETURN)
+ push_eh $P2128
+ .lex "self", self
+ .lex "$/", param_2129
+ find_lex $P2130, "$/"
+ find_lex $P2131, "$/"
+ unless_null $P2131, vivify_628
+ $P2131 = root_new ['parrot';'Hash']
+ vivify_628:
+ set $P2132, $P2131["quote_EXPR"]
+ unless_null $P2132, vivify_629
+ new $P2132, "Undef"
+ vivify_629:
+ $P2133 = $P2132."ast"()
+ $P2134 = $P2130."!make"($P2133)
+ .return ($P2134)
+ control_2127:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2135, exception, "payload"
+ .return ($P2135)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "quote:sym<Q>" :subid("119_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2139
+.annotate 'line', 759
+ new $P2138, 'ExceptionHandler'
+ set_addr $P2138, control_2137
+ $P2138."handle_types"(.CONTROL_RETURN)
+ push_eh $P2138
+ .lex "self", self
+ .lex "$/", param_2139
+ find_lex $P2140, "$/"
+ find_lex $P2141, "$/"
+ unless_null $P2141, vivify_630
+ $P2141 = root_new ['parrot';'Hash']
+ vivify_630:
+ set $P2142, $P2141["quote_EXPR"]
+ unless_null $P2142, vivify_631
+ new $P2142, "Undef"
+ vivify_631:
+ $P2143 = $P2142."ast"()
+ $P2144 = $P2140."!make"($P2143)
+ .return ($P2144)
+ control_2137:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2145, exception, "payload"
+ .return ($P2145)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "quote:sym<Q:PIR>" :subid("120_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2149
+.annotate 'line', 760
+ new $P2148, 'ExceptionHandler'
+ set_addr $P2148, control_2147
+ $P2148."handle_types"(.CONTROL_RETURN)
+ push_eh $P2148
+ .lex "self", self
+ .lex "$/", param_2149
.annotate 'line', 761
- new $P2109, 'ExceptionHandler'
- set_addr $P2109, control_2108
- $P2109."handle_types"(57)
- push_eh $P2109
+ find_lex $P2150, "$/"
+ get_hll_global $P2151, ["PAST"], "Op"
+ find_lex $P2152, "$/"
+ unless_null $P2152, vivify_632
+ $P2152 = root_new ['parrot';'Hash']
+ vivify_632:
+ set $P2153, $P2152["quote_EXPR"]
+ unless_null $P2153, vivify_633
+ new $P2153, "Undef"
+ vivify_633:
+ $P2154 = $P2153."ast"()
+ $P2155 = $P2154."value"()
+ find_lex $P2156, "$/"
+ $P2157 = $P2151."new"($P2155 :named("inline"), "inline" :named("pasttype"), $P2156 :named("node"))
+ $P2158 = $P2150."!make"($P2157)
+.annotate 'line', 760
+ .return ($P2158)
+ control_2147:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2159, exception, "payload"
+ .return ($P2159)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "quote:sym</ />" :subid("121_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2163
+ .param pmc param_2164 :optional
+ .param int has_param_2164 :opt_flag
+.annotate 'line', 766
+ new $P2162, 'ExceptionHandler'
+ set_addr $P2162, control_2161
+ $P2162."handle_types"(.CONTROL_RETURN)
+ push_eh $P2162
+ .lex "self", self
+ .lex "$/", param_2163
+ if has_param_2164, optparam_634
+ new $P2165, "Undef"
+ set param_2164, $P2165
+ optparam_634:
+ .lex "$key", param_2164
+.annotate 'line', 776
+ new $P2166, "Undef"
+ .lex "$regex", $P2166
+.annotate 'line', 778
+ new $P2167, "Undef"
+ .lex "$past", $P2167
+.annotate 'line', 767
+ find_lex $P2169, "$key"
+ set $S2170, $P2169
+ iseq $I2171, $S2170, "open"
+ unless $I2171, if_2168_end
+.annotate 'line', 768
+
+ null $P0
+ set_hll_global ['Regex';'P6Regex';'Actions'], '$REGEXNAME', $P0
+
+.annotate 'line', 772
+ get_global $P2172, "@BLOCK"
+ unless_null $P2172, vivify_635
+ $P2172 = root_new ['parrot';'ResizablePMCArray']
+ vivify_635:
+ set $P2173, $P2172[0]
+ unless_null $P2173, vivify_636
+ new $P2173, "Undef"
+ vivify_636:
+ $P2173."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
+.annotate 'line', 773
+ get_global $P2174, "@BLOCK"
+ unless_null $P2174, vivify_637
+ $P2174 = root_new ['parrot';'ResizablePMCArray']
+ vivify_637:
+ set $P2175, $P2174[0]
+ unless_null $P2175, vivify_638
+ new $P2175, "Undef"
+ vivify_638:
+ $P2175."symbol"("$/", "lexical" :named("scope"))
+.annotate 'line', 774
+ new $P2176, "Exception"
+ set $P2176['type'], .CONTROL_RETURN
+ new $P2177, "Integer"
+ assign $P2177, 0
+ setattribute $P2176, 'payload', $P2177
+ throw $P2176
+ if_2168_end:
+.annotate 'line', 777
+ get_hll_global $P2178, ["Regex";"P6Regex";"Actions"], "buildsub"
+ find_lex $P2179, "$/"
+ unless_null $P2179, vivify_639
+ $P2179 = root_new ['parrot';'Hash']
+ vivify_639:
+ set $P2180, $P2179["p6regex"]
+ unless_null $P2180, vivify_640
+ new $P2180, "Undef"
+ vivify_640:
+ $P2181 = $P2180."ast"()
+ get_global $P2182, "@BLOCK"
+ $P2183 = $P2182."shift"()
+ $P2184 = $P2178($P2181, $P2183)
+ store_lex "$regex", $P2184
+.annotate 'line', 779
+ get_hll_global $P2185, ["PAST"], "Op"
+.annotate 'line', 781
+ get_hll_global $P2186, ["PAST"], "Var"
+ new $P2187, "ResizablePMCArray"
+ push $P2187, "Regex"
+ $P2188 = $P2186."new"("Regex" :named("name"), $P2187 :named("namespace"), "package" :named("scope"))
+ find_lex $P2189, "$regex"
+ $P2190 = $P2185."new"($P2188, $P2189, "callmethod" :named("pasttype"), "new" :named("name"))
+.annotate 'line', 779
+ store_lex "$past", $P2190
+.annotate 'line', 785
+ find_lex $P2191, "$regex"
+ find_lex $P2192, "$past"
+ unless_null $P2192, vivify_641
+ $P2192 = root_new ['parrot';'Hash']
+ store_lex "$past", $P2192
+ vivify_641:
+ set $P2192["sink"], $P2191
+.annotate 'line', 786
+ find_lex $P2193, "$/"
+ find_lex $P2194, "$past"
+ $P2195 = $P2193."!make"($P2194)
+.annotate 'line', 766
+ .return ($P2195)
+ control_2161:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2196, exception, "payload"
+ .return ($P2196)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<$>" :subid("122_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2200
+.annotate 'line', 789
+ new $P2199, 'ExceptionHandler'
+ set_addr $P2199, control_2198
+ $P2199."handle_types"(.CONTROL_RETURN)
+ push_eh $P2199
+ .lex "self", self
+ .lex "$/", param_2200
+ find_lex $P2201, "$/"
+ find_lex $P2202, "$/"
+ unless_null $P2202, vivify_642
+ $P2202 = root_new ['parrot';'Hash']
+ vivify_642:
+ set $P2203, $P2202["variable"]
+ unless_null $P2203, vivify_643
+ new $P2203, "Undef"
+ vivify_643:
+ $P2204 = $P2203."ast"()
+ $P2205 = $P2201."!make"($P2204)
+ .return ($P2205)
+ control_2198:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2206, exception, "payload"
+ .return ($P2206)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<{ }>" :subid("123_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2210
+.annotate 'line', 790
+ new $P2209, 'ExceptionHandler'
+ set_addr $P2209, control_2208
+ $P2209."handle_types"(.CONTROL_RETURN)
+ push_eh $P2209
+ .lex "self", self
+ .lex "$/", param_2210
+.annotate 'line', 791
+ find_lex $P2211, "$/"
+ get_hll_global $P2212, ["PAST"], "Op"
+.annotate 'line', 792
+ find_lex $P2213, "$/"
+ unless_null $P2213, vivify_644
+ $P2213 = root_new ['parrot';'Hash']
+ vivify_644:
+ set $P2214, $P2213["block"]
+ unless_null $P2214, vivify_645
+ new $P2214, "Undef"
+ vivify_645:
+ $P2215 = $P2214."ast"()
+ $P2216 = "block_immediate"($P2215)
+ find_lex $P2217, "$/"
+ $P2218 = $P2212."new"($P2216, "set S*" :named("pirop"), $P2217 :named("node"))
+.annotate 'line', 791
+ $P2219 = $P2211."!make"($P2218)
+.annotate 'line', 790
+ .return ($P2219)
+ control_2208:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2220, exception, "payload"
+ .return ($P2220)
+.end
+
+
+.namespace ["NQP";"Actions"]
+.include "except_types.pasm"
+.sub "quote_escape:sym<esc>" :subid("124_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2224
+.annotate 'line', 795
+ new $P2223, 'ExceptionHandler'
+ set_addr $P2223, control_2222
+ $P2223."handle_types"(.CONTROL_RETURN)
+ push_eh $P2223
.lex "self", self
- .lex "$/", param_2110
- find_lex $P2111, "$/"
- $P2112 = $P2111."!make"("\e")
- .return ($P2112)
- control_2108:
+ .lex "$/", param_2224
+ find_lex $P2225, "$/"
+ $P2226 = $P2225."!make"("\e")
+ .return ($P2226)
+ control_2222:
.local pmc exception
.get_results (exception)
- getattribute $P2113, exception, "payload"
- .return ($P2113)
+ getattribute $P2227, exception, "payload"
+ .return ($P2227)
.end
.namespace ["NQP";"Actions"]
-.sub "postfix:sym<.>" :subid("118_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2117
-.annotate 'line', 765
- new $P2116, 'ExceptionHandler'
- set_addr $P2116, control_2115
- $P2116."handle_types"(57)
- push_eh $P2116
+.include "except_types.pasm"
+.sub "postfix:sym<.>" :subid("125_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2231
+.annotate 'line', 799
+ new $P2230, 'ExceptionHandler'
+ set_addr $P2230, control_2229
+ $P2230."handle_types"(.CONTROL_RETURN)
+ push_eh $P2230
.lex "self", self
- .lex "$/", param_2117
- find_lex $P2118, "$/"
- find_lex $P2119, "$/"
- unless_null $P2119, vivify_606
- $P2119 = root_new ['parrot';'Hash']
- vivify_606:
- set $P2120, $P2119["dotty"]
- unless_null $P2120, vivify_607
- new $P2120, "Undef"
- vivify_607:
- $P2121 = $P2120."ast"()
- $P2122 = $P2118."!make"($P2121)
- .return ($P2122)
- control_2115:
+ .lex "$/", param_2231
+ find_lex $P2232, "$/"
+ find_lex $P2233, "$/"
+ unless_null $P2233, vivify_646
+ $P2233 = root_new ['parrot';'Hash']
+ vivify_646:
+ set $P2234, $P2233["dotty"]
+ unless_null $P2234, vivify_647
+ new $P2234, "Undef"
+ vivify_647:
+ $P2235 = $P2234."ast"()
+ $P2236 = $P2232."!make"($P2235)
+ .return ($P2236)
+ control_2229:
.local pmc exception
.get_results (exception)
- getattribute $P2123, exception, "payload"
- .return ($P2123)
+ getattribute $P2237, exception, "payload"
+ .return ($P2237)
.end
.namespace ["NQP";"Actions"]
-.sub "postfix:sym<++>" :subid("119_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2127
-.annotate 'line', 767
- new $P2126, 'ExceptionHandler'
- set_addr $P2126, control_2125
- $P2126."handle_types"(57)
- push_eh $P2126
+.include "except_types.pasm"
+.sub "postfix:sym<++>" :subid("126_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2241
+.annotate 'line', 801
+ new $P2240, 'ExceptionHandler'
+ set_addr $P2240, control_2239
+ $P2240."handle_types"(.CONTROL_RETURN)
+ push_eh $P2240
.lex "self", self
- .lex "$/", param_2127
-.annotate 'line', 768
- find_lex $P2128, "$/"
- get_hll_global $P2129, ["PAST"], "Op"
-.annotate 'line', 769
- new $P2130, "ResizablePMCArray"
- push $P2130, " clone %r, %0"
- push $P2130, " inc %0"
- $P2131 = $P2129."new"("postfix:<++>" :named("name"), $P2130 :named("inline"), "inline" :named("pasttype"))
-.annotate 'line', 768
- $P2132 = $P2128."!make"($P2131)
-.annotate 'line', 767
- .return ($P2132)
- control_2125:
+ .lex "$/", param_2241
+.annotate 'line', 802
+ find_lex $P2242, "$/"
+ get_hll_global $P2243, ["PAST"], "Op"
+.annotate 'line', 803
+ new $P2244, "ResizablePMCArray"
+ push $P2244, " clone %r, %0"
+ push $P2244, " inc %0"
+ $P2245 = $P2243."new"("postfix:<++>" :named("name"), $P2244 :named("inline"), "inline" :named("pasttype"))
+.annotate 'line', 802
+ $P2246 = $P2242."!make"($P2245)
+.annotate 'line', 801
+ .return ($P2246)
+ control_2239:
.local pmc exception
.get_results (exception)
- getattribute $P2133, exception, "payload"
- .return ($P2133)
+ getattribute $P2247, exception, "payload"
+ .return ($P2247)
.end
.namespace ["NQP";"Actions"]
-.sub "postfix:sym<-->" :subid("120_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2137
-.annotate 'line', 773
- new $P2136, 'ExceptionHandler'
- set_addr $P2136, control_2135
- $P2136."handle_types"(57)
- push_eh $P2136
- .lex "self", self
- .lex "$/", param_2137
-.annotate 'line', 774
- find_lex $P2138, "$/"
- get_hll_global $P2139, ["PAST"], "Op"
-.annotate 'line', 775
- new $P2140, "ResizablePMCArray"
- push $P2140, " clone %r, %0"
- push $P2140, " dec %0"
- $P2141 = $P2139."new"("postfix:<-->" :named("name"), $P2140 :named("inline"), "inline" :named("pasttype"))
-.annotate 'line', 774
- $P2142 = $P2138."!make"($P2141)
-.annotate 'line', 773
- .return ($P2142)
- control_2135:
+.include "except_types.pasm"
+.sub "postfix:sym<-->" :subid("127_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2251
+.annotate 'line', 807
+ new $P2250, 'ExceptionHandler'
+ set_addr $P2250, control_2249
+ $P2250."handle_types"(.CONTROL_RETURN)
+ push_eh $P2250
+ .lex "self", self
+ .lex "$/", param_2251
+.annotate 'line', 808
+ find_lex $P2252, "$/"
+ get_hll_global $P2253, ["PAST"], "Op"
+.annotate 'line', 809
+ new $P2254, "ResizablePMCArray"
+ push $P2254, " clone %r, %0"
+ push $P2254, " dec %0"
+ $P2255 = $P2253."new"("postfix:<-->" :named("name"), $P2254 :named("inline"), "inline" :named("pasttype"))
+.annotate 'line', 808
+ $P2256 = $P2252."!make"($P2255)
+.annotate 'line', 807
+ .return ($P2256)
+ control_2249:
.local pmc exception
.get_results (exception)
- getattribute $P2143, exception, "payload"
- .return ($P2143)
+ getattribute $P2257, exception, "payload"
+ .return ($P2257)
.end
.namespace ["NQP";"Actions"]
-.sub "prefix:sym<make>" :subid("121_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2147
-.annotate 'line', 779
- new $P2146, 'ExceptionHandler'
- set_addr $P2146, control_2145
- $P2146."handle_types"(57)
- push_eh $P2146
- .lex "self", self
- .lex "$/", param_2147
-.annotate 'line', 780
- find_lex $P2148, "$/"
- get_hll_global $P2149, ["PAST"], "Op"
-.annotate 'line', 781
- get_hll_global $P2150, ["PAST"], "Var"
- $P2151 = $P2150."new"("$/" :named("name"), "contextual" :named("scope"))
- find_lex $P2152, "$/"
- $P2153 = $P2149."new"($P2151, "callmethod" :named("pasttype"), "!make" :named("name"), $P2152 :named("node"))
-.annotate 'line', 780
- $P2154 = $P2148."!make"($P2153)
-.annotate 'line', 779
- .return ($P2154)
- control_2145:
+.include "except_types.pasm"
+.sub "prefix:sym<make>" :subid("128_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2261
+.annotate 'line', 813
+ new $P2260, 'ExceptionHandler'
+ set_addr $P2260, control_2259
+ $P2260."handle_types"(.CONTROL_RETURN)
+ push_eh $P2260
+ .lex "self", self
+ .lex "$/", param_2261
+.annotate 'line', 814
+ find_lex $P2262, "$/"
+ get_hll_global $P2263, ["PAST"], "Op"
+.annotate 'line', 815
+ get_hll_global $P2264, ["PAST"], "Var"
+ $P2265 = $P2264."new"("$/" :named("name"), "contextual" :named("scope"))
+ find_lex $P2266, "$/"
+ $P2267 = $P2263."new"($P2265, "callmethod" :named("pasttype"), "!make" :named("name"), $P2266 :named("node"))
+.annotate 'line', 814
+ $P2268 = $P2262."!make"($P2267)
+.annotate 'line', 813
+ .return ($P2268)
+ control_2259:
.local pmc exception
.get_results (exception)
- getattribute $P2155, exception, "payload"
- .return ($P2155)
+ getattribute $P2269, exception, "payload"
+ .return ($P2269)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<next>" :subid("122_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2160
-.annotate 'line', 801
- new $P2159, 'ExceptionHandler'
- set_addr $P2159, control_2158
- $P2159."handle_types"(57)
- push_eh $P2159
+.include "except_types.pasm"
+.sub "term:sym<next>" :subid("129_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2274
+.annotate 'line', 831
+ new $P2273, 'ExceptionHandler'
+ set_addr $P2273, control_2272
+ $P2273."handle_types"(.CONTROL_RETURN)
+ push_eh $P2273
.lex "self", self
- .lex "$/", param_2160
- find_lex $P2161, "$/"
- $P2162 = "control"($P2161, ".CONTROL_LOOP_NEXT")
- .return ($P2162)
- control_2158:
+ .lex "$/", param_2274
+ find_lex $P2275, "$/"
+ $P2276 = "control"($P2275, "CONTROL_LOOP_NEXT")
+ .return ($P2276)
+ control_2272:
.local pmc exception
.get_results (exception)
- getattribute $P2163, exception, "payload"
- .return ($P2163)
+ getattribute $P2277, exception, "payload"
+ .return ($P2277)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<last>" :subid("123_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2167
-.annotate 'line', 802
- new $P2166, 'ExceptionHandler'
- set_addr $P2166, control_2165
- $P2166."handle_types"(57)
- push_eh $P2166
+.include "except_types.pasm"
+.sub "term:sym<last>" :subid("130_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2281
+.annotate 'line', 832
+ new $P2280, 'ExceptionHandler'
+ set_addr $P2280, control_2279
+ $P2280."handle_types"(.CONTROL_RETURN)
+ push_eh $P2280
.lex "self", self
- .lex "$/", param_2167
- find_lex $P2168, "$/"
- $P2169 = "control"($P2168, ".CONTROL_LOOP_LAST")
- .return ($P2169)
- control_2165:
+ .lex "$/", param_2281
+ find_lex $P2282, "$/"
+ $P2283 = "control"($P2282, "CONTROL_LOOP_LAST")
+ .return ($P2283)
+ control_2279:
.local pmc exception
.get_results (exception)
- getattribute $P2170, exception, "payload"
- .return ($P2170)
+ getattribute $P2284, exception, "payload"
+ .return ($P2284)
.end
.namespace ["NQP";"Actions"]
-.sub "term:sym<redo>" :subid("124_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2174
-.annotate 'line', 803
- new $P2173, 'ExceptionHandler'
- set_addr $P2173, control_2172
- $P2173."handle_types"(57)
- push_eh $P2173
- .lex "self", self
- .lex "$/", param_2174
- find_lex $P2175, "$/"
- $P2176 = "control"($P2175, ".CONTROL_LOOP_REDO")
- .return ($P2176)
- control_2172:
- .local pmc exception
- .get_results (exception)
- getattribute $P2177, exception, "payload"
- .return ($P2177)
+.include "except_types.pasm"
+.sub "term:sym<redo>" :subid("131_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2288
+.annotate 'line', 833
+ new $P2287, 'ExceptionHandler'
+ set_addr $P2287, control_2286
+ $P2287."handle_types"(.CONTROL_RETURN)
+ push_eh $P2287
+ .lex "self", self
+ .lex "$/", param_2288
+ find_lex $P2289, "$/"
+ $P2290 = "control"($P2289, "CONTROL_LOOP_REDO")
+ .return ($P2290)
+ control_2286:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2291, exception, "payload"
+ .return ($P2291)
.end
.namespace ["NQP";"Actions"]
-.sub "infix:sym<~~>" :subid("125_1274022903.56472") :method :outer("11_1274022903.56472")
- .param pmc param_2181
-.annotate 'line', 805
- new $P2180, 'ExceptionHandler'
- set_addr $P2180, control_2179
- $P2180."handle_types"(57)
- push_eh $P2180
- .lex "self", self
- .lex "$/", param_2181
-.annotate 'line', 806
- find_lex $P2182, "$/"
- get_hll_global $P2183, ["PAST"], "Op"
- find_lex $P2184, "$/"
- $P2185 = $P2183."new"("callmethod" :named("pasttype"), "ACCEPTS" :named("name"), $P2184 :named("node"))
- $P2186 = $P2182."!make"($P2185)
-.annotate 'line', 805
- .return ($P2186)
- control_2179:
+.include "except_types.pasm"
+.sub "infix:sym<~~>" :subid("132_1275811497.55064") :method :outer("11_1275811497.55064")
+ .param pmc param_2295
+.annotate 'line', 835
+ new $P2294, 'ExceptionHandler'
+ set_addr $P2294, control_2293
+ $P2294."handle_types"(.CONTROL_RETURN)
+ push_eh $P2294
+ .lex "self", self
+ .lex "$/", param_2295
+.annotate 'line', 836
+ find_lex $P2296, "$/"
+ get_hll_global $P2297, ["PAST"], "Op"
+ find_lex $P2298, "$/"
+ $P2299 = $P2297."new"("callmethod" :named("pasttype"), "ACCEPTS" :named("name"), $P2298 :named("node"))
+ $P2300 = $P2296."!make"($P2299)
+.annotate 'line', 835
+ .return ($P2300)
+ control_2293:
.local pmc exception
.get_results (exception)
- getattribute $P2187, exception, "payload"
- .return ($P2187)
+ getattribute $P2301, exception, "payload"
+ .return ($P2301)
.end
.namespace ["NQP";"RegexActions"]
-.sub "_block2188" :subid("126_1274022903.56472") :outer("11_1274022903.56472")
-.annotate 'line', 810
- .const 'Sub' $P2224 = "130_1274022903.56472"
- capture_lex $P2224
- .const 'Sub' $P2214 = "129_1274022903.56472"
- capture_lex $P2214
- .const 'Sub' $P2204 = "128_1274022903.56472"
- capture_lex $P2204
- .const 'Sub' $P2190 = "127_1274022903.56472"
- capture_lex $P2190
-.annotate 'line', 821
- .const 'Sub' $P2224 = "130_1274022903.56472"
- newclosure $P2251, $P2224
-.annotate 'line', 810
- .return ($P2251)
+.sub "_block2302" :subid("133_1275811497.55064") :outer("11_1275811497.55064")
+.annotate 'line', 840
+ .const 'Sub' $P2388 = "140_1275811497.55064"
+ capture_lex $P2388
+ .const 'Sub' $P2375 = "139_1275811497.55064"
+ capture_lex $P2375
+ .const 'Sub' $P2358 = "138_1275811497.55064"
+ capture_lex $P2358
+ .const 'Sub' $P2345 = "137_1275811497.55064"
+ capture_lex $P2345
+ .const 'Sub' $P2332 = "136_1275811497.55064"
+ capture_lex $P2332
+ .const 'Sub' $P2319 = "135_1275811497.55064"
+ capture_lex $P2319
+ .const 'Sub' $P2304 = "134_1275811497.55064"
+ capture_lex $P2304
+.annotate 'line', 874
+ .const 'Sub' $P2388 = "140_1275811497.55064"
+ newclosure $P2413, $P2388
+.annotate 'line', 840
+ .return ($P2413)
.end
.namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<:my>" :subid("127_1274022903.56472") :method :outer("126_1274022903.56472")
- .param pmc param_2193
-.annotate 'line', 812
- new $P2192, 'ExceptionHandler'
- set_addr $P2192, control_2191
- $P2192."handle_types"(57)
- push_eh $P2192
- .lex "self", self
- .lex "$/", param_2193
-.annotate 'line', 813
- new $P2194, "Undef"
- .lex "$past", $P2194
- find_lex $P2195, "$/"
- unless_null $P2195, vivify_608
- $P2195 = root_new ['parrot';'Hash']
- vivify_608:
- set $P2196, $P2195["statement"]
- unless_null $P2196, vivify_609
- new $P2196, "Undef"
- vivify_609:
- $P2197 = $P2196."ast"()
- store_lex "$past", $P2197
-.annotate 'line', 814
- find_lex $P2198, "$/"
- get_hll_global $P2199, ["PAST"], "Regex"
- find_lex $P2200, "$past"
- $P2201 = $P2199."new"($P2200, "pastnode" :named("pasttype"))
- $P2202 = $P2198."!make"($P2201)
-.annotate 'line', 812
- .return ($P2202)
- control_2191:
+.include "except_types.pasm"
+.sub "metachar:sym<:my>" :subid("134_1275811497.55064") :method :outer("133_1275811497.55064")
+ .param pmc param_2307
+.annotate 'line', 842
+ new $P2306, 'ExceptionHandler'
+ set_addr $P2306, control_2305
+ $P2306."handle_types"(.CONTROL_RETURN)
+ push_eh $P2306
+ .lex "self", self
+ .lex "$/", param_2307
+.annotate 'line', 843
+ new $P2308, "Undef"
+ .lex "$past", $P2308
+ find_lex $P2309, "$/"
+ unless_null $P2309, vivify_648
+ $P2309 = root_new ['parrot';'Hash']
+ vivify_648:
+ set $P2310, $P2309["statement"]
+ unless_null $P2310, vivify_649
+ new $P2310, "Undef"
+ vivify_649:
+ $P2311 = $P2310."ast"()
+ store_lex "$past", $P2311
+.annotate 'line', 844
+ find_lex $P2312, "$/"
+ get_hll_global $P2313, ["PAST"], "Regex"
+ find_lex $P2314, "$past"
+ find_lex $P2315, "$/"
+ $P2316 = $P2313."new"($P2314, "pastnode" :named("pasttype"), "declarative" :named("subtype"), $P2315 :named("node"))
+ $P2317 = $P2312."!make"($P2316)
+.annotate 'line', 842
+ .return ($P2317)
+ control_2305:
.local pmc exception
.get_results (exception)
- getattribute $P2203, exception, "payload"
- .return ($P2203)
+ getattribute $P2318, exception, "payload"
+ .return ($P2318)
.end
.namespace ["NQP";"RegexActions"]
-.sub "metachar:sym<{ }>" :subid("128_1274022903.56472") :method :outer("126_1274022903.56472")
- .param pmc param_2207
-.annotate 'line', 817
- new $P2206, 'ExceptionHandler'
- set_addr $P2206, control_2205
- $P2206."handle_types"(57)
- push_eh $P2206
- .lex "self", self
- .lex "$/", param_2207
- find_lex $P2208, "$/"
- find_lex $P2209, "$/"
- unless_null $P2209, vivify_610
- $P2209 = root_new ['parrot';'Hash']
- vivify_610:
- set $P2210, $P2209["codeblock"]
- unless_null $P2210, vivify_611
- new $P2210, "Undef"
- vivify_611:
- $P2211 = $P2210."ast"()
- $P2212 = $P2208."!make"($P2211)
- .return ($P2212)
- control_2205:
+.include "except_types.pasm"
+.sub "metachar:sym<{ }>" :subid("135_1275811497.55064") :method :outer("133_1275811497.55064")
+ .param pmc param_2322
+.annotate 'line', 848
+ new $P2321, 'ExceptionHandler'
+ set_addr $P2321, control_2320
+ $P2321."handle_types"(.CONTROL_RETURN)
+ push_eh $P2321
+ .lex "self", self
+ .lex "$/", param_2322
+.annotate 'line', 849
+ find_lex $P2323, "$/"
+ get_hll_global $P2324, ["PAST"], "Regex"
+ find_lex $P2325, "$/"
+ unless_null $P2325, vivify_650
+ $P2325 = root_new ['parrot';'Hash']
+ vivify_650:
+ set $P2326, $P2325["codeblock"]
+ unless_null $P2326, vivify_651
+ new $P2326, "Undef"
+ vivify_651:
+ $P2327 = $P2326."ast"()
+ find_lex $P2328, "$/"
+ $P2329 = $P2324."new"($P2327, "pastnode" :named("pasttype"), $P2328 :named("node"))
+ $P2330 = $P2323."!make"($P2329)
+.annotate 'line', 848
+ .return ($P2330)
+ control_2320:
.local pmc exception
.get_results (exception)
- getattribute $P2213, exception, "payload"
- .return ($P2213)
+ getattribute $P2331, exception, "payload"
+ .return ($P2331)
.end
.namespace ["NQP";"RegexActions"]
-.sub "assertion:sym<{ }>" :subid("129_1274022903.56472") :method :outer("126_1274022903.56472")
- .param pmc param_2217
-.annotate 'line', 819
- new $P2216, 'ExceptionHandler'
- set_addr $P2216, control_2215
- $P2216."handle_types"(57)
- push_eh $P2216
- .lex "self", self
- .lex "$/", param_2217
- find_lex $P2218, "$/"
- find_lex $P2219, "$/"
- unless_null $P2219, vivify_612
- $P2219 = root_new ['parrot';'Hash']
- vivify_612:
- set $P2220, $P2219["codeblock"]
- unless_null $P2220, vivify_613
- new $P2220, "Undef"
- vivify_613:
- $P2221 = $P2220."ast"()
- $P2222 = $P2218."!make"($P2221)
- .return ($P2222)
- control_2215:
+.include "except_types.pasm"
+.sub "metachar:sym<nqpvar>" :subid("136_1275811497.55064") :method :outer("133_1275811497.55064")
+ .param pmc param_2335
+.annotate 'line', 853
+ new $P2334, 'ExceptionHandler'
+ set_addr $P2334, control_2333
+ $P2334."handle_types"(.CONTROL_RETURN)
+ push_eh $P2334
+ .lex "self", self
+ .lex "$/", param_2335
+.annotate 'line', 854
+ find_lex $P2336, "$/"
+ get_hll_global $P2337, ["PAST"], "Regex"
+ find_lex $P2338, "$/"
+ unless_null $P2338, vivify_652
+ $P2338 = root_new ['parrot';'Hash']
+ vivify_652:
+ set $P2339, $P2338["var"]
+ unless_null $P2339, vivify_653
+ new $P2339, "Undef"
+ vivify_653:
+ $P2340 = $P2339."ast"()
+ find_lex $P2341, "$/"
+ $P2342 = $P2337."new"("!INTERPOLATE", $P2340, "subrule" :named("pasttype"), "method" :named("subtype"), $P2341 :named("node"))
+ $P2343 = $P2336."!make"($P2342)
+.annotate 'line', 853
+ .return ($P2343)
+ control_2333:
.local pmc exception
.get_results (exception)
- getattribute $P2223, exception, "payload"
- .return ($P2223)
+ getattribute $P2344, exception, "payload"
+ .return ($P2344)
.end
.namespace ["NQP";"RegexActions"]
-.sub "codeblock" :subid("130_1274022903.56472") :method :outer("126_1274022903.56472")
- .param pmc param_2227
-.annotate 'line', 821
- new $P2226, 'ExceptionHandler'
- set_addr $P2226, control_2225
- $P2226."handle_types"(57)
- push_eh $P2226
- .lex "self", self
- .lex "$/", param_2227
-.annotate 'line', 822
- new $P2228, "Undef"
- .lex "$block", $P2228
-.annotate 'line', 824
- new $P2229, "Undef"
- .lex "$past", $P2229
-.annotate 'line', 822
- find_lex $P2230, "$/"
- unless_null $P2230, vivify_614
- $P2230 = root_new ['parrot';'Hash']
- vivify_614:
- set $P2231, $P2230["block"]
- unless_null $P2231, vivify_615
- new $P2231, "Undef"
- vivify_615:
- $P2232 = $P2231."ast"()
- store_lex "$block", $P2232
-.annotate 'line', 823
- find_lex $P2233, "$block"
- $P2233."blocktype"("immediate")
-.annotate 'line', 825
- get_hll_global $P2234, ["PAST"], "Regex"
-.annotate 'line', 826
- get_hll_global $P2235, ["PAST"], "Stmts"
-.annotate 'line', 827
- get_hll_global $P2236, ["PAST"], "Op"
-.annotate 'line', 828
- get_hll_global $P2237, ["PAST"], "Var"
- $P2238 = $P2237."new"("$/" :named("name"))
-.annotate 'line', 829
- get_hll_global $P2239, ["PAST"], "Op"
-.annotate 'line', 830
- get_hll_global $P2240, ["PAST"], "Var"
- $P2241 = $P2240."new"(unicode:"$\x{a2}" :named("name"))
- $P2242 = $P2239."new"($P2241, "MATCH" :named("name"), "callmethod" :named("pasttype"))
-.annotate 'line', 829
- $P2243 = $P2236."new"($P2238, $P2242, "bind" :named("pasttype"))
-.annotate 'line', 827
- find_lex $P2244, "$block"
- $P2245 = $P2235."new"($P2243, $P2244)
-.annotate 'line', 826
- $P2246 = $P2234."new"($P2245, "pastnode" :named("pasttype"))
-.annotate 'line', 825
- store_lex "$past", $P2246
-.annotate 'line', 840
- find_lex $P2247, "$/"
- find_lex $P2248, "$past"
- $P2249 = $P2247."!make"($P2248)
-.annotate 'line', 821
- .return ($P2249)
- control_2225:
+.include "except_types.pasm"
+.sub "assertion:sym<{ }>" :subid("137_1275811497.55064") :method :outer("133_1275811497.55064")
+ .param pmc param_2348
+.annotate 'line', 858
+ new $P2347, 'ExceptionHandler'
+ set_addr $P2347, control_2346
+ $P2347."handle_types"(.CONTROL_RETURN)
+ push_eh $P2347
+ .lex "self", self
+ .lex "$/", param_2348
+.annotate 'line', 859
+ find_lex $P2349, "$/"
+ get_hll_global $P2350, ["PAST"], "Regex"
+ find_lex $P2351, "$/"
+ unless_null $P2351, vivify_654
+ $P2351 = root_new ['parrot';'Hash']
+ vivify_654:
+ set $P2352, $P2351["codeblock"]
+ unless_null $P2352, vivify_655
+ new $P2352, "Undef"
+ vivify_655:
+ $P2353 = $P2352."ast"()
+ find_lex $P2354, "$/"
+ $P2355 = $P2350."new"("!INTERPOLATE_REGEX", $P2353, "subrule" :named("pasttype"), "method" :named("subtype"), $P2354 :named("node"))
+ $P2356 = $P2349."!make"($P2355)
+.annotate 'line', 858
+ .return ($P2356)
+ control_2346:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2357, exception, "payload"
+ .return ($P2357)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.include "except_types.pasm"
+.sub "assertion:sym<?{ }>" :subid("138_1275811497.55064") :method :outer("133_1275811497.55064")
+ .param pmc param_2361
+.annotate 'line', 863
+ new $P2360, 'ExceptionHandler'
+ set_addr $P2360, control_2359
+ $P2360."handle_types"(.CONTROL_RETURN)
+ push_eh $P2360
+ .lex "self", self
+ .lex "$/", param_2361
+.annotate 'line', 864
+ find_lex $P2362, "$/"
+ get_hll_global $P2363, ["PAST"], "Regex"
+ find_lex $P2364, "$/"
+ unless_null $P2364, vivify_656
+ $P2364 = root_new ['parrot';'Hash']
+ vivify_656:
+ set $P2365, $P2364["codeblock"]
+ unless_null $P2365, vivify_657
+ new $P2365, "Undef"
+ vivify_657:
+ $P2366 = $P2365."ast"()
+.annotate 'line', 865
+ find_lex $P2367, "$/"
+ unless_null $P2367, vivify_658
+ $P2367 = root_new ['parrot';'Hash']
+ vivify_658:
+ set $P2368, $P2367["zw"]
+ unless_null $P2368, vivify_659
+ new $P2368, "Undef"
+ vivify_659:
+ set $S2369, $P2368
+ iseq $I2370, $S2369, "!"
+ find_lex $P2371, "$/"
+ $P2372 = $P2363."new"($P2366, "zerowidth" :named("subtype"), $I2370 :named("negate"), "pastnode" :named("pasttype"), $P2371 :named("node"))
+.annotate 'line', 864
+ $P2373 = $P2362."!make"($P2372)
+.annotate 'line', 863
+ .return ($P2373)
+ control_2359:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2374, exception, "payload"
+ .return ($P2374)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.include "except_types.pasm"
+.sub "assertion:sym<var>" :subid("139_1275811497.55064") :method :outer("133_1275811497.55064")
+ .param pmc param_2378
+.annotate 'line', 869
+ new $P2377, 'ExceptionHandler'
+ set_addr $P2377, control_2376
+ $P2377."handle_types"(.CONTROL_RETURN)
+ push_eh $P2377
+ .lex "self", self
+ .lex "$/", param_2378
+.annotate 'line', 870
+ find_lex $P2379, "$/"
+ get_hll_global $P2380, ["PAST"], "Regex"
+ find_lex $P2381, "$/"
+ unless_null $P2381, vivify_660
+ $P2381 = root_new ['parrot';'Hash']
+ vivify_660:
+ set $P2382, $P2381["var"]
+ unless_null $P2382, vivify_661
+ new $P2382, "Undef"
+ vivify_661:
+ $P2383 = $P2382."ast"()
+ find_lex $P2384, "$/"
+ $P2385 = $P2380."new"("!INTERPOLATE_REGEX", $P2383, "subrule" :named("pasttype"), "method" :named("subtype"), $P2384 :named("node"))
+ $P2386 = $P2379."!make"($P2385)
+.annotate 'line', 869
+ .return ($P2386)
+ control_2376:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P2387, exception, "payload"
+ .return ($P2387)
+.end
+
+
+.namespace ["NQP";"RegexActions"]
+.include "except_types.pasm"
+.sub "codeblock" :subid("140_1275811497.55064") :method :outer("133_1275811497.55064")
+ .param pmc param_2391
+.annotate 'line', 874
+ new $P2390, 'ExceptionHandler'
+ set_addr $P2390, control_2389
+ $P2390."handle_types"(.CONTROL_RETURN)
+ push_eh $P2390
+ .lex "self", self
+ .lex "$/", param_2391
+.annotate 'line', 875
+ new $P2392, "Undef"
+ .lex "$block", $P2392
+.annotate 'line', 877
+ new $P2393, "Undef"
+ .lex "$past", $P2393
+.annotate 'line', 875
+ find_lex $P2394, "$/"
+ unless_null $P2394, vivify_662
+ $P2394 = root_new ['parrot';'Hash']
+ vivify_662:
+ set $P2395, $P2394["block"]
+ unless_null $P2395, vivify_663
+ new $P2395, "Undef"
+ vivify_663:
+ $P2396 = $P2395."ast"()
+ store_lex "$block", $P2396
+.annotate 'line', 876
+ find_lex $P2397, "$block"
+ $P2397."blocktype"("immediate")
+.annotate 'line', 878
+ get_hll_global $P2398, ["PAST"], "Stmts"
+.annotate 'line', 879
+ get_hll_global $P2399, ["PAST"], "Op"
+.annotate 'line', 880
+ get_hll_global $P2400, ["PAST"], "Var"
+ $P2401 = $P2400."new"("$/" :named("name"))
+.annotate 'line', 881
+ get_hll_global $P2402, ["PAST"], "Op"
+.annotate 'line', 882
+ get_hll_global $P2403, ["PAST"], "Var"
+ $P2404 = $P2403."new"(unicode:"$\x{a2}" :named("name"))
+ $P2405 = $P2402."new"($P2404, "MATCH" :named("name"), "callmethod" :named("pasttype"))
+.annotate 'line', 881
+ $P2406 = $P2399."new"($P2401, $P2405, "bind" :named("pasttype"))
+.annotate 'line', 879
+ find_lex $P2407, "$block"
+ $P2408 = $P2398."new"($P2406, $P2407)
+.annotate 'line', 878
+ store_lex "$past", $P2408
+.annotate 'line', 890
+ find_lex $P2409, "$/"
+ find_lex $P2410, "$past"
+ $P2411 = $P2409."!make"($P2410)
+.annotate 'line', 874
+ .return ($P2411)
+ control_2389:
.local pmc exception
.get_results (exception)
- getattribute $P2250, exception, "payload"
- .return ($P2250)
+ getattribute $P2412, exception, "payload"
+ .return ($P2412)
.end
.namespace ["NQP";"Actions"]
-.sub "_block2253" :load :anon :subid("131_1274022903.56472")
+.sub "_block2415" :load :anon :subid("141_1275811497.55064")
.annotate 'line', 3
- .const 'Sub' $P2255 = "11_1274022903.56472"
- $P2256 = $P2255()
- .return ($P2256)
+ .const 'Sub' $P2417 = "11_1275811497.55064"
+ $P2418 = $P2417()
+ .return ($P2418)
.end
.namespace []
-.sub "_block2263" :load :anon :subid("133_1274022903.56472")
+.sub "_block2425" :load :anon :subid("143_1275811497.55064")
.annotate 'line', 1
- .const 'Sub' $P2265 = "10_1274022903.56472"
- $P2266 = $P2265()
- .return ($P2266)
+ .const 'Sub' $P2427 = "10_1275811497.55064"
+ $P2428 = $P2427()
+ .return ($P2428)
.end
### .include 'src/cheats/nqp-builtins.pir'
Modified: branches/gsoc_threads/ext/nqp-rx/src/stage0/P6Regex-s0.pir
==============================================================================
--- branches/gsoc_threads/ext/nqp-rx/src/stage0/P6Regex-s0.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/ext/nqp-rx/src/stage0/P6Regex-s0.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -16,169 +16,183 @@
### .include 'gen/p6regex-grammar.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1274022883.50471")
+.sub "_block11" :anon :subid("10_1275811476.7961")
.annotate 'line', 0
get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13"
capture_lex $P14
+.annotate 'line', 1
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
.annotate 'line', 3
get_hll_global $P14, ["Regex";"P6Regex";"Grammar"], "_block13"
capture_lex $P14
- $P583 = $P14()
+ $P588 = $P14()
.annotate 'line', 1
- .return ($P583)
- .const 'Sub' $P585 = "159_1274022883.50471"
- .return ($P585)
+ .return ($P588)
+ .const 'Sub' $P590 = "159_1275811476.7961"
+ .return ($P590)
.end
.namespace []
-.sub "" :load :init :subid("post160") :outer("10_1274022883.50471")
+.sub "" :load :init :subid("post160") :outer("10_1275811476.7961")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1274022883.50471"
+ .const 'Sub' $P12 = "10_1275811476.7961"
.local pmc block
set block, $P12
- $P588 = get_root_global ["parrot"], "P6metaclass"
- $P588."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
+ $P593 = get_root_global ["parrot"], "P6metaclass"
+ $P593."new_class"("Regex::P6Regex::Grammar", "HLL::Grammar" :named("parent"))
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block13" :subid("11_1274022883.50471") :outer("10_1274022883.50471")
+.sub "_block13" :subid("11_1275811476.7961") :outer("10_1275811476.7961")
.annotate 'line', 3
- .const 'Sub' $P571 = "156_1274022883.50471"
- capture_lex $P571
- .const 'Sub' $P563 = "154_1274022883.50471"
- capture_lex $P563
- .const 'Sub' $P555 = "152_1274022883.50471"
- capture_lex $P555
- .const 'Sub' $P534 = "147_1274022883.50471"
- capture_lex $P534
- .const 'Sub' $P499 = "141_1274022883.50471"
- capture_lex $P499
- .const 'Sub' $P487 = "138_1274022883.50471"
- capture_lex $P487
- .const 'Sub' $P474 = "135_1274022883.50471"
- capture_lex $P474
- .const 'Sub' $P468 = "133_1274022883.50471"
- capture_lex $P468
- .const 'Sub' $P457 = "130_1274022883.50471"
- capture_lex $P457
- .const 'Sub' $P446 = "127_1274022883.50471"
- capture_lex $P446
- .const 'Sub' $P437 = "123_1274022883.50471"
- capture_lex $P437
- .const 'Sub' $P431 = "121_1274022883.50471"
- capture_lex $P431
- .const 'Sub' $P425 = "119_1274022883.50471"
- capture_lex $P425
- .const 'Sub' $P419 = "117_1274022883.50471"
- capture_lex $P419
- .const 'Sub' $P413 = "115_1274022883.50471"
- capture_lex $P413
- .const 'Sub' $P405 = "113_1274022883.50471"
- capture_lex $P405
- .const 'Sub' $P394 = "111_1274022883.50471"
- capture_lex $P394
- .const 'Sub' $P383 = "109_1274022883.50471"
- capture_lex $P383
- .const 'Sub' $P377 = "107_1274022883.50471"
- capture_lex $P377
- .const 'Sub' $P371 = "105_1274022883.50471"
- capture_lex $P371
- .const 'Sub' $P365 = "103_1274022883.50471"
- capture_lex $P365
- .const 'Sub' $P359 = "101_1274022883.50471"
- capture_lex $P359
- .const 'Sub' $P353 = "99_1274022883.50471"
- capture_lex $P353
- .const 'Sub' $P347 = "97_1274022883.50471"
- capture_lex $P347
- .const 'Sub' $P341 = "95_1274022883.50471"
- capture_lex $P341
- .const 'Sub' $P335 = "93_1274022883.50471"
- capture_lex $P335
- .const 'Sub' $P323 = "89_1274022883.50471"
- capture_lex $P323
- .const 'Sub' $P311 = "87_1274022883.50471"
- capture_lex $P311
- .const 'Sub' $P304 = "85_1274022883.50471"
- capture_lex $P304
- .const 'Sub' $P287 = "83_1274022883.50471"
- capture_lex $P287
- .const 'Sub' $P280 = "81_1274022883.50471"
- capture_lex $P280
- .const 'Sub' $P274 = "79_1274022883.50471"
- capture_lex $P274
- .const 'Sub' $P268 = "77_1274022883.50471"
- capture_lex $P268
- .const 'Sub' $P261 = "75_1274022883.50471"
- capture_lex $P261
- .const 'Sub' $P254 = "73_1274022883.50471"
- capture_lex $P254
- .const 'Sub' $P247 = "71_1274022883.50471"
- capture_lex $P247
- .const 'Sub' $P240 = "69_1274022883.50471"
- capture_lex $P240
- .const 'Sub' $P234 = "67_1274022883.50471"
- capture_lex $P234
- .const 'Sub' $P228 = "65_1274022883.50471"
- capture_lex $P228
- .const 'Sub' $P222 = "63_1274022883.50471"
- capture_lex $P222
- .const 'Sub' $P216 = "61_1274022883.50471"
- capture_lex $P216
- .const 'Sub' $P210 = "59_1274022883.50471"
+ .const 'Sub' $P576 = "156_1275811476.7961"
+ capture_lex $P576
+ .const 'Sub' $P568 = "154_1275811476.7961"
+ capture_lex $P568
+ .const 'Sub' $P560 = "152_1275811476.7961"
+ capture_lex $P560
+ .const 'Sub' $P539 = "147_1275811476.7961"
+ capture_lex $P539
+ .const 'Sub' $P504 = "141_1275811476.7961"
+ capture_lex $P504
+ .const 'Sub' $P492 = "138_1275811476.7961"
+ capture_lex $P492
+ .const 'Sub' $P479 = "135_1275811476.7961"
+ capture_lex $P479
+ .const 'Sub' $P473 = "133_1275811476.7961"
+ capture_lex $P473
+ .const 'Sub' $P462 = "130_1275811476.7961"
+ capture_lex $P462
+ .const 'Sub' $P451 = "127_1275811476.7961"
+ capture_lex $P451
+ .const 'Sub' $P442 = "123_1275811476.7961"
+ capture_lex $P442
+ .const 'Sub' $P436 = "121_1275811476.7961"
+ capture_lex $P436
+ .const 'Sub' $P430 = "119_1275811476.7961"
+ capture_lex $P430
+ .const 'Sub' $P424 = "117_1275811476.7961"
+ capture_lex $P424
+ .const 'Sub' $P418 = "115_1275811476.7961"
+ capture_lex $P418
+ .const 'Sub' $P410 = "113_1275811476.7961"
+ capture_lex $P410
+ .const 'Sub' $P399 = "111_1275811476.7961"
+ capture_lex $P399
+ .const 'Sub' $P388 = "109_1275811476.7961"
+ capture_lex $P388
+ .const 'Sub' $P382 = "107_1275811476.7961"
+ capture_lex $P382
+ .const 'Sub' $P376 = "105_1275811476.7961"
+ capture_lex $P376
+ .const 'Sub' $P370 = "103_1275811476.7961"
+ capture_lex $P370
+ .const 'Sub' $P364 = "101_1275811476.7961"
+ capture_lex $P364
+ .const 'Sub' $P358 = "99_1275811476.7961"
+ capture_lex $P358
+ .const 'Sub' $P352 = "97_1275811476.7961"
+ capture_lex $P352
+ .const 'Sub' $P346 = "95_1275811476.7961"
+ capture_lex $P346
+ .const 'Sub' $P340 = "93_1275811476.7961"
+ capture_lex $P340
+ .const 'Sub' $P328 = "89_1275811476.7961"
+ capture_lex $P328
+ .const 'Sub' $P316 = "87_1275811476.7961"
+ capture_lex $P316
+ .const 'Sub' $P309 = "85_1275811476.7961"
+ capture_lex $P309
+ .const 'Sub' $P292 = "83_1275811476.7961"
+ capture_lex $P292
+ .const 'Sub' $P285 = "81_1275811476.7961"
+ capture_lex $P285
+ .const 'Sub' $P279 = "79_1275811476.7961"
+ capture_lex $P279
+ .const 'Sub' $P273 = "77_1275811476.7961"
+ capture_lex $P273
+ .const 'Sub' $P266 = "75_1275811476.7961"
+ capture_lex $P266
+ .const 'Sub' $P259 = "73_1275811476.7961"
+ capture_lex $P259
+ .const 'Sub' $P252 = "71_1275811476.7961"
+ capture_lex $P252
+ .const 'Sub' $P245 = "69_1275811476.7961"
+ capture_lex $P245
+ .const 'Sub' $P239 = "67_1275811476.7961"
+ capture_lex $P239
+ .const 'Sub' $P233 = "65_1275811476.7961"
+ capture_lex $P233
+ .const 'Sub' $P227 = "63_1275811476.7961"
+ capture_lex $P227
+ .const 'Sub' $P221 = "61_1275811476.7961"
+ capture_lex $P221
+ .const 'Sub' $P215 = "59_1275811476.7961"
+ capture_lex $P215
+ .const 'Sub' $P210 = "57_1275811476.7961"
capture_lex $P210
- .const 'Sub' $P205 = "57_1274022883.50471"
+ .const 'Sub' $P205 = "55_1275811476.7961"
capture_lex $P205
- .const 'Sub' $P200 = "55_1274022883.50471"
- capture_lex $P200
- .const 'Sub' $P194 = "53_1274022883.50471"
- capture_lex $P194
- .const 'Sub' $P188 = "51_1274022883.50471"
- capture_lex $P188
- .const 'Sub' $P182 = "49_1274022883.50471"
- capture_lex $P182
- .const 'Sub' $P166 = "44_1274022883.50471"
- capture_lex $P166
- .const 'Sub' $P154 = "42_1274022883.50471"
- capture_lex $P154
- .const 'Sub' $P147 = "40_1274022883.50471"
- capture_lex $P147
- .const 'Sub' $P140 = "38_1274022883.50471"
- capture_lex $P140
- .const 'Sub' $P133 = "36_1274022883.50471"
- capture_lex $P133
- .const 'Sub' $P114 = "31_1274022883.50471"
- capture_lex $P114
- .const 'Sub' $P101 = "28_1274022883.50471"
- capture_lex $P101
- .const 'Sub' $P94 = "26_1274022883.50471"
- capture_lex $P94
- .const 'Sub' $P82 = "24_1274022883.50471"
- capture_lex $P82
- .const 'Sub' $P75 = "22_1274022883.50471"
- capture_lex $P75
- .const 'Sub' $P63 = "20_1274022883.50471"
+ .const 'Sub' $P199 = "53_1275811476.7961"
+ capture_lex $P199
+ .const 'Sub' $P193 = "51_1275811476.7961"
+ capture_lex $P193
+ .const 'Sub' $P187 = "49_1275811476.7961"
+ capture_lex $P187
+ .const 'Sub' $P171 = "44_1275811476.7961"
+ capture_lex $P171
+ .const 'Sub' $P155 = "42_1275811476.7961"
+ capture_lex $P155
+ .const 'Sub' $P148 = "40_1275811476.7961"
+ capture_lex $P148
+ .const 'Sub' $P141 = "38_1275811476.7961"
+ capture_lex $P141
+ .const 'Sub' $P134 = "36_1275811476.7961"
+ capture_lex $P134
+ .const 'Sub' $P115 = "31_1275811476.7961"
+ capture_lex $P115
+ .const 'Sub' $P102 = "28_1275811476.7961"
+ capture_lex $P102
+ .const 'Sub' $P95 = "26_1275811476.7961"
+ capture_lex $P95
+ .const 'Sub' $P83 = "24_1275811476.7961"
+ capture_lex $P83
+ .const 'Sub' $P76 = "22_1275811476.7961"
+ capture_lex $P76
+ .const 'Sub' $P63 = "20_1275811476.7961"
capture_lex $P63
- .const 'Sub' $P56 = "18_1274022883.50471"
+ .const 'Sub' $P56 = "18_1275811476.7961"
capture_lex $P56
- .const 'Sub' $P46 = "15_1274022883.50471"
+ .const 'Sub' $P46 = "15_1275811476.7961"
capture_lex $P46
- .const 'Sub' $P38 = "13_1274022883.50471"
+ .const 'Sub' $P38 = "13_1275811476.7961"
capture_lex $P38
- .const 'Sub' $P15 = "12_1274022883.50471"
+ .const 'Sub' $P15 = "12_1275811476.7961"
capture_lex $P15
- .const 'Sub' $P571 = "156_1274022883.50471"
- capture_lex $P571
- .return ($P571)
- .const 'Sub' $P580 = "158_1274022883.50471"
- .return ($P580)
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
+ .const 'Sub' $P576 = "156_1275811476.7961"
+ capture_lex $P576
+ .return ($P576)
+ .const 'Sub' $P585 = "158_1275811476.7961"
+ .return ($P585)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "obs" :subid("12_1274022883.50471") :method :outer("11_1274022883.50471")
+.include "except_types.pasm"
+.sub "obs" :subid("12_1275811476.7961") :method :outer("11_1275811476.7961")
.param pmc param_18
.param pmc param_19
.param pmc param_20 :optional
@@ -186,7 +200,7 @@
.annotate 'line', 3
new $P17, 'ExceptionHandler'
set_addr $P17, control_16
- $P17."handle_types"(57)
+ $P17."handle_types"(.CONTROL_RETURN)
push_eh $P17
.lex "self", self
.lex "$old", param_18
@@ -226,7 +240,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "ws" :subid("13_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "ws" :subid("13_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
.local string rx39_tgt
.local int rx39_pos
@@ -240,6 +254,7 @@
.local pmc match
.lex "$/", match
length rx39_eos, rx39_tgt
+ gt rx39_pos, rx39_eos, rx39_done
set rx39_off, 0
lt rx39_pos, 2, rx39_start
sub rx39_off, rx39_pos, 1
@@ -308,7 +323,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__ws" :subid("14_1274022883.50471") :method
+.sub "!PREFIX__ws" :subid("14_1275811476.7961") :method
.annotate 'line', 3
new $P41, "ResizablePMCArray"
push $P41, ""
@@ -317,9 +332,9 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "normspace" :subid("15_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "normspace" :subid("15_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .const 'Sub' $P52 = "17_1274022883.50471"
+ .const 'Sub' $P52 = "17_1275811476.7961"
capture_lex $P52
.local string rx47_tgt
.local int rx47_pos
@@ -333,6 +348,7 @@
.local pmc match
.lex "$/", match
length rx47_eos, rx47_tgt
+ gt rx47_pos, rx47_eos, rx47_done
set rx47_off, 0
lt rx47_pos, 2, rx47_start
sub rx47_off, rx47_pos, 1
@@ -353,7 +369,7 @@
.annotate 'line', 10
# rx subrule "before" subtype=zerowidth negate=
rx47_cur."!cursor_pos"(rx47_pos)
- .const 'Sub' $P52 = "17_1274022883.50471"
+ .const 'Sub' $P52 = "17_1275811476.7961"
capture_lex $P52
$P10 = rx47_cur."before"($P52)
unless $P10, rx47_fail
@@ -381,7 +397,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__normspace" :subid("16_1274022883.50471") :method
+.sub "!PREFIX__normspace" :subid("16_1275811476.7961") :method
.annotate 'line', 3
new $P49, "ResizablePMCArray"
push $P49, ""
@@ -390,7 +406,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block51" :anon :subid("17_1274022883.50471") :method :outer("15_1274022883.50471")
+.sub "_block51" :anon :subid("17_1275811476.7961") :method :outer("15_1275811476.7961")
.annotate 'line', 10
.local string rx53_tgt
.local int rx53_pos
@@ -404,6 +420,7 @@
.local pmc match
.lex "$/", match
length rx53_eos, rx53_tgt
+ gt rx53_pos, rx53_eos, rx53_done
set rx53_off, 0
lt rx53_pos, 2, rx53_start
sub rx53_off, rx53_pos, 1
@@ -458,7 +475,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arg" :subid("18_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "arg" :subid("18_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
.local string rx57_tgt
.local int rx57_pos
@@ -472,6 +489,7 @@
.local pmc match
.lex "$/", match
length rx57_eos, rx57_tgt
+ gt rx57_pos, rx57_eos, rx57_done
set rx57_off, 0
lt rx57_pos, 2, rx57_start
sub rx57_off, rx57_pos, 1
@@ -569,7 +587,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arg" :subid("19_1274022883.50471") :method
+.sub "!PREFIX__arg" :subid("19_1275811476.7961") :method
.annotate 'line', 3
new $P59, "ResizablePMCArray"
push $P59, ""
@@ -580,7 +598,7 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "arglist" :subid("20_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "arglist" :subid("20_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
.local string rx64_tgt
.local int rx64_pos
@@ -595,23 +613,24 @@
.local pmc match
.lex "$/", match
length rx64_eos, rx64_tgt
+ gt rx64_pos, rx64_eos, rx64_done
set rx64_off, 0
lt rx64_pos, 2, rx64_start
sub rx64_off, rx64_pos, 1
substr rx64_tgt, rx64_tgt, rx64_off
rx64_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan67_done
- goto rxscan67_scan
- rxscan67_loop:
+ ne $I10, -1, rxscan68_done
+ goto rxscan68_scan
+ rxscan68_loop:
($P10) = rx64_cur."from"()
inc $P10
set rx64_pos, $P10
- ge rx64_pos, rx64_eos, rxscan67_done
- rxscan67_scan:
- set_addr $I10, rxscan67_loop
+ ge rx64_pos, rx64_eos, rxscan68_done
+ rxscan68_scan:
+ set_addr $I10, rxscan68_loop
rx64_cur."!mark_push"(0, rx64_pos, $I10)
- rxscan67_done:
+ rxscan68_done:
.annotate 'line', 20
# rx subrule "ws" subtype=method negate=
rx64_cur."!cursor_pos"(rx64_pos)
@@ -630,10 +649,10 @@
$P10 = rx64_cur."ws"()
unless $P10, rx64_fail
rx64_pos = $P10."pos"()
- # rx rxquantr70 ** 0..*
- set_addr $I73, rxquantr70_done
- rx64_cur."!mark_push"(0, rx64_pos, $I73)
- rxquantr70_loop:
+ # rx rxquantr71 ** 0..*
+ set_addr $I74, rxquantr71_done
+ rx64_cur."!mark_push"(0, rx64_pos, $I74)
+ rxquantr71_loop:
# rx subrule "ws" subtype=method negate=
rx64_cur."!cursor_pos"(rx64_pos)
$P10 = rx64_cur."ws"()
@@ -658,10 +677,10 @@
rx64_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("arg")
rx64_pos = $P10."pos"()
- (rx64_rep) = rx64_cur."!mark_commit"($I73)
- rx64_cur."!mark_push"(rx64_rep, rx64_pos, $I73)
- goto rxquantr70_loop
- rxquantr70_done:
+ (rx64_rep) = rx64_cur."!mark_commit"($I74)
+ rx64_cur."!mark_push"(rx64_rep, rx64_pos, $I74)
+ goto rxquantr71_loop
+ rxquantr71_done:
# rx subrule "ws" subtype=method negate=
rx64_cur."!cursor_pos"(rx64_pos)
$P10 = rx64_cur."ws"()
@@ -686,1648 +705,1610 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__arglist" :subid("21_1274022883.50471") :method
+.sub "!PREFIX__arglist" :subid("21_1275811476.7961") :method
.annotate 'line', 3
- new $P66, "ResizablePMCArray"
- push $P66, ""
- .return ($P66)
+ $P66 = self."!PREFIX__!subrule"("ws", "")
+ new $P67, "ResizablePMCArray"
+ push $P67, $P66
+ .return ($P67)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "TOP" :subid("22_1274022883.50471") :method :outer("11_1274022883.50471")
-.annotate 'line', 3
- .local string rx76_tgt
- .local int rx76_pos
- .local int rx76_off
- .local int rx76_eos
- .local int rx76_rep
- .local pmc rx76_cur
- (rx76_cur, rx76_pos, rx76_tgt) = self."!cursor_start"()
- rx76_cur."!cursor_debug"("START ", "TOP")
- .lex unicode:"$\x{a2}", rx76_cur
- .local pmc match
- .lex "$/", match
- length rx76_eos, rx76_tgt
- set rx76_off, 0
- lt rx76_pos, 2, rx76_start
- sub rx76_off, rx76_pos, 1
- substr rx76_tgt, rx76_tgt, rx76_off
- rx76_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan80_done
- goto rxscan80_scan
- rxscan80_loop:
- ($P10) = rx76_cur."from"()
- inc $P10
- set rx76_pos, $P10
- ge rx76_pos, rx76_eos, rxscan80_done
- rxscan80_scan:
- set_addr $I10, rxscan80_loop
- rx76_cur."!mark_push"(0, rx76_pos, $I10)
- rxscan80_done:
+.sub "TOP" :subid("22_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+ .local string rx77_tgt
+ .local int rx77_pos
+ .local int rx77_off
+ .local int rx77_eos
+ .local int rx77_rep
+ .local pmc rx77_cur
+ (rx77_cur, rx77_pos, rx77_tgt) = self."!cursor_start"()
+ rx77_cur."!cursor_debug"("START ", "TOP")
+ .lex unicode:"$\x{a2}", rx77_cur
+ .local pmc match
+ .lex "$/", match
+ length rx77_eos, rx77_tgt
+ gt rx77_pos, rx77_eos, rx77_done
+ set rx77_off, 0
+ lt rx77_pos, 2, rx77_start
+ sub rx77_off, rx77_pos, 1
+ substr rx77_tgt, rx77_tgt, rx77_off
+ rx77_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan81_done
+ goto rxscan81_scan
+ rxscan81_loop:
+ ($P10) = rx77_cur."from"()
+ inc $P10
+ set rx77_pos, $P10
+ ge rx77_pos, rx77_eos, rxscan81_done
+ rxscan81_scan:
+ set_addr $I10, rxscan81_loop
+ rx77_cur."!mark_push"(0, rx77_pos, $I10)
+ rxscan81_done:
.annotate 'line', 23
# rx subrule "nibbler" subtype=capture negate=
- rx76_cur."!cursor_pos"(rx76_pos)
- $P10 = rx76_cur."nibbler"()
- unless $P10, rx76_fail
- rx76_cur."!mark_push"(0, -1, 0, $P10)
+ rx77_cur."!cursor_pos"(rx77_pos)
+ $P10 = rx77_cur."nibbler"()
+ unless $P10, rx77_fail
+ rx77_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("nibbler")
- rx76_pos = $P10."pos"()
- alt81_0:
+ rx77_pos = $P10."pos"()
+ alt82_0:
.annotate 'line', 24
- set_addr $I10, alt81_1
- rx76_cur."!mark_push"(0, rx76_pos, $I10)
+ set_addr $I10, alt82_1
+ rx77_cur."!mark_push"(0, rx77_pos, $I10)
# rxanchor eos
- ne rx76_pos, rx76_eos, rx76_fail
- goto alt81_end
- alt81_1:
+ ne rx77_pos, rx77_eos, rx77_fail
+ goto alt82_end
+ alt82_1:
# rx subrule "panic" subtype=method negate=
- rx76_cur."!cursor_pos"(rx76_pos)
- $P10 = rx76_cur."panic"("Confused")
- unless $P10, rx76_fail
- rx76_pos = $P10."pos"()
- alt81_end:
+ rx77_cur."!cursor_pos"(rx77_pos)
+ $P10 = rx77_cur."panic"("Confused")
+ unless $P10, rx77_fail
+ rx77_pos = $P10."pos"()
+ alt82_end:
.annotate 'line', 22
# rx pass
- rx76_cur."!cursor_pass"(rx76_pos, "TOP")
- rx76_cur."!cursor_debug"("PASS ", "TOP", " at pos=", rx76_pos)
- .return (rx76_cur)
- rx76_fail:
+ rx77_cur."!cursor_pass"(rx77_pos, "TOP")
+ rx77_cur."!cursor_debug"("PASS ", "TOP", " at pos=", rx77_pos)
+ .return (rx77_cur)
+ rx77_fail:
.annotate 'line', 3
- (rx76_rep, rx76_pos, $I10, $P10) = rx76_cur."!mark_fail"(0)
- lt rx76_pos, -1, rx76_done
- eq rx76_pos, -1, rx76_fail
+ (rx77_rep, rx77_pos, $I10, $P10) = rx77_cur."!mark_fail"(0)
+ lt rx77_pos, -1, rx77_done
+ eq rx77_pos, -1, rx77_fail
jump $I10
- rx76_done:
- rx76_cur."!cursor_fail"()
- rx76_cur."!cursor_debug"("FAIL ", "TOP")
- .return (rx76_cur)
+ rx77_done:
+ rx77_cur."!cursor_fail"()
+ rx77_cur."!cursor_debug"("FAIL ", "TOP")
+ .return (rx77_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__TOP" :subid("23_1274022883.50471") :method
+.sub "!PREFIX__TOP" :subid("23_1275811476.7961") :method
.annotate 'line', 3
- $P78 = self."!PREFIX__!subrule"("nibbler", "")
- new $P79, "ResizablePMCArray"
- push $P79, $P78
- .return ($P79)
+ $P79 = self."!PREFIX__!subrule"("nibbler", "")
+ new $P80, "ResizablePMCArray"
+ push $P80, $P79
+ .return ($P80)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "nibbler" :subid("24_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "nibbler" :subid("24_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx83_tgt
- .local int rx83_pos
- .local int rx83_off
- .local int rx83_eos
- .local int rx83_rep
- .local pmc rx83_cur
- (rx83_cur, rx83_pos, rx83_tgt) = self."!cursor_start"()
- rx83_cur."!cursor_debug"("START ", "nibbler")
- rx83_cur."!cursor_caparray"("termish")
- .lex unicode:"$\x{a2}", rx83_cur
+ .local string rx84_tgt
+ .local int rx84_pos
+ .local int rx84_off
+ .local int rx84_eos
+ .local int rx84_rep
+ .local pmc rx84_cur
+ (rx84_cur, rx84_pos, rx84_tgt) = self."!cursor_start"()
+ rx84_cur."!cursor_debug"("START ", "nibbler")
+ rx84_cur."!cursor_caparray"("termish")
+ .lex unicode:"$\x{a2}", rx84_cur
.local pmc match
.lex "$/", match
- length rx83_eos, rx83_tgt
- set rx83_off, 0
- lt rx83_pos, 2, rx83_start
- sub rx83_off, rx83_pos, 1
- substr rx83_tgt, rx83_tgt, rx83_off
- rx83_start:
+ length rx84_eos, rx84_tgt
+ gt rx84_pos, rx84_eos, rx84_done
+ set rx84_off, 0
+ lt rx84_pos, 2, rx84_start
+ sub rx84_off, rx84_pos, 1
+ substr rx84_tgt, rx84_tgt, rx84_off
+ rx84_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan86_done
- goto rxscan86_scan
- rxscan86_loop:
- ($P10) = rx83_cur."from"()
+ ne $I10, -1, rxscan87_done
+ goto rxscan87_scan
+ rxscan87_loop:
+ ($P10) = rx84_cur."from"()
inc $P10
- set rx83_pos, $P10
- ge rx83_pos, rx83_eos, rxscan86_done
- rxscan86_scan:
- set_addr $I10, rxscan86_loop
- rx83_cur."!mark_push"(0, rx83_pos, $I10)
- rxscan86_done:
+ set rx84_pos, $P10
+ ge rx84_pos, rx84_eos, rxscan87_done
+ rxscan87_scan:
+ set_addr $I10, rxscan87_loop
+ rx84_cur."!mark_push"(0, rx84_pos, $I10)
+ rxscan87_done:
.annotate 'line', 28
# rx reduce name="nibbler" key="open"
- rx83_cur."!cursor_pos"(rx83_pos)
- rx83_cur."!reduce"("nibbler", "open")
+ rx84_cur."!cursor_pos"(rx84_pos)
+ rx84_cur."!reduce"("nibbler", "open")
.annotate 'line', 29
- # rx rxquantr87 ** 0..1
- set_addr $I89, rxquantr87_done
- rx83_cur."!mark_push"(0, rx83_pos, $I89)
- rxquantr87_loop:
+ # rx rxquantr88 ** 0..1
+ set_addr $I90, rxquantr88_done
+ rx84_cur."!mark_push"(0, rx84_pos, $I90)
+ rxquantr88_loop:
# rx subrule "ws" subtype=method negate=
- rx83_cur."!cursor_pos"(rx83_pos)
- $P10 = rx83_cur."ws"()
- unless $P10, rx83_fail
- rx83_pos = $P10."pos"()
- alt88_0:
- set_addr $I10, alt88_1
- rx83_cur."!mark_push"(0, rx83_pos, $I10)
+ rx84_cur."!cursor_pos"(rx84_pos)
+ $P10 = rx84_cur."ws"()
+ unless $P10, rx84_fail
+ rx84_pos = $P10."pos"()
+ alt89_0:
+ set_addr $I10, alt89_1
+ rx84_cur."!mark_push"(0, rx84_pos, $I10)
# rx literal "||"
- add $I11, rx83_pos, 2
- gt $I11, rx83_eos, rx83_fail
- sub $I11, rx83_pos, rx83_off
- substr $S10, rx83_tgt, $I11, 2
- ne $S10, "||", rx83_fail
- add rx83_pos, 2
- goto alt88_end
- alt88_1:
- set_addr $I10, alt88_2
- rx83_cur."!mark_push"(0, rx83_pos, $I10)
+ add $I11, rx84_pos, 2
+ gt $I11, rx84_eos, rx84_fail
+ sub $I11, rx84_pos, rx84_off
+ substr $S10, rx84_tgt, $I11, 2
+ ne $S10, "||", rx84_fail
+ add rx84_pos, 2
+ goto alt89_end
+ alt89_1:
+ set_addr $I10, alt89_2
+ rx84_cur."!mark_push"(0, rx84_pos, $I10)
# rx literal "|"
- add $I11, rx83_pos, 1
- gt $I11, rx83_eos, rx83_fail
- sub $I11, rx83_pos, rx83_off
- substr $S10, rx83_tgt, $I11, 1
- ne $S10, "|", rx83_fail
- add rx83_pos, 1
- goto alt88_end
- alt88_2:
- set_addr $I10, alt88_3
- rx83_cur."!mark_push"(0, rx83_pos, $I10)
+ add $I11, rx84_pos, 1
+ gt $I11, rx84_eos, rx84_fail
+ sub $I11, rx84_pos, rx84_off
+ substr $S10, rx84_tgt, $I11, 1
+ ne $S10, "|", rx84_fail
+ add rx84_pos, 1
+ goto alt89_end
+ alt89_2:
+ set_addr $I10, alt89_3
+ rx84_cur."!mark_push"(0, rx84_pos, $I10)
# rx literal "&&"
- add $I11, rx83_pos, 2
- gt $I11, rx83_eos, rx83_fail
- sub $I11, rx83_pos, rx83_off
- substr $S10, rx83_tgt, $I11, 2
- ne $S10, "&&", rx83_fail
- add rx83_pos, 2
- goto alt88_end
- alt88_3:
+ add $I11, rx84_pos, 2
+ gt $I11, rx84_eos, rx84_fail
+ sub $I11, rx84_pos, rx84_off
+ substr $S10, rx84_tgt, $I11, 2
+ ne $S10, "&&", rx84_fail
+ add rx84_pos, 2
+ goto alt89_end
+ alt89_3:
# rx literal "&"
- add $I11, rx83_pos, 1
- gt $I11, rx83_eos, rx83_fail
- sub $I11, rx83_pos, rx83_off
- substr $S10, rx83_tgt, $I11, 1
- ne $S10, "&", rx83_fail
- add rx83_pos, 1
- alt88_end:
- (rx83_rep) = rx83_cur."!mark_commit"($I89)
- rxquantr87_done:
+ add $I11, rx84_pos, 1
+ gt $I11, rx84_eos, rx84_fail
+ sub $I11, rx84_pos, rx84_off
+ substr $S10, rx84_tgt, $I11, 1
+ ne $S10, "&", rx84_fail
+ add rx84_pos, 1
+ alt89_end:
+ (rx84_rep) = rx84_cur."!mark_commit"($I90)
+ rxquantr88_done:
.annotate 'line', 30
# rx subrule "termish" subtype=capture negate=
- rx83_cur."!cursor_pos"(rx83_pos)
- $P10 = rx83_cur."termish"()
- unless $P10, rx83_fail
- rx83_cur."!mark_push"(0, -1, 0, $P10)
+ rx84_cur."!cursor_pos"(rx84_pos)
+ $P10 = rx84_cur."termish"()
+ unless $P10, rx84_fail
+ rx84_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("termish")
- rx83_pos = $P10."pos"()
+ rx84_pos = $P10."pos"()
.annotate 'line', 33
- # rx rxquantr90 ** 0..*
- set_addr $I93, rxquantr90_done
- rx83_cur."!mark_push"(0, rx83_pos, $I93)
- rxquantr90_loop:
- alt91_0:
+ # rx rxquantr91 ** 0..*
+ set_addr $I94, rxquantr91_done
+ rx84_cur."!mark_push"(0, rx84_pos, $I94)
+ rxquantr91_loop:
+ alt92_0:
.annotate 'line', 31
- set_addr $I10, alt91_1
- rx83_cur."!mark_push"(0, rx83_pos, $I10)
+ set_addr $I10, alt92_1
+ rx84_cur."!mark_push"(0, rx84_pos, $I10)
# rx literal "||"
- add $I11, rx83_pos, 2
- gt $I11, rx83_eos, rx83_fail
- sub $I11, rx83_pos, rx83_off
- substr $S10, rx83_tgt, $I11, 2
- ne $S10, "||", rx83_fail
- add rx83_pos, 2
- goto alt91_end
- alt91_1:
+ add $I11, rx84_pos, 2
+ gt $I11, rx84_eos, rx84_fail
+ sub $I11, rx84_pos, rx84_off
+ substr $S10, rx84_tgt, $I11, 2
+ ne $S10, "||", rx84_fail
+ add rx84_pos, 2
+ goto alt92_end
+ alt92_1:
# rx literal "|"
- add $I11, rx83_pos, 1
- gt $I11, rx83_eos, rx83_fail
- sub $I11, rx83_pos, rx83_off
- substr $S10, rx83_tgt, $I11, 1
- ne $S10, "|", rx83_fail
- add rx83_pos, 1
- alt91_end:
- alt92_0:
+ add $I11, rx84_pos, 1
+ gt $I11, rx84_eos, rx84_fail
+ sub $I11, rx84_pos, rx84_off
+ substr $S10, rx84_tgt, $I11, 1
+ ne $S10, "|", rx84_fail
+ add rx84_pos, 1
+ alt92_end:
+ alt93_0:
.annotate 'line', 32
- set_addr $I10, alt92_1
- rx83_cur."!mark_push"(0, rx83_pos, $I10)
+ set_addr $I10, alt93_1
+ rx84_cur."!mark_push"(0, rx84_pos, $I10)
# rx subrule "termish" subtype=capture negate=
- rx83_cur."!cursor_pos"(rx83_pos)
- $P10 = rx83_cur."termish"()
- unless $P10, rx83_fail
- rx83_cur."!mark_push"(0, -1, 0, $P10)
+ rx84_cur."!cursor_pos"(rx84_pos)
+ $P10 = rx84_cur."termish"()
+ unless $P10, rx84_fail
+ rx84_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("termish")
- rx83_pos = $P10."pos"()
- goto alt92_end
- alt92_1:
+ rx84_pos = $P10."pos"()
+ goto alt93_end
+ alt93_1:
# rx subrule "panic" subtype=method negate=
- rx83_cur."!cursor_pos"(rx83_pos)
- $P10 = rx83_cur."panic"("Null pattern not allowed")
- unless $P10, rx83_fail
- rx83_pos = $P10."pos"()
- alt92_end:
+ rx84_cur."!cursor_pos"(rx84_pos)
+ $P10 = rx84_cur."panic"("Null pattern not allowed")
+ unless $P10, rx84_fail
+ rx84_pos = $P10."pos"()
+ alt93_end:
.annotate 'line', 33
- (rx83_rep) = rx83_cur."!mark_commit"($I93)
- rx83_cur."!mark_push"(rx83_rep, rx83_pos, $I93)
- goto rxquantr90_loop
- rxquantr90_done:
+ (rx84_rep) = rx84_cur."!mark_commit"($I94)
+ rx84_cur."!mark_push"(rx84_rep, rx84_pos, $I94)
+ goto rxquantr91_loop
+ rxquantr91_done:
.annotate 'line', 27
# rx pass
- rx83_cur."!cursor_pass"(rx83_pos, "nibbler")
- rx83_cur."!cursor_debug"("PASS ", "nibbler", " at pos=", rx83_pos)
- .return (rx83_cur)
- rx83_fail:
+ rx84_cur."!cursor_pass"(rx84_pos, "nibbler")
+ rx84_cur."!cursor_debug"("PASS ", "nibbler", " at pos=", rx84_pos)
+ .return (rx84_cur)
+ rx84_fail:
.annotate 'line', 3
- (rx83_rep, rx83_pos, $I10, $P10) = rx83_cur."!mark_fail"(0)
- lt rx83_pos, -1, rx83_done
- eq rx83_pos, -1, rx83_fail
+ (rx84_rep, rx84_pos, $I10, $P10) = rx84_cur."!mark_fail"(0)
+ lt rx84_pos, -1, rx84_done
+ eq rx84_pos, -1, rx84_fail
jump $I10
- rx83_done:
- rx83_cur."!cursor_fail"()
- rx83_cur."!cursor_debug"("FAIL ", "nibbler")
- .return (rx83_cur)
+ rx84_done:
+ rx84_cur."!cursor_fail"()
+ rx84_cur."!cursor_debug"("FAIL ", "nibbler")
+ .return (rx84_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__nibbler" :subid("25_1274022883.50471") :method
+.sub "!PREFIX__nibbler" :subid("25_1275811476.7961") :method
.annotate 'line', 3
- new $P85, "ResizablePMCArray"
- push $P85, ""
- .return ($P85)
+ new $P86, "ResizablePMCArray"
+ push $P86, ""
+ .return ($P86)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "termish" :subid("26_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "termish" :subid("26_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx95_tgt
- .local int rx95_pos
- .local int rx95_off
- .local int rx95_eos
- .local int rx95_rep
- .local pmc rx95_cur
- (rx95_cur, rx95_pos, rx95_tgt) = self."!cursor_start"()
- rx95_cur."!cursor_debug"("START ", "termish")
- rx95_cur."!cursor_caparray"("noun")
- .lex unicode:"$\x{a2}", rx95_cur
+ .local string rx96_tgt
+ .local int rx96_pos
+ .local int rx96_off
+ .local int rx96_eos
+ .local int rx96_rep
+ .local pmc rx96_cur
+ (rx96_cur, rx96_pos, rx96_tgt) = self."!cursor_start"()
+ rx96_cur."!cursor_debug"("START ", "termish")
+ rx96_cur."!cursor_caparray"("noun")
+ .lex unicode:"$\x{a2}", rx96_cur
.local pmc match
.lex "$/", match
- length rx95_eos, rx95_tgt
- set rx95_off, 0
- lt rx95_pos, 2, rx95_start
- sub rx95_off, rx95_pos, 1
- substr rx95_tgt, rx95_tgt, rx95_off
- rx95_start:
+ length rx96_eos, rx96_tgt
+ gt rx96_pos, rx96_eos, rx96_done
+ set rx96_off, 0
+ lt rx96_pos, 2, rx96_start
+ sub rx96_off, rx96_pos, 1
+ substr rx96_tgt, rx96_tgt, rx96_off
+ rx96_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan98_done
- goto rxscan98_scan
- rxscan98_loop:
- ($P10) = rx95_cur."from"()
+ ne $I10, -1, rxscan99_done
+ goto rxscan99_scan
+ rxscan99_loop:
+ ($P10) = rx96_cur."from"()
inc $P10
- set rx95_pos, $P10
- ge rx95_pos, rx95_eos, rxscan98_done
- rxscan98_scan:
- set_addr $I10, rxscan98_loop
- rx95_cur."!mark_push"(0, rx95_pos, $I10)
- rxscan98_done:
+ set rx96_pos, $P10
+ ge rx96_pos, rx96_eos, rxscan99_done
+ rxscan99_scan:
+ set_addr $I10, rxscan99_loop
+ rx96_cur."!mark_push"(0, rx96_pos, $I10)
+ rxscan99_done:
.annotate 'line', 37
- # rx rxquantr99 ** 1..*
- set_addr $I100, rxquantr99_done
- rx95_cur."!mark_push"(0, -1, $I100)
- rxquantr99_loop:
+ # rx rxquantr100 ** 1..*
+ set_addr $I101, rxquantr100_done
+ rx96_cur."!mark_push"(0, -1, $I101)
+ rxquantr100_loop:
# rx subrule "quantified_atom" subtype=capture negate=
- rx95_cur."!cursor_pos"(rx95_pos)
- $P10 = rx95_cur."quantified_atom"()
- unless $P10, rx95_fail
- rx95_cur."!mark_push"(0, -1, 0, $P10)
+ rx96_cur."!cursor_pos"(rx96_pos)
+ $P10 = rx96_cur."quantified_atom"()
+ unless $P10, rx96_fail
+ rx96_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("noun")
- rx95_pos = $P10."pos"()
- (rx95_rep) = rx95_cur."!mark_commit"($I100)
- rx95_cur."!mark_push"(rx95_rep, rx95_pos, $I100)
- goto rxquantr99_loop
- rxquantr99_done:
+ rx96_pos = $P10."pos"()
+ (rx96_rep) = rx96_cur."!mark_commit"($I101)
+ rx96_cur."!mark_push"(rx96_rep, rx96_pos, $I101)
+ goto rxquantr100_loop
+ rxquantr100_done:
.annotate 'line', 36
# rx pass
- rx95_cur."!cursor_pass"(rx95_pos, "termish")
- rx95_cur."!cursor_debug"("PASS ", "termish", " at pos=", rx95_pos)
- .return (rx95_cur)
- rx95_fail:
+ rx96_cur."!cursor_pass"(rx96_pos, "termish")
+ rx96_cur."!cursor_debug"("PASS ", "termish", " at pos=", rx96_pos)
+ .return (rx96_cur)
+ rx96_fail:
.annotate 'line', 3
- (rx95_rep, rx95_pos, $I10, $P10) = rx95_cur."!mark_fail"(0)
- lt rx95_pos, -1, rx95_done
- eq rx95_pos, -1, rx95_fail
+ (rx96_rep, rx96_pos, $I10, $P10) = rx96_cur."!mark_fail"(0)
+ lt rx96_pos, -1, rx96_done
+ eq rx96_pos, -1, rx96_fail
jump $I10
- rx95_done:
- rx95_cur."!cursor_fail"()
- rx95_cur."!cursor_debug"("FAIL ", "termish")
- .return (rx95_cur)
+ rx96_done:
+ rx96_cur."!cursor_fail"()
+ rx96_cur."!cursor_debug"("FAIL ", "termish")
+ .return (rx96_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__termish" :subid("27_1274022883.50471") :method
+.sub "!PREFIX__termish" :subid("27_1275811476.7961") :method
.annotate 'line', 3
- new $P97, "ResizablePMCArray"
- push $P97, ""
- .return ($P97)
+ new $P98, "ResizablePMCArray"
+ push $P98, ""
+ .return ($P98)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantified_atom" :subid("28_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "quantified_atom" :subid("28_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .const 'Sub' $P110 = "30_1274022883.50471"
- capture_lex $P110
- .local string rx102_tgt
- .local int rx102_pos
- .local int rx102_off
- .local int rx102_eos
- .local int rx102_rep
- .local pmc rx102_cur
- (rx102_cur, rx102_pos, rx102_tgt) = self."!cursor_start"()
- rx102_cur."!cursor_debug"("START ", "quantified_atom")
- rx102_cur."!cursor_caparray"("quantifier", "backmod")
- .lex unicode:"$\x{a2}", rx102_cur
+ .const 'Sub' $P111 = "30_1275811476.7961"
+ capture_lex $P111
+ .local string rx103_tgt
+ .local int rx103_pos
+ .local int rx103_off
+ .local int rx103_eos
+ .local int rx103_rep
+ .local pmc rx103_cur
+ (rx103_cur, rx103_pos, rx103_tgt) = self."!cursor_start"()
+ rx103_cur."!cursor_debug"("START ", "quantified_atom")
+ rx103_cur."!cursor_caparray"("quantifier", "backmod")
+ .lex unicode:"$\x{a2}", rx103_cur
.local pmc match
.lex "$/", match
- length rx102_eos, rx102_tgt
- set rx102_off, 0
- lt rx102_pos, 2, rx102_start
- sub rx102_off, rx102_pos, 1
- substr rx102_tgt, rx102_tgt, rx102_off
- rx102_start:
+ length rx103_eos, rx103_tgt
+ gt rx103_pos, rx103_eos, rx103_done
+ set rx103_off, 0
+ lt rx103_pos, 2, rx103_start
+ sub rx103_off, rx103_pos, 1
+ substr rx103_tgt, rx103_tgt, rx103_off
+ rx103_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan106_done
- goto rxscan106_scan
- rxscan106_loop:
- ($P10) = rx102_cur."from"()
+ ne $I10, -1, rxscan107_done
+ goto rxscan107_scan
+ rxscan107_loop:
+ ($P10) = rx103_cur."from"()
inc $P10
- set rx102_pos, $P10
- ge rx102_pos, rx102_eos, rxscan106_done
- rxscan106_scan:
- set_addr $I10, rxscan106_loop
- rx102_cur."!mark_push"(0, rx102_pos, $I10)
- rxscan106_done:
+ set rx103_pos, $P10
+ ge rx103_pos, rx103_eos, rxscan107_done
+ rxscan107_scan:
+ set_addr $I10, rxscan107_loop
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
+ rxscan107_done:
.annotate 'line', 41
# rx subrule "atom" subtype=capture negate=
- rx102_cur."!cursor_pos"(rx102_pos)
- $P10 = rx102_cur."atom"()
- unless $P10, rx102_fail
- rx102_cur."!mark_push"(0, -1, 0, $P10)
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."atom"()
+ unless $P10, rx103_fail
+ rx103_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("atom")
- rx102_pos = $P10."pos"()
- # rx rxquantr107 ** 0..1
- set_addr $I113, rxquantr107_done
- rx102_cur."!mark_push"(0, rx102_pos, $I113)
- rxquantr107_loop:
+ rx103_pos = $P10."pos"()
+ # rx rxquantr108 ** 0..1
+ set_addr $I114, rxquantr108_done
+ rx103_cur."!mark_push"(0, rx103_pos, $I114)
+ rxquantr108_loop:
# rx subrule "ws" subtype=method negate=
- rx102_cur."!cursor_pos"(rx102_pos)
- $P10 = rx102_cur."ws"()
- unless $P10, rx102_fail
- rx102_pos = $P10."pos"()
- alt108_0:
- set_addr $I10, alt108_1
- rx102_cur."!mark_push"(0, rx102_pos, $I10)
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."ws"()
+ unless $P10, rx103_fail
+ rx103_pos = $P10."pos"()
+ alt109_0:
+ set_addr $I10, alt109_1
+ rx103_cur."!mark_push"(0, rx103_pos, $I10)
# rx subrule "quantifier" subtype=capture negate=
- rx102_cur."!cursor_pos"(rx102_pos)
- $P10 = rx102_cur."quantifier"()
- unless $P10, rx102_fail
- rx102_cur."!mark_push"(0, -1, 0, $P10)
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."quantifier"()
+ unless $P10, rx103_fail
+ rx103_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quantifier")
- rx102_pos = $P10."pos"()
- goto alt108_end
- alt108_1:
+ rx103_pos = $P10."pos"()
+ goto alt109_end
+ alt109_1:
# rx subrule "before" subtype=zerowidth negate=
- rx102_cur."!cursor_pos"(rx102_pos)
- .const 'Sub' $P110 = "30_1274022883.50471"
- capture_lex $P110
- $P10 = rx102_cur."before"($P110)
- unless $P10, rx102_fail
+ rx103_cur."!cursor_pos"(rx103_pos)
+ .const 'Sub' $P111 = "30_1275811476.7961"
+ capture_lex $P111
+ $P10 = rx103_cur."before"($P111)
+ unless $P10, rx103_fail
# rx subrule "backmod" subtype=capture negate=
- rx102_cur."!cursor_pos"(rx102_pos)
- $P10 = rx102_cur."backmod"()
- unless $P10, rx102_fail
- rx102_cur."!mark_push"(0, -1, 0, $P10)
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."backmod"()
+ unless $P10, rx103_fail
+ rx103_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx102_pos = $P10."pos"()
+ rx103_pos = $P10."pos"()
# rx subrule "alpha" subtype=zerowidth negate=1
- rx102_cur."!cursor_pos"(rx102_pos)
- $P10 = rx102_cur."alpha"()
- if $P10, rx102_fail
- alt108_end:
- (rx102_rep) = rx102_cur."!mark_commit"($I113)
- rxquantr107_done:
+ rx103_cur."!cursor_pos"(rx103_pos)
+ $P10 = rx103_cur."alpha"()
+ if $P10, rx103_fail
+ alt109_end:
+ (rx103_rep) = rx103_cur."!mark_commit"($I114)
+ rxquantr108_done:
.annotate 'line', 40
# rx pass
- rx102_cur."!cursor_pass"(rx102_pos, "quantified_atom")
- rx102_cur."!cursor_debug"("PASS ", "quantified_atom", " at pos=", rx102_pos)
- .return (rx102_cur)
- rx102_fail:
+ rx103_cur."!cursor_pass"(rx103_pos, "quantified_atom")
+ rx103_cur."!cursor_debug"("PASS ", "quantified_atom", " at pos=", rx103_pos)
+ .return (rx103_cur)
+ rx103_fail:
.annotate 'line', 3
- (rx102_rep, rx102_pos, $I10, $P10) = rx102_cur."!mark_fail"(0)
- lt rx102_pos, -1, rx102_done
- eq rx102_pos, -1, rx102_fail
+ (rx103_rep, rx103_pos, $I10, $P10) = rx103_cur."!mark_fail"(0)
+ lt rx103_pos, -1, rx103_done
+ eq rx103_pos, -1, rx103_fail
jump $I10
- rx102_done:
- rx102_cur."!cursor_fail"()
- rx102_cur."!cursor_debug"("FAIL ", "quantified_atom")
- .return (rx102_cur)
+ rx103_done:
+ rx103_cur."!cursor_fail"()
+ rx103_cur."!cursor_debug"("FAIL ", "quantified_atom")
+ .return (rx103_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantified_atom" :subid("29_1274022883.50471") :method
+.sub "!PREFIX__quantified_atom" :subid("29_1275811476.7961") :method
.annotate 'line', 3
- $P104 = self."!PREFIX__!subrule"("atom", "")
- new $P105, "ResizablePMCArray"
- push $P105, $P104
- .return ($P105)
+ $P105 = self."!PREFIX__!subrule"("atom", "")
+ new $P106, "ResizablePMCArray"
+ push $P106, $P105
+ .return ($P106)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block109" :anon :subid("30_1274022883.50471") :method :outer("28_1274022883.50471")
+.sub "_block110" :anon :subid("30_1275811476.7961") :method :outer("28_1275811476.7961")
.annotate 'line', 41
- .local string rx111_tgt
- .local int rx111_pos
- .local int rx111_off
- .local int rx111_eos
- .local int rx111_rep
- .local pmc rx111_cur
- (rx111_cur, rx111_pos, rx111_tgt) = self."!cursor_start"()
- rx111_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx111_cur
- .local pmc match
- .lex "$/", match
- length rx111_eos, rx111_tgt
- set rx111_off, 0
- lt rx111_pos, 2, rx111_start
- sub rx111_off, rx111_pos, 1
- substr rx111_tgt, rx111_tgt, rx111_off
- rx111_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan112_done
- goto rxscan112_scan
- rxscan112_loop:
- ($P10) = rx111_cur."from"()
- inc $P10
- set rx111_pos, $P10
- ge rx111_pos, rx111_eos, rxscan112_done
- rxscan112_scan:
- set_addr $I10, rxscan112_loop
- rx111_cur."!mark_push"(0, rx111_pos, $I10)
- rxscan112_done:
+ .local string rx112_tgt
+ .local int rx112_pos
+ .local int rx112_off
+ .local int rx112_eos
+ .local int rx112_rep
+ .local pmc rx112_cur
+ (rx112_cur, rx112_pos, rx112_tgt) = self."!cursor_start"()
+ rx112_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx112_cur
+ .local pmc match
+ .lex "$/", match
+ length rx112_eos, rx112_tgt
+ gt rx112_pos, rx112_eos, rx112_done
+ set rx112_off, 0
+ lt rx112_pos, 2, rx112_start
+ sub rx112_off, rx112_pos, 1
+ substr rx112_tgt, rx112_tgt, rx112_off
+ rx112_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan113_done
+ goto rxscan113_scan
+ rxscan113_loop:
+ ($P10) = rx112_cur."from"()
+ inc $P10
+ set rx112_pos, $P10
+ ge rx112_pos, rx112_eos, rxscan113_done
+ rxscan113_scan:
+ set_addr $I10, rxscan113_loop
+ rx112_cur."!mark_push"(0, rx112_pos, $I10)
+ rxscan113_done:
# rx literal ":"
- add $I11, rx111_pos, 1
- gt $I11, rx111_eos, rx111_fail
- sub $I11, rx111_pos, rx111_off
- substr $S10, rx111_tgt, $I11, 1
- ne $S10, ":", rx111_fail
- add rx111_pos, 1
- # rx pass
- rx111_cur."!cursor_pass"(rx111_pos, "")
- rx111_cur."!cursor_debug"("PASS ", "", " at pos=", rx111_pos)
- .return (rx111_cur)
- rx111_fail:
- (rx111_rep, rx111_pos, $I10, $P10) = rx111_cur."!mark_fail"(0)
- lt rx111_pos, -1, rx111_done
- eq rx111_pos, -1, rx111_fail
- jump $I10
- rx111_done:
- rx111_cur."!cursor_fail"()
- rx111_cur."!cursor_debug"("FAIL ", "")
- .return (rx111_cur)
+ add $I11, rx112_pos, 1
+ gt $I11, rx112_eos, rx112_fail
+ sub $I11, rx112_pos, rx112_off
+ substr $S10, rx112_tgt, $I11, 1
+ ne $S10, ":", rx112_fail
+ add rx112_pos, 1
+ # rx pass
+ rx112_cur."!cursor_pass"(rx112_pos, "")
+ rx112_cur."!cursor_debug"("PASS ", "", " at pos=", rx112_pos)
+ .return (rx112_cur)
+ rx112_fail:
+ (rx112_rep, rx112_pos, $I10, $P10) = rx112_cur."!mark_fail"(0)
+ lt rx112_pos, -1, rx112_done
+ eq rx112_pos, -1, rx112_fail
+ jump $I10
+ rx112_done:
+ rx112_cur."!cursor_fail"()
+ rx112_cur."!cursor_debug"("FAIL ", "")
+ .return (rx112_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "atom" :subid("31_1274022883.50471") :method :outer("11_1274022883.50471")
-.annotate 'line', 3
- .const 'Sub' $P125 = "33_1274022883.50471"
- capture_lex $P125
- .local string rx115_tgt
- .local int rx115_pos
- .local int rx115_off
- .local int rx115_eos
- .local int rx115_rep
- .local pmc rx115_cur
- (rx115_cur, rx115_pos, rx115_tgt) = self."!cursor_start"()
- rx115_cur."!cursor_debug"("START ", "atom")
- .lex unicode:"$\x{a2}", rx115_cur
- .local pmc match
- .lex "$/", match
- length rx115_eos, rx115_tgt
- set rx115_off, 0
- lt rx115_pos, 2, rx115_start
- sub rx115_off, rx115_pos, 1
- substr rx115_tgt, rx115_tgt, rx115_off
- rx115_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan119_done
- goto rxscan119_scan
- rxscan119_loop:
- ($P10) = rx115_cur."from"()
- inc $P10
- set rx115_pos, $P10
- ge rx115_pos, rx115_eos, rxscan119_done
- rxscan119_scan:
- set_addr $I10, rxscan119_loop
- rx115_cur."!mark_push"(0, rx115_pos, $I10)
- rxscan119_done:
- alt120_0:
+.sub "atom" :subid("31_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+ .const 'Sub' $P126 = "33_1275811476.7961"
+ capture_lex $P126
+ .local string rx116_tgt
+ .local int rx116_pos
+ .local int rx116_off
+ .local int rx116_eos
+ .local int rx116_rep
+ .local pmc rx116_cur
+ (rx116_cur, rx116_pos, rx116_tgt) = self."!cursor_start"()
+ rx116_cur."!cursor_debug"("START ", "atom")
+ .lex unicode:"$\x{a2}", rx116_cur
+ .local pmc match
+ .lex "$/", match
+ length rx116_eos, rx116_tgt
+ gt rx116_pos, rx116_eos, rx116_done
+ set rx116_off, 0
+ lt rx116_pos, 2, rx116_start
+ sub rx116_off, rx116_pos, 1
+ substr rx116_tgt, rx116_tgt, rx116_off
+ rx116_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan120_done
+ goto rxscan120_scan
+ rxscan120_loop:
+ ($P10) = rx116_cur."from"()
+ inc $P10
+ set rx116_pos, $P10
+ ge rx116_pos, rx116_eos, rxscan120_done
+ rxscan120_scan:
+ set_addr $I10, rxscan120_loop
+ rx116_cur."!mark_push"(0, rx116_pos, $I10)
+ rxscan120_done:
+ alt121_0:
.annotate 'line', 46
- set_addr $I10, alt120_1
- rx115_cur."!mark_push"(0, rx115_pos, $I10)
+ set_addr $I10, alt121_1
+ rx116_cur."!mark_push"(0, rx116_pos, $I10)
.annotate 'line', 47
# rx charclass w
- ge rx115_pos, rx115_eos, rx115_fail
- sub $I10, rx115_pos, rx115_off
- is_cclass $I11, 8192, rx115_tgt, $I10
- unless $I11, rx115_fail
- inc rx115_pos
- # rx rxquantr121 ** 0..1
- set_addr $I128, rxquantr121_done
- rx115_cur."!mark_push"(0, rx115_pos, $I128)
- rxquantr121_loop:
- # rx rxquantg122 ** 1..*
- set_addr $I123, rxquantg122_done
- rxquantg122_loop:
+ ge rx116_pos, rx116_eos, rx116_fail
+ sub $I10, rx116_pos, rx116_off
+ is_cclass $I11, 8192, rx116_tgt, $I10
+ unless $I11, rx116_fail
+ inc rx116_pos
+ # rx rxquantr122 ** 0..1
+ set_addr $I129, rxquantr122_done
+ rx116_cur."!mark_push"(0, rx116_pos, $I129)
+ rxquantr122_loop:
+ # rx rxquantg123 ** 1..*
+ set_addr $I124, rxquantg123_done
+ rxquantg123_loop:
# rx charclass w
- ge rx115_pos, rx115_eos, rx115_fail
- sub $I10, rx115_pos, rx115_off
- is_cclass $I11, 8192, rx115_tgt, $I10
- unless $I11, rx115_fail
- inc rx115_pos
- rx115_cur."!mark_push"(rx115_rep, rx115_pos, $I123)
- goto rxquantg122_loop
- rxquantg122_done:
+ ge rx116_pos, rx116_eos, rx116_fail
+ sub $I10, rx116_pos, rx116_off
+ is_cclass $I11, 8192, rx116_tgt, $I10
+ unless $I11, rx116_fail
+ inc rx116_pos
+ rx116_cur."!mark_push"(rx116_rep, rx116_pos, $I124)
+ goto rxquantg123_loop
+ rxquantg123_done:
# rx subrule "before" subtype=zerowidth negate=
- rx115_cur."!cursor_pos"(rx115_pos)
- .const 'Sub' $P125 = "33_1274022883.50471"
- capture_lex $P125
- $P10 = rx115_cur."before"($P125)
- unless $P10, rx115_fail
- (rx115_rep) = rx115_cur."!mark_commit"($I128)
- rxquantr121_done:
- goto alt120_end
- alt120_1:
+ rx116_cur."!cursor_pos"(rx116_pos)
+ .const 'Sub' $P126 = "33_1275811476.7961"
+ capture_lex $P126
+ $P10 = rx116_cur."before"($P126)
+ unless $P10, rx116_fail
+ (rx116_rep) = rx116_cur."!mark_commit"($I129)
+ rxquantr122_done:
+ goto alt121_end
+ alt121_1:
.annotate 'line', 48
# rx subrule "metachar" subtype=capture negate=
- rx115_cur."!cursor_pos"(rx115_pos)
- $P10 = rx115_cur."metachar"()
- unless $P10, rx115_fail
- rx115_cur."!mark_push"(0, -1, 0, $P10)
+ rx116_cur."!cursor_pos"(rx116_pos)
+ $P10 = rx116_cur."metachar"()
+ unless $P10, rx116_fail
+ rx116_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("metachar")
- rx115_pos = $P10."pos"()
- alt120_end:
+ rx116_pos = $P10."pos"()
+ alt121_end:
.annotate 'line', 44
# rx pass
- rx115_cur."!cursor_pass"(rx115_pos, "atom")
- rx115_cur."!cursor_debug"("PASS ", "atom", " at pos=", rx115_pos)
- .return (rx115_cur)
- rx115_fail:
+ rx116_cur."!cursor_pass"(rx116_pos, "atom")
+ rx116_cur."!cursor_debug"("PASS ", "atom", " at pos=", rx116_pos)
+ .return (rx116_cur)
+ rx116_fail:
.annotate 'line', 3
- (rx115_rep, rx115_pos, $I10, $P10) = rx115_cur."!mark_fail"(0)
- lt rx115_pos, -1, rx115_done
- eq rx115_pos, -1, rx115_fail
+ (rx116_rep, rx116_pos, $I10, $P10) = rx116_cur."!mark_fail"(0)
+ lt rx116_pos, -1, rx116_done
+ eq rx116_pos, -1, rx116_fail
jump $I10
- rx115_done:
- rx115_cur."!cursor_fail"()
- rx115_cur."!cursor_debug"("FAIL ", "atom")
- .return (rx115_cur)
+ rx116_done:
+ rx116_cur."!cursor_fail"()
+ rx116_cur."!cursor_debug"("FAIL ", "atom")
+ .return (rx116_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__atom" :subid("32_1274022883.50471") :method
+.sub "!PREFIX__atom" :subid("32_1275811476.7961") :method
.annotate 'line', 3
- $P117 = self."!PREFIX__!subrule"("metachar", "")
- new $P118, "ResizablePMCArray"
- push $P118, $P117
- push $P118, ""
- .return ($P118)
+ $P118 = self."!PREFIX__!subrule"("metachar", "")
+ new $P119, "ResizablePMCArray"
+ push $P119, $P118
+ push $P119, ""
+ .return ($P119)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block124" :anon :subid("33_1274022883.50471") :method :outer("31_1274022883.50471")
+.sub "_block125" :anon :subid("33_1275811476.7961") :method :outer("31_1275811476.7961")
.annotate 'line', 47
- .local string rx126_tgt
- .local int rx126_pos
- .local int rx126_off
- .local int rx126_eos
- .local int rx126_rep
- .local pmc rx126_cur
- (rx126_cur, rx126_pos, rx126_tgt) = self."!cursor_start"()
- rx126_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx126_cur
- .local pmc match
- .lex "$/", match
- length rx126_eos, rx126_tgt
- set rx126_off, 0
- lt rx126_pos, 2, rx126_start
- sub rx126_off, rx126_pos, 1
- substr rx126_tgt, rx126_tgt, rx126_off
- rx126_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan127_done
- goto rxscan127_scan
- rxscan127_loop:
- ($P10) = rx126_cur."from"()
- inc $P10
- set rx126_pos, $P10
- ge rx126_pos, rx126_eos, rxscan127_done
- rxscan127_scan:
- set_addr $I10, rxscan127_loop
- rx126_cur."!mark_push"(0, rx126_pos, $I10)
- rxscan127_done:
+ .local string rx127_tgt
+ .local int rx127_pos
+ .local int rx127_off
+ .local int rx127_eos
+ .local int rx127_rep
+ .local pmc rx127_cur
+ (rx127_cur, rx127_pos, rx127_tgt) = self."!cursor_start"()
+ rx127_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx127_cur
+ .local pmc match
+ .lex "$/", match
+ length rx127_eos, rx127_tgt
+ gt rx127_pos, rx127_eos, rx127_done
+ set rx127_off, 0
+ lt rx127_pos, 2, rx127_start
+ sub rx127_off, rx127_pos, 1
+ substr rx127_tgt, rx127_tgt, rx127_off
+ rx127_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan128_done
+ goto rxscan128_scan
+ rxscan128_loop:
+ ($P10) = rx127_cur."from"()
+ inc $P10
+ set rx127_pos, $P10
+ ge rx127_pos, rx127_eos, rxscan128_done
+ rxscan128_scan:
+ set_addr $I10, rxscan128_loop
+ rx127_cur."!mark_push"(0, rx127_pos, $I10)
+ rxscan128_done:
# rx charclass w
- ge rx126_pos, rx126_eos, rx126_fail
- sub $I10, rx126_pos, rx126_off
- is_cclass $I11, 8192, rx126_tgt, $I10
- unless $I11, rx126_fail
- inc rx126_pos
+ ge rx127_pos, rx127_eos, rx127_fail
+ sub $I10, rx127_pos, rx127_off
+ is_cclass $I11, 8192, rx127_tgt, $I10
+ unless $I11, rx127_fail
+ inc rx127_pos
# rx pass
- rx126_cur."!cursor_pass"(rx126_pos, "")
- rx126_cur."!cursor_debug"("PASS ", "", " at pos=", rx126_pos)
- .return (rx126_cur)
- rx126_fail:
- (rx126_rep, rx126_pos, $I10, $P10) = rx126_cur."!mark_fail"(0)
- lt rx126_pos, -1, rx126_done
- eq rx126_pos, -1, rx126_fail
+ rx127_cur."!cursor_pass"(rx127_pos, "")
+ rx127_cur."!cursor_debug"("PASS ", "", " at pos=", rx127_pos)
+ .return (rx127_cur)
+ rx127_fail:
+ (rx127_rep, rx127_pos, $I10, $P10) = rx127_cur."!mark_fail"(0)
+ lt rx127_pos, -1, rx127_done
+ eq rx127_pos, -1, rx127_fail
jump $I10
- rx126_done:
- rx126_cur."!cursor_fail"()
- rx126_cur."!cursor_debug"("FAIL ", "")
- .return (rx126_cur)
+ rx127_done:
+ rx127_cur."!cursor_fail"()
+ rx127_cur."!cursor_debug"("FAIL ", "")
+ .return (rx127_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier" :subid("34_1274022883.50471") :method
+.sub "quantifier" :subid("34_1275811476.7961") :method
.annotate 'line', 52
- $P130 = self."!protoregex"("quantifier")
- .return ($P130)
+ $P131 = self."!protoregex"("quantifier")
+ .return ($P131)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier" :subid("35_1274022883.50471") :method
+.sub "!PREFIX__quantifier" :subid("35_1275811476.7961") :method
.annotate 'line', 52
- $P132 = self."!PREFIX__!protoregex"("quantifier")
- .return ($P132)
+ $P133 = self."!PREFIX__!protoregex"("quantifier")
+ .return ($P133)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<*>" :subid("36_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "quantifier:sym<*>" :subid("36_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx134_tgt
- .local int rx134_pos
- .local int rx134_off
- .local int rx134_eos
- .local int rx134_rep
- .local pmc rx134_cur
- (rx134_cur, rx134_pos, rx134_tgt) = self."!cursor_start"()
- rx134_cur."!cursor_debug"("START ", "quantifier:sym<*>")
- .lex unicode:"$\x{a2}", rx134_cur
- .local pmc match
- .lex "$/", match
- length rx134_eos, rx134_tgt
- set rx134_off, 0
- lt rx134_pos, 2, rx134_start
- sub rx134_off, rx134_pos, 1
- substr rx134_tgt, rx134_tgt, rx134_off
- rx134_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan138_done
- goto rxscan138_scan
- rxscan138_loop:
- ($P10) = rx134_cur."from"()
- inc $P10
- set rx134_pos, $P10
- ge rx134_pos, rx134_eos, rxscan138_done
- rxscan138_scan:
- set_addr $I10, rxscan138_loop
- rx134_cur."!mark_push"(0, rx134_pos, $I10)
- rxscan138_done:
+ .local string rx135_tgt
+ .local int rx135_pos
+ .local int rx135_off
+ .local int rx135_eos
+ .local int rx135_rep
+ .local pmc rx135_cur
+ (rx135_cur, rx135_pos, rx135_tgt) = self."!cursor_start"()
+ rx135_cur."!cursor_debug"("START ", "quantifier:sym<*>")
+ .lex unicode:"$\x{a2}", rx135_cur
+ .local pmc match
+ .lex "$/", match
+ length rx135_eos, rx135_tgt
+ gt rx135_pos, rx135_eos, rx135_done
+ set rx135_off, 0
+ lt rx135_pos, 2, rx135_start
+ sub rx135_off, rx135_pos, 1
+ substr rx135_tgt, rx135_tgt, rx135_off
+ rx135_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan139_done
+ goto rxscan139_scan
+ rxscan139_loop:
+ ($P10) = rx135_cur."from"()
+ inc $P10
+ set rx135_pos, $P10
+ ge rx135_pos, rx135_eos, rxscan139_done
+ rxscan139_scan:
+ set_addr $I10, rxscan139_loop
+ rx135_cur."!mark_push"(0, rx135_pos, $I10)
+ rxscan139_done:
.annotate 'line', 53
# rx subcapture "sym"
- set_addr $I10, rxcap_139_fail
- rx134_cur."!mark_push"(0, rx134_pos, $I10)
+ set_addr $I10, rxcap_140_fail
+ rx135_cur."!mark_push"(0, rx135_pos, $I10)
# rx literal "*"
- add $I11, rx134_pos, 1
- gt $I11, rx134_eos, rx134_fail
- sub $I11, rx134_pos, rx134_off
- substr $S10, rx134_tgt, $I11, 1
- ne $S10, "*", rx134_fail
- add rx134_pos, 1
- set_addr $I10, rxcap_139_fail
- ($I12, $I11) = rx134_cur."!mark_peek"($I10)
- rx134_cur."!cursor_pos"($I11)
- ($P10) = rx134_cur."!cursor_start"()
- $P10."!cursor_pass"(rx134_pos, "")
- rx134_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx135_pos, 1
+ gt $I11, rx135_eos, rx135_fail
+ sub $I11, rx135_pos, rx135_off
+ substr $S10, rx135_tgt, $I11, 1
+ ne $S10, "*", rx135_fail
+ add rx135_pos, 1
+ set_addr $I10, rxcap_140_fail
+ ($I12, $I11) = rx135_cur."!mark_peek"($I10)
+ rx135_cur."!cursor_pos"($I11)
+ ($P10) = rx135_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx135_pos, "")
+ rx135_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_139_done
- rxcap_139_fail:
- goto rx134_fail
- rxcap_139_done:
+ goto rxcap_140_done
+ rxcap_140_fail:
+ goto rx135_fail
+ rxcap_140_done:
# rx subrule "backmod" subtype=capture negate=
- rx134_cur."!cursor_pos"(rx134_pos)
- $P10 = rx134_cur."backmod"()
- unless $P10, rx134_fail
- rx134_cur."!mark_push"(0, -1, 0, $P10)
+ rx135_cur."!cursor_pos"(rx135_pos)
+ $P10 = rx135_cur."backmod"()
+ unless $P10, rx135_fail
+ rx135_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx134_pos = $P10."pos"()
+ rx135_pos = $P10."pos"()
# rx pass
- rx134_cur."!cursor_pass"(rx134_pos, "quantifier:sym<*>")
- rx134_cur."!cursor_debug"("PASS ", "quantifier:sym<*>", " at pos=", rx134_pos)
- .return (rx134_cur)
- rx134_fail:
+ rx135_cur."!cursor_pass"(rx135_pos, "quantifier:sym<*>")
+ rx135_cur."!cursor_debug"("PASS ", "quantifier:sym<*>", " at pos=", rx135_pos)
+ .return (rx135_cur)
+ rx135_fail:
.annotate 'line', 3
- (rx134_rep, rx134_pos, $I10, $P10) = rx134_cur."!mark_fail"(0)
- lt rx134_pos, -1, rx134_done
- eq rx134_pos, -1, rx134_fail
+ (rx135_rep, rx135_pos, $I10, $P10) = rx135_cur."!mark_fail"(0)
+ lt rx135_pos, -1, rx135_done
+ eq rx135_pos, -1, rx135_fail
jump $I10
- rx134_done:
- rx134_cur."!cursor_fail"()
- rx134_cur."!cursor_debug"("FAIL ", "quantifier:sym<*>")
- .return (rx134_cur)
+ rx135_done:
+ rx135_cur."!cursor_fail"()
+ rx135_cur."!cursor_debug"("FAIL ", "quantifier:sym<*>")
+ .return (rx135_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<*>" :subid("37_1274022883.50471") :method
+.sub "!PREFIX__quantifier:sym<*>" :subid("37_1275811476.7961") :method
.annotate 'line', 3
- $P136 = self."!PREFIX__!subrule"("backmod", "*")
- new $P137, "ResizablePMCArray"
- push $P137, $P136
- .return ($P137)
+ $P137 = self."!PREFIX__!subrule"("backmod", "*")
+ new $P138, "ResizablePMCArray"
+ push $P138, $P137
+ .return ($P138)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<+>" :subid("38_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "quantifier:sym<+>" :subid("38_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx141_tgt
- .local int rx141_pos
- .local int rx141_off
- .local int rx141_eos
- .local int rx141_rep
- .local pmc rx141_cur
- (rx141_cur, rx141_pos, rx141_tgt) = self."!cursor_start"()
- rx141_cur."!cursor_debug"("START ", "quantifier:sym<+>")
- .lex unicode:"$\x{a2}", rx141_cur
+ .local string rx142_tgt
+ .local int rx142_pos
+ .local int rx142_off
+ .local int rx142_eos
+ .local int rx142_rep
+ .local pmc rx142_cur
+ (rx142_cur, rx142_pos, rx142_tgt) = self."!cursor_start"()
+ rx142_cur."!cursor_debug"("START ", "quantifier:sym<+>")
+ .lex unicode:"$\x{a2}", rx142_cur
.local pmc match
.lex "$/", match
- length rx141_eos, rx141_tgt
- set rx141_off, 0
- lt rx141_pos, 2, rx141_start
- sub rx141_off, rx141_pos, 1
- substr rx141_tgt, rx141_tgt, rx141_off
- rx141_start:
+ length rx142_eos, rx142_tgt
+ gt rx142_pos, rx142_eos, rx142_done
+ set rx142_off, 0
+ lt rx142_pos, 2, rx142_start
+ sub rx142_off, rx142_pos, 1
+ substr rx142_tgt, rx142_tgt, rx142_off
+ rx142_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan145_done
- goto rxscan145_scan
- rxscan145_loop:
- ($P10) = rx141_cur."from"()
+ ne $I10, -1, rxscan146_done
+ goto rxscan146_scan
+ rxscan146_loop:
+ ($P10) = rx142_cur."from"()
inc $P10
- set rx141_pos, $P10
- ge rx141_pos, rx141_eos, rxscan145_done
- rxscan145_scan:
- set_addr $I10, rxscan145_loop
- rx141_cur."!mark_push"(0, rx141_pos, $I10)
- rxscan145_done:
+ set rx142_pos, $P10
+ ge rx142_pos, rx142_eos, rxscan146_done
+ rxscan146_scan:
+ set_addr $I10, rxscan146_loop
+ rx142_cur."!mark_push"(0, rx142_pos, $I10)
+ rxscan146_done:
.annotate 'line', 54
# rx subcapture "sym"
- set_addr $I10, rxcap_146_fail
- rx141_cur."!mark_push"(0, rx141_pos, $I10)
+ set_addr $I10, rxcap_147_fail
+ rx142_cur."!mark_push"(0, rx142_pos, $I10)
# rx literal "+"
- add $I11, rx141_pos, 1
- gt $I11, rx141_eos, rx141_fail
- sub $I11, rx141_pos, rx141_off
- substr $S10, rx141_tgt, $I11, 1
- ne $S10, "+", rx141_fail
- add rx141_pos, 1
- set_addr $I10, rxcap_146_fail
- ($I12, $I11) = rx141_cur."!mark_peek"($I10)
- rx141_cur."!cursor_pos"($I11)
- ($P10) = rx141_cur."!cursor_start"()
- $P10."!cursor_pass"(rx141_pos, "")
- rx141_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx142_pos, 1
+ gt $I11, rx142_eos, rx142_fail
+ sub $I11, rx142_pos, rx142_off
+ substr $S10, rx142_tgt, $I11, 1
+ ne $S10, "+", rx142_fail
+ add rx142_pos, 1
+ set_addr $I10, rxcap_147_fail
+ ($I12, $I11) = rx142_cur."!mark_peek"($I10)
+ rx142_cur."!cursor_pos"($I11)
+ ($P10) = rx142_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx142_pos, "")
+ rx142_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_146_done
- rxcap_146_fail:
- goto rx141_fail
- rxcap_146_done:
+ goto rxcap_147_done
+ rxcap_147_fail:
+ goto rx142_fail
+ rxcap_147_done:
# rx subrule "backmod" subtype=capture negate=
- rx141_cur."!cursor_pos"(rx141_pos)
- $P10 = rx141_cur."backmod"()
- unless $P10, rx141_fail
- rx141_cur."!mark_push"(0, -1, 0, $P10)
+ rx142_cur."!cursor_pos"(rx142_pos)
+ $P10 = rx142_cur."backmod"()
+ unless $P10, rx142_fail
+ rx142_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx141_pos = $P10."pos"()
+ rx142_pos = $P10."pos"()
# rx pass
- rx141_cur."!cursor_pass"(rx141_pos, "quantifier:sym<+>")
- rx141_cur."!cursor_debug"("PASS ", "quantifier:sym<+>", " at pos=", rx141_pos)
- .return (rx141_cur)
- rx141_fail:
+ rx142_cur."!cursor_pass"(rx142_pos, "quantifier:sym<+>")
+ rx142_cur."!cursor_debug"("PASS ", "quantifier:sym<+>", " at pos=", rx142_pos)
+ .return (rx142_cur)
+ rx142_fail:
.annotate 'line', 3
- (rx141_rep, rx141_pos, $I10, $P10) = rx141_cur."!mark_fail"(0)
- lt rx141_pos, -1, rx141_done
- eq rx141_pos, -1, rx141_fail
+ (rx142_rep, rx142_pos, $I10, $P10) = rx142_cur."!mark_fail"(0)
+ lt rx142_pos, -1, rx142_done
+ eq rx142_pos, -1, rx142_fail
jump $I10
- rx141_done:
- rx141_cur."!cursor_fail"()
- rx141_cur."!cursor_debug"("FAIL ", "quantifier:sym<+>")
- .return (rx141_cur)
+ rx142_done:
+ rx142_cur."!cursor_fail"()
+ rx142_cur."!cursor_debug"("FAIL ", "quantifier:sym<+>")
+ .return (rx142_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<+>" :subid("39_1274022883.50471") :method
+.sub "!PREFIX__quantifier:sym<+>" :subid("39_1275811476.7961") :method
.annotate 'line', 3
- $P143 = self."!PREFIX__!subrule"("backmod", "+")
- new $P144, "ResizablePMCArray"
- push $P144, $P143
- .return ($P144)
+ $P144 = self."!PREFIX__!subrule"("backmod", "+")
+ new $P145, "ResizablePMCArray"
+ push $P145, $P144
+ .return ($P145)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<?>" :subid("40_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "quantifier:sym<?>" :subid("40_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx148_tgt
- .local int rx148_pos
- .local int rx148_off
- .local int rx148_eos
- .local int rx148_rep
- .local pmc rx148_cur
- (rx148_cur, rx148_pos, rx148_tgt) = self."!cursor_start"()
- rx148_cur."!cursor_debug"("START ", "quantifier:sym<?>")
- .lex unicode:"$\x{a2}", rx148_cur
+ .local string rx149_tgt
+ .local int rx149_pos
+ .local int rx149_off
+ .local int rx149_eos
+ .local int rx149_rep
+ .local pmc rx149_cur
+ (rx149_cur, rx149_pos, rx149_tgt) = self."!cursor_start"()
+ rx149_cur."!cursor_debug"("START ", "quantifier:sym<?>")
+ .lex unicode:"$\x{a2}", rx149_cur
.local pmc match
.lex "$/", match
- length rx148_eos, rx148_tgt
- set rx148_off, 0
- lt rx148_pos, 2, rx148_start
- sub rx148_off, rx148_pos, 1
- substr rx148_tgt, rx148_tgt, rx148_off
- rx148_start:
+ length rx149_eos, rx149_tgt
+ gt rx149_pos, rx149_eos, rx149_done
+ set rx149_off, 0
+ lt rx149_pos, 2, rx149_start
+ sub rx149_off, rx149_pos, 1
+ substr rx149_tgt, rx149_tgt, rx149_off
+ rx149_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan152_done
- goto rxscan152_scan
- rxscan152_loop:
- ($P10) = rx148_cur."from"()
+ ne $I10, -1, rxscan153_done
+ goto rxscan153_scan
+ rxscan153_loop:
+ ($P10) = rx149_cur."from"()
inc $P10
- set rx148_pos, $P10
- ge rx148_pos, rx148_eos, rxscan152_done
- rxscan152_scan:
- set_addr $I10, rxscan152_loop
- rx148_cur."!mark_push"(0, rx148_pos, $I10)
- rxscan152_done:
+ set rx149_pos, $P10
+ ge rx149_pos, rx149_eos, rxscan153_done
+ rxscan153_scan:
+ set_addr $I10, rxscan153_loop
+ rx149_cur."!mark_push"(0, rx149_pos, $I10)
+ rxscan153_done:
.annotate 'line', 55
# rx subcapture "sym"
- set_addr $I10, rxcap_153_fail
- rx148_cur."!mark_push"(0, rx148_pos, $I10)
+ set_addr $I10, rxcap_154_fail
+ rx149_cur."!mark_push"(0, rx149_pos, $I10)
# rx literal "?"
- add $I11, rx148_pos, 1
- gt $I11, rx148_eos, rx148_fail
- sub $I11, rx148_pos, rx148_off
- substr $S10, rx148_tgt, $I11, 1
- ne $S10, "?", rx148_fail
- add rx148_pos, 1
- set_addr $I10, rxcap_153_fail
- ($I12, $I11) = rx148_cur."!mark_peek"($I10)
- rx148_cur."!cursor_pos"($I11)
- ($P10) = rx148_cur."!cursor_start"()
- $P10."!cursor_pass"(rx148_pos, "")
- rx148_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx149_pos, 1
+ gt $I11, rx149_eos, rx149_fail
+ sub $I11, rx149_pos, rx149_off
+ substr $S10, rx149_tgt, $I11, 1
+ ne $S10, "?", rx149_fail
+ add rx149_pos, 1
+ set_addr $I10, rxcap_154_fail
+ ($I12, $I11) = rx149_cur."!mark_peek"($I10)
+ rx149_cur."!cursor_pos"($I11)
+ ($P10) = rx149_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx149_pos, "")
+ rx149_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_153_done
- rxcap_153_fail:
- goto rx148_fail
- rxcap_153_done:
+ goto rxcap_154_done
+ rxcap_154_fail:
+ goto rx149_fail
+ rxcap_154_done:
# rx subrule "backmod" subtype=capture negate=
- rx148_cur."!cursor_pos"(rx148_pos)
- $P10 = rx148_cur."backmod"()
- unless $P10, rx148_fail
- rx148_cur."!mark_push"(0, -1, 0, $P10)
+ rx149_cur."!cursor_pos"(rx149_pos)
+ $P10 = rx149_cur."backmod"()
+ unless $P10, rx149_fail
+ rx149_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx148_pos = $P10."pos"()
+ rx149_pos = $P10."pos"()
# rx pass
- rx148_cur."!cursor_pass"(rx148_pos, "quantifier:sym<?>")
- rx148_cur."!cursor_debug"("PASS ", "quantifier:sym<?>", " at pos=", rx148_pos)
- .return (rx148_cur)
- rx148_fail:
+ rx149_cur."!cursor_pass"(rx149_pos, "quantifier:sym<?>")
+ rx149_cur."!cursor_debug"("PASS ", "quantifier:sym<?>", " at pos=", rx149_pos)
+ .return (rx149_cur)
+ rx149_fail:
.annotate 'line', 3
- (rx148_rep, rx148_pos, $I10, $P10) = rx148_cur."!mark_fail"(0)
- lt rx148_pos, -1, rx148_done
- eq rx148_pos, -1, rx148_fail
+ (rx149_rep, rx149_pos, $I10, $P10) = rx149_cur."!mark_fail"(0)
+ lt rx149_pos, -1, rx149_done
+ eq rx149_pos, -1, rx149_fail
jump $I10
- rx148_done:
- rx148_cur."!cursor_fail"()
- rx148_cur."!cursor_debug"("FAIL ", "quantifier:sym<?>")
- .return (rx148_cur)
+ rx149_done:
+ rx149_cur."!cursor_fail"()
+ rx149_cur."!cursor_debug"("FAIL ", "quantifier:sym<?>")
+ .return (rx149_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<?>" :subid("41_1274022883.50471") :method
+.sub "!PREFIX__quantifier:sym<?>" :subid("41_1275811476.7961") :method
.annotate 'line', 3
- $P150 = self."!PREFIX__!subrule"("backmod", "?")
- new $P151, "ResizablePMCArray"
- push $P151, $P150
- .return ($P151)
+ $P151 = self."!PREFIX__!subrule"("backmod", "?")
+ new $P152, "ResizablePMCArray"
+ push $P152, $P151
+ .return ($P152)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "quantifier:sym<**>" :subid("42_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "quantifier:sym<**>" :subid("42_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx155_tgt
- .local int rx155_pos
- .local int rx155_off
- .local int rx155_eos
- .local int rx155_rep
- .local pmc rx155_cur
- (rx155_cur, rx155_pos, rx155_tgt) = self."!cursor_start"()
- rx155_cur."!cursor_debug"("START ", "quantifier:sym<**>")
- rx155_cur."!cursor_caparray"("max")
- .lex unicode:"$\x{a2}", rx155_cur
+ .local string rx156_tgt
+ .local int rx156_pos
+ .local int rx156_off
+ .local int rx156_eos
+ .local int rx156_rep
+ .local pmc rx156_cur
+ (rx156_cur, rx156_pos, rx156_tgt) = self."!cursor_start"()
+ rx156_cur."!cursor_debug"("START ", "quantifier:sym<**>")
+ rx156_cur."!cursor_caparray"("max", "normspace")
+ .lex unicode:"$\x{a2}", rx156_cur
.local pmc match
.lex "$/", match
- length rx155_eos, rx155_tgt
- set rx155_off, 0
- lt rx155_pos, 2, rx155_start
- sub rx155_off, rx155_pos, 1
- substr rx155_tgt, rx155_tgt, rx155_off
- rx155_start:
+ length rx156_eos, rx156_tgt
+ gt rx156_pos, rx156_eos, rx156_done
+ set rx156_off, 0
+ lt rx156_pos, 2, rx156_start
+ sub rx156_off, rx156_pos, 1
+ substr rx156_tgt, rx156_tgt, rx156_off
+ rx156_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan158_done
- goto rxscan158_scan
- rxscan158_loop:
- ($P10) = rx155_cur."from"()
+ ne $I10, -1, rxscan159_done
+ goto rxscan159_scan
+ rxscan159_loop:
+ ($P10) = rx156_cur."from"()
inc $P10
- set rx155_pos, $P10
- ge rx155_pos, rx155_eos, rxscan158_done
- rxscan158_scan:
- set_addr $I10, rxscan158_loop
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
- rxscan158_done:
+ set rx156_pos, $P10
+ ge rx156_pos, rx156_eos, rxscan159_done
+ rxscan159_scan:
+ set_addr $I10, rxscan159_loop
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
+ rxscan159_done:
.annotate 'line', 57
# rx subcapture "sym"
- set_addr $I10, rxcap_159_fail
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
+ set_addr $I10, rxcap_160_fail
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
# rx literal "**"
- add $I11, rx155_pos, 2
- gt $I11, rx155_eos, rx155_fail
- sub $I11, rx155_pos, rx155_off
- substr $S10, rx155_tgt, $I11, 2
- ne $S10, "**", rx155_fail
- add rx155_pos, 2
- set_addr $I10, rxcap_159_fail
- ($I12, $I11) = rx155_cur."!mark_peek"($I10)
- rx155_cur."!cursor_pos"($I11)
- ($P10) = rx155_cur."!cursor_start"()
- $P10."!cursor_pass"(rx155_pos, "")
- rx155_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx156_pos, 2
+ gt $I11, rx156_eos, rx156_fail
+ sub $I11, rx156_pos, rx156_off
+ substr $S10, rx156_tgt, $I11, 2
+ ne $S10, "**", rx156_fail
+ add rx156_pos, 2
+ set_addr $I10, rxcap_160_fail
+ ($I12, $I11) = rx156_cur."!mark_peek"($I10)
+ rx156_cur."!cursor_pos"($I11)
+ ($P10) = rx156_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx156_pos, "")
+ rx156_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_159_done
- rxcap_159_fail:
- goto rx155_fail
- rxcap_159_done:
- # rx charclass_q s r 0..-1
- sub $I10, rx155_pos, rx155_off
- find_not_cclass $I11, 32, rx155_tgt, $I10, rx155_eos
- add rx155_pos, rx155_off, $I11
+ goto rxcap_160_done
+ rxcap_160_fail:
+ goto rx156_fail
+ rxcap_160_done:
+ # rx rxquantr161 ** 0..1
+ set_addr $I162, rxquantr161_done
+ rx156_cur."!mark_push"(0, rx156_pos, $I162)
+ rxquantr161_loop:
+ # rx subrule "normspace" subtype=capture negate=
+ rx156_cur."!cursor_pos"(rx156_pos)
+ $P10 = rx156_cur."normspace"()
+ unless $P10, rx156_fail
+ rx156_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("normspace")
+ rx156_pos = $P10."pos"()
+ (rx156_rep) = rx156_cur."!mark_commit"($I162)
+ rxquantr161_done:
# rx subrule "backmod" subtype=capture negate=
- rx155_cur."!cursor_pos"(rx155_pos)
- $P10 = rx155_cur."backmod"()
- unless $P10, rx155_fail
- rx155_cur."!mark_push"(0, -1, 0, $P10)
+ rx156_cur."!cursor_pos"(rx156_pos)
+ $P10 = rx156_cur."backmod"()
+ unless $P10, rx156_fail
+ rx156_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backmod")
- rx155_pos = $P10."pos"()
- # rx charclass_q s r 0..-1
- sub $I10, rx155_pos, rx155_off
- find_not_cclass $I11, 32, rx155_tgt, $I10, rx155_eos
- add rx155_pos, rx155_off, $I11
- alt160_0:
+ rx156_pos = $P10."pos"()
+ # rx rxquantr163 ** 0..1
+ set_addr $I164, rxquantr163_done
+ rx156_cur."!mark_push"(0, rx156_pos, $I164)
+ rxquantr163_loop:
+ # rx subrule "normspace" subtype=capture negate=
+ rx156_cur."!cursor_pos"(rx156_pos)
+ $P10 = rx156_cur."normspace"()
+ unless $P10, rx156_fail
+ rx156_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("normspace")
+ rx156_pos = $P10."pos"()
+ (rx156_rep) = rx156_cur."!mark_commit"($I164)
+ rxquantr163_done:
+ alt165_0:
.annotate 'line', 58
- set_addr $I10, alt160_1
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
+ set_addr $I10, alt165_1
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
.annotate 'line', 59
# rx subcapture "min"
- set_addr $I10, rxcap_161_fail
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
+ set_addr $I10, rxcap_166_fail
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
# rx charclass_q d r 1..-1
- sub $I10, rx155_pos, rx155_off
- find_not_cclass $I11, 8, rx155_tgt, $I10, rx155_eos
+ sub $I10, rx156_pos, rx156_off
+ find_not_cclass $I11, 8, rx156_tgt, $I10, rx156_eos
add $I12, $I10, 1
- lt $I11, $I12, rx155_fail
- add rx155_pos, rx155_off, $I11
- set_addr $I10, rxcap_161_fail
- ($I12, $I11) = rx155_cur."!mark_peek"($I10)
- rx155_cur."!cursor_pos"($I11)
- ($P10) = rx155_cur."!cursor_start"()
- $P10."!cursor_pass"(rx155_pos, "")
- rx155_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx156_fail
+ add rx156_pos, rx156_off, $I11
+ set_addr $I10, rxcap_166_fail
+ ($I12, $I11) = rx156_cur."!mark_peek"($I10)
+ rx156_cur."!cursor_pos"($I11)
+ ($P10) = rx156_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx156_pos, "")
+ rx156_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("min")
- goto rxcap_161_done
- rxcap_161_fail:
- goto rx155_fail
- rxcap_161_done:
+ goto rxcap_166_done
+ rxcap_166_fail:
+ goto rx156_fail
+ rxcap_166_done:
.annotate 'line', 66
- # rx rxquantr162 ** 0..1
- set_addr $I165, rxquantr162_done
- rx155_cur."!mark_push"(0, rx155_pos, $I165)
- rxquantr162_loop:
+ # rx rxquantr167 ** 0..1
+ set_addr $I170, rxquantr167_done
+ rx156_cur."!mark_push"(0, rx156_pos, $I170)
+ rxquantr167_loop:
.annotate 'line', 60
# rx literal ".."
- add $I11, rx155_pos, 2
- gt $I11, rx155_eos, rx155_fail
- sub $I11, rx155_pos, rx155_off
- substr $S10, rx155_tgt, $I11, 2
- ne $S10, "..", rx155_fail
- add rx155_pos, 2
+ add $I11, rx156_pos, 2
+ gt $I11, rx156_eos, rx156_fail
+ sub $I11, rx156_pos, rx156_off
+ substr $S10, rx156_tgt, $I11, 2
+ ne $S10, "..", rx156_fail
+ add rx156_pos, 2
.annotate 'line', 61
# rx subcapture "max"
- set_addr $I10, rxcap_164_fail
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
- alt163_0:
- set_addr $I10, alt163_1
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
+ set_addr $I10, rxcap_169_fail
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
+ alt168_0:
+ set_addr $I10, alt168_1
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
.annotate 'line', 62
# rx charclass_q d r 1..-1
- sub $I10, rx155_pos, rx155_off
- find_not_cclass $I11, 8, rx155_tgt, $I10, rx155_eos
+ sub $I10, rx156_pos, rx156_off
+ find_not_cclass $I11, 8, rx156_tgt, $I10, rx156_eos
add $I12, $I10, 1
- lt $I11, $I12, rx155_fail
- add rx155_pos, rx155_off, $I11
- goto alt163_end
- alt163_1:
- set_addr $I10, alt163_2
- rx155_cur."!mark_push"(0, rx155_pos, $I10)
+ lt $I11, $I12, rx156_fail
+ add rx156_pos, rx156_off, $I11
+ goto alt168_end
+ alt168_1:
+ set_addr $I10, alt168_2
+ rx156_cur."!mark_push"(0, rx156_pos, $I10)
.annotate 'line', 63
# rx literal "*"
- add $I11, rx155_pos, 1
- gt $I11, rx155_eos, rx155_fail
- sub $I11, rx155_pos, rx155_off
- substr $S10, rx155_tgt, $I11, 1
- ne $S10, "*", rx155_fail
- add rx155_pos, 1
- goto alt163_end
- alt163_2:
+ add $I11, rx156_pos, 1
+ gt $I11, rx156_eos, rx156_fail
+ sub $I11, rx156_pos, rx156_off
+ substr $S10, rx156_tgt, $I11, 1
+ ne $S10, "*", rx156_fail
+ add rx156_pos, 1
+ goto alt168_end
+ alt168_2:
.annotate 'line', 64
# rx subrule "panic" subtype=method negate=
- rx155_cur."!cursor_pos"(rx155_pos)
- $P10 = rx155_cur."panic"("Only integers or '*' allowed as range quantifier endpoint")
- unless $P10, rx155_fail
- rx155_pos = $P10."pos"()
- alt163_end:
+ rx156_cur."!cursor_pos"(rx156_pos)
+ $P10 = rx156_cur."panic"("Only integers or '*' allowed as range quantifier endpoint")
+ unless $P10, rx156_fail
+ rx156_pos = $P10."pos"()
+ alt168_end:
.annotate 'line', 61
- set_addr $I10, rxcap_164_fail
- ($I12, $I11) = rx155_cur."!mark_peek"($I10)
- rx155_cur."!cursor_pos"($I11)
- ($P10) = rx155_cur."!cursor_start"()
- $P10."!cursor_pass"(rx155_pos, "")
- rx155_cur."!mark_push"(0, -1, 0, $P10)
+ set_addr $I10, rxcap_169_fail
+ ($I12, $I11) = rx156_cur."!mark_peek"($I10)
+ rx156_cur."!cursor_pos"($I11)
+ ($P10) = rx156_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx156_pos, "")
+ rx156_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("max")
- goto rxcap_164_done
- rxcap_164_fail:
- goto rx155_fail
- rxcap_164_done:
+ goto rxcap_169_done
+ rxcap_169_fail:
+ goto rx156_fail
+ rxcap_169_done:
.annotate 'line', 66
- (rx155_rep) = rx155_cur."!mark_commit"($I165)
- rxquantr162_done:
+ (rx156_rep) = rx156_cur."!mark_commit"($I170)
+ rxquantr167_done:
.annotate 'line', 59
- goto alt160_end
- alt160_1:
+ goto alt165_end
+ alt165_1:
.annotate 'line', 67
# rx subrule "quantified_atom" subtype=capture negate=
- rx155_cur."!cursor_pos"(rx155_pos)
- $P10 = rx155_cur."quantified_atom"()
- unless $P10, rx155_fail
- rx155_cur."!mark_push"(0, -1, 0, $P10)
+ rx156_cur."!cursor_pos"(rx156_pos)
+ $P10 = rx156_cur."quantified_atom"()
+ unless $P10, rx156_fail
+ rx156_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quantified_atom")
- rx155_pos = $P10."pos"()
- alt160_end:
+ rx156_pos = $P10."pos"()
+ alt165_end:
.annotate 'line', 56
# rx pass
- rx155_cur."!cursor_pass"(rx155_pos, "quantifier:sym<**>")
- rx155_cur."!cursor_debug"("PASS ", "quantifier:sym<**>", " at pos=", rx155_pos)
- .return (rx155_cur)
- rx155_fail:
+ rx156_cur."!cursor_pass"(rx156_pos, "quantifier:sym<**>")
+ rx156_cur."!cursor_debug"("PASS ", "quantifier:sym<**>", " at pos=", rx156_pos)
+ .return (rx156_cur)
+ rx156_fail:
.annotate 'line', 3
- (rx155_rep, rx155_pos, $I10, $P10) = rx155_cur."!mark_fail"(0)
- lt rx155_pos, -1, rx155_done
- eq rx155_pos, -1, rx155_fail
+ (rx156_rep, rx156_pos, $I10, $P10) = rx156_cur."!mark_fail"(0)
+ lt rx156_pos, -1, rx156_done
+ eq rx156_pos, -1, rx156_fail
jump $I10
- rx155_done:
- rx155_cur."!cursor_fail"()
- rx155_cur."!cursor_debug"("FAIL ", "quantifier:sym<**>")
- .return (rx155_cur)
+ rx156_done:
+ rx156_cur."!cursor_fail"()
+ rx156_cur."!cursor_debug"("FAIL ", "quantifier:sym<**>")
+ .return (rx156_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__quantifier:sym<**>" :subid("43_1274022883.50471") :method
+.sub "!PREFIX__quantifier:sym<**>" :subid("43_1275811476.7961") :method
.annotate 'line', 3
- new $P157, "ResizablePMCArray"
- push $P157, "**"
- .return ($P157)
+ new $P158, "ResizablePMCArray"
+ push $P158, "**"
+ .return ($P158)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backmod" :subid("44_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backmod" :subid("44_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .const 'Sub' $P175 = "46_1274022883.50471"
- capture_lex $P175
- .local string rx167_tgt
- .local int rx167_pos
- .local int rx167_off
- .local int rx167_eos
- .local int rx167_rep
- .local pmc rx167_cur
- (rx167_cur, rx167_pos, rx167_tgt) = self."!cursor_start"()
- rx167_cur."!cursor_debug"("START ", "backmod")
- .lex unicode:"$\x{a2}", rx167_cur
+ .const 'Sub' $P180 = "46_1275811476.7961"
+ capture_lex $P180
+ .local string rx172_tgt
+ .local int rx172_pos
+ .local int rx172_off
+ .local int rx172_eos
+ .local int rx172_rep
+ .local pmc rx172_cur
+ (rx172_cur, rx172_pos, rx172_tgt) = self."!cursor_start"()
+ rx172_cur."!cursor_debug"("START ", "backmod")
+ .lex unicode:"$\x{a2}", rx172_cur
.local pmc match
.lex "$/", match
- length rx167_eos, rx167_tgt
- set rx167_off, 0
- lt rx167_pos, 2, rx167_start
- sub rx167_off, rx167_pos, 1
- substr rx167_tgt, rx167_tgt, rx167_off
- rx167_start:
+ length rx172_eos, rx172_tgt
+ gt rx172_pos, rx172_eos, rx172_done
+ set rx172_off, 0
+ lt rx172_pos, 2, rx172_start
+ sub rx172_off, rx172_pos, 1
+ substr rx172_tgt, rx172_tgt, rx172_off
+ rx172_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan170_done
- goto rxscan170_scan
- rxscan170_loop:
- ($P10) = rx167_cur."from"()
+ ne $I10, -1, rxscan175_done
+ goto rxscan175_scan
+ rxscan175_loop:
+ ($P10) = rx172_cur."from"()
inc $P10
- set rx167_pos, $P10
- ge rx167_pos, rx167_eos, rxscan170_done
- rxscan170_scan:
- set_addr $I10, rxscan170_loop
- rx167_cur."!mark_push"(0, rx167_pos, $I10)
- rxscan170_done:
+ set rx172_pos, $P10
+ ge rx172_pos, rx172_eos, rxscan175_done
+ rxscan175_scan:
+ set_addr $I10, rxscan175_loop
+ rx172_cur."!mark_push"(0, rx172_pos, $I10)
+ rxscan175_done:
.annotate 'line', 71
- # rx rxquantr171 ** 0..1
- set_addr $I172, rxquantr171_done
- rx167_cur."!mark_push"(0, rx167_pos, $I172)
- rxquantr171_loop:
+ # rx rxquantr176 ** 0..1
+ set_addr $I177, rxquantr176_done
+ rx172_cur."!mark_push"(0, rx172_pos, $I177)
+ rxquantr176_loop:
# rx literal ":"
- add $I11, rx167_pos, 1
- gt $I11, rx167_eos, rx167_fail
- sub $I11, rx167_pos, rx167_off
- substr $S10, rx167_tgt, $I11, 1
- ne $S10, ":", rx167_fail
- add rx167_pos, 1
- (rx167_rep) = rx167_cur."!mark_commit"($I172)
- rxquantr171_done:
- alt173_0:
- set_addr $I10, alt173_1
- rx167_cur."!mark_push"(0, rx167_pos, $I10)
+ add $I11, rx172_pos, 1
+ gt $I11, rx172_eos, rx172_fail
+ sub $I11, rx172_pos, rx172_off
+ substr $S10, rx172_tgt, $I11, 1
+ ne $S10, ":", rx172_fail
+ add rx172_pos, 1
+ (rx172_rep) = rx172_cur."!mark_commit"($I177)
+ rxquantr176_done:
+ alt178_0:
+ set_addr $I10, alt178_1
+ rx172_cur."!mark_push"(0, rx172_pos, $I10)
# rx literal "?"
- add $I11, rx167_pos, 1
- gt $I11, rx167_eos, rx167_fail
- sub $I11, rx167_pos, rx167_off
- substr $S10, rx167_tgt, $I11, 1
- ne $S10, "?", rx167_fail
- add rx167_pos, 1
- goto alt173_end
- alt173_1:
- set_addr $I10, alt173_2
- rx167_cur."!mark_push"(0, rx167_pos, $I10)
+ add $I11, rx172_pos, 1
+ gt $I11, rx172_eos, rx172_fail
+ sub $I11, rx172_pos, rx172_off
+ substr $S10, rx172_tgt, $I11, 1
+ ne $S10, "?", rx172_fail
+ add rx172_pos, 1
+ goto alt178_end
+ alt178_1:
+ set_addr $I10, alt178_2
+ rx172_cur."!mark_push"(0, rx172_pos, $I10)
# rx literal "!"
- add $I11, rx167_pos, 1
- gt $I11, rx167_eos, rx167_fail
- sub $I11, rx167_pos, rx167_off
- substr $S10, rx167_tgt, $I11, 1
- ne $S10, "!", rx167_fail
- add rx167_pos, 1
- goto alt173_end
- alt173_2:
+ add $I11, rx172_pos, 1
+ gt $I11, rx172_eos, rx172_fail
+ sub $I11, rx172_pos, rx172_off
+ substr $S10, rx172_tgt, $I11, 1
+ ne $S10, "!", rx172_fail
+ add rx172_pos, 1
+ goto alt178_end
+ alt178_2:
# rx subrule "before" subtype=zerowidth negate=1
- rx167_cur."!cursor_pos"(rx167_pos)
- .const 'Sub' $P175 = "46_1274022883.50471"
- capture_lex $P175
- $P10 = rx167_cur."before"($P175)
- if $P10, rx167_fail
- alt173_end:
+ rx172_cur."!cursor_pos"(rx172_pos)
+ .const 'Sub' $P180 = "46_1275811476.7961"
+ capture_lex $P180
+ $P10 = rx172_cur."before"($P180)
+ if $P10, rx172_fail
+ alt178_end:
# rx pass
- rx167_cur."!cursor_pass"(rx167_pos, "backmod")
- rx167_cur."!cursor_debug"("PASS ", "backmod", " at pos=", rx167_pos)
- .return (rx167_cur)
- rx167_fail:
+ rx172_cur."!cursor_pass"(rx172_pos, "backmod")
+ rx172_cur."!cursor_debug"("PASS ", "backmod", " at pos=", rx172_pos)
+ .return (rx172_cur)
+ rx172_fail:
.annotate 'line', 3
- (rx167_rep, rx167_pos, $I10, $P10) = rx167_cur."!mark_fail"(0)
- lt rx167_pos, -1, rx167_done
- eq rx167_pos, -1, rx167_fail
+ (rx172_rep, rx172_pos, $I10, $P10) = rx172_cur."!mark_fail"(0)
+ lt rx172_pos, -1, rx172_done
+ eq rx172_pos, -1, rx172_fail
jump $I10
- rx167_done:
- rx167_cur."!cursor_fail"()
- rx167_cur."!cursor_debug"("FAIL ", "backmod")
- .return (rx167_cur)
+ rx172_done:
+ rx172_cur."!cursor_fail"()
+ rx172_cur."!cursor_debug"("FAIL ", "backmod")
+ .return (rx172_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backmod" :subid("45_1274022883.50471") :method
+.sub "!PREFIX__backmod" :subid("45_1275811476.7961") :method
.annotate 'line', 3
- new $P169, "ResizablePMCArray"
- push $P169, ""
- .return ($P169)
+ new $P174, "ResizablePMCArray"
+ push $P174, ""
+ .return ($P174)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block174" :anon :subid("46_1274022883.50471") :method :outer("44_1274022883.50471")
+.sub "_block179" :anon :subid("46_1275811476.7961") :method :outer("44_1275811476.7961")
.annotate 'line', 71
- .local string rx176_tgt
- .local int rx176_pos
- .local int rx176_off
- .local int rx176_eos
- .local int rx176_rep
- .local pmc rx176_cur
- (rx176_cur, rx176_pos, rx176_tgt) = self."!cursor_start"()
- rx176_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx176_cur
- .local pmc match
- .lex "$/", match
- length rx176_eos, rx176_tgt
- set rx176_off, 0
- lt rx176_pos, 2, rx176_start
- sub rx176_off, rx176_pos, 1
- substr rx176_tgt, rx176_tgt, rx176_off
- rx176_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan177_done
- goto rxscan177_scan
- rxscan177_loop:
- ($P10) = rx176_cur."from"()
- inc $P10
- set rx176_pos, $P10
- ge rx176_pos, rx176_eos, rxscan177_done
- rxscan177_scan:
- set_addr $I10, rxscan177_loop
- rx176_cur."!mark_push"(0, rx176_pos, $I10)
- rxscan177_done:
+ .local string rx181_tgt
+ .local int rx181_pos
+ .local int rx181_off
+ .local int rx181_eos
+ .local int rx181_rep
+ .local pmc rx181_cur
+ (rx181_cur, rx181_pos, rx181_tgt) = self."!cursor_start"()
+ rx181_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx181_cur
+ .local pmc match
+ .lex "$/", match
+ length rx181_eos, rx181_tgt
+ gt rx181_pos, rx181_eos, rx181_done
+ set rx181_off, 0
+ lt rx181_pos, 2, rx181_start
+ sub rx181_off, rx181_pos, 1
+ substr rx181_tgt, rx181_tgt, rx181_off
+ rx181_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan182_done
+ goto rxscan182_scan
+ rxscan182_loop:
+ ($P10) = rx181_cur."from"()
+ inc $P10
+ set rx181_pos, $P10
+ ge rx181_pos, rx181_eos, rxscan182_done
+ rxscan182_scan:
+ set_addr $I10, rxscan182_loop
+ rx181_cur."!mark_push"(0, rx181_pos, $I10)
+ rxscan182_done:
# rx literal ":"
- add $I11, rx176_pos, 1
- gt $I11, rx176_eos, rx176_fail
- sub $I11, rx176_pos, rx176_off
- substr $S10, rx176_tgt, $I11, 1
- ne $S10, ":", rx176_fail
- add rx176_pos, 1
+ add $I11, rx181_pos, 1
+ gt $I11, rx181_eos, rx181_fail
+ sub $I11, rx181_pos, rx181_off
+ substr $S10, rx181_tgt, $I11, 1
+ ne $S10, ":", rx181_fail
+ add rx181_pos, 1
# rx pass
- rx176_cur."!cursor_pass"(rx176_pos, "")
- rx176_cur."!cursor_debug"("PASS ", "", " at pos=", rx176_pos)
- .return (rx176_cur)
- rx176_fail:
- (rx176_rep, rx176_pos, $I10, $P10) = rx176_cur."!mark_fail"(0)
- lt rx176_pos, -1, rx176_done
- eq rx176_pos, -1, rx176_fail
+ rx181_cur."!cursor_pass"(rx181_pos, "")
+ rx181_cur."!cursor_debug"("PASS ", "", " at pos=", rx181_pos)
+ .return (rx181_cur)
+ rx181_fail:
+ (rx181_rep, rx181_pos, $I10, $P10) = rx181_cur."!mark_fail"(0)
+ lt rx181_pos, -1, rx181_done
+ eq rx181_pos, -1, rx181_fail
jump $I10
- rx176_done:
- rx176_cur."!cursor_fail"()
- rx176_cur."!cursor_debug"("FAIL ", "")
- .return (rx176_cur)
+ rx181_done:
+ rx181_cur."!cursor_fail"()
+ rx181_cur."!cursor_debug"("FAIL ", "")
+ .return (rx181_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar" :subid("47_1274022883.50471") :method
+.sub "metachar" :subid("47_1275811476.7961") :method
.annotate 'line', 73
- $P179 = self."!protoregex"("metachar")
- .return ($P179)
+ $P184 = self."!protoregex"("metachar")
+ .return ($P184)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar" :subid("48_1274022883.50471") :method
+.sub "!PREFIX__metachar" :subid("48_1275811476.7961") :method
.annotate 'line', 73
- $P181 = self."!PREFIX__!protoregex"("metachar")
- .return ($P181)
+ $P186 = self."!PREFIX__!protoregex"("metachar")
+ .return ($P186)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<ws>" :subid("49_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<ws>" :subid("49_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx183_tgt
- .local int rx183_pos
- .local int rx183_off
- .local int rx183_eos
- .local int rx183_rep
- .local pmc rx183_cur
- (rx183_cur, rx183_pos, rx183_tgt) = self."!cursor_start"()
- rx183_cur."!cursor_debug"("START ", "metachar:sym<ws>")
- .lex unicode:"$\x{a2}", rx183_cur
- .local pmc match
- .lex "$/", match
- length rx183_eos, rx183_tgt
- set rx183_off, 0
- lt rx183_pos, 2, rx183_start
- sub rx183_off, rx183_pos, 1
- substr rx183_tgt, rx183_tgt, rx183_off
- rx183_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan187_done
- goto rxscan187_scan
- rxscan187_loop:
- ($P10) = rx183_cur."from"()
- inc $P10
- set rx183_pos, $P10
- ge rx183_pos, rx183_eos, rxscan187_done
- rxscan187_scan:
- set_addr $I10, rxscan187_loop
- rx183_cur."!mark_push"(0, rx183_pos, $I10)
- rxscan187_done:
+ .local string rx188_tgt
+ .local int rx188_pos
+ .local int rx188_off
+ .local int rx188_eos
+ .local int rx188_rep
+ .local pmc rx188_cur
+ (rx188_cur, rx188_pos, rx188_tgt) = self."!cursor_start"()
+ rx188_cur."!cursor_debug"("START ", "metachar:sym<ws>")
+ .lex unicode:"$\x{a2}", rx188_cur
+ .local pmc match
+ .lex "$/", match
+ length rx188_eos, rx188_tgt
+ gt rx188_pos, rx188_eos, rx188_done
+ set rx188_off, 0
+ lt rx188_pos, 2, rx188_start
+ sub rx188_off, rx188_pos, 1
+ substr rx188_tgt, rx188_tgt, rx188_off
+ rx188_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan192_done
+ goto rxscan192_scan
+ rxscan192_loop:
+ ($P10) = rx188_cur."from"()
+ inc $P10
+ set rx188_pos, $P10
+ ge rx188_pos, rx188_eos, rxscan192_done
+ rxscan192_scan:
+ set_addr $I10, rxscan192_loop
+ rx188_cur."!mark_push"(0, rx188_pos, $I10)
+ rxscan192_done:
.annotate 'line', 74
# rx subrule "normspace" subtype=method negate=
- rx183_cur."!cursor_pos"(rx183_pos)
- $P10 = rx183_cur."normspace"()
- unless $P10, rx183_fail
- rx183_pos = $P10."pos"()
- # rx pass
- rx183_cur."!cursor_pass"(rx183_pos, "metachar:sym<ws>")
- rx183_cur."!cursor_debug"("PASS ", "metachar:sym<ws>", " at pos=", rx183_pos)
- .return (rx183_cur)
- rx183_fail:
-.annotate 'line', 3
- (rx183_rep, rx183_pos, $I10, $P10) = rx183_cur."!mark_fail"(0)
- lt rx183_pos, -1, rx183_done
- eq rx183_pos, -1, rx183_fail
- jump $I10
- rx183_done:
- rx183_cur."!cursor_fail"()
- rx183_cur."!cursor_debug"("FAIL ", "metachar:sym<ws>")
- .return (rx183_cur)
- .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<ws>" :subid("50_1274022883.50471") :method
-.annotate 'line', 3
- $P185 = self."!PREFIX__!subrule"("", "")
- new $P186, "ResizablePMCArray"
- push $P186, $P185
- .return ($P186)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<[ ]>" :subid("51_1274022883.50471") :method :outer("11_1274022883.50471")
-.annotate 'line', 3
- .local string rx189_tgt
- .local int rx189_pos
- .local int rx189_off
- .local int rx189_eos
- .local int rx189_rep
- .local pmc rx189_cur
- (rx189_cur, rx189_pos, rx189_tgt) = self."!cursor_start"()
- rx189_cur."!cursor_debug"("START ", "metachar:sym<[ ]>")
- .lex unicode:"$\x{a2}", rx189_cur
- .local pmc match
- .lex "$/", match
- length rx189_eos, rx189_tgt
- set rx189_off, 0
- lt rx189_pos, 2, rx189_start
- sub rx189_off, rx189_pos, 1
- substr rx189_tgt, rx189_tgt, rx189_off
- rx189_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan193_done
- goto rxscan193_scan
- rxscan193_loop:
- ($P10) = rx189_cur."from"()
- inc $P10
- set rx189_pos, $P10
- ge rx189_pos, rx189_eos, rxscan193_done
- rxscan193_scan:
- set_addr $I10, rxscan193_loop
- rx189_cur."!mark_push"(0, rx189_pos, $I10)
- rxscan193_done:
-.annotate 'line', 75
- # rx literal "["
- add $I11, rx189_pos, 1
- gt $I11, rx189_eos, rx189_fail
- sub $I11, rx189_pos, rx189_off
- substr $S10, rx189_tgt, $I11, 1
- ne $S10, "[", rx189_fail
- add rx189_pos, 1
- # rx subrule "nibbler" subtype=capture negate=
- rx189_cur."!cursor_pos"(rx189_pos)
- $P10 = rx189_cur."nibbler"()
- unless $P10, rx189_fail
- rx189_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("nibbler")
- rx189_pos = $P10."pos"()
- # rx literal "]"
- add $I11, rx189_pos, 1
- gt $I11, rx189_eos, rx189_fail
- sub $I11, rx189_pos, rx189_off
- substr $S10, rx189_tgt, $I11, 1
- ne $S10, "]", rx189_fail
- add rx189_pos, 1
+ rx188_cur."!cursor_pos"(rx188_pos)
+ $P10 = rx188_cur."normspace"()
+ unless $P10, rx188_fail
+ rx188_pos = $P10."pos"()
# rx pass
- rx189_cur."!cursor_pass"(rx189_pos, "metachar:sym<[ ]>")
- rx189_cur."!cursor_debug"("PASS ", "metachar:sym<[ ]>", " at pos=", rx189_pos)
- .return (rx189_cur)
- rx189_fail:
+ rx188_cur."!cursor_pass"(rx188_pos, "metachar:sym<ws>")
+ rx188_cur."!cursor_debug"("PASS ", "metachar:sym<ws>", " at pos=", rx188_pos)
+ .return (rx188_cur)
+ rx188_fail:
.annotate 'line', 3
- (rx189_rep, rx189_pos, $I10, $P10) = rx189_cur."!mark_fail"(0)
- lt rx189_pos, -1, rx189_done
- eq rx189_pos, -1, rx189_fail
+ (rx188_rep, rx188_pos, $I10, $P10) = rx188_cur."!mark_fail"(0)
+ lt rx188_pos, -1, rx188_done
+ eq rx188_pos, -1, rx188_fail
jump $I10
- rx189_done:
- rx189_cur."!cursor_fail"()
- rx189_cur."!cursor_debug"("FAIL ", "metachar:sym<[ ]>")
- .return (rx189_cur)
+ rx188_done:
+ rx188_cur."!cursor_fail"()
+ rx188_cur."!cursor_debug"("FAIL ", "metachar:sym<ws>")
+ .return (rx188_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<[ ]>" :subid("52_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<ws>" :subid("50_1275811476.7961") :method
.annotate 'line', 3
- $P191 = self."!PREFIX__!subrule"("nibbler", "[")
- new $P192, "ResizablePMCArray"
- push $P192, $P191
- .return ($P192)
+ $P190 = self."!PREFIX__!subrule"("normspace", "")
+ new $P191, "ResizablePMCArray"
+ push $P191, $P190
+ .return ($P191)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<( )>" :subid("53_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<[ ]>" :subid("51_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx195_tgt
- .local int rx195_pos
- .local int rx195_off
- .local int rx195_eos
- .local int rx195_rep
- .local pmc rx195_cur
- (rx195_cur, rx195_pos, rx195_tgt) = self."!cursor_start"()
- rx195_cur."!cursor_debug"("START ", "metachar:sym<( )>")
- .lex unicode:"$\x{a2}", rx195_cur
+ .local string rx194_tgt
+ .local int rx194_pos
+ .local int rx194_off
+ .local int rx194_eos
+ .local int rx194_rep
+ .local pmc rx194_cur
+ (rx194_cur, rx194_pos, rx194_tgt) = self."!cursor_start"()
+ rx194_cur."!cursor_debug"("START ", "metachar:sym<[ ]>")
+ .lex unicode:"$\x{a2}", rx194_cur
.local pmc match
.lex "$/", match
- length rx195_eos, rx195_tgt
- set rx195_off, 0
- lt rx195_pos, 2, rx195_start
- sub rx195_off, rx195_pos, 1
- substr rx195_tgt, rx195_tgt, rx195_off
- rx195_start:
+ length rx194_eos, rx194_tgt
+ gt rx194_pos, rx194_eos, rx194_done
+ set rx194_off, 0
+ lt rx194_pos, 2, rx194_start
+ sub rx194_off, rx194_pos, 1
+ substr rx194_tgt, rx194_tgt, rx194_off
+ rx194_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan199_done
- goto rxscan199_scan
- rxscan199_loop:
- ($P10) = rx195_cur."from"()
+ ne $I10, -1, rxscan198_done
+ goto rxscan198_scan
+ rxscan198_loop:
+ ($P10) = rx194_cur."from"()
inc $P10
- set rx195_pos, $P10
- ge rx195_pos, rx195_eos, rxscan199_done
- rxscan199_scan:
- set_addr $I10, rxscan199_loop
- rx195_cur."!mark_push"(0, rx195_pos, $I10)
- rxscan199_done:
-.annotate 'line', 76
- # rx literal "("
- add $I11, rx195_pos, 1
- gt $I11, rx195_eos, rx195_fail
- sub $I11, rx195_pos, rx195_off
- substr $S10, rx195_tgt, $I11, 1
- ne $S10, "(", rx195_fail
- add rx195_pos, 1
+ set rx194_pos, $P10
+ ge rx194_pos, rx194_eos, rxscan198_done
+ rxscan198_scan:
+ set_addr $I10, rxscan198_loop
+ rx194_cur."!mark_push"(0, rx194_pos, $I10)
+ rxscan198_done:
+.annotate 'line', 75
+ # rx literal "["
+ add $I11, rx194_pos, 1
+ gt $I11, rx194_eos, rx194_fail
+ sub $I11, rx194_pos, rx194_off
+ substr $S10, rx194_tgt, $I11, 1
+ ne $S10, "[", rx194_fail
+ add rx194_pos, 1
# rx subrule "nibbler" subtype=capture negate=
- rx195_cur."!cursor_pos"(rx195_pos)
- $P10 = rx195_cur."nibbler"()
- unless $P10, rx195_fail
- rx195_cur."!mark_push"(0, -1, 0, $P10)
+ rx194_cur."!cursor_pos"(rx194_pos)
+ $P10 = rx194_cur."nibbler"()
+ unless $P10, rx194_fail
+ rx194_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("nibbler")
- rx195_pos = $P10."pos"()
- # rx literal ")"
- add $I11, rx195_pos, 1
- gt $I11, rx195_eos, rx195_fail
- sub $I11, rx195_pos, rx195_off
- substr $S10, rx195_tgt, $I11, 1
- ne $S10, ")", rx195_fail
- add rx195_pos, 1
+ rx194_pos = $P10."pos"()
+ # rx literal "]"
+ add $I11, rx194_pos, 1
+ gt $I11, rx194_eos, rx194_fail
+ sub $I11, rx194_pos, rx194_off
+ substr $S10, rx194_tgt, $I11, 1
+ ne $S10, "]", rx194_fail
+ add rx194_pos, 1
# rx pass
- rx195_cur."!cursor_pass"(rx195_pos, "metachar:sym<( )>")
- rx195_cur."!cursor_debug"("PASS ", "metachar:sym<( )>", " at pos=", rx195_pos)
- .return (rx195_cur)
- rx195_fail:
+ rx194_cur."!cursor_pass"(rx194_pos, "metachar:sym<[ ]>")
+ rx194_cur."!cursor_debug"("PASS ", "metachar:sym<[ ]>", " at pos=", rx194_pos)
+ .return (rx194_cur)
+ rx194_fail:
.annotate 'line', 3
- (rx195_rep, rx195_pos, $I10, $P10) = rx195_cur."!mark_fail"(0)
- lt rx195_pos, -1, rx195_done
- eq rx195_pos, -1, rx195_fail
+ (rx194_rep, rx194_pos, $I10, $P10) = rx194_cur."!mark_fail"(0)
+ lt rx194_pos, -1, rx194_done
+ eq rx194_pos, -1, rx194_fail
jump $I10
- rx195_done:
- rx195_cur."!cursor_fail"()
- rx195_cur."!cursor_debug"("FAIL ", "metachar:sym<( )>")
- .return (rx195_cur)
+ rx194_done:
+ rx194_cur."!cursor_fail"()
+ rx194_cur."!cursor_debug"("FAIL ", "metachar:sym<[ ]>")
+ .return (rx194_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<( )>" :subid("54_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<[ ]>" :subid("52_1275811476.7961") :method
.annotate 'line', 3
- $P197 = self."!PREFIX__!subrule"("nibbler", "(")
- new $P198, "ResizablePMCArray"
- push $P198, $P197
- .return ($P198)
+ $P196 = self."!PREFIX__!subrule"("nibbler", "[")
+ new $P197, "ResizablePMCArray"
+ push $P197, $P196
+ .return ($P197)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<'>" :subid("55_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<( )>" :subid("53_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx201_tgt
- .local int rx201_pos
- .local int rx201_off
- .local int rx201_eos
- .local int rx201_rep
- .local pmc rx201_cur
- (rx201_cur, rx201_pos, rx201_tgt) = self."!cursor_start"()
- rx201_cur."!cursor_debug"("START ", "metachar:sym<'>")
- .lex unicode:"$\x{a2}", rx201_cur
+ .local string rx200_tgt
+ .local int rx200_pos
+ .local int rx200_off
+ .local int rx200_eos
+ .local int rx200_rep
+ .local pmc rx200_cur
+ (rx200_cur, rx200_pos, rx200_tgt) = self."!cursor_start"()
+ rx200_cur."!cursor_debug"("START ", "metachar:sym<( )>")
+ .lex unicode:"$\x{a2}", rx200_cur
.local pmc match
.lex "$/", match
- length rx201_eos, rx201_tgt
- set rx201_off, 0
- lt rx201_pos, 2, rx201_start
- sub rx201_off, rx201_pos, 1
- substr rx201_tgt, rx201_tgt, rx201_off
- rx201_start:
+ length rx200_eos, rx200_tgt
+ gt rx200_pos, rx200_eos, rx200_done
+ set rx200_off, 0
+ lt rx200_pos, 2, rx200_start
+ sub rx200_off, rx200_pos, 1
+ substr rx200_tgt, rx200_tgt, rx200_off
+ rx200_start:
$I10 = self.'from'()
ne $I10, -1, rxscan204_done
goto rxscan204_scan
rxscan204_loop:
- ($P10) = rx201_cur."from"()
+ ($P10) = rx200_cur."from"()
inc $P10
- set rx201_pos, $P10
- ge rx201_pos, rx201_eos, rxscan204_done
+ set rx200_pos, $P10
+ ge rx200_pos, rx200_eos, rxscan204_done
rxscan204_scan:
set_addr $I10, rxscan204_loop
- rx201_cur."!mark_push"(0, rx201_pos, $I10)
+ rx200_cur."!mark_push"(0, rx200_pos, $I10)
rxscan204_done:
-.annotate 'line', 77
- # rx enumcharlist negate=0 zerowidth
- ge rx201_pos, rx201_eos, rx201_fail
- sub $I10, rx201_pos, rx201_off
- substr $S10, rx201_tgt, $I10, 1
- index $I11, "'", $S10
- lt $I11, 0, rx201_fail
- # rx subrule "quote_EXPR" subtype=capture negate=
- rx201_cur."!cursor_pos"(rx201_pos)
- $P10 = rx201_cur."quote_EXPR"(":q")
- unless $P10, rx201_fail
- rx201_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("quote_EXPR")
- rx201_pos = $P10."pos"()
+.annotate 'line', 76
+ # rx literal "("
+ add $I11, rx200_pos, 1
+ gt $I11, rx200_eos, rx200_fail
+ sub $I11, rx200_pos, rx200_off
+ substr $S10, rx200_tgt, $I11, 1
+ ne $S10, "(", rx200_fail
+ add rx200_pos, 1
+ # rx subrule "nibbler" subtype=capture negate=
+ rx200_cur."!cursor_pos"(rx200_pos)
+ $P10 = rx200_cur."nibbler"()
+ unless $P10, rx200_fail
+ rx200_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("nibbler")
+ rx200_pos = $P10."pos"()
+ # rx literal ")"
+ add $I11, rx200_pos, 1
+ gt $I11, rx200_eos, rx200_fail
+ sub $I11, rx200_pos, rx200_off
+ substr $S10, rx200_tgt, $I11, 1
+ ne $S10, ")", rx200_fail
+ add rx200_pos, 1
# rx pass
- rx201_cur."!cursor_pass"(rx201_pos, "metachar:sym<'>")
- rx201_cur."!cursor_debug"("PASS ", "metachar:sym<'>", " at pos=", rx201_pos)
- .return (rx201_cur)
- rx201_fail:
+ rx200_cur."!cursor_pass"(rx200_pos, "metachar:sym<( )>")
+ rx200_cur."!cursor_debug"("PASS ", "metachar:sym<( )>", " at pos=", rx200_pos)
+ .return (rx200_cur)
+ rx200_fail:
.annotate 'line', 3
- (rx201_rep, rx201_pos, $I10, $P10) = rx201_cur."!mark_fail"(0)
- lt rx201_pos, -1, rx201_done
- eq rx201_pos, -1, rx201_fail
+ (rx200_rep, rx200_pos, $I10, $P10) = rx200_cur."!mark_fail"(0)
+ lt rx200_pos, -1, rx200_done
+ eq rx200_pos, -1, rx200_fail
jump $I10
- rx201_done:
- rx201_cur."!cursor_fail"()
- rx201_cur."!cursor_debug"("FAIL ", "metachar:sym<'>")
- .return (rx201_cur)
+ rx200_done:
+ rx200_cur."!cursor_fail"()
+ rx200_cur."!cursor_debug"("FAIL ", "metachar:sym<( )>")
+ .return (rx200_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<'>" :subid("56_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<( )>" :subid("54_1275811476.7961") :method
.annotate 'line', 3
+ $P202 = self."!PREFIX__!subrule"("nibbler", "(")
new $P203, "ResizablePMCArray"
- push $P203, "'"
+ push $P203, $P202
.return ($P203)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<\">" :subid("57_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<'>" :subid("55_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
.local string rx206_tgt
.local int rx206_pos
@@ -2336,11 +2317,12 @@
.local int rx206_rep
.local pmc rx206_cur
(rx206_cur, rx206_pos, rx206_tgt) = self."!cursor_start"()
- rx206_cur."!cursor_debug"("START ", "metachar:sym<\">")
+ rx206_cur."!cursor_debug"("START ", "metachar:sym<'>")
.lex unicode:"$\x{a2}", rx206_cur
.local pmc match
.lex "$/", match
length rx206_eos, rx206_tgt
+ gt rx206_pos, rx206_eos, rx206_done
set rx206_off, 0
lt rx206_pos, 2, rx206_start
sub rx206_off, rx206_pos, 1
@@ -2358,23 +2340,23 @@
set_addr $I10, rxscan209_loop
rx206_cur."!mark_push"(0, rx206_pos, $I10)
rxscan209_done:
-.annotate 'line', 78
+.annotate 'line', 77
# rx enumcharlist negate=0 zerowidth
ge rx206_pos, rx206_eos, rx206_fail
sub $I10, rx206_pos, rx206_off
substr $S10, rx206_tgt, $I10, 1
- index $I11, "\"", $S10
+ index $I11, "'", $S10
lt $I11, 0, rx206_fail
# rx subrule "quote_EXPR" subtype=capture negate=
rx206_cur."!cursor_pos"(rx206_pos)
- $P10 = rx206_cur."quote_EXPR"(":qq")
+ $P10 = rx206_cur."quote_EXPR"(":q")
unless $P10, rx206_fail
rx206_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quote_EXPR")
rx206_pos = $P10."pos"()
# rx pass
- rx206_cur."!cursor_pass"(rx206_pos, "metachar:sym<\">")
- rx206_cur."!cursor_debug"("PASS ", "metachar:sym<\">", " at pos=", rx206_pos)
+ rx206_cur."!cursor_pass"(rx206_pos, "metachar:sym<'>")
+ rx206_cur."!cursor_debug"("PASS ", "metachar:sym<'>", " at pos=", rx206_pos)
.return (rx206_cur)
rx206_fail:
.annotate 'line', 3
@@ -2384,23 +2366,23 @@
jump $I10
rx206_done:
rx206_cur."!cursor_fail"()
- rx206_cur."!cursor_debug"("FAIL ", "metachar:sym<\">")
+ rx206_cur."!cursor_debug"("FAIL ", "metachar:sym<'>")
.return (rx206_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<\">" :subid("58_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<'>" :subid("56_1275811476.7961") :method
.annotate 'line', 3
new $P208, "ResizablePMCArray"
- push $P208, "\""
+ push $P208, "'"
.return ($P208)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<.>" :subid("59_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<\">" :subid("57_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
.local string rx211_tgt
.local int rx211_pos
@@ -2409,11 +2391,12 @@
.local int rx211_rep
.local pmc rx211_cur
(rx211_cur, rx211_pos, rx211_tgt) = self."!cursor_start"()
- rx211_cur."!cursor_debug"("START ", "metachar:sym<.>")
+ rx211_cur."!cursor_debug"("START ", "metachar:sym<\">")
.lex unicode:"$\x{a2}", rx211_cur
.local pmc match
.lex "$/", match
length rx211_eos, rx211_tgt
+ gt rx211_pos, rx211_eos, rx211_done
set rx211_off, 0
lt rx211_pos, 2, rx211_start
sub rx211_off, rx211_pos, 1
@@ -2431,31 +2414,23 @@
set_addr $I10, rxscan214_loop
rx211_cur."!mark_push"(0, rx211_pos, $I10)
rxscan214_done:
-.annotate 'line', 79
- # rx subcapture "sym"
- set_addr $I10, rxcap_215_fail
- rx211_cur."!mark_push"(0, rx211_pos, $I10)
- # rx literal "."
- add $I11, rx211_pos, 1
- gt $I11, rx211_eos, rx211_fail
- sub $I11, rx211_pos, rx211_off
- substr $S10, rx211_tgt, $I11, 1
- ne $S10, ".", rx211_fail
- add rx211_pos, 1
- set_addr $I10, rxcap_215_fail
- ($I12, $I11) = rx211_cur."!mark_peek"($I10)
- rx211_cur."!cursor_pos"($I11)
- ($P10) = rx211_cur."!cursor_start"()
- $P10."!cursor_pass"(rx211_pos, "")
+.annotate 'line', 78
+ # rx enumcharlist negate=0 zerowidth
+ ge rx211_pos, rx211_eos, rx211_fail
+ sub $I10, rx211_pos, rx211_off
+ substr $S10, rx211_tgt, $I10, 1
+ index $I11, "\"", $S10
+ lt $I11, 0, rx211_fail
+ # rx subrule "quote_EXPR" subtype=capture negate=
+ rx211_cur."!cursor_pos"(rx211_pos)
+ $P10 = rx211_cur."quote_EXPR"(":qq")
+ unless $P10, rx211_fail
rx211_cur."!mark_push"(0, -1, 0, $P10)
- $P10."!cursor_names"("sym")
- goto rxcap_215_done
- rxcap_215_fail:
- goto rx211_fail
- rxcap_215_done:
+ $P10."!cursor_names"("quote_EXPR")
+ rx211_pos = $P10."pos"()
# rx pass
- rx211_cur."!cursor_pass"(rx211_pos, "metachar:sym<.>")
- rx211_cur."!cursor_debug"("PASS ", "metachar:sym<.>", " at pos=", rx211_pos)
+ rx211_cur."!cursor_pass"(rx211_pos, "metachar:sym<\">")
+ rx211_cur."!cursor_debug"("PASS ", "metachar:sym<\">", " at pos=", rx211_pos)
.return (rx211_cur)
rx211_fail:
.annotate 'line', 3
@@ -2465,4115 +2440,4184 @@
jump $I10
rx211_done:
rx211_cur."!cursor_fail"()
- rx211_cur."!cursor_debug"("FAIL ", "metachar:sym<.>")
+ rx211_cur."!cursor_debug"("FAIL ", "metachar:sym<\">")
.return (rx211_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<.>" :subid("60_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<\">" :subid("58_1275811476.7961") :method
.annotate 'line', 3
new $P213, "ResizablePMCArray"
- push $P213, "."
+ push $P213, "\""
.return ($P213)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^>" :subid("61_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<.>" :subid("59_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+ .local string rx216_tgt
+ .local int rx216_pos
+ .local int rx216_off
+ .local int rx216_eos
+ .local int rx216_rep
+ .local pmc rx216_cur
+ (rx216_cur, rx216_pos, rx216_tgt) = self."!cursor_start"()
+ rx216_cur."!cursor_debug"("START ", "metachar:sym<.>")
+ .lex unicode:"$\x{a2}", rx216_cur
+ .local pmc match
+ .lex "$/", match
+ length rx216_eos, rx216_tgt
+ gt rx216_pos, rx216_eos, rx216_done
+ set rx216_off, 0
+ lt rx216_pos, 2, rx216_start
+ sub rx216_off, rx216_pos, 1
+ substr rx216_tgt, rx216_tgt, rx216_off
+ rx216_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan219_done
+ goto rxscan219_scan
+ rxscan219_loop:
+ ($P10) = rx216_cur."from"()
+ inc $P10
+ set rx216_pos, $P10
+ ge rx216_pos, rx216_eos, rxscan219_done
+ rxscan219_scan:
+ set_addr $I10, rxscan219_loop
+ rx216_cur."!mark_push"(0, rx216_pos, $I10)
+ rxscan219_done:
+.annotate 'line', 79
+ # rx subcapture "sym"
+ set_addr $I10, rxcap_220_fail
+ rx216_cur."!mark_push"(0, rx216_pos, $I10)
+ # rx literal "."
+ add $I11, rx216_pos, 1
+ gt $I11, rx216_eos, rx216_fail
+ sub $I11, rx216_pos, rx216_off
+ substr $S10, rx216_tgt, $I11, 1
+ ne $S10, ".", rx216_fail
+ add rx216_pos, 1
+ set_addr $I10, rxcap_220_fail
+ ($I12, $I11) = rx216_cur."!mark_peek"($I10)
+ rx216_cur."!cursor_pos"($I11)
+ ($P10) = rx216_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx216_pos, "")
+ rx216_cur."!mark_push"(0, -1, 0, $P10)
+ $P10."!cursor_names"("sym")
+ goto rxcap_220_done
+ rxcap_220_fail:
+ goto rx216_fail
+ rxcap_220_done:
+ # rx pass
+ rx216_cur."!cursor_pass"(rx216_pos, "metachar:sym<.>")
+ rx216_cur."!cursor_debug"("PASS ", "metachar:sym<.>", " at pos=", rx216_pos)
+ .return (rx216_cur)
+ rx216_fail:
+.annotate 'line', 3
+ (rx216_rep, rx216_pos, $I10, $P10) = rx216_cur."!mark_fail"(0)
+ lt rx216_pos, -1, rx216_done
+ eq rx216_pos, -1, rx216_fail
+ jump $I10
+ rx216_done:
+ rx216_cur."!cursor_fail"()
+ rx216_cur."!cursor_debug"("FAIL ", "metachar:sym<.>")
+ .return (rx216_cur)
+ .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "!PREFIX__metachar:sym<.>" :subid("60_1275811476.7961") :method
.annotate 'line', 3
- .local string rx217_tgt
- .local int rx217_pos
- .local int rx217_off
- .local int rx217_eos
- .local int rx217_rep
- .local pmc rx217_cur
- (rx217_cur, rx217_pos, rx217_tgt) = self."!cursor_start"()
- rx217_cur."!cursor_debug"("START ", "metachar:sym<^>")
- .lex unicode:"$\x{a2}", rx217_cur
- .local pmc match
- .lex "$/", match
- length rx217_eos, rx217_tgt
- set rx217_off, 0
- lt rx217_pos, 2, rx217_start
- sub rx217_off, rx217_pos, 1
- substr rx217_tgt, rx217_tgt, rx217_off
- rx217_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan220_done
- goto rxscan220_scan
- rxscan220_loop:
- ($P10) = rx217_cur."from"()
- inc $P10
- set rx217_pos, $P10
- ge rx217_pos, rx217_eos, rxscan220_done
- rxscan220_scan:
- set_addr $I10, rxscan220_loop
- rx217_cur."!mark_push"(0, rx217_pos, $I10)
- rxscan220_done:
+ new $P218, "ResizablePMCArray"
+ push $P218, "."
+ .return ($P218)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "metachar:sym<^>" :subid("61_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+ .local string rx222_tgt
+ .local int rx222_pos
+ .local int rx222_off
+ .local int rx222_eos
+ .local int rx222_rep
+ .local pmc rx222_cur
+ (rx222_cur, rx222_pos, rx222_tgt) = self."!cursor_start"()
+ rx222_cur."!cursor_debug"("START ", "metachar:sym<^>")
+ .lex unicode:"$\x{a2}", rx222_cur
+ .local pmc match
+ .lex "$/", match
+ length rx222_eos, rx222_tgt
+ gt rx222_pos, rx222_eos, rx222_done
+ set rx222_off, 0
+ lt rx222_pos, 2, rx222_start
+ sub rx222_off, rx222_pos, 1
+ substr rx222_tgt, rx222_tgt, rx222_off
+ rx222_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan225_done
+ goto rxscan225_scan
+ rxscan225_loop:
+ ($P10) = rx222_cur."from"()
+ inc $P10
+ set rx222_pos, $P10
+ ge rx222_pos, rx222_eos, rxscan225_done
+ rxscan225_scan:
+ set_addr $I10, rxscan225_loop
+ rx222_cur."!mark_push"(0, rx222_pos, $I10)
+ rxscan225_done:
.annotate 'line', 80
# rx subcapture "sym"
- set_addr $I10, rxcap_221_fail
- rx217_cur."!mark_push"(0, rx217_pos, $I10)
+ set_addr $I10, rxcap_226_fail
+ rx222_cur."!mark_push"(0, rx222_pos, $I10)
# rx literal "^"
- add $I11, rx217_pos, 1
- gt $I11, rx217_eos, rx217_fail
- sub $I11, rx217_pos, rx217_off
- substr $S10, rx217_tgt, $I11, 1
- ne $S10, "^", rx217_fail
- add rx217_pos, 1
- set_addr $I10, rxcap_221_fail
- ($I12, $I11) = rx217_cur."!mark_peek"($I10)
- rx217_cur."!cursor_pos"($I11)
- ($P10) = rx217_cur."!cursor_start"()
- $P10."!cursor_pass"(rx217_pos, "")
- rx217_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx222_pos, 1
+ gt $I11, rx222_eos, rx222_fail
+ sub $I11, rx222_pos, rx222_off
+ substr $S10, rx222_tgt, $I11, 1
+ ne $S10, "^", rx222_fail
+ add rx222_pos, 1
+ set_addr $I10, rxcap_226_fail
+ ($I12, $I11) = rx222_cur."!mark_peek"($I10)
+ rx222_cur."!cursor_pos"($I11)
+ ($P10) = rx222_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx222_pos, "")
+ rx222_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_221_done
- rxcap_221_fail:
- goto rx217_fail
- rxcap_221_done:
+ goto rxcap_226_done
+ rxcap_226_fail:
+ goto rx222_fail
+ rxcap_226_done:
# rx pass
- rx217_cur."!cursor_pass"(rx217_pos, "metachar:sym<^>")
- rx217_cur."!cursor_debug"("PASS ", "metachar:sym<^>", " at pos=", rx217_pos)
- .return (rx217_cur)
- rx217_fail:
+ rx222_cur."!cursor_pass"(rx222_pos, "metachar:sym<^>")
+ rx222_cur."!cursor_debug"("PASS ", "metachar:sym<^>", " at pos=", rx222_pos)
+ .return (rx222_cur)
+ rx222_fail:
.annotate 'line', 3
- (rx217_rep, rx217_pos, $I10, $P10) = rx217_cur."!mark_fail"(0)
- lt rx217_pos, -1, rx217_done
- eq rx217_pos, -1, rx217_fail
+ (rx222_rep, rx222_pos, $I10, $P10) = rx222_cur."!mark_fail"(0)
+ lt rx222_pos, -1, rx222_done
+ eq rx222_pos, -1, rx222_fail
jump $I10
- rx217_done:
- rx217_cur."!cursor_fail"()
- rx217_cur."!cursor_debug"("FAIL ", "metachar:sym<^>")
- .return (rx217_cur)
+ rx222_done:
+ rx222_cur."!cursor_fail"()
+ rx222_cur."!cursor_debug"("FAIL ", "metachar:sym<^>")
+ .return (rx222_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^>" :subid("62_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<^>" :subid("62_1275811476.7961") :method
.annotate 'line', 3
- new $P219, "ResizablePMCArray"
- push $P219, "^"
- .return ($P219)
+ new $P224, "ResizablePMCArray"
+ push $P224, "^"
+ .return ($P224)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<^^>" :subid("63_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<^^>" :subid("63_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx223_tgt
- .local int rx223_pos
- .local int rx223_off
- .local int rx223_eos
- .local int rx223_rep
- .local pmc rx223_cur
- (rx223_cur, rx223_pos, rx223_tgt) = self."!cursor_start"()
- rx223_cur."!cursor_debug"("START ", "metachar:sym<^^>")
- .lex unicode:"$\x{a2}", rx223_cur
+ .local string rx228_tgt
+ .local int rx228_pos
+ .local int rx228_off
+ .local int rx228_eos
+ .local int rx228_rep
+ .local pmc rx228_cur
+ (rx228_cur, rx228_pos, rx228_tgt) = self."!cursor_start"()
+ rx228_cur."!cursor_debug"("START ", "metachar:sym<^^>")
+ .lex unicode:"$\x{a2}", rx228_cur
.local pmc match
.lex "$/", match
- length rx223_eos, rx223_tgt
- set rx223_off, 0
- lt rx223_pos, 2, rx223_start
- sub rx223_off, rx223_pos, 1
- substr rx223_tgt, rx223_tgt, rx223_off
- rx223_start:
+ length rx228_eos, rx228_tgt
+ gt rx228_pos, rx228_eos, rx228_done
+ set rx228_off, 0
+ lt rx228_pos, 2, rx228_start
+ sub rx228_off, rx228_pos, 1
+ substr rx228_tgt, rx228_tgt, rx228_off
+ rx228_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan226_done
- goto rxscan226_scan
- rxscan226_loop:
- ($P10) = rx223_cur."from"()
+ ne $I10, -1, rxscan231_done
+ goto rxscan231_scan
+ rxscan231_loop:
+ ($P10) = rx228_cur."from"()
inc $P10
- set rx223_pos, $P10
- ge rx223_pos, rx223_eos, rxscan226_done
- rxscan226_scan:
- set_addr $I10, rxscan226_loop
- rx223_cur."!mark_push"(0, rx223_pos, $I10)
- rxscan226_done:
+ set rx228_pos, $P10
+ ge rx228_pos, rx228_eos, rxscan231_done
+ rxscan231_scan:
+ set_addr $I10, rxscan231_loop
+ rx228_cur."!mark_push"(0, rx228_pos, $I10)
+ rxscan231_done:
.annotate 'line', 81
# rx subcapture "sym"
- set_addr $I10, rxcap_227_fail
- rx223_cur."!mark_push"(0, rx223_pos, $I10)
+ set_addr $I10, rxcap_232_fail
+ rx228_cur."!mark_push"(0, rx228_pos, $I10)
# rx literal "^^"
- add $I11, rx223_pos, 2
- gt $I11, rx223_eos, rx223_fail
- sub $I11, rx223_pos, rx223_off
- substr $S10, rx223_tgt, $I11, 2
- ne $S10, "^^", rx223_fail
- add rx223_pos, 2
- set_addr $I10, rxcap_227_fail
- ($I12, $I11) = rx223_cur."!mark_peek"($I10)
- rx223_cur."!cursor_pos"($I11)
- ($P10) = rx223_cur."!cursor_start"()
- $P10."!cursor_pass"(rx223_pos, "")
- rx223_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx228_pos, 2
+ gt $I11, rx228_eos, rx228_fail
+ sub $I11, rx228_pos, rx228_off
+ substr $S10, rx228_tgt, $I11, 2
+ ne $S10, "^^", rx228_fail
+ add rx228_pos, 2
+ set_addr $I10, rxcap_232_fail
+ ($I12, $I11) = rx228_cur."!mark_peek"($I10)
+ rx228_cur."!cursor_pos"($I11)
+ ($P10) = rx228_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx228_pos, "")
+ rx228_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_227_done
- rxcap_227_fail:
- goto rx223_fail
- rxcap_227_done:
+ goto rxcap_232_done
+ rxcap_232_fail:
+ goto rx228_fail
+ rxcap_232_done:
# rx pass
- rx223_cur."!cursor_pass"(rx223_pos, "metachar:sym<^^>")
- rx223_cur."!cursor_debug"("PASS ", "metachar:sym<^^>", " at pos=", rx223_pos)
- .return (rx223_cur)
- rx223_fail:
+ rx228_cur."!cursor_pass"(rx228_pos, "metachar:sym<^^>")
+ rx228_cur."!cursor_debug"("PASS ", "metachar:sym<^^>", " at pos=", rx228_pos)
+ .return (rx228_cur)
+ rx228_fail:
.annotate 'line', 3
- (rx223_rep, rx223_pos, $I10, $P10) = rx223_cur."!mark_fail"(0)
- lt rx223_pos, -1, rx223_done
- eq rx223_pos, -1, rx223_fail
+ (rx228_rep, rx228_pos, $I10, $P10) = rx228_cur."!mark_fail"(0)
+ lt rx228_pos, -1, rx228_done
+ eq rx228_pos, -1, rx228_fail
jump $I10
- rx223_done:
- rx223_cur."!cursor_fail"()
- rx223_cur."!cursor_debug"("FAIL ", "metachar:sym<^^>")
- .return (rx223_cur)
+ rx228_done:
+ rx228_cur."!cursor_fail"()
+ rx228_cur."!cursor_debug"("FAIL ", "metachar:sym<^^>")
+ .return (rx228_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<^^>" :subid("64_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<^^>" :subid("64_1275811476.7961") :method
.annotate 'line', 3
- new $P225, "ResizablePMCArray"
- push $P225, "^^"
- .return ($P225)
+ new $P230, "ResizablePMCArray"
+ push $P230, "^^"
+ .return ($P230)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$>" :subid("65_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<$>" :subid("65_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx229_tgt
- .local int rx229_pos
- .local int rx229_off
- .local int rx229_eos
- .local int rx229_rep
- .local pmc rx229_cur
- (rx229_cur, rx229_pos, rx229_tgt) = self."!cursor_start"()
- rx229_cur."!cursor_debug"("START ", "metachar:sym<$>")
- .lex unicode:"$\x{a2}", rx229_cur
+ .local string rx234_tgt
+ .local int rx234_pos
+ .local int rx234_off
+ .local int rx234_eos
+ .local int rx234_rep
+ .local pmc rx234_cur
+ (rx234_cur, rx234_pos, rx234_tgt) = self."!cursor_start"()
+ rx234_cur."!cursor_debug"("START ", "metachar:sym<$>")
+ .lex unicode:"$\x{a2}", rx234_cur
.local pmc match
.lex "$/", match
- length rx229_eos, rx229_tgt
- set rx229_off, 0
- lt rx229_pos, 2, rx229_start
- sub rx229_off, rx229_pos, 1
- substr rx229_tgt, rx229_tgt, rx229_off
- rx229_start:
+ length rx234_eos, rx234_tgt
+ gt rx234_pos, rx234_eos, rx234_done
+ set rx234_off, 0
+ lt rx234_pos, 2, rx234_start
+ sub rx234_off, rx234_pos, 1
+ substr rx234_tgt, rx234_tgt, rx234_off
+ rx234_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan232_done
- goto rxscan232_scan
- rxscan232_loop:
- ($P10) = rx229_cur."from"()
+ ne $I10, -1, rxscan237_done
+ goto rxscan237_scan
+ rxscan237_loop:
+ ($P10) = rx234_cur."from"()
inc $P10
- set rx229_pos, $P10
- ge rx229_pos, rx229_eos, rxscan232_done
- rxscan232_scan:
- set_addr $I10, rxscan232_loop
- rx229_cur."!mark_push"(0, rx229_pos, $I10)
- rxscan232_done:
+ set rx234_pos, $P10
+ ge rx234_pos, rx234_eos, rxscan237_done
+ rxscan237_scan:
+ set_addr $I10, rxscan237_loop
+ rx234_cur."!mark_push"(0, rx234_pos, $I10)
+ rxscan237_done:
.annotate 'line', 82
# rx subcapture "sym"
- set_addr $I10, rxcap_233_fail
- rx229_cur."!mark_push"(0, rx229_pos, $I10)
+ set_addr $I10, rxcap_238_fail
+ rx234_cur."!mark_push"(0, rx234_pos, $I10)
# rx literal "$"
- add $I11, rx229_pos, 1
- gt $I11, rx229_eos, rx229_fail
- sub $I11, rx229_pos, rx229_off
- substr $S10, rx229_tgt, $I11, 1
- ne $S10, "$", rx229_fail
- add rx229_pos, 1
- set_addr $I10, rxcap_233_fail
- ($I12, $I11) = rx229_cur."!mark_peek"($I10)
- rx229_cur."!cursor_pos"($I11)
- ($P10) = rx229_cur."!cursor_start"()
- $P10."!cursor_pass"(rx229_pos, "")
- rx229_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx234_pos, 1
+ gt $I11, rx234_eos, rx234_fail
+ sub $I11, rx234_pos, rx234_off
+ substr $S10, rx234_tgt, $I11, 1
+ ne $S10, "$", rx234_fail
+ add rx234_pos, 1
+ set_addr $I10, rxcap_238_fail
+ ($I12, $I11) = rx234_cur."!mark_peek"($I10)
+ rx234_cur."!cursor_pos"($I11)
+ ($P10) = rx234_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx234_pos, "")
+ rx234_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_233_done
- rxcap_233_fail:
- goto rx229_fail
- rxcap_233_done:
+ goto rxcap_238_done
+ rxcap_238_fail:
+ goto rx234_fail
+ rxcap_238_done:
# rx pass
- rx229_cur."!cursor_pass"(rx229_pos, "metachar:sym<$>")
- rx229_cur."!cursor_debug"("PASS ", "metachar:sym<$>", " at pos=", rx229_pos)
- .return (rx229_cur)
- rx229_fail:
+ rx234_cur."!cursor_pass"(rx234_pos, "metachar:sym<$>")
+ rx234_cur."!cursor_debug"("PASS ", "metachar:sym<$>", " at pos=", rx234_pos)
+ .return (rx234_cur)
+ rx234_fail:
.annotate 'line', 3
- (rx229_rep, rx229_pos, $I10, $P10) = rx229_cur."!mark_fail"(0)
- lt rx229_pos, -1, rx229_done
- eq rx229_pos, -1, rx229_fail
+ (rx234_rep, rx234_pos, $I10, $P10) = rx234_cur."!mark_fail"(0)
+ lt rx234_pos, -1, rx234_done
+ eq rx234_pos, -1, rx234_fail
jump $I10
- rx229_done:
- rx229_cur."!cursor_fail"()
- rx229_cur."!cursor_debug"("FAIL ", "metachar:sym<$>")
- .return (rx229_cur)
+ rx234_done:
+ rx234_cur."!cursor_fail"()
+ rx234_cur."!cursor_debug"("FAIL ", "metachar:sym<$>")
+ .return (rx234_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$>" :subid("66_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<$>" :subid("66_1275811476.7961") :method
.annotate 'line', 3
- new $P231, "ResizablePMCArray"
- push $P231, "$"
- .return ($P231)
+ new $P236, "ResizablePMCArray"
+ push $P236, "$"
+ .return ($P236)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<$$>" :subid("67_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<$$>" :subid("67_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx235_tgt
- .local int rx235_pos
- .local int rx235_off
- .local int rx235_eos
- .local int rx235_rep
- .local pmc rx235_cur
- (rx235_cur, rx235_pos, rx235_tgt) = self."!cursor_start"()
- rx235_cur."!cursor_debug"("START ", "metachar:sym<$$>")
- .lex unicode:"$\x{a2}", rx235_cur
+ .local string rx240_tgt
+ .local int rx240_pos
+ .local int rx240_off
+ .local int rx240_eos
+ .local int rx240_rep
+ .local pmc rx240_cur
+ (rx240_cur, rx240_pos, rx240_tgt) = self."!cursor_start"()
+ rx240_cur."!cursor_debug"("START ", "metachar:sym<$$>")
+ .lex unicode:"$\x{a2}", rx240_cur
.local pmc match
.lex "$/", match
- length rx235_eos, rx235_tgt
- set rx235_off, 0
- lt rx235_pos, 2, rx235_start
- sub rx235_off, rx235_pos, 1
- substr rx235_tgt, rx235_tgt, rx235_off
- rx235_start:
+ length rx240_eos, rx240_tgt
+ gt rx240_pos, rx240_eos, rx240_done
+ set rx240_off, 0
+ lt rx240_pos, 2, rx240_start
+ sub rx240_off, rx240_pos, 1
+ substr rx240_tgt, rx240_tgt, rx240_off
+ rx240_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan238_done
- goto rxscan238_scan
- rxscan238_loop:
- ($P10) = rx235_cur."from"()
+ ne $I10, -1, rxscan243_done
+ goto rxscan243_scan
+ rxscan243_loop:
+ ($P10) = rx240_cur."from"()
inc $P10
- set rx235_pos, $P10
- ge rx235_pos, rx235_eos, rxscan238_done
- rxscan238_scan:
- set_addr $I10, rxscan238_loop
- rx235_cur."!mark_push"(0, rx235_pos, $I10)
- rxscan238_done:
+ set rx240_pos, $P10
+ ge rx240_pos, rx240_eos, rxscan243_done
+ rxscan243_scan:
+ set_addr $I10, rxscan243_loop
+ rx240_cur."!mark_push"(0, rx240_pos, $I10)
+ rxscan243_done:
.annotate 'line', 83
# rx subcapture "sym"
- set_addr $I10, rxcap_239_fail
- rx235_cur."!mark_push"(0, rx235_pos, $I10)
+ set_addr $I10, rxcap_244_fail
+ rx240_cur."!mark_push"(0, rx240_pos, $I10)
# rx literal "$$"
- add $I11, rx235_pos, 2
- gt $I11, rx235_eos, rx235_fail
- sub $I11, rx235_pos, rx235_off
- substr $S10, rx235_tgt, $I11, 2
- ne $S10, "$$", rx235_fail
- add rx235_pos, 2
- set_addr $I10, rxcap_239_fail
- ($I12, $I11) = rx235_cur."!mark_peek"($I10)
- rx235_cur."!cursor_pos"($I11)
- ($P10) = rx235_cur."!cursor_start"()
- $P10."!cursor_pass"(rx235_pos, "")
- rx235_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx240_pos, 2
+ gt $I11, rx240_eos, rx240_fail
+ sub $I11, rx240_pos, rx240_off
+ substr $S10, rx240_tgt, $I11, 2
+ ne $S10, "$$", rx240_fail
+ add rx240_pos, 2
+ set_addr $I10, rxcap_244_fail
+ ($I12, $I11) = rx240_cur."!mark_peek"($I10)
+ rx240_cur."!cursor_pos"($I11)
+ ($P10) = rx240_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx240_pos, "")
+ rx240_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_239_done
- rxcap_239_fail:
- goto rx235_fail
- rxcap_239_done:
+ goto rxcap_244_done
+ rxcap_244_fail:
+ goto rx240_fail
+ rxcap_244_done:
# rx pass
- rx235_cur."!cursor_pass"(rx235_pos, "metachar:sym<$$>")
- rx235_cur."!cursor_debug"("PASS ", "metachar:sym<$$>", " at pos=", rx235_pos)
- .return (rx235_cur)
- rx235_fail:
+ rx240_cur."!cursor_pass"(rx240_pos, "metachar:sym<$$>")
+ rx240_cur."!cursor_debug"("PASS ", "metachar:sym<$$>", " at pos=", rx240_pos)
+ .return (rx240_cur)
+ rx240_fail:
.annotate 'line', 3
- (rx235_rep, rx235_pos, $I10, $P10) = rx235_cur."!mark_fail"(0)
- lt rx235_pos, -1, rx235_done
- eq rx235_pos, -1, rx235_fail
+ (rx240_rep, rx240_pos, $I10, $P10) = rx240_cur."!mark_fail"(0)
+ lt rx240_pos, -1, rx240_done
+ eq rx240_pos, -1, rx240_fail
jump $I10
- rx235_done:
- rx235_cur."!cursor_fail"()
- rx235_cur."!cursor_debug"("FAIL ", "metachar:sym<$$>")
- .return (rx235_cur)
+ rx240_done:
+ rx240_cur."!cursor_fail"()
+ rx240_cur."!cursor_debug"("FAIL ", "metachar:sym<$$>")
+ .return (rx240_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<$$>" :subid("68_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<$$>" :subid("68_1275811476.7961") :method
.annotate 'line', 3
- new $P237, "ResizablePMCArray"
- push $P237, "$$"
- .return ($P237)
+ new $P242, "ResizablePMCArray"
+ push $P242, "$$"
+ .return ($P242)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<:::>" :subid("69_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<:::>" :subid("69_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx241_tgt
- .local int rx241_pos
- .local int rx241_off
- .local int rx241_eos
- .local int rx241_rep
- .local pmc rx241_cur
- (rx241_cur, rx241_pos, rx241_tgt) = self."!cursor_start"()
- rx241_cur."!cursor_debug"("START ", "metachar:sym<:::>")
- .lex unicode:"$\x{a2}", rx241_cur
+ .local string rx246_tgt
+ .local int rx246_pos
+ .local int rx246_off
+ .local int rx246_eos
+ .local int rx246_rep
+ .local pmc rx246_cur
+ (rx246_cur, rx246_pos, rx246_tgt) = self."!cursor_start"()
+ rx246_cur."!cursor_debug"("START ", "metachar:sym<:::>")
+ .lex unicode:"$\x{a2}", rx246_cur
.local pmc match
.lex "$/", match
- length rx241_eos, rx241_tgt
- set rx241_off, 0
- lt rx241_pos, 2, rx241_start
- sub rx241_off, rx241_pos, 1
- substr rx241_tgt, rx241_tgt, rx241_off
- rx241_start:
+ length rx246_eos, rx246_tgt
+ gt rx246_pos, rx246_eos, rx246_done
+ set rx246_off, 0
+ lt rx246_pos, 2, rx246_start
+ sub rx246_off, rx246_pos, 1
+ substr rx246_tgt, rx246_tgt, rx246_off
+ rx246_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan245_done
- goto rxscan245_scan
- rxscan245_loop:
- ($P10) = rx241_cur."from"()
+ ne $I10, -1, rxscan250_done
+ goto rxscan250_scan
+ rxscan250_loop:
+ ($P10) = rx246_cur."from"()
inc $P10
- set rx241_pos, $P10
- ge rx241_pos, rx241_eos, rxscan245_done
- rxscan245_scan:
- set_addr $I10, rxscan245_loop
- rx241_cur."!mark_push"(0, rx241_pos, $I10)
- rxscan245_done:
+ set rx246_pos, $P10
+ ge rx246_pos, rx246_eos, rxscan250_done
+ rxscan250_scan:
+ set_addr $I10, rxscan250_loop
+ rx246_cur."!mark_push"(0, rx246_pos, $I10)
+ rxscan250_done:
.annotate 'line', 84
# rx subcapture "sym"
- set_addr $I10, rxcap_246_fail
- rx241_cur."!mark_push"(0, rx241_pos, $I10)
+ set_addr $I10, rxcap_251_fail
+ rx246_cur."!mark_push"(0, rx246_pos, $I10)
# rx literal ":::"
- add $I11, rx241_pos, 3
- gt $I11, rx241_eos, rx241_fail
- sub $I11, rx241_pos, rx241_off
- substr $S10, rx241_tgt, $I11, 3
- ne $S10, ":::", rx241_fail
- add rx241_pos, 3
- set_addr $I10, rxcap_246_fail
- ($I12, $I11) = rx241_cur."!mark_peek"($I10)
- rx241_cur."!cursor_pos"($I11)
- ($P10) = rx241_cur."!cursor_start"()
- $P10."!cursor_pass"(rx241_pos, "")
- rx241_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx246_pos, 3
+ gt $I11, rx246_eos, rx246_fail
+ sub $I11, rx246_pos, rx246_off
+ substr $S10, rx246_tgt, $I11, 3
+ ne $S10, ":::", rx246_fail
+ add rx246_pos, 3
+ set_addr $I10, rxcap_251_fail
+ ($I12, $I11) = rx246_cur."!mark_peek"($I10)
+ rx246_cur."!cursor_pos"($I11)
+ ($P10) = rx246_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx246_pos, "")
+ rx246_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_246_done
- rxcap_246_fail:
- goto rx241_fail
- rxcap_246_done:
+ goto rxcap_251_done
+ rxcap_251_fail:
+ goto rx246_fail
+ rxcap_251_done:
# rx subrule "panic" subtype=method negate=
- rx241_cur."!cursor_pos"(rx241_pos)
- $P10 = rx241_cur."panic"("::: not yet implemented")
- unless $P10, rx241_fail
- rx241_pos = $P10."pos"()
+ rx246_cur."!cursor_pos"(rx246_pos)
+ $P10 = rx246_cur."panic"("::: not yet implemented")
+ unless $P10, rx246_fail
+ rx246_pos = $P10."pos"()
# rx pass
- rx241_cur."!cursor_pass"(rx241_pos, "metachar:sym<:::>")
- rx241_cur."!cursor_debug"("PASS ", "metachar:sym<:::>", " at pos=", rx241_pos)
- .return (rx241_cur)
- rx241_fail:
+ rx246_cur."!cursor_pass"(rx246_pos, "metachar:sym<:::>")
+ rx246_cur."!cursor_debug"("PASS ", "metachar:sym<:::>", " at pos=", rx246_pos)
+ .return (rx246_cur)
+ rx246_fail:
.annotate 'line', 3
- (rx241_rep, rx241_pos, $I10, $P10) = rx241_cur."!mark_fail"(0)
- lt rx241_pos, -1, rx241_done
- eq rx241_pos, -1, rx241_fail
+ (rx246_rep, rx246_pos, $I10, $P10) = rx246_cur."!mark_fail"(0)
+ lt rx246_pos, -1, rx246_done
+ eq rx246_pos, -1, rx246_fail
jump $I10
- rx241_done:
- rx241_cur."!cursor_fail"()
- rx241_cur."!cursor_debug"("FAIL ", "metachar:sym<:::>")
- .return (rx241_cur)
+ rx246_done:
+ rx246_cur."!cursor_fail"()
+ rx246_cur."!cursor_debug"("FAIL ", "metachar:sym<:::>")
+ .return (rx246_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<:::>" :subid("70_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<:::>" :subid("70_1275811476.7961") :method
.annotate 'line', 3
- $P243 = self."!PREFIX__!subrule"("", ":::")
- new $P244, "ResizablePMCArray"
- push $P244, $P243
- .return ($P244)
+ $P248 = self."!PREFIX__!subrule"("panic", ":::")
+ new $P249, "ResizablePMCArray"
+ push $P249, $P248
+ .return ($P249)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<::>" :subid("71_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<::>" :subid("71_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx248_tgt
- .local int rx248_pos
- .local int rx248_off
- .local int rx248_eos
- .local int rx248_rep
- .local pmc rx248_cur
- (rx248_cur, rx248_pos, rx248_tgt) = self."!cursor_start"()
- rx248_cur."!cursor_debug"("START ", "metachar:sym<::>")
- .lex unicode:"$\x{a2}", rx248_cur
+ .local string rx253_tgt
+ .local int rx253_pos
+ .local int rx253_off
+ .local int rx253_eos
+ .local int rx253_rep
+ .local pmc rx253_cur
+ (rx253_cur, rx253_pos, rx253_tgt) = self."!cursor_start"()
+ rx253_cur."!cursor_debug"("START ", "metachar:sym<::>")
+ .lex unicode:"$\x{a2}", rx253_cur
.local pmc match
.lex "$/", match
- length rx248_eos, rx248_tgt
- set rx248_off, 0
- lt rx248_pos, 2, rx248_start
- sub rx248_off, rx248_pos, 1
- substr rx248_tgt, rx248_tgt, rx248_off
- rx248_start:
+ length rx253_eos, rx253_tgt
+ gt rx253_pos, rx253_eos, rx253_done
+ set rx253_off, 0
+ lt rx253_pos, 2, rx253_start
+ sub rx253_off, rx253_pos, 1
+ substr rx253_tgt, rx253_tgt, rx253_off
+ rx253_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan252_done
- goto rxscan252_scan
- rxscan252_loop:
- ($P10) = rx248_cur."from"()
+ ne $I10, -1, rxscan257_done
+ goto rxscan257_scan
+ rxscan257_loop:
+ ($P10) = rx253_cur."from"()
inc $P10
- set rx248_pos, $P10
- ge rx248_pos, rx248_eos, rxscan252_done
- rxscan252_scan:
- set_addr $I10, rxscan252_loop
- rx248_cur."!mark_push"(0, rx248_pos, $I10)
- rxscan252_done:
+ set rx253_pos, $P10
+ ge rx253_pos, rx253_eos, rxscan257_done
+ rxscan257_scan:
+ set_addr $I10, rxscan257_loop
+ rx253_cur."!mark_push"(0, rx253_pos, $I10)
+ rxscan257_done:
.annotate 'line', 85
# rx subcapture "sym"
- set_addr $I10, rxcap_253_fail
- rx248_cur."!mark_push"(0, rx248_pos, $I10)
+ set_addr $I10, rxcap_258_fail
+ rx253_cur."!mark_push"(0, rx253_pos, $I10)
# rx literal "::"
- add $I11, rx248_pos, 2
- gt $I11, rx248_eos, rx248_fail
- sub $I11, rx248_pos, rx248_off
- substr $S10, rx248_tgt, $I11, 2
- ne $S10, "::", rx248_fail
- add rx248_pos, 2
- set_addr $I10, rxcap_253_fail
- ($I12, $I11) = rx248_cur."!mark_peek"($I10)
- rx248_cur."!cursor_pos"($I11)
- ($P10) = rx248_cur."!cursor_start"()
- $P10."!cursor_pass"(rx248_pos, "")
- rx248_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx253_pos, 2
+ gt $I11, rx253_eos, rx253_fail
+ sub $I11, rx253_pos, rx253_off
+ substr $S10, rx253_tgt, $I11, 2
+ ne $S10, "::", rx253_fail
+ add rx253_pos, 2
+ set_addr $I10, rxcap_258_fail
+ ($I12, $I11) = rx253_cur."!mark_peek"($I10)
+ rx253_cur."!cursor_pos"($I11)
+ ($P10) = rx253_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx253_pos, "")
+ rx253_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_253_done
- rxcap_253_fail:
- goto rx248_fail
- rxcap_253_done:
+ goto rxcap_258_done
+ rxcap_258_fail:
+ goto rx253_fail
+ rxcap_258_done:
# rx subrule "panic" subtype=method negate=
- rx248_cur."!cursor_pos"(rx248_pos)
- $P10 = rx248_cur."panic"(":: not yet implemented")
- unless $P10, rx248_fail
- rx248_pos = $P10."pos"()
+ rx253_cur."!cursor_pos"(rx253_pos)
+ $P10 = rx253_cur."panic"(":: not yet implemented")
+ unless $P10, rx253_fail
+ rx253_pos = $P10."pos"()
# rx pass
- rx248_cur."!cursor_pass"(rx248_pos, "metachar:sym<::>")
- rx248_cur."!cursor_debug"("PASS ", "metachar:sym<::>", " at pos=", rx248_pos)
- .return (rx248_cur)
- rx248_fail:
+ rx253_cur."!cursor_pass"(rx253_pos, "metachar:sym<::>")
+ rx253_cur."!cursor_debug"("PASS ", "metachar:sym<::>", " at pos=", rx253_pos)
+ .return (rx253_cur)
+ rx253_fail:
.annotate 'line', 3
- (rx248_rep, rx248_pos, $I10, $P10) = rx248_cur."!mark_fail"(0)
- lt rx248_pos, -1, rx248_done
- eq rx248_pos, -1, rx248_fail
+ (rx253_rep, rx253_pos, $I10, $P10) = rx253_cur."!mark_fail"(0)
+ lt rx253_pos, -1, rx253_done
+ eq rx253_pos, -1, rx253_fail
jump $I10
- rx248_done:
- rx248_cur."!cursor_fail"()
- rx248_cur."!cursor_debug"("FAIL ", "metachar:sym<::>")
- .return (rx248_cur)
+ rx253_done:
+ rx253_cur."!cursor_fail"()
+ rx253_cur."!cursor_debug"("FAIL ", "metachar:sym<::>")
+ .return (rx253_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<::>" :subid("72_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<::>" :subid("72_1275811476.7961") :method
.annotate 'line', 3
- $P250 = self."!PREFIX__!subrule"("", "::")
- new $P251, "ResizablePMCArray"
- push $P251, $P250
- .return ($P251)
+ $P255 = self."!PREFIX__!subrule"("panic", "::")
+ new $P256, "ResizablePMCArray"
+ push $P256, $P255
+ .return ($P256)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<lwb>" :subid("73_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<lwb>" :subid("73_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx255_tgt
- .local int rx255_pos
- .local int rx255_off
- .local int rx255_eos
- .local int rx255_rep
- .local pmc rx255_cur
- (rx255_cur, rx255_pos, rx255_tgt) = self."!cursor_start"()
- rx255_cur."!cursor_debug"("START ", "metachar:sym<lwb>")
- .lex unicode:"$\x{a2}", rx255_cur
+ .local string rx260_tgt
+ .local int rx260_pos
+ .local int rx260_off
+ .local int rx260_eos
+ .local int rx260_rep
+ .local pmc rx260_cur
+ (rx260_cur, rx260_pos, rx260_tgt) = self."!cursor_start"()
+ rx260_cur."!cursor_debug"("START ", "metachar:sym<lwb>")
+ .lex unicode:"$\x{a2}", rx260_cur
.local pmc match
.lex "$/", match
- length rx255_eos, rx255_tgt
- set rx255_off, 0
- lt rx255_pos, 2, rx255_start
- sub rx255_off, rx255_pos, 1
- substr rx255_tgt, rx255_tgt, rx255_off
- rx255_start:
+ length rx260_eos, rx260_tgt
+ gt rx260_pos, rx260_eos, rx260_done
+ set rx260_off, 0
+ lt rx260_pos, 2, rx260_start
+ sub rx260_off, rx260_pos, 1
+ substr rx260_tgt, rx260_tgt, rx260_off
+ rx260_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan258_done
- goto rxscan258_scan
- rxscan258_loop:
- ($P10) = rx255_cur."from"()
+ ne $I10, -1, rxscan263_done
+ goto rxscan263_scan
+ rxscan263_loop:
+ ($P10) = rx260_cur."from"()
inc $P10
- set rx255_pos, $P10
- ge rx255_pos, rx255_eos, rxscan258_done
- rxscan258_scan:
- set_addr $I10, rxscan258_loop
- rx255_cur."!mark_push"(0, rx255_pos, $I10)
- rxscan258_done:
+ set rx260_pos, $P10
+ ge rx260_pos, rx260_eos, rxscan263_done
+ rxscan263_scan:
+ set_addr $I10, rxscan263_loop
+ rx260_cur."!mark_push"(0, rx260_pos, $I10)
+ rxscan263_done:
.annotate 'line', 86
# rx subcapture "sym"
- set_addr $I10, rxcap_260_fail
- rx255_cur."!mark_push"(0, rx255_pos, $I10)
- alt259_0:
- set_addr $I10, alt259_1
- rx255_cur."!mark_push"(0, rx255_pos, $I10)
+ set_addr $I10, rxcap_265_fail
+ rx260_cur."!mark_push"(0, rx260_pos, $I10)
+ alt264_0:
+ set_addr $I10, alt264_1
+ rx260_cur."!mark_push"(0, rx260_pos, $I10)
# rx literal "<<"
- add $I11, rx255_pos, 2
- gt $I11, rx255_eos, rx255_fail
- sub $I11, rx255_pos, rx255_off
- substr $S10, rx255_tgt, $I11, 2
- ne $S10, "<<", rx255_fail
- add rx255_pos, 2
- goto alt259_end
- alt259_1:
+ add $I11, rx260_pos, 2
+ gt $I11, rx260_eos, rx260_fail
+ sub $I11, rx260_pos, rx260_off
+ substr $S10, rx260_tgt, $I11, 2
+ ne $S10, "<<", rx260_fail
+ add rx260_pos, 2
+ goto alt264_end
+ alt264_1:
# rx literal unicode:"\x{ab}"
- add $I11, rx255_pos, 1
- gt $I11, rx255_eos, rx255_fail
- sub $I11, rx255_pos, rx255_off
- substr $S10, rx255_tgt, $I11, 1
- ne $S10, unicode:"\x{ab}", rx255_fail
- add rx255_pos, 1
- alt259_end:
- set_addr $I10, rxcap_260_fail
- ($I12, $I11) = rx255_cur."!mark_peek"($I10)
- rx255_cur."!cursor_pos"($I11)
- ($P10) = rx255_cur."!cursor_start"()
- $P10."!cursor_pass"(rx255_pos, "")
- rx255_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx260_pos, 1
+ gt $I11, rx260_eos, rx260_fail
+ sub $I11, rx260_pos, rx260_off
+ substr $S10, rx260_tgt, $I11, 1
+ ne $S10, unicode:"\x{ab}", rx260_fail
+ add rx260_pos, 1
+ alt264_end:
+ set_addr $I10, rxcap_265_fail
+ ($I12, $I11) = rx260_cur."!mark_peek"($I10)
+ rx260_cur."!cursor_pos"($I11)
+ ($P10) = rx260_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx260_pos, "")
+ rx260_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_260_done
- rxcap_260_fail:
- goto rx255_fail
- rxcap_260_done:
+ goto rxcap_265_done
+ rxcap_265_fail:
+ goto rx260_fail
+ rxcap_265_done:
# rx pass
- rx255_cur."!cursor_pass"(rx255_pos, "metachar:sym<lwb>")
- rx255_cur."!cursor_debug"("PASS ", "metachar:sym<lwb>", " at pos=", rx255_pos)
- .return (rx255_cur)
- rx255_fail:
+ rx260_cur."!cursor_pass"(rx260_pos, "metachar:sym<lwb>")
+ rx260_cur."!cursor_debug"("PASS ", "metachar:sym<lwb>", " at pos=", rx260_pos)
+ .return (rx260_cur)
+ rx260_fail:
.annotate 'line', 3
- (rx255_rep, rx255_pos, $I10, $P10) = rx255_cur."!mark_fail"(0)
- lt rx255_pos, -1, rx255_done
- eq rx255_pos, -1, rx255_fail
+ (rx260_rep, rx260_pos, $I10, $P10) = rx260_cur."!mark_fail"(0)
+ lt rx260_pos, -1, rx260_done
+ eq rx260_pos, -1, rx260_fail
jump $I10
- rx255_done:
- rx255_cur."!cursor_fail"()
- rx255_cur."!cursor_debug"("FAIL ", "metachar:sym<lwb>")
- .return (rx255_cur)
+ rx260_done:
+ rx260_cur."!cursor_fail"()
+ rx260_cur."!cursor_debug"("FAIL ", "metachar:sym<lwb>")
+ .return (rx260_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<lwb>" :subid("74_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<lwb>" :subid("74_1275811476.7961") :method
.annotate 'line', 3
- new $P257, "ResizablePMCArray"
- push $P257, unicode:"\x{ab}"
- push $P257, "<<"
- .return ($P257)
+ new $P262, "ResizablePMCArray"
+ push $P262, unicode:"\x{ab}"
+ push $P262, "<<"
+ .return ($P262)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<rwb>" :subid("75_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<rwb>" :subid("75_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx262_tgt
- .local int rx262_pos
- .local int rx262_off
- .local int rx262_eos
- .local int rx262_rep
- .local pmc rx262_cur
- (rx262_cur, rx262_pos, rx262_tgt) = self."!cursor_start"()
- rx262_cur."!cursor_debug"("START ", "metachar:sym<rwb>")
- .lex unicode:"$\x{a2}", rx262_cur
+ .local string rx267_tgt
+ .local int rx267_pos
+ .local int rx267_off
+ .local int rx267_eos
+ .local int rx267_rep
+ .local pmc rx267_cur
+ (rx267_cur, rx267_pos, rx267_tgt) = self."!cursor_start"()
+ rx267_cur."!cursor_debug"("START ", "metachar:sym<rwb>")
+ .lex unicode:"$\x{a2}", rx267_cur
.local pmc match
.lex "$/", match
- length rx262_eos, rx262_tgt
- set rx262_off, 0
- lt rx262_pos, 2, rx262_start
- sub rx262_off, rx262_pos, 1
- substr rx262_tgt, rx262_tgt, rx262_off
- rx262_start:
+ length rx267_eos, rx267_tgt
+ gt rx267_pos, rx267_eos, rx267_done
+ set rx267_off, 0
+ lt rx267_pos, 2, rx267_start
+ sub rx267_off, rx267_pos, 1
+ substr rx267_tgt, rx267_tgt, rx267_off
+ rx267_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan265_done
- goto rxscan265_scan
- rxscan265_loop:
- ($P10) = rx262_cur."from"()
+ ne $I10, -1, rxscan270_done
+ goto rxscan270_scan
+ rxscan270_loop:
+ ($P10) = rx267_cur."from"()
inc $P10
- set rx262_pos, $P10
- ge rx262_pos, rx262_eos, rxscan265_done
- rxscan265_scan:
- set_addr $I10, rxscan265_loop
- rx262_cur."!mark_push"(0, rx262_pos, $I10)
- rxscan265_done:
+ set rx267_pos, $P10
+ ge rx267_pos, rx267_eos, rxscan270_done
+ rxscan270_scan:
+ set_addr $I10, rxscan270_loop
+ rx267_cur."!mark_push"(0, rx267_pos, $I10)
+ rxscan270_done:
.annotate 'line', 87
# rx subcapture "sym"
- set_addr $I10, rxcap_267_fail
- rx262_cur."!mark_push"(0, rx262_pos, $I10)
- alt266_0:
- set_addr $I10, alt266_1
- rx262_cur."!mark_push"(0, rx262_pos, $I10)
+ set_addr $I10, rxcap_272_fail
+ rx267_cur."!mark_push"(0, rx267_pos, $I10)
+ alt271_0:
+ set_addr $I10, alt271_1
+ rx267_cur."!mark_push"(0, rx267_pos, $I10)
# rx literal ">>"
- add $I11, rx262_pos, 2
- gt $I11, rx262_eos, rx262_fail
- sub $I11, rx262_pos, rx262_off
- substr $S10, rx262_tgt, $I11, 2
- ne $S10, ">>", rx262_fail
- add rx262_pos, 2
- goto alt266_end
- alt266_1:
+ add $I11, rx267_pos, 2
+ gt $I11, rx267_eos, rx267_fail
+ sub $I11, rx267_pos, rx267_off
+ substr $S10, rx267_tgt, $I11, 2
+ ne $S10, ">>", rx267_fail
+ add rx267_pos, 2
+ goto alt271_end
+ alt271_1:
# rx literal unicode:"\x{bb}"
- add $I11, rx262_pos, 1
- gt $I11, rx262_eos, rx262_fail
- sub $I11, rx262_pos, rx262_off
- substr $S10, rx262_tgt, $I11, 1
- ne $S10, unicode:"\x{bb}", rx262_fail
- add rx262_pos, 1
- alt266_end:
- set_addr $I10, rxcap_267_fail
- ($I12, $I11) = rx262_cur."!mark_peek"($I10)
- rx262_cur."!cursor_pos"($I11)
- ($P10) = rx262_cur."!cursor_start"()
- $P10."!cursor_pass"(rx262_pos, "")
- rx262_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx267_pos, 1
+ gt $I11, rx267_eos, rx267_fail
+ sub $I11, rx267_pos, rx267_off
+ substr $S10, rx267_tgt, $I11, 1
+ ne $S10, unicode:"\x{bb}", rx267_fail
+ add rx267_pos, 1
+ alt271_end:
+ set_addr $I10, rxcap_272_fail
+ ($I12, $I11) = rx267_cur."!mark_peek"($I10)
+ rx267_cur."!cursor_pos"($I11)
+ ($P10) = rx267_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx267_pos, "")
+ rx267_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_267_done
- rxcap_267_fail:
- goto rx262_fail
- rxcap_267_done:
+ goto rxcap_272_done
+ rxcap_272_fail:
+ goto rx267_fail
+ rxcap_272_done:
# rx pass
- rx262_cur."!cursor_pass"(rx262_pos, "metachar:sym<rwb>")
- rx262_cur."!cursor_debug"("PASS ", "metachar:sym<rwb>", " at pos=", rx262_pos)
- .return (rx262_cur)
- rx262_fail:
+ rx267_cur."!cursor_pass"(rx267_pos, "metachar:sym<rwb>")
+ rx267_cur."!cursor_debug"("PASS ", "metachar:sym<rwb>", " at pos=", rx267_pos)
+ .return (rx267_cur)
+ rx267_fail:
.annotate 'line', 3
- (rx262_rep, rx262_pos, $I10, $P10) = rx262_cur."!mark_fail"(0)
- lt rx262_pos, -1, rx262_done
- eq rx262_pos, -1, rx262_fail
+ (rx267_rep, rx267_pos, $I10, $P10) = rx267_cur."!mark_fail"(0)
+ lt rx267_pos, -1, rx267_done
+ eq rx267_pos, -1, rx267_fail
jump $I10
- rx262_done:
- rx262_cur."!cursor_fail"()
- rx262_cur."!cursor_debug"("FAIL ", "metachar:sym<rwb>")
- .return (rx262_cur)
+ rx267_done:
+ rx267_cur."!cursor_fail"()
+ rx267_cur."!cursor_debug"("FAIL ", "metachar:sym<rwb>")
+ .return (rx267_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<rwb>" :subid("76_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<rwb>" :subid("76_1275811476.7961") :method
.annotate 'line', 3
- new $P264, "ResizablePMCArray"
- push $P264, unicode:"\x{bb}"
- push $P264, ">>"
- .return ($P264)
+ new $P269, "ResizablePMCArray"
+ push $P269, unicode:"\x{bb}"
+ push $P269, ">>"
+ .return ($P269)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<bs>" :subid("77_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<bs>" :subid("77_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx269_tgt
- .local int rx269_pos
- .local int rx269_off
- .local int rx269_eos
- .local int rx269_rep
- .local pmc rx269_cur
- (rx269_cur, rx269_pos, rx269_tgt) = self."!cursor_start"()
- rx269_cur."!cursor_debug"("START ", "metachar:sym<bs>")
- .lex unicode:"$\x{a2}", rx269_cur
+ .local string rx274_tgt
+ .local int rx274_pos
+ .local int rx274_off
+ .local int rx274_eos
+ .local int rx274_rep
+ .local pmc rx274_cur
+ (rx274_cur, rx274_pos, rx274_tgt) = self."!cursor_start"()
+ rx274_cur."!cursor_debug"("START ", "metachar:sym<bs>")
+ .lex unicode:"$\x{a2}", rx274_cur
.local pmc match
.lex "$/", match
- length rx269_eos, rx269_tgt
- set rx269_off, 0
- lt rx269_pos, 2, rx269_start
- sub rx269_off, rx269_pos, 1
- substr rx269_tgt, rx269_tgt, rx269_off
- rx269_start:
+ length rx274_eos, rx274_tgt
+ gt rx274_pos, rx274_eos, rx274_done
+ set rx274_off, 0
+ lt rx274_pos, 2, rx274_start
+ sub rx274_off, rx274_pos, 1
+ substr rx274_tgt, rx274_tgt, rx274_off
+ rx274_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan273_done
- goto rxscan273_scan
- rxscan273_loop:
- ($P10) = rx269_cur."from"()
+ ne $I10, -1, rxscan278_done
+ goto rxscan278_scan
+ rxscan278_loop:
+ ($P10) = rx274_cur."from"()
inc $P10
- set rx269_pos, $P10
- ge rx269_pos, rx269_eos, rxscan273_done
- rxscan273_scan:
- set_addr $I10, rxscan273_loop
- rx269_cur."!mark_push"(0, rx269_pos, $I10)
- rxscan273_done:
+ set rx274_pos, $P10
+ ge rx274_pos, rx274_eos, rxscan278_done
+ rxscan278_scan:
+ set_addr $I10, rxscan278_loop
+ rx274_cur."!mark_push"(0, rx274_pos, $I10)
+ rxscan278_done:
.annotate 'line', 88
# rx literal "\\"
- add $I11, rx269_pos, 1
- gt $I11, rx269_eos, rx269_fail
- sub $I11, rx269_pos, rx269_off
- substr $S10, rx269_tgt, $I11, 1
- ne $S10, "\\", rx269_fail
- add rx269_pos, 1
+ add $I11, rx274_pos, 1
+ gt $I11, rx274_eos, rx274_fail
+ sub $I11, rx274_pos, rx274_off
+ substr $S10, rx274_tgt, $I11, 1
+ ne $S10, "\\", rx274_fail
+ add rx274_pos, 1
# rx subrule "backslash" subtype=capture negate=
- rx269_cur."!cursor_pos"(rx269_pos)
- $P10 = rx269_cur."backslash"()
- unless $P10, rx269_fail
- rx269_cur."!mark_push"(0, -1, 0, $P10)
+ rx274_cur."!cursor_pos"(rx274_pos)
+ $P10 = rx274_cur."backslash"()
+ unless $P10, rx274_fail
+ rx274_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("backslash")
- rx269_pos = $P10."pos"()
+ rx274_pos = $P10."pos"()
# rx pass
- rx269_cur."!cursor_pass"(rx269_pos, "metachar:sym<bs>")
- rx269_cur."!cursor_debug"("PASS ", "metachar:sym<bs>", " at pos=", rx269_pos)
- .return (rx269_cur)
- rx269_fail:
+ rx274_cur."!cursor_pass"(rx274_pos, "metachar:sym<bs>")
+ rx274_cur."!cursor_debug"("PASS ", "metachar:sym<bs>", " at pos=", rx274_pos)
+ .return (rx274_cur)
+ rx274_fail:
.annotate 'line', 3
- (rx269_rep, rx269_pos, $I10, $P10) = rx269_cur."!mark_fail"(0)
- lt rx269_pos, -1, rx269_done
- eq rx269_pos, -1, rx269_fail
+ (rx274_rep, rx274_pos, $I10, $P10) = rx274_cur."!mark_fail"(0)
+ lt rx274_pos, -1, rx274_done
+ eq rx274_pos, -1, rx274_fail
jump $I10
- rx269_done:
- rx269_cur."!cursor_fail"()
- rx269_cur."!cursor_debug"("FAIL ", "metachar:sym<bs>")
- .return (rx269_cur)
+ rx274_done:
+ rx274_cur."!cursor_fail"()
+ rx274_cur."!cursor_debug"("FAIL ", "metachar:sym<bs>")
+ .return (rx274_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<bs>" :subid("78_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<bs>" :subid("78_1275811476.7961") :method
.annotate 'line', 3
- $P271 = self."!PREFIX__!subrule"("backslash", "\\")
- new $P272, "ResizablePMCArray"
- push $P272, $P271
- .return ($P272)
+ $P276 = self."!PREFIX__!subrule"("backslash", "\\")
+ new $P277, "ResizablePMCArray"
+ push $P277, $P276
+ .return ($P277)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<mod>" :subid("79_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<mod>" :subid("79_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx275_tgt
- .local int rx275_pos
- .local int rx275_off
- .local int rx275_eos
- .local int rx275_rep
- .local pmc rx275_cur
- (rx275_cur, rx275_pos, rx275_tgt) = self."!cursor_start"()
- rx275_cur."!cursor_debug"("START ", "metachar:sym<mod>")
- .lex unicode:"$\x{a2}", rx275_cur
+ .local string rx280_tgt
+ .local int rx280_pos
+ .local int rx280_off
+ .local int rx280_eos
+ .local int rx280_rep
+ .local pmc rx280_cur
+ (rx280_cur, rx280_pos, rx280_tgt) = self."!cursor_start"()
+ rx280_cur."!cursor_debug"("START ", "metachar:sym<mod>")
+ .lex unicode:"$\x{a2}", rx280_cur
.local pmc match
.lex "$/", match
- length rx275_eos, rx275_tgt
- set rx275_off, 0
- lt rx275_pos, 2, rx275_start
- sub rx275_off, rx275_pos, 1
- substr rx275_tgt, rx275_tgt, rx275_off
- rx275_start:
+ length rx280_eos, rx280_tgt
+ gt rx280_pos, rx280_eos, rx280_done
+ set rx280_off, 0
+ lt rx280_pos, 2, rx280_start
+ sub rx280_off, rx280_pos, 1
+ substr rx280_tgt, rx280_tgt, rx280_off
+ rx280_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan279_done
- goto rxscan279_scan
- rxscan279_loop:
- ($P10) = rx275_cur."from"()
+ ne $I10, -1, rxscan284_done
+ goto rxscan284_scan
+ rxscan284_loop:
+ ($P10) = rx280_cur."from"()
inc $P10
- set rx275_pos, $P10
- ge rx275_pos, rx275_eos, rxscan279_done
- rxscan279_scan:
- set_addr $I10, rxscan279_loop
- rx275_cur."!mark_push"(0, rx275_pos, $I10)
- rxscan279_done:
+ set rx280_pos, $P10
+ ge rx280_pos, rx280_eos, rxscan284_done
+ rxscan284_scan:
+ set_addr $I10, rxscan284_loop
+ rx280_cur."!mark_push"(0, rx280_pos, $I10)
+ rxscan284_done:
.annotate 'line', 89
# rx subrule "mod_internal" subtype=capture negate=
- rx275_cur."!cursor_pos"(rx275_pos)
- $P10 = rx275_cur."mod_internal"()
- unless $P10, rx275_fail
- rx275_cur."!mark_push"(0, -1, 0, $P10)
+ rx280_cur."!cursor_pos"(rx280_pos)
+ $P10 = rx280_cur."mod_internal"()
+ unless $P10, rx280_fail
+ rx280_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("mod_internal")
- rx275_pos = $P10."pos"()
+ rx280_pos = $P10."pos"()
# rx pass
- rx275_cur."!cursor_pass"(rx275_pos, "metachar:sym<mod>")
- rx275_cur."!cursor_debug"("PASS ", "metachar:sym<mod>", " at pos=", rx275_pos)
- .return (rx275_cur)
- rx275_fail:
+ rx280_cur."!cursor_pass"(rx280_pos, "metachar:sym<mod>")
+ rx280_cur."!cursor_debug"("PASS ", "metachar:sym<mod>", " at pos=", rx280_pos)
+ .return (rx280_cur)
+ rx280_fail:
.annotate 'line', 3
- (rx275_rep, rx275_pos, $I10, $P10) = rx275_cur."!mark_fail"(0)
- lt rx275_pos, -1, rx275_done
- eq rx275_pos, -1, rx275_fail
+ (rx280_rep, rx280_pos, $I10, $P10) = rx280_cur."!mark_fail"(0)
+ lt rx280_pos, -1, rx280_done
+ eq rx280_pos, -1, rx280_fail
jump $I10
- rx275_done:
- rx275_cur."!cursor_fail"()
- rx275_cur."!cursor_debug"("FAIL ", "metachar:sym<mod>")
- .return (rx275_cur)
+ rx280_done:
+ rx280_cur."!cursor_fail"()
+ rx280_cur."!cursor_debug"("FAIL ", "metachar:sym<mod>")
+ .return (rx280_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<mod>" :subid("80_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<mod>" :subid("80_1275811476.7961") :method
.annotate 'line', 3
- $P277 = self."!PREFIX__!subrule"("mod_internal", "")
- new $P278, "ResizablePMCArray"
- push $P278, $P277
- .return ($P278)
+ $P282 = self."!PREFIX__!subrule"("mod_internal", "")
+ new $P283, "ResizablePMCArray"
+ push $P283, $P282
+ .return ($P283)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<~>" :subid("81_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<~>" :subid("81_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx281_tgt
- .local int rx281_pos
- .local int rx281_off
- .local int rx281_eos
- .local int rx281_rep
- .local pmc rx281_cur
- (rx281_cur, rx281_pos, rx281_tgt) = self."!cursor_start"()
- rx281_cur."!cursor_debug"("START ", "metachar:sym<~>")
- .lex unicode:"$\x{a2}", rx281_cur
+ .local string rx286_tgt
+ .local int rx286_pos
+ .local int rx286_off
+ .local int rx286_eos
+ .local int rx286_rep
+ .local pmc rx286_cur
+ (rx286_cur, rx286_pos, rx286_tgt) = self."!cursor_start"()
+ rx286_cur."!cursor_debug"("START ", "metachar:sym<~>")
+ .lex unicode:"$\x{a2}", rx286_cur
.local pmc match
.lex "$/", match
- length rx281_eos, rx281_tgt
- set rx281_off, 0
- lt rx281_pos, 2, rx281_start
- sub rx281_off, rx281_pos, 1
- substr rx281_tgt, rx281_tgt, rx281_off
- rx281_start:
+ length rx286_eos, rx286_tgt
+ gt rx286_pos, rx286_eos, rx286_done
+ set rx286_off, 0
+ lt rx286_pos, 2, rx286_start
+ sub rx286_off, rx286_pos, 1
+ substr rx286_tgt, rx286_tgt, rx286_off
+ rx286_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan285_done
- goto rxscan285_scan
- rxscan285_loop:
- ($P10) = rx281_cur."from"()
+ ne $I10, -1, rxscan290_done
+ goto rxscan290_scan
+ rxscan290_loop:
+ ($P10) = rx286_cur."from"()
inc $P10
- set rx281_pos, $P10
- ge rx281_pos, rx281_eos, rxscan285_done
- rxscan285_scan:
- set_addr $I10, rxscan285_loop
- rx281_cur."!mark_push"(0, rx281_pos, $I10)
- rxscan285_done:
+ set rx286_pos, $P10
+ ge rx286_pos, rx286_eos, rxscan290_done
+ rxscan290_scan:
+ set_addr $I10, rxscan290_loop
+ rx286_cur."!mark_push"(0, rx286_pos, $I10)
+ rxscan290_done:
.annotate 'line', 93
# rx subcapture "sym"
- set_addr $I10, rxcap_286_fail
- rx281_cur."!mark_push"(0, rx281_pos, $I10)
+ set_addr $I10, rxcap_291_fail
+ rx286_cur."!mark_push"(0, rx286_pos, $I10)
# rx literal "~"
- add $I11, rx281_pos, 1
- gt $I11, rx281_eos, rx281_fail
- sub $I11, rx281_pos, rx281_off
- substr $S10, rx281_tgt, $I11, 1
- ne $S10, "~", rx281_fail
- add rx281_pos, 1
- set_addr $I10, rxcap_286_fail
- ($I12, $I11) = rx281_cur."!mark_peek"($I10)
- rx281_cur."!cursor_pos"($I11)
- ($P10) = rx281_cur."!cursor_start"()
- $P10."!cursor_pass"(rx281_pos, "")
- rx281_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx286_pos, 1
+ gt $I11, rx286_eos, rx286_fail
+ sub $I11, rx286_pos, rx286_off
+ substr $S10, rx286_tgt, $I11, 1
+ ne $S10, "~", rx286_fail
+ add rx286_pos, 1
+ set_addr $I10, rxcap_291_fail
+ ($I12, $I11) = rx286_cur."!mark_peek"($I10)
+ rx286_cur."!cursor_pos"($I11)
+ ($P10) = rx286_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx286_pos, "")
+ rx286_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_286_done
- rxcap_286_fail:
- goto rx281_fail
- rxcap_286_done:
+ goto rxcap_291_done
+ rxcap_291_fail:
+ goto rx286_fail
+ rxcap_291_done:
.annotate 'line', 94
# rx subrule "ws" subtype=method negate=
- rx281_cur."!cursor_pos"(rx281_pos)
- $P10 = rx281_cur."ws"()
- unless $P10, rx281_fail
- rx281_pos = $P10."pos"()
+ rx286_cur."!cursor_pos"(rx286_pos)
+ $P10 = rx286_cur."ws"()
+ unless $P10, rx286_fail
+ rx286_pos = $P10."pos"()
# rx subrule "quantified_atom" subtype=capture negate=
- rx281_cur."!cursor_pos"(rx281_pos)
- $P10 = rx281_cur."quantified_atom"()
- unless $P10, rx281_fail
- rx281_cur."!mark_push"(0, -1, 0, $P10)
+ rx286_cur."!cursor_pos"(rx286_pos)
+ $P10 = rx286_cur."quantified_atom"()
+ unless $P10, rx286_fail
+ rx286_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("GOAL")
- rx281_pos = $P10."pos"()
+ rx286_pos = $P10."pos"()
.annotate 'line', 95
# rx subrule "ws" subtype=method negate=
- rx281_cur."!cursor_pos"(rx281_pos)
- $P10 = rx281_cur."ws"()
- unless $P10, rx281_fail
- rx281_pos = $P10."pos"()
+ rx286_cur."!cursor_pos"(rx286_pos)
+ $P10 = rx286_cur."ws"()
+ unless $P10, rx286_fail
+ rx286_pos = $P10."pos"()
# rx subrule "quantified_atom" subtype=capture negate=
- rx281_cur."!cursor_pos"(rx281_pos)
- $P10 = rx281_cur."quantified_atom"()
- unless $P10, rx281_fail
- rx281_cur."!mark_push"(0, -1, 0, $P10)
+ rx286_cur."!cursor_pos"(rx286_pos)
+ $P10 = rx286_cur."quantified_atom"()
+ unless $P10, rx286_fail
+ rx286_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("EXPR")
- rx281_pos = $P10."pos"()
+ rx286_pos = $P10."pos"()
.annotate 'line', 92
# rx pass
- rx281_cur."!cursor_pass"(rx281_pos, "metachar:sym<~>")
- rx281_cur."!cursor_debug"("PASS ", "metachar:sym<~>", " at pos=", rx281_pos)
- .return (rx281_cur)
- rx281_fail:
+ rx286_cur."!cursor_pass"(rx286_pos, "metachar:sym<~>")
+ rx286_cur."!cursor_debug"("PASS ", "metachar:sym<~>", " at pos=", rx286_pos)
+ .return (rx286_cur)
+ rx286_fail:
.annotate 'line', 3
- (rx281_rep, rx281_pos, $I10, $P10) = rx281_cur."!mark_fail"(0)
- lt rx281_pos, -1, rx281_done
- eq rx281_pos, -1, rx281_fail
+ (rx286_rep, rx286_pos, $I10, $P10) = rx286_cur."!mark_fail"(0)
+ lt rx286_pos, -1, rx286_done
+ eq rx286_pos, -1, rx286_fail
jump $I10
- rx281_done:
- rx281_cur."!cursor_fail"()
- rx281_cur."!cursor_debug"("FAIL ", "metachar:sym<~>")
- .return (rx281_cur)
+ rx286_done:
+ rx286_cur."!cursor_fail"()
+ rx286_cur."!cursor_debug"("FAIL ", "metachar:sym<~>")
+ .return (rx286_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<~>" :subid("82_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<~>" :subid("82_1275811476.7961") :method
.annotate 'line', 3
- $P283 = self."!PREFIX__!subrule"("", "~")
- new $P284, "ResizablePMCArray"
- push $P284, $P283
- .return ($P284)
+ $P288 = self."!PREFIX__!subrule"("ws", "~")
+ new $P289, "ResizablePMCArray"
+ push $P289, $P288
+ .return ($P289)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<{*}>" :subid("83_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<{*}>" :subid("83_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx288_tgt
- .local int rx288_pos
- .local int rx288_off
- .local int rx288_eos
- .local int rx288_rep
- .local pmc rx288_cur
- (rx288_cur, rx288_pos, rx288_tgt) = self."!cursor_start"()
- rx288_cur."!cursor_debug"("START ", "metachar:sym<{*}>")
- rx288_cur."!cursor_caparray"("key")
- .lex unicode:"$\x{a2}", rx288_cur
+ .local string rx293_tgt
+ .local int rx293_pos
+ .local int rx293_off
+ .local int rx293_eos
+ .local int rx293_rep
+ .local pmc rx293_cur
+ (rx293_cur, rx293_pos, rx293_tgt) = self."!cursor_start"()
+ rx293_cur."!cursor_debug"("START ", "metachar:sym<{*}>")
+ rx293_cur."!cursor_caparray"("key")
+ .lex unicode:"$\x{a2}", rx293_cur
.local pmc match
.lex "$/", match
- length rx288_eos, rx288_tgt
- set rx288_off, 0
- lt rx288_pos, 2, rx288_start
- sub rx288_off, rx288_pos, 1
- substr rx288_tgt, rx288_tgt, rx288_off
- rx288_start:
+ length rx293_eos, rx293_tgt
+ gt rx293_pos, rx293_eos, rx293_done
+ set rx293_off, 0
+ lt rx293_pos, 2, rx293_start
+ sub rx293_off, rx293_pos, 1
+ substr rx293_tgt, rx293_tgt, rx293_off
+ rx293_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan291_done
- goto rxscan291_scan
- rxscan291_loop:
- ($P10) = rx288_cur."from"()
+ ne $I10, -1, rxscan296_done
+ goto rxscan296_scan
+ rxscan296_loop:
+ ($P10) = rx293_cur."from"()
inc $P10
- set rx288_pos, $P10
- ge rx288_pos, rx288_eos, rxscan291_done
- rxscan291_scan:
- set_addr $I10, rxscan291_loop
- rx288_cur."!mark_push"(0, rx288_pos, $I10)
- rxscan291_done:
+ set rx293_pos, $P10
+ ge rx293_pos, rx293_eos, rxscan296_done
+ rxscan296_scan:
+ set_addr $I10, rxscan296_loop
+ rx293_cur."!mark_push"(0, rx293_pos, $I10)
+ rxscan296_done:
.annotate 'line', 99
# rx subcapture "sym"
- set_addr $I10, rxcap_292_fail
- rx288_cur."!mark_push"(0, rx288_pos, $I10)
+ set_addr $I10, rxcap_297_fail
+ rx293_cur."!mark_push"(0, rx293_pos, $I10)
# rx literal "{*}"
- add $I11, rx288_pos, 3
- gt $I11, rx288_eos, rx288_fail
- sub $I11, rx288_pos, rx288_off
- substr $S10, rx288_tgt, $I11, 3
- ne $S10, "{*}", rx288_fail
- add rx288_pos, 3
- set_addr $I10, rxcap_292_fail
- ($I12, $I11) = rx288_cur."!mark_peek"($I10)
- rx288_cur."!cursor_pos"($I11)
- ($P10) = rx288_cur."!cursor_start"()
- $P10."!cursor_pass"(rx288_pos, "")
- rx288_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx293_pos, 3
+ gt $I11, rx293_eos, rx293_fail
+ sub $I11, rx293_pos, rx293_off
+ substr $S10, rx293_tgt, $I11, 3
+ ne $S10, "{*}", rx293_fail
+ add rx293_pos, 3
+ set_addr $I10, rxcap_297_fail
+ ($I12, $I11) = rx293_cur."!mark_peek"($I10)
+ rx293_cur."!cursor_pos"($I11)
+ ($P10) = rx293_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx293_pos, "")
+ rx293_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_292_done
- rxcap_292_fail:
- goto rx288_fail
- rxcap_292_done:
+ goto rxcap_297_done
+ rxcap_297_fail:
+ goto rx293_fail
+ rxcap_297_done:
.annotate 'line', 100
- # rx rxquantr293 ** 0..1
- set_addr $I303, rxquantr293_done
- rx288_cur."!mark_push"(0, rx288_pos, $I303)
- rxquantr293_loop:
- # rx rxquantr294 ** 0..*
- set_addr $I295, rxquantr294_done
- rx288_cur."!mark_push"(0, rx288_pos, $I295)
- rxquantr294_loop:
+ # rx rxquantr298 ** 0..1
+ set_addr $I308, rxquantr298_done
+ rx293_cur."!mark_push"(0, rx293_pos, $I308)
+ rxquantr298_loop:
+ # rx rxquantr299 ** 0..*
+ set_addr $I300, rxquantr299_done
+ rx293_cur."!mark_push"(0, rx293_pos, $I300)
+ rxquantr299_loop:
# rx enumcharlist negate=0
- ge rx288_pos, rx288_eos, rx288_fail
- sub $I10, rx288_pos, rx288_off
- substr $S10, rx288_tgt, $I10, 1
+ ge rx293_pos, rx293_eos, rx293_fail
+ sub $I10, rx293_pos, rx293_off
+ substr $S10, rx293_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx288_fail
- inc rx288_pos
- (rx288_rep) = rx288_cur."!mark_commit"($I295)
- rx288_cur."!mark_push"(rx288_rep, rx288_pos, $I295)
- goto rxquantr294_loop
- rxquantr294_done:
+ lt $I11, 0, rx293_fail
+ inc rx293_pos
+ (rx293_rep) = rx293_cur."!mark_commit"($I300)
+ rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I300)
+ goto rxquantr299_loop
+ rxquantr299_done:
# rx literal "#= "
- add $I11, rx288_pos, 3
- gt $I11, rx288_eos, rx288_fail
- sub $I11, rx288_pos, rx288_off
- substr $S10, rx288_tgt, $I11, 3
- ne $S10, "#= ", rx288_fail
- add rx288_pos, 3
- # rx rxquantr296 ** 0..*
- set_addr $I297, rxquantr296_done
- rx288_cur."!mark_push"(0, rx288_pos, $I297)
- rxquantr296_loop:
+ add $I11, rx293_pos, 3
+ gt $I11, rx293_eos, rx293_fail
+ sub $I11, rx293_pos, rx293_off
+ substr $S10, rx293_tgt, $I11, 3
+ ne $S10, "#= ", rx293_fail
+ add rx293_pos, 3
+ # rx rxquantr301 ** 0..*
+ set_addr $I302, rxquantr301_done
+ rx293_cur."!mark_push"(0, rx293_pos, $I302)
+ rxquantr301_loop:
# rx enumcharlist negate=0
- ge rx288_pos, rx288_eos, rx288_fail
- sub $I10, rx288_pos, rx288_off
- substr $S10, rx288_tgt, $I10, 1
+ ge rx293_pos, rx293_eos, rx293_fail
+ sub $I10, rx293_pos, rx293_off
+ substr $S10, rx293_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx288_fail
- inc rx288_pos
- (rx288_rep) = rx288_cur."!mark_commit"($I297)
- rx288_cur."!mark_push"(rx288_rep, rx288_pos, $I297)
- goto rxquantr296_loop
- rxquantr296_done:
+ lt $I11, 0, rx293_fail
+ inc rx293_pos
+ (rx293_rep) = rx293_cur."!mark_commit"($I302)
+ rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I302)
+ goto rxquantr301_loop
+ rxquantr301_done:
# rx subcapture "key"
- set_addr $I10, rxcap_302_fail
- rx288_cur."!mark_push"(0, rx288_pos, $I10)
+ set_addr $I10, rxcap_307_fail
+ rx293_cur."!mark_push"(0, rx293_pos, $I10)
# rx charclass_q S r 1..-1
- sub $I10, rx288_pos, rx288_off
- find_cclass $I11, 32, rx288_tgt, $I10, rx288_eos
+ sub $I10, rx293_pos, rx293_off
+ find_cclass $I11, 32, rx293_tgt, $I10, rx293_eos
add $I12, $I10, 1
- lt $I11, $I12, rx288_fail
- add rx288_pos, rx288_off, $I11
- # rx rxquantr298 ** 0..*
- set_addr $I301, rxquantr298_done
- rx288_cur."!mark_push"(0, rx288_pos, $I301)
- rxquantr298_loop:
- # rx rxquantr299 ** 1..*
- set_addr $I300, rxquantr299_done
- rx288_cur."!mark_push"(0, -1, $I300)
- rxquantr299_loop:
+ lt $I11, $I12, rx293_fail
+ add rx293_pos, rx293_off, $I11
+ # rx rxquantr303 ** 0..*
+ set_addr $I306, rxquantr303_done
+ rx293_cur."!mark_push"(0, rx293_pos, $I306)
+ rxquantr303_loop:
+ # rx rxquantr304 ** 1..*
+ set_addr $I305, rxquantr304_done
+ rx293_cur."!mark_push"(0, -1, $I305)
+ rxquantr304_loop:
# rx enumcharlist negate=0
- ge rx288_pos, rx288_eos, rx288_fail
- sub $I10, rx288_pos, rx288_off
- substr $S10, rx288_tgt, $I10, 1
+ ge rx293_pos, rx293_eos, rx293_fail
+ sub $I10, rx293_pos, rx293_off
+ substr $S10, rx293_tgt, $I10, 1
index $I11, unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", $S10
- lt $I11, 0, rx288_fail
- inc rx288_pos
- (rx288_rep) = rx288_cur."!mark_commit"($I300)
- rx288_cur."!mark_push"(rx288_rep, rx288_pos, $I300)
- goto rxquantr299_loop
- rxquantr299_done:
+ lt $I11, 0, rx293_fail
+ inc rx293_pos
+ (rx293_rep) = rx293_cur."!mark_commit"($I305)
+ rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I305)
+ goto rxquantr304_loop
+ rxquantr304_done:
# rx charclass_q S r 1..-1
- sub $I10, rx288_pos, rx288_off
- find_cclass $I11, 32, rx288_tgt, $I10, rx288_eos
+ sub $I10, rx293_pos, rx293_off
+ find_cclass $I11, 32, rx293_tgt, $I10, rx293_eos
add $I12, $I10, 1
- lt $I11, $I12, rx288_fail
- add rx288_pos, rx288_off, $I11
- (rx288_rep) = rx288_cur."!mark_commit"($I301)
- rx288_cur."!mark_push"(rx288_rep, rx288_pos, $I301)
- goto rxquantr298_loop
- rxquantr298_done:
- set_addr $I10, rxcap_302_fail
- ($I12, $I11) = rx288_cur."!mark_peek"($I10)
- rx288_cur."!cursor_pos"($I11)
- ($P10) = rx288_cur."!cursor_start"()
- $P10."!cursor_pass"(rx288_pos, "")
- rx288_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx293_fail
+ add rx293_pos, rx293_off, $I11
+ (rx293_rep) = rx293_cur."!mark_commit"($I306)
+ rx293_cur."!mark_push"(rx293_rep, rx293_pos, $I306)
+ goto rxquantr303_loop
+ rxquantr303_done:
+ set_addr $I10, rxcap_307_fail
+ ($I12, $I11) = rx293_cur."!mark_peek"($I10)
+ rx293_cur."!cursor_pos"($I11)
+ ($P10) = rx293_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx293_pos, "")
+ rx293_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("key")
- goto rxcap_302_done
- rxcap_302_fail:
- goto rx288_fail
- rxcap_302_done:
- (rx288_rep) = rx288_cur."!mark_commit"($I303)
- rxquantr293_done:
+ goto rxcap_307_done
+ rxcap_307_fail:
+ goto rx293_fail
+ rxcap_307_done:
+ (rx293_rep) = rx293_cur."!mark_commit"($I308)
+ rxquantr298_done:
.annotate 'line', 98
# rx pass
- rx288_cur."!cursor_pass"(rx288_pos, "metachar:sym<{*}>")
- rx288_cur."!cursor_debug"("PASS ", "metachar:sym<{*}>", " at pos=", rx288_pos)
- .return (rx288_cur)
- rx288_fail:
+ rx293_cur."!cursor_pass"(rx293_pos, "metachar:sym<{*}>")
+ rx293_cur."!cursor_debug"("PASS ", "metachar:sym<{*}>", " at pos=", rx293_pos)
+ .return (rx293_cur)
+ rx293_fail:
.annotate 'line', 3
- (rx288_rep, rx288_pos, $I10, $P10) = rx288_cur."!mark_fail"(0)
- lt rx288_pos, -1, rx288_done
- eq rx288_pos, -1, rx288_fail
+ (rx293_rep, rx293_pos, $I10, $P10) = rx293_cur."!mark_fail"(0)
+ lt rx293_pos, -1, rx293_done
+ eq rx293_pos, -1, rx293_fail
jump $I10
- rx288_done:
- rx288_cur."!cursor_fail"()
- rx288_cur."!cursor_debug"("FAIL ", "metachar:sym<{*}>")
- .return (rx288_cur)
+ rx293_done:
+ rx293_cur."!cursor_fail"()
+ rx293_cur."!cursor_debug"("FAIL ", "metachar:sym<{*}>")
+ .return (rx293_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<{*}>" :subid("84_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<{*}>" :subid("84_1275811476.7961") :method
.annotate 'line', 3
- new $P290, "ResizablePMCArray"
- push $P290, "{*}"
- .return ($P290)
+ new $P295, "ResizablePMCArray"
+ push $P295, "{*}"
+ .return ($P295)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<assert>" :subid("85_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<assert>" :subid("85_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx305_tgt
- .local int rx305_pos
- .local int rx305_off
- .local int rx305_eos
- .local int rx305_rep
- .local pmc rx305_cur
- (rx305_cur, rx305_pos, rx305_tgt) = self."!cursor_start"()
- rx305_cur."!cursor_debug"("START ", "metachar:sym<assert>")
- .lex unicode:"$\x{a2}", rx305_cur
+ .local string rx310_tgt
+ .local int rx310_pos
+ .local int rx310_off
+ .local int rx310_eos
+ .local int rx310_rep
+ .local pmc rx310_cur
+ (rx310_cur, rx310_pos, rx310_tgt) = self."!cursor_start"()
+ rx310_cur."!cursor_debug"("START ", "metachar:sym<assert>")
+ .lex unicode:"$\x{a2}", rx310_cur
.local pmc match
.lex "$/", match
- length rx305_eos, rx305_tgt
- set rx305_off, 0
- lt rx305_pos, 2, rx305_start
- sub rx305_off, rx305_pos, 1
- substr rx305_tgt, rx305_tgt, rx305_off
- rx305_start:
+ length rx310_eos, rx310_tgt
+ gt rx310_pos, rx310_eos, rx310_done
+ set rx310_off, 0
+ lt rx310_pos, 2, rx310_start
+ sub rx310_off, rx310_pos, 1
+ substr rx310_tgt, rx310_tgt, rx310_off
+ rx310_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan309_done
- goto rxscan309_scan
- rxscan309_loop:
- ($P10) = rx305_cur."from"()
+ ne $I10, -1, rxscan314_done
+ goto rxscan314_scan
+ rxscan314_loop:
+ ($P10) = rx310_cur."from"()
inc $P10
- set rx305_pos, $P10
- ge rx305_pos, rx305_eos, rxscan309_done
- rxscan309_scan:
- set_addr $I10, rxscan309_loop
- rx305_cur."!mark_push"(0, rx305_pos, $I10)
- rxscan309_done:
+ set rx310_pos, $P10
+ ge rx310_pos, rx310_eos, rxscan314_done
+ rxscan314_scan:
+ set_addr $I10, rxscan314_loop
+ rx310_cur."!mark_push"(0, rx310_pos, $I10)
+ rxscan314_done:
.annotate 'line', 103
# rx literal "<"
- add $I11, rx305_pos, 1
- gt $I11, rx305_eos, rx305_fail
- sub $I11, rx305_pos, rx305_off
- substr $S10, rx305_tgt, $I11, 1
- ne $S10, "<", rx305_fail
- add rx305_pos, 1
+ add $I11, rx310_pos, 1
+ gt $I11, rx310_eos, rx310_fail
+ sub $I11, rx310_pos, rx310_off
+ substr $S10, rx310_tgt, $I11, 1
+ ne $S10, "<", rx310_fail
+ add rx310_pos, 1
# rx subrule "assertion" subtype=capture negate=
- rx305_cur."!cursor_pos"(rx305_pos)
- $P10 = rx305_cur."assertion"()
- unless $P10, rx305_fail
- rx305_cur."!mark_push"(0, -1, 0, $P10)
+ rx310_cur."!cursor_pos"(rx310_pos)
+ $P10 = rx310_cur."assertion"()
+ unless $P10, rx310_fail
+ rx310_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx305_pos = $P10."pos"()
- alt310_0:
+ rx310_pos = $P10."pos"()
+ alt315_0:
.annotate 'line', 104
- set_addr $I10, alt310_1
- rx305_cur."!mark_push"(0, rx305_pos, $I10)
+ set_addr $I10, alt315_1
+ rx310_cur."!mark_push"(0, rx310_pos, $I10)
# rx literal ">"
- add $I11, rx305_pos, 1
- gt $I11, rx305_eos, rx305_fail
- sub $I11, rx305_pos, rx305_off
- substr $S10, rx305_tgt, $I11, 1
- ne $S10, ">", rx305_fail
- add rx305_pos, 1
- goto alt310_end
- alt310_1:
+ add $I11, rx310_pos, 1
+ gt $I11, rx310_eos, rx310_fail
+ sub $I11, rx310_pos, rx310_off
+ substr $S10, rx310_tgt, $I11, 1
+ ne $S10, ">", rx310_fail
+ add rx310_pos, 1
+ goto alt315_end
+ alt315_1:
# rx subrule "panic" subtype=method negate=
- rx305_cur."!cursor_pos"(rx305_pos)
- $P10 = rx305_cur."panic"("regex assertion not terminated by angle bracket")
- unless $P10, rx305_fail
- rx305_pos = $P10."pos"()
- alt310_end:
+ rx310_cur."!cursor_pos"(rx310_pos)
+ $P10 = rx310_cur."panic"("regex assertion not terminated by angle bracket")
+ unless $P10, rx310_fail
+ rx310_pos = $P10."pos"()
+ alt315_end:
.annotate 'line', 102
# rx pass
- rx305_cur."!cursor_pass"(rx305_pos, "metachar:sym<assert>")
- rx305_cur."!cursor_debug"("PASS ", "metachar:sym<assert>", " at pos=", rx305_pos)
- .return (rx305_cur)
- rx305_fail:
+ rx310_cur."!cursor_pass"(rx310_pos, "metachar:sym<assert>")
+ rx310_cur."!cursor_debug"("PASS ", "metachar:sym<assert>", " at pos=", rx310_pos)
+ .return (rx310_cur)
+ rx310_fail:
.annotate 'line', 3
- (rx305_rep, rx305_pos, $I10, $P10) = rx305_cur."!mark_fail"(0)
- lt rx305_pos, -1, rx305_done
- eq rx305_pos, -1, rx305_fail
+ (rx310_rep, rx310_pos, $I10, $P10) = rx310_cur."!mark_fail"(0)
+ lt rx310_pos, -1, rx310_done
+ eq rx310_pos, -1, rx310_fail
jump $I10
- rx305_done:
- rx305_cur."!cursor_fail"()
- rx305_cur."!cursor_debug"("FAIL ", "metachar:sym<assert>")
- .return (rx305_cur)
+ rx310_done:
+ rx310_cur."!cursor_fail"()
+ rx310_cur."!cursor_debug"("FAIL ", "metachar:sym<assert>")
+ .return (rx310_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<assert>" :subid("86_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<assert>" :subid("86_1275811476.7961") :method
.annotate 'line', 3
- $P307 = self."!PREFIX__!subrule"("assertion", "<")
- new $P308, "ResizablePMCArray"
- push $P308, $P307
- .return ($P308)
+ $P312 = self."!PREFIX__!subrule"("assertion", "<")
+ new $P313, "ResizablePMCArray"
+ push $P313, $P312
+ .return ($P313)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<var>" :subid("87_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<var>" :subid("87_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx312_tgt
- .local int rx312_pos
- .local int rx312_off
- .local int rx312_eos
- .local int rx312_rep
- .local pmc rx312_cur
- (rx312_cur, rx312_pos, rx312_tgt) = self."!cursor_start"()
- rx312_cur."!cursor_debug"("START ", "metachar:sym<var>")
- rx312_cur."!cursor_caparray"("quantified_atom")
- .lex unicode:"$\x{a2}", rx312_cur
+ .local string rx317_tgt
+ .local int rx317_pos
+ .local int rx317_off
+ .local int rx317_eos
+ .local int rx317_rep
+ .local pmc rx317_cur
+ (rx317_cur, rx317_pos, rx317_tgt) = self."!cursor_start"()
+ rx317_cur."!cursor_debug"("START ", "metachar:sym<var>")
+ rx317_cur."!cursor_caparray"("quantified_atom")
+ .lex unicode:"$\x{a2}", rx317_cur
.local pmc match
.lex "$/", match
- length rx312_eos, rx312_tgt
- set rx312_off, 0
- lt rx312_pos, 2, rx312_start
- sub rx312_off, rx312_pos, 1
- substr rx312_tgt, rx312_tgt, rx312_off
- rx312_start:
+ length rx317_eos, rx317_tgt
+ gt rx317_pos, rx317_eos, rx317_done
+ set rx317_off, 0
+ lt rx317_pos, 2, rx317_start
+ sub rx317_off, rx317_pos, 1
+ substr rx317_tgt, rx317_tgt, rx317_off
+ rx317_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan315_done
- goto rxscan315_scan
- rxscan315_loop:
- ($P10) = rx312_cur."from"()
+ ne $I10, -1, rxscan320_done
+ goto rxscan320_scan
+ rxscan320_loop:
+ ($P10) = rx317_cur."from"()
inc $P10
- set rx312_pos, $P10
- ge rx312_pos, rx312_eos, rxscan315_done
- rxscan315_scan:
- set_addr $I10, rxscan315_loop
- rx312_cur."!mark_push"(0, rx312_pos, $I10)
- rxscan315_done:
- alt316_0:
+ set rx317_pos, $P10
+ ge rx317_pos, rx317_eos, rxscan320_done
+ rxscan320_scan:
+ set_addr $I10, rxscan320_loop
+ rx317_cur."!mark_push"(0, rx317_pos, $I10)
+ rxscan320_done:
+ alt321_0:
.annotate 'line', 108
- set_addr $I10, alt316_1
- rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ set_addr $I10, alt321_1
+ rx317_cur."!mark_push"(0, rx317_pos, $I10)
.annotate 'line', 109
# rx literal "$<"
- add $I11, rx312_pos, 2
- gt $I11, rx312_eos, rx312_fail
- sub $I11, rx312_pos, rx312_off
- substr $S10, rx312_tgt, $I11, 2
- ne $S10, "$<", rx312_fail
- add rx312_pos, 2
+ add $I11, rx317_pos, 2
+ gt $I11, rx317_eos, rx317_fail
+ sub $I11, rx317_pos, rx317_off
+ substr $S10, rx317_tgt, $I11, 2
+ ne $S10, "$<", rx317_fail
+ add rx317_pos, 2
# rx subcapture "name"
- set_addr $I10, rxcap_319_fail
- rx312_cur."!mark_push"(0, rx312_pos, $I10)
- # rx rxquantr317 ** 1..*
- set_addr $I318, rxquantr317_done
- rx312_cur."!mark_push"(0, -1, $I318)
- rxquantr317_loop:
+ set_addr $I10, rxcap_324_fail
+ rx317_cur."!mark_push"(0, rx317_pos, $I10)
+ # rx rxquantr322 ** 1..*
+ set_addr $I323, rxquantr322_done
+ rx317_cur."!mark_push"(0, -1, $I323)
+ rxquantr322_loop:
# rx enumcharlist negate=1
- ge rx312_pos, rx312_eos, rx312_fail
- sub $I10, rx312_pos, rx312_off
- substr $S10, rx312_tgt, $I10, 1
+ ge rx317_pos, rx317_eos, rx317_fail
+ sub $I10, rx317_pos, rx317_off
+ substr $S10, rx317_tgt, $I10, 1
index $I11, ">", $S10
- ge $I11, 0, rx312_fail
- inc rx312_pos
- (rx312_rep) = rx312_cur."!mark_commit"($I318)
- rx312_cur."!mark_push"(rx312_rep, rx312_pos, $I318)
- goto rxquantr317_loop
- rxquantr317_done:
- set_addr $I10, rxcap_319_fail
- ($I12, $I11) = rx312_cur."!mark_peek"($I10)
- rx312_cur."!cursor_pos"($I11)
- ($P10) = rx312_cur."!cursor_start"()
- $P10."!cursor_pass"(rx312_pos, "")
- rx312_cur."!mark_push"(0, -1, 0, $P10)
+ ge $I11, 0, rx317_fail
+ inc rx317_pos
+ (rx317_rep) = rx317_cur."!mark_commit"($I323)
+ rx317_cur."!mark_push"(rx317_rep, rx317_pos, $I323)
+ goto rxquantr322_loop
+ rxquantr322_done:
+ set_addr $I10, rxcap_324_fail
+ ($I12, $I11) = rx317_cur."!mark_peek"($I10)
+ rx317_cur."!cursor_pos"($I11)
+ ($P10) = rx317_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx317_pos, "")
+ rx317_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- goto rxcap_319_done
- rxcap_319_fail:
- goto rx312_fail
- rxcap_319_done:
+ goto rxcap_324_done
+ rxcap_324_fail:
+ goto rx317_fail
+ rxcap_324_done:
# rx literal ">"
- add $I11, rx312_pos, 1
- gt $I11, rx312_eos, rx312_fail
- sub $I11, rx312_pos, rx312_off
- substr $S10, rx312_tgt, $I11, 1
- ne $S10, ">", rx312_fail
- add rx312_pos, 1
- goto alt316_end
- alt316_1:
+ add $I11, rx317_pos, 1
+ gt $I11, rx317_eos, rx317_fail
+ sub $I11, rx317_pos, rx317_off
+ substr $S10, rx317_tgt, $I11, 1
+ ne $S10, ">", rx317_fail
+ add rx317_pos, 1
+ goto alt321_end
+ alt321_1:
.annotate 'line', 110
# rx literal "$"
- add $I11, rx312_pos, 1
- gt $I11, rx312_eos, rx312_fail
- sub $I11, rx312_pos, rx312_off
- substr $S10, rx312_tgt, $I11, 1
- ne $S10, "$", rx312_fail
- add rx312_pos, 1
+ add $I11, rx317_pos, 1
+ gt $I11, rx317_eos, rx317_fail
+ sub $I11, rx317_pos, rx317_off
+ substr $S10, rx317_tgt, $I11, 1
+ ne $S10, "$", rx317_fail
+ add rx317_pos, 1
# rx subcapture "pos"
- set_addr $I10, rxcap_320_fail
- rx312_cur."!mark_push"(0, rx312_pos, $I10)
+ set_addr $I10, rxcap_325_fail
+ rx317_cur."!mark_push"(0, rx317_pos, $I10)
# rx charclass_q d r 1..-1
- sub $I10, rx312_pos, rx312_off
- find_not_cclass $I11, 8, rx312_tgt, $I10, rx312_eos
+ sub $I10, rx317_pos, rx317_off
+ find_not_cclass $I11, 8, rx317_tgt, $I10, rx317_eos
add $I12, $I10, 1
- lt $I11, $I12, rx312_fail
- add rx312_pos, rx312_off, $I11
- set_addr $I10, rxcap_320_fail
- ($I12, $I11) = rx312_cur."!mark_peek"($I10)
- rx312_cur."!cursor_pos"($I11)
- ($P10) = rx312_cur."!cursor_start"()
- $P10."!cursor_pass"(rx312_pos, "")
- rx312_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx317_fail
+ add rx317_pos, rx317_off, $I11
+ set_addr $I10, rxcap_325_fail
+ ($I12, $I11) = rx317_cur."!mark_peek"($I10)
+ rx317_cur."!cursor_pos"($I11)
+ ($P10) = rx317_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx317_pos, "")
+ rx317_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("pos")
- goto rxcap_320_done
- rxcap_320_fail:
- goto rx312_fail
- rxcap_320_done:
- alt316_end:
+ goto rxcap_325_done
+ rxcap_325_fail:
+ goto rx317_fail
+ rxcap_325_done:
+ alt321_end:
.annotate 'line', 113
- # rx rxquantr321 ** 0..1
- set_addr $I322, rxquantr321_done
- rx312_cur."!mark_push"(0, rx312_pos, $I322)
- rxquantr321_loop:
+ # rx rxquantr326 ** 0..1
+ set_addr $I327, rxquantr326_done
+ rx317_cur."!mark_push"(0, rx317_pos, $I327)
+ rxquantr326_loop:
# rx subrule "ws" subtype=method negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."ws"()
- unless $P10, rx312_fail
- rx312_pos = $P10."pos"()
+ rx317_cur."!cursor_pos"(rx317_pos)
+ $P10 = rx317_cur."ws"()
+ unless $P10, rx317_fail
+ rx317_pos = $P10."pos"()
# rx literal "="
- add $I11, rx312_pos, 1
- gt $I11, rx312_eos, rx312_fail
- sub $I11, rx312_pos, rx312_off
- substr $S10, rx312_tgt, $I11, 1
- ne $S10, "=", rx312_fail
- add rx312_pos, 1
+ add $I11, rx317_pos, 1
+ gt $I11, rx317_eos, rx317_fail
+ sub $I11, rx317_pos, rx317_off
+ substr $S10, rx317_tgt, $I11, 1
+ ne $S10, "=", rx317_fail
+ add rx317_pos, 1
# rx subrule "ws" subtype=method negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."ws"()
- unless $P10, rx312_fail
- rx312_pos = $P10."pos"()
+ rx317_cur."!cursor_pos"(rx317_pos)
+ $P10 = rx317_cur."ws"()
+ unless $P10, rx317_fail
+ rx317_pos = $P10."pos"()
# rx subrule "quantified_atom" subtype=capture negate=
- rx312_cur."!cursor_pos"(rx312_pos)
- $P10 = rx312_cur."quantified_atom"()
- unless $P10, rx312_fail
- rx312_cur."!mark_push"(0, -1, 0, $P10)
+ rx317_cur."!cursor_pos"(rx317_pos)
+ $P10 = rx317_cur."quantified_atom"()
+ unless $P10, rx317_fail
+ rx317_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("quantified_atom")
- rx312_pos = $P10."pos"()
- (rx312_rep) = rx312_cur."!mark_commit"($I322)
- rxquantr321_done:
+ rx317_pos = $P10."pos"()
+ (rx317_rep) = rx317_cur."!mark_commit"($I327)
+ rxquantr326_done:
.annotate 'line', 107
# rx pass
- rx312_cur."!cursor_pass"(rx312_pos, "metachar:sym<var>")
- rx312_cur."!cursor_debug"("PASS ", "metachar:sym<var>", " at pos=", rx312_pos)
- .return (rx312_cur)
- rx312_fail:
+ rx317_cur."!cursor_pass"(rx317_pos, "metachar:sym<var>")
+ rx317_cur."!cursor_debug"("PASS ", "metachar:sym<var>", " at pos=", rx317_pos)
+ .return (rx317_cur)
+ rx317_fail:
.annotate 'line', 3
- (rx312_rep, rx312_pos, $I10, $P10) = rx312_cur."!mark_fail"(0)
- lt rx312_pos, -1, rx312_done
- eq rx312_pos, -1, rx312_fail
+ (rx317_rep, rx317_pos, $I10, $P10) = rx317_cur."!mark_fail"(0)
+ lt rx317_pos, -1, rx317_done
+ eq rx317_pos, -1, rx317_fail
jump $I10
- rx312_done:
- rx312_cur."!cursor_fail"()
- rx312_cur."!cursor_debug"("FAIL ", "metachar:sym<var>")
- .return (rx312_cur)
+ rx317_done:
+ rx317_cur."!cursor_fail"()
+ rx317_cur."!cursor_debug"("FAIL ", "metachar:sym<var>")
+ .return (rx317_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<var>" :subid("88_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<var>" :subid("88_1275811476.7961") :method
.annotate 'line', 3
- new $P314, "ResizablePMCArray"
- push $P314, "$"
- push $P314, "$<"
- .return ($P314)
+ new $P319, "ResizablePMCArray"
+ push $P319, "$"
+ push $P319, "$<"
+ .return ($P319)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "metachar:sym<PIR>" :subid("89_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "metachar:sym<PIR>" :subid("89_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx324_tgt
- .local int rx324_pos
- .local int rx324_off
- .local int rx324_eos
- .local int rx324_rep
- .local pmc rx324_cur
- (rx324_cur, rx324_pos, rx324_tgt) = self."!cursor_start"()
- rx324_cur."!cursor_debug"("START ", "metachar:sym<PIR>")
- .lex unicode:"$\x{a2}", rx324_cur
+ .local string rx329_tgt
+ .local int rx329_pos
+ .local int rx329_off
+ .local int rx329_eos
+ .local int rx329_rep
+ .local pmc rx329_cur
+ (rx329_cur, rx329_pos, rx329_tgt) = self."!cursor_start"()
+ rx329_cur."!cursor_debug"("START ", "metachar:sym<PIR>")
+ .lex unicode:"$\x{a2}", rx329_cur
.local pmc match
.lex "$/", match
- length rx324_eos, rx324_tgt
- set rx324_off, 0
- lt rx324_pos, 2, rx324_start
- sub rx324_off, rx324_pos, 1
- substr rx324_tgt, rx324_tgt, rx324_off
- rx324_start:
+ length rx329_eos, rx329_tgt
+ gt rx329_pos, rx329_eos, rx329_done
+ set rx329_off, 0
+ lt rx329_pos, 2, rx329_start
+ sub rx329_off, rx329_pos, 1
+ substr rx329_tgt, rx329_tgt, rx329_off
+ rx329_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan327_done
- goto rxscan327_scan
- rxscan327_loop:
- ($P10) = rx324_cur."from"()
+ ne $I10, -1, rxscan332_done
+ goto rxscan332_scan
+ rxscan332_loop:
+ ($P10) = rx329_cur."from"()
inc $P10
- set rx324_pos, $P10
- ge rx324_pos, rx324_eos, rxscan327_done
- rxscan327_scan:
- set_addr $I10, rxscan327_loop
- rx324_cur."!mark_push"(0, rx324_pos, $I10)
- rxscan327_done:
+ set rx329_pos, $P10
+ ge rx329_pos, rx329_eos, rxscan332_done
+ rxscan332_scan:
+ set_addr $I10, rxscan332_loop
+ rx329_cur."!mark_push"(0, rx329_pos, $I10)
+ rxscan332_done:
.annotate 'line', 117
# rx literal ":PIR{{"
- add $I11, rx324_pos, 6
- gt $I11, rx324_eos, rx324_fail
- sub $I11, rx324_pos, rx324_off
- substr $S10, rx324_tgt, $I11, 6
- ne $S10, ":PIR{{", rx324_fail
- add rx324_pos, 6
+ add $I11, rx329_pos, 6
+ gt $I11, rx329_eos, rx329_fail
+ sub $I11, rx329_pos, rx329_off
+ substr $S10, rx329_tgt, $I11, 6
+ ne $S10, ":PIR{{", rx329_fail
+ add rx329_pos, 6
# rx subcapture "pir"
- set_addr $I10, rxcap_330_fail
- rx324_cur."!mark_push"(0, rx324_pos, $I10)
- # rx rxquantf328 ** 0..*
- set_addr $I10, rxquantf328_loop
- rx324_cur."!mark_push"(0, rx324_pos, $I10)
- goto rxquantf328_done
- rxquantf328_loop:
+ set_addr $I10, rxcap_335_fail
+ rx329_cur."!mark_push"(0, rx329_pos, $I10)
+ # rx rxquantf333 ** 0..*
+ set_addr $I10, rxquantf333_loop
+ rx329_cur."!mark_push"(0, rx329_pos, $I10)
+ goto rxquantf333_done
+ rxquantf333_loop:
# rx charclass .
- ge rx324_pos, rx324_eos, rx324_fail
- inc rx324_pos
- set_addr $I10, rxquantf328_loop
- rx324_cur."!mark_push"($I329, rx324_pos, $I10)
- rxquantf328_done:
- set_addr $I10, rxcap_330_fail
- ($I12, $I11) = rx324_cur."!mark_peek"($I10)
- rx324_cur."!cursor_pos"($I11)
- ($P10) = rx324_cur."!cursor_start"()
- $P10."!cursor_pass"(rx324_pos, "")
- rx324_cur."!mark_push"(0, -1, 0, $P10)
+ ge rx329_pos, rx329_eos, rx329_fail
+ inc rx329_pos
+ set_addr $I10, rxquantf333_loop
+ rx329_cur."!mark_push"($I334, rx329_pos, $I10)
+ rxquantf333_done:
+ set_addr $I10, rxcap_335_fail
+ ($I12, $I11) = rx329_cur."!mark_peek"($I10)
+ rx329_cur."!cursor_pos"($I11)
+ ($P10) = rx329_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx329_pos, "")
+ rx329_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("pir")
- goto rxcap_330_done
- rxcap_330_fail:
- goto rx324_fail
- rxcap_330_done:
+ goto rxcap_335_done
+ rxcap_335_fail:
+ goto rx329_fail
+ rxcap_335_done:
# rx literal "}}"
- add $I11, rx324_pos, 2
- gt $I11, rx324_eos, rx324_fail
- sub $I11, rx324_pos, rx324_off
- substr $S10, rx324_tgt, $I11, 2
- ne $S10, "}}", rx324_fail
- add rx324_pos, 2
+ add $I11, rx329_pos, 2
+ gt $I11, rx329_eos, rx329_fail
+ sub $I11, rx329_pos, rx329_off
+ substr $S10, rx329_tgt, $I11, 2
+ ne $S10, "}}", rx329_fail
+ add rx329_pos, 2
.annotate 'line', 116
# rx pass
- rx324_cur."!cursor_pass"(rx324_pos, "metachar:sym<PIR>")
- rx324_cur."!cursor_debug"("PASS ", "metachar:sym<PIR>", " at pos=", rx324_pos)
- .return (rx324_cur)
- rx324_fail:
+ rx329_cur."!cursor_pass"(rx329_pos, "metachar:sym<PIR>")
+ rx329_cur."!cursor_debug"("PASS ", "metachar:sym<PIR>", " at pos=", rx329_pos)
+ .return (rx329_cur)
+ rx329_fail:
.annotate 'line', 3
- (rx324_rep, rx324_pos, $I10, $P10) = rx324_cur."!mark_fail"(0)
- lt rx324_pos, -1, rx324_done
- eq rx324_pos, -1, rx324_fail
+ (rx329_rep, rx329_pos, $I10, $P10) = rx329_cur."!mark_fail"(0)
+ lt rx329_pos, -1, rx329_done
+ eq rx329_pos, -1, rx329_fail
jump $I10
- rx324_done:
- rx324_cur."!cursor_fail"()
- rx324_cur."!cursor_debug"("FAIL ", "metachar:sym<PIR>")
- .return (rx324_cur)
+ rx329_done:
+ rx329_cur."!cursor_fail"()
+ rx329_cur."!cursor_debug"("FAIL ", "metachar:sym<PIR>")
+ .return (rx329_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__metachar:sym<PIR>" :subid("90_1274022883.50471") :method
+.sub "!PREFIX__metachar:sym<PIR>" :subid("90_1275811476.7961") :method
.annotate 'line', 3
- new $P326, "ResizablePMCArray"
- push $P326, ":PIR{{"
- .return ($P326)
+ new $P331, "ResizablePMCArray"
+ push $P331, ":PIR{{"
+ .return ($P331)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash" :subid("91_1274022883.50471") :method
+.sub "backslash" :subid("91_1275811476.7961") :method
.annotate 'line', 120
- $P332 = self."!protoregex"("backslash")
- .return ($P332)
+ $P337 = self."!protoregex"("backslash")
+ .return ($P337)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash" :subid("92_1274022883.50471") :method
+.sub "!PREFIX__backslash" :subid("92_1275811476.7961") :method
.annotate 'line', 120
- $P334 = self."!PREFIX__!protoregex"("backslash")
- .return ($P334)
+ $P339 = self."!PREFIX__!protoregex"("backslash")
+ .return ($P339)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<w>" :subid("93_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<w>" :subid("93_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx336_tgt
- .local int rx336_pos
- .local int rx336_off
- .local int rx336_eos
- .local int rx336_rep
- .local pmc rx336_cur
- (rx336_cur, rx336_pos, rx336_tgt) = self."!cursor_start"()
- rx336_cur."!cursor_debug"("START ", "backslash:sym<w>")
- .lex unicode:"$\x{a2}", rx336_cur
- .local pmc match
- .lex "$/", match
- length rx336_eos, rx336_tgt
- set rx336_off, 0
- lt rx336_pos, 2, rx336_start
- sub rx336_off, rx336_pos, 1
- substr rx336_tgt, rx336_tgt, rx336_off
- rx336_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan339_done
- goto rxscan339_scan
- rxscan339_loop:
- ($P10) = rx336_cur."from"()
- inc $P10
- set rx336_pos, $P10
- ge rx336_pos, rx336_eos, rxscan339_done
- rxscan339_scan:
- set_addr $I10, rxscan339_loop
- rx336_cur."!mark_push"(0, rx336_pos, $I10)
- rxscan339_done:
+ .local string rx341_tgt
+ .local int rx341_pos
+ .local int rx341_off
+ .local int rx341_eos
+ .local int rx341_rep
+ .local pmc rx341_cur
+ (rx341_cur, rx341_pos, rx341_tgt) = self."!cursor_start"()
+ rx341_cur."!cursor_debug"("START ", "backslash:sym<w>")
+ .lex unicode:"$\x{a2}", rx341_cur
+ .local pmc match
+ .lex "$/", match
+ length rx341_eos, rx341_tgt
+ gt rx341_pos, rx341_eos, rx341_done
+ set rx341_off, 0
+ lt rx341_pos, 2, rx341_start
+ sub rx341_off, rx341_pos, 1
+ substr rx341_tgt, rx341_tgt, rx341_off
+ rx341_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan344_done
+ goto rxscan344_scan
+ rxscan344_loop:
+ ($P10) = rx341_cur."from"()
+ inc $P10
+ set rx341_pos, $P10
+ ge rx341_pos, rx341_eos, rxscan344_done
+ rxscan344_scan:
+ set_addr $I10, rxscan344_loop
+ rx341_cur."!mark_push"(0, rx341_pos, $I10)
+ rxscan344_done:
.annotate 'line', 121
# rx subcapture "sym"
- set_addr $I10, rxcap_340_fail
- rx336_cur."!mark_push"(0, rx336_pos, $I10)
+ set_addr $I10, rxcap_345_fail
+ rx341_cur."!mark_push"(0, rx341_pos, $I10)
# rx enumcharlist negate=0
- ge rx336_pos, rx336_eos, rx336_fail
- sub $I10, rx336_pos, rx336_off
- substr $S10, rx336_tgt, $I10, 1
+ ge rx341_pos, rx341_eos, rx341_fail
+ sub $I10, rx341_pos, rx341_off
+ substr $S10, rx341_tgt, $I10, 1
index $I11, "dswnDSWN", $S10
- lt $I11, 0, rx336_fail
- inc rx336_pos
- set_addr $I10, rxcap_340_fail
- ($I12, $I11) = rx336_cur."!mark_peek"($I10)
- rx336_cur."!cursor_pos"($I11)
- ($P10) = rx336_cur."!cursor_start"()
- $P10."!cursor_pass"(rx336_pos, "")
- rx336_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx341_fail
+ inc rx341_pos
+ set_addr $I10, rxcap_345_fail
+ ($I12, $I11) = rx341_cur."!mark_peek"($I10)
+ rx341_cur."!cursor_pos"($I11)
+ ($P10) = rx341_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx341_pos, "")
+ rx341_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_340_done
- rxcap_340_fail:
- goto rx336_fail
- rxcap_340_done:
+ goto rxcap_345_done
+ rxcap_345_fail:
+ goto rx341_fail
+ rxcap_345_done:
# rx pass
- rx336_cur."!cursor_pass"(rx336_pos, "backslash:sym<w>")
- rx336_cur."!cursor_debug"("PASS ", "backslash:sym<w>", " at pos=", rx336_pos)
- .return (rx336_cur)
- rx336_fail:
+ rx341_cur."!cursor_pass"(rx341_pos, "backslash:sym<w>")
+ rx341_cur."!cursor_debug"("PASS ", "backslash:sym<w>", " at pos=", rx341_pos)
+ .return (rx341_cur)
+ rx341_fail:
.annotate 'line', 3
- (rx336_rep, rx336_pos, $I10, $P10) = rx336_cur."!mark_fail"(0)
- lt rx336_pos, -1, rx336_done
- eq rx336_pos, -1, rx336_fail
+ (rx341_rep, rx341_pos, $I10, $P10) = rx341_cur."!mark_fail"(0)
+ lt rx341_pos, -1, rx341_done
+ eq rx341_pos, -1, rx341_fail
jump $I10
- rx336_done:
- rx336_cur."!cursor_fail"()
- rx336_cur."!cursor_debug"("FAIL ", "backslash:sym<w>")
- .return (rx336_cur)
+ rx341_done:
+ rx341_cur."!cursor_fail"()
+ rx341_cur."!cursor_debug"("FAIL ", "backslash:sym<w>")
+ .return (rx341_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<w>" :subid("94_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<w>" :subid("94_1275811476.7961") :method
.annotate 'line', 3
- new $P338, "ResizablePMCArray"
- push $P338, "N"
- push $P338, "W"
- push $P338, "S"
- push $P338, "D"
- push $P338, "n"
- push $P338, "w"
- push $P338, "s"
- push $P338, "d"
- .return ($P338)
+ new $P343, "ResizablePMCArray"
+ push $P343, "N"
+ push $P343, "W"
+ push $P343, "S"
+ push $P343, "D"
+ push $P343, "n"
+ push $P343, "w"
+ push $P343, "s"
+ push $P343, "d"
+ .return ($P343)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<b>" :subid("95_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<b>" :subid("95_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx342_tgt
- .local int rx342_pos
- .local int rx342_off
- .local int rx342_eos
- .local int rx342_rep
- .local pmc rx342_cur
- (rx342_cur, rx342_pos, rx342_tgt) = self."!cursor_start"()
- rx342_cur."!cursor_debug"("START ", "backslash:sym<b>")
- .lex unicode:"$\x{a2}", rx342_cur
+ .local string rx347_tgt
+ .local int rx347_pos
+ .local int rx347_off
+ .local int rx347_eos
+ .local int rx347_rep
+ .local pmc rx347_cur
+ (rx347_cur, rx347_pos, rx347_tgt) = self."!cursor_start"()
+ rx347_cur."!cursor_debug"("START ", "backslash:sym<b>")
+ .lex unicode:"$\x{a2}", rx347_cur
.local pmc match
.lex "$/", match
- length rx342_eos, rx342_tgt
- set rx342_off, 0
- lt rx342_pos, 2, rx342_start
- sub rx342_off, rx342_pos, 1
- substr rx342_tgt, rx342_tgt, rx342_off
- rx342_start:
+ length rx347_eos, rx347_tgt
+ gt rx347_pos, rx347_eos, rx347_done
+ set rx347_off, 0
+ lt rx347_pos, 2, rx347_start
+ sub rx347_off, rx347_pos, 1
+ substr rx347_tgt, rx347_tgt, rx347_off
+ rx347_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan345_done
- goto rxscan345_scan
- rxscan345_loop:
- ($P10) = rx342_cur."from"()
+ ne $I10, -1, rxscan350_done
+ goto rxscan350_scan
+ rxscan350_loop:
+ ($P10) = rx347_cur."from"()
inc $P10
- set rx342_pos, $P10
- ge rx342_pos, rx342_eos, rxscan345_done
- rxscan345_scan:
- set_addr $I10, rxscan345_loop
- rx342_cur."!mark_push"(0, rx342_pos, $I10)
- rxscan345_done:
+ set rx347_pos, $P10
+ ge rx347_pos, rx347_eos, rxscan350_done
+ rxscan350_scan:
+ set_addr $I10, rxscan350_loop
+ rx347_cur."!mark_push"(0, rx347_pos, $I10)
+ rxscan350_done:
.annotate 'line', 122
# rx subcapture "sym"
- set_addr $I10, rxcap_346_fail
- rx342_cur."!mark_push"(0, rx342_pos, $I10)
+ set_addr $I10, rxcap_351_fail
+ rx347_cur."!mark_push"(0, rx347_pos, $I10)
# rx enumcharlist negate=0
- ge rx342_pos, rx342_eos, rx342_fail
- sub $I10, rx342_pos, rx342_off
- substr $S10, rx342_tgt, $I10, 1
+ ge rx347_pos, rx347_eos, rx347_fail
+ sub $I10, rx347_pos, rx347_off
+ substr $S10, rx347_tgt, $I10, 1
index $I11, "bB", $S10
- lt $I11, 0, rx342_fail
- inc rx342_pos
- set_addr $I10, rxcap_346_fail
- ($I12, $I11) = rx342_cur."!mark_peek"($I10)
- rx342_cur."!cursor_pos"($I11)
- ($P10) = rx342_cur."!cursor_start"()
- $P10."!cursor_pass"(rx342_pos, "")
- rx342_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx347_fail
+ inc rx347_pos
+ set_addr $I10, rxcap_351_fail
+ ($I12, $I11) = rx347_cur."!mark_peek"($I10)
+ rx347_cur."!cursor_pos"($I11)
+ ($P10) = rx347_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx347_pos, "")
+ rx347_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_346_done
- rxcap_346_fail:
- goto rx342_fail
- rxcap_346_done:
+ goto rxcap_351_done
+ rxcap_351_fail:
+ goto rx347_fail
+ rxcap_351_done:
# rx pass
- rx342_cur."!cursor_pass"(rx342_pos, "backslash:sym<b>")
- rx342_cur."!cursor_debug"("PASS ", "backslash:sym<b>", " at pos=", rx342_pos)
- .return (rx342_cur)
- rx342_fail:
+ rx347_cur."!cursor_pass"(rx347_pos, "backslash:sym<b>")
+ rx347_cur."!cursor_debug"("PASS ", "backslash:sym<b>", " at pos=", rx347_pos)
+ .return (rx347_cur)
+ rx347_fail:
.annotate 'line', 3
- (rx342_rep, rx342_pos, $I10, $P10) = rx342_cur."!mark_fail"(0)
- lt rx342_pos, -1, rx342_done
- eq rx342_pos, -1, rx342_fail
+ (rx347_rep, rx347_pos, $I10, $P10) = rx347_cur."!mark_fail"(0)
+ lt rx347_pos, -1, rx347_done
+ eq rx347_pos, -1, rx347_fail
jump $I10
- rx342_done:
- rx342_cur."!cursor_fail"()
- rx342_cur."!cursor_debug"("FAIL ", "backslash:sym<b>")
- .return (rx342_cur)
+ rx347_done:
+ rx347_cur."!cursor_fail"()
+ rx347_cur."!cursor_debug"("FAIL ", "backslash:sym<b>")
+ .return (rx347_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<b>" :subid("96_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<b>" :subid("96_1275811476.7961") :method
.annotate 'line', 3
- new $P344, "ResizablePMCArray"
- push $P344, "B"
- push $P344, "b"
- .return ($P344)
+ new $P349, "ResizablePMCArray"
+ push $P349, "B"
+ push $P349, "b"
+ .return ($P349)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<e>" :subid("97_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<e>" :subid("97_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx348_tgt
- .local int rx348_pos
- .local int rx348_off
- .local int rx348_eos
- .local int rx348_rep
- .local pmc rx348_cur
- (rx348_cur, rx348_pos, rx348_tgt) = self."!cursor_start"()
- rx348_cur."!cursor_debug"("START ", "backslash:sym<e>")
- .lex unicode:"$\x{a2}", rx348_cur
+ .local string rx353_tgt
+ .local int rx353_pos
+ .local int rx353_off
+ .local int rx353_eos
+ .local int rx353_rep
+ .local pmc rx353_cur
+ (rx353_cur, rx353_pos, rx353_tgt) = self."!cursor_start"()
+ rx353_cur."!cursor_debug"("START ", "backslash:sym<e>")
+ .lex unicode:"$\x{a2}", rx353_cur
.local pmc match
.lex "$/", match
- length rx348_eos, rx348_tgt
- set rx348_off, 0
- lt rx348_pos, 2, rx348_start
- sub rx348_off, rx348_pos, 1
- substr rx348_tgt, rx348_tgt, rx348_off
- rx348_start:
+ length rx353_eos, rx353_tgt
+ gt rx353_pos, rx353_eos, rx353_done
+ set rx353_off, 0
+ lt rx353_pos, 2, rx353_start
+ sub rx353_off, rx353_pos, 1
+ substr rx353_tgt, rx353_tgt, rx353_off
+ rx353_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan351_done
- goto rxscan351_scan
- rxscan351_loop:
- ($P10) = rx348_cur."from"()
+ ne $I10, -1, rxscan356_done
+ goto rxscan356_scan
+ rxscan356_loop:
+ ($P10) = rx353_cur."from"()
inc $P10
- set rx348_pos, $P10
- ge rx348_pos, rx348_eos, rxscan351_done
- rxscan351_scan:
- set_addr $I10, rxscan351_loop
- rx348_cur."!mark_push"(0, rx348_pos, $I10)
- rxscan351_done:
+ set rx353_pos, $P10
+ ge rx353_pos, rx353_eos, rxscan356_done
+ rxscan356_scan:
+ set_addr $I10, rxscan356_loop
+ rx353_cur."!mark_push"(0, rx353_pos, $I10)
+ rxscan356_done:
.annotate 'line', 123
# rx subcapture "sym"
- set_addr $I10, rxcap_352_fail
- rx348_cur."!mark_push"(0, rx348_pos, $I10)
+ set_addr $I10, rxcap_357_fail
+ rx353_cur."!mark_push"(0, rx353_pos, $I10)
# rx enumcharlist negate=0
- ge rx348_pos, rx348_eos, rx348_fail
- sub $I10, rx348_pos, rx348_off
- substr $S10, rx348_tgt, $I10, 1
+ ge rx353_pos, rx353_eos, rx353_fail
+ sub $I10, rx353_pos, rx353_off
+ substr $S10, rx353_tgt, $I10, 1
index $I11, "eE", $S10
- lt $I11, 0, rx348_fail
- inc rx348_pos
- set_addr $I10, rxcap_352_fail
- ($I12, $I11) = rx348_cur."!mark_peek"($I10)
- rx348_cur."!cursor_pos"($I11)
- ($P10) = rx348_cur."!cursor_start"()
- $P10."!cursor_pass"(rx348_pos, "")
- rx348_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx353_fail
+ inc rx353_pos
+ set_addr $I10, rxcap_357_fail
+ ($I12, $I11) = rx353_cur."!mark_peek"($I10)
+ rx353_cur."!cursor_pos"($I11)
+ ($P10) = rx353_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx353_pos, "")
+ rx353_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_352_done
- rxcap_352_fail:
- goto rx348_fail
- rxcap_352_done:
+ goto rxcap_357_done
+ rxcap_357_fail:
+ goto rx353_fail
+ rxcap_357_done:
# rx pass
- rx348_cur."!cursor_pass"(rx348_pos, "backslash:sym<e>")
- rx348_cur."!cursor_debug"("PASS ", "backslash:sym<e>", " at pos=", rx348_pos)
- .return (rx348_cur)
- rx348_fail:
+ rx353_cur."!cursor_pass"(rx353_pos, "backslash:sym<e>")
+ rx353_cur."!cursor_debug"("PASS ", "backslash:sym<e>", " at pos=", rx353_pos)
+ .return (rx353_cur)
+ rx353_fail:
.annotate 'line', 3
- (rx348_rep, rx348_pos, $I10, $P10) = rx348_cur."!mark_fail"(0)
- lt rx348_pos, -1, rx348_done
- eq rx348_pos, -1, rx348_fail
+ (rx353_rep, rx353_pos, $I10, $P10) = rx353_cur."!mark_fail"(0)
+ lt rx353_pos, -1, rx353_done
+ eq rx353_pos, -1, rx353_fail
jump $I10
- rx348_done:
- rx348_cur."!cursor_fail"()
- rx348_cur."!cursor_debug"("FAIL ", "backslash:sym<e>")
- .return (rx348_cur)
+ rx353_done:
+ rx353_cur."!cursor_fail"()
+ rx353_cur."!cursor_debug"("FAIL ", "backslash:sym<e>")
+ .return (rx353_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<e>" :subid("98_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<e>" :subid("98_1275811476.7961") :method
.annotate 'line', 3
- new $P350, "ResizablePMCArray"
- push $P350, "E"
- push $P350, "e"
- .return ($P350)
+ new $P355, "ResizablePMCArray"
+ push $P355, "E"
+ push $P355, "e"
+ .return ($P355)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<f>" :subid("99_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<f>" :subid("99_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx354_tgt
- .local int rx354_pos
- .local int rx354_off
- .local int rx354_eos
- .local int rx354_rep
- .local pmc rx354_cur
- (rx354_cur, rx354_pos, rx354_tgt) = self."!cursor_start"()
- rx354_cur."!cursor_debug"("START ", "backslash:sym<f>")
- .lex unicode:"$\x{a2}", rx354_cur
+ .local string rx359_tgt
+ .local int rx359_pos
+ .local int rx359_off
+ .local int rx359_eos
+ .local int rx359_rep
+ .local pmc rx359_cur
+ (rx359_cur, rx359_pos, rx359_tgt) = self."!cursor_start"()
+ rx359_cur."!cursor_debug"("START ", "backslash:sym<f>")
+ .lex unicode:"$\x{a2}", rx359_cur
.local pmc match
.lex "$/", match
- length rx354_eos, rx354_tgt
- set rx354_off, 0
- lt rx354_pos, 2, rx354_start
- sub rx354_off, rx354_pos, 1
- substr rx354_tgt, rx354_tgt, rx354_off
- rx354_start:
+ length rx359_eos, rx359_tgt
+ gt rx359_pos, rx359_eos, rx359_done
+ set rx359_off, 0
+ lt rx359_pos, 2, rx359_start
+ sub rx359_off, rx359_pos, 1
+ substr rx359_tgt, rx359_tgt, rx359_off
+ rx359_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan357_done
- goto rxscan357_scan
- rxscan357_loop:
- ($P10) = rx354_cur."from"()
+ ne $I10, -1, rxscan362_done
+ goto rxscan362_scan
+ rxscan362_loop:
+ ($P10) = rx359_cur."from"()
inc $P10
- set rx354_pos, $P10
- ge rx354_pos, rx354_eos, rxscan357_done
- rxscan357_scan:
- set_addr $I10, rxscan357_loop
- rx354_cur."!mark_push"(0, rx354_pos, $I10)
- rxscan357_done:
+ set rx359_pos, $P10
+ ge rx359_pos, rx359_eos, rxscan362_done
+ rxscan362_scan:
+ set_addr $I10, rxscan362_loop
+ rx359_cur."!mark_push"(0, rx359_pos, $I10)
+ rxscan362_done:
.annotate 'line', 124
# rx subcapture "sym"
- set_addr $I10, rxcap_358_fail
- rx354_cur."!mark_push"(0, rx354_pos, $I10)
+ set_addr $I10, rxcap_363_fail
+ rx359_cur."!mark_push"(0, rx359_pos, $I10)
# rx enumcharlist negate=0
- ge rx354_pos, rx354_eos, rx354_fail
- sub $I10, rx354_pos, rx354_off
- substr $S10, rx354_tgt, $I10, 1
+ ge rx359_pos, rx359_eos, rx359_fail
+ sub $I10, rx359_pos, rx359_off
+ substr $S10, rx359_tgt, $I10, 1
index $I11, "fF", $S10
- lt $I11, 0, rx354_fail
- inc rx354_pos
- set_addr $I10, rxcap_358_fail
- ($I12, $I11) = rx354_cur."!mark_peek"($I10)
- rx354_cur."!cursor_pos"($I11)
- ($P10) = rx354_cur."!cursor_start"()
- $P10."!cursor_pass"(rx354_pos, "")
- rx354_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx359_fail
+ inc rx359_pos
+ set_addr $I10, rxcap_363_fail
+ ($I12, $I11) = rx359_cur."!mark_peek"($I10)
+ rx359_cur."!cursor_pos"($I11)
+ ($P10) = rx359_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx359_pos, "")
+ rx359_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_358_done
- rxcap_358_fail:
- goto rx354_fail
- rxcap_358_done:
+ goto rxcap_363_done
+ rxcap_363_fail:
+ goto rx359_fail
+ rxcap_363_done:
# rx pass
- rx354_cur."!cursor_pass"(rx354_pos, "backslash:sym<f>")
- rx354_cur."!cursor_debug"("PASS ", "backslash:sym<f>", " at pos=", rx354_pos)
- .return (rx354_cur)
- rx354_fail:
+ rx359_cur."!cursor_pass"(rx359_pos, "backslash:sym<f>")
+ rx359_cur."!cursor_debug"("PASS ", "backslash:sym<f>", " at pos=", rx359_pos)
+ .return (rx359_cur)
+ rx359_fail:
.annotate 'line', 3
- (rx354_rep, rx354_pos, $I10, $P10) = rx354_cur."!mark_fail"(0)
- lt rx354_pos, -1, rx354_done
- eq rx354_pos, -1, rx354_fail
+ (rx359_rep, rx359_pos, $I10, $P10) = rx359_cur."!mark_fail"(0)
+ lt rx359_pos, -1, rx359_done
+ eq rx359_pos, -1, rx359_fail
jump $I10
- rx354_done:
- rx354_cur."!cursor_fail"()
- rx354_cur."!cursor_debug"("FAIL ", "backslash:sym<f>")
- .return (rx354_cur)
+ rx359_done:
+ rx359_cur."!cursor_fail"()
+ rx359_cur."!cursor_debug"("FAIL ", "backslash:sym<f>")
+ .return (rx359_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<f>" :subid("100_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<f>" :subid("100_1275811476.7961") :method
.annotate 'line', 3
- new $P356, "ResizablePMCArray"
- push $P356, "F"
- push $P356, "f"
- .return ($P356)
+ new $P361, "ResizablePMCArray"
+ push $P361, "F"
+ push $P361, "f"
+ .return ($P361)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<h>" :subid("101_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<h>" :subid("101_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx360_tgt
- .local int rx360_pos
- .local int rx360_off
- .local int rx360_eos
- .local int rx360_rep
- .local pmc rx360_cur
- (rx360_cur, rx360_pos, rx360_tgt) = self."!cursor_start"()
- rx360_cur."!cursor_debug"("START ", "backslash:sym<h>")
- .lex unicode:"$\x{a2}", rx360_cur
- .local pmc match
- .lex "$/", match
- length rx360_eos, rx360_tgt
- set rx360_off, 0
- lt rx360_pos, 2, rx360_start
- sub rx360_off, rx360_pos, 1
- substr rx360_tgt, rx360_tgt, rx360_off
- rx360_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan363_done
- goto rxscan363_scan
- rxscan363_loop:
- ($P10) = rx360_cur."from"()
- inc $P10
- set rx360_pos, $P10
- ge rx360_pos, rx360_eos, rxscan363_done
- rxscan363_scan:
- set_addr $I10, rxscan363_loop
- rx360_cur."!mark_push"(0, rx360_pos, $I10)
- rxscan363_done:
+ .local string rx365_tgt
+ .local int rx365_pos
+ .local int rx365_off
+ .local int rx365_eos
+ .local int rx365_rep
+ .local pmc rx365_cur
+ (rx365_cur, rx365_pos, rx365_tgt) = self."!cursor_start"()
+ rx365_cur."!cursor_debug"("START ", "backslash:sym<h>")
+ .lex unicode:"$\x{a2}", rx365_cur
+ .local pmc match
+ .lex "$/", match
+ length rx365_eos, rx365_tgt
+ gt rx365_pos, rx365_eos, rx365_done
+ set rx365_off, 0
+ lt rx365_pos, 2, rx365_start
+ sub rx365_off, rx365_pos, 1
+ substr rx365_tgt, rx365_tgt, rx365_off
+ rx365_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan368_done
+ goto rxscan368_scan
+ rxscan368_loop:
+ ($P10) = rx365_cur."from"()
+ inc $P10
+ set rx365_pos, $P10
+ ge rx365_pos, rx365_eos, rxscan368_done
+ rxscan368_scan:
+ set_addr $I10, rxscan368_loop
+ rx365_cur."!mark_push"(0, rx365_pos, $I10)
+ rxscan368_done:
.annotate 'line', 125
# rx subcapture "sym"
- set_addr $I10, rxcap_364_fail
- rx360_cur."!mark_push"(0, rx360_pos, $I10)
+ set_addr $I10, rxcap_369_fail
+ rx365_cur."!mark_push"(0, rx365_pos, $I10)
# rx enumcharlist negate=0
- ge rx360_pos, rx360_eos, rx360_fail
- sub $I10, rx360_pos, rx360_off
- substr $S10, rx360_tgt, $I10, 1
+ ge rx365_pos, rx365_eos, rx365_fail
+ sub $I10, rx365_pos, rx365_off
+ substr $S10, rx365_tgt, $I10, 1
index $I11, "hH", $S10
- lt $I11, 0, rx360_fail
- inc rx360_pos
- set_addr $I10, rxcap_364_fail
- ($I12, $I11) = rx360_cur."!mark_peek"($I10)
- rx360_cur."!cursor_pos"($I11)
- ($P10) = rx360_cur."!cursor_start"()
- $P10."!cursor_pass"(rx360_pos, "")
- rx360_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx365_fail
+ inc rx365_pos
+ set_addr $I10, rxcap_369_fail
+ ($I12, $I11) = rx365_cur."!mark_peek"($I10)
+ rx365_cur."!cursor_pos"($I11)
+ ($P10) = rx365_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx365_pos, "")
+ rx365_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_364_done
- rxcap_364_fail:
- goto rx360_fail
- rxcap_364_done:
+ goto rxcap_369_done
+ rxcap_369_fail:
+ goto rx365_fail
+ rxcap_369_done:
# rx pass
- rx360_cur."!cursor_pass"(rx360_pos, "backslash:sym<h>")
- rx360_cur."!cursor_debug"("PASS ", "backslash:sym<h>", " at pos=", rx360_pos)
- .return (rx360_cur)
- rx360_fail:
+ rx365_cur."!cursor_pass"(rx365_pos, "backslash:sym<h>")
+ rx365_cur."!cursor_debug"("PASS ", "backslash:sym<h>", " at pos=", rx365_pos)
+ .return (rx365_cur)
+ rx365_fail:
.annotate 'line', 3
- (rx360_rep, rx360_pos, $I10, $P10) = rx360_cur."!mark_fail"(0)
- lt rx360_pos, -1, rx360_done
- eq rx360_pos, -1, rx360_fail
+ (rx365_rep, rx365_pos, $I10, $P10) = rx365_cur."!mark_fail"(0)
+ lt rx365_pos, -1, rx365_done
+ eq rx365_pos, -1, rx365_fail
jump $I10
- rx360_done:
- rx360_cur."!cursor_fail"()
- rx360_cur."!cursor_debug"("FAIL ", "backslash:sym<h>")
- .return (rx360_cur)
+ rx365_done:
+ rx365_cur."!cursor_fail"()
+ rx365_cur."!cursor_debug"("FAIL ", "backslash:sym<h>")
+ .return (rx365_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<h>" :subid("102_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<h>" :subid("102_1275811476.7961") :method
.annotate 'line', 3
- new $P362, "ResizablePMCArray"
- push $P362, "H"
- push $P362, "h"
- .return ($P362)
+ new $P367, "ResizablePMCArray"
+ push $P367, "H"
+ push $P367, "h"
+ .return ($P367)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<r>" :subid("103_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<r>" :subid("103_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx366_tgt
- .local int rx366_pos
- .local int rx366_off
- .local int rx366_eos
- .local int rx366_rep
- .local pmc rx366_cur
- (rx366_cur, rx366_pos, rx366_tgt) = self."!cursor_start"()
- rx366_cur."!cursor_debug"("START ", "backslash:sym<r>")
- .lex unicode:"$\x{a2}", rx366_cur
+ .local string rx371_tgt
+ .local int rx371_pos
+ .local int rx371_off
+ .local int rx371_eos
+ .local int rx371_rep
+ .local pmc rx371_cur
+ (rx371_cur, rx371_pos, rx371_tgt) = self."!cursor_start"()
+ rx371_cur."!cursor_debug"("START ", "backslash:sym<r>")
+ .lex unicode:"$\x{a2}", rx371_cur
.local pmc match
.lex "$/", match
- length rx366_eos, rx366_tgt
- set rx366_off, 0
- lt rx366_pos, 2, rx366_start
- sub rx366_off, rx366_pos, 1
- substr rx366_tgt, rx366_tgt, rx366_off
- rx366_start:
+ length rx371_eos, rx371_tgt
+ gt rx371_pos, rx371_eos, rx371_done
+ set rx371_off, 0
+ lt rx371_pos, 2, rx371_start
+ sub rx371_off, rx371_pos, 1
+ substr rx371_tgt, rx371_tgt, rx371_off
+ rx371_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan369_done
- goto rxscan369_scan
- rxscan369_loop:
- ($P10) = rx366_cur."from"()
+ ne $I10, -1, rxscan374_done
+ goto rxscan374_scan
+ rxscan374_loop:
+ ($P10) = rx371_cur."from"()
inc $P10
- set rx366_pos, $P10
- ge rx366_pos, rx366_eos, rxscan369_done
- rxscan369_scan:
- set_addr $I10, rxscan369_loop
- rx366_cur."!mark_push"(0, rx366_pos, $I10)
- rxscan369_done:
+ set rx371_pos, $P10
+ ge rx371_pos, rx371_eos, rxscan374_done
+ rxscan374_scan:
+ set_addr $I10, rxscan374_loop
+ rx371_cur."!mark_push"(0, rx371_pos, $I10)
+ rxscan374_done:
.annotate 'line', 126
# rx subcapture "sym"
- set_addr $I10, rxcap_370_fail
- rx366_cur."!mark_push"(0, rx366_pos, $I10)
+ set_addr $I10, rxcap_375_fail
+ rx371_cur."!mark_push"(0, rx371_pos, $I10)
# rx enumcharlist negate=0
- ge rx366_pos, rx366_eos, rx366_fail
- sub $I10, rx366_pos, rx366_off
- substr $S10, rx366_tgt, $I10, 1
+ ge rx371_pos, rx371_eos, rx371_fail
+ sub $I10, rx371_pos, rx371_off
+ substr $S10, rx371_tgt, $I10, 1
index $I11, "rR", $S10
- lt $I11, 0, rx366_fail
- inc rx366_pos
- set_addr $I10, rxcap_370_fail
- ($I12, $I11) = rx366_cur."!mark_peek"($I10)
- rx366_cur."!cursor_pos"($I11)
- ($P10) = rx366_cur."!cursor_start"()
- $P10."!cursor_pass"(rx366_pos, "")
- rx366_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx371_fail
+ inc rx371_pos
+ set_addr $I10, rxcap_375_fail
+ ($I12, $I11) = rx371_cur."!mark_peek"($I10)
+ rx371_cur."!cursor_pos"($I11)
+ ($P10) = rx371_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx371_pos, "")
+ rx371_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_370_done
- rxcap_370_fail:
- goto rx366_fail
- rxcap_370_done:
+ goto rxcap_375_done
+ rxcap_375_fail:
+ goto rx371_fail
+ rxcap_375_done:
# rx pass
- rx366_cur."!cursor_pass"(rx366_pos, "backslash:sym<r>")
- rx366_cur."!cursor_debug"("PASS ", "backslash:sym<r>", " at pos=", rx366_pos)
- .return (rx366_cur)
- rx366_fail:
+ rx371_cur."!cursor_pass"(rx371_pos, "backslash:sym<r>")
+ rx371_cur."!cursor_debug"("PASS ", "backslash:sym<r>", " at pos=", rx371_pos)
+ .return (rx371_cur)
+ rx371_fail:
.annotate 'line', 3
- (rx366_rep, rx366_pos, $I10, $P10) = rx366_cur."!mark_fail"(0)
- lt rx366_pos, -1, rx366_done
- eq rx366_pos, -1, rx366_fail
+ (rx371_rep, rx371_pos, $I10, $P10) = rx371_cur."!mark_fail"(0)
+ lt rx371_pos, -1, rx371_done
+ eq rx371_pos, -1, rx371_fail
jump $I10
- rx366_done:
- rx366_cur."!cursor_fail"()
- rx366_cur."!cursor_debug"("FAIL ", "backslash:sym<r>")
- .return (rx366_cur)
+ rx371_done:
+ rx371_cur."!cursor_fail"()
+ rx371_cur."!cursor_debug"("FAIL ", "backslash:sym<r>")
+ .return (rx371_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<r>" :subid("104_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<r>" :subid("104_1275811476.7961") :method
.annotate 'line', 3
- new $P368, "ResizablePMCArray"
- push $P368, "R"
- push $P368, "r"
- .return ($P368)
+ new $P373, "ResizablePMCArray"
+ push $P373, "R"
+ push $P373, "r"
+ .return ($P373)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<t>" :subid("105_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<t>" :subid("105_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx372_tgt
- .local int rx372_pos
- .local int rx372_off
- .local int rx372_eos
- .local int rx372_rep
- .local pmc rx372_cur
- (rx372_cur, rx372_pos, rx372_tgt) = self."!cursor_start"()
- rx372_cur."!cursor_debug"("START ", "backslash:sym<t>")
- .lex unicode:"$\x{a2}", rx372_cur
+ .local string rx377_tgt
+ .local int rx377_pos
+ .local int rx377_off
+ .local int rx377_eos
+ .local int rx377_rep
+ .local pmc rx377_cur
+ (rx377_cur, rx377_pos, rx377_tgt) = self."!cursor_start"()
+ rx377_cur."!cursor_debug"("START ", "backslash:sym<t>")
+ .lex unicode:"$\x{a2}", rx377_cur
.local pmc match
.lex "$/", match
- length rx372_eos, rx372_tgt
- set rx372_off, 0
- lt rx372_pos, 2, rx372_start
- sub rx372_off, rx372_pos, 1
- substr rx372_tgt, rx372_tgt, rx372_off
- rx372_start:
+ length rx377_eos, rx377_tgt
+ gt rx377_pos, rx377_eos, rx377_done
+ set rx377_off, 0
+ lt rx377_pos, 2, rx377_start
+ sub rx377_off, rx377_pos, 1
+ substr rx377_tgt, rx377_tgt, rx377_off
+ rx377_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan375_done
- goto rxscan375_scan
- rxscan375_loop:
- ($P10) = rx372_cur."from"()
+ ne $I10, -1, rxscan380_done
+ goto rxscan380_scan
+ rxscan380_loop:
+ ($P10) = rx377_cur."from"()
inc $P10
- set rx372_pos, $P10
- ge rx372_pos, rx372_eos, rxscan375_done
- rxscan375_scan:
- set_addr $I10, rxscan375_loop
- rx372_cur."!mark_push"(0, rx372_pos, $I10)
- rxscan375_done:
+ set rx377_pos, $P10
+ ge rx377_pos, rx377_eos, rxscan380_done
+ rxscan380_scan:
+ set_addr $I10, rxscan380_loop
+ rx377_cur."!mark_push"(0, rx377_pos, $I10)
+ rxscan380_done:
.annotate 'line', 127
# rx subcapture "sym"
- set_addr $I10, rxcap_376_fail
- rx372_cur."!mark_push"(0, rx372_pos, $I10)
+ set_addr $I10, rxcap_381_fail
+ rx377_cur."!mark_push"(0, rx377_pos, $I10)
# rx enumcharlist negate=0
- ge rx372_pos, rx372_eos, rx372_fail
- sub $I10, rx372_pos, rx372_off
- substr $S10, rx372_tgt, $I10, 1
+ ge rx377_pos, rx377_eos, rx377_fail
+ sub $I10, rx377_pos, rx377_off
+ substr $S10, rx377_tgt, $I10, 1
index $I11, "tT", $S10
- lt $I11, 0, rx372_fail
- inc rx372_pos
- set_addr $I10, rxcap_376_fail
- ($I12, $I11) = rx372_cur."!mark_peek"($I10)
- rx372_cur."!cursor_pos"($I11)
- ($P10) = rx372_cur."!cursor_start"()
- $P10."!cursor_pass"(rx372_pos, "")
- rx372_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx377_fail
+ inc rx377_pos
+ set_addr $I10, rxcap_381_fail
+ ($I12, $I11) = rx377_cur."!mark_peek"($I10)
+ rx377_cur."!cursor_pos"($I11)
+ ($P10) = rx377_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx377_pos, "")
+ rx377_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_376_done
- rxcap_376_fail:
- goto rx372_fail
- rxcap_376_done:
+ goto rxcap_381_done
+ rxcap_381_fail:
+ goto rx377_fail
+ rxcap_381_done:
# rx pass
- rx372_cur."!cursor_pass"(rx372_pos, "backslash:sym<t>")
- rx372_cur."!cursor_debug"("PASS ", "backslash:sym<t>", " at pos=", rx372_pos)
- .return (rx372_cur)
- rx372_fail:
+ rx377_cur."!cursor_pass"(rx377_pos, "backslash:sym<t>")
+ rx377_cur."!cursor_debug"("PASS ", "backslash:sym<t>", " at pos=", rx377_pos)
+ .return (rx377_cur)
+ rx377_fail:
.annotate 'line', 3
- (rx372_rep, rx372_pos, $I10, $P10) = rx372_cur."!mark_fail"(0)
- lt rx372_pos, -1, rx372_done
- eq rx372_pos, -1, rx372_fail
+ (rx377_rep, rx377_pos, $I10, $P10) = rx377_cur."!mark_fail"(0)
+ lt rx377_pos, -1, rx377_done
+ eq rx377_pos, -1, rx377_fail
jump $I10
- rx372_done:
- rx372_cur."!cursor_fail"()
- rx372_cur."!cursor_debug"("FAIL ", "backslash:sym<t>")
- .return (rx372_cur)
+ rx377_done:
+ rx377_cur."!cursor_fail"()
+ rx377_cur."!cursor_debug"("FAIL ", "backslash:sym<t>")
+ .return (rx377_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<t>" :subid("106_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<t>" :subid("106_1275811476.7961") :method
.annotate 'line', 3
- new $P374, "ResizablePMCArray"
- push $P374, "T"
- push $P374, "t"
- .return ($P374)
+ new $P379, "ResizablePMCArray"
+ push $P379, "T"
+ push $P379, "t"
+ .return ($P379)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<v>" :subid("107_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<v>" :subid("107_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx378_tgt
- .local int rx378_pos
- .local int rx378_off
- .local int rx378_eos
- .local int rx378_rep
- .local pmc rx378_cur
- (rx378_cur, rx378_pos, rx378_tgt) = self."!cursor_start"()
- rx378_cur."!cursor_debug"("START ", "backslash:sym<v>")
- .lex unicode:"$\x{a2}", rx378_cur
+ .local string rx383_tgt
+ .local int rx383_pos
+ .local int rx383_off
+ .local int rx383_eos
+ .local int rx383_rep
+ .local pmc rx383_cur
+ (rx383_cur, rx383_pos, rx383_tgt) = self."!cursor_start"()
+ rx383_cur."!cursor_debug"("START ", "backslash:sym<v>")
+ .lex unicode:"$\x{a2}", rx383_cur
.local pmc match
.lex "$/", match
- length rx378_eos, rx378_tgt
- set rx378_off, 0
- lt rx378_pos, 2, rx378_start
- sub rx378_off, rx378_pos, 1
- substr rx378_tgt, rx378_tgt, rx378_off
- rx378_start:
+ length rx383_eos, rx383_tgt
+ gt rx383_pos, rx383_eos, rx383_done
+ set rx383_off, 0
+ lt rx383_pos, 2, rx383_start
+ sub rx383_off, rx383_pos, 1
+ substr rx383_tgt, rx383_tgt, rx383_off
+ rx383_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan381_done
- goto rxscan381_scan
- rxscan381_loop:
- ($P10) = rx378_cur."from"()
+ ne $I10, -1, rxscan386_done
+ goto rxscan386_scan
+ rxscan386_loop:
+ ($P10) = rx383_cur."from"()
inc $P10
- set rx378_pos, $P10
- ge rx378_pos, rx378_eos, rxscan381_done
- rxscan381_scan:
- set_addr $I10, rxscan381_loop
- rx378_cur."!mark_push"(0, rx378_pos, $I10)
- rxscan381_done:
+ set rx383_pos, $P10
+ ge rx383_pos, rx383_eos, rxscan386_done
+ rxscan386_scan:
+ set_addr $I10, rxscan386_loop
+ rx383_cur."!mark_push"(0, rx383_pos, $I10)
+ rxscan386_done:
.annotate 'line', 128
# rx subcapture "sym"
- set_addr $I10, rxcap_382_fail
- rx378_cur."!mark_push"(0, rx378_pos, $I10)
+ set_addr $I10, rxcap_387_fail
+ rx383_cur."!mark_push"(0, rx383_pos, $I10)
# rx enumcharlist negate=0
- ge rx378_pos, rx378_eos, rx378_fail
- sub $I10, rx378_pos, rx378_off
- substr $S10, rx378_tgt, $I10, 1
+ ge rx383_pos, rx383_eos, rx383_fail
+ sub $I10, rx383_pos, rx383_off
+ substr $S10, rx383_tgt, $I10, 1
index $I11, "vV", $S10
- lt $I11, 0, rx378_fail
- inc rx378_pos
- set_addr $I10, rxcap_382_fail
- ($I12, $I11) = rx378_cur."!mark_peek"($I10)
- rx378_cur."!cursor_pos"($I11)
- ($P10) = rx378_cur."!cursor_start"()
- $P10."!cursor_pass"(rx378_pos, "")
- rx378_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx383_fail
+ inc rx383_pos
+ set_addr $I10, rxcap_387_fail
+ ($I12, $I11) = rx383_cur."!mark_peek"($I10)
+ rx383_cur."!cursor_pos"($I11)
+ ($P10) = rx383_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx383_pos, "")
+ rx383_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_382_done
- rxcap_382_fail:
- goto rx378_fail
- rxcap_382_done:
+ goto rxcap_387_done
+ rxcap_387_fail:
+ goto rx383_fail
+ rxcap_387_done:
# rx pass
- rx378_cur."!cursor_pass"(rx378_pos, "backslash:sym<v>")
- rx378_cur."!cursor_debug"("PASS ", "backslash:sym<v>", " at pos=", rx378_pos)
- .return (rx378_cur)
- rx378_fail:
+ rx383_cur."!cursor_pass"(rx383_pos, "backslash:sym<v>")
+ rx383_cur."!cursor_debug"("PASS ", "backslash:sym<v>", " at pos=", rx383_pos)
+ .return (rx383_cur)
+ rx383_fail:
.annotate 'line', 3
- (rx378_rep, rx378_pos, $I10, $P10) = rx378_cur."!mark_fail"(0)
- lt rx378_pos, -1, rx378_done
- eq rx378_pos, -1, rx378_fail
+ (rx383_rep, rx383_pos, $I10, $P10) = rx383_cur."!mark_fail"(0)
+ lt rx383_pos, -1, rx383_done
+ eq rx383_pos, -1, rx383_fail
jump $I10
- rx378_done:
- rx378_cur."!cursor_fail"()
- rx378_cur."!cursor_debug"("FAIL ", "backslash:sym<v>")
- .return (rx378_cur)
+ rx383_done:
+ rx383_cur."!cursor_fail"()
+ rx383_cur."!cursor_debug"("FAIL ", "backslash:sym<v>")
+ .return (rx383_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<v>" :subid("108_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<v>" :subid("108_1275811476.7961") :method
.annotate 'line', 3
- new $P380, "ResizablePMCArray"
- push $P380, "V"
- push $P380, "v"
- .return ($P380)
+ new $P385, "ResizablePMCArray"
+ push $P385, "V"
+ push $P385, "v"
+ .return ($P385)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<o>" :subid("109_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<o>" :subid("109_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx384_tgt
- .local int rx384_pos
- .local int rx384_off
- .local int rx384_eos
- .local int rx384_rep
- .local pmc rx384_cur
- (rx384_cur, rx384_pos, rx384_tgt) = self."!cursor_start"()
- rx384_cur."!cursor_debug"("START ", "backslash:sym<o>")
- .lex unicode:"$\x{a2}", rx384_cur
+ .local string rx389_tgt
+ .local int rx389_pos
+ .local int rx389_off
+ .local int rx389_eos
+ .local int rx389_rep
+ .local pmc rx389_cur
+ (rx389_cur, rx389_pos, rx389_tgt) = self."!cursor_start"()
+ rx389_cur."!cursor_debug"("START ", "backslash:sym<o>")
+ .lex unicode:"$\x{a2}", rx389_cur
.local pmc match
.lex "$/", match
- length rx384_eos, rx384_tgt
- set rx384_off, 0
- lt rx384_pos, 2, rx384_start
- sub rx384_off, rx384_pos, 1
- substr rx384_tgt, rx384_tgt, rx384_off
- rx384_start:
+ length rx389_eos, rx389_tgt
+ gt rx389_pos, rx389_eos, rx389_done
+ set rx389_off, 0
+ lt rx389_pos, 2, rx389_start
+ sub rx389_off, rx389_pos, 1
+ substr rx389_tgt, rx389_tgt, rx389_off
+ rx389_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan391_done
- goto rxscan391_scan
- rxscan391_loop:
- ($P10) = rx384_cur."from"()
+ ne $I10, -1, rxscan396_done
+ goto rxscan396_scan
+ rxscan396_loop:
+ ($P10) = rx389_cur."from"()
inc $P10
- set rx384_pos, $P10
- ge rx384_pos, rx384_eos, rxscan391_done
- rxscan391_scan:
- set_addr $I10, rxscan391_loop
- rx384_cur."!mark_push"(0, rx384_pos, $I10)
- rxscan391_done:
+ set rx389_pos, $P10
+ ge rx389_pos, rx389_eos, rxscan396_done
+ rxscan396_scan:
+ set_addr $I10, rxscan396_loop
+ rx389_cur."!mark_push"(0, rx389_pos, $I10)
+ rxscan396_done:
.annotate 'line', 129
# rx subcapture "sym"
- set_addr $I10, rxcap_392_fail
- rx384_cur."!mark_push"(0, rx384_pos, $I10)
+ set_addr $I10, rxcap_397_fail
+ rx389_cur."!mark_push"(0, rx389_pos, $I10)
# rx enumcharlist negate=0
- ge rx384_pos, rx384_eos, rx384_fail
- sub $I10, rx384_pos, rx384_off
- substr $S10, rx384_tgt, $I10, 1
+ ge rx389_pos, rx389_eos, rx389_fail
+ sub $I10, rx389_pos, rx389_off
+ substr $S10, rx389_tgt, $I10, 1
index $I11, "oO", $S10
- lt $I11, 0, rx384_fail
- inc rx384_pos
- set_addr $I10, rxcap_392_fail
- ($I12, $I11) = rx384_cur."!mark_peek"($I10)
- rx384_cur."!cursor_pos"($I11)
- ($P10) = rx384_cur."!cursor_start"()
- $P10."!cursor_pass"(rx384_pos, "")
- rx384_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx389_fail
+ inc rx389_pos
+ set_addr $I10, rxcap_397_fail
+ ($I12, $I11) = rx389_cur."!mark_peek"($I10)
+ rx389_cur."!cursor_pos"($I11)
+ ($P10) = rx389_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx389_pos, "")
+ rx389_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_392_done
- rxcap_392_fail:
- goto rx384_fail
- rxcap_392_done:
- alt393_0:
- set_addr $I10, alt393_1
- rx384_cur."!mark_push"(0, rx384_pos, $I10)
+ goto rxcap_397_done
+ rxcap_397_fail:
+ goto rx389_fail
+ rxcap_397_done:
+ alt398_0:
+ set_addr $I10, alt398_1
+ rx389_cur."!mark_push"(0, rx389_pos, $I10)
# rx subrule "octint" subtype=capture negate=
- rx384_cur."!cursor_pos"(rx384_pos)
- $P10 = rx384_cur."octint"()
- unless $P10, rx384_fail
- rx384_cur."!mark_push"(0, -1, 0, $P10)
+ rx389_cur."!cursor_pos"(rx389_pos)
+ $P10 = rx389_cur."octint"()
+ unless $P10, rx389_fail
+ rx389_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("octint")
- rx384_pos = $P10."pos"()
- goto alt393_end
- alt393_1:
+ rx389_pos = $P10."pos"()
+ goto alt398_end
+ alt398_1:
# rx literal "["
- add $I11, rx384_pos, 1
- gt $I11, rx384_eos, rx384_fail
- sub $I11, rx384_pos, rx384_off
- substr $S10, rx384_tgt, $I11, 1
- ne $S10, "[", rx384_fail
- add rx384_pos, 1
+ add $I11, rx389_pos, 1
+ gt $I11, rx389_eos, rx389_fail
+ sub $I11, rx389_pos, rx389_off
+ substr $S10, rx389_tgt, $I11, 1
+ ne $S10, "[", rx389_fail
+ add rx389_pos, 1
# rx subrule "octints" subtype=capture negate=
- rx384_cur."!cursor_pos"(rx384_pos)
- $P10 = rx384_cur."octints"()
- unless $P10, rx384_fail
- rx384_cur."!mark_push"(0, -1, 0, $P10)
+ rx389_cur."!cursor_pos"(rx389_pos)
+ $P10 = rx389_cur."octints"()
+ unless $P10, rx389_fail
+ rx389_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("octints")
- rx384_pos = $P10."pos"()
+ rx389_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx384_pos, 1
- gt $I11, rx384_eos, rx384_fail
- sub $I11, rx384_pos, rx384_off
- substr $S10, rx384_tgt, $I11, 1
- ne $S10, "]", rx384_fail
- add rx384_pos, 1
- alt393_end:
- # rx pass
- rx384_cur."!cursor_pass"(rx384_pos, "backslash:sym<o>")
- rx384_cur."!cursor_debug"("PASS ", "backslash:sym<o>", " at pos=", rx384_pos)
- .return (rx384_cur)
- rx384_fail:
-.annotate 'line', 3
- (rx384_rep, rx384_pos, $I10, $P10) = rx384_cur."!mark_fail"(0)
- lt rx384_pos, -1, rx384_done
- eq rx384_pos, -1, rx384_fail
- jump $I10
- rx384_done:
- rx384_cur."!cursor_fail"()
- rx384_cur."!cursor_debug"("FAIL ", "backslash:sym<o>")
- .return (rx384_cur)
+ add $I11, rx389_pos, 1
+ gt $I11, rx389_eos, rx389_fail
+ sub $I11, rx389_pos, rx389_off
+ substr $S10, rx389_tgt, $I11, 1
+ ne $S10, "]", rx389_fail
+ add rx389_pos, 1
+ alt398_end:
+ # rx pass
+ rx389_cur."!cursor_pass"(rx389_pos, "backslash:sym<o>")
+ rx389_cur."!cursor_debug"("PASS ", "backslash:sym<o>", " at pos=", rx389_pos)
+ .return (rx389_cur)
+ rx389_fail:
+.annotate 'line', 3
+ (rx389_rep, rx389_pos, $I10, $P10) = rx389_cur."!mark_fail"(0)
+ lt rx389_pos, -1, rx389_done
+ eq rx389_pos, -1, rx389_fail
+ jump $I10
+ rx389_done:
+ rx389_cur."!cursor_fail"()
+ rx389_cur."!cursor_debug"("FAIL ", "backslash:sym<o>")
+ .return (rx389_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<o>" :subid("110_1274022883.50471") :method
-.annotate 'line', 3
- $P386 = self."!PREFIX__!subrule"("octints", "O[")
- $P387 = self."!PREFIX__!subrule"("octint", "O")
- $P388 = self."!PREFIX__!subrule"("octints", "o[")
- $P389 = self."!PREFIX__!subrule"("octint", "o")
- new $P390, "ResizablePMCArray"
- push $P390, $P386
- push $P390, $P387
- push $P390, $P388
- push $P390, $P389
- .return ($P390)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<x>" :subid("111_1274022883.50471") :method :outer("11_1274022883.50471")
-.annotate 'line', 3
- .local string rx395_tgt
- .local int rx395_pos
- .local int rx395_off
- .local int rx395_eos
- .local int rx395_rep
- .local pmc rx395_cur
- (rx395_cur, rx395_pos, rx395_tgt) = self."!cursor_start"()
- rx395_cur."!cursor_debug"("START ", "backslash:sym<x>")
- .lex unicode:"$\x{a2}", rx395_cur
- .local pmc match
- .lex "$/", match
- length rx395_eos, rx395_tgt
- set rx395_off, 0
- lt rx395_pos, 2, rx395_start
- sub rx395_off, rx395_pos, 1
- substr rx395_tgt, rx395_tgt, rx395_off
- rx395_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan402_done
- goto rxscan402_scan
- rxscan402_loop:
- ($P10) = rx395_cur."from"()
- inc $P10
- set rx395_pos, $P10
- ge rx395_pos, rx395_eos, rxscan402_done
- rxscan402_scan:
- set_addr $I10, rxscan402_loop
- rx395_cur."!mark_push"(0, rx395_pos, $I10)
- rxscan402_done:
+.sub "!PREFIX__backslash:sym<o>" :subid("110_1275811476.7961") :method
+.annotate 'line', 3
+ $P391 = self."!PREFIX__!subrule"("octints", "O[")
+ $P392 = self."!PREFIX__!subrule"("octint", "O")
+ $P393 = self."!PREFIX__!subrule"("octints", "o[")
+ $P394 = self."!PREFIX__!subrule"("octint", "o")
+ new $P395, "ResizablePMCArray"
+ push $P395, $P391
+ push $P395, $P392
+ push $P395, $P393
+ push $P395, $P394
+ .return ($P395)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<x>" :subid("111_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+ .local string rx400_tgt
+ .local int rx400_pos
+ .local int rx400_off
+ .local int rx400_eos
+ .local int rx400_rep
+ .local pmc rx400_cur
+ (rx400_cur, rx400_pos, rx400_tgt) = self."!cursor_start"()
+ rx400_cur."!cursor_debug"("START ", "backslash:sym<x>")
+ .lex unicode:"$\x{a2}", rx400_cur
+ .local pmc match
+ .lex "$/", match
+ length rx400_eos, rx400_tgt
+ gt rx400_pos, rx400_eos, rx400_done
+ set rx400_off, 0
+ lt rx400_pos, 2, rx400_start
+ sub rx400_off, rx400_pos, 1
+ substr rx400_tgt, rx400_tgt, rx400_off
+ rx400_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan407_done
+ goto rxscan407_scan
+ rxscan407_loop:
+ ($P10) = rx400_cur."from"()
+ inc $P10
+ set rx400_pos, $P10
+ ge rx400_pos, rx400_eos, rxscan407_done
+ rxscan407_scan:
+ set_addr $I10, rxscan407_loop
+ rx400_cur."!mark_push"(0, rx400_pos, $I10)
+ rxscan407_done:
.annotate 'line', 130
# rx subcapture "sym"
- set_addr $I10, rxcap_403_fail
- rx395_cur."!mark_push"(0, rx395_pos, $I10)
+ set_addr $I10, rxcap_408_fail
+ rx400_cur."!mark_push"(0, rx400_pos, $I10)
# rx enumcharlist negate=0
- ge rx395_pos, rx395_eos, rx395_fail
- sub $I10, rx395_pos, rx395_off
- substr $S10, rx395_tgt, $I10, 1
+ ge rx400_pos, rx400_eos, rx400_fail
+ sub $I10, rx400_pos, rx400_off
+ substr $S10, rx400_tgt, $I10, 1
index $I11, "xX", $S10
- lt $I11, 0, rx395_fail
- inc rx395_pos
- set_addr $I10, rxcap_403_fail
- ($I12, $I11) = rx395_cur."!mark_peek"($I10)
- rx395_cur."!cursor_pos"($I11)
- ($P10) = rx395_cur."!cursor_start"()
- $P10."!cursor_pass"(rx395_pos, "")
- rx395_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx400_fail
+ inc rx400_pos
+ set_addr $I10, rxcap_408_fail
+ ($I12, $I11) = rx400_cur."!mark_peek"($I10)
+ rx400_cur."!cursor_pos"($I11)
+ ($P10) = rx400_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx400_pos, "")
+ rx400_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_403_done
- rxcap_403_fail:
- goto rx395_fail
- rxcap_403_done:
- alt404_0:
- set_addr $I10, alt404_1
- rx395_cur."!mark_push"(0, rx395_pos, $I10)
+ goto rxcap_408_done
+ rxcap_408_fail:
+ goto rx400_fail
+ rxcap_408_done:
+ alt409_0:
+ set_addr $I10, alt409_1
+ rx400_cur."!mark_push"(0, rx400_pos, $I10)
# rx subrule "hexint" subtype=capture negate=
- rx395_cur."!cursor_pos"(rx395_pos)
- $P10 = rx395_cur."hexint"()
- unless $P10, rx395_fail
- rx395_cur."!mark_push"(0, -1, 0, $P10)
+ rx400_cur."!cursor_pos"(rx400_pos)
+ $P10 = rx400_cur."hexint"()
+ unless $P10, rx400_fail
+ rx400_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("hexint")
- rx395_pos = $P10."pos"()
- goto alt404_end
- alt404_1:
+ rx400_pos = $P10."pos"()
+ goto alt409_end
+ alt409_1:
# rx literal "["
- add $I11, rx395_pos, 1
- gt $I11, rx395_eos, rx395_fail
- sub $I11, rx395_pos, rx395_off
- substr $S10, rx395_tgt, $I11, 1
- ne $S10, "[", rx395_fail
- add rx395_pos, 1
+ add $I11, rx400_pos, 1
+ gt $I11, rx400_eos, rx400_fail
+ sub $I11, rx400_pos, rx400_off
+ substr $S10, rx400_tgt, $I11, 1
+ ne $S10, "[", rx400_fail
+ add rx400_pos, 1
# rx subrule "hexints" subtype=capture negate=
- rx395_cur."!cursor_pos"(rx395_pos)
- $P10 = rx395_cur."hexints"()
- unless $P10, rx395_fail
- rx395_cur."!mark_push"(0, -1, 0, $P10)
+ rx400_cur."!cursor_pos"(rx400_pos)
+ $P10 = rx400_cur."hexints"()
+ unless $P10, rx400_fail
+ rx400_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("hexints")
- rx395_pos = $P10."pos"()
+ rx400_pos = $P10."pos"()
# rx literal "]"
- add $I11, rx395_pos, 1
- gt $I11, rx395_eos, rx395_fail
- sub $I11, rx395_pos, rx395_off
- substr $S10, rx395_tgt, $I11, 1
- ne $S10, "]", rx395_fail
- add rx395_pos, 1
- alt404_end:
- # rx pass
- rx395_cur."!cursor_pass"(rx395_pos, "backslash:sym<x>")
- rx395_cur."!cursor_debug"("PASS ", "backslash:sym<x>", " at pos=", rx395_pos)
- .return (rx395_cur)
- rx395_fail:
-.annotate 'line', 3
- (rx395_rep, rx395_pos, $I10, $P10) = rx395_cur."!mark_fail"(0)
- lt rx395_pos, -1, rx395_done
- eq rx395_pos, -1, rx395_fail
- jump $I10
- rx395_done:
- rx395_cur."!cursor_fail"()
- rx395_cur."!cursor_debug"("FAIL ", "backslash:sym<x>")
- .return (rx395_cur)
+ add $I11, rx400_pos, 1
+ gt $I11, rx400_eos, rx400_fail
+ sub $I11, rx400_pos, rx400_off
+ substr $S10, rx400_tgt, $I11, 1
+ ne $S10, "]", rx400_fail
+ add rx400_pos, 1
+ alt409_end:
+ # rx pass
+ rx400_cur."!cursor_pass"(rx400_pos, "backslash:sym<x>")
+ rx400_cur."!cursor_debug"("PASS ", "backslash:sym<x>", " at pos=", rx400_pos)
+ .return (rx400_cur)
+ rx400_fail:
+.annotate 'line', 3
+ (rx400_rep, rx400_pos, $I10, $P10) = rx400_cur."!mark_fail"(0)
+ lt rx400_pos, -1, rx400_done
+ eq rx400_pos, -1, rx400_fail
+ jump $I10
+ rx400_done:
+ rx400_cur."!cursor_fail"()
+ rx400_cur."!cursor_debug"("FAIL ", "backslash:sym<x>")
+ .return (rx400_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<x>" :subid("112_1274022883.50471") :method
-.annotate 'line', 3
- $P397 = self."!PREFIX__!subrule"("hexints", "X[")
- $P398 = self."!PREFIX__!subrule"("hexint", "X")
- $P399 = self."!PREFIX__!subrule"("hexints", "x[")
- $P400 = self."!PREFIX__!subrule"("hexint", "x")
- new $P401, "ResizablePMCArray"
- push $P401, $P397
- push $P401, $P398
- push $P401, $P399
- push $P401, $P400
- .return ($P401)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<c>" :subid("113_1274022883.50471") :method :outer("11_1274022883.50471")
-.annotate 'line', 3
- .local string rx406_tgt
- .local int rx406_pos
- .local int rx406_off
- .local int rx406_eos
- .local int rx406_rep
- .local pmc rx406_cur
- (rx406_cur, rx406_pos, rx406_tgt) = self."!cursor_start"()
- rx406_cur."!cursor_debug"("START ", "backslash:sym<c>")
- .lex unicode:"$\x{a2}", rx406_cur
- .local pmc match
- .lex "$/", match
- length rx406_eos, rx406_tgt
- set rx406_off, 0
- lt rx406_pos, 2, rx406_start
- sub rx406_off, rx406_pos, 1
- substr rx406_tgt, rx406_tgt, rx406_off
- rx406_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan411_done
- goto rxscan411_scan
- rxscan411_loop:
- ($P10) = rx406_cur."from"()
- inc $P10
- set rx406_pos, $P10
- ge rx406_pos, rx406_eos, rxscan411_done
- rxscan411_scan:
- set_addr $I10, rxscan411_loop
- rx406_cur."!mark_push"(0, rx406_pos, $I10)
- rxscan411_done:
+.sub "!PREFIX__backslash:sym<x>" :subid("112_1275811476.7961") :method
+.annotate 'line', 3
+ $P402 = self."!PREFIX__!subrule"("hexints", "X[")
+ $P403 = self."!PREFIX__!subrule"("hexint", "X")
+ $P404 = self."!PREFIX__!subrule"("hexints", "x[")
+ $P405 = self."!PREFIX__!subrule"("hexint", "x")
+ new $P406, "ResizablePMCArray"
+ push $P406, $P402
+ push $P406, $P403
+ push $P406, $P404
+ push $P406, $P405
+ .return ($P406)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "backslash:sym<c>" :subid("113_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+ .local string rx411_tgt
+ .local int rx411_pos
+ .local int rx411_off
+ .local int rx411_eos
+ .local int rx411_rep
+ .local pmc rx411_cur
+ (rx411_cur, rx411_pos, rx411_tgt) = self."!cursor_start"()
+ rx411_cur."!cursor_debug"("START ", "backslash:sym<c>")
+ .lex unicode:"$\x{a2}", rx411_cur
+ .local pmc match
+ .lex "$/", match
+ length rx411_eos, rx411_tgt
+ gt rx411_pos, rx411_eos, rx411_done
+ set rx411_off, 0
+ lt rx411_pos, 2, rx411_start
+ sub rx411_off, rx411_pos, 1
+ substr rx411_tgt, rx411_tgt, rx411_off
+ rx411_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan416_done
+ goto rxscan416_scan
+ rxscan416_loop:
+ ($P10) = rx411_cur."from"()
+ inc $P10
+ set rx411_pos, $P10
+ ge rx411_pos, rx411_eos, rxscan416_done
+ rxscan416_scan:
+ set_addr $I10, rxscan416_loop
+ rx411_cur."!mark_push"(0, rx411_pos, $I10)
+ rxscan416_done:
.annotate 'line', 131
# rx subcapture "sym"
- set_addr $I10, rxcap_412_fail
- rx406_cur."!mark_push"(0, rx406_pos, $I10)
+ set_addr $I10, rxcap_417_fail
+ rx411_cur."!mark_push"(0, rx411_pos, $I10)
# rx enumcharlist negate=0
- ge rx406_pos, rx406_eos, rx406_fail
- sub $I10, rx406_pos, rx406_off
- substr $S10, rx406_tgt, $I10, 1
+ ge rx411_pos, rx411_eos, rx411_fail
+ sub $I10, rx411_pos, rx411_off
+ substr $S10, rx411_tgt, $I10, 1
index $I11, "cC", $S10
- lt $I11, 0, rx406_fail
- inc rx406_pos
- set_addr $I10, rxcap_412_fail
- ($I12, $I11) = rx406_cur."!mark_peek"($I10)
- rx406_cur."!cursor_pos"($I11)
- ($P10) = rx406_cur."!cursor_start"()
- $P10."!cursor_pass"(rx406_pos, "")
- rx406_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, 0, rx411_fail
+ inc rx411_pos
+ set_addr $I10, rxcap_417_fail
+ ($I12, $I11) = rx411_cur."!mark_peek"($I10)
+ rx411_cur."!cursor_pos"($I11)
+ ($P10) = rx411_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx411_pos, "")
+ rx411_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_412_done
- rxcap_412_fail:
- goto rx406_fail
- rxcap_412_done:
+ goto rxcap_417_done
+ rxcap_417_fail:
+ goto rx411_fail
+ rxcap_417_done:
# rx subrule "charspec" subtype=capture negate=
- rx406_cur."!cursor_pos"(rx406_pos)
- $P10 = rx406_cur."charspec"()
- unless $P10, rx406_fail
- rx406_cur."!mark_push"(0, -1, 0, $P10)
+ rx411_cur."!cursor_pos"(rx411_pos)
+ $P10 = rx411_cur."charspec"()
+ unless $P10, rx411_fail
+ rx411_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("charspec")
- rx406_pos = $P10."pos"()
+ rx411_pos = $P10."pos"()
# rx pass
- rx406_cur."!cursor_pass"(rx406_pos, "backslash:sym<c>")
- rx406_cur."!cursor_debug"("PASS ", "backslash:sym<c>", " at pos=", rx406_pos)
- .return (rx406_cur)
- rx406_fail:
+ rx411_cur."!cursor_pass"(rx411_pos, "backslash:sym<c>")
+ rx411_cur."!cursor_debug"("PASS ", "backslash:sym<c>", " at pos=", rx411_pos)
+ .return (rx411_cur)
+ rx411_fail:
.annotate 'line', 3
- (rx406_rep, rx406_pos, $I10, $P10) = rx406_cur."!mark_fail"(0)
- lt rx406_pos, -1, rx406_done
- eq rx406_pos, -1, rx406_fail
+ (rx411_rep, rx411_pos, $I10, $P10) = rx411_cur."!mark_fail"(0)
+ lt rx411_pos, -1, rx411_done
+ eq rx411_pos, -1, rx411_fail
jump $I10
- rx406_done:
- rx406_cur."!cursor_fail"()
- rx406_cur."!cursor_debug"("FAIL ", "backslash:sym<c>")
- .return (rx406_cur)
+ rx411_done:
+ rx411_cur."!cursor_fail"()
+ rx411_cur."!cursor_debug"("FAIL ", "backslash:sym<c>")
+ .return (rx411_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<c>" :subid("114_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<c>" :subid("114_1275811476.7961") :method
.annotate 'line', 3
- $P408 = self."!PREFIX__!subrule"("charspec", "C")
- $P409 = self."!PREFIX__!subrule"("charspec", "c")
- new $P410, "ResizablePMCArray"
- push $P410, $P408
- push $P410, $P409
- .return ($P410)
+ $P413 = self."!PREFIX__!subrule"("charspec", "C")
+ $P414 = self."!PREFIX__!subrule"("charspec", "c")
+ new $P415, "ResizablePMCArray"
+ push $P415, $P413
+ push $P415, $P414
+ .return ($P415)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<A>" :subid("115_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<A>" :subid("115_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx414_tgt
- .local int rx414_pos
- .local int rx414_off
- .local int rx414_eos
- .local int rx414_rep
- .local pmc rx414_cur
- (rx414_cur, rx414_pos, rx414_tgt) = self."!cursor_start"()
- rx414_cur."!cursor_debug"("START ", "backslash:sym<A>")
- .lex unicode:"$\x{a2}", rx414_cur
+ .local string rx419_tgt
+ .local int rx419_pos
+ .local int rx419_off
+ .local int rx419_eos
+ .local int rx419_rep
+ .local pmc rx419_cur
+ (rx419_cur, rx419_pos, rx419_tgt) = self."!cursor_start"()
+ rx419_cur."!cursor_debug"("START ", "backslash:sym<A>")
+ .lex unicode:"$\x{a2}", rx419_cur
.local pmc match
.lex "$/", match
- length rx414_eos, rx414_tgt
- set rx414_off, 0
- lt rx414_pos, 2, rx414_start
- sub rx414_off, rx414_pos, 1
- substr rx414_tgt, rx414_tgt, rx414_off
- rx414_start:
+ length rx419_eos, rx419_tgt
+ gt rx419_pos, rx419_eos, rx419_done
+ set rx419_off, 0
+ lt rx419_pos, 2, rx419_start
+ sub rx419_off, rx419_pos, 1
+ substr rx419_tgt, rx419_tgt, rx419_off
+ rx419_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan418_done
- goto rxscan418_scan
- rxscan418_loop:
- ($P10) = rx414_cur."from"()
+ ne $I10, -1, rxscan423_done
+ goto rxscan423_scan
+ rxscan423_loop:
+ ($P10) = rx419_cur."from"()
inc $P10
- set rx414_pos, $P10
- ge rx414_pos, rx414_eos, rxscan418_done
- rxscan418_scan:
- set_addr $I10, rxscan418_loop
- rx414_cur."!mark_push"(0, rx414_pos, $I10)
- rxscan418_done:
+ set rx419_pos, $P10
+ ge rx419_pos, rx419_eos, rxscan423_done
+ rxscan423_scan:
+ set_addr $I10, rxscan423_loop
+ rx419_cur."!mark_push"(0, rx419_pos, $I10)
+ rxscan423_done:
.annotate 'line', 132
# rx literal "A"
- add $I11, rx414_pos, 1
- gt $I11, rx414_eos, rx414_fail
- sub $I11, rx414_pos, rx414_off
- substr $S10, rx414_tgt, $I11, 1
- ne $S10, "A", rx414_fail
- add rx414_pos, 1
+ add $I11, rx419_pos, 1
+ gt $I11, rx419_eos, rx419_fail
+ sub $I11, rx419_pos, rx419_off
+ substr $S10, rx419_tgt, $I11, 1
+ ne $S10, "A", rx419_fail
+ add rx419_pos, 1
# rx subrule "obs" subtype=method negate=
- rx414_cur."!cursor_pos"(rx414_pos)
- $P10 = rx414_cur."obs"("\\A as beginning-of-string matcher", "^")
- unless $P10, rx414_fail
- rx414_pos = $P10."pos"()
+ rx419_cur."!cursor_pos"(rx419_pos)
+ $P10 = rx419_cur."obs"("\\A as beginning-of-string matcher", "^")
+ unless $P10, rx419_fail
+ rx419_pos = $P10."pos"()
# rx pass
- rx414_cur."!cursor_pass"(rx414_pos, "backslash:sym<A>")
- rx414_cur."!cursor_debug"("PASS ", "backslash:sym<A>", " at pos=", rx414_pos)
- .return (rx414_cur)
- rx414_fail:
+ rx419_cur."!cursor_pass"(rx419_pos, "backslash:sym<A>")
+ rx419_cur."!cursor_debug"("PASS ", "backslash:sym<A>", " at pos=", rx419_pos)
+ .return (rx419_cur)
+ rx419_fail:
.annotate 'line', 3
- (rx414_rep, rx414_pos, $I10, $P10) = rx414_cur."!mark_fail"(0)
- lt rx414_pos, -1, rx414_done
- eq rx414_pos, -1, rx414_fail
+ (rx419_rep, rx419_pos, $I10, $P10) = rx419_cur."!mark_fail"(0)
+ lt rx419_pos, -1, rx419_done
+ eq rx419_pos, -1, rx419_fail
jump $I10
- rx414_done:
- rx414_cur."!cursor_fail"()
- rx414_cur."!cursor_debug"("FAIL ", "backslash:sym<A>")
- .return (rx414_cur)
+ rx419_done:
+ rx419_cur."!cursor_fail"()
+ rx419_cur."!cursor_debug"("FAIL ", "backslash:sym<A>")
+ .return (rx419_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<A>" :subid("116_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<A>" :subid("116_1275811476.7961") :method
.annotate 'line', 3
- $P416 = self."!PREFIX__!subrule"("", "A")
- new $P417, "ResizablePMCArray"
- push $P417, $P416
- .return ($P417)
+ $P421 = self."!PREFIX__!subrule"("obs", "A")
+ new $P422, "ResizablePMCArray"
+ push $P422, $P421
+ .return ($P422)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<z>" :subid("117_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<z>" :subid("117_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx420_tgt
- .local int rx420_pos
- .local int rx420_off
- .local int rx420_eos
- .local int rx420_rep
- .local pmc rx420_cur
- (rx420_cur, rx420_pos, rx420_tgt) = self."!cursor_start"()
- rx420_cur."!cursor_debug"("START ", "backslash:sym<z>")
- .lex unicode:"$\x{a2}", rx420_cur
- .local pmc match
- .lex "$/", match
- length rx420_eos, rx420_tgt
- set rx420_off, 0
- lt rx420_pos, 2, rx420_start
- sub rx420_off, rx420_pos, 1
- substr rx420_tgt, rx420_tgt, rx420_off
- rx420_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan424_done
- goto rxscan424_scan
- rxscan424_loop:
- ($P10) = rx420_cur."from"()
- inc $P10
- set rx420_pos, $P10
- ge rx420_pos, rx420_eos, rxscan424_done
- rxscan424_scan:
- set_addr $I10, rxscan424_loop
- rx420_cur."!mark_push"(0, rx420_pos, $I10)
- rxscan424_done:
+ .local string rx425_tgt
+ .local int rx425_pos
+ .local int rx425_off
+ .local int rx425_eos
+ .local int rx425_rep
+ .local pmc rx425_cur
+ (rx425_cur, rx425_pos, rx425_tgt) = self."!cursor_start"()
+ rx425_cur."!cursor_debug"("START ", "backslash:sym<z>")
+ .lex unicode:"$\x{a2}", rx425_cur
+ .local pmc match
+ .lex "$/", match
+ length rx425_eos, rx425_tgt
+ gt rx425_pos, rx425_eos, rx425_done
+ set rx425_off, 0
+ lt rx425_pos, 2, rx425_start
+ sub rx425_off, rx425_pos, 1
+ substr rx425_tgt, rx425_tgt, rx425_off
+ rx425_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan429_done
+ goto rxscan429_scan
+ rxscan429_loop:
+ ($P10) = rx425_cur."from"()
+ inc $P10
+ set rx425_pos, $P10
+ ge rx425_pos, rx425_eos, rxscan429_done
+ rxscan429_scan:
+ set_addr $I10, rxscan429_loop
+ rx425_cur."!mark_push"(0, rx425_pos, $I10)
+ rxscan429_done:
.annotate 'line', 133
# rx literal "z"
- add $I11, rx420_pos, 1
- gt $I11, rx420_eos, rx420_fail
- sub $I11, rx420_pos, rx420_off
- substr $S10, rx420_tgt, $I11, 1
- ne $S10, "z", rx420_fail
- add rx420_pos, 1
+ add $I11, rx425_pos, 1
+ gt $I11, rx425_eos, rx425_fail
+ sub $I11, rx425_pos, rx425_off
+ substr $S10, rx425_tgt, $I11, 1
+ ne $S10, "z", rx425_fail
+ add rx425_pos, 1
# rx subrule "obs" subtype=method negate=
- rx420_cur."!cursor_pos"(rx420_pos)
- $P10 = rx420_cur."obs"("\\z as end-of-string matcher", "$")
- unless $P10, rx420_fail
- rx420_pos = $P10."pos"()
+ rx425_cur."!cursor_pos"(rx425_pos)
+ $P10 = rx425_cur."obs"("\\z as end-of-string matcher", "$")
+ unless $P10, rx425_fail
+ rx425_pos = $P10."pos"()
# rx pass
- rx420_cur."!cursor_pass"(rx420_pos, "backslash:sym<z>")
- rx420_cur."!cursor_debug"("PASS ", "backslash:sym<z>", " at pos=", rx420_pos)
- .return (rx420_cur)
- rx420_fail:
+ rx425_cur."!cursor_pass"(rx425_pos, "backslash:sym<z>")
+ rx425_cur."!cursor_debug"("PASS ", "backslash:sym<z>", " at pos=", rx425_pos)
+ .return (rx425_cur)
+ rx425_fail:
.annotate 'line', 3
- (rx420_rep, rx420_pos, $I10, $P10) = rx420_cur."!mark_fail"(0)
- lt rx420_pos, -1, rx420_done
- eq rx420_pos, -1, rx420_fail
+ (rx425_rep, rx425_pos, $I10, $P10) = rx425_cur."!mark_fail"(0)
+ lt rx425_pos, -1, rx425_done
+ eq rx425_pos, -1, rx425_fail
jump $I10
- rx420_done:
- rx420_cur."!cursor_fail"()
- rx420_cur."!cursor_debug"("FAIL ", "backslash:sym<z>")
- .return (rx420_cur)
+ rx425_done:
+ rx425_cur."!cursor_fail"()
+ rx425_cur."!cursor_debug"("FAIL ", "backslash:sym<z>")
+ .return (rx425_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<z>" :subid("118_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<z>" :subid("118_1275811476.7961") :method
.annotate 'line', 3
- $P422 = self."!PREFIX__!subrule"("", "z")
- new $P423, "ResizablePMCArray"
- push $P423, $P422
- .return ($P423)
+ $P427 = self."!PREFIX__!subrule"("obs", "z")
+ new $P428, "ResizablePMCArray"
+ push $P428, $P427
+ .return ($P428)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Z>" :subid("119_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<Z>" :subid("119_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx426_tgt
- .local int rx426_pos
- .local int rx426_off
- .local int rx426_eos
- .local int rx426_rep
- .local pmc rx426_cur
- (rx426_cur, rx426_pos, rx426_tgt) = self."!cursor_start"()
- rx426_cur."!cursor_debug"("START ", "backslash:sym<Z>")
- .lex unicode:"$\x{a2}", rx426_cur
+ .local string rx431_tgt
+ .local int rx431_pos
+ .local int rx431_off
+ .local int rx431_eos
+ .local int rx431_rep
+ .local pmc rx431_cur
+ (rx431_cur, rx431_pos, rx431_tgt) = self."!cursor_start"()
+ rx431_cur."!cursor_debug"("START ", "backslash:sym<Z>")
+ .lex unicode:"$\x{a2}", rx431_cur
.local pmc match
.lex "$/", match
- length rx426_eos, rx426_tgt
- set rx426_off, 0
- lt rx426_pos, 2, rx426_start
- sub rx426_off, rx426_pos, 1
- substr rx426_tgt, rx426_tgt, rx426_off
- rx426_start:
+ length rx431_eos, rx431_tgt
+ gt rx431_pos, rx431_eos, rx431_done
+ set rx431_off, 0
+ lt rx431_pos, 2, rx431_start
+ sub rx431_off, rx431_pos, 1
+ substr rx431_tgt, rx431_tgt, rx431_off
+ rx431_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan430_done
- goto rxscan430_scan
- rxscan430_loop:
- ($P10) = rx426_cur."from"()
+ ne $I10, -1, rxscan435_done
+ goto rxscan435_scan
+ rxscan435_loop:
+ ($P10) = rx431_cur."from"()
inc $P10
- set rx426_pos, $P10
- ge rx426_pos, rx426_eos, rxscan430_done
- rxscan430_scan:
- set_addr $I10, rxscan430_loop
- rx426_cur."!mark_push"(0, rx426_pos, $I10)
- rxscan430_done:
+ set rx431_pos, $P10
+ ge rx431_pos, rx431_eos, rxscan435_done
+ rxscan435_scan:
+ set_addr $I10, rxscan435_loop
+ rx431_cur."!mark_push"(0, rx431_pos, $I10)
+ rxscan435_done:
.annotate 'line', 134
# rx literal "Z"
- add $I11, rx426_pos, 1
- gt $I11, rx426_eos, rx426_fail
- sub $I11, rx426_pos, rx426_off
- substr $S10, rx426_tgt, $I11, 1
- ne $S10, "Z", rx426_fail
- add rx426_pos, 1
+ add $I11, rx431_pos, 1
+ gt $I11, rx431_eos, rx431_fail
+ sub $I11, rx431_pos, rx431_off
+ substr $S10, rx431_tgt, $I11, 1
+ ne $S10, "Z", rx431_fail
+ add rx431_pos, 1
# rx subrule "obs" subtype=method negate=
- rx426_cur."!cursor_pos"(rx426_pos)
- $P10 = rx426_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
- unless $P10, rx426_fail
- rx426_pos = $P10."pos"()
+ rx431_cur."!cursor_pos"(rx431_pos)
+ $P10 = rx431_cur."obs"("\\Z as end-of-string matcher", "\\n?$")
+ unless $P10, rx431_fail
+ rx431_pos = $P10."pos"()
# rx pass
- rx426_cur."!cursor_pass"(rx426_pos, "backslash:sym<Z>")
- rx426_cur."!cursor_debug"("PASS ", "backslash:sym<Z>", " at pos=", rx426_pos)
- .return (rx426_cur)
- rx426_fail:
+ rx431_cur."!cursor_pass"(rx431_pos, "backslash:sym<Z>")
+ rx431_cur."!cursor_debug"("PASS ", "backslash:sym<Z>", " at pos=", rx431_pos)
+ .return (rx431_cur)
+ rx431_fail:
.annotate 'line', 3
- (rx426_rep, rx426_pos, $I10, $P10) = rx426_cur."!mark_fail"(0)
- lt rx426_pos, -1, rx426_done
- eq rx426_pos, -1, rx426_fail
+ (rx431_rep, rx431_pos, $I10, $P10) = rx431_cur."!mark_fail"(0)
+ lt rx431_pos, -1, rx431_done
+ eq rx431_pos, -1, rx431_fail
jump $I10
- rx426_done:
- rx426_cur."!cursor_fail"()
- rx426_cur."!cursor_debug"("FAIL ", "backslash:sym<Z>")
- .return (rx426_cur)
+ rx431_done:
+ rx431_cur."!cursor_fail"()
+ rx431_cur."!cursor_debug"("FAIL ", "backslash:sym<Z>")
+ .return (rx431_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Z>" :subid("120_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<Z>" :subid("120_1275811476.7961") :method
.annotate 'line', 3
- $P428 = self."!PREFIX__!subrule"("", "Z")
- new $P429, "ResizablePMCArray"
- push $P429, $P428
- .return ($P429)
+ $P433 = self."!PREFIX__!subrule"("obs", "Z")
+ new $P434, "ResizablePMCArray"
+ push $P434, $P433
+ .return ($P434)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<Q>" :subid("121_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<Q>" :subid("121_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx432_tgt
- .local int rx432_pos
- .local int rx432_off
- .local int rx432_eos
- .local int rx432_rep
- .local pmc rx432_cur
- (rx432_cur, rx432_pos, rx432_tgt) = self."!cursor_start"()
- rx432_cur."!cursor_debug"("START ", "backslash:sym<Q>")
- .lex unicode:"$\x{a2}", rx432_cur
+ .local string rx437_tgt
+ .local int rx437_pos
+ .local int rx437_off
+ .local int rx437_eos
+ .local int rx437_rep
+ .local pmc rx437_cur
+ (rx437_cur, rx437_pos, rx437_tgt) = self."!cursor_start"()
+ rx437_cur."!cursor_debug"("START ", "backslash:sym<Q>")
+ .lex unicode:"$\x{a2}", rx437_cur
.local pmc match
.lex "$/", match
- length rx432_eos, rx432_tgt
- set rx432_off, 0
- lt rx432_pos, 2, rx432_start
- sub rx432_off, rx432_pos, 1
- substr rx432_tgt, rx432_tgt, rx432_off
- rx432_start:
+ length rx437_eos, rx437_tgt
+ gt rx437_pos, rx437_eos, rx437_done
+ set rx437_off, 0
+ lt rx437_pos, 2, rx437_start
+ sub rx437_off, rx437_pos, 1
+ substr rx437_tgt, rx437_tgt, rx437_off
+ rx437_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan436_done
- goto rxscan436_scan
- rxscan436_loop:
- ($P10) = rx432_cur."from"()
+ ne $I10, -1, rxscan441_done
+ goto rxscan441_scan
+ rxscan441_loop:
+ ($P10) = rx437_cur."from"()
inc $P10
- set rx432_pos, $P10
- ge rx432_pos, rx432_eos, rxscan436_done
- rxscan436_scan:
- set_addr $I10, rxscan436_loop
- rx432_cur."!mark_push"(0, rx432_pos, $I10)
- rxscan436_done:
+ set rx437_pos, $P10
+ ge rx437_pos, rx437_eos, rxscan441_done
+ rxscan441_scan:
+ set_addr $I10, rxscan441_loop
+ rx437_cur."!mark_push"(0, rx437_pos, $I10)
+ rxscan441_done:
.annotate 'line', 135
# rx literal "Q"
- add $I11, rx432_pos, 1
- gt $I11, rx432_eos, rx432_fail
- sub $I11, rx432_pos, rx432_off
- substr $S10, rx432_tgt, $I11, 1
- ne $S10, "Q", rx432_fail
- add rx432_pos, 1
+ add $I11, rx437_pos, 1
+ gt $I11, rx437_eos, rx437_fail
+ sub $I11, rx437_pos, rx437_off
+ substr $S10, rx437_tgt, $I11, 1
+ ne $S10, "Q", rx437_fail
+ add rx437_pos, 1
# rx subrule "obs" subtype=method negate=
- rx432_cur."!cursor_pos"(rx432_pos)
- $P10 = rx432_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
- unless $P10, rx432_fail
- rx432_pos = $P10."pos"()
+ rx437_cur."!cursor_pos"(rx437_pos)
+ $P10 = rx437_cur."obs"("\\Q as quotemeta", "quotes or literal variable match")
+ unless $P10, rx437_fail
+ rx437_pos = $P10."pos"()
# rx pass
- rx432_cur."!cursor_pass"(rx432_pos, "backslash:sym<Q>")
- rx432_cur."!cursor_debug"("PASS ", "backslash:sym<Q>", " at pos=", rx432_pos)
- .return (rx432_cur)
- rx432_fail:
+ rx437_cur."!cursor_pass"(rx437_pos, "backslash:sym<Q>")
+ rx437_cur."!cursor_debug"("PASS ", "backslash:sym<Q>", " at pos=", rx437_pos)
+ .return (rx437_cur)
+ rx437_fail:
.annotate 'line', 3
- (rx432_rep, rx432_pos, $I10, $P10) = rx432_cur."!mark_fail"(0)
- lt rx432_pos, -1, rx432_done
- eq rx432_pos, -1, rx432_fail
+ (rx437_rep, rx437_pos, $I10, $P10) = rx437_cur."!mark_fail"(0)
+ lt rx437_pos, -1, rx437_done
+ eq rx437_pos, -1, rx437_fail
jump $I10
- rx432_done:
- rx432_cur."!cursor_fail"()
- rx432_cur."!cursor_debug"("FAIL ", "backslash:sym<Q>")
- .return (rx432_cur)
+ rx437_done:
+ rx437_cur."!cursor_fail"()
+ rx437_cur."!cursor_debug"("FAIL ", "backslash:sym<Q>")
+ .return (rx437_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<Q>" :subid("122_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<Q>" :subid("122_1275811476.7961") :method
.annotate 'line', 3
- $P434 = self."!PREFIX__!subrule"("", "Q")
- new $P435, "ResizablePMCArray"
- push $P435, $P434
- .return ($P435)
+ $P439 = self."!PREFIX__!subrule"("obs", "Q")
+ new $P440, "ResizablePMCArray"
+ push $P440, $P439
+ .return ($P440)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "backslash:sym<misc>" :subid("123_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "backslash:sym<misc>" :subid("123_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx438_tgt
- .local int rx438_pos
- .local int rx438_off
- .local int rx438_eos
- .local int rx438_rep
- .local pmc rx438_cur
- (rx438_cur, rx438_pos, rx438_tgt) = self."!cursor_start"()
- rx438_cur."!cursor_debug"("START ", "backslash:sym<misc>")
- .lex unicode:"$\x{a2}", rx438_cur
- .local pmc match
- .lex "$/", match
- length rx438_eos, rx438_tgt
- set rx438_off, 0
- lt rx438_pos, 2, rx438_start
- sub rx438_off, rx438_pos, 1
- substr rx438_tgt, rx438_tgt, rx438_off
- rx438_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan441_done
- goto rxscan441_scan
- rxscan441_loop:
- ($P10) = rx438_cur."from"()
- inc $P10
- set rx438_pos, $P10
- ge rx438_pos, rx438_eos, rxscan441_done
- rxscan441_scan:
- set_addr $I10, rxscan441_loop
- rx438_cur."!mark_push"(0, rx438_pos, $I10)
- rxscan441_done:
+ .local string rx443_tgt
+ .local int rx443_pos
+ .local int rx443_off
+ .local int rx443_eos
+ .local int rx443_rep
+ .local pmc rx443_cur
+ (rx443_cur, rx443_pos, rx443_tgt) = self."!cursor_start"()
+ rx443_cur."!cursor_debug"("START ", "backslash:sym<misc>")
+ .lex unicode:"$\x{a2}", rx443_cur
+ .local pmc match
+ .lex "$/", match
+ length rx443_eos, rx443_tgt
+ gt rx443_pos, rx443_eos, rx443_done
+ set rx443_off, 0
+ lt rx443_pos, 2, rx443_start
+ sub rx443_off, rx443_pos, 1
+ substr rx443_tgt, rx443_tgt, rx443_off
+ rx443_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan446_done
+ goto rxscan446_scan
+ rxscan446_loop:
+ ($P10) = rx443_cur."from"()
+ inc $P10
+ set rx443_pos, $P10
+ ge rx443_pos, rx443_eos, rxscan446_done
+ rxscan446_scan:
+ set_addr $I10, rxscan446_loop
+ rx443_cur."!mark_push"(0, rx443_pos, $I10)
+ rxscan446_done:
.annotate 'line', 136
# rx charclass W
- ge rx438_pos, rx438_eos, rx438_fail
- sub $I10, rx438_pos, rx438_off
- is_cclass $I11, 8192, rx438_tgt, $I10
- if $I11, rx438_fail
- inc rx438_pos
+ ge rx443_pos, rx443_eos, rx443_fail
+ sub $I10, rx443_pos, rx443_off
+ is_cclass $I11, 8192, rx443_tgt, $I10
+ if $I11, rx443_fail
+ inc rx443_pos
# rx pass
- rx438_cur."!cursor_pass"(rx438_pos, "backslash:sym<misc>")
- rx438_cur."!cursor_debug"("PASS ", "backslash:sym<misc>", " at pos=", rx438_pos)
- .return (rx438_cur)
- rx438_fail:
+ rx443_cur."!cursor_pass"(rx443_pos, "backslash:sym<misc>")
+ rx443_cur."!cursor_debug"("PASS ", "backslash:sym<misc>", " at pos=", rx443_pos)
+ .return (rx443_cur)
+ rx443_fail:
.annotate 'line', 3
- (rx438_rep, rx438_pos, $I10, $P10) = rx438_cur."!mark_fail"(0)
- lt rx438_pos, -1, rx438_done
- eq rx438_pos, -1, rx438_fail
+ (rx443_rep, rx443_pos, $I10, $P10) = rx443_cur."!mark_fail"(0)
+ lt rx443_pos, -1, rx443_done
+ eq rx443_pos, -1, rx443_fail
jump $I10
- rx438_done:
- rx438_cur."!cursor_fail"()
- rx438_cur."!cursor_debug"("FAIL ", "backslash:sym<misc>")
- .return (rx438_cur)
+ rx443_done:
+ rx443_cur."!cursor_fail"()
+ rx443_cur."!cursor_debug"("FAIL ", "backslash:sym<misc>")
+ .return (rx443_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__backslash:sym<misc>" :subid("124_1274022883.50471") :method
+.sub "!PREFIX__backslash:sym<misc>" :subid("124_1275811476.7961") :method
.annotate 'line', 3
- new $P440, "ResizablePMCArray"
- push $P440, ""
- .return ($P440)
+ new $P445, "ResizablePMCArray"
+ push $P445, ""
+ .return ($P445)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion" :subid("125_1274022883.50471") :method
+.sub "assertion" :subid("125_1275811476.7961") :method
.annotate 'line', 138
- $P443 = self."!protoregex"("assertion")
- .return ($P443)
+ $P448 = self."!protoregex"("assertion")
+ .return ($P448)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion" :subid("126_1274022883.50471") :method
+.sub "!PREFIX__assertion" :subid("126_1275811476.7961") :method
.annotate 'line', 138
- $P445 = self."!PREFIX__!protoregex"("assertion")
- .return ($P445)
+ $P450 = self."!PREFIX__!protoregex"("assertion")
+ .return ($P450)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<?>" :subid("127_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "assertion:sym<?>" :subid("127_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .const 'Sub' $P454 = "129_1274022883.50471"
- capture_lex $P454
- .local string rx447_tgt
- .local int rx447_pos
- .local int rx447_off
- .local int rx447_eos
- .local int rx447_rep
- .local pmc rx447_cur
- (rx447_cur, rx447_pos, rx447_tgt) = self."!cursor_start"()
- rx447_cur."!cursor_debug"("START ", "assertion:sym<?>")
- .lex unicode:"$\x{a2}", rx447_cur
- .local pmc match
- .lex "$/", match
- length rx447_eos, rx447_tgt
- set rx447_off, 0
- lt rx447_pos, 2, rx447_start
- sub rx447_off, rx447_pos, 1
- substr rx447_tgt, rx447_tgt, rx447_off
- rx447_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan451_done
- goto rxscan451_scan
- rxscan451_loop:
- ($P10) = rx447_cur."from"()
- inc $P10
- set rx447_pos, $P10
- ge rx447_pos, rx447_eos, rxscan451_done
- rxscan451_scan:
- set_addr $I10, rxscan451_loop
- rx447_cur."!mark_push"(0, rx447_pos, $I10)
- rxscan451_done:
+ .const 'Sub' $P459 = "129_1275811476.7961"
+ capture_lex $P459
+ .local string rx452_tgt
+ .local int rx452_pos
+ .local int rx452_off
+ .local int rx452_eos
+ .local int rx452_rep
+ .local pmc rx452_cur
+ (rx452_cur, rx452_pos, rx452_tgt) = self."!cursor_start"()
+ rx452_cur."!cursor_debug"("START ", "assertion:sym<?>")
+ .lex unicode:"$\x{a2}", rx452_cur
+ .local pmc match
+ .lex "$/", match
+ length rx452_eos, rx452_tgt
+ gt rx452_pos, rx452_eos, rx452_done
+ set rx452_off, 0
+ lt rx452_pos, 2, rx452_start
+ sub rx452_off, rx452_pos, 1
+ substr rx452_tgt, rx452_tgt, rx452_off
+ rx452_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan456_done
+ goto rxscan456_scan
+ rxscan456_loop:
+ ($P10) = rx452_cur."from"()
+ inc $P10
+ set rx452_pos, $P10
+ ge rx452_pos, rx452_eos, rxscan456_done
+ rxscan456_scan:
+ set_addr $I10, rxscan456_loop
+ rx452_cur."!mark_push"(0, rx452_pos, $I10)
+ rxscan456_done:
.annotate 'line', 140
# rx literal "?"
- add $I11, rx447_pos, 1
- gt $I11, rx447_eos, rx447_fail
- sub $I11, rx447_pos, rx447_off
- substr $S10, rx447_tgt, $I11, 1
- ne $S10, "?", rx447_fail
- add rx447_pos, 1
- alt452_0:
- set_addr $I10, alt452_1
- rx447_cur."!mark_push"(0, rx447_pos, $I10)
+ add $I11, rx452_pos, 1
+ gt $I11, rx452_eos, rx452_fail
+ sub $I11, rx452_pos, rx452_off
+ substr $S10, rx452_tgt, $I11, 1
+ ne $S10, "?", rx452_fail
+ add rx452_pos, 1
+ alt457_0:
+ set_addr $I10, alt457_1
+ rx452_cur."!mark_push"(0, rx452_pos, $I10)
# rx subrule "before" subtype=zerowidth negate=
- rx447_cur."!cursor_pos"(rx447_pos)
- .const 'Sub' $P454 = "129_1274022883.50471"
- capture_lex $P454
- $P10 = rx447_cur."before"($P454)
- unless $P10, rx447_fail
- goto alt452_end
- alt452_1:
+ rx452_cur."!cursor_pos"(rx452_pos)
+ .const 'Sub' $P459 = "129_1275811476.7961"
+ capture_lex $P459
+ $P10 = rx452_cur."before"($P459)
+ unless $P10, rx452_fail
+ goto alt457_end
+ alt457_1:
# rx subrule "assertion" subtype=capture negate=
- rx447_cur."!cursor_pos"(rx447_pos)
- $P10 = rx447_cur."assertion"()
- unless $P10, rx447_fail
- rx447_cur."!mark_push"(0, -1, 0, $P10)
+ rx452_cur."!cursor_pos"(rx452_pos)
+ $P10 = rx452_cur."assertion"()
+ unless $P10, rx452_fail
+ rx452_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx447_pos = $P10."pos"()
- alt452_end:
+ rx452_pos = $P10."pos"()
+ alt457_end:
# rx pass
- rx447_cur."!cursor_pass"(rx447_pos, "assertion:sym<?>")
- rx447_cur."!cursor_debug"("PASS ", "assertion:sym<?>", " at pos=", rx447_pos)
- .return (rx447_cur)
- rx447_fail:
+ rx452_cur."!cursor_pass"(rx452_pos, "assertion:sym<?>")
+ rx452_cur."!cursor_debug"("PASS ", "assertion:sym<?>", " at pos=", rx452_pos)
+ .return (rx452_cur)
+ rx452_fail:
.annotate 'line', 3
- (rx447_rep, rx447_pos, $I10, $P10) = rx447_cur."!mark_fail"(0)
- lt rx447_pos, -1, rx447_done
- eq rx447_pos, -1, rx447_fail
+ (rx452_rep, rx452_pos, $I10, $P10) = rx452_cur."!mark_fail"(0)
+ lt rx452_pos, -1, rx452_done
+ eq rx452_pos, -1, rx452_fail
jump $I10
- rx447_done:
- rx447_cur."!cursor_fail"()
- rx447_cur."!cursor_debug"("FAIL ", "assertion:sym<?>")
- .return (rx447_cur)
+ rx452_done:
+ rx452_cur."!cursor_fail"()
+ rx452_cur."!cursor_debug"("FAIL ", "assertion:sym<?>")
+ .return (rx452_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<?>" :subid("128_1274022883.50471") :method
+.sub "!PREFIX__assertion:sym<?>" :subid("128_1275811476.7961") :method
.annotate 'line', 3
- $P449 = self."!PREFIX__!subrule"("assertion", "?")
- new $P450, "ResizablePMCArray"
- push $P450, $P449
- push $P450, "?"
- .return ($P450)
+ $P454 = self."!PREFIX__!subrule"("assertion", "?")
+ new $P455, "ResizablePMCArray"
+ push $P455, $P454
+ push $P455, "?"
+ .return ($P455)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block453" :anon :subid("129_1274022883.50471") :method :outer("127_1274022883.50471")
+.sub "_block458" :anon :subid("129_1275811476.7961") :method :outer("127_1275811476.7961")
.annotate 'line', 140
- .local string rx455_tgt
- .local int rx455_pos
- .local int rx455_off
- .local int rx455_eos
- .local int rx455_rep
- .local pmc rx455_cur
- (rx455_cur, rx455_pos, rx455_tgt) = self."!cursor_start"()
- rx455_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx455_cur
- .local pmc match
- .lex "$/", match
- length rx455_eos, rx455_tgt
- set rx455_off, 0
- lt rx455_pos, 2, rx455_start
- sub rx455_off, rx455_pos, 1
- substr rx455_tgt, rx455_tgt, rx455_off
- rx455_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan456_done
- goto rxscan456_scan
- rxscan456_loop:
- ($P10) = rx455_cur."from"()
- inc $P10
- set rx455_pos, $P10
- ge rx455_pos, rx455_eos, rxscan456_done
- rxscan456_scan:
- set_addr $I10, rxscan456_loop
- rx455_cur."!mark_push"(0, rx455_pos, $I10)
- rxscan456_done:
+ .local string rx460_tgt
+ .local int rx460_pos
+ .local int rx460_off
+ .local int rx460_eos
+ .local int rx460_rep
+ .local pmc rx460_cur
+ (rx460_cur, rx460_pos, rx460_tgt) = self."!cursor_start"()
+ rx460_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx460_cur
+ .local pmc match
+ .lex "$/", match
+ length rx460_eos, rx460_tgt
+ gt rx460_pos, rx460_eos, rx460_done
+ set rx460_off, 0
+ lt rx460_pos, 2, rx460_start
+ sub rx460_off, rx460_pos, 1
+ substr rx460_tgt, rx460_tgt, rx460_off
+ rx460_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan461_done
+ goto rxscan461_scan
+ rxscan461_loop:
+ ($P10) = rx460_cur."from"()
+ inc $P10
+ set rx460_pos, $P10
+ ge rx460_pos, rx460_eos, rxscan461_done
+ rxscan461_scan:
+ set_addr $I10, rxscan461_loop
+ rx460_cur."!mark_push"(0, rx460_pos, $I10)
+ rxscan461_done:
# rx literal ">"
- add $I11, rx455_pos, 1
- gt $I11, rx455_eos, rx455_fail
- sub $I11, rx455_pos, rx455_off
- substr $S10, rx455_tgt, $I11, 1
- ne $S10, ">", rx455_fail
- add rx455_pos, 1
- # rx pass
- rx455_cur."!cursor_pass"(rx455_pos, "")
- rx455_cur."!cursor_debug"("PASS ", "", " at pos=", rx455_pos)
- .return (rx455_cur)
- rx455_fail:
- (rx455_rep, rx455_pos, $I10, $P10) = rx455_cur."!mark_fail"(0)
- lt rx455_pos, -1, rx455_done
- eq rx455_pos, -1, rx455_fail
- jump $I10
- rx455_done:
- rx455_cur."!cursor_fail"()
- rx455_cur."!cursor_debug"("FAIL ", "")
- .return (rx455_cur)
+ add $I11, rx460_pos, 1
+ gt $I11, rx460_eos, rx460_fail
+ sub $I11, rx460_pos, rx460_off
+ substr $S10, rx460_tgt, $I11, 1
+ ne $S10, ">", rx460_fail
+ add rx460_pos, 1
+ # rx pass
+ rx460_cur."!cursor_pass"(rx460_pos, "")
+ rx460_cur."!cursor_debug"("PASS ", "", " at pos=", rx460_pos)
+ .return (rx460_cur)
+ rx460_fail:
+ (rx460_rep, rx460_pos, $I10, $P10) = rx460_cur."!mark_fail"(0)
+ lt rx460_pos, -1, rx460_done
+ eq rx460_pos, -1, rx460_fail
+ jump $I10
+ rx460_done:
+ rx460_cur."!cursor_fail"()
+ rx460_cur."!cursor_debug"("FAIL ", "")
+ .return (rx460_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<!>" :subid("130_1274022883.50471") :method :outer("11_1274022883.50471")
-.annotate 'line', 3
- .const 'Sub' $P465 = "132_1274022883.50471"
- capture_lex $P465
- .local string rx458_tgt
- .local int rx458_pos
- .local int rx458_off
- .local int rx458_eos
- .local int rx458_rep
- .local pmc rx458_cur
- (rx458_cur, rx458_pos, rx458_tgt) = self."!cursor_start"()
- rx458_cur."!cursor_debug"("START ", "assertion:sym<!>")
- .lex unicode:"$\x{a2}", rx458_cur
- .local pmc match
- .lex "$/", match
- length rx458_eos, rx458_tgt
- set rx458_off, 0
- lt rx458_pos, 2, rx458_start
- sub rx458_off, rx458_pos, 1
- substr rx458_tgt, rx458_tgt, rx458_off
- rx458_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan462_done
- goto rxscan462_scan
- rxscan462_loop:
- ($P10) = rx458_cur."from"()
- inc $P10
- set rx458_pos, $P10
- ge rx458_pos, rx458_eos, rxscan462_done
- rxscan462_scan:
- set_addr $I10, rxscan462_loop
- rx458_cur."!mark_push"(0, rx458_pos, $I10)
- rxscan462_done:
+.sub "assertion:sym<!>" :subid("130_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+ .const 'Sub' $P470 = "132_1275811476.7961"
+ capture_lex $P470
+ .local string rx463_tgt
+ .local int rx463_pos
+ .local int rx463_off
+ .local int rx463_eos
+ .local int rx463_rep
+ .local pmc rx463_cur
+ (rx463_cur, rx463_pos, rx463_tgt) = self."!cursor_start"()
+ rx463_cur."!cursor_debug"("START ", "assertion:sym<!>")
+ .lex unicode:"$\x{a2}", rx463_cur
+ .local pmc match
+ .lex "$/", match
+ length rx463_eos, rx463_tgt
+ gt rx463_pos, rx463_eos, rx463_done
+ set rx463_off, 0
+ lt rx463_pos, 2, rx463_start
+ sub rx463_off, rx463_pos, 1
+ substr rx463_tgt, rx463_tgt, rx463_off
+ rx463_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan467_done
+ goto rxscan467_scan
+ rxscan467_loop:
+ ($P10) = rx463_cur."from"()
+ inc $P10
+ set rx463_pos, $P10
+ ge rx463_pos, rx463_eos, rxscan467_done
+ rxscan467_scan:
+ set_addr $I10, rxscan467_loop
+ rx463_cur."!mark_push"(0, rx463_pos, $I10)
+ rxscan467_done:
.annotate 'line', 141
# rx literal "!"
- add $I11, rx458_pos, 1
- gt $I11, rx458_eos, rx458_fail
- sub $I11, rx458_pos, rx458_off
- substr $S10, rx458_tgt, $I11, 1
- ne $S10, "!", rx458_fail
- add rx458_pos, 1
- alt463_0:
- set_addr $I10, alt463_1
- rx458_cur."!mark_push"(0, rx458_pos, $I10)
+ add $I11, rx463_pos, 1
+ gt $I11, rx463_eos, rx463_fail
+ sub $I11, rx463_pos, rx463_off
+ substr $S10, rx463_tgt, $I11, 1
+ ne $S10, "!", rx463_fail
+ add rx463_pos, 1
+ alt468_0:
+ set_addr $I10, alt468_1
+ rx463_cur."!mark_push"(0, rx463_pos, $I10)
# rx subrule "before" subtype=zerowidth negate=
- rx458_cur."!cursor_pos"(rx458_pos)
- .const 'Sub' $P465 = "132_1274022883.50471"
- capture_lex $P465
- $P10 = rx458_cur."before"($P465)
- unless $P10, rx458_fail
- goto alt463_end
- alt463_1:
+ rx463_cur."!cursor_pos"(rx463_pos)
+ .const 'Sub' $P470 = "132_1275811476.7961"
+ capture_lex $P470
+ $P10 = rx463_cur."before"($P470)
+ unless $P10, rx463_fail
+ goto alt468_end
+ alt468_1:
# rx subrule "assertion" subtype=capture negate=
- rx458_cur."!cursor_pos"(rx458_pos)
- $P10 = rx458_cur."assertion"()
- unless $P10, rx458_fail
- rx458_cur."!mark_push"(0, -1, 0, $P10)
+ rx463_cur."!cursor_pos"(rx463_pos)
+ $P10 = rx463_cur."assertion"()
+ unless $P10, rx463_fail
+ rx463_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx458_pos = $P10."pos"()
- alt463_end:
+ rx463_pos = $P10."pos"()
+ alt468_end:
# rx pass
- rx458_cur."!cursor_pass"(rx458_pos, "assertion:sym<!>")
- rx458_cur."!cursor_debug"("PASS ", "assertion:sym<!>", " at pos=", rx458_pos)
- .return (rx458_cur)
- rx458_fail:
+ rx463_cur."!cursor_pass"(rx463_pos, "assertion:sym<!>")
+ rx463_cur."!cursor_debug"("PASS ", "assertion:sym<!>", " at pos=", rx463_pos)
+ .return (rx463_cur)
+ rx463_fail:
.annotate 'line', 3
- (rx458_rep, rx458_pos, $I10, $P10) = rx458_cur."!mark_fail"(0)
- lt rx458_pos, -1, rx458_done
- eq rx458_pos, -1, rx458_fail
+ (rx463_rep, rx463_pos, $I10, $P10) = rx463_cur."!mark_fail"(0)
+ lt rx463_pos, -1, rx463_done
+ eq rx463_pos, -1, rx463_fail
jump $I10
- rx458_done:
- rx458_cur."!cursor_fail"()
- rx458_cur."!cursor_debug"("FAIL ", "assertion:sym<!>")
- .return (rx458_cur)
+ rx463_done:
+ rx463_cur."!cursor_fail"()
+ rx463_cur."!cursor_debug"("FAIL ", "assertion:sym<!>")
+ .return (rx463_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<!>" :subid("131_1274022883.50471") :method
+.sub "!PREFIX__assertion:sym<!>" :subid("131_1275811476.7961") :method
.annotate 'line', 3
- $P460 = self."!PREFIX__!subrule"("assertion", "!")
- new $P461, "ResizablePMCArray"
- push $P461, $P460
- push $P461, "!"
- .return ($P461)
+ $P465 = self."!PREFIX__!subrule"("assertion", "!")
+ new $P466, "ResizablePMCArray"
+ push $P466, $P465
+ push $P466, "!"
+ .return ($P466)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block464" :anon :subid("132_1274022883.50471") :method :outer("130_1274022883.50471")
+.sub "_block469" :anon :subid("132_1275811476.7961") :method :outer("130_1275811476.7961")
.annotate 'line', 141
- .local string rx466_tgt
- .local int rx466_pos
- .local int rx466_off
- .local int rx466_eos
- .local int rx466_rep
- .local pmc rx466_cur
- (rx466_cur, rx466_pos, rx466_tgt) = self."!cursor_start"()
- rx466_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx466_cur
- .local pmc match
- .lex "$/", match
- length rx466_eos, rx466_tgt
- set rx466_off, 0
- lt rx466_pos, 2, rx466_start
- sub rx466_off, rx466_pos, 1
- substr rx466_tgt, rx466_tgt, rx466_off
- rx466_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan467_done
- goto rxscan467_scan
- rxscan467_loop:
- ($P10) = rx466_cur."from"()
- inc $P10
- set rx466_pos, $P10
- ge rx466_pos, rx466_eos, rxscan467_done
- rxscan467_scan:
- set_addr $I10, rxscan467_loop
- rx466_cur."!mark_push"(0, rx466_pos, $I10)
- rxscan467_done:
+ .local string rx471_tgt
+ .local int rx471_pos
+ .local int rx471_off
+ .local int rx471_eos
+ .local int rx471_rep
+ .local pmc rx471_cur
+ (rx471_cur, rx471_pos, rx471_tgt) = self."!cursor_start"()
+ rx471_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx471_cur
+ .local pmc match
+ .lex "$/", match
+ length rx471_eos, rx471_tgt
+ gt rx471_pos, rx471_eos, rx471_done
+ set rx471_off, 0
+ lt rx471_pos, 2, rx471_start
+ sub rx471_off, rx471_pos, 1
+ substr rx471_tgt, rx471_tgt, rx471_off
+ rx471_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan472_done
+ goto rxscan472_scan
+ rxscan472_loop:
+ ($P10) = rx471_cur."from"()
+ inc $P10
+ set rx471_pos, $P10
+ ge rx471_pos, rx471_eos, rxscan472_done
+ rxscan472_scan:
+ set_addr $I10, rxscan472_loop
+ rx471_cur."!mark_push"(0, rx471_pos, $I10)
+ rxscan472_done:
# rx literal ">"
- add $I11, rx466_pos, 1
- gt $I11, rx466_eos, rx466_fail
- sub $I11, rx466_pos, rx466_off
- substr $S10, rx466_tgt, $I11, 1
- ne $S10, ">", rx466_fail
- add rx466_pos, 1
- # rx pass
- rx466_cur."!cursor_pass"(rx466_pos, "")
- rx466_cur."!cursor_debug"("PASS ", "", " at pos=", rx466_pos)
- .return (rx466_cur)
- rx466_fail:
- (rx466_rep, rx466_pos, $I10, $P10) = rx466_cur."!mark_fail"(0)
- lt rx466_pos, -1, rx466_done
- eq rx466_pos, -1, rx466_fail
- jump $I10
- rx466_done:
- rx466_cur."!cursor_fail"()
- rx466_cur."!cursor_debug"("FAIL ", "")
- .return (rx466_cur)
+ add $I11, rx471_pos, 1
+ gt $I11, rx471_eos, rx471_fail
+ sub $I11, rx471_pos, rx471_off
+ substr $S10, rx471_tgt, $I11, 1
+ ne $S10, ">", rx471_fail
+ add rx471_pos, 1
+ # rx pass
+ rx471_cur."!cursor_pass"(rx471_pos, "")
+ rx471_cur."!cursor_debug"("PASS ", "", " at pos=", rx471_pos)
+ .return (rx471_cur)
+ rx471_fail:
+ (rx471_rep, rx471_pos, $I10, $P10) = rx471_cur."!mark_fail"(0)
+ lt rx471_pos, -1, rx471_done
+ eq rx471_pos, -1, rx471_fail
+ jump $I10
+ rx471_done:
+ rx471_cur."!cursor_fail"()
+ rx471_cur."!cursor_debug"("FAIL ", "")
+ .return (rx471_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<method>" :subid("133_1274022883.50471") :method :outer("11_1274022883.50471")
-.annotate 'line', 3
- .local string rx469_tgt
- .local int rx469_pos
- .local int rx469_off
- .local int rx469_eos
- .local int rx469_rep
- .local pmc rx469_cur
- (rx469_cur, rx469_pos, rx469_tgt) = self."!cursor_start"()
- rx469_cur."!cursor_debug"("START ", "assertion:sym<method>")
- .lex unicode:"$\x{a2}", rx469_cur
- .local pmc match
- .lex "$/", match
- length rx469_eos, rx469_tgt
- set rx469_off, 0
- lt rx469_pos, 2, rx469_start
- sub rx469_off, rx469_pos, 1
- substr rx469_tgt, rx469_tgt, rx469_off
- rx469_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan473_done
- goto rxscan473_scan
- rxscan473_loop:
- ($P10) = rx469_cur."from"()
- inc $P10
- set rx469_pos, $P10
- ge rx469_pos, rx469_eos, rxscan473_done
- rxscan473_scan:
- set_addr $I10, rxscan473_loop
- rx469_cur."!mark_push"(0, rx469_pos, $I10)
- rxscan473_done:
+.sub "assertion:sym<method>" :subid("133_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+ .local string rx474_tgt
+ .local int rx474_pos
+ .local int rx474_off
+ .local int rx474_eos
+ .local int rx474_rep
+ .local pmc rx474_cur
+ (rx474_cur, rx474_pos, rx474_tgt) = self."!cursor_start"()
+ rx474_cur."!cursor_debug"("START ", "assertion:sym<method>")
+ .lex unicode:"$\x{a2}", rx474_cur
+ .local pmc match
+ .lex "$/", match
+ length rx474_eos, rx474_tgt
+ gt rx474_pos, rx474_eos, rx474_done
+ set rx474_off, 0
+ lt rx474_pos, 2, rx474_start
+ sub rx474_off, rx474_pos, 1
+ substr rx474_tgt, rx474_tgt, rx474_off
+ rx474_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan478_done
+ goto rxscan478_scan
+ rxscan478_loop:
+ ($P10) = rx474_cur."from"()
+ inc $P10
+ set rx474_pos, $P10
+ ge rx474_pos, rx474_eos, rxscan478_done
+ rxscan478_scan:
+ set_addr $I10, rxscan478_loop
+ rx474_cur."!mark_push"(0, rx474_pos, $I10)
+ rxscan478_done:
.annotate 'line', 144
# rx literal "."
- add $I11, rx469_pos, 1
- gt $I11, rx469_eos, rx469_fail
- sub $I11, rx469_pos, rx469_off
- substr $S10, rx469_tgt, $I11, 1
- ne $S10, ".", rx469_fail
- add rx469_pos, 1
+ add $I11, rx474_pos, 1
+ gt $I11, rx474_eos, rx474_fail
+ sub $I11, rx474_pos, rx474_off
+ substr $S10, rx474_tgt, $I11, 1
+ ne $S10, ".", rx474_fail
+ add rx474_pos, 1
# rx subrule "assertion" subtype=capture negate=
- rx469_cur."!cursor_pos"(rx469_pos)
- $P10 = rx469_cur."assertion"()
- unless $P10, rx469_fail
- rx469_cur."!mark_push"(0, -1, 0, $P10)
+ rx474_cur."!cursor_pos"(rx474_pos)
+ $P10 = rx474_cur."assertion"()
+ unless $P10, rx474_fail
+ rx474_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx469_pos = $P10."pos"()
+ rx474_pos = $P10."pos"()
.annotate 'line', 143
# rx pass
- rx469_cur."!cursor_pass"(rx469_pos, "assertion:sym<method>")
- rx469_cur."!cursor_debug"("PASS ", "assertion:sym<method>", " at pos=", rx469_pos)
- .return (rx469_cur)
- rx469_fail:
+ rx474_cur."!cursor_pass"(rx474_pos, "assertion:sym<method>")
+ rx474_cur."!cursor_debug"("PASS ", "assertion:sym<method>", " at pos=", rx474_pos)
+ .return (rx474_cur)
+ rx474_fail:
.annotate 'line', 3
- (rx469_rep, rx469_pos, $I10, $P10) = rx469_cur."!mark_fail"(0)
- lt rx469_pos, -1, rx469_done
- eq rx469_pos, -1, rx469_fail
+ (rx474_rep, rx474_pos, $I10, $P10) = rx474_cur."!mark_fail"(0)
+ lt rx474_pos, -1, rx474_done
+ eq rx474_pos, -1, rx474_fail
jump $I10
- rx469_done:
- rx469_cur."!cursor_fail"()
- rx469_cur."!cursor_debug"("FAIL ", "assertion:sym<method>")
- .return (rx469_cur)
+ rx474_done:
+ rx474_cur."!cursor_fail"()
+ rx474_cur."!cursor_debug"("FAIL ", "assertion:sym<method>")
+ .return (rx474_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<method>" :subid("134_1274022883.50471") :method
+.sub "!PREFIX__assertion:sym<method>" :subid("134_1275811476.7961") :method
.annotate 'line', 3
- $P471 = self."!PREFIX__!subrule"("assertion", ".")
- new $P472, "ResizablePMCArray"
- push $P472, $P471
- .return ($P472)
+ $P476 = self."!PREFIX__!subrule"("assertion", ".")
+ new $P477, "ResizablePMCArray"
+ push $P477, $P476
+ .return ($P477)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<name>" :subid("135_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "assertion:sym<name>" :subid("135_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .const 'Sub' $P483 = "137_1274022883.50471"
- capture_lex $P483
- .local string rx475_tgt
- .local int rx475_pos
- .local int rx475_off
- .local int rx475_eos
- .local int rx475_rep
- .local pmc rx475_cur
- (rx475_cur, rx475_pos, rx475_tgt) = self."!cursor_start"()
- rx475_cur."!cursor_debug"("START ", "assertion:sym<name>")
- rx475_cur."!cursor_caparray"("assertion", "nibbler", "arglist")
- .lex unicode:"$\x{a2}", rx475_cur
- .local pmc match
- .lex "$/", match
- length rx475_eos, rx475_tgt
- set rx475_off, 0
- lt rx475_pos, 2, rx475_start
- sub rx475_off, rx475_pos, 1
- substr rx475_tgt, rx475_tgt, rx475_off
- rx475_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan478_done
- goto rxscan478_scan
- rxscan478_loop:
- ($P10) = rx475_cur."from"()
- inc $P10
- set rx475_pos, $P10
- ge rx475_pos, rx475_eos, rxscan478_done
- rxscan478_scan:
- set_addr $I10, rxscan478_loop
- rx475_cur."!mark_push"(0, rx475_pos, $I10)
- rxscan478_done:
+ .const 'Sub' $P488 = "137_1275811476.7961"
+ capture_lex $P488
+ .local string rx480_tgt
+ .local int rx480_pos
+ .local int rx480_off
+ .local int rx480_eos
+ .local int rx480_rep
+ .local pmc rx480_cur
+ (rx480_cur, rx480_pos, rx480_tgt) = self."!cursor_start"()
+ rx480_cur."!cursor_debug"("START ", "assertion:sym<name>")
+ rx480_cur."!cursor_caparray"("nibbler", "arglist", "assertion")
+ .lex unicode:"$\x{a2}", rx480_cur
+ .local pmc match
+ .lex "$/", match
+ length rx480_eos, rx480_tgt
+ gt rx480_pos, rx480_eos, rx480_done
+ set rx480_off, 0
+ lt rx480_pos, 2, rx480_start
+ sub rx480_off, rx480_pos, 1
+ substr rx480_tgt, rx480_tgt, rx480_off
+ rx480_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan483_done
+ goto rxscan483_scan
+ rxscan483_loop:
+ ($P10) = rx480_cur."from"()
+ inc $P10
+ set rx480_pos, $P10
+ ge rx480_pos, rx480_eos, rxscan483_done
+ rxscan483_scan:
+ set_addr $I10, rxscan483_loop
+ rx480_cur."!mark_push"(0, rx480_pos, $I10)
+ rxscan483_done:
.annotate 'line', 148
# rx subcapture "longname"
- set_addr $I10, rxcap_479_fail
- rx475_cur."!mark_push"(0, rx475_pos, $I10)
+ set_addr $I10, rxcap_484_fail
+ rx480_cur."!mark_push"(0, rx480_pos, $I10)
# rx charclass_q w r 1..-1
- sub $I10, rx475_pos, rx475_off
- find_not_cclass $I11, 8192, rx475_tgt, $I10, rx475_eos
+ sub $I10, rx480_pos, rx480_off
+ find_not_cclass $I11, 8192, rx480_tgt, $I10, rx480_eos
add $I12, $I10, 1
- lt $I11, $I12, rx475_fail
- add rx475_pos, rx475_off, $I11
- set_addr $I10, rxcap_479_fail
- ($I12, $I11) = rx475_cur."!mark_peek"($I10)
- rx475_cur."!cursor_pos"($I11)
- ($P10) = rx475_cur."!cursor_start"()
- $P10."!cursor_pass"(rx475_pos, "")
- rx475_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx480_fail
+ add rx480_pos, rx480_off, $I11
+ set_addr $I10, rxcap_484_fail
+ ($I12, $I11) = rx480_cur."!mark_peek"($I10)
+ rx480_cur."!cursor_pos"($I11)
+ ($P10) = rx480_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx480_pos, "")
+ rx480_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("longname")
- goto rxcap_479_done
- rxcap_479_fail:
- goto rx475_fail
- rxcap_479_done:
+ goto rxcap_484_done
+ rxcap_484_fail:
+ goto rx480_fail
+ rxcap_484_done:
.annotate 'line', 155
- # rx rxquantr480 ** 0..1
- set_addr $I486, rxquantr480_done
- rx475_cur."!mark_push"(0, rx475_pos, $I486)
- rxquantr480_loop:
- alt481_0:
+ # rx rxquantr485 ** 0..1
+ set_addr $I491, rxquantr485_done
+ rx480_cur."!mark_push"(0, rx480_pos, $I491)
+ rxquantr485_loop:
+ alt486_0:
.annotate 'line', 149
- set_addr $I10, alt481_1
- rx475_cur."!mark_push"(0, rx475_pos, $I10)
+ set_addr $I10, alt486_1
+ rx480_cur."!mark_push"(0, rx480_pos, $I10)
.annotate 'line', 150
# rx subrule "before" subtype=zerowidth negate=
- rx475_cur."!cursor_pos"(rx475_pos)
- .const 'Sub' $P483 = "137_1274022883.50471"
- capture_lex $P483
- $P10 = rx475_cur."before"($P483)
- unless $P10, rx475_fail
- goto alt481_end
- alt481_1:
- set_addr $I10, alt481_2
- rx475_cur."!mark_push"(0, rx475_pos, $I10)
+ rx480_cur."!cursor_pos"(rx480_pos)
+ .const 'Sub' $P488 = "137_1275811476.7961"
+ capture_lex $P488
+ $P10 = rx480_cur."before"($P488)
+ unless $P10, rx480_fail
+ goto alt486_end
+ alt486_1:
+ set_addr $I10, alt486_2
+ rx480_cur."!mark_push"(0, rx480_pos, $I10)
.annotate 'line', 151
# rx literal "="
- add $I11, rx475_pos, 1
- gt $I11, rx475_eos, rx475_fail
- sub $I11, rx475_pos, rx475_off
- substr $S10, rx475_tgt, $I11, 1
- ne $S10, "=", rx475_fail
- add rx475_pos, 1
+ add $I11, rx480_pos, 1
+ gt $I11, rx480_eos, rx480_fail
+ sub $I11, rx480_pos, rx480_off
+ substr $S10, rx480_tgt, $I11, 1
+ ne $S10, "=", rx480_fail
+ add rx480_pos, 1
# rx subrule "assertion" subtype=capture negate=
- rx475_cur."!cursor_pos"(rx475_pos)
- $P10 = rx475_cur."assertion"()
- unless $P10, rx475_fail
- rx475_cur."!mark_push"(0, -1, 0, $P10)
+ rx480_cur."!cursor_pos"(rx480_pos)
+ $P10 = rx480_cur."assertion"()
+ unless $P10, rx480_fail
+ rx480_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("assertion")
- rx475_pos = $P10."pos"()
- goto alt481_end
- alt481_2:
- set_addr $I10, alt481_3
- rx475_cur."!mark_push"(0, rx475_pos, $I10)
+ rx480_pos = $P10."pos"()
+ goto alt486_end
+ alt486_2:
+ set_addr $I10, alt486_3
+ rx480_cur."!mark_push"(0, rx480_pos, $I10)
.annotate 'line', 152
# rx literal ":"
- add $I11, rx475_pos, 1
- gt $I11, rx475_eos, rx475_fail
- sub $I11, rx475_pos, rx475_off
- substr $S10, rx475_tgt, $I11, 1
- ne $S10, ":", rx475_fail
- add rx475_pos, 1
+ add $I11, rx480_pos, 1
+ gt $I11, rx480_eos, rx480_fail
+ sub $I11, rx480_pos, rx480_off
+ substr $S10, rx480_tgt, $I11, 1
+ ne $S10, ":", rx480_fail
+ add rx480_pos, 1
# rx subrule "arglist" subtype=capture negate=
- rx475_cur."!cursor_pos"(rx475_pos)
- $P10 = rx475_cur."arglist"()
- unless $P10, rx475_fail
- rx475_cur."!mark_push"(0, -1, 0, $P10)
+ rx480_cur."!cursor_pos"(rx480_pos)
+ $P10 = rx480_cur."arglist"()
+ unless $P10, rx480_fail
+ rx480_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("arglist")
- rx475_pos = $P10."pos"()
- goto alt481_end
- alt481_3:
- set_addr $I10, alt481_4
- rx475_cur."!mark_push"(0, rx475_pos, $I10)
+ rx480_pos = $P10."pos"()
+ goto alt486_end
+ alt486_3:
+ set_addr $I10, alt486_4
+ rx480_cur."!mark_push"(0, rx480_pos, $I10)
.annotate 'line', 153
# rx literal "("
- add $I11, rx475_pos, 1
- gt $I11, rx475_eos, rx475_fail
- sub $I11, rx475_pos, rx475_off
- substr $S10, rx475_tgt, $I11, 1
- ne $S10, "(", rx475_fail
- add rx475_pos, 1
+ add $I11, rx480_pos, 1
+ gt $I11, rx480_eos, rx480_fail
+ sub $I11, rx480_pos, rx480_off
+ substr $S10, rx480_tgt, $I11, 1
+ ne $S10, "(", rx480_fail
+ add rx480_pos, 1
# rx subrule "arglist" subtype=capture negate=
- rx475_cur."!cursor_pos"(rx475_pos)
- $P10 = rx475_cur."arglist"()
- unless $P10, rx475_fail
- rx475_cur."!mark_push"(0, -1, 0, $P10)
+ rx480_cur."!cursor_pos"(rx480_pos)
+ $P10 = rx480_cur."arglist"()
+ unless $P10, rx480_fail
+ rx480_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("arglist")
- rx475_pos = $P10."pos"()
+ rx480_pos = $P10."pos"()
# rx literal ")"
- add $I11, rx475_pos, 1
- gt $I11, rx475_eos, rx475_fail
- sub $I11, rx475_pos, rx475_off
- substr $S10, rx475_tgt, $I11, 1
- ne $S10, ")", rx475_fail
- add rx475_pos, 1
- goto alt481_end
- alt481_4:
+ add $I11, rx480_pos, 1
+ gt $I11, rx480_eos, rx480_fail
+ sub $I11, rx480_pos, rx480_off
+ substr $S10, rx480_tgt, $I11, 1
+ ne $S10, ")", rx480_fail
+ add rx480_pos, 1
+ goto alt486_end
+ alt486_4:
.annotate 'line', 154
# rx subrule "normspace" subtype=method negate=
- rx475_cur."!cursor_pos"(rx475_pos)
- $P10 = rx475_cur."normspace"()
- unless $P10, rx475_fail
- rx475_pos = $P10."pos"()
+ rx480_cur."!cursor_pos"(rx480_pos)
+ $P10 = rx480_cur."normspace"()
+ unless $P10, rx480_fail
+ rx480_pos = $P10."pos"()
# rx subrule "nibbler" subtype=capture negate=
- rx475_cur."!cursor_pos"(rx475_pos)
- $P10 = rx475_cur."nibbler"()
- unless $P10, rx475_fail
- rx475_cur."!mark_push"(0, -1, 0, $P10)
+ rx480_cur."!cursor_pos"(rx480_pos)
+ $P10 = rx480_cur."nibbler"()
+ unless $P10, rx480_fail
+ rx480_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("nibbler")
- rx475_pos = $P10."pos"()
- alt481_end:
+ rx480_pos = $P10."pos"()
+ alt486_end:
.annotate 'line', 155
- (rx475_rep) = rx475_cur."!mark_commit"($I486)
- rxquantr480_done:
+ (rx480_rep) = rx480_cur."!mark_commit"($I491)
+ rxquantr485_done:
.annotate 'line', 147
# rx pass
- rx475_cur."!cursor_pass"(rx475_pos, "assertion:sym<name>")
- rx475_cur."!cursor_debug"("PASS ", "assertion:sym<name>", " at pos=", rx475_pos)
- .return (rx475_cur)
- rx475_fail:
+ rx480_cur."!cursor_pass"(rx480_pos, "assertion:sym<name>")
+ rx480_cur."!cursor_debug"("PASS ", "assertion:sym<name>", " at pos=", rx480_pos)
+ .return (rx480_cur)
+ rx480_fail:
.annotate 'line', 3
- (rx475_rep, rx475_pos, $I10, $P10) = rx475_cur."!mark_fail"(0)
- lt rx475_pos, -1, rx475_done
- eq rx475_pos, -1, rx475_fail
+ (rx480_rep, rx480_pos, $I10, $P10) = rx480_cur."!mark_fail"(0)
+ lt rx480_pos, -1, rx480_done
+ eq rx480_pos, -1, rx480_fail
jump $I10
- rx475_done:
- rx475_cur."!cursor_fail"()
- rx475_cur."!cursor_debug"("FAIL ", "assertion:sym<name>")
- .return (rx475_cur)
+ rx480_done:
+ rx480_cur."!cursor_fail"()
+ rx480_cur."!cursor_debug"("FAIL ", "assertion:sym<name>")
+ .return (rx480_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<name>" :subid("136_1274022883.50471") :method
+.sub "!PREFIX__assertion:sym<name>" :subid("136_1275811476.7961") :method
.annotate 'line', 3
- new $P477, "ResizablePMCArray"
- push $P477, ""
- .return ($P477)
+ new $P482, "ResizablePMCArray"
+ push $P482, ""
+ .return ($P482)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block482" :anon :subid("137_1274022883.50471") :method :outer("135_1274022883.50471")
+.sub "_block487" :anon :subid("137_1275811476.7961") :method :outer("135_1275811476.7961")
.annotate 'line', 150
- .local string rx484_tgt
- .local int rx484_pos
- .local int rx484_off
- .local int rx484_eos
- .local int rx484_rep
- .local pmc rx484_cur
- (rx484_cur, rx484_pos, rx484_tgt) = self."!cursor_start"()
- rx484_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx484_cur
- .local pmc match
- .lex "$/", match
- length rx484_eos, rx484_tgt
- set rx484_off, 0
- lt rx484_pos, 2, rx484_start
- sub rx484_off, rx484_pos, 1
- substr rx484_tgt, rx484_tgt, rx484_off
- rx484_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan485_done
- goto rxscan485_scan
- rxscan485_loop:
- ($P10) = rx484_cur."from"()
- inc $P10
- set rx484_pos, $P10
- ge rx484_pos, rx484_eos, rxscan485_done
- rxscan485_scan:
- set_addr $I10, rxscan485_loop
- rx484_cur."!mark_push"(0, rx484_pos, $I10)
- rxscan485_done:
+ .local string rx489_tgt
+ .local int rx489_pos
+ .local int rx489_off
+ .local int rx489_eos
+ .local int rx489_rep
+ .local pmc rx489_cur
+ (rx489_cur, rx489_pos, rx489_tgt) = self."!cursor_start"()
+ rx489_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx489_cur
+ .local pmc match
+ .lex "$/", match
+ length rx489_eos, rx489_tgt
+ gt rx489_pos, rx489_eos, rx489_done
+ set rx489_off, 0
+ lt rx489_pos, 2, rx489_start
+ sub rx489_off, rx489_pos, 1
+ substr rx489_tgt, rx489_tgt, rx489_off
+ rx489_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan490_done
+ goto rxscan490_scan
+ rxscan490_loop:
+ ($P10) = rx489_cur."from"()
+ inc $P10
+ set rx489_pos, $P10
+ ge rx489_pos, rx489_eos, rxscan490_done
+ rxscan490_scan:
+ set_addr $I10, rxscan490_loop
+ rx489_cur."!mark_push"(0, rx489_pos, $I10)
+ rxscan490_done:
# rx literal ">"
- add $I11, rx484_pos, 1
- gt $I11, rx484_eos, rx484_fail
- sub $I11, rx484_pos, rx484_off
- substr $S10, rx484_tgt, $I11, 1
- ne $S10, ">", rx484_fail
- add rx484_pos, 1
- # rx pass
- rx484_cur."!cursor_pass"(rx484_pos, "")
- rx484_cur."!cursor_debug"("PASS ", "", " at pos=", rx484_pos)
- .return (rx484_cur)
- rx484_fail:
- (rx484_rep, rx484_pos, $I10, $P10) = rx484_cur."!mark_fail"(0)
- lt rx484_pos, -1, rx484_done
- eq rx484_pos, -1, rx484_fail
- jump $I10
- rx484_done:
- rx484_cur."!cursor_fail"()
- rx484_cur."!cursor_debug"("FAIL ", "")
- .return (rx484_cur)
+ add $I11, rx489_pos, 1
+ gt $I11, rx489_eos, rx489_fail
+ sub $I11, rx489_pos, rx489_off
+ substr $S10, rx489_tgt, $I11, 1
+ ne $S10, ">", rx489_fail
+ add rx489_pos, 1
+ # rx pass
+ rx489_cur."!cursor_pass"(rx489_pos, "")
+ rx489_cur."!cursor_debug"("PASS ", "", " at pos=", rx489_pos)
+ .return (rx489_cur)
+ rx489_fail:
+ (rx489_rep, rx489_pos, $I10, $P10) = rx489_cur."!mark_fail"(0)
+ lt rx489_pos, -1, rx489_done
+ eq rx489_pos, -1, rx489_fail
+ jump $I10
+ rx489_done:
+ rx489_cur."!cursor_fail"()
+ rx489_cur."!cursor_debug"("FAIL ", "")
+ .return (rx489_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "assertion:sym<[>" :subid("138_1274022883.50471") :method :outer("11_1274022883.50471")
-.annotate 'line', 3
- .const 'Sub' $P493 = "140_1274022883.50471"
- capture_lex $P493
- .local string rx488_tgt
- .local int rx488_pos
- .local int rx488_off
- .local int rx488_eos
- .local int rx488_rep
- .local pmc rx488_cur
- (rx488_cur, rx488_pos, rx488_tgt) = self."!cursor_start"()
- rx488_cur."!cursor_debug"("START ", "assertion:sym<[>")
- rx488_cur."!cursor_caparray"("cclass_elem")
- .lex unicode:"$\x{a2}", rx488_cur
- .local pmc match
- .lex "$/", match
- length rx488_eos, rx488_tgt
- set rx488_off, 0
- lt rx488_pos, 2, rx488_start
- sub rx488_off, rx488_pos, 1
- substr rx488_tgt, rx488_tgt, rx488_off
- rx488_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan491_done
- goto rxscan491_scan
- rxscan491_loop:
- ($P10) = rx488_cur."from"()
- inc $P10
- set rx488_pos, $P10
- ge rx488_pos, rx488_eos, rxscan491_done
- rxscan491_scan:
- set_addr $I10, rxscan491_loop
- rx488_cur."!mark_push"(0, rx488_pos, $I10)
- rxscan491_done:
+.sub "assertion:sym<[>" :subid("138_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+ .const 'Sub' $P498 = "140_1275811476.7961"
+ capture_lex $P498
+ .local string rx493_tgt
+ .local int rx493_pos
+ .local int rx493_off
+ .local int rx493_eos
+ .local int rx493_rep
+ .local pmc rx493_cur
+ (rx493_cur, rx493_pos, rx493_tgt) = self."!cursor_start"()
+ rx493_cur."!cursor_debug"("START ", "assertion:sym<[>")
+ rx493_cur."!cursor_caparray"("cclass_elem")
+ .lex unicode:"$\x{a2}", rx493_cur
+ .local pmc match
+ .lex "$/", match
+ length rx493_eos, rx493_tgt
+ gt rx493_pos, rx493_eos, rx493_done
+ set rx493_off, 0
+ lt rx493_pos, 2, rx493_start
+ sub rx493_off, rx493_pos, 1
+ substr rx493_tgt, rx493_tgt, rx493_off
+ rx493_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan496_done
+ goto rxscan496_scan
+ rxscan496_loop:
+ ($P10) = rx493_cur."from"()
+ inc $P10
+ set rx493_pos, $P10
+ ge rx493_pos, rx493_eos, rxscan496_done
+ rxscan496_scan:
+ set_addr $I10, rxscan496_loop
+ rx493_cur."!mark_push"(0, rx493_pos, $I10)
+ rxscan496_done:
.annotate 'line', 158
# rx subrule "before" subtype=zerowidth negate=
- rx488_cur."!cursor_pos"(rx488_pos)
- .const 'Sub' $P493 = "140_1274022883.50471"
- capture_lex $P493
- $P10 = rx488_cur."before"($P493)
- unless $P10, rx488_fail
- # rx rxquantr497 ** 1..*
- set_addr $I498, rxquantr497_done
- rx488_cur."!mark_push"(0, -1, $I498)
- rxquantr497_loop:
+ rx493_cur."!cursor_pos"(rx493_pos)
+ .const 'Sub' $P498 = "140_1275811476.7961"
+ capture_lex $P498
+ $P10 = rx493_cur."before"($P498)
+ unless $P10, rx493_fail
+ # rx rxquantr502 ** 1..*
+ set_addr $I503, rxquantr502_done
+ rx493_cur."!mark_push"(0, -1, $I503)
+ rxquantr502_loop:
# rx subrule "cclass_elem" subtype=capture negate=
- rx488_cur."!cursor_pos"(rx488_pos)
- $P10 = rx488_cur."cclass_elem"()
- unless $P10, rx488_fail
- rx488_cur."!mark_push"(0, -1, 0, $P10)
+ rx493_cur."!cursor_pos"(rx493_pos)
+ $P10 = rx493_cur."cclass_elem"()
+ unless $P10, rx493_fail
+ rx493_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("cclass_elem")
- rx488_pos = $P10."pos"()
- (rx488_rep) = rx488_cur."!mark_commit"($I498)
- rx488_cur."!mark_push"(rx488_rep, rx488_pos, $I498)
- goto rxquantr497_loop
- rxquantr497_done:
+ rx493_pos = $P10."pos"()
+ (rx493_rep) = rx493_cur."!mark_commit"($I503)
+ rx493_cur."!mark_push"(rx493_rep, rx493_pos, $I503)
+ goto rxquantr502_loop
+ rxquantr502_done:
# rx pass
- rx488_cur."!cursor_pass"(rx488_pos, "assertion:sym<[>")
- rx488_cur."!cursor_debug"("PASS ", "assertion:sym<[>", " at pos=", rx488_pos)
- .return (rx488_cur)
- rx488_fail:
+ rx493_cur."!cursor_pass"(rx493_pos, "assertion:sym<[>")
+ rx493_cur."!cursor_debug"("PASS ", "assertion:sym<[>", " at pos=", rx493_pos)
+ .return (rx493_cur)
+ rx493_fail:
.annotate 'line', 3
- (rx488_rep, rx488_pos, $I10, $P10) = rx488_cur."!mark_fail"(0)
- lt rx488_pos, -1, rx488_done
- eq rx488_pos, -1, rx488_fail
+ (rx493_rep, rx493_pos, $I10, $P10) = rx493_cur."!mark_fail"(0)
+ lt rx493_pos, -1, rx493_done
+ eq rx493_pos, -1, rx493_fail
jump $I10
- rx488_done:
- rx488_cur."!cursor_fail"()
- rx488_cur."!cursor_debug"("FAIL ", "assertion:sym<[>")
- .return (rx488_cur)
+ rx493_done:
+ rx493_cur."!cursor_fail"()
+ rx493_cur."!cursor_debug"("FAIL ", "assertion:sym<[>")
+ .return (rx493_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__assertion:sym<[>" :subid("139_1274022883.50471") :method
+.sub "!PREFIX__assertion:sym<[>" :subid("139_1275811476.7961") :method
.annotate 'line', 3
- new $P490, "ResizablePMCArray"
- push $P490, ""
- .return ($P490)
+ new $P495, "ResizablePMCArray"
+ push $P495, ""
+ .return ($P495)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block492" :anon :subid("140_1274022883.50471") :method :outer("138_1274022883.50471")
+.sub "_block497" :anon :subid("140_1275811476.7961") :method :outer("138_1275811476.7961")
.annotate 'line', 158
- .local string rx494_tgt
- .local int rx494_pos
- .local int rx494_off
- .local int rx494_eos
- .local int rx494_rep
- .local pmc rx494_cur
- (rx494_cur, rx494_pos, rx494_tgt) = self."!cursor_start"()
- rx494_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx494_cur
- .local pmc match
- .lex "$/", match
- length rx494_eos, rx494_tgt
- set rx494_off, 0
- lt rx494_pos, 2, rx494_start
- sub rx494_off, rx494_pos, 1
- substr rx494_tgt, rx494_tgt, rx494_off
- rx494_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan495_done
- goto rxscan495_scan
- rxscan495_loop:
- ($P10) = rx494_cur."from"()
- inc $P10
- set rx494_pos, $P10
- ge rx494_pos, rx494_eos, rxscan495_done
- rxscan495_scan:
- set_addr $I10, rxscan495_loop
- rx494_cur."!mark_push"(0, rx494_pos, $I10)
- rxscan495_done:
- alt496_0:
- set_addr $I10, alt496_1
- rx494_cur."!mark_push"(0, rx494_pos, $I10)
+ .local string rx499_tgt
+ .local int rx499_pos
+ .local int rx499_off
+ .local int rx499_eos
+ .local int rx499_rep
+ .local pmc rx499_cur
+ (rx499_cur, rx499_pos, rx499_tgt) = self."!cursor_start"()
+ rx499_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx499_cur
+ .local pmc match
+ .lex "$/", match
+ length rx499_eos, rx499_tgt
+ gt rx499_pos, rx499_eos, rx499_done
+ set rx499_off, 0
+ lt rx499_pos, 2, rx499_start
+ sub rx499_off, rx499_pos, 1
+ substr rx499_tgt, rx499_tgt, rx499_off
+ rx499_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan500_done
+ goto rxscan500_scan
+ rxscan500_loop:
+ ($P10) = rx499_cur."from"()
+ inc $P10
+ set rx499_pos, $P10
+ ge rx499_pos, rx499_eos, rxscan500_done
+ rxscan500_scan:
+ set_addr $I10, rxscan500_loop
+ rx499_cur."!mark_push"(0, rx499_pos, $I10)
+ rxscan500_done:
+ alt501_0:
+ set_addr $I10, alt501_1
+ rx499_cur."!mark_push"(0, rx499_pos, $I10)
# rx literal "["
- add $I11, rx494_pos, 1
- gt $I11, rx494_eos, rx494_fail
- sub $I11, rx494_pos, rx494_off
- substr $S10, rx494_tgt, $I11, 1
- ne $S10, "[", rx494_fail
- add rx494_pos, 1
- goto alt496_end
- alt496_1:
- set_addr $I10, alt496_2
- rx494_cur."!mark_push"(0, rx494_pos, $I10)
+ add $I11, rx499_pos, 1
+ gt $I11, rx499_eos, rx499_fail
+ sub $I11, rx499_pos, rx499_off
+ substr $S10, rx499_tgt, $I11, 1
+ ne $S10, "[", rx499_fail
+ add rx499_pos, 1
+ goto alt501_end
+ alt501_1:
+ set_addr $I10, alt501_2
+ rx499_cur."!mark_push"(0, rx499_pos, $I10)
# rx literal "+"
- add $I11, rx494_pos, 1
- gt $I11, rx494_eos, rx494_fail
- sub $I11, rx494_pos, rx494_off
- substr $S10, rx494_tgt, $I11, 1
- ne $S10, "+", rx494_fail
- add rx494_pos, 1
- goto alt496_end
- alt496_2:
+ add $I11, rx499_pos, 1
+ gt $I11, rx499_eos, rx499_fail
+ sub $I11, rx499_pos, rx499_off
+ substr $S10, rx499_tgt, $I11, 1
+ ne $S10, "+", rx499_fail
+ add rx499_pos, 1
+ goto alt501_end
+ alt501_2:
# rx literal "-"
- add $I11, rx494_pos, 1
- gt $I11, rx494_eos, rx494_fail
- sub $I11, rx494_pos, rx494_off
- substr $S10, rx494_tgt, $I11, 1
- ne $S10, "-", rx494_fail
- add rx494_pos, 1
- alt496_end:
- # rx pass
- rx494_cur."!cursor_pass"(rx494_pos, "")
- rx494_cur."!cursor_debug"("PASS ", "", " at pos=", rx494_pos)
- .return (rx494_cur)
- rx494_fail:
- (rx494_rep, rx494_pos, $I10, $P10) = rx494_cur."!mark_fail"(0)
- lt rx494_pos, -1, rx494_done
- eq rx494_pos, -1, rx494_fail
- jump $I10
- rx494_done:
- rx494_cur."!cursor_fail"()
- rx494_cur."!cursor_debug"("FAIL ", "")
- .return (rx494_cur)
+ add $I11, rx499_pos, 1
+ gt $I11, rx499_eos, rx499_fail
+ sub $I11, rx499_pos, rx499_off
+ substr $S10, rx499_tgt, $I11, 1
+ ne $S10, "-", rx499_fail
+ add rx499_pos, 1
+ alt501_end:
+ # rx pass
+ rx499_cur."!cursor_pass"(rx499_pos, "")
+ rx499_cur."!cursor_debug"("PASS ", "", " at pos=", rx499_pos)
+ .return (rx499_cur)
+ rx499_fail:
+ (rx499_rep, rx499_pos, $I10, $P10) = rx499_cur."!mark_fail"(0)
+ lt rx499_pos, -1, rx499_done
+ eq rx499_pos, -1, rx499_fail
+ jump $I10
+ rx499_done:
+ rx499_cur."!cursor_fail"()
+ rx499_cur."!cursor_debug"("FAIL ", "")
+ .return (rx499_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "cclass_elem" :subid("141_1274022883.50471") :method :outer("11_1274022883.50471")
-.annotate 'line', 3
- .const 'Sub' $P511 = "143_1274022883.50471"
- capture_lex $P511
- .local string rx500_tgt
- .local int rx500_pos
- .local int rx500_off
- .local int rx500_eos
- .local int rx500_rep
- .local pmc rx500_cur
- (rx500_cur, rx500_pos, rx500_tgt) = self."!cursor_start"()
- rx500_cur."!cursor_debug"("START ", "cclass_elem")
- rx500_cur."!cursor_caparray"("charspec")
- .lex unicode:"$\x{a2}", rx500_cur
- .local pmc match
- .lex "$/", match
- length rx500_eos, rx500_tgt
- set rx500_off, 0
- lt rx500_pos, 2, rx500_start
- sub rx500_off, rx500_pos, 1
- substr rx500_tgt, rx500_tgt, rx500_off
- rx500_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan503_done
- goto rxscan503_scan
- rxscan503_loop:
- ($P10) = rx500_cur."from"()
- inc $P10
- set rx500_pos, $P10
- ge rx500_pos, rx500_eos, rxscan503_done
- rxscan503_scan:
- set_addr $I10, rxscan503_loop
- rx500_cur."!mark_push"(0, rx500_pos, $I10)
- rxscan503_done:
+.sub "cclass_elem" :subid("141_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+ .const 'Sub' $P516 = "143_1275811476.7961"
+ capture_lex $P516
+ .local string rx505_tgt
+ .local int rx505_pos
+ .local int rx505_off
+ .local int rx505_eos
+ .local int rx505_rep
+ .local pmc rx505_cur
+ (rx505_cur, rx505_pos, rx505_tgt) = self."!cursor_start"()
+ rx505_cur."!cursor_debug"("START ", "cclass_elem")
+ rx505_cur."!cursor_caparray"("charspec")
+ .lex unicode:"$\x{a2}", rx505_cur
+ .local pmc match
+ .lex "$/", match
+ length rx505_eos, rx505_tgt
+ gt rx505_pos, rx505_eos, rx505_done
+ set rx505_off, 0
+ lt rx505_pos, 2, rx505_start
+ sub rx505_off, rx505_pos, 1
+ substr rx505_tgt, rx505_tgt, rx505_off
+ rx505_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan508_done
+ goto rxscan508_scan
+ rxscan508_loop:
+ ($P10) = rx505_cur."from"()
+ inc $P10
+ set rx505_pos, $P10
+ ge rx505_pos, rx505_eos, rxscan508_done
+ rxscan508_scan:
+ set_addr $I10, rxscan508_loop
+ rx505_cur."!mark_push"(0, rx505_pos, $I10)
+ rxscan508_done:
.annotate 'line', 161
# rx subcapture "sign"
- set_addr $I10, rxcap_505_fail
- rx500_cur."!mark_push"(0, rx500_pos, $I10)
- alt504_0:
- set_addr $I10, alt504_1
- rx500_cur."!mark_push"(0, rx500_pos, $I10)
+ set_addr $I10, rxcap_510_fail
+ rx505_cur."!mark_push"(0, rx505_pos, $I10)
+ alt509_0:
+ set_addr $I10, alt509_1
+ rx505_cur."!mark_push"(0, rx505_pos, $I10)
# rx literal "+"
- add $I11, rx500_pos, 1
- gt $I11, rx500_eos, rx500_fail
- sub $I11, rx500_pos, rx500_off
- substr $S10, rx500_tgt, $I11, 1
- ne $S10, "+", rx500_fail
- add rx500_pos, 1
- goto alt504_end
- alt504_1:
- set_addr $I10, alt504_2
- rx500_cur."!mark_push"(0, rx500_pos, $I10)
+ add $I11, rx505_pos, 1
+ gt $I11, rx505_eos, rx505_fail
+ sub $I11, rx505_pos, rx505_off
+ substr $S10, rx505_tgt, $I11, 1
+ ne $S10, "+", rx505_fail
+ add rx505_pos, 1
+ goto alt509_end
+ alt509_1:
+ set_addr $I10, alt509_2
+ rx505_cur."!mark_push"(0, rx505_pos, $I10)
# rx literal "-"
- add $I11, rx500_pos, 1
- gt $I11, rx500_eos, rx500_fail
- sub $I11, rx500_pos, rx500_off
- substr $S10, rx500_tgt, $I11, 1
- ne $S10, "-", rx500_fail
- add rx500_pos, 1
- goto alt504_end
- alt504_2:
- alt504_end:
- set_addr $I10, rxcap_505_fail
- ($I12, $I11) = rx500_cur."!mark_peek"($I10)
- rx500_cur."!cursor_pos"($I11)
- ($P10) = rx500_cur."!cursor_start"()
- $P10."!cursor_pass"(rx500_pos, "")
- rx500_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx505_pos, 1
+ gt $I11, rx505_eos, rx505_fail
+ sub $I11, rx505_pos, rx505_off
+ substr $S10, rx505_tgt, $I11, 1
+ ne $S10, "-", rx505_fail
+ add rx505_pos, 1
+ goto alt509_end
+ alt509_2:
+ alt509_end:
+ set_addr $I10, rxcap_510_fail
+ ($I12, $I11) = rx505_cur."!mark_peek"($I10)
+ rx505_cur."!cursor_pos"($I11)
+ ($P10) = rx505_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx505_pos, "")
+ rx505_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sign")
- goto rxcap_505_done
- rxcap_505_fail:
- goto rx500_fail
- rxcap_505_done:
+ goto rxcap_510_done
+ rxcap_510_fail:
+ goto rx505_fail
+ rxcap_510_done:
.annotate 'line', 162
- # rx rxquantr506 ** 0..1
- set_addr $I507, rxquantr506_done
- rx500_cur."!mark_push"(0, rx500_pos, $I507)
- rxquantr506_loop:
+ # rx rxquantr511 ** 0..1
+ set_addr $I512, rxquantr511_done
+ rx505_cur."!mark_push"(0, rx505_pos, $I512)
+ rxquantr511_loop:
# rx subrule "normspace" subtype=method negate=
- rx500_cur."!cursor_pos"(rx500_pos)
- $P10 = rx500_cur."normspace"()
- unless $P10, rx500_fail
- rx500_pos = $P10."pos"()
- (rx500_rep) = rx500_cur."!mark_commit"($I507)
- rxquantr506_done:
- alt508_0:
+ rx505_cur."!cursor_pos"(rx505_pos)
+ $P10 = rx505_cur."normspace"()
+ unless $P10, rx505_fail
+ rx505_pos = $P10."pos"()
+ (rx505_rep) = rx505_cur."!mark_commit"($I512)
+ rxquantr511_done:
+ alt513_0:
.annotate 'line', 163
- set_addr $I10, alt508_1
- rx500_cur."!mark_push"(0, rx500_pos, $I10)
+ set_addr $I10, alt513_1
+ rx505_cur."!mark_push"(0, rx505_pos, $I10)
.annotate 'line', 164
# rx literal "["
- add $I11, rx500_pos, 1
- gt $I11, rx500_eos, rx500_fail
- sub $I11, rx500_pos, rx500_off
- substr $S10, rx500_tgt, $I11, 1
- ne $S10, "[", rx500_fail
- add rx500_pos, 1
+ add $I11, rx505_pos, 1
+ gt $I11, rx505_eos, rx505_fail
+ sub $I11, rx505_pos, rx505_off
+ substr $S10, rx505_tgt, $I11, 1
+ ne $S10, "[", rx505_fail
+ add rx505_pos, 1
.annotate 'line', 167
- # rx rxquantr509 ** 0..*
- set_addr $I530, rxquantr509_done
- rx500_cur."!mark_push"(0, rx500_pos, $I530)
- rxquantr509_loop:
+ # rx rxquantr514 ** 0..*
+ set_addr $I535, rxquantr514_done
+ rx505_cur."!mark_push"(0, rx505_pos, $I535)
+ rxquantr514_loop:
.annotate 'line', 164
- # rx subrule $P511 subtype=capture negate=
- rx500_cur."!cursor_pos"(rx500_pos)
- .const 'Sub' $P511 = "143_1274022883.50471"
- capture_lex $P511
- $P10 = rx500_cur.$P511()
- unless $P10, rx500_fail
- rx500_cur."!mark_push"(0, -1, 0, $P10)
+ # rx subrule $P516 subtype=capture negate=
+ rx505_cur."!cursor_pos"(rx505_pos)
+ .const 'Sub' $P516 = "143_1275811476.7961"
+ capture_lex $P516
+ $P10 = rx505_cur.$P516()
+ unless $P10, rx505_fail
+ rx505_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("charspec")
- rx500_pos = $P10."pos"()
+ rx505_pos = $P10."pos"()
.annotate 'line', 167
- (rx500_rep) = rx500_cur."!mark_commit"($I530)
- rx500_cur."!mark_push"(rx500_rep, rx500_pos, $I530)
- goto rxquantr509_loop
- rxquantr509_done:
+ (rx505_rep) = rx505_cur."!mark_commit"($I535)
+ rx505_cur."!mark_push"(rx505_rep, rx505_pos, $I535)
+ goto rxquantr514_loop
+ rxquantr514_done:
.annotate 'line', 168
# rx charclass_q s r 0..-1
- sub $I10, rx500_pos, rx500_off
- find_not_cclass $I11, 32, rx500_tgt, $I10, rx500_eos
- add rx500_pos, rx500_off, $I11
+ sub $I10, rx505_pos, rx505_off
+ find_not_cclass $I11, 32, rx505_tgt, $I10, rx505_eos
+ add rx505_pos, rx505_off, $I11
# rx literal "]"
- add $I11, rx500_pos, 1
- gt $I11, rx500_eos, rx500_fail
- sub $I11, rx500_pos, rx500_off
- substr $S10, rx500_tgt, $I11, 1
- ne $S10, "]", rx500_fail
- add rx500_pos, 1
+ add $I11, rx505_pos, 1
+ gt $I11, rx505_eos, rx505_fail
+ sub $I11, rx505_pos, rx505_off
+ substr $S10, rx505_tgt, $I11, 1
+ ne $S10, "]", rx505_fail
+ add rx505_pos, 1
.annotate 'line', 164
- goto alt508_end
- alt508_1:
+ goto alt513_end
+ alt513_1:
.annotate 'line', 169
# rx subcapture "name"
- set_addr $I10, rxcap_531_fail
- rx500_cur."!mark_push"(0, rx500_pos, $I10)
+ set_addr $I10, rxcap_536_fail
+ rx505_cur."!mark_push"(0, rx505_pos, $I10)
# rx charclass_q w r 1..-1
- sub $I10, rx500_pos, rx500_off
- find_not_cclass $I11, 8192, rx500_tgt, $I10, rx500_eos
+ sub $I10, rx505_pos, rx505_off
+ find_not_cclass $I11, 8192, rx505_tgt, $I10, rx505_eos
add $I12, $I10, 1
- lt $I11, $I12, rx500_fail
- add rx500_pos, rx500_off, $I11
- set_addr $I10, rxcap_531_fail
- ($I12, $I11) = rx500_cur."!mark_peek"($I10)
- rx500_cur."!cursor_pos"($I11)
- ($P10) = rx500_cur."!cursor_start"()
- $P10."!cursor_pass"(rx500_pos, "")
- rx500_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx505_fail
+ add rx505_pos, rx505_off, $I11
+ set_addr $I10, rxcap_536_fail
+ ($I12, $I11) = rx505_cur."!mark_peek"($I10)
+ rx505_cur."!cursor_pos"($I11)
+ ($P10) = rx505_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx505_pos, "")
+ rx505_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("name")
- goto rxcap_531_done
- rxcap_531_fail:
- goto rx500_fail
- rxcap_531_done:
- alt508_end:
+ goto rxcap_536_done
+ rxcap_536_fail:
+ goto rx505_fail
+ rxcap_536_done:
+ alt513_end:
.annotate 'line', 171
- # rx rxquantr532 ** 0..1
- set_addr $I533, rxquantr532_done
- rx500_cur."!mark_push"(0, rx500_pos, $I533)
- rxquantr532_loop:
+ # rx rxquantr537 ** 0..1
+ set_addr $I538, rxquantr537_done
+ rx505_cur."!mark_push"(0, rx505_pos, $I538)
+ rxquantr537_loop:
# rx subrule "normspace" subtype=method negate=
- rx500_cur."!cursor_pos"(rx500_pos)
- $P10 = rx500_cur."normspace"()
- unless $P10, rx500_fail
- rx500_pos = $P10."pos"()
- (rx500_rep) = rx500_cur."!mark_commit"($I533)
- rxquantr532_done:
+ rx505_cur."!cursor_pos"(rx505_pos)
+ $P10 = rx505_cur."normspace"()
+ unless $P10, rx505_fail
+ rx505_pos = $P10."pos"()
+ (rx505_rep) = rx505_cur."!mark_commit"($I538)
+ rxquantr537_done:
.annotate 'line', 160
# rx pass
- rx500_cur."!cursor_pass"(rx500_pos, "cclass_elem")
- rx500_cur."!cursor_debug"("PASS ", "cclass_elem", " at pos=", rx500_pos)
- .return (rx500_cur)
- rx500_fail:
+ rx505_cur."!cursor_pass"(rx505_pos, "cclass_elem")
+ rx505_cur."!cursor_debug"("PASS ", "cclass_elem", " at pos=", rx505_pos)
+ .return (rx505_cur)
+ rx505_fail:
.annotate 'line', 3
- (rx500_rep, rx500_pos, $I10, $P10) = rx500_cur."!mark_fail"(0)
- lt rx500_pos, -1, rx500_done
- eq rx500_pos, -1, rx500_fail
+ (rx505_rep, rx505_pos, $I10, $P10) = rx505_cur."!mark_fail"(0)
+ lt rx505_pos, -1, rx505_done
+ eq rx505_pos, -1, rx505_fail
jump $I10
- rx500_done:
- rx500_cur."!cursor_fail"()
- rx500_cur."!cursor_debug"("FAIL ", "cclass_elem")
- .return (rx500_cur)
+ rx505_done:
+ rx505_cur."!cursor_fail"()
+ rx505_cur."!cursor_debug"("FAIL ", "cclass_elem")
+ .return (rx505_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__cclass_elem" :subid("142_1274022883.50471") :method
+.sub "!PREFIX__cclass_elem" :subid("142_1275811476.7961") :method
.annotate 'line', 3
- new $P502, "ResizablePMCArray"
- push $P502, ""
- push $P502, "-"
- push $P502, "+"
- .return ($P502)
+ new $P507, "ResizablePMCArray"
+ push $P507, ""
+ push $P507, "-"
+ push $P507, "+"
+ .return ($P507)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block510" :anon :subid("143_1274022883.50471") :method :outer("141_1274022883.50471")
+.sub "_block515" :anon :subid("143_1275811476.7961") :method :outer("141_1275811476.7961")
.annotate 'line', 164
- .const 'Sub' $P526 = "146_1274022883.50471"
+ .const 'Sub' $P531 = "146_1275811476.7961"
+ capture_lex $P531
+ .const 'Sub' $P526 = "145_1275811476.7961"
capture_lex $P526
- .const 'Sub' $P521 = "145_1274022883.50471"
- capture_lex $P521
- .const 'Sub' $P517 = "144_1274022883.50471"
- capture_lex $P517
- .local string rx512_tgt
- .local int rx512_pos
- .local int rx512_off
- .local int rx512_eos
- .local int rx512_rep
- .local pmc rx512_cur
- (rx512_cur, rx512_pos, rx512_tgt) = self."!cursor_start"()
- rx512_cur."!cursor_debug"("START ", "")
- rx512_cur."!cursor_caparray"("1")
- .lex unicode:"$\x{a2}", rx512_cur
- .local pmc match
- .lex "$/", match
- length rx512_eos, rx512_tgt
- set rx512_off, 0
- lt rx512_pos, 2, rx512_start
- sub rx512_off, rx512_pos, 1
- substr rx512_tgt, rx512_tgt, rx512_off
- rx512_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan513_done
- goto rxscan513_scan
- rxscan513_loop:
- ($P10) = rx512_cur."from"()
- inc $P10
- set rx512_pos, $P10
- ge rx512_pos, rx512_eos, rxscan513_done
- rxscan513_scan:
- set_addr $I10, rxscan513_loop
- rx512_cur."!mark_push"(0, rx512_pos, $I10)
- rxscan513_done:
- alt514_0:
- set_addr $I10, alt514_1
- rx512_cur."!mark_push"(0, rx512_pos, $I10)
+ .const 'Sub' $P522 = "144_1275811476.7961"
+ capture_lex $P522
+ .local string rx517_tgt
+ .local int rx517_pos
+ .local int rx517_off
+ .local int rx517_eos
+ .local int rx517_rep
+ .local pmc rx517_cur
+ (rx517_cur, rx517_pos, rx517_tgt) = self."!cursor_start"()
+ rx517_cur."!cursor_debug"("START ", "")
+ rx517_cur."!cursor_caparray"("1")
+ .lex unicode:"$\x{a2}", rx517_cur
+ .local pmc match
+ .lex "$/", match
+ length rx517_eos, rx517_tgt
+ gt rx517_pos, rx517_eos, rx517_done
+ set rx517_off, 0
+ lt rx517_pos, 2, rx517_start
+ sub rx517_off, rx517_pos, 1
+ substr rx517_tgt, rx517_tgt, rx517_off
+ rx517_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan518_done
+ goto rxscan518_scan
+ rxscan518_loop:
+ ($P10) = rx517_cur."from"()
+ inc $P10
+ set rx517_pos, $P10
+ ge rx517_pos, rx517_eos, rxscan518_done
+ rxscan518_scan:
+ set_addr $I10, rxscan518_loop
+ rx517_cur."!mark_push"(0, rx517_pos, $I10)
+ rxscan518_done:
+ alt519_0:
+ set_addr $I10, alt519_1
+ rx517_cur."!mark_push"(0, rx517_pos, $I10)
.annotate 'line', 165
# rx charclass_q s r 0..-1
- sub $I10, rx512_pos, rx512_off
- find_not_cclass $I11, 32, rx512_tgt, $I10, rx512_eos
- add rx512_pos, rx512_off, $I11
+ sub $I10, rx517_pos, rx517_off
+ find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
+ add rx517_pos, rx517_off, $I11
# rx literal "-"
- add $I11, rx512_pos, 1
- gt $I11, rx512_eos, rx512_fail
- sub $I11, rx512_pos, rx512_off
- substr $S10, rx512_tgt, $I11, 1
- ne $S10, "-", rx512_fail
- add rx512_pos, 1
+ add $I11, rx517_pos, 1
+ gt $I11, rx517_eos, rx517_fail
+ sub $I11, rx517_pos, rx517_off
+ substr $S10, rx517_tgt, $I11, 1
+ ne $S10, "-", rx517_fail
+ add rx517_pos, 1
# rx subrule "obs" subtype=method negate=
- rx512_cur."!cursor_pos"(rx512_pos)
- $P10 = rx512_cur."obs"("hyphen in enumerated character class", "..")
- unless $P10, rx512_fail
- rx512_pos = $P10."pos"()
- goto alt514_end
- alt514_1:
+ rx517_cur."!cursor_pos"(rx517_pos)
+ $P10 = rx517_cur."obs"("hyphen in enumerated character class", "..")
+ unless $P10, rx517_fail
+ rx517_pos = $P10."pos"()
+ goto alt519_end
+ alt519_1:
.annotate 'line', 166
# rx charclass_q s r 0..-1
- sub $I10, rx512_pos, rx512_off
- find_not_cclass $I11, 32, rx512_tgt, $I10, rx512_eos
- add rx512_pos, rx512_off, $I11
- alt515_0:
- set_addr $I10, alt515_1
- rx512_cur."!mark_push"(0, rx512_pos, $I10)
+ sub $I10, rx517_pos, rx517_off
+ find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
+ add rx517_pos, rx517_off, $I11
+ alt520_0:
+ set_addr $I10, alt520_1
+ rx517_cur."!mark_push"(0, rx517_pos, $I10)
# rx literal "\\"
- add $I11, rx512_pos, 1
- gt $I11, rx512_eos, rx512_fail
- sub $I11, rx512_pos, rx512_off
- substr $S10, rx512_tgt, $I11, 1
- ne $S10, "\\", rx512_fail
- add rx512_pos, 1
- # rx subrule $P517 subtype=capture negate=
- rx512_cur."!cursor_pos"(rx512_pos)
- .const 'Sub' $P517 = "144_1274022883.50471"
- capture_lex $P517
- $P10 = rx512_cur.$P517()
- unless $P10, rx512_fail
- rx512_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx517_pos, 1
+ gt $I11, rx517_eos, rx517_fail
+ sub $I11, rx517_pos, rx517_off
+ substr $S10, rx517_tgt, $I11, 1
+ ne $S10, "\\", rx517_fail
+ add rx517_pos, 1
+ # rx subrule $P522 subtype=capture negate=
+ rx517_cur."!cursor_pos"(rx517_pos)
+ .const 'Sub' $P522 = "144_1275811476.7961"
+ capture_lex $P522
+ $P10 = rx517_cur.$P522()
+ unless $P10, rx517_fail
+ rx517_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"(0)
- rx512_pos = $P10."pos"()
- goto alt515_end
- alt515_1:
- # rx subrule $P521 subtype=capture negate=
- rx512_cur."!cursor_pos"(rx512_pos)
- .const 'Sub' $P521 = "145_1274022883.50471"
- capture_lex $P521
- $P10 = rx512_cur.$P521()
- unless $P10, rx512_fail
- rx512_cur."!mark_push"(0, -1, 0, $P10)
+ rx517_pos = $P10."pos"()
+ goto alt520_end
+ alt520_1:
+ # rx subrule $P526 subtype=capture negate=
+ rx517_cur."!cursor_pos"(rx517_pos)
+ .const 'Sub' $P526 = "145_1275811476.7961"
+ capture_lex $P526
+ $P10 = rx517_cur.$P526()
+ unless $P10, rx517_fail
+ rx517_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"(0)
- rx512_pos = $P10."pos"()
- alt515_end:
- # rx rxquantr524 ** 0..1
- set_addr $I529, rxquantr524_done
- rx512_cur."!mark_push"(0, rx512_pos, $I529)
- rxquantr524_loop:
+ rx517_pos = $P10."pos"()
+ alt520_end:
+ # rx rxquantr529 ** 0..1
+ set_addr $I534, rxquantr529_done
+ rx517_cur."!mark_push"(0, rx517_pos, $I534)
+ rxquantr529_loop:
# rx charclass_q s r 0..-1
- sub $I10, rx512_pos, rx512_off
- find_not_cclass $I11, 32, rx512_tgt, $I10, rx512_eos
- add rx512_pos, rx512_off, $I11
+ sub $I10, rx517_pos, rx517_off
+ find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
+ add rx517_pos, rx517_off, $I11
# rx literal ".."
- add $I11, rx512_pos, 2
- gt $I11, rx512_eos, rx512_fail
- sub $I11, rx512_pos, rx512_off
- substr $S10, rx512_tgt, $I11, 2
- ne $S10, "..", rx512_fail
- add rx512_pos, 2
+ add $I11, rx517_pos, 2
+ gt $I11, rx517_eos, rx517_fail
+ sub $I11, rx517_pos, rx517_off
+ substr $S10, rx517_tgt, $I11, 2
+ ne $S10, "..", rx517_fail
+ add rx517_pos, 2
# rx charclass_q s r 0..-1
- sub $I10, rx512_pos, rx512_off
- find_not_cclass $I11, 32, rx512_tgt, $I10, rx512_eos
- add rx512_pos, rx512_off, $I11
- # rx subrule $P526 subtype=capture negate=
- rx512_cur."!cursor_pos"(rx512_pos)
- .const 'Sub' $P526 = "146_1274022883.50471"
- capture_lex $P526
- $P10 = rx512_cur.$P526()
- unless $P10, rx512_fail
- rx512_cur."!mark_push"(0, -1, 0, $P10)
+ sub $I10, rx517_pos, rx517_off
+ find_not_cclass $I11, 32, rx517_tgt, $I10, rx517_eos
+ add rx517_pos, rx517_off, $I11
+ # rx subrule $P531 subtype=capture negate=
+ rx517_cur."!cursor_pos"(rx517_pos)
+ .const 'Sub' $P531 = "146_1275811476.7961"
+ capture_lex $P531
+ $P10 = rx517_cur.$P531()
+ unless $P10, rx517_fail
+ rx517_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("1")
- rx512_pos = $P10."pos"()
- (rx512_rep) = rx512_cur."!mark_commit"($I529)
- rxquantr524_done:
- alt514_end:
+ rx517_pos = $P10."pos"()
+ (rx517_rep) = rx517_cur."!mark_commit"($I534)
+ rxquantr529_done:
+ alt519_end:
.annotate 'line', 164
# rx pass
- rx512_cur."!cursor_pass"(rx512_pos, "")
- rx512_cur."!cursor_debug"("PASS ", "", " at pos=", rx512_pos)
- .return (rx512_cur)
- rx512_fail:
- (rx512_rep, rx512_pos, $I10, $P10) = rx512_cur."!mark_fail"(0)
- lt rx512_pos, -1, rx512_done
- eq rx512_pos, -1, rx512_fail
+ rx517_cur."!cursor_pass"(rx517_pos, "")
+ rx517_cur."!cursor_debug"("PASS ", "", " at pos=", rx517_pos)
+ .return (rx517_cur)
+ rx517_fail:
+ (rx517_rep, rx517_pos, $I10, $P10) = rx517_cur."!mark_fail"(0)
+ lt rx517_pos, -1, rx517_done
+ eq rx517_pos, -1, rx517_fail
jump $I10
- rx512_done:
- rx512_cur."!cursor_fail"()
- rx512_cur."!cursor_debug"("FAIL ", "")
- .return (rx512_cur)
+ rx517_done:
+ rx517_cur."!cursor_fail"()
+ rx517_cur."!cursor_debug"("FAIL ", "")
+ .return (rx517_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block516" :anon :subid("144_1274022883.50471") :method :outer("143_1274022883.50471")
+.sub "_block521" :anon :subid("144_1275811476.7961") :method :outer("143_1275811476.7961")
.annotate 'line', 166
- .local string rx518_tgt
- .local int rx518_pos
- .local int rx518_off
- .local int rx518_eos
- .local int rx518_rep
- .local pmc rx518_cur
- (rx518_cur, rx518_pos, rx518_tgt) = self."!cursor_start"()
- rx518_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx518_cur
- .local pmc match
- .lex "$/", match
- length rx518_eos, rx518_tgt
- set rx518_off, 0
- lt rx518_pos, 2, rx518_start
- sub rx518_off, rx518_pos, 1
- substr rx518_tgt, rx518_tgt, rx518_off
- rx518_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan519_done
- goto rxscan519_scan
- rxscan519_loop:
- ($P10) = rx518_cur."from"()
- inc $P10
- set rx518_pos, $P10
- ge rx518_pos, rx518_eos, rxscan519_done
- rxscan519_scan:
- set_addr $I10, rxscan519_loop
- rx518_cur."!mark_push"(0, rx518_pos, $I10)
- rxscan519_done:
+ .local string rx523_tgt
+ .local int rx523_pos
+ .local int rx523_off
+ .local int rx523_eos
+ .local int rx523_rep
+ .local pmc rx523_cur
+ (rx523_cur, rx523_pos, rx523_tgt) = self."!cursor_start"()
+ rx523_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx523_cur
+ .local pmc match
+ .lex "$/", match
+ length rx523_eos, rx523_tgt
+ gt rx523_pos, rx523_eos, rx523_done
+ set rx523_off, 0
+ lt rx523_pos, 2, rx523_start
+ sub rx523_off, rx523_pos, 1
+ substr rx523_tgt, rx523_tgt, rx523_off
+ rx523_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan524_done
+ goto rxscan524_scan
+ rxscan524_loop:
+ ($P10) = rx523_cur."from"()
+ inc $P10
+ set rx523_pos, $P10
+ ge rx523_pos, rx523_eos, rxscan524_done
+ rxscan524_scan:
+ set_addr $I10, rxscan524_loop
+ rx523_cur."!mark_push"(0, rx523_pos, $I10)
+ rxscan524_done:
# rx charclass .
- ge rx518_pos, rx518_eos, rx518_fail
- inc rx518_pos
- # rx pass
- rx518_cur."!cursor_pass"(rx518_pos, "")
- rx518_cur."!cursor_debug"("PASS ", "", " at pos=", rx518_pos)
- .return (rx518_cur)
- rx518_fail:
- (rx518_rep, rx518_pos, $I10, $P10) = rx518_cur."!mark_fail"(0)
- lt rx518_pos, -1, rx518_done
- eq rx518_pos, -1, rx518_fail
- jump $I10
- rx518_done:
- rx518_cur."!cursor_fail"()
- rx518_cur."!cursor_debug"("FAIL ", "")
- .return (rx518_cur)
- .return ()
-.end
-
-
-.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block520" :anon :subid("145_1274022883.50471") :method :outer("143_1274022883.50471")
-.annotate 'line', 166
- .local string rx522_tgt
- .local int rx522_pos
- .local int rx522_off
- .local int rx522_eos
- .local int rx522_rep
- .local pmc rx522_cur
- (rx522_cur, rx522_pos, rx522_tgt) = self."!cursor_start"()
- rx522_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx522_cur
- .local pmc match
- .lex "$/", match
- length rx522_eos, rx522_tgt
- set rx522_off, 0
- lt rx522_pos, 2, rx522_start
- sub rx522_off, rx522_pos, 1
- substr rx522_tgt, rx522_tgt, rx522_off
- rx522_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan523_done
- goto rxscan523_scan
- rxscan523_loop:
- ($P10) = rx522_cur."from"()
- inc $P10
- set rx522_pos, $P10
- ge rx522_pos, rx522_eos, rxscan523_done
- rxscan523_scan:
- set_addr $I10, rxscan523_loop
- rx522_cur."!mark_push"(0, rx522_pos, $I10)
- rxscan523_done:
- # rx enumcharlist negate=1
- ge rx522_pos, rx522_eos, rx522_fail
- sub $I10, rx522_pos, rx522_off
- substr $S10, rx522_tgt, $I10, 1
- index $I11, "]\\", $S10
- ge $I11, 0, rx522_fail
- inc rx522_pos
+ ge rx523_pos, rx523_eos, rx523_fail
+ inc rx523_pos
# rx pass
- rx522_cur."!cursor_pass"(rx522_pos, "")
- rx522_cur."!cursor_debug"("PASS ", "", " at pos=", rx522_pos)
- .return (rx522_cur)
- rx522_fail:
- (rx522_rep, rx522_pos, $I10, $P10) = rx522_cur."!mark_fail"(0)
- lt rx522_pos, -1, rx522_done
- eq rx522_pos, -1, rx522_fail
+ rx523_cur."!cursor_pass"(rx523_pos, "")
+ rx523_cur."!cursor_debug"("PASS ", "", " at pos=", rx523_pos)
+ .return (rx523_cur)
+ rx523_fail:
+ (rx523_rep, rx523_pos, $I10, $P10) = rx523_cur."!mark_fail"(0)
+ lt rx523_pos, -1, rx523_done
+ eq rx523_pos, -1, rx523_fail
jump $I10
- rx522_done:
- rx522_cur."!cursor_fail"()
- rx522_cur."!cursor_debug"("FAIL ", "")
- .return (rx522_cur)
+ rx523_done:
+ rx523_cur."!cursor_fail"()
+ rx523_cur."!cursor_debug"("FAIL ", "")
+ .return (rx523_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block525" :anon :subid("146_1274022883.50471") :method :outer("143_1274022883.50471")
+.sub "_block525" :anon :subid("145_1275811476.7961") :method :outer("143_1275811476.7961")
.annotate 'line', 166
.local string rx527_tgt
.local int rx527_pos
@@ -6587,6 +6631,7 @@
.local pmc match
.lex "$/", match
length rx527_eos, rx527_tgt
+ gt rx527_pos, rx527_eos, rx527_done
set rx527_off, 0
lt rx527_pos, 2, rx527_start
sub rx527_off, rx527_pos, 1
@@ -6604,8 +6649,12 @@
set_addr $I10, rxscan528_loop
rx527_cur."!mark_push"(0, rx527_pos, $I10)
rxscan528_done:
- # rx charclass .
+ # rx enumcharlist negate=1
ge rx527_pos, rx527_eos, rx527_fail
+ sub $I10, rx527_pos, rx527_off
+ substr $S10, rx527_tgt, $I10, 1
+ index $I11, "]\\", $S10
+ ge $I11, 0, rx527_fail
inc rx527_pos
# rx pass
rx527_cur."!cursor_pass"(rx527_pos, "")
@@ -6625,812 +6674,884 @@
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_internal" :subid("147_1274022883.50471") :method :outer("11_1274022883.50471")
-.annotate 'line', 3
- .const 'Sub' $P543 = "149_1274022883.50471"
- capture_lex $P543
- .local string rx535_tgt
- .local int rx535_pos
- .local int rx535_off
- .local int rx535_eos
- .local int rx535_rep
- .local pmc rx535_cur
- (rx535_cur, rx535_pos, rx535_tgt) = self."!cursor_start"()
- rx535_cur."!cursor_debug"("START ", "mod_internal")
- rx535_cur."!cursor_caparray"("n")
- .lex unicode:"$\x{a2}", rx535_cur
- .local pmc match
- .lex "$/", match
- length rx535_eos, rx535_tgt
- set rx535_off, 0
- lt rx535_pos, 2, rx535_start
- sub rx535_off, rx535_pos, 1
- substr rx535_tgt, rx535_tgt, rx535_off
- rx535_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan539_done
- goto rxscan539_scan
- rxscan539_loop:
- ($P10) = rx535_cur."from"()
- inc $P10
- set rx535_pos, $P10
- ge rx535_pos, rx535_eos, rxscan539_done
- rxscan539_scan:
- set_addr $I10, rxscan539_loop
- rx535_cur."!mark_push"(0, rx535_pos, $I10)
- rxscan539_done:
- alt540_0:
+.sub "_block530" :anon :subid("146_1275811476.7961") :method :outer("143_1275811476.7961")
+.annotate 'line', 166
+ .local string rx532_tgt
+ .local int rx532_pos
+ .local int rx532_off
+ .local int rx532_eos
+ .local int rx532_rep
+ .local pmc rx532_cur
+ (rx532_cur, rx532_pos, rx532_tgt) = self."!cursor_start"()
+ rx532_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx532_cur
+ .local pmc match
+ .lex "$/", match
+ length rx532_eos, rx532_tgt
+ gt rx532_pos, rx532_eos, rx532_done
+ set rx532_off, 0
+ lt rx532_pos, 2, rx532_start
+ sub rx532_off, rx532_pos, 1
+ substr rx532_tgt, rx532_tgt, rx532_off
+ rx532_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan533_done
+ goto rxscan533_scan
+ rxscan533_loop:
+ ($P10) = rx532_cur."from"()
+ inc $P10
+ set rx532_pos, $P10
+ ge rx532_pos, rx532_eos, rxscan533_done
+ rxscan533_scan:
+ set_addr $I10, rxscan533_loop
+ rx532_cur."!mark_push"(0, rx532_pos, $I10)
+ rxscan533_done:
+ # rx charclass .
+ ge rx532_pos, rx532_eos, rx532_fail
+ inc rx532_pos
+ # rx pass
+ rx532_cur."!cursor_pass"(rx532_pos, "")
+ rx532_cur."!cursor_debug"("PASS ", "", " at pos=", rx532_pos)
+ .return (rx532_cur)
+ rx532_fail:
+ (rx532_rep, rx532_pos, $I10, $P10) = rx532_cur."!mark_fail"(0)
+ lt rx532_pos, -1, rx532_done
+ eq rx532_pos, -1, rx532_fail
+ jump $I10
+ rx532_done:
+ rx532_cur."!cursor_fail"()
+ rx532_cur."!cursor_debug"("FAIL ", "")
+ .return (rx532_cur)
+ .return ()
+.end
+
+
+.namespace ["Regex";"P6Regex";"Grammar"]
+.sub "mod_internal" :subid("147_1275811476.7961") :method :outer("11_1275811476.7961")
+.annotate 'line', 3
+ .const 'Sub' $P548 = "149_1275811476.7961"
+ capture_lex $P548
+ .local string rx540_tgt
+ .local int rx540_pos
+ .local int rx540_off
+ .local int rx540_eos
+ .local int rx540_rep
+ .local pmc rx540_cur
+ (rx540_cur, rx540_pos, rx540_tgt) = self."!cursor_start"()
+ rx540_cur."!cursor_debug"("START ", "mod_internal")
+ rx540_cur."!cursor_caparray"("n")
+ .lex unicode:"$\x{a2}", rx540_cur
+ .local pmc match
+ .lex "$/", match
+ length rx540_eos, rx540_tgt
+ gt rx540_pos, rx540_eos, rx540_done
+ set rx540_off, 0
+ lt rx540_pos, 2, rx540_start
+ sub rx540_off, rx540_pos, 1
+ substr rx540_tgt, rx540_tgt, rx540_off
+ rx540_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan544_done
+ goto rxscan544_scan
+ rxscan544_loop:
+ ($P10) = rx540_cur."from"()
+ inc $P10
+ set rx540_pos, $P10
+ ge rx540_pos, rx540_eos, rxscan544_done
+ rxscan544_scan:
+ set_addr $I10, rxscan544_loop
+ rx540_cur."!mark_push"(0, rx540_pos, $I10)
+ rxscan544_done:
+ alt545_0:
.annotate 'line', 175
- set_addr $I10, alt540_1
- rx535_cur."!mark_push"(0, rx535_pos, $I10)
+ set_addr $I10, alt545_1
+ rx540_cur."!mark_push"(0, rx540_pos, $I10)
.annotate 'line', 176
# rx literal ":"
- add $I11, rx535_pos, 1
- gt $I11, rx535_eos, rx535_fail
- sub $I11, rx535_pos, rx535_off
- substr $S10, rx535_tgt, $I11, 1
- ne $S10, ":", rx535_fail
- add rx535_pos, 1
- # rx rxquantr541 ** 1..1
- set_addr $I547, rxquantr541_done
- rx535_cur."!mark_push"(0, -1, $I547)
- rxquantr541_loop:
- # rx subrule $P543 subtype=capture negate=
- rx535_cur."!cursor_pos"(rx535_pos)
- .const 'Sub' $P543 = "149_1274022883.50471"
- capture_lex $P543
- $P10 = rx535_cur.$P543()
- unless $P10, rx535_fail
- rx535_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx540_pos, 1
+ gt $I11, rx540_eos, rx540_fail
+ sub $I11, rx540_pos, rx540_off
+ substr $S10, rx540_tgt, $I11, 1
+ ne $S10, ":", rx540_fail
+ add rx540_pos, 1
+ # rx rxquantr546 ** 1..1
+ set_addr $I552, rxquantr546_done
+ rx540_cur."!mark_push"(0, -1, $I552)
+ rxquantr546_loop:
+ # rx subrule $P548 subtype=capture negate=
+ rx540_cur."!cursor_pos"(rx540_pos)
+ .const 'Sub' $P548 = "149_1275811476.7961"
+ capture_lex $P548
+ $P10 = rx540_cur.$P548()
+ unless $P10, rx540_fail
+ rx540_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("n")
- rx535_pos = $P10."pos"()
- (rx535_rep) = rx535_cur."!mark_commit"($I547)
- rxquantr541_done:
+ rx540_pos = $P10."pos"()
+ (rx540_rep) = rx540_cur."!mark_commit"($I552)
+ rxquantr546_done:
# rx subrule "mod_ident" subtype=capture negate=
- rx535_cur."!cursor_pos"(rx535_pos)
- $P10 = rx535_cur."mod_ident"()
- unless $P10, rx535_fail
- rx535_cur."!mark_push"(0, -1, 0, $P10)
+ rx540_cur."!cursor_pos"(rx540_pos)
+ $P10 = rx540_cur."mod_ident"()
+ unless $P10, rx540_fail
+ rx540_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("mod_ident")
- rx535_pos = $P10."pos"()
+ rx540_pos = $P10."pos"()
# rxanchor rwb
- le rx535_pos, 0, rx535_fail
- sub $I10, rx535_pos, rx535_off
- is_cclass $I11, 8192, rx535_tgt, $I10
- if $I11, rx535_fail
+ le rx540_pos, 0, rx540_fail
+ sub $I10, rx540_pos, rx540_off
+ is_cclass $I11, 8192, rx540_tgt, $I10
+ if $I11, rx540_fail
dec $I10
- is_cclass $I11, 8192, rx535_tgt, $I10
- unless $I11, rx535_fail
- goto alt540_end
- alt540_1:
+ is_cclass $I11, 8192, rx540_tgt, $I10
+ unless $I11, rx540_fail
+ goto alt545_end
+ alt545_1:
.annotate 'line', 177
# rx literal ":"
- add $I11, rx535_pos, 1
- gt $I11, rx535_eos, rx535_fail
- sub $I11, rx535_pos, rx535_off
- substr $S10, rx535_tgt, $I11, 1
- ne $S10, ":", rx535_fail
- add rx535_pos, 1
+ add $I11, rx540_pos, 1
+ gt $I11, rx540_eos, rx540_fail
+ sub $I11, rx540_pos, rx540_off
+ substr $S10, rx540_tgt, $I11, 1
+ ne $S10, ":", rx540_fail
+ add rx540_pos, 1
# rx subrule "mod_ident" subtype=capture negate=
- rx535_cur."!cursor_pos"(rx535_pos)
- $P10 = rx535_cur."mod_ident"()
- unless $P10, rx535_fail
- rx535_cur."!mark_push"(0, -1, 0, $P10)
+ rx540_cur."!cursor_pos"(rx540_pos)
+ $P10 = rx540_cur."mod_ident"()
+ unless $P10, rx540_fail
+ rx540_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("mod_ident")
- rx535_pos = $P10."pos"()
- # rx rxquantr548 ** 0..1
- set_addr $I550, rxquantr548_done
- rx535_cur."!mark_push"(0, rx535_pos, $I550)
- rxquantr548_loop:
+ rx540_pos = $P10."pos"()
+ # rx rxquantr553 ** 0..1
+ set_addr $I555, rxquantr553_done
+ rx540_cur."!mark_push"(0, rx540_pos, $I555)
+ rxquantr553_loop:
# rx literal "("
- add $I11, rx535_pos, 1
- gt $I11, rx535_eos, rx535_fail
- sub $I11, rx535_pos, rx535_off
- substr $S10, rx535_tgt, $I11, 1
- ne $S10, "(", rx535_fail
- add rx535_pos, 1
+ add $I11, rx540_pos, 1
+ gt $I11, rx540_eos, rx540_fail
+ sub $I11, rx540_pos, rx540_off
+ substr $S10, rx540_tgt, $I11, 1
+ ne $S10, "(", rx540_fail
+ add rx540_pos, 1
# rx subcapture "n"
- set_addr $I10, rxcap_549_fail
- rx535_cur."!mark_push"(0, rx535_pos, $I10)
+ set_addr $I10, rxcap_554_fail
+ rx540_cur."!mark_push"(0, rx540_pos, $I10)
# rx charclass_q d r 1..-1
- sub $I10, rx535_pos, rx535_off
- find_not_cclass $I11, 8, rx535_tgt, $I10, rx535_eos
+ sub $I10, rx540_pos, rx540_off
+ find_not_cclass $I11, 8, rx540_tgt, $I10, rx540_eos
add $I12, $I10, 1
- lt $I11, $I12, rx535_fail
- add rx535_pos, rx535_off, $I11
- set_addr $I10, rxcap_549_fail
- ($I12, $I11) = rx535_cur."!mark_peek"($I10)
- rx535_cur."!cursor_pos"($I11)
- ($P10) = rx535_cur."!cursor_start"()
- $P10."!cursor_pass"(rx535_pos, "")
- rx535_cur."!mark_push"(0, -1, 0, $P10)
+ lt $I11, $I12, rx540_fail
+ add rx540_pos, rx540_off, $I11
+ set_addr $I10, rxcap_554_fail
+ ($I12, $I11) = rx540_cur."!mark_peek"($I10)
+ rx540_cur."!cursor_pos"($I11)
+ ($P10) = rx540_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx540_pos, "")
+ rx540_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("n")
- goto rxcap_549_done
- rxcap_549_fail:
- goto rx535_fail
- rxcap_549_done:
+ goto rxcap_554_done
+ rxcap_554_fail:
+ goto rx540_fail
+ rxcap_554_done:
# rx literal ")"
- add $I11, rx535_pos, 1
- gt $I11, rx535_eos, rx535_fail
- sub $I11, rx535_pos, rx535_off
- substr $S10, rx535_tgt, $I11, 1
- ne $S10, ")", rx535_fail
- add rx535_pos, 1
- (rx535_rep) = rx535_cur."!mark_commit"($I550)
- rxquantr548_done:
- alt540_end:
+ add $I11, rx540_pos, 1
+ gt $I11, rx540_eos, rx540_fail
+ sub $I11, rx540_pos, rx540_off
+ substr $S10, rx540_tgt, $I11, 1
+ ne $S10, ")", rx540_fail
+ add rx540_pos, 1
+ (rx540_rep) = rx540_cur."!mark_commit"($I555)
+ rxquantr553_done:
+ alt545_end:
.annotate 'line', 174
# rx pass
- rx535_cur."!cursor_pass"(rx535_pos, "mod_internal")
- rx535_cur."!cursor_debug"("PASS ", "mod_internal", " at pos=", rx535_pos)
- .return (rx535_cur)
- rx535_fail:
+ rx540_cur."!cursor_pass"(rx540_pos, "mod_internal")
+ rx540_cur."!cursor_debug"("PASS ", "mod_internal", " at pos=", rx540_pos)
+ .return (rx540_cur)
+ rx540_fail:
.annotate 'line', 3
- (rx535_rep, rx535_pos, $I10, $P10) = rx535_cur."!mark_fail"(0)
- lt rx535_pos, -1, rx535_done
- eq rx535_pos, -1, rx535_fail
+ (rx540_rep, rx540_pos, $I10, $P10) = rx540_cur."!mark_fail"(0)
+ lt rx540_pos, -1, rx540_done
+ eq rx540_pos, -1, rx540_fail
jump $I10
- rx535_done:
- rx535_cur."!cursor_fail"()
- rx535_cur."!cursor_debug"("FAIL ", "mod_internal")
- .return (rx535_cur)
+ rx540_done:
+ rx540_cur."!cursor_fail"()
+ rx540_cur."!cursor_debug"("FAIL ", "mod_internal")
+ .return (rx540_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_internal" :subid("148_1274022883.50471") :method
+.sub "!PREFIX__mod_internal" :subid("148_1275811476.7961") :method
.annotate 'line', 3
- $P537 = self."!PREFIX__!subrule"("mod_ident", ":")
- new $P538, "ResizablePMCArray"
- push $P538, $P537
- push $P538, ":"
- .return ($P538)
+ $P542 = self."!PREFIX__!subrule"("mod_ident", ":")
+ new $P543, "ResizablePMCArray"
+ push $P543, $P542
+ push $P543, ":"
+ .return ($P543)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block542" :anon :subid("149_1274022883.50471") :method :outer("147_1274022883.50471")
+.sub "_block547" :anon :subid("149_1275811476.7961") :method :outer("147_1275811476.7961")
.annotate 'line', 176
- .local string rx544_tgt
- .local int rx544_pos
- .local int rx544_off
- .local int rx544_eos
- .local int rx544_rep
- .local pmc rx544_cur
- (rx544_cur, rx544_pos, rx544_tgt) = self."!cursor_start"()
- rx544_cur."!cursor_debug"("START ", "")
- .lex unicode:"$\x{a2}", rx544_cur
- .local pmc match
- .lex "$/", match
- length rx544_eos, rx544_tgt
- set rx544_off, 0
- lt rx544_pos, 2, rx544_start
- sub rx544_off, rx544_pos, 1
- substr rx544_tgt, rx544_tgt, rx544_off
- rx544_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan545_done
- goto rxscan545_scan
- rxscan545_loop:
- ($P10) = rx544_cur."from"()
- inc $P10
- set rx544_pos, $P10
- ge rx544_pos, rx544_eos, rxscan545_done
- rxscan545_scan:
- set_addr $I10, rxscan545_loop
- rx544_cur."!mark_push"(0, rx544_pos, $I10)
- rxscan545_done:
- alt546_0:
- set_addr $I10, alt546_1
- rx544_cur."!mark_push"(0, rx544_pos, $I10)
+ .local string rx549_tgt
+ .local int rx549_pos
+ .local int rx549_off
+ .local int rx549_eos
+ .local int rx549_rep
+ .local pmc rx549_cur
+ (rx549_cur, rx549_pos, rx549_tgt) = self."!cursor_start"()
+ rx549_cur."!cursor_debug"("START ", "")
+ .lex unicode:"$\x{a2}", rx549_cur
+ .local pmc match
+ .lex "$/", match
+ length rx549_eos, rx549_tgt
+ gt rx549_pos, rx549_eos, rx549_done
+ set rx549_off, 0
+ lt rx549_pos, 2, rx549_start
+ sub rx549_off, rx549_pos, 1
+ substr rx549_tgt, rx549_tgt, rx549_off
+ rx549_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan550_done
+ goto rxscan550_scan
+ rxscan550_loop:
+ ($P10) = rx549_cur."from"()
+ inc $P10
+ set rx549_pos, $P10
+ ge rx549_pos, rx549_eos, rxscan550_done
+ rxscan550_scan:
+ set_addr $I10, rxscan550_loop
+ rx549_cur."!mark_push"(0, rx549_pos, $I10)
+ rxscan550_done:
+ alt551_0:
+ set_addr $I10, alt551_1
+ rx549_cur."!mark_push"(0, rx549_pos, $I10)
# rx literal "!"
- add $I11, rx544_pos, 1
- gt $I11, rx544_eos, rx544_fail
- sub $I11, rx544_pos, rx544_off
- substr $S10, rx544_tgt, $I11, 1
- ne $S10, "!", rx544_fail
- add rx544_pos, 1
- goto alt546_end
- alt546_1:
+ add $I11, rx549_pos, 1
+ gt $I11, rx549_eos, rx549_fail
+ sub $I11, rx549_pos, rx549_off
+ substr $S10, rx549_tgt, $I11, 1
+ ne $S10, "!", rx549_fail
+ add rx549_pos, 1
+ goto alt551_end
+ alt551_1:
# rx charclass_q d r 1..-1
- sub $I10, rx544_pos, rx544_off
- find_not_cclass $I11, 8, rx544_tgt, $I10, rx544_eos
+ sub $I10, rx549_pos, rx549_off
+ find_not_cclass $I11, 8, rx549_tgt, $I10, rx549_eos
add $I12, $I10, 1
- lt $I11, $I12, rx544_fail
- add rx544_pos, rx544_off, $I11
- alt546_end:
+ lt $I11, $I12, rx549_fail
+ add rx549_pos, rx549_off, $I11
+ alt551_end:
# rx pass
- rx544_cur."!cursor_pass"(rx544_pos, "")
- rx544_cur."!cursor_debug"("PASS ", "", " at pos=", rx544_pos)
- .return (rx544_cur)
- rx544_fail:
- (rx544_rep, rx544_pos, $I10, $P10) = rx544_cur."!mark_fail"(0)
- lt rx544_pos, -1, rx544_done
- eq rx544_pos, -1, rx544_fail
+ rx549_cur."!cursor_pass"(rx549_pos, "")
+ rx549_cur."!cursor_debug"("PASS ", "", " at pos=", rx549_pos)
+ .return (rx549_cur)
+ rx549_fail:
+ (rx549_rep, rx549_pos, $I10, $P10) = rx549_cur."!mark_fail"(0)
+ lt rx549_pos, -1, rx549_done
+ eq rx549_pos, -1, rx549_fail
jump $I10
- rx544_done:
- rx544_cur."!cursor_fail"()
- rx544_cur."!cursor_debug"("FAIL ", "")
- .return (rx544_cur)
+ rx549_done:
+ rx549_cur."!cursor_fail"()
+ rx549_cur."!cursor_debug"("FAIL ", "")
+ .return (rx549_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident" :subid("150_1274022883.50471") :method
+.sub "mod_ident" :subid("150_1275811476.7961") :method
.annotate 'line', 181
- $P552 = self."!protoregex"("mod_ident")
- .return ($P552)
+ $P557 = self."!protoregex"("mod_ident")
+ .return ($P557)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident" :subid("151_1274022883.50471") :method
+.sub "!PREFIX__mod_ident" :subid("151_1275811476.7961") :method
.annotate 'line', 181
- $P554 = self."!PREFIX__!protoregex"("mod_ident")
- .return ($P554)
+ $P559 = self."!PREFIX__!protoregex"("mod_ident")
+ .return ($P559)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ignorecase>" :subid("152_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "mod_ident:sym<ignorecase>" :subid("152_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx556_tgt
- .local int rx556_pos
- .local int rx556_off
- .local int rx556_eos
- .local int rx556_rep
- .local pmc rx556_cur
- (rx556_cur, rx556_pos, rx556_tgt) = self."!cursor_start"()
- rx556_cur."!cursor_debug"("START ", "mod_ident:sym<ignorecase>")
- .lex unicode:"$\x{a2}", rx556_cur
- .local pmc match
- .lex "$/", match
- length rx556_eos, rx556_tgt
- set rx556_off, 0
- lt rx556_pos, 2, rx556_start
- sub rx556_off, rx556_pos, 1
- substr rx556_tgt, rx556_tgt, rx556_off
- rx556_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan559_done
- goto rxscan559_scan
- rxscan559_loop:
- ($P10) = rx556_cur."from"()
- inc $P10
- set rx556_pos, $P10
- ge rx556_pos, rx556_eos, rxscan559_done
- rxscan559_scan:
- set_addr $I10, rxscan559_loop
- rx556_cur."!mark_push"(0, rx556_pos, $I10)
- rxscan559_done:
+ .local string rx561_tgt
+ .local int rx561_pos
+ .local int rx561_off
+ .local int rx561_eos
+ .local int rx561_rep
+ .local pmc rx561_cur
+ (rx561_cur, rx561_pos, rx561_tgt) = self."!cursor_start"()
+ rx561_cur."!cursor_debug"("START ", "mod_ident:sym<ignorecase>")
+ .lex unicode:"$\x{a2}", rx561_cur
+ .local pmc match
+ .lex "$/", match
+ length rx561_eos, rx561_tgt
+ gt rx561_pos, rx561_eos, rx561_done
+ set rx561_off, 0
+ lt rx561_pos, 2, rx561_start
+ sub rx561_off, rx561_pos, 1
+ substr rx561_tgt, rx561_tgt, rx561_off
+ rx561_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan564_done
+ goto rxscan564_scan
+ rxscan564_loop:
+ ($P10) = rx561_cur."from"()
+ inc $P10
+ set rx561_pos, $P10
+ ge rx561_pos, rx561_eos, rxscan564_done
+ rxscan564_scan:
+ set_addr $I10, rxscan564_loop
+ rx561_cur."!mark_push"(0, rx561_pos, $I10)
+ rxscan564_done:
.annotate 'line', 182
# rx subcapture "sym"
- set_addr $I10, rxcap_560_fail
- rx556_cur."!mark_push"(0, rx556_pos, $I10)
+ set_addr $I10, rxcap_565_fail
+ rx561_cur."!mark_push"(0, rx561_pos, $I10)
# rx literal "i"
- add $I11, rx556_pos, 1
- gt $I11, rx556_eos, rx556_fail
- sub $I11, rx556_pos, rx556_off
- substr $S10, rx556_tgt, $I11, 1
- ne $S10, "i", rx556_fail
- add rx556_pos, 1
- set_addr $I10, rxcap_560_fail
- ($I12, $I11) = rx556_cur."!mark_peek"($I10)
- rx556_cur."!cursor_pos"($I11)
- ($P10) = rx556_cur."!cursor_start"()
- $P10."!cursor_pass"(rx556_pos, "")
- rx556_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx561_pos, 1
+ gt $I11, rx561_eos, rx561_fail
+ sub $I11, rx561_pos, rx561_off
+ substr $S10, rx561_tgt, $I11, 1
+ ne $S10, "i", rx561_fail
+ add rx561_pos, 1
+ set_addr $I10, rxcap_565_fail
+ ($I12, $I11) = rx561_cur."!mark_peek"($I10)
+ rx561_cur."!cursor_pos"($I11)
+ ($P10) = rx561_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx561_pos, "")
+ rx561_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_560_done
- rxcap_560_fail:
- goto rx556_fail
- rxcap_560_done:
- # rx rxquantr561 ** 0..1
- set_addr $I562, rxquantr561_done
- rx556_cur."!mark_push"(0, rx556_pos, $I562)
- rxquantr561_loop:
+ goto rxcap_565_done
+ rxcap_565_fail:
+ goto rx561_fail
+ rxcap_565_done:
+ # rx rxquantr566 ** 0..1
+ set_addr $I567, rxquantr566_done
+ rx561_cur."!mark_push"(0, rx561_pos, $I567)
+ rxquantr566_loop:
# rx literal "gnorecase"
- add $I11, rx556_pos, 9
- gt $I11, rx556_eos, rx556_fail
- sub $I11, rx556_pos, rx556_off
- substr $S10, rx556_tgt, $I11, 9
- ne $S10, "gnorecase", rx556_fail
- add rx556_pos, 9
- (rx556_rep) = rx556_cur."!mark_commit"($I562)
- rxquantr561_done:
+ add $I11, rx561_pos, 9
+ gt $I11, rx561_eos, rx561_fail
+ sub $I11, rx561_pos, rx561_off
+ substr $S10, rx561_tgt, $I11, 9
+ ne $S10, "gnorecase", rx561_fail
+ add rx561_pos, 9
+ (rx561_rep) = rx561_cur."!mark_commit"($I567)
+ rxquantr566_done:
# rx pass
- rx556_cur."!cursor_pass"(rx556_pos, "mod_ident:sym<ignorecase>")
- rx556_cur."!cursor_debug"("PASS ", "mod_ident:sym<ignorecase>", " at pos=", rx556_pos)
- .return (rx556_cur)
- rx556_fail:
+ rx561_cur."!cursor_pass"(rx561_pos, "mod_ident:sym<ignorecase>")
+ rx561_cur."!cursor_debug"("PASS ", "mod_ident:sym<ignorecase>", " at pos=", rx561_pos)
+ .return (rx561_cur)
+ rx561_fail:
.annotate 'line', 3
- (rx556_rep, rx556_pos, $I10, $P10) = rx556_cur."!mark_fail"(0)
- lt rx556_pos, -1, rx556_done
- eq rx556_pos, -1, rx556_fail
+ (rx561_rep, rx561_pos, $I10, $P10) = rx561_cur."!mark_fail"(0)
+ lt rx561_pos, -1, rx561_done
+ eq rx561_pos, -1, rx561_fail
jump $I10
- rx556_done:
- rx556_cur."!cursor_fail"()
- rx556_cur."!cursor_debug"("FAIL ", "mod_ident:sym<ignorecase>")
- .return (rx556_cur)
+ rx561_done:
+ rx561_cur."!cursor_fail"()
+ rx561_cur."!cursor_debug"("FAIL ", "mod_ident:sym<ignorecase>")
+ .return (rx561_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ignorecase>" :subid("153_1274022883.50471") :method
+.sub "!PREFIX__mod_ident:sym<ignorecase>" :subid("153_1275811476.7961") :method
.annotate 'line', 3
- new $P558, "ResizablePMCArray"
- push $P558, "i"
- .return ($P558)
+ new $P563, "ResizablePMCArray"
+ push $P563, "i"
+ .return ($P563)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<ratchet>" :subid("154_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "mod_ident:sym<ratchet>" :subid("154_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx564_tgt
- .local int rx564_pos
- .local int rx564_off
- .local int rx564_eos
- .local int rx564_rep
- .local pmc rx564_cur
- (rx564_cur, rx564_pos, rx564_tgt) = self."!cursor_start"()
- rx564_cur."!cursor_debug"("START ", "mod_ident:sym<ratchet>")
- .lex unicode:"$\x{a2}", rx564_cur
+ .local string rx569_tgt
+ .local int rx569_pos
+ .local int rx569_off
+ .local int rx569_eos
+ .local int rx569_rep
+ .local pmc rx569_cur
+ (rx569_cur, rx569_pos, rx569_tgt) = self."!cursor_start"()
+ rx569_cur."!cursor_debug"("START ", "mod_ident:sym<ratchet>")
+ .lex unicode:"$\x{a2}", rx569_cur
.local pmc match
.lex "$/", match
- length rx564_eos, rx564_tgt
- set rx564_off, 0
- lt rx564_pos, 2, rx564_start
- sub rx564_off, rx564_pos, 1
- substr rx564_tgt, rx564_tgt, rx564_off
- rx564_start:
+ length rx569_eos, rx569_tgt
+ gt rx569_pos, rx569_eos, rx569_done
+ set rx569_off, 0
+ lt rx569_pos, 2, rx569_start
+ sub rx569_off, rx569_pos, 1
+ substr rx569_tgt, rx569_tgt, rx569_off
+ rx569_start:
$I10 = self.'from'()
- ne $I10, -1, rxscan567_done
- goto rxscan567_scan
- rxscan567_loop:
- ($P10) = rx564_cur."from"()
+ ne $I10, -1, rxscan572_done
+ goto rxscan572_scan
+ rxscan572_loop:
+ ($P10) = rx569_cur."from"()
inc $P10
- set rx564_pos, $P10
- ge rx564_pos, rx564_eos, rxscan567_done
- rxscan567_scan:
- set_addr $I10, rxscan567_loop
- rx564_cur."!mark_push"(0, rx564_pos, $I10)
- rxscan567_done:
+ set rx569_pos, $P10
+ ge rx569_pos, rx569_eos, rxscan572_done
+ rxscan572_scan:
+ set_addr $I10, rxscan572_loop
+ rx569_cur."!mark_push"(0, rx569_pos, $I10)
+ rxscan572_done:
.annotate 'line', 183
# rx subcapture "sym"
- set_addr $I10, rxcap_568_fail
- rx564_cur."!mark_push"(0, rx564_pos, $I10)
+ set_addr $I10, rxcap_573_fail
+ rx569_cur."!mark_push"(0, rx569_pos, $I10)
# rx literal "r"
- add $I11, rx564_pos, 1
- gt $I11, rx564_eos, rx564_fail
- sub $I11, rx564_pos, rx564_off
- substr $S10, rx564_tgt, $I11, 1
- ne $S10, "r", rx564_fail
- add rx564_pos, 1
- set_addr $I10, rxcap_568_fail
- ($I12, $I11) = rx564_cur."!mark_peek"($I10)
- rx564_cur."!cursor_pos"($I11)
- ($P10) = rx564_cur."!cursor_start"()
- $P10."!cursor_pass"(rx564_pos, "")
- rx564_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx569_pos, 1
+ gt $I11, rx569_eos, rx569_fail
+ sub $I11, rx569_pos, rx569_off
+ substr $S10, rx569_tgt, $I11, 1
+ ne $S10, "r", rx569_fail
+ add rx569_pos, 1
+ set_addr $I10, rxcap_573_fail
+ ($I12, $I11) = rx569_cur."!mark_peek"($I10)
+ rx569_cur."!cursor_pos"($I11)
+ ($P10) = rx569_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx569_pos, "")
+ rx569_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_568_done
- rxcap_568_fail:
- goto rx564_fail
- rxcap_568_done:
- # rx rxquantr569 ** 0..1
- set_addr $I570, rxquantr569_done
- rx564_cur."!mark_push"(0, rx564_pos, $I570)
- rxquantr569_loop:
+ goto rxcap_573_done
+ rxcap_573_fail:
+ goto rx569_fail
+ rxcap_573_done:
+ # rx rxquantr574 ** 0..1
+ set_addr $I575, rxquantr574_done
+ rx569_cur."!mark_push"(0, rx569_pos, $I575)
+ rxquantr574_loop:
# rx literal "atchet"
- add $I11, rx564_pos, 6
- gt $I11, rx564_eos, rx564_fail
- sub $I11, rx564_pos, rx564_off
- substr $S10, rx564_tgt, $I11, 6
- ne $S10, "atchet", rx564_fail
- add rx564_pos, 6
- (rx564_rep) = rx564_cur."!mark_commit"($I570)
- rxquantr569_done:
+ add $I11, rx569_pos, 6
+ gt $I11, rx569_eos, rx569_fail
+ sub $I11, rx569_pos, rx569_off
+ substr $S10, rx569_tgt, $I11, 6
+ ne $S10, "atchet", rx569_fail
+ add rx569_pos, 6
+ (rx569_rep) = rx569_cur."!mark_commit"($I575)
+ rxquantr574_done:
# rx pass
- rx564_cur."!cursor_pass"(rx564_pos, "mod_ident:sym<ratchet>")
- rx564_cur."!cursor_debug"("PASS ", "mod_ident:sym<ratchet>", " at pos=", rx564_pos)
- .return (rx564_cur)
- rx564_fail:
+ rx569_cur."!cursor_pass"(rx569_pos, "mod_ident:sym<ratchet>")
+ rx569_cur."!cursor_debug"("PASS ", "mod_ident:sym<ratchet>", " at pos=", rx569_pos)
+ .return (rx569_cur)
+ rx569_fail:
.annotate 'line', 3
- (rx564_rep, rx564_pos, $I10, $P10) = rx564_cur."!mark_fail"(0)
- lt rx564_pos, -1, rx564_done
- eq rx564_pos, -1, rx564_fail
+ (rx569_rep, rx569_pos, $I10, $P10) = rx569_cur."!mark_fail"(0)
+ lt rx569_pos, -1, rx569_done
+ eq rx569_pos, -1, rx569_fail
jump $I10
- rx564_done:
- rx564_cur."!cursor_fail"()
- rx564_cur."!cursor_debug"("FAIL ", "mod_ident:sym<ratchet>")
- .return (rx564_cur)
+ rx569_done:
+ rx569_cur."!cursor_fail"()
+ rx569_cur."!cursor_debug"("FAIL ", "mod_ident:sym<ratchet>")
+ .return (rx569_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<ratchet>" :subid("155_1274022883.50471") :method
+.sub "!PREFIX__mod_ident:sym<ratchet>" :subid("155_1275811476.7961") :method
.annotate 'line', 3
- new $P566, "ResizablePMCArray"
- push $P566, "r"
- .return ($P566)
+ new $P571, "ResizablePMCArray"
+ push $P571, "r"
+ .return ($P571)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "mod_ident:sym<sigspace>" :subid("156_1274022883.50471") :method :outer("11_1274022883.50471")
+.sub "mod_ident:sym<sigspace>" :subid("156_1275811476.7961") :method :outer("11_1275811476.7961")
.annotate 'line', 3
- .local string rx572_tgt
- .local int rx572_pos
- .local int rx572_off
- .local int rx572_eos
- .local int rx572_rep
- .local pmc rx572_cur
- (rx572_cur, rx572_pos, rx572_tgt) = self."!cursor_start"()
- rx572_cur."!cursor_debug"("START ", "mod_ident:sym<sigspace>")
- .lex unicode:"$\x{a2}", rx572_cur
- .local pmc match
- .lex "$/", match
- length rx572_eos, rx572_tgt
- set rx572_off, 0
- lt rx572_pos, 2, rx572_start
- sub rx572_off, rx572_pos, 1
- substr rx572_tgt, rx572_tgt, rx572_off
- rx572_start:
- $I10 = self.'from'()
- ne $I10, -1, rxscan575_done
- goto rxscan575_scan
- rxscan575_loop:
- ($P10) = rx572_cur."from"()
- inc $P10
- set rx572_pos, $P10
- ge rx572_pos, rx572_eos, rxscan575_done
- rxscan575_scan:
- set_addr $I10, rxscan575_loop
- rx572_cur."!mark_push"(0, rx572_pos, $I10)
- rxscan575_done:
+ .local string rx577_tgt
+ .local int rx577_pos
+ .local int rx577_off
+ .local int rx577_eos
+ .local int rx577_rep
+ .local pmc rx577_cur
+ (rx577_cur, rx577_pos, rx577_tgt) = self."!cursor_start"()
+ rx577_cur."!cursor_debug"("START ", "mod_ident:sym<sigspace>")
+ .lex unicode:"$\x{a2}", rx577_cur
+ .local pmc match
+ .lex "$/", match
+ length rx577_eos, rx577_tgt
+ gt rx577_pos, rx577_eos, rx577_done
+ set rx577_off, 0
+ lt rx577_pos, 2, rx577_start
+ sub rx577_off, rx577_pos, 1
+ substr rx577_tgt, rx577_tgt, rx577_off
+ rx577_start:
+ $I10 = self.'from'()
+ ne $I10, -1, rxscan580_done
+ goto rxscan580_scan
+ rxscan580_loop:
+ ($P10) = rx577_cur."from"()
+ inc $P10
+ set rx577_pos, $P10
+ ge rx577_pos, rx577_eos, rxscan580_done
+ rxscan580_scan:
+ set_addr $I10, rxscan580_loop
+ rx577_cur."!mark_push"(0, rx577_pos, $I10)
+ rxscan580_done:
.annotate 'line', 184
# rx subcapture "sym"
- set_addr $I10, rxcap_576_fail
- rx572_cur."!mark_push"(0, rx572_pos, $I10)
+ set_addr $I10, rxcap_581_fail
+ rx577_cur."!mark_push"(0, rx577_pos, $I10)
# rx literal "s"
- add $I11, rx572_pos, 1
- gt $I11, rx572_eos, rx572_fail
- sub $I11, rx572_pos, rx572_off
- substr $S10, rx572_tgt, $I11, 1
- ne $S10, "s", rx572_fail
- add rx572_pos, 1
- set_addr $I10, rxcap_576_fail
- ($I12, $I11) = rx572_cur."!mark_peek"($I10)
- rx572_cur."!cursor_pos"($I11)
- ($P10) = rx572_cur."!cursor_start"()
- $P10."!cursor_pass"(rx572_pos, "")
- rx572_cur."!mark_push"(0, -1, 0, $P10)
+ add $I11, rx577_pos, 1
+ gt $I11, rx577_eos, rx577_fail
+ sub $I11, rx577_pos, rx577_off
+ substr $S10, rx577_tgt, $I11, 1
+ ne $S10, "s", rx577_fail
+ add rx577_pos, 1
+ set_addr $I10, rxcap_581_fail
+ ($I12, $I11) = rx577_cur."!mark_peek"($I10)
+ rx577_cur."!cursor_pos"($I11)
+ ($P10) = rx577_cur."!cursor_start"()
+ $P10."!cursor_pass"(rx577_pos, "")
+ rx577_cur."!mark_push"(0, -1, 0, $P10)
$P10."!cursor_names"("sym")
- goto rxcap_576_done
- rxcap_576_fail:
- goto rx572_fail
- rxcap_576_done:
- # rx rxquantr577 ** 0..1
- set_addr $I578, rxquantr577_done
- rx572_cur."!mark_push"(0, rx572_pos, $I578)
- rxquantr577_loop:
+ goto rxcap_581_done
+ rxcap_581_fail:
+ goto rx577_fail
+ rxcap_581_done:
+ # rx rxquantr582 ** 0..1
+ set_addr $I583, rxquantr582_done
+ rx577_cur."!mark_push"(0, rx577_pos, $I583)
+ rxquantr582_loop:
# rx literal "igspace"
- add $I11, rx572_pos, 7
- gt $I11, rx572_eos, rx572_fail
- sub $I11, rx572_pos, rx572_off
- substr $S10, rx572_tgt, $I11, 7
- ne $S10, "igspace", rx572_fail
- add rx572_pos, 7
- (rx572_rep) = rx572_cur."!mark_commit"($I578)
- rxquantr577_done:
+ add $I11, rx577_pos, 7
+ gt $I11, rx577_eos, rx577_fail
+ sub $I11, rx577_pos, rx577_off
+ substr $S10, rx577_tgt, $I11, 7
+ ne $S10, "igspace", rx577_fail
+ add rx577_pos, 7
+ (rx577_rep) = rx577_cur."!mark_commit"($I583)
+ rxquantr582_done:
# rx pass
- rx572_cur."!cursor_pass"(rx572_pos, "mod_ident:sym<sigspace>")
- rx572_cur."!cursor_debug"("PASS ", "mod_ident:sym<sigspace>", " at pos=", rx572_pos)
- .return (rx572_cur)
- rx572_fail:
+ rx577_cur."!cursor_pass"(rx577_pos, "mod_ident:sym<sigspace>")
+ rx577_cur."!cursor_debug"("PASS ", "mod_ident:sym<sigspace>", " at pos=", rx577_pos)
+ .return (rx577_cur)
+ rx577_fail:
.annotate 'line', 3
- (rx572_rep, rx572_pos, $I10, $P10) = rx572_cur."!mark_fail"(0)
- lt rx572_pos, -1, rx572_done
- eq rx572_pos, -1, rx572_fail
+ (rx577_rep, rx577_pos, $I10, $P10) = rx577_cur."!mark_fail"(0)
+ lt rx577_pos, -1, rx577_done
+ eq rx577_pos, -1, rx577_fail
jump $I10
- rx572_done:
- rx572_cur."!cursor_fail"()
- rx572_cur."!cursor_debug"("FAIL ", "mod_ident:sym<sigspace>")
- .return (rx572_cur)
+ rx577_done:
+ rx577_cur."!cursor_fail"()
+ rx577_cur."!cursor_debug"("FAIL ", "mod_ident:sym<sigspace>")
+ .return (rx577_cur)
.return ()
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "!PREFIX__mod_ident:sym<sigspace>" :subid("157_1274022883.50471") :method
+.sub "!PREFIX__mod_ident:sym<sigspace>" :subid("157_1275811476.7961") :method
.annotate 'line', 3
- new $P574, "ResizablePMCArray"
- push $P574, "s"
- .return ($P574)
+ new $P579, "ResizablePMCArray"
+ push $P579, "s"
+ .return ($P579)
.end
.namespace ["Regex";"P6Regex";"Grammar"]
-.sub "_block579" :load :anon :subid("158_1274022883.50471")
+.sub "_block584" :load :anon :subid("158_1275811476.7961")
.annotate 'line', 3
- .const 'Sub' $P581 = "11_1274022883.50471"
- $P582 = $P581()
- .return ($P582)
+ .const 'Sub' $P586 = "11_1275811476.7961"
+ $P587 = $P586()
+ .return ($P587)
.end
.namespace []
-.sub "_block584" :load :anon :subid("159_1274022883.50471")
+.sub "_block589" :load :anon :subid("159_1275811476.7961")
.annotate 'line', 1
- .const 'Sub' $P586 = "10_1274022883.50471"
- $P587 = $P586()
- .return ($P587)
+ .const 'Sub' $P591 = "10_1275811476.7961"
+ $P592 = $P591()
+ .return ($P592)
.end
### .include 'gen/p6regex-actions.pir'
.namespace []
-.sub "_block11" :anon :subid("10_1274022889.08438")
+.sub "_block11" :anon :subid("10_1275811482.3686")
.annotate 'line', 0
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
capture_lex $P14
+.annotate 'line', 1
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
.annotate 'line', 4
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
capture_lex $P14
- $P1572 = $P14()
+ $P1599 = $P14()
.annotate 'line', 1
- .return ($P1572)
- .const 'Sub' $P1574 = "90_1274022889.08438"
- .return ($P1574)
+ .return ($P1599)
+ .const 'Sub' $P1601 = "91_1275811482.3686"
+ .return ($P1601)
.end
.namespace []
-.sub "" :load :init :subid("post91") :outer("10_1274022889.08438")
+.sub "" :load :init :subid("post92") :outer("10_1275811482.3686")
.annotate 'line', 0
- .const 'Sub' $P12 = "10_1274022889.08438"
+ .const 'Sub' $P12 = "10_1275811482.3686"
.local pmc block
set block, $P12
- $P1577 = get_root_global ["parrot"], "P6metaclass"
- $P1577."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
+ $P1604 = get_root_global ["parrot"], "P6metaclass"
+ $P1604."new_class"("Regex::P6Regex::Actions", "HLL::Actions" :named("parent"))
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block13" :subid("11_1274022889.08438") :outer("10_1274022889.08438")
+.sub "_block13" :subid("11_1275811482.3686") :outer("10_1275811482.3686")
.annotate 'line', 4
- .const 'Sub' $P1534 = "88_1274022889.08438"
- capture_lex $P1534
- .const 'Sub' $P1465 = "84_1274022889.08438"
- capture_lex $P1465
- .const 'Sub' $P1397 = "82_1274022889.08438"
- capture_lex $P1397
- .const 'Sub' $P1324 = "79_1274022889.08438"
- capture_lex $P1324
- .const 'Sub' $P1310 = "78_1274022889.08438"
- capture_lex $P1310
- .const 'Sub' $P1286 = "77_1274022889.08438"
- capture_lex $P1286
- .const 'Sub' $P1268 = "76_1274022889.08438"
+ .const 'Sub' $P1561 = "89_1275811482.3686"
+ capture_lex $P1561
+ .const 'Sub' $P1492 = "85_1275811482.3686"
+ capture_lex $P1492
+ .const 'Sub' $P1424 = "83_1275811482.3686"
+ capture_lex $P1424
+ .const 'Sub' $P1351 = "80_1275811482.3686"
+ capture_lex $P1351
+ .const 'Sub' $P1337 = "79_1275811482.3686"
+ capture_lex $P1337
+ .const 'Sub' $P1313 = "78_1275811482.3686"
+ capture_lex $P1313
+ .const 'Sub' $P1295 = "77_1275811482.3686"
+ capture_lex $P1295
+ .const 'Sub' $P1281 = "76_1275811482.3686"
+ capture_lex $P1281
+ .const 'Sub' $P1268 = "75_1275811482.3686"
capture_lex $P1268
- .const 'Sub' $P1254 = "75_1274022889.08438"
- capture_lex $P1254
- .const 'Sub' $P1241 = "74_1274022889.08438"
- capture_lex $P1241
- .const 'Sub' $P1210 = "73_1274022889.08438"
- capture_lex $P1210
- .const 'Sub' $P1179 = "72_1274022889.08438"
- capture_lex $P1179
- .const 'Sub' $P1163 = "71_1274022889.08438"
- capture_lex $P1163
- .const 'Sub' $P1147 = "70_1274022889.08438"
- capture_lex $P1147
- .const 'Sub' $P1131 = "69_1274022889.08438"
- capture_lex $P1131
- .const 'Sub' $P1115 = "68_1274022889.08438"
- capture_lex $P1115
- .const 'Sub' $P1099 = "67_1274022889.08438"
- capture_lex $P1099
- .const 'Sub' $P1083 = "66_1274022889.08438"
- capture_lex $P1083
- .const 'Sub' $P1067 = "65_1274022889.08438"
- capture_lex $P1067
- .const 'Sub' $P1043 = "64_1274022889.08438"
- capture_lex $P1043
- .const 'Sub' $P1028 = "63_1274022889.08438"
- capture_lex $P1028
- .const 'Sub' $P972 = "62_1274022889.08438"
- capture_lex $P972
- .const 'Sub' $P951 = "61_1274022889.08438"
- capture_lex $P951
- .const 'Sub' $P929 = "60_1274022889.08438"
- capture_lex $P929
- .const 'Sub' $P919 = "59_1274022889.08438"
- capture_lex $P919
- .const 'Sub' $P909 = "58_1274022889.08438"
- capture_lex $P909
- .const 'Sub' $P899 = "57_1274022889.08438"
- capture_lex $P899
- .const 'Sub' $P887 = "56_1274022889.08438"
- capture_lex $P887
- .const 'Sub' $P875 = "55_1274022889.08438"
- capture_lex $P875
- .const 'Sub' $P863 = "54_1274022889.08438"
- capture_lex $P863
- .const 'Sub' $P851 = "53_1274022889.08438"
- capture_lex $P851
- .const 'Sub' $P839 = "52_1274022889.08438"
- capture_lex $P839
- .const 'Sub' $P827 = "51_1274022889.08438"
- capture_lex $P827
- .const 'Sub' $P815 = "50_1274022889.08438"
- capture_lex $P815
- .const 'Sub' $P803 = "49_1274022889.08438"
- capture_lex $P803
- .const 'Sub' $P780 = "48_1274022889.08438"
- capture_lex $P780
- .const 'Sub' $P757 = "47_1274022889.08438"
- capture_lex $P757
- .const 'Sub' $P739 = "46_1274022889.08438"
- capture_lex $P739
- .const 'Sub' $P729 = "45_1274022889.08438"
- capture_lex $P729
- .const 'Sub' $P711 = "44_1274022889.08438"
- capture_lex $P711
- .const 'Sub' $P664 = "43_1274022889.08438"
- capture_lex $P664
- .const 'Sub' $P647 = "42_1274022889.08438"
- capture_lex $P647
- .const 'Sub' $P632 = "41_1274022889.08438"
- capture_lex $P632
- .const 'Sub' $P617 = "40_1274022889.08438"
- capture_lex $P617
- .const 'Sub' $P591 = "39_1274022889.08438"
- capture_lex $P591
- .const 'Sub' $P541 = "37_1274022889.08438"
+ .const 'Sub' $P1237 = "74_1275811482.3686"
+ capture_lex $P1237
+ .const 'Sub' $P1206 = "73_1275811482.3686"
+ capture_lex $P1206
+ .const 'Sub' $P1190 = "72_1275811482.3686"
+ capture_lex $P1190
+ .const 'Sub' $P1174 = "71_1275811482.3686"
+ capture_lex $P1174
+ .const 'Sub' $P1158 = "70_1275811482.3686"
+ capture_lex $P1158
+ .const 'Sub' $P1142 = "69_1275811482.3686"
+ capture_lex $P1142
+ .const 'Sub' $P1126 = "68_1275811482.3686"
+ capture_lex $P1126
+ .const 'Sub' $P1110 = "67_1275811482.3686"
+ capture_lex $P1110
+ .const 'Sub' $P1094 = "66_1275811482.3686"
+ capture_lex $P1094
+ .const 'Sub' $P1070 = "65_1275811482.3686"
+ capture_lex $P1070
+ .const 'Sub' $P1055 = "64_1275811482.3686"
+ capture_lex $P1055
+ .const 'Sub' $P999 = "63_1275811482.3686"
+ capture_lex $P999
+ .const 'Sub' $P978 = "62_1275811482.3686"
+ capture_lex $P978
+ .const 'Sub' $P956 = "61_1275811482.3686"
+ capture_lex $P956
+ .const 'Sub' $P946 = "60_1275811482.3686"
+ capture_lex $P946
+ .const 'Sub' $P936 = "59_1275811482.3686"
+ capture_lex $P936
+ .const 'Sub' $P926 = "58_1275811482.3686"
+ capture_lex $P926
+ .const 'Sub' $P914 = "57_1275811482.3686"
+ capture_lex $P914
+ .const 'Sub' $P902 = "56_1275811482.3686"
+ capture_lex $P902
+ .const 'Sub' $P890 = "55_1275811482.3686"
+ capture_lex $P890
+ .const 'Sub' $P878 = "54_1275811482.3686"
+ capture_lex $P878
+ .const 'Sub' $P866 = "53_1275811482.3686"
+ capture_lex $P866
+ .const 'Sub' $P854 = "52_1275811482.3686"
+ capture_lex $P854
+ .const 'Sub' $P842 = "51_1275811482.3686"
+ capture_lex $P842
+ .const 'Sub' $P830 = "50_1275811482.3686"
+ capture_lex $P830
+ .const 'Sub' $P807 = "49_1275811482.3686"
+ capture_lex $P807
+ .const 'Sub' $P784 = "48_1275811482.3686"
+ capture_lex $P784
+ .const 'Sub' $P766 = "47_1275811482.3686"
+ capture_lex $P766
+ .const 'Sub' $P756 = "46_1275811482.3686"
+ capture_lex $P756
+ .const 'Sub' $P738 = "45_1275811482.3686"
+ capture_lex $P738
+ .const 'Sub' $P665 = "43_1275811482.3686"
+ capture_lex $P665
+ .const 'Sub' $P648 = "42_1275811482.3686"
+ capture_lex $P648
+ .const 'Sub' $P633 = "41_1275811482.3686"
+ capture_lex $P633
+ .const 'Sub' $P618 = "40_1275811482.3686"
+ capture_lex $P618
+ .const 'Sub' $P592 = "39_1275811482.3686"
+ capture_lex $P592
+ .const 'Sub' $P541 = "37_1275811482.3686"
capture_lex $P541
- .const 'Sub' $P473 = "35_1274022889.08438"
+ .const 'Sub' $P473 = "35_1275811482.3686"
capture_lex $P473
- .const 'Sub' $P418 = "32_1274022889.08438"
+ .const 'Sub' $P418 = "32_1275811482.3686"
capture_lex $P418
- .const 'Sub' $P403 = "31_1274022889.08438"
+ .const 'Sub' $P403 = "31_1275811482.3686"
capture_lex $P403
- .const 'Sub' $P377 = "29_1274022889.08438"
+ .const 'Sub' $P377 = "29_1275811482.3686"
capture_lex $P377
- .const 'Sub' $P360 = "28_1274022889.08438"
+ .const 'Sub' $P360 = "28_1275811482.3686"
capture_lex $P360
- .const 'Sub' $P338 = "27_1274022889.08438"
+ .const 'Sub' $P338 = "27_1275811482.3686"
capture_lex $P338
- .const 'Sub' $P305 = "26_1274022889.08438"
+ .const 'Sub' $P305 = "26_1275811482.3686"
capture_lex $P305
- .const 'Sub' $P50 = "13_1274022889.08438"
+ .const 'Sub' $P50 = "13_1275811482.3686"
capture_lex $P50
- .const 'Sub' $P16 = "12_1274022889.08438"
+ .const 'Sub' $P16 = "12_1275811482.3686"
capture_lex $P16
get_global $P15, "@MODIFIERS"
- unless_null $P15, vivify_93
+ unless_null $P15, vivify_94
$P15 = root_new ['parrot';'ResizablePMCArray']
set_global "@MODIFIERS", $P15
- vivify_93:
-.annotate 'line', 479
- .const 'Sub' $P16 = "12_1274022889.08438"
+ vivify_94:
+.annotate 'line', 494
+ .const 'Sub' $P16 = "12_1275811482.3686"
newclosure $P49, $P16
.lex "buildsub", $P49
-.annotate 'line', 496
- .const 'Sub' $P50 = "13_1274022889.08438"
+.annotate 'line', 511
+ .const 'Sub' $P50 = "13_1275811482.3686"
newclosure $P304, $P50
.lex "capnames", $P304
-.annotate 'line', 562
- .const 'Sub' $P305 = "26_1274022889.08438"
+.annotate 'line', 577
+ .const 'Sub' $P305 = "26_1275811482.3686"
newclosure $P337, $P305
.lex "backmod", $P337
-.annotate 'line', 569
- .const 'Sub' $P338 = "27_1274022889.08438"
+.annotate 'line', 584
+ .const 'Sub' $P338 = "27_1275811482.3686"
newclosure $P358, $P338
.lex "subrule_alias", $P358
.annotate 'line', 4
+ $P0 = find_dynamic_lex "$*CTXSAVE"
+ if null $P0 goto ctxsave_done
+ $I0 = can $P0, "ctxsave"
+ unless $I0 goto ctxsave_done
+ $P0."ctxsave"()
+ ctxsave_done:
get_global $P359, "@MODIFIERS"
-.annotate 'line', 472
- find_lex $P1563, "buildsub"
- find_lex $P1564, "capnames"
- find_lex $P1565, "backmod"
- find_lex $P1566, "subrule_alias"
+.annotate 'line', 487
+ find_lex $P1590, "buildsub"
+ find_lex $P1591, "capnames"
+ find_lex $P1592, "backmod"
+ find_lex $P1593, "subrule_alias"
.annotate 'line', 4
- .return ($P1566)
- .const 'Sub' $P1568 = "89_1274022889.08438"
- .return ($P1568)
+ .return ($P1593)
+ .const 'Sub' $P1595 = "90_1275811482.3686"
+ .return ($P1595)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "" :load :init :subid("post92") :outer("11_1274022889.08438")
+.sub "" :load :init :subid("post93") :outer("11_1275811482.3686")
.annotate 'line', 4
get_hll_global $P14, ["Regex";"P6Regex";"Actions"], "_block13"
.local pmc block
set block, $P14
.annotate 'line', 7
- $P1571 = new ['ResizablePMCArray']
+ $P1598 = new ['ResizablePMCArray']
$P0 = new ['Hash']
- push $P1571, $P0
+ push $P1598, $P0
- set_global "@MODIFIERS", $P1571
+ set_global "@MODIFIERS", $P1598
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "buildsub" :subid("12_1274022889.08438") :outer("11_1274022889.08438")
+.include "except_types.pasm"
+.sub "buildsub" :subid("12_1275811482.3686") :outer("11_1275811482.3686")
.param pmc param_19
.param pmc param_20 :optional
.param int has_param_20 :opt_flag
-.annotate 'line', 479
+.annotate 'line', 494
new $P18, 'ExceptionHandler'
set_addr $P18, control_17
- $P18."handle_types"(57)
+ $P18."handle_types"(.CONTROL_RETURN)
push_eh $P18
.lex "$rpast", param_19
- if has_param_20, optparam_94
+ if has_param_20, optparam_95
get_hll_global $P21, ["PAST"], "Block"
$P22 = $P21."new"()
set param_20, $P22
- optparam_94:
+ optparam_95:
.lex "$block", param_20
-.annotate 'line', 480
+.annotate 'line', 495
$P23 = root_new ['parrot';'Hash']
.lex "%capnames", $P23
find_lex $P24, "$rpast"
$P25 = "capnames"($P24, 0)
store_lex "%capnames", $P25
-.annotate 'line', 481
+.annotate 'line', 496
new $P26, "Integer"
assign $P26, 0
find_lex $P27, "%capnames"
- unless_null $P27, vivify_95
+ unless_null $P27, vivify_96
$P27 = root_new ['parrot';'Hash']
store_lex "%capnames", $P27
- vivify_95:
+ vivify_96:
set $P27[""], $P26
-.annotate 'line', 482
+.annotate 'line', 497
get_hll_global $P28, ["PAST"], "Regex"
-.annotate 'line', 483
+.annotate 'line', 498
get_hll_global $P29, ["PAST"], "Regex"
$P30 = $P29."new"("scan" :named("pasttype"))
find_lex $P31, "$rpast"
-.annotate 'line', 485
+.annotate 'line', 500
get_hll_global $P32, ["PAST"], "Regex"
$P33 = $P32."new"("pass" :named("pasttype"))
find_lex $P34, "%capnames"
$P35 = $P28."new"($P30, $P31, $P33, "concat" :named("pasttype"), $P34 :named("capnames"))
-.annotate 'line', 482
+.annotate 'line', 497
store_lex "$rpast", $P35
-.annotate 'line', 489
+.annotate 'line', 504
find_lex $P37, "$block"
$P38 = $P37."symbol"(unicode:"$\x{a2}")
if $P38, unless_36_end
find_lex $P39, "$block"
$P39."symbol"(unicode:"$\x{a2}", "lexical" :named("scope"))
unless_36_end:
-.annotate 'line', 490
+.annotate 'line', 505
find_lex $P41, "$block"
$P42 = $P41."symbol"("$/")
if $P42, unless_40_end
find_lex $P43, "$block"
$P43."symbol"("$/", "lexical" :named("scope"))
unless_40_end:
-.annotate 'line', 491
+.annotate 'line', 506
find_lex $P44, "$block"
find_lex $P45, "$rpast"
$P44."push"($P45)
-.annotate 'line', 492
+.annotate 'line', 507
find_lex $P46, "$block"
$P46."blocktype"("method")
find_lex $P47, "$block"
-.annotate 'line', 479
+.annotate 'line', 494
.return ($P47)
control_17:
.local pmc exception
@@ -7441,49 +7562,50 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "capnames" :subid("13_1274022889.08438") :outer("11_1274022889.08438")
+.include "except_types.pasm"
+.sub "capnames" :subid("13_1275811482.3686") :outer("11_1275811482.3686")
.param pmc param_53
.param pmc param_54
-.annotate 'line', 496
- .const 'Sub' $P279 = "24_1274022889.08438"
+.annotate 'line', 511
+ .const 'Sub' $P279 = "24_1275811482.3686"
capture_lex $P279
- .const 'Sub' $P216 = "21_1274022889.08438"
+ .const 'Sub' $P216 = "21_1275811482.3686"
capture_lex $P216
- .const 'Sub' $P174 = "19_1274022889.08438"
+ .const 'Sub' $P174 = "19_1275811482.3686"
capture_lex $P174
- .const 'Sub' $P132 = "17_1274022889.08438"
+ .const 'Sub' $P132 = "17_1275811482.3686"
capture_lex $P132
- .const 'Sub' $P65 = "14_1274022889.08438"
+ .const 'Sub' $P65 = "14_1275811482.3686"
capture_lex $P65
new $P52, 'ExceptionHandler'
set_addr $P52, control_51
- $P52."handle_types"(57)
+ $P52."handle_types"(.CONTROL_RETURN)
push_eh $P52
.lex "$ast", param_53
.lex "$count", param_54
-.annotate 'line', 497
+.annotate 'line', 512
$P55 = root_new ['parrot';'Hash']
.lex "%capnames", $P55
-.annotate 'line', 498
+.annotate 'line', 513
new $P56, "Undef"
.lex "$pasttype", $P56
-.annotate 'line', 496
+.annotate 'line', 511
find_lex $P57, "%capnames"
-.annotate 'line', 498
+.annotate 'line', 513
find_lex $P58, "$ast"
$P59 = $P58."pasttype"()
store_lex "$pasttype", $P59
-.annotate 'line', 499
+.annotate 'line', 514
find_lex $P61, "$pasttype"
set $S62, $P61
iseq $I63, $S62, "alt"
if $I63, if_60
-.annotate 'line', 512
+.annotate 'line', 527
find_lex $P123, "$pasttype"
set $S124, $P123
iseq $I125, $S124, "concat"
if $I125, if_122
-.annotate 'line', 521
+.annotate 'line', 536
find_lex $P167, "$pasttype"
set $S168, $P167
iseq $I169, $S168, "subrule"
@@ -7499,51 +7621,51 @@
set $P165, $I172
if_166_end:
if $P165, if_164
-.annotate 'line', 534
+.annotate 'line', 549
find_lex $P212, "$pasttype"
set $S213, $P212
iseq $I214, $S213, "subcapture"
if $I214, if_211
-.annotate 'line', 551
+.annotate 'line', 566
find_lex $P275, "$pasttype"
set $S276, $P275
iseq $I277, $S276, "quant"
unless $I277, if_274_end
- .const 'Sub' $P279 = "24_1274022889.08438"
+ .const 'Sub' $P279 = "24_1275811482.3686"
capture_lex $P279
$P279()
if_274_end:
goto if_211_end
if_211:
-.annotate 'line', 534
- .const 'Sub' $P216 = "21_1274022889.08438"
+.annotate 'line', 549
+ .const 'Sub' $P216 = "21_1275811482.3686"
capture_lex $P216
$P216()
if_211_end:
goto if_164_end
if_164:
-.annotate 'line', 521
- .const 'Sub' $P174 = "19_1274022889.08438"
+.annotate 'line', 536
+ .const 'Sub' $P174 = "19_1275811482.3686"
capture_lex $P174
$P174()
if_164_end:
goto if_122_end
if_122:
-.annotate 'line', 513
+.annotate 'line', 528
find_lex $P127, "$ast"
$P128 = $P127."list"()
defined $I129, $P128
- unless $I129, for_undef_116
+ unless $I129, for_undef_117
iter $P126, $P128
new $P162, 'ExceptionHandler'
set_addr $P162, loop161_handler
- $P162."handle_types"(64, 66, 65)
+ $P162."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P162
loop161_test:
unless $P126, loop161_done
shift $P130, $P126
loop161_redo:
- .const 'Sub' $P132 = "17_1274022889.08438"
+ .const 'Sub' $P132 = "17_1275811482.3686"
capture_lex $P132
$P132($P130)
loop161_next:
@@ -7552,30 +7674,30 @@
.local pmc exception
.get_results (exception)
getattribute $P163, exception, 'type'
- eq $P163, 64, loop161_next
- eq $P163, 66, loop161_redo
+ eq $P163, .CONTROL_LOOP_NEXT, loop161_next
+ eq $P163, .CONTROL_LOOP_REDO, loop161_redo
loop161_done:
pop_eh
- for_undef_116:
+ for_undef_117:
if_122_end:
-.annotate 'line', 512
+.annotate 'line', 527
goto if_60_end
if_60:
-.annotate 'line', 499
- .const 'Sub' $P65 = "14_1274022889.08438"
+.annotate 'line', 514
+ .const 'Sub' $P65 = "14_1275811482.3686"
capture_lex $P65
$P65()
if_60_end:
-.annotate 'line', 558
+.annotate 'line', 573
find_lex $P300, "$count"
find_lex $P301, "%capnames"
- unless_null $P301, vivify_136
+ unless_null $P301, vivify_137
$P301 = root_new ['parrot';'Hash']
store_lex "%capnames", $P301
- vivify_136:
+ vivify_137:
set $P301[""], $P300
find_lex $P302, "%capnames"
-.annotate 'line', 496
+.annotate 'line', 511
.return ($P302)
control_51:
.local pmc exception
@@ -7586,38 +7708,39 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block278" :anon :subid("24_1274022889.08438") :outer("13_1274022889.08438")
-.annotate 'line', 551
- .const 'Sub' $P290 = "25_1274022889.08438"
+.include "except_types.pasm"
+.sub "_block278" :anon :subid("24_1275811482.3686") :outer("13_1275811482.3686")
+.annotate 'line', 566
+ .const 'Sub' $P290 = "25_1275811482.3686"
capture_lex $P290
-.annotate 'line', 552
+.annotate 'line', 567
$P280 = root_new ['parrot';'Hash']
.lex "%astcap", $P280
find_lex $P281, "$ast"
- unless_null $P281, vivify_96
+ unless_null $P281, vivify_97
$P281 = root_new ['parrot';'ResizablePMCArray']
- vivify_96:
+ vivify_97:
set $P282, $P281[0]
- unless_null $P282, vivify_97
+ unless_null $P282, vivify_98
new $P282, "Undef"
- vivify_97:
+ vivify_98:
find_lex $P283, "$count"
$P284 = "capnames"($P282, $P283)
store_lex "%astcap", $P284
-.annotate 'line', 553
+.annotate 'line', 568
find_lex $P286, "%astcap"
defined $I287, $P286
- unless $I287, for_undef_98
+ unless $I287, for_undef_99
iter $P285, $P286
new $P296, 'ExceptionHandler'
set_addr $P296, loop295_handler
- $P296."handle_types"(64, 66, 65)
+ $P296."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P296
loop295_test:
unless $P285, loop295_done
shift $P288, $P285
loop295_redo:
- .const 'Sub' $P290 = "25_1274022889.08438"
+ .const 'Sub' $P290 = "25_1275811482.3686"
capture_lex $P290
$P290($P288)
loop295_next:
@@ -7626,87 +7749,88 @@
.local pmc exception
.get_results (exception)
getattribute $P297, exception, 'type'
- eq $P297, 64, loop295_next
- eq $P297, 66, loop295_redo
+ eq $P297, .CONTROL_LOOP_NEXT, loop295_next
+ eq $P297, .CONTROL_LOOP_REDO, loop295_redo
loop295_done:
pop_eh
- for_undef_98:
-.annotate 'line', 556
+ for_undef_99:
+.annotate 'line', 571
find_lex $P298, "%astcap"
- unless_null $P298, vivify_100
+ unless_null $P298, vivify_101
$P298 = root_new ['parrot';'Hash']
- vivify_100:
+ vivify_101:
set $P299, $P298[""]
- unless_null $P299, vivify_101
+ unless_null $P299, vivify_102
new $P299, "Undef"
- vivify_101:
+ vivify_102:
store_lex "$count", $P299
-.annotate 'line', 551
+.annotate 'line', 566
.return ($P299)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block289" :anon :subid("25_1274022889.08438") :outer("24_1274022889.08438")
+.sub "_block289" :anon :subid("25_1275811482.3686") :outer("24_1275811482.3686")
.param pmc param_291
-.annotate 'line', 553
+.annotate 'line', 568
.lex "$_", param_291
-.annotate 'line', 554
+.annotate 'line', 569
new $P292, "Integer"
assign $P292, 2
find_lex $P293, "$_"
find_lex $P294, "%capnames"
- unless_null $P294, vivify_99
+ unless_null $P294, vivify_100
$P294 = root_new ['parrot';'Hash']
store_lex "%capnames", $P294
- vivify_99:
+ vivify_100:
set $P294[$P293], $P292
-.annotate 'line', 553
+.annotate 'line', 568
.return ($P292)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block215" :anon :subid("21_1274022889.08438") :outer("13_1274022889.08438")
-.annotate 'line', 534
- .const 'Sub' $P256 = "23_1274022889.08438"
+.include "except_types.pasm"
+.sub "_block215" :anon :subid("21_1275811482.3686") :outer("13_1275811482.3686")
+.annotate 'line', 549
+ .const 'Sub' $P256 = "23_1275811482.3686"
capture_lex $P256
- .const 'Sub' $P228 = "22_1274022889.08438"
+ .const 'Sub' $P228 = "22_1275811482.3686"
capture_lex $P228
-.annotate 'line', 535
+.annotate 'line', 550
new $P217, "Undef"
.lex "$name", $P217
-.annotate 'line', 536
+.annotate 'line', 551
$P218 = root_new ['parrot';'ResizablePMCArray']
.lex "@names", $P218
-.annotate 'line', 545
+.annotate 'line', 560
$P219 = root_new ['parrot';'Hash']
.lex "%x", $P219
-.annotate 'line', 535
+.annotate 'line', 550
find_lex $P220, "$ast"
$P221 = $P220."name"()
store_lex "$name", $P221
-.annotate 'line', 536
+.annotate 'line', 551
$P0 = find_lex '$name'
$S0 = $P0
$P222 = split '=', $S0
store_lex "@names", $P222
-.annotate 'line', 541
+.annotate 'line', 556
find_lex $P224, "@names"
defined $I225, $P224
- unless $I225, for_undef_102
+ unless $I225, for_undef_103
iter $P223, $P224
new $P245, 'ExceptionHandler'
set_addr $P245, loop244_handler
- $P245."handle_types"(64, 66, 65)
+ $P245."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P245
loop244_test:
unless $P223, loop244_done
shift $P226, $P223
loop244_redo:
- .const 'Sub' $P228 = "22_1274022889.08438"
+ .const 'Sub' $P228 = "22_1275811482.3686"
capture_lex $P228
$P228($P226)
loop244_next:
@@ -7715,37 +7839,37 @@
.local pmc exception
.get_results (exception)
getattribute $P246, exception, 'type'
- eq $P246, 64, loop244_next
- eq $P246, 66, loop244_redo
+ eq $P246, .CONTROL_LOOP_NEXT, loop244_next
+ eq $P246, .CONTROL_LOOP_REDO, loop244_redo
loop244_done:
pop_eh
- for_undef_102:
-.annotate 'line', 545
+ for_undef_103:
+.annotate 'line', 560
find_lex $P247, "$ast"
- unless_null $P247, vivify_104
+ unless_null $P247, vivify_105
$P247 = root_new ['parrot';'ResizablePMCArray']
- vivify_104:
+ vivify_105:
set $P248, $P247[0]
- unless_null $P248, vivify_105
+ unless_null $P248, vivify_106
new $P248, "Undef"
- vivify_105:
+ vivify_106:
find_lex $P249, "$count"
$P250 = "capnames"($P248, $P249)
store_lex "%x", $P250
-.annotate 'line', 546
+.annotate 'line', 561
find_lex $P252, "%x"
defined $I253, $P252
- unless $I253, for_undef_106
+ unless $I253, for_undef_107
iter $P251, $P252
new $P270, 'ExceptionHandler'
set_addr $P270, loop269_handler
- $P270."handle_types"(64, 66, 65)
+ $P270."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P270
loop269_test:
unless $P251, loop269_done
shift $P254, $P251
loop269_redo:
- .const 'Sub' $P256 = "23_1274022889.08438"
+ .const 'Sub' $P256 = "23_1275811482.3686"
capture_lex $P256
$P256($P254)
loop269_next:
@@ -7754,32 +7878,32 @@
.local pmc exception
.get_results (exception)
getattribute $P271, exception, 'type'
- eq $P271, 64, loop269_next
- eq $P271, 66, loop269_redo
+ eq $P271, .CONTROL_LOOP_NEXT, loop269_next
+ eq $P271, .CONTROL_LOOP_REDO, loop269_redo
loop269_done:
pop_eh
- for_undef_106:
-.annotate 'line', 549
+ for_undef_107:
+.annotate 'line', 564
find_lex $P272, "%x"
- unless_null $P272, vivify_112
+ unless_null $P272, vivify_113
$P272 = root_new ['parrot';'Hash']
- vivify_112:
+ vivify_113:
set $P273, $P272[""]
- unless_null $P273, vivify_113
+ unless_null $P273, vivify_114
new $P273, "Undef"
- vivify_113:
+ vivify_114:
store_lex "$count", $P273
-.annotate 'line', 534
+.annotate 'line', 549
.return ($P273)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block227" :anon :subid("22_1274022889.08438") :outer("21_1274022889.08438")
+.sub "_block227" :anon :subid("22_1275811482.3686") :outer("21_1275811482.3686")
.param pmc param_229
-.annotate 'line', 541
+.annotate 'line', 556
.lex "$_", param_229
-.annotate 'line', 542
+.annotate 'line', 557
find_lex $P233, "$_"
set $S234, $P233
iseq $I235, $S234, "0"
@@ -7799,77 +7923,78 @@
add $P240, $P239, 1
store_lex "$count", $P240
if_230_end:
-.annotate 'line', 543
+.annotate 'line', 558
new $P241, "Integer"
assign $P241, 1
find_lex $P242, "$_"
find_lex $P243, "%capnames"
- unless_null $P243, vivify_103
+ unless_null $P243, vivify_104
$P243 = root_new ['parrot';'Hash']
store_lex "%capnames", $P243
- vivify_103:
+ vivify_104:
set $P243[$P242], $P241
-.annotate 'line', 541
+.annotate 'line', 556
.return ($P241)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block255" :anon :subid("23_1274022889.08438") :outer("21_1274022889.08438")
+.sub "_block255" :anon :subid("23_1275811482.3686") :outer("21_1275811482.3686")
.param pmc param_257
-.annotate 'line', 546
+.annotate 'line', 561
.lex "$_", param_257
-.annotate 'line', 547
+.annotate 'line', 562
find_lex $P258, "$_"
find_lex $P259, "%capnames"
- unless_null $P259, vivify_107
+ unless_null $P259, vivify_108
$P259 = root_new ['parrot';'Hash']
- vivify_107:
+ vivify_108:
set $P260, $P259[$P258]
- unless_null $P260, vivify_108
+ unless_null $P260, vivify_109
new $P260, "Undef"
- vivify_108:
+ vivify_109:
set $N261, $P260
new $P262, 'Float'
set $P262, $N261
find_lex $P263, "$_"
find_lex $P264, "%x"
- unless_null $P264, vivify_109
+ unless_null $P264, vivify_110
$P264 = root_new ['parrot';'Hash']
- vivify_109:
+ vivify_110:
set $P265, $P264[$P263]
- unless_null $P265, vivify_110
+ unless_null $P265, vivify_111
new $P265, "Undef"
- vivify_110:
+ vivify_111:
add $P266, $P262, $P265
find_lex $P267, "$_"
find_lex $P268, "%capnames"
- unless_null $P268, vivify_111
+ unless_null $P268, vivify_112
$P268 = root_new ['parrot';'Hash']
store_lex "%capnames", $P268
- vivify_111:
+ vivify_112:
set $P268[$P267], $P266
-.annotate 'line', 546
+.annotate 'line', 561
.return ($P266)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block173" :anon :subid("19_1274022889.08438") :outer("13_1274022889.08438")
-.annotate 'line', 521
- .const 'Sub' $P192 = "20_1274022889.08438"
+.include "except_types.pasm"
+.sub "_block173" :anon :subid("19_1275811482.3686") :outer("13_1275811482.3686")
+.annotate 'line', 536
+ .const 'Sub' $P192 = "20_1275811482.3686"
capture_lex $P192
-.annotate 'line', 522
+.annotate 'line', 537
new $P175, "Undef"
.lex "$name", $P175
-.annotate 'line', 524
+.annotate 'line', 539
$P176 = root_new ['parrot';'ResizablePMCArray']
.lex "@names", $P176
-.annotate 'line', 522
+.annotate 'line', 537
find_lex $P177, "$ast"
$P178 = $P177."name"()
store_lex "$name", $P178
-.annotate 'line', 523
+.annotate 'line', 538
find_lex $P180, "$name"
set $S181, $P180
iseq $I182, $S181, ""
@@ -7880,27 +8005,27 @@
find_lex $P185, "$name"
$P184."name"($P185)
if_179_end:
-.annotate 'line', 524
+.annotate 'line', 539
$P0 = find_lex '$name'
$S0 = $P0
$P186 = split '=', $S0
store_lex "@names", $P186
-.annotate 'line', 529
+.annotate 'line', 544
find_lex $P188, "@names"
defined $I189, $P188
- unless $I189, for_undef_114
+ unless $I189, for_undef_115
iter $P187, $P188
new $P209, 'ExceptionHandler'
set_addr $P209, loop208_handler
- $P209."handle_types"(64, 66, 65)
+ $P209."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P209
loop208_test:
unless $P187, loop208_done
shift $P190, $P187
loop208_redo:
- .const 'Sub' $P192 = "20_1274022889.08438"
+ .const 'Sub' $P192 = "20_1275811482.3686"
capture_lex $P192
$P192($P190)
loop208_next:
@@ -7909,22 +8034,22 @@
.local pmc exception
.get_results (exception)
getattribute $P210, exception, 'type'
- eq $P210, 64, loop208_next
- eq $P210, 66, loop208_redo
+ eq $P210, .CONTROL_LOOP_NEXT, loop208_next
+ eq $P210, .CONTROL_LOOP_REDO, loop208_redo
loop208_done:
pop_eh
- for_undef_114:
-.annotate 'line', 521
+ for_undef_115:
+.annotate 'line', 536
.return ($P187)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block191" :anon :subid("20_1274022889.08438") :outer("19_1274022889.08438")
+.sub "_block191" :anon :subid("20_1275811482.3686") :outer("19_1275811482.3686")
.param pmc param_193
-.annotate 'line', 529
+.annotate 'line', 544
.lex "$_", param_193
-.annotate 'line', 530
+.annotate 'line', 545
find_lex $P197, "$_"
set $S198, $P197
iseq $I199, $S198, "0"
@@ -7944,28 +8069,29 @@
add $P204, $P203, 1
store_lex "$count", $P204
if_194_end:
-.annotate 'line', 531
+.annotate 'line', 546
new $P205, "Integer"
assign $P205, 1
find_lex $P206, "$_"
find_lex $P207, "%capnames"
- unless_null $P207, vivify_115
+ unless_null $P207, vivify_116
$P207 = root_new ['parrot';'Hash']
store_lex "%capnames", $P207
- vivify_115:
+ vivify_116:
set $P207[$P206], $P205
-.annotate 'line', 529
+.annotate 'line', 544
.return ($P205)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block131" :anon :subid("17_1274022889.08438") :outer("13_1274022889.08438")
+.include "except_types.pasm"
+.sub "_block131" :anon :subid("17_1275811482.3686") :outer("13_1275811482.3686")
.param pmc param_134
-.annotate 'line', 513
- .const 'Sub' $P143 = "18_1274022889.08438"
+.annotate 'line', 528
+ .const 'Sub' $P143 = "18_1275811482.3686"
capture_lex $P143
-.annotate 'line', 514
+.annotate 'line', 529
$P133 = root_new ['parrot';'Hash']
.lex "%x", $P133
.lex "$_", param_134
@@ -7973,20 +8099,20 @@
find_lex $P136, "$count"
$P137 = "capnames"($P135, $P136)
store_lex "%x", $P137
-.annotate 'line', 515
+.annotate 'line', 530
find_lex $P139, "%x"
defined $I140, $P139
- unless $I140, for_undef_117
+ unless $I140, for_undef_118
iter $P138, $P139
new $P157, 'ExceptionHandler'
set_addr $P157, loop156_handler
- $P157."handle_types"(64, 66, 65)
+ $P157."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P157
loop156_test:
unless $P138, loop156_done
shift $P141, $P138
loop156_redo:
- .const 'Sub' $P143 = "18_1274022889.08438"
+ .const 'Sub' $P143 = "18_1275811482.3686"
capture_lex $P143
$P143($P141)
loop156_next:
@@ -7995,91 +8121,92 @@
.local pmc exception
.get_results (exception)
getattribute $P158, exception, 'type'
- eq $P158, 64, loop156_next
- eq $P158, 66, loop156_redo
+ eq $P158, .CONTROL_LOOP_NEXT, loop156_next
+ eq $P158, .CONTROL_LOOP_REDO, loop156_redo
loop156_done:
pop_eh
- for_undef_117:
-.annotate 'line', 518
+ for_undef_118:
+.annotate 'line', 533
find_lex $P159, "%x"
- unless_null $P159, vivify_123
+ unless_null $P159, vivify_124
$P159 = root_new ['parrot';'Hash']
- vivify_123:
+ vivify_124:
set $P160, $P159[""]
- unless_null $P160, vivify_124
+ unless_null $P160, vivify_125
new $P160, "Undef"
- vivify_124:
+ vivify_125:
store_lex "$count", $P160
-.annotate 'line', 513
+.annotate 'line', 528
.return ($P160)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block142" :anon :subid("18_1274022889.08438") :outer("17_1274022889.08438")
+.sub "_block142" :anon :subid("18_1275811482.3686") :outer("17_1275811482.3686")
.param pmc param_144
-.annotate 'line', 515
+.annotate 'line', 530
.lex "$_", param_144
-.annotate 'line', 516
+.annotate 'line', 531
find_lex $P145, "$_"
find_lex $P146, "%capnames"
- unless_null $P146, vivify_118
+ unless_null $P146, vivify_119
$P146 = root_new ['parrot';'Hash']
- vivify_118:
+ vivify_119:
set $P147, $P146[$P145]
- unless_null $P147, vivify_119
+ unless_null $P147, vivify_120
new $P147, "Undef"
- vivify_119:
+ vivify_120:
set $N148, $P147
new $P149, 'Float'
set $P149, $N148
find_lex $P150, "$_"
find_lex $P151, "%x"
- unless_null $P151, vivify_120
+ unless_null $P151, vivify_121
$P151 = root_new ['parrot';'Hash']
- vivify_120:
+ vivify_121:
set $P152, $P151[$P150]
- unless_null $P152, vivify_121
+ unless_null $P152, vivify_122
new $P152, "Undef"
- vivify_121:
+ vivify_122:
add $P153, $P149, $P152
find_lex $P154, "$_"
find_lex $P155, "%capnames"
- unless_null $P155, vivify_122
+ unless_null $P155, vivify_123
$P155 = root_new ['parrot';'Hash']
store_lex "%capnames", $P155
- vivify_122:
+ vivify_123:
set $P155[$P154], $P153
-.annotate 'line', 515
+.annotate 'line', 530
.return ($P153)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block64" :anon :subid("14_1274022889.08438") :outer("13_1274022889.08438")
-.annotate 'line', 499
- .const 'Sub' $P74 = "15_1274022889.08438"
+.include "except_types.pasm"
+.sub "_block64" :anon :subid("14_1275811482.3686") :outer("13_1275811482.3686")
+.annotate 'line', 514
+ .const 'Sub' $P74 = "15_1275811482.3686"
capture_lex $P74
-.annotate 'line', 500
+.annotate 'line', 515
new $P66, "Undef"
.lex "$max", $P66
find_lex $P67, "$count"
store_lex "$max", $P67
-.annotate 'line', 501
+.annotate 'line', 516
find_lex $P69, "$ast"
$P70 = $P69."list"()
defined $I71, $P70
- unless $I71, for_undef_125
+ unless $I71, for_undef_126
iter $P68, $P70
new $P119, 'ExceptionHandler'
set_addr $P119, loop118_handler
- $P119."handle_types"(64, 66, 65)
+ $P119."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P119
loop118_test:
unless $P68, loop118_done
shift $P72, $P68
loop118_redo:
- .const 'Sub' $P74 = "15_1274022889.08438"
+ .const 'Sub' $P74 = "15_1275811482.3686"
capture_lex $P74
$P74($P72)
loop118_next:
@@ -8088,26 +8215,27 @@
.local pmc exception
.get_results (exception)
getattribute $P120, exception, 'type'
- eq $P120, 64, loop118_next
- eq $P120, 66, loop118_redo
+ eq $P120, .CONTROL_LOOP_NEXT, loop118_next
+ eq $P120, .CONTROL_LOOP_REDO, loop118_redo
loop118_done:
pop_eh
- for_undef_125:
-.annotate 'line', 510
+ for_undef_126:
+.annotate 'line', 525
find_lex $P121, "$max"
store_lex "$count", $P121
-.annotate 'line', 499
+.annotate 'line', 514
.return ($P121)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block73" :anon :subid("15_1274022889.08438") :outer("14_1274022889.08438")
+.include "except_types.pasm"
+.sub "_block73" :anon :subid("15_1275811482.3686") :outer("14_1275811482.3686")
.param pmc param_76
-.annotate 'line', 501
- .const 'Sub' $P85 = "16_1274022889.08438"
+.annotate 'line', 516
+ .const 'Sub' $P85 = "16_1275811482.3686"
capture_lex $P85
-.annotate 'line', 502
+.annotate 'line', 517
$P75 = root_new ['parrot';'Hash']
.lex "%x", $P75
.lex "$_", param_76
@@ -8115,20 +8243,20 @@
find_lex $P78, "$count"
$P79 = "capnames"($P77, $P78)
store_lex "%x", $P79
-.annotate 'line', 503
+.annotate 'line', 518
find_lex $P81, "%x"
defined $I82, $P81
- unless $I82, for_undef_126
+ unless $I82, for_undef_127
iter $P80, $P81
new $P106, 'ExceptionHandler'
set_addr $P106, loop105_handler
- $P106."handle_types"(64, 66, 65)
+ $P106."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P106
loop105_test:
unless $P80, loop105_done
shift $P83, $P80
loop105_redo:
- .const 'Sub' $P85 = "16_1274022889.08438"
+ .const 'Sub' $P85 = "16_1275811482.3686"
capture_lex $P85
$P85($P83)
loop105_next:
@@ -8137,20 +8265,20 @@
.local pmc exception
.get_results (exception)
getattribute $P107, exception, 'type'
- eq $P107, 64, loop105_next
- eq $P107, 66, loop105_redo
+ eq $P107, .CONTROL_LOOP_NEXT, loop105_next
+ eq $P107, .CONTROL_LOOP_REDO, loop105_redo
loop105_done:
pop_eh
- for_undef_126:
-.annotate 'line', 508
+ for_undef_127:
+.annotate 'line', 523
find_lex $P110, "%x"
- unless_null $P110, vivify_132
+ unless_null $P110, vivify_133
$P110 = root_new ['parrot';'Hash']
- vivify_132:
+ vivify_133:
set $P111, $P110[""]
- unless_null $P111, vivify_133
+ unless_null $P111, vivify_134
new $P111, "Undef"
- vivify_133:
+ vivify_134:
set $N112, $P111
find_lex $P113, "$max"
set $N114, $P113
@@ -8161,36 +8289,36 @@
goto if_109_end
if_109:
find_lex $P116, "%x"
- unless_null $P116, vivify_134
+ unless_null $P116, vivify_135
$P116 = root_new ['parrot';'Hash']
- vivify_134:
+ vivify_135:
set $P117, $P116[""]
- unless_null $P117, vivify_135
+ unless_null $P117, vivify_136
new $P117, "Undef"
- vivify_135:
+ vivify_136:
store_lex "$max", $P117
set $P108, $P117
if_109_end:
-.annotate 'line', 501
+.annotate 'line', 516
.return ($P108)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block84" :anon :subid("16_1274022889.08438") :outer("15_1274022889.08438")
+.sub "_block84" :anon :subid("16_1275811482.3686") :outer("15_1275811482.3686")
.param pmc param_86
-.annotate 'line', 503
+.annotate 'line', 518
.lex "$_", param_86
-.annotate 'line', 504
+.annotate 'line', 519
find_lex $P91, "$_"
find_lex $P92, "%capnames"
- unless_null $P92, vivify_127
+ unless_null $P92, vivify_128
$P92 = root_new ['parrot';'Hash']
- vivify_127:
+ vivify_128:
set $P93, $P92[$P91]
- unless_null $P93, vivify_128
+ unless_null $P93, vivify_129
new $P93, "Undef"
- vivify_128:
+ vivify_129:
set $N94, $P93
islt $I95, $N94, 2.0
if $I95, if_90
@@ -8200,13 +8328,13 @@
if_90:
find_lex $P96, "$_"
find_lex $P97, "%x"
- unless_null $P97, vivify_129
+ unless_null $P97, vivify_130
$P97 = root_new ['parrot';'Hash']
- vivify_129:
+ vivify_130:
set $P98, $P97[$P96]
- unless_null $P98, vivify_130
+ unless_null $P98, vivify_131
new $P98, "Undef"
- vivify_130:
+ vivify_131:
set $N99, $P98
iseq $I100, $N99, 1.0
new $P89, 'Integer'
@@ -8222,36 +8350,37 @@
assign $P101, 1
set $P87, $P101
if_88_end:
-.annotate 'line', 505
+.annotate 'line', 520
find_lex $P103, "$_"
find_lex $P104, "%capnames"
- unless_null $P104, vivify_131
+ unless_null $P104, vivify_132
$P104 = root_new ['parrot';'Hash']
store_lex "%capnames", $P104
- vivify_131:
+ vivify_132:
set $P104[$P103], $P87
-.annotate 'line', 503
+.annotate 'line', 518
.return ($P87)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backmod" :subid("26_1274022889.08438") :outer("11_1274022889.08438")
+.include "except_types.pasm"
+.sub "backmod" :subid("26_1275811482.3686") :outer("11_1275811482.3686")
.param pmc param_308
.param pmc param_309
-.annotate 'line', 562
+.annotate 'line', 577
new $P307, 'ExceptionHandler'
set_addr $P307, control_306
- $P307."handle_types"(57)
+ $P307."handle_types"(.CONTROL_RETURN)
push_eh $P307
.lex "$ast", param_308
.lex "$backmod", param_309
-.annotate 'line', 563
+.annotate 'line', 578
find_lex $P311, "$backmod"
set $S312, $P311
iseq $I313, $S312, ":"
if $I313, if_310
-.annotate 'line', 564
+.annotate 'line', 579
find_lex $P318, "$backmod"
set $S319, $P318
iseq $I320, $S319, ":?"
@@ -8267,7 +8396,7 @@
set $P316, $I323
unless_317_end:
if $P316, if_315
-.annotate 'line', 565
+.annotate 'line', 580
find_lex $P328, "$backmod"
set $S329, $P328
iseq $I330, $S329, ":!"
@@ -8288,18 +8417,18 @@
if_325_end:
goto if_315_end
if_315:
-.annotate 'line', 564
+.annotate 'line', 579
find_lex $P324, "$ast"
$P324."backtrack"("f")
if_315_end:
goto if_310_end
if_310:
-.annotate 'line', 563
+.annotate 'line', 578
find_lex $P314, "$ast"
$P314."backtrack"("r")
if_310_end:
find_lex $P335, "$ast"
-.annotate 'line', 562
+.annotate 'line', 577
.return ($P335)
control_306:
.local pmc exception
@@ -8310,28 +8439,29 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "subrule_alias" :subid("27_1274022889.08438") :outer("11_1274022889.08438")
+.include "except_types.pasm"
+.sub "subrule_alias" :subid("27_1275811482.3686") :outer("11_1275811482.3686")
.param pmc param_341
.param pmc param_342
-.annotate 'line', 569
+.annotate 'line', 584
new $P340, 'ExceptionHandler'
set_addr $P340, control_339
- $P340."handle_types"(57)
+ $P340."handle_types"(.CONTROL_RETURN)
push_eh $P340
.lex "$past", param_341
.lex "$name", param_342
-.annotate 'line', 570
+.annotate 'line', 585
find_lex $P344, "$past"
$S345 = $P344."name"()
isgt $I346, $S345, ""
if $I346, if_343
-.annotate 'line', 571
+.annotate 'line', 586
find_lex $P353, "$past"
find_lex $P354, "$name"
$P353."name"($P354)
goto if_343_end
if_343:
-.annotate 'line', 570
+.annotate 'line', 585
find_lex $P347, "$past"
find_lex $P348, "$name"
concat $P349, $P348, "="
@@ -8340,10 +8470,10 @@
concat $P352, $P349, $S351
$P347."name"($P352)
if_343_end:
-.annotate 'line', 572
+.annotate 'line', 587
find_lex $P355, "$past"
$P356 = $P355."subtype"("capture")
-.annotate 'line', 569
+.annotate 'line', 584
.return ($P356)
control_339:
.local pmc exception
@@ -8354,47 +8484,48 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "arg" :subid("28_1274022889.08438") :method :outer("11_1274022889.08438")
+.include "except_types.pasm"
+.sub "arg" :subid("28_1275811482.3686") :method :outer("11_1275811482.3686")
.param pmc param_363
.annotate 'line', 14
new $P362, 'ExceptionHandler'
set_addr $P362, control_361
- $P362."handle_types"(57)
+ $P362."handle_types"(.CONTROL_RETURN)
push_eh $P362
.lex "self", self
.lex "$/", param_363
.annotate 'line', 15
find_lex $P364, "$/"
find_lex $P367, "$/"
- unless_null $P367, vivify_137
+ unless_null $P367, vivify_138
$P367 = root_new ['parrot';'Hash']
- vivify_137:
+ vivify_138:
set $P368, $P367["quote_EXPR"]
- unless_null $P368, vivify_138
+ unless_null $P368, vivify_139
new $P368, "Undef"
- vivify_138:
+ vivify_139:
if $P368, if_366
find_lex $P372, "$/"
- unless_null $P372, vivify_139
+ unless_null $P372, vivify_140
$P372 = root_new ['parrot';'Hash']
- vivify_139:
+ vivify_140:
set $P373, $P372["val"]
- unless_null $P373, vivify_140
+ unless_null $P373, vivify_141
new $P373, "Undef"
- vivify_140:
+ vivify_141:
set $N374, $P373
new $P365, 'Float'
set $P365, $N374
goto if_366_end
if_366:
find_lex $P369, "$/"
- unless_null $P369, vivify_141
+ unless_null $P369, vivify_142
$P369 = root_new ['parrot';'Hash']
- vivify_141:
+ vivify_142:
set $P370, $P369["quote_EXPR"]
- unless_null $P370, vivify_142
+ unless_null $P370, vivify_143
new $P370, "Undef"
- vivify_142:
+ vivify_143:
$P371 = $P370."ast"()
set $P365, $P371
if_366_end:
@@ -8410,14 +8541,15 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "arglist" :subid("29_1274022889.08438") :method :outer("11_1274022889.08438")
+.include "except_types.pasm"
+.sub "arglist" :subid("29_1275811482.3686") :method :outer("11_1275811482.3686")
.param pmc param_380
.annotate 'line', 18
- .const 'Sub' $P390 = "30_1274022889.08438"
+ .const 'Sub' $P390 = "30_1275811482.3686"
capture_lex $P390
new $P379, 'ExceptionHandler'
set_addr $P379, control_378
- $P379."handle_types"(57)
+ $P379."handle_types"(.CONTROL_RETURN)
push_eh $P379
.lex "self", self
.lex "$/", param_380
@@ -8429,25 +8561,25 @@
store_lex "$past", $P383
.annotate 'line', 20
find_lex $P385, "$/"
- unless_null $P385, vivify_143
+ unless_null $P385, vivify_144
$P385 = root_new ['parrot';'Hash']
- vivify_143:
+ vivify_144:
set $P386, $P385["arg"]
- unless_null $P386, vivify_144
+ unless_null $P386, vivify_145
new $P386, "Undef"
- vivify_144:
+ vivify_145:
defined $I387, $P386
- unless $I387, for_undef_145
+ unless $I387, for_undef_146
iter $P384, $P386
new $P397, 'ExceptionHandler'
set_addr $P397, loop396_handler
- $P397."handle_types"(64, 66, 65)
+ $P397."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P397
loop396_test:
unless $P384, loop396_done
shift $P388, $P384
loop396_redo:
- .const 'Sub' $P390 = "30_1274022889.08438"
+ .const 'Sub' $P390 = "30_1275811482.3686"
capture_lex $P390
$P390($P388)
loop396_next:
@@ -8456,11 +8588,11 @@
.local pmc exception
.get_results (exception)
getattribute $P398, exception, 'type'
- eq $P398, 64, loop396_next
- eq $P398, 66, loop396_redo
+ eq $P398, .CONTROL_LOOP_NEXT, loop396_next
+ eq $P398, .CONTROL_LOOP_REDO, loop396_redo
loop396_done:
pop_eh
- for_undef_145:
+ for_undef_146:
.annotate 'line', 21
find_lex $P399, "$/"
find_lex $P400, "$past"
@@ -8476,7 +8608,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block389" :anon :subid("30_1274022889.08438") :outer("29_1274022889.08438")
+.sub "_block389" :anon :subid("30_1275811482.3686") :outer("29_1275811482.3686")
.param pmc param_391
.annotate 'line', 20
.lex "$_", param_391
@@ -8489,12 +8621,13 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "TOP" :subid("31_1274022889.08438") :method :outer("11_1274022889.08438")
+.include "except_types.pasm"
+.sub "TOP" :subid("31_1275811482.3686") :method :outer("11_1275811482.3686")
.param pmc param_406
.annotate 'line', 24
new $P405, 'ExceptionHandler'
set_addr $P405, control_404
- $P405."handle_types"(57)
+ $P405."handle_types"(.CONTROL_RETURN)
push_eh $P405
.lex "self", self
.lex "$/", param_406
@@ -8502,13 +8635,13 @@
new $P407, "Undef"
.lex "$past", $P407
find_lex $P408, "$/"
- unless_null $P408, vivify_146
+ unless_null $P408, vivify_147
$P408 = root_new ['parrot';'Hash']
- vivify_146:
+ vivify_147:
set $P409, $P408["nibbler"]
- unless_null $P409, vivify_147
+ unless_null $P409, vivify_148
new $P409, "Undef"
- vivify_147:
+ vivify_148:
$P410 = $P409."ast"()
$P411 = "buildsub"($P410)
store_lex "$past", $P411
@@ -8531,25 +8664,26 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "nibbler" :subid("32_1274022889.08438") :method :outer("11_1274022889.08438")
+.include "except_types.pasm"
+.sub "nibbler" :subid("32_1275811482.3686") :method :outer("11_1275811482.3686")
.param pmc param_421
.param pmc param_422 :optional
.param int has_param_422 :opt_flag
.annotate 'line', 30
- .const 'Sub' $P456 = "34_1274022889.08438"
+ .const 'Sub' $P456 = "34_1275811482.3686"
capture_lex $P456
- .const 'Sub' $P430 = "33_1274022889.08438"
+ .const 'Sub' $P430 = "33_1275811482.3686"
capture_lex $P430
new $P420, 'ExceptionHandler'
set_addr $P420, control_419
- $P420."handle_types"(57)
+ $P420."handle_types"(.CONTROL_RETURN)
push_eh $P420
.lex "self", self
.lex "$/", param_421
- if has_param_422, optparam_148
+ if has_param_422, optparam_149
new $P423, "Undef"
set param_422, $P423
- optparam_148:
+ optparam_149:
.lex "$key", param_422
.annotate 'line', 42
new $P424, "Undef"
@@ -8559,7 +8693,7 @@
set $S427, $P426
iseq $I428, $S427, "open"
unless $I428, if_425_end
- .const 'Sub' $P430 = "33_1274022889.08438"
+ .const 'Sub' $P430 = "33_1275811482.3686"
capture_lex $P430
$P430()
if_425_end:
@@ -8569,29 +8703,29 @@
find_lex $P441, "$past"
.annotate 'line', 43
find_lex $P443, "$/"
- unless_null $P443, vivify_151
+ unless_null $P443, vivify_152
$P443 = root_new ['parrot';'Hash']
- vivify_151:
+ vivify_152:
set $P444, $P443["termish"]
- unless_null $P444, vivify_152
+ unless_null $P444, vivify_153
new $P444, "Undef"
- vivify_152:
+ vivify_153:
set $N445, $P444
isgt $I446, $N445, 1.0
if $I446, if_442
.annotate 'line', 50
find_lex $P465, "$/"
- unless_null $P465, vivify_153
+ unless_null $P465, vivify_154
$P465 = root_new ['parrot';'Hash']
- vivify_153:
+ vivify_154:
set $P466, $P465["termish"]
- unless_null $P466, vivify_154
+ unless_null $P466, vivify_155
$P466 = root_new ['parrot';'ResizablePMCArray']
- vivify_154:
+ vivify_155:
set $P467, $P466[0]
- unless_null $P467, vivify_155
+ unless_null $P467, vivify_156
new $P467, "Undef"
- vivify_155:
+ vivify_156:
$P468 = $P467."ast"()
store_lex "$past", $P468
.annotate 'line', 49
@@ -8604,25 +8738,25 @@
store_lex "$past", $P449
.annotate 'line', 45
find_lex $P451, "$/"
- unless_null $P451, vivify_156
+ unless_null $P451, vivify_157
$P451 = root_new ['parrot';'Hash']
- vivify_156:
+ vivify_157:
set $P452, $P451["termish"]
- unless_null $P452, vivify_157
+ unless_null $P452, vivify_158
new $P452, "Undef"
- vivify_157:
+ vivify_158:
defined $I453, $P452
- unless $I453, for_undef_158
+ unless $I453, for_undef_159
iter $P450, $P452
new $P463, 'ExceptionHandler'
set_addr $P463, loop462_handler
- $P463."handle_types"(64, 66, 65)
+ $P463."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P463
loop462_test:
unless $P450, loop462_done
shift $P454, $P450
loop462_redo:
- .const 'Sub' $P456 = "34_1274022889.08438"
+ .const 'Sub' $P456 = "34_1275811482.3686"
capture_lex $P456
$P456($P454)
loop462_next:
@@ -8631,11 +8765,11 @@
.local pmc exception
.get_results (exception)
getattribute $P464, exception, 'type'
- eq $P464, 64, loop462_next
- eq $P464, 66, loop462_redo
+ eq $P464, .CONTROL_LOOP_NEXT, loop462_next
+ eq $P464, .CONTROL_LOOP_REDO, loop462_redo
loop462_done:
pop_eh
- for_undef_158:
+ for_undef_159:
if_442_end:
.annotate 'line', 52
find_lex $P469, "$/"
@@ -8652,7 +8786,8 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block429" :anon :subid("33_1274022889.08438") :outer("32_1274022889.08438")
+.include "except_types.pasm"
+.sub "_block429" :anon :subid("33_1275811482.3686") :outer("32_1275811482.3686")
.annotate 'line', 32
$P431 = root_new ['parrot';'Hash']
.lex "%old", $P431
@@ -8661,13 +8796,13 @@
.lex "%new", $P432
.annotate 'line', 32
get_global $P433, "@MODIFIERS"
- unless_null $P433, vivify_149
+ unless_null $P433, vivify_150
$P433 = root_new ['parrot';'ResizablePMCArray']
- vivify_149:
+ vivify_150:
set $P434, $P433[0]
- unless_null $P434, vivify_150
+ unless_null $P434, vivify_151
new $P434, "Undef"
- vivify_150:
+ vivify_151:
store_lex "%old", $P434
.annotate 'line', 33
@@ -8681,7 +8816,7 @@
$P436."unshift"($P437)
.annotate 'line', 38
new $P438, "Exception"
- set $P438['type'], 57
+ set $P438['type'], .CONTROL_RETURN
new $P439, "Integer"
assign $P439, 1
setattribute $P438, 'payload', $P439
@@ -8692,7 +8827,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block455" :anon :subid("34_1274022889.08438") :outer("32_1274022889.08438")
+.sub "_block455" :anon :subid("34_1275811482.3686") :outer("32_1275811482.3686")
.param pmc param_457
.annotate 'line', 45
.lex "$_", param_457
@@ -8707,14 +8842,15 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "termish" :subid("35_1274022889.08438") :method :outer("11_1274022889.08438")
+.include "except_types.pasm"
+.sub "termish" :subid("35_1275811482.3686") :method :outer("11_1275811482.3686")
.param pmc param_476
.annotate 'line', 55
- .const 'Sub' $P489 = "36_1274022889.08438"
+ .const 'Sub' $P489 = "36_1275811482.3686"
capture_lex $P489
new $P475, 'ExceptionHandler'
set_addr $P475, control_474
- $P475."handle_types"(57)
+ $P475."handle_types"(.CONTROL_RETURN)
push_eh $P475
.lex "self", self
.lex "$/", param_476
@@ -8735,25 +8871,25 @@
store_lex "$lastlit", $P482
.annotate 'line', 58
find_lex $P484, "$/"
- unless_null $P484, vivify_159
+ unless_null $P484, vivify_160
$P484 = root_new ['parrot';'Hash']
- vivify_159:
+ vivify_160:
set $P485, $P484["noun"]
- unless_null $P485, vivify_160
+ unless_null $P485, vivify_161
new $P485, "Undef"
- vivify_160:
+ vivify_161:
defined $I486, $P485
- unless $I486, for_undef_161
+ unless $I486, for_undef_162
iter $P483, $P485
new $P535, 'ExceptionHandler'
set_addr $P535, loop534_handler
- $P535."handle_types"(64, 66, 65)
+ $P535."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
push_eh $P535
loop534_test:
unless $P483, loop534_done
shift $P487, $P483
loop534_redo:
- .const 'Sub' $P489 = "36_1274022889.08438"
+ .const 'Sub' $P489 = "36_1275811482.3686"
capture_lex $P489
$P489($P487)
loop534_next:
@@ -8762,11 +8898,11 @@
.local pmc exception
.get_results (exception)
getattribute $P536, exception, 'type'
- eq $P536, 64, loop534_next
- eq $P536, 66, loop534_redo
+ eq $P536, .CONTROL_LOOP_NEXT, loop534_next
+ eq $P536, .CONTROL_LOOP_REDO, loop534_redo
loop534_done:
pop_eh
- for_undef_161:
+ for_undef_162:
.annotate 'line', 73
find_lex $P537, "$/"
find_lex $P538, "$past"
@@ -8782,7 +8918,7 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block488" :anon :subid("36_1274022889.08438") :outer("35_1274022889.08438")
+.sub "_block488" :anon :subid("36_1275811482.3686") :outer("35_1275811482.3686")
.param pmc param_491
.annotate 'line', 59
new $P490, "Undef"
@@ -8816,13 +8952,13 @@
.annotate 'line', 62
get_hll_global $P507, ["PAST"], "Node"
find_lex $P508, "$ast"
- unless_null $P508, vivify_162
+ unless_null $P508, vivify_163
$P508 = root_new ['parrot';'ResizablePMCArray']
- vivify_162:
+ vivify_163:
set $P509, $P508[0]
- unless_null $P509, vivify_163
+ unless_null $P509, vivify_164
new $P509, "Undef"
- vivify_163:
+ vivify_164:
$P510 = $P507."ACCEPTS"($P509)
isfalse $I511, $P510
new $P499, 'Integer'
@@ -8845,13 +8981,13 @@
.annotate 'line', 68
get_hll_global $P527, ["PAST"], "Node"
find_lex $P528, "$ast"
- unless_null $P528, vivify_164
+ unless_null $P528, vivify_165
$P528 = root_new ['parrot';'ResizablePMCArray']
- vivify_164:
+ vivify_165:
set $P529, $P528[0]
- unless_null $P529, vivify_165
+ unless_null $P529, vivify_166
new $P529, "Undef"
- vivify_165:
+ vivify_166:
$P530 = $P527."ACCEPTS"($P529)
isfalse $I531, $P530
new $P522, 'Integer'
@@ -8875,27 +9011,27 @@
if_498:
.annotate 'line', 63
find_lex $P512, "$lastlit"
- unless_null $P512, vivify_166
+ unless_null $P512, vivify_167
$P512 = root_new ['parrot';'ResizablePMCArray']
- vivify_166:
+ vivify_167:
set $P513, $P512[0]
- unless_null $P513, vivify_167
+ unless_null $P513, vivify_168
new $P513, "Undef"
- vivify_167:
+ vivify_168:
find_lex $P514, "$ast"
- unless_null $P514, vivify_168
+ unless_null $P514, vivify_169
$P514 = root_new ['parrot';'ResizablePMCArray']
- vivify_168:
+ vivify_169:
set $P515, $P514[0]
- unless_null $P515, vivify_169
+ unless_null $P515, vivify_170
new $P515, "Undef"
- vivify_169:
+ vivify_170:
concat $P516, $P513, $P515
find_lex $P517, "$lastlit"
- unless_null $P517, vivify_170
+ unless_null $P517, vivify_171
$P517 = root_new ['parrot';'ResizablePMCArray']
store_lex "$lastlit", $P517
- vivify_170:
+ vivify_171:
set $P517[0], $P516
.annotate 'line', 62
set $P497, $P516
@@ -8909,14 +9045,15 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantified_atom" :subid("37_1274022889.08438") :method :outer("11_1274022889.08438")
+.include "except_types.pasm"
+.sub "quantified_atom" :subid("37_1275811482.3686") :method :outer("11_1275811482.3686")
.param pmc param_544
.annotate 'line', 76
- .const 'Sub' $P553 = "38_1274022889.08438"
+ .const 'Sub' $P553 = "38_1275811482.3686"
capture_lex $P553
new $P543, 'ExceptionHandler'
set_addr $P543, control_542
- $P543."handle_types"(57)
+ $P543."handle_types"(.CONTROL_RETURN)
push_eh $P543
.lex "self", self
.lex "$/", param_544
@@ -8924,112 +9061,112 @@
new $P545, "Undef"
.lex "$past", $P545
find_lex $P546, "$/"
- unless_null $P546, vivify_171
+ unless_null $P546, vivify_172
$P546 = root_new ['parrot';'Hash']
- vivify_171:
+ vivify_172:
set $P547, $P546["atom"]
- unless_null $P547, vivify_172
+ unless_null $P547, vivify_173
new $P547, "Undef"
- vivify_172:
+ vivify_173:
$P548 = $P547."ast"()
store_lex "$past", $P548
.annotate 'line', 78
find_lex $P550, "$/"
- unless_null $P550, vivify_173
+ unless_null $P550, vivify_174
$P550 = root_new ['parrot';'Hash']
- vivify_173:
+ vivify_174:
set $P551, $P550["quantifier"]
- unless_null $P551, vivify_174
+ unless_null $P551, vivify_175
new $P551, "Undef"
- vivify_174:
+ vivify_175:
if $P551, if_549
.annotate 'line', 84
- find_lex $P567, "$/"
- unless_null $P567, vivify_175
- $P567 = root_new ['parrot';'Hash']
- vivify_175:
- set $P568, $P567["backmod"]
+ find_lex $P568, "$/"
unless_null $P568, vivify_176
- $P568 = root_new ['parrot';'ResizablePMCArray']
+ $P568 = root_new ['parrot';'Hash']
vivify_176:
- set $P569, $P568[0]
+ set $P569, $P568["backmod"]
unless_null $P569, vivify_177
- new $P569, "Undef"
+ $P569 = root_new ['parrot';'ResizablePMCArray']
vivify_177:
- unless $P569, if_566_end
- find_lex $P570, "$past"
- find_lex $P571, "$/"
- unless_null $P571, vivify_178
- $P571 = root_new ['parrot';'Hash']
+ set $P570, $P569[0]
+ unless_null $P570, vivify_178
+ new $P570, "Undef"
vivify_178:
- set $P572, $P571["backmod"]
+ unless $P570, if_567_end
+ find_lex $P571, "$past"
+ find_lex $P572, "$/"
unless_null $P572, vivify_179
- $P572 = root_new ['parrot';'ResizablePMCArray']
+ $P572 = root_new ['parrot';'Hash']
vivify_179:
- set $P573, $P572[0]
+ set $P573, $P572["backmod"]
unless_null $P573, vivify_180
- new $P573, "Undef"
+ $P573 = root_new ['parrot';'ResizablePMCArray']
vivify_180:
- "backmod"($P570, $P573)
- if_566_end:
+ set $P574, $P573[0]
+ unless_null $P574, vivify_181
+ new $P574, "Undef"
+ vivify_181:
+ "backmod"($P571, $P574)
+ if_567_end:
goto if_549_end
if_549:
.annotate 'line', 78
- .const 'Sub' $P553 = "38_1274022889.08438"
+ .const 'Sub' $P553 = "38_1275811482.3686"
capture_lex $P553
$P553()
if_549_end:
.annotate 'line', 85
- find_lex $P579, "$past"
- if $P579, if_578
- set $P577, $P579
- goto if_578_end
- if_578:
find_lex $P580, "$past"
- $P581 = $P580."backtrack"()
- isfalse $I582, $P581
- new $P577, 'Integer'
- set $P577, $I582
- if_578_end:
- if $P577, if_576
- set $P575, $P577
- goto if_576_end
- if_576:
- get_global $P583, "@MODIFIERS"
- unless_null $P583, vivify_184
- $P583 = root_new ['parrot';'ResizablePMCArray']
- vivify_184:
- set $P584, $P583[0]
+ if $P580, if_579
+ set $P578, $P580
+ goto if_579_end
+ if_579:
+ find_lex $P581, "$past"
+ $P582 = $P581."backtrack"()
+ isfalse $I583, $P582
+ new $P578, 'Integer'
+ set $P578, $I583
+ if_579_end:
+ if $P578, if_577
+ set $P576, $P578
+ goto if_577_end
+ if_577:
+ get_global $P584, "@MODIFIERS"
unless_null $P584, vivify_185
- $P584 = root_new ['parrot';'Hash']
+ $P584 = root_new ['parrot';'ResizablePMCArray']
vivify_185:
- set $P585, $P584["r"]
+ set $P585, $P584[0]
unless_null $P585, vivify_186
- new $P585, "Undef"
+ $P585 = root_new ['parrot';'Hash']
vivify_186:
- set $P575, $P585
- if_576_end:
- unless $P575, if_574_end
+ set $P586, $P585["r"]
+ unless_null $P586, vivify_187
+ new $P586, "Undef"
+ vivify_187:
+ set $P576, $P586
+ if_577_end:
+ unless $P576, if_575_end
.annotate 'line', 86
- find_lex $P586, "$past"
- $P586."backtrack"("r")
- if_574_end:
+ find_lex $P587, "$past"
+ $P587."backtrack"("r")
+ if_575_end:
.annotate 'line', 88
- find_lex $P587, "$/"
- find_lex $P588, "$past"
- $P589 = $P587."!make"($P588)
+ find_lex $P588, "$/"
+ find_lex $P589, "$past"
+ $P590 = $P588."!make"($P589)
.annotate 'line', 76
- .return ($P589)
+ .return ($P590)
control_542:
.local pmc exception
.get_results (exception)
- getattribute $P590, exception, "payload"
- .return ($P590)
+ getattribute $P591, exception, "payload"
+ .return ($P591)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block552" :anon :subid("38_1274022889.08438") :outer("37_1274022889.08438")
+.sub "_block552" :anon :subid("38_1275811482.3686") :outer("37_1275811482.3686")
.annotate 'line', 80
new $P554, "Undef"
.lex "$qast", $P554
@@ -9038,1881 +9175,1920 @@
isfalse $I557, $P556
unless $I557, if_555_end
find_lex $P558, "$/"
- $P558."panic"("Can't quantify zero-width atom")
+ $P559 = $P558."CURSOR"()
+ $P559."panic"("Quantifier follows nothing")
if_555_end:
.annotate 'line', 80
- find_lex $P559, "$/"
- unless_null $P559, vivify_181
- $P559 = root_new ['parrot';'Hash']
- vivify_181:
- set $P560, $P559["quantifier"]
+ find_lex $P560, "$/"
unless_null $P560, vivify_182
- $P560 = root_new ['parrot';'ResizablePMCArray']
+ $P560 = root_new ['parrot';'Hash']
vivify_182:
- set $P561, $P560[0]
+ set $P561, $P560["quantifier"]
unless_null $P561, vivify_183
- new $P561, "Undef"
+ $P561 = root_new ['parrot';'ResizablePMCArray']
vivify_183:
- $P562 = $P561."ast"()
- store_lex "$qast", $P562
+ set $P562, $P561[0]
+ unless_null $P562, vivify_184
+ new $P562, "Undef"
+ vivify_184:
+ $P563 = $P562."ast"()
+ store_lex "$qast", $P563
.annotate 'line', 81
- find_lex $P563, "$qast"
- find_lex $P564, "$past"
- $P563."unshift"($P564)
+ find_lex $P564, "$qast"
+ find_lex $P565, "$past"
+ $P564."unshift"($P565)
.annotate 'line', 82
- find_lex $P565, "$qast"
- store_lex "$past", $P565
+ find_lex $P566, "$qast"
+ store_lex "$past", $P566
.annotate 'line', 78
- .return ($P565)
+ .return ($P566)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "atom" :subid("39_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_594
+.include "except_types.pasm"
+.sub "atom" :subid("39_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_595
.annotate 'line', 91
- new $P593, 'ExceptionHandler'
- set_addr $P593, control_592
- $P593."handle_types"(57)
- push_eh $P593
+ new $P594, 'ExceptionHandler'
+ set_addr $P594, control_593
+ $P594."handle_types"(.CONTROL_RETURN)
+ push_eh $P594
.lex "self", self
- .lex "$/", param_594
+ .lex "$/", param_595
.annotate 'line', 92
- new $P595, "Undef"
- .lex "$past", $P595
+ new $P596, "Undef"
+ .lex "$past", $P596
.annotate 'line', 91
- find_lex $P596, "$past"
+ find_lex $P597, "$past"
.annotate 'line', 93
- find_lex $P598, "$/"
- unless_null $P598, vivify_187
- $P598 = root_new ['parrot';'Hash']
- vivify_187:
- set $P599, $P598["metachar"]
+ find_lex $P599, "$/"
unless_null $P599, vivify_188
- new $P599, "Undef"
+ $P599 = root_new ['parrot';'Hash']
vivify_188:
- if $P599, if_597
+ set $P600, $P599["metachar"]
+ unless_null $P600, vivify_189
+ new $P600, "Undef"
+ vivify_189:
+ if $P600, if_598
.annotate 'line', 95
- get_hll_global $P603, ["PAST"], "Regex"
- find_lex $P604, "$/"
- set $S605, $P604
- find_lex $P606, "$/"
- $P607 = $P603."new"($S605, "literal" :named("pasttype"), $P606 :named("node"))
- store_lex "$past", $P607
+ get_hll_global $P604, ["PAST"], "Regex"
+ find_lex $P605, "$/"
+ set $S606, $P605
+ find_lex $P607, "$/"
+ $P608 = $P604."new"($S606, "literal" :named("pasttype"), $P607 :named("node"))
+ store_lex "$past", $P608
.annotate 'line', 96
- get_global $P609, "@MODIFIERS"
- unless_null $P609, vivify_189
- $P609 = root_new ['parrot';'ResizablePMCArray']
- vivify_189:
- set $P610, $P609[0]
+ get_global $P610, "@MODIFIERS"
unless_null $P610, vivify_190
- $P610 = root_new ['parrot';'Hash']
+ $P610 = root_new ['parrot';'ResizablePMCArray']
vivify_190:
- set $P611, $P610["i"]
+ set $P611, $P610[0]
unless_null $P611, vivify_191
- new $P611, "Undef"
+ $P611 = root_new ['parrot';'Hash']
vivify_191:
- unless $P611, if_608_end
- find_lex $P612, "$past"
- $P612."subtype"("ignorecase")
- if_608_end:
+ set $P612, $P611["i"]
+ unless_null $P612, vivify_192
+ new $P612, "Undef"
+ vivify_192:
+ unless $P612, if_609_end
+ find_lex $P613, "$past"
+ $P613."subtype"("ignorecase")
+ if_609_end:
.annotate 'line', 94
- goto if_597_end
- if_597:
+ goto if_598_end
+ if_598:
.annotate 'line', 93
- find_lex $P600, "$/"
- unless_null $P600, vivify_192
- $P600 = root_new ['parrot';'Hash']
- vivify_192:
- set $P601, $P600["metachar"]
+ find_lex $P601, "$/"
unless_null $P601, vivify_193
- new $P601, "Undef"
+ $P601 = root_new ['parrot';'Hash']
vivify_193:
- $P602 = $P601."ast"()
- store_lex "$past", $P602
- if_597_end:
+ set $P602, $P601["metachar"]
+ unless_null $P602, vivify_194
+ new $P602, "Undef"
+ vivify_194:
+ $P603 = $P602."ast"()
+ store_lex "$past", $P603
+ if_598_end:
.annotate 'line', 98
- find_lex $P613, "$/"
- find_lex $P614, "$past"
- $P615 = $P613."!make"($P614)
+ find_lex $P614, "$/"
+ find_lex $P615, "$past"
+ $P616 = $P614."!make"($P615)
.annotate 'line', 91
- .return ($P615)
- control_592:
+ .return ($P616)
+ control_593:
.local pmc exception
.get_results (exception)
- getattribute $P616, exception, "payload"
- .return ($P616)
+ getattribute $P617, exception, "payload"
+ .return ($P617)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<*>" :subid("40_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_620
+.include "except_types.pasm"
+.sub "quantifier:sym<*>" :subid("40_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_621
.annotate 'line', 101
- new $P619, 'ExceptionHandler'
- set_addr $P619, control_618
- $P619."handle_types"(57)
- push_eh $P619
+ new $P620, 'ExceptionHandler'
+ set_addr $P620, control_619
+ $P620."handle_types"(.CONTROL_RETURN)
+ push_eh $P620
.lex "self", self
- .lex "$/", param_620
+ .lex "$/", param_621
.annotate 'line', 102
- new $P621, "Undef"
- .lex "$past", $P621
- get_hll_global $P622, ["PAST"], "Regex"
- find_lex $P623, "$/"
- $P624 = $P622."new"("quant" :named("pasttype"), $P623 :named("node"))
- store_lex "$past", $P624
+ new $P622, "Undef"
+ .lex "$past", $P622
+ get_hll_global $P623, ["PAST"], "Regex"
+ find_lex $P624, "$/"
+ $P625 = $P623."new"("quant" :named("pasttype"), $P624 :named("node"))
+ store_lex "$past", $P625
.annotate 'line', 103
- find_lex $P625, "$/"
- find_lex $P626, "$past"
- find_lex $P627, "$/"
- unless_null $P627, vivify_194
- $P627 = root_new ['parrot';'Hash']
- vivify_194:
- set $P628, $P627["backmod"]
+ find_lex $P626, "$/"
+ find_lex $P627, "$past"
+ find_lex $P628, "$/"
unless_null $P628, vivify_195
- new $P628, "Undef"
+ $P628 = root_new ['parrot';'Hash']
vivify_195:
- $P629 = "backmod"($P626, $P628)
- $P630 = $P625."!make"($P629)
+ set $P629, $P628["backmod"]
+ unless_null $P629, vivify_196
+ new $P629, "Undef"
+ vivify_196:
+ $P630 = "backmod"($P627, $P629)
+ $P631 = $P626."!make"($P630)
.annotate 'line', 101
- .return ($P630)
- control_618:
+ .return ($P631)
+ control_619:
.local pmc exception
.get_results (exception)
- getattribute $P631, exception, "payload"
- .return ($P631)
+ getattribute $P632, exception, "payload"
+ .return ($P632)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<+>" :subid("41_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_635
+.include "except_types.pasm"
+.sub "quantifier:sym<+>" :subid("41_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_636
.annotate 'line', 106
- new $P634, 'ExceptionHandler'
- set_addr $P634, control_633
- $P634."handle_types"(57)
- push_eh $P634
+ new $P635, 'ExceptionHandler'
+ set_addr $P635, control_634
+ $P635."handle_types"(.CONTROL_RETURN)
+ push_eh $P635
.lex "self", self
- .lex "$/", param_635
+ .lex "$/", param_636
.annotate 'line', 107
- new $P636, "Undef"
- .lex "$past", $P636
- get_hll_global $P637, ["PAST"], "Regex"
- find_lex $P638, "$/"
- $P639 = $P637."new"("quant" :named("pasttype"), 1 :named("min"), $P638 :named("node"))
- store_lex "$past", $P639
+ new $P637, "Undef"
+ .lex "$past", $P637
+ get_hll_global $P638, ["PAST"], "Regex"
+ find_lex $P639, "$/"
+ $P640 = $P638."new"("quant" :named("pasttype"), 1 :named("min"), $P639 :named("node"))
+ store_lex "$past", $P640
.annotate 'line', 108
- find_lex $P640, "$/"
- find_lex $P641, "$past"
- find_lex $P642, "$/"
- unless_null $P642, vivify_196
- $P642 = root_new ['parrot';'Hash']
- vivify_196:
- set $P643, $P642["backmod"]
+ find_lex $P641, "$/"
+ find_lex $P642, "$past"
+ find_lex $P643, "$/"
unless_null $P643, vivify_197
- new $P643, "Undef"
+ $P643 = root_new ['parrot';'Hash']
vivify_197:
- $P644 = "backmod"($P641, $P643)
- $P645 = $P640."!make"($P644)
+ set $P644, $P643["backmod"]
+ unless_null $P644, vivify_198
+ new $P644, "Undef"
+ vivify_198:
+ $P645 = "backmod"($P642, $P644)
+ $P646 = $P641."!make"($P645)
.annotate 'line', 106
- .return ($P645)
- control_633:
+ .return ($P646)
+ control_634:
.local pmc exception
.get_results (exception)
- getattribute $P646, exception, "payload"
- .return ($P646)
+ getattribute $P647, exception, "payload"
+ .return ($P647)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<?>" :subid("42_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_650
+.include "except_types.pasm"
+.sub "quantifier:sym<?>" :subid("42_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_651
.annotate 'line', 111
- new $P649, 'ExceptionHandler'
- set_addr $P649, control_648
- $P649."handle_types"(57)
- push_eh $P649
+ new $P650, 'ExceptionHandler'
+ set_addr $P650, control_649
+ $P650."handle_types"(.CONTROL_RETURN)
+ push_eh $P650
.lex "self", self
- .lex "$/", param_650
+ .lex "$/", param_651
.annotate 'line', 112
- new $P651, "Undef"
- .lex "$past", $P651
- get_hll_global $P652, ["PAST"], "Regex"
- find_lex $P653, "$/"
- $P654 = $P652."new"("quant" :named("pasttype"), 0 :named("min"), 1 :named("max"), $P653 :named("node"))
- store_lex "$past", $P654
+ new $P652, "Undef"
+ .lex "$past", $P652
+ get_hll_global $P653, ["PAST"], "Regex"
+ find_lex $P654, "$/"
+ $P655 = $P653."new"("quant" :named("pasttype"), 0 :named("min"), 1 :named("max"), $P654 :named("node"))
+ store_lex "$past", $P655
.annotate 'line', 113
- find_lex $P655, "$/"
- find_lex $P656, "$past"
- find_lex $P657, "$/"
- unless_null $P657, vivify_198
- $P657 = root_new ['parrot';'Hash']
- vivify_198:
- set $P658, $P657["backmod"]
+ find_lex $P656, "$/"
+ find_lex $P657, "$past"
+ find_lex $P658, "$/"
unless_null $P658, vivify_199
- new $P658, "Undef"
+ $P658 = root_new ['parrot';'Hash']
vivify_199:
- $P659 = "backmod"($P656, $P658)
- $P655."!make"($P659)
+ set $P659, $P658["backmod"]
+ unless_null $P659, vivify_200
+ new $P659, "Undef"
+ vivify_200:
+ $P660 = "backmod"($P657, $P659)
+ $P656."!make"($P660)
.annotate 'line', 114
- find_lex $P660, "$/"
- find_lex $P661, "$past"
- $P662 = $P660."!make"($P661)
+ find_lex $P661, "$/"
+ find_lex $P662, "$past"
+ $P663 = $P661."!make"($P662)
.annotate 'line', 111
- .return ($P662)
- control_648:
+ .return ($P663)
+ control_649:
.local pmc exception
.get_results (exception)
- getattribute $P663, exception, "payload"
- .return ($P663)
+ getattribute $P664, exception, "payload"
+ .return ($P664)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "quantifier:sym<**>" :subid("43_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_667
+.include "except_types.pasm"
+.sub "quantifier:sym<**>" :subid("43_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_668
.annotate 'line', 117
- new $P666, 'ExceptionHandler'
- set_addr $P666, control_665
- $P666."handle_types"(57)
- push_eh $P666
+ .const 'Sub' $P683 = "44_1275811482.3686"
+ capture_lex $P683
+ new $P667, 'ExceptionHandler'
+ set_addr $P667, control_666
+ $P667."handle_types"(.CONTROL_RETURN)
+ push_eh $P667
.lex "self", self
- .lex "$/", param_667
+ .lex "$/", param_668
.annotate 'line', 118
- new $P668, "Undef"
- .lex "$past", $P668
+ new $P669, "Undef"
+ .lex "$past", $P669
+.annotate 'line', 119
+ new $P670, "Undef"
+ .lex "$ws", $P670
.annotate 'line', 117
- find_lex $P669, "$past"
+ find_lex $P671, "$past"
.annotate 'line', 119
- find_lex $P671, "$/"
- unless_null $P671, vivify_200
- $P671 = root_new ['parrot';'Hash']
- vivify_200:
- set $P672, $P671["quantified_atom"]
- unless_null $P672, vivify_201
- new $P672, "Undef"
+ find_lex $P674, "$/"
+ unless_null $P674, vivify_201
+ $P674 = root_new ['parrot';'Hash']
vivify_201:
- if $P672, if_670
-.annotate 'line', 124
- get_hll_global $P679, ["PAST"], "Regex"
- find_lex $P680, "$/"
- unless_null $P680, vivify_202
- $P680 = root_new ['parrot';'Hash']
+ set $P675, $P674["normspace"]
+ unless_null $P675, vivify_202
+ new $P675, "Undef"
vivify_202:
- set $P681, $P680["min"]
- unless_null $P681, vivify_203
- new $P681, "Undef"
+ if $P675, if_673
+ set $P672, $P675
+ goto if_673_end
+ if_673:
+ get_global $P676, "@MODIFIERS"
+ unless_null $P676, vivify_203
+ $P676 = root_new ['parrot';'ResizablePMCArray']
vivify_203:
- set $N682, $P681
- find_lex $P683, "$/"
- $P684 = $P679."new"("quant" :named("pasttype"), $N682 :named("min"), $P683 :named("node"))
- store_lex "$past", $P684
-.annotate 'line', 125
- find_lex $P686, "$/"
- unless_null $P686, vivify_204
- $P686 = root_new ['parrot';'Hash']
+ set $P677, $P676[0]
+ unless_null $P677, vivify_204
+ $P677 = root_new ['parrot';'Hash']
vivify_204:
- set $P687, $P686["max"]
- unless_null $P687, vivify_205
- new $P687, "Undef"
+ set $P678, $P677["s"]
+ unless_null $P678, vivify_205
+ new $P678, "Undef"
vivify_205:
- isfalse $I688, $P687
- if $I688, if_685
-.annotate 'line', 126
- find_lex $P694, "$/"
- unless_null $P694, vivify_206
- $P694 = root_new ['parrot';'Hash']
+ set $P672, $P678
+ if_673_end:
+ store_lex "$ws", $P672
+.annotate 'line', 120
+ find_lex $P680, "$/"
+ unless_null $P680, vivify_206
+ $P680 = root_new ['parrot';'Hash']
vivify_206:
- set $P695, $P694["max"]
- unless_null $P695, vivify_207
- $P695 = root_new ['parrot';'ResizablePMCArray']
+ set $P681, $P680["quantified_atom"]
+ unless_null $P681, vivify_207
+ new $P681, "Undef"
vivify_207:
- set $P696, $P695[0]
- unless_null $P696, vivify_208
- new $P696, "Undef"
+ if $P681, if_679
+.annotate 'line', 136
+ get_hll_global $P701, ["PAST"], "Regex"
+ find_lex $P702, "$/"
+ unless_null $P702, vivify_208
+ $P702 = root_new ['parrot';'Hash']
vivify_208:
- set $S697, $P696
- isne $I698, $S697, "*"
- unless $I698, if_693_end
- find_lex $P699, "$past"
- find_lex $P700, "$/"
- unless_null $P700, vivify_209
- $P700 = root_new ['parrot';'Hash']
+ set $P703, $P702["min"]
+ unless_null $P703, vivify_209
+ new $P703, "Undef"
vivify_209:
- set $P701, $P700["max"]
- unless_null $P701, vivify_210
- $P701 = root_new ['parrot';'ResizablePMCArray']
+ set $N704, $P703
+ find_lex $P705, "$/"
+ $P706 = $P701."new"("quant" :named("pasttype"), $N704 :named("min"), $P705 :named("node"))
+ store_lex "$past", $P706
+.annotate 'line', 137
+ find_lex $P708, "$/"
+ unless_null $P708, vivify_210
+ $P708 = root_new ['parrot';'Hash']
vivify_210:
- set $P702, $P701[0]
- unless_null $P702, vivify_211
- new $P702, "Undef"
+ set $P709, $P708["max"]
+ unless_null $P709, vivify_211
+ new $P709, "Undef"
vivify_211:
- set $N703, $P702
- $P699."max"($N703)
- if_693_end:
- goto if_685_end
- if_685:
-.annotate 'line', 125
- find_lex $P689, "$past"
- find_lex $P690, "$/"
- unless_null $P690, vivify_212
- $P690 = root_new ['parrot';'Hash']
+ isfalse $I710, $P709
+ if $I710, if_707
+.annotate 'line', 138
+ find_lex $P716, "$/"
+ unless_null $P716, vivify_212
+ $P716 = root_new ['parrot';'Hash']
vivify_212:
- set $P691, $P690["min"]
- unless_null $P691, vivify_213
- new $P691, "Undef"
+ set $P717, $P716["max"]
+ unless_null $P717, vivify_213
+ $P717 = root_new ['parrot';'ResizablePMCArray']
vivify_213:
- set $N692, $P691
- $P689."max"($N692)
- if_685_end:
-.annotate 'line', 123
- goto if_670_end
- if_670:
-.annotate 'line', 120
- get_hll_global $P673, ["PAST"], "Regex"
-.annotate 'line', 121
- find_lex $P674, "$/"
- unless_null $P674, vivify_214
- $P674 = root_new ['parrot';'Hash']
+ set $P718, $P717[0]
+ unless_null $P718, vivify_214
+ new $P718, "Undef"
vivify_214:
- set $P675, $P674["quantified_atom"]
- unless_null $P675, vivify_215
- new $P675, "Undef"
+ set $S719, $P718
+ isne $I720, $S719, "*"
+ unless $I720, if_715_end
+ find_lex $P721, "$past"
+ find_lex $P722, "$/"
+ unless_null $P722, vivify_215
+ $P722 = root_new ['parrot';'Hash']
vivify_215:
- $P676 = $P675."ast"()
- find_lex $P677, "$/"
- $P678 = $P673."new"("quant" :named("pasttype"), 1 :named("min"), $P676 :named("sep"), $P677 :named("node"))
-.annotate 'line', 120
- store_lex "$past", $P678
- if_670_end:
-.annotate 'line', 128
- find_lex $P704, "$/"
- find_lex $P705, "$past"
- find_lex $P706, "$/"
- unless_null $P706, vivify_216
- $P706 = root_new ['parrot';'Hash']
+ set $P723, $P722["max"]
+ unless_null $P723, vivify_216
+ $P723 = root_new ['parrot';'ResizablePMCArray']
vivify_216:
- set $P707, $P706["backmod"]
- unless_null $P707, vivify_217
- new $P707, "Undef"
+ set $P724, $P723[0]
+ unless_null $P724, vivify_217
+ new $P724, "Undef"
vivify_217:
- $P708 = "backmod"($P705, $P707)
- $P709 = $P704."!make"($P708)
-.annotate 'line', 117
- .return ($P709)
- control_665:
- .local pmc exception
- .get_results (exception)
- getattribute $P710, exception, "payload"
- .return ($P710)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<ws>" :subid("44_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_714
-.annotate 'line', 131
- new $P713, 'ExceptionHandler'
- set_addr $P713, control_712
- $P713."handle_types"(57)
- push_eh $P713
- .lex "self", self
- .lex "$/", param_714
-.annotate 'line', 132
- new $P715, "Undef"
- .lex "$past", $P715
-.annotate 'line', 133
- get_global $P718, "@MODIFIERS"
- unless_null $P718, vivify_218
- $P718 = root_new ['parrot';'ResizablePMCArray']
+ set $N725, $P724
+ $P721."max"($N725)
+ if_715_end:
+ goto if_707_end
+ if_707:
+.annotate 'line', 137
+ find_lex $P711, "$past"
+ find_lex $P712, "$/"
+ unless_null $P712, vivify_218
+ $P712 = root_new ['parrot';'Hash']
vivify_218:
- set $P719, $P718[0]
- unless_null $P719, vivify_219
- $P719 = root_new ['parrot';'Hash']
+ set $P713, $P712["min"]
+ unless_null $P713, vivify_219
+ new $P713, "Undef"
vivify_219:
- set $P720, $P719["s"]
- unless_null $P720, vivify_220
- new $P720, "Undef"
- vivify_220:
- if $P720, if_717
- new $P724, "Integer"
- assign $P724, 0
- set $P716, $P724
- goto if_717_end
- if_717:
- get_hll_global $P721, ["PAST"], "Regex"
- find_lex $P722, "$/"
- $P723 = $P721."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"), $P722 :named("node"))
- set $P716, $P723
- if_717_end:
- store_lex "$past", $P716
-.annotate 'line', 136
- find_lex $P725, "$/"
- find_lex $P726, "$past"
- $P727 = $P725."!make"($P726)
-.annotate 'line', 131
- .return ($P727)
- control_712:
+ set $N714, $P713
+ $P711."max"($N714)
+ if_707_end:
+.annotate 'line', 139
+ find_lex $P727, "$ws"
+ unless $P727, if_726_end
+ find_lex $P728, "$past"
+ get_hll_global $P729, ["PAST"], "Regex"
+ $P730 = $P729."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
+ $P728."sep"($P730)
+ if_726_end:
+.annotate 'line', 135
+ goto if_679_end
+ if_679:
+.annotate 'line', 120
+ .const 'Sub' $P683 = "44_1275811482.3686"
+ capture_lex $P683
+ $P683()
+ if_679_end:
+.annotate 'line', 143
+ find_lex $P731, "$/"
+ find_lex $P732, "$past"
+ find_lex $P733, "$/"
+ unless_null $P733, vivify_222
+ $P733 = root_new ['parrot';'Hash']
+ vivify_222:
+ set $P734, $P733["backmod"]
+ unless_null $P734, vivify_223
+ new $P734, "Undef"
+ vivify_223:
+ $P735 = "backmod"($P732, $P734)
+ $P736 = $P731."!make"($P735)
+.annotate 'line', 117
+ .return ($P736)
+ control_666:
.local pmc exception
.get_results (exception)
- getattribute $P728, exception, "payload"
- .return ($P728)
+ getattribute $P737, exception, "payload"
+ .return ($P737)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<[ ]>" :subid("45_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_732
-.annotate 'line', 140
- new $P731, 'ExceptionHandler'
- set_addr $P731, control_730
- $P731."handle_types"(57)
- push_eh $P731
- .lex "self", self
- .lex "$/", param_732
-.annotate 'line', 141
- find_lex $P733, "$/"
- find_lex $P734, "$/"
- unless_null $P734, vivify_221
- $P734 = root_new ['parrot';'Hash']
+.sub "_block682" :anon :subid("44_1275811482.3686") :outer("43_1275811482.3686")
+.annotate 'line', 121
+ new $P684, "Undef"
+ .lex "$ast", $P684
+ find_lex $P685, "$/"
+ unless_null $P685, vivify_220
+ $P685 = root_new ['parrot';'Hash']
+ vivify_220:
+ set $P686, $P685["quantified_atom"]
+ unless_null $P686, vivify_221
+ new $P686, "Undef"
vivify_221:
- set $P735, $P734["nibbler"]
- unless_null $P735, vivify_222
- new $P735, "Undef"
- vivify_222:
- $P736 = $P735."ast"()
- $P737 = $P733."!make"($P736)
-.annotate 'line', 140
- .return ($P737)
- control_730:
- .local pmc exception
- .get_results (exception)
- getattribute $P738, exception, "payload"
- .return ($P738)
+ $P687 = $P686."ast"()
+ store_lex "$ast", $P687
+.annotate 'line', 122
+ find_lex $P689, "$ws"
+ unless $P689, if_688_end
+.annotate 'line', 123
+ get_hll_global $P690, ["PAST"], "Regex"
+.annotate 'line', 125
+ get_hll_global $P691, ["PAST"], "Regex"
+ $P692 = $P691."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
+ find_lex $P693, "$ast"
+.annotate 'line', 128
+ get_hll_global $P694, ["PAST"], "Regex"
+ $P695 = $P694."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"))
+ $P696 = $P690."new"($P692, $P693, $P695, "concat" :named("pasttype"))
+.annotate 'line', 123
+ store_lex "$ast", $P696
+ if_688_end:
+.annotate 'line', 132
+ get_hll_global $P697, ["PAST"], "Regex"
+ find_lex $P698, "$ast"
+ find_lex $P699, "$/"
+ $P700 = $P697."new"("quant" :named("pasttype"), 1 :named("min"), $P698 :named("sep"), $P699 :named("node"))
+ store_lex "$past", $P700
+.annotate 'line', 120
+ .return ($P700)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<( )>" :subid("46_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_742
-.annotate 'line', 144
- new $P741, 'ExceptionHandler'
- set_addr $P741, control_740
- $P741."handle_types"(57)
- push_eh $P741
- .lex "self", self
- .lex "$/", param_742
-.annotate 'line', 145
- new $P743, "Undef"
- .lex "$subpast", $P743
+.include "except_types.pasm"
+.sub "metachar:sym<ws>" :subid("45_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_741
.annotate 'line', 146
- new $P744, "Undef"
- .lex "$past", $P744
-.annotate 'line', 145
- find_lex $P745, "$/"
- unless_null $P745, vivify_223
- $P745 = root_new ['parrot';'Hash']
- vivify_223:
- set $P746, $P745["nibbler"]
- unless_null $P746, vivify_224
- new $P746, "Undef"
+ new $P740, 'ExceptionHandler'
+ set_addr $P740, control_739
+ $P740."handle_types"(.CONTROL_RETURN)
+ push_eh $P740
+ .lex "self", self
+ .lex "$/", param_741
+.annotate 'line', 147
+ new $P742, "Undef"
+ .lex "$past", $P742
+.annotate 'line', 148
+ get_global $P745, "@MODIFIERS"
+ unless_null $P745, vivify_224
+ $P745 = root_new ['parrot';'ResizablePMCArray']
vivify_224:
- $P747 = $P746."ast"()
- $P748 = "buildsub"($P747)
- store_lex "$subpast", $P748
+ set $P746, $P745[0]
+ unless_null $P746, vivify_225
+ $P746 = root_new ['parrot';'Hash']
+ vivify_225:
+ set $P747, $P746["s"]
+ unless_null $P747, vivify_226
+ new $P747, "Undef"
+ vivify_226:
+ if $P747, if_744
+ new $P751, "Integer"
+ assign $P751, 0
+ set $P743, $P751
+ goto if_744_end
+ if_744:
+ get_hll_global $P748, ["PAST"], "Regex"
+ find_lex $P749, "$/"
+ $P750 = $P748."new"("ws", "subrule" :named("pasttype"), "method" :named("subtype"), $P749 :named("node"))
+ set $P743, $P750
+ if_744_end:
+ store_lex "$past", $P743
+.annotate 'line', 151
+ find_lex $P752, "$/"
+ find_lex $P753, "$past"
+ $P754 = $P752."!make"($P753)
.annotate 'line', 146
- get_hll_global $P749, ["PAST"], "Regex"
- find_lex $P750, "$subpast"
- find_lex $P751, "$/"
- $P752 = $P749."new"($P750, "subrule" :named("pasttype"), "capture" :named("subtype"), $P751 :named("node"))
- store_lex "$past", $P752
-.annotate 'line', 148
- find_lex $P753, "$/"
- find_lex $P754, "$past"
- $P755 = $P753."!make"($P754)
-.annotate 'line', 144
- .return ($P755)
- control_740:
+ .return ($P754)
+ control_739:
.local pmc exception
.get_results (exception)
- getattribute $P756, exception, "payload"
- .return ($P756)
+ getattribute $P755, exception, "payload"
+ .return ($P755)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<'>" :subid("47_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_760
-.annotate 'line', 151
- new $P759, 'ExceptionHandler'
- set_addr $P759, control_758
- $P759."handle_types"(57)
- push_eh $P759
- .lex "self", self
- .lex "$/", param_760
-.annotate 'line', 152
- new $P761, "Undef"
- .lex "$quote", $P761
-.annotate 'line', 154
+.include "except_types.pasm"
+.sub "metachar:sym<[ ]>" :subid("46_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_759
+.annotate 'line', 155
+ new $P758, 'ExceptionHandler'
+ set_addr $P758, control_757
+ $P758."handle_types"(.CONTROL_RETURN)
+ push_eh $P758
+ .lex "self", self
+ .lex "$/", param_759
+.annotate 'line', 156
+ find_lex $P760, "$/"
+ find_lex $P761, "$/"
+ unless_null $P761, vivify_227
+ $P761 = root_new ['parrot';'Hash']
+ vivify_227:
+ set $P762, $P761["nibbler"]
+ unless_null $P762, vivify_228
new $P762, "Undef"
- .lex "$past", $P762
-.annotate 'line', 152
- find_lex $P763, "$/"
- unless_null $P763, vivify_225
- $P763 = root_new ['parrot';'Hash']
- vivify_225:
- set $P764, $P763["quote_EXPR"]
- unless_null $P764, vivify_226
- new $P764, "Undef"
- vivify_226:
- $P765 = $P764."ast"()
- store_lex "$quote", $P765
-.annotate 'line', 153
- get_hll_global $P767, ["PAST"], "Val"
- find_lex $P768, "$quote"
- $P769 = $P767."ACCEPTS"($P768)
- unless $P769, if_766_end
- find_lex $P770, "$quote"
- $P771 = $P770."value"()
- store_lex "$quote", $P771
- if_766_end:
-.annotate 'line', 154
- get_hll_global $P772, ["PAST"], "Regex"
- find_lex $P773, "$quote"
- find_lex $P774, "$/"
- $P775 = $P772."new"($P773, "literal" :named("pasttype"), $P774 :named("node"))
- store_lex "$past", $P775
+ vivify_228:
+ $P763 = $P762."ast"()
+ $P764 = $P760."!make"($P763)
.annotate 'line', 155
- find_lex $P776, "$/"
- find_lex $P777, "$past"
- $P778 = $P776."!make"($P777)
-.annotate 'line', 151
- .return ($P778)
- control_758:
+ .return ($P764)
+ control_757:
.local pmc exception
.get_results (exception)
- getattribute $P779, exception, "payload"
- .return ($P779)
+ getattribute $P765, exception, "payload"
+ .return ($P765)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<\">" :subid("48_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_783
-.annotate 'line', 158
- new $P782, 'ExceptionHandler'
- set_addr $P782, control_781
- $P782."handle_types"(57)
- push_eh $P782
- .lex "self", self
- .lex "$/", param_783
+.include "except_types.pasm"
+.sub "metachar:sym<( )>" :subid("47_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_769
.annotate 'line', 159
- new $P784, "Undef"
- .lex "$quote", $P784
+ new $P768, 'ExceptionHandler'
+ set_addr $P768, control_767
+ $P768."handle_types"(.CONTROL_RETURN)
+ push_eh $P768
+ .lex "self", self
+ .lex "$/", param_769
+.annotate 'line', 160
+ new $P770, "Undef"
+ .lex "$subpast", $P770
.annotate 'line', 161
- new $P785, "Undef"
- .lex "$past", $P785
-.annotate 'line', 159
- find_lex $P786, "$/"
- unless_null $P786, vivify_227
- $P786 = root_new ['parrot';'Hash']
- vivify_227:
- set $P787, $P786["quote_EXPR"]
- unless_null $P787, vivify_228
- new $P787, "Undef"
- vivify_228:
- $P788 = $P787."ast"()
- store_lex "$quote", $P788
+ new $P771, "Undef"
+ .lex "$past", $P771
.annotate 'line', 160
- get_hll_global $P790, ["PAST"], "Val"
- find_lex $P791, "$quote"
- $P792 = $P790."ACCEPTS"($P791)
- unless $P792, if_789_end
- find_lex $P793, "$quote"
- $P794 = $P793."value"()
- store_lex "$quote", $P794
- if_789_end:
+ find_lex $P772, "$/"
+ unless_null $P772, vivify_229
+ $P772 = root_new ['parrot';'Hash']
+ vivify_229:
+ set $P773, $P772["nibbler"]
+ unless_null $P773, vivify_230
+ new $P773, "Undef"
+ vivify_230:
+ $P774 = $P773."ast"()
+ $P775 = "buildsub"($P774)
+ store_lex "$subpast", $P775
.annotate 'line', 161
- get_hll_global $P795, ["PAST"], "Regex"
- find_lex $P796, "$quote"
- find_lex $P797, "$/"
- $P798 = $P795."new"($P796, "literal" :named("pasttype"), $P797 :named("node"))
- store_lex "$past", $P798
-.annotate 'line', 162
- find_lex $P799, "$/"
- find_lex $P800, "$past"
- $P801 = $P799."!make"($P800)
-.annotate 'line', 158
- .return ($P801)
- control_781:
+ get_hll_global $P776, ["PAST"], "Regex"
+ find_lex $P777, "$subpast"
+ find_lex $P778, "$/"
+ $P779 = $P776."new"($P777, "subrule" :named("pasttype"), "capture" :named("subtype"), $P778 :named("node"))
+ store_lex "$past", $P779
+.annotate 'line', 163
+ find_lex $P780, "$/"
+ find_lex $P781, "$past"
+ $P782 = $P780."!make"($P781)
+.annotate 'line', 159
+ .return ($P782)
+ control_767:
.local pmc exception
.get_results (exception)
- getattribute $P802, exception, "payload"
- .return ($P802)
+ getattribute $P783, exception, "payload"
+ .return ($P783)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<.>" :subid("49_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_806
-.annotate 'line', 165
- new $P805, 'ExceptionHandler'
- set_addr $P805, control_804
- $P805."handle_types"(57)
- push_eh $P805
- .lex "self", self
- .lex "$/", param_806
+.include "except_types.pasm"
+.sub "metachar:sym<'>" :subid("48_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_787
.annotate 'line', 166
- new $P807, "Undef"
- .lex "$past", $P807
- get_hll_global $P808, ["PAST"], "Regex"
- find_lex $P809, "$/"
- $P810 = $P808."new"("charclass" :named("pasttype"), "." :named("subtype"), $P809 :named("node"))
- store_lex "$past", $P810
-.annotate 'line', 167
- find_lex $P811, "$/"
- find_lex $P812, "$past"
- $P813 = $P811."!make"($P812)
-.annotate 'line', 165
- .return ($P813)
- control_804:
- .local pmc exception
- .get_results (exception)
- getattribute $P814, exception, "payload"
- .return ($P814)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^>" :subid("50_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_818
-.annotate 'line', 170
- new $P817, 'ExceptionHandler'
- set_addr $P817, control_816
- $P817."handle_types"(57)
- push_eh $P817
+ new $P786, 'ExceptionHandler'
+ set_addr $P786, control_785
+ $P786."handle_types"(.CONTROL_RETURN)
+ push_eh $P786
.lex "self", self
- .lex "$/", param_818
-.annotate 'line', 171
- new $P819, "Undef"
- .lex "$past", $P819
- get_hll_global $P820, ["PAST"], "Regex"
- find_lex $P821, "$/"
- $P822 = $P820."new"("anchor" :named("pasttype"), "bos" :named("subtype"), $P821 :named("node"))
- store_lex "$past", $P822
-.annotate 'line', 172
- find_lex $P823, "$/"
- find_lex $P824, "$past"
- $P825 = $P823."!make"($P824)
+ .lex "$/", param_787
+.annotate 'line', 167
+ new $P788, "Undef"
+ .lex "$quote", $P788
+.annotate 'line', 169
+ new $P789, "Undef"
+ .lex "$past", $P789
+.annotate 'line', 167
+ find_lex $P790, "$/"
+ unless_null $P790, vivify_231
+ $P790 = root_new ['parrot';'Hash']
+ vivify_231:
+ set $P791, $P790["quote_EXPR"]
+ unless_null $P791, vivify_232
+ new $P791, "Undef"
+ vivify_232:
+ $P792 = $P791."ast"()
+ store_lex "$quote", $P792
+.annotate 'line', 168
+ get_hll_global $P794, ["PAST"], "Val"
+ find_lex $P795, "$quote"
+ $P796 = $P794."ACCEPTS"($P795)
+ unless $P796, if_793_end
+ find_lex $P797, "$quote"
+ $P798 = $P797."value"()
+ store_lex "$quote", $P798
+ if_793_end:
+.annotate 'line', 169
+ get_hll_global $P799, ["PAST"], "Regex"
+ find_lex $P800, "$quote"
+ find_lex $P801, "$/"
+ $P802 = $P799."new"($P800, "literal" :named("pasttype"), $P801 :named("node"))
+ store_lex "$past", $P802
.annotate 'line', 170
- .return ($P825)
- control_816:
+ find_lex $P803, "$/"
+ find_lex $P804, "$past"
+ $P805 = $P803."!make"($P804)
+.annotate 'line', 166
+ .return ($P805)
+ control_785:
.local pmc exception
.get_results (exception)
- getattribute $P826, exception, "payload"
- .return ($P826)
+ getattribute $P806, exception, "payload"
+ .return ($P806)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<^^>" :subid("51_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_830
-.annotate 'line', 175
- new $P829, 'ExceptionHandler'
- set_addr $P829, control_828
- $P829."handle_types"(57)
- push_eh $P829
+.include "except_types.pasm"
+.sub "metachar:sym<\">" :subid("49_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_810
+.annotate 'line', 173
+ new $P809, 'ExceptionHandler'
+ set_addr $P809, control_808
+ $P809."handle_types"(.CONTROL_RETURN)
+ push_eh $P809
.lex "self", self
- .lex "$/", param_830
+ .lex "$/", param_810
+.annotate 'line', 174
+ new $P811, "Undef"
+ .lex "$quote", $P811
.annotate 'line', 176
- new $P831, "Undef"
- .lex "$past", $P831
- get_hll_global $P832, ["PAST"], "Regex"
- find_lex $P833, "$/"
- $P834 = $P832."new"("anchor" :named("pasttype"), "bol" :named("subtype"), $P833 :named("node"))
- store_lex "$past", $P834
-.annotate 'line', 177
- find_lex $P835, "$/"
- find_lex $P836, "$past"
- $P837 = $P835."!make"($P836)
+ new $P812, "Undef"
+ .lex "$past", $P812
+.annotate 'line', 174
+ find_lex $P813, "$/"
+ unless_null $P813, vivify_233
+ $P813 = root_new ['parrot';'Hash']
+ vivify_233:
+ set $P814, $P813["quote_EXPR"]
+ unless_null $P814, vivify_234
+ new $P814, "Undef"
+ vivify_234:
+ $P815 = $P814."ast"()
+ store_lex "$quote", $P815
.annotate 'line', 175
- .return ($P837)
- control_828:
+ get_hll_global $P817, ["PAST"], "Val"
+ find_lex $P818, "$quote"
+ $P819 = $P817."ACCEPTS"($P818)
+ unless $P819, if_816_end
+ find_lex $P820, "$quote"
+ $P821 = $P820."value"()
+ store_lex "$quote", $P821
+ if_816_end:
+.annotate 'line', 176
+ get_hll_global $P822, ["PAST"], "Regex"
+ find_lex $P823, "$quote"
+ find_lex $P824, "$/"
+ $P825 = $P822."new"($P823, "literal" :named("pasttype"), $P824 :named("node"))
+ store_lex "$past", $P825
+.annotate 'line', 177
+ find_lex $P826, "$/"
+ find_lex $P827, "$past"
+ $P828 = $P826."!make"($P827)
+.annotate 'line', 173
+ .return ($P828)
+ control_808:
.local pmc exception
.get_results (exception)
- getattribute $P838, exception, "payload"
- .return ($P838)
+ getattribute $P829, exception, "payload"
+ .return ($P829)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$>" :subid("52_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_842
+.include "except_types.pasm"
+.sub "metachar:sym<.>" :subid("50_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_833
.annotate 'line', 180
- new $P841, 'ExceptionHandler'
- set_addr $P841, control_840
- $P841."handle_types"(57)
- push_eh $P841
+ new $P832, 'ExceptionHandler'
+ set_addr $P832, control_831
+ $P832."handle_types"(.CONTROL_RETURN)
+ push_eh $P832
.lex "self", self
- .lex "$/", param_842
+ .lex "$/", param_833
.annotate 'line', 181
- new $P843, "Undef"
- .lex "$past", $P843
- get_hll_global $P844, ["PAST"], "Regex"
- find_lex $P845, "$/"
- $P846 = $P844."new"("anchor" :named("pasttype"), "eos" :named("subtype"), $P845 :named("node"))
- store_lex "$past", $P846
+ new $P834, "Undef"
+ .lex "$past", $P834
+ get_hll_global $P835, ["PAST"], "Regex"
+ find_lex $P836, "$/"
+ $P837 = $P835."new"("charclass" :named("pasttype"), "." :named("subtype"), $P836 :named("node"))
+ store_lex "$past", $P837
.annotate 'line', 182
- find_lex $P847, "$/"
- find_lex $P848, "$past"
- $P849 = $P847."!make"($P848)
+ find_lex $P838, "$/"
+ find_lex $P839, "$past"
+ $P840 = $P838."!make"($P839)
.annotate 'line', 180
- .return ($P849)
- control_840:
+ .return ($P840)
+ control_831:
.local pmc exception
.get_results (exception)
- getattribute $P850, exception, "payload"
- .return ($P850)
+ getattribute $P841, exception, "payload"
+ .return ($P841)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<$$>" :subid("53_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_854
+.include "except_types.pasm"
+.sub "metachar:sym<^>" :subid("51_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_845
.annotate 'line', 185
- new $P853, 'ExceptionHandler'
- set_addr $P853, control_852
- $P853."handle_types"(57)
- push_eh $P853
+ new $P844, 'ExceptionHandler'
+ set_addr $P844, control_843
+ $P844."handle_types"(.CONTROL_RETURN)
+ push_eh $P844
.lex "self", self
- .lex "$/", param_854
+ .lex "$/", param_845
.annotate 'line', 186
- new $P855, "Undef"
- .lex "$past", $P855
- get_hll_global $P856, ["PAST"], "Regex"
- find_lex $P857, "$/"
- $P858 = $P856."new"("anchor" :named("pasttype"), "eol" :named("subtype"), $P857 :named("node"))
- store_lex "$past", $P858
+ new $P846, "Undef"
+ .lex "$past", $P846
+ get_hll_global $P847, ["PAST"], "Regex"
+ find_lex $P848, "$/"
+ $P849 = $P847."new"("anchor" :named("pasttype"), "bos" :named("subtype"), $P848 :named("node"))
+ store_lex "$past", $P849
.annotate 'line', 187
- find_lex $P859, "$/"
- find_lex $P860, "$past"
- $P861 = $P859."!make"($P860)
+ find_lex $P850, "$/"
+ find_lex $P851, "$past"
+ $P852 = $P850."!make"($P851)
.annotate 'line', 185
- .return ($P861)
- control_852:
+ .return ($P852)
+ control_843:
.local pmc exception
.get_results (exception)
- getattribute $P862, exception, "payload"
- .return ($P862)
+ getattribute $P853, exception, "payload"
+ .return ($P853)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<:::>" :subid("54_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_866
+.include "except_types.pasm"
+.sub "metachar:sym<^^>" :subid("52_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_857
.annotate 'line', 190
- new $P865, 'ExceptionHandler'
- set_addr $P865, control_864
- $P865."handle_types"(57)
- push_eh $P865
+ new $P856, 'ExceptionHandler'
+ set_addr $P856, control_855
+ $P856."handle_types"(.CONTROL_RETURN)
+ push_eh $P856
.lex "self", self
- .lex "$/", param_866
+ .lex "$/", param_857
.annotate 'line', 191
- new $P867, "Undef"
- .lex "$past", $P867
- get_hll_global $P868, ["PAST"], "Regex"
- find_lex $P869, "$/"
- $P870 = $P868."new"("cut" :named("pasttype"), $P869 :named("node"))
- store_lex "$past", $P870
+ new $P858, "Undef"
+ .lex "$past", $P858
+ get_hll_global $P859, ["PAST"], "Regex"
+ find_lex $P860, "$/"
+ $P861 = $P859."new"("anchor" :named("pasttype"), "bol" :named("subtype"), $P860 :named("node"))
+ store_lex "$past", $P861
.annotate 'line', 192
- find_lex $P871, "$/"
- find_lex $P872, "$past"
- $P873 = $P871."!make"($P872)
+ find_lex $P862, "$/"
+ find_lex $P863, "$past"
+ $P864 = $P862."!make"($P863)
.annotate 'line', 190
- .return ($P873)
- control_864:
+ .return ($P864)
+ control_855:
.local pmc exception
.get_results (exception)
- getattribute $P874, exception, "payload"
- .return ($P874)
+ getattribute $P865, exception, "payload"
+ .return ($P865)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<lwb>" :subid("55_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_878
+.include "except_types.pasm"
+.sub "metachar:sym<$>" :subid("53_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_869
.annotate 'line', 195
- new $P877, 'ExceptionHandler'
- set_addr $P877, control_876
- $P877."handle_types"(57)
- push_eh $P877
+ new $P868, 'ExceptionHandler'
+ set_addr $P868, control_867
+ $P868."handle_types"(.CONTROL_RETURN)
+ push_eh $P868
.lex "self", self
- .lex "$/", param_878
+ .lex "$/", param_869
.annotate 'line', 196
- new $P879, "Undef"
- .lex "$past", $P879
- get_hll_global $P880, ["PAST"], "Regex"
- find_lex $P881, "$/"
- $P882 = $P880."new"("anchor" :named("pasttype"), "lwb" :named("subtype"), $P881 :named("node"))
- store_lex "$past", $P882
+ new $P870, "Undef"
+ .lex "$past", $P870
+ get_hll_global $P871, ["PAST"], "Regex"
+ find_lex $P872, "$/"
+ $P873 = $P871."new"("anchor" :named("pasttype"), "eos" :named("subtype"), $P872 :named("node"))
+ store_lex "$past", $P873
.annotate 'line', 197
- find_lex $P883, "$/"
- find_lex $P884, "$past"
- $P885 = $P883."!make"($P884)
+ find_lex $P874, "$/"
+ find_lex $P875, "$past"
+ $P876 = $P874."!make"($P875)
.annotate 'line', 195
- .return ($P885)
- control_876:
+ .return ($P876)
+ control_867:
.local pmc exception
.get_results (exception)
- getattribute $P886, exception, "payload"
- .return ($P886)
+ getattribute $P877, exception, "payload"
+ .return ($P877)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<rwb>" :subid("56_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_890
+.include "except_types.pasm"
+.sub "metachar:sym<$$>" :subid("54_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_881
.annotate 'line', 200
- new $P889, 'ExceptionHandler'
- set_addr $P889, control_888
- $P889."handle_types"(57)
- push_eh $P889
+ new $P880, 'ExceptionHandler'
+ set_addr $P880, control_879
+ $P880."handle_types"(.CONTROL_RETURN)
+ push_eh $P880
.lex "self", self
- .lex "$/", param_890
+ .lex "$/", param_881
.annotate 'line', 201
- new $P891, "Undef"
- .lex "$past", $P891
- get_hll_global $P892, ["PAST"], "Regex"
- find_lex $P893, "$/"
- $P894 = $P892."new"("anchor" :named("pasttype"), "rwb" :named("subtype"), $P893 :named("node"))
- store_lex "$past", $P894
+ new $P882, "Undef"
+ .lex "$past", $P882
+ get_hll_global $P883, ["PAST"], "Regex"
+ find_lex $P884, "$/"
+ $P885 = $P883."new"("anchor" :named("pasttype"), "eol" :named("subtype"), $P884 :named("node"))
+ store_lex "$past", $P885
.annotate 'line', 202
- find_lex $P895, "$/"
- find_lex $P896, "$past"
- $P897 = $P895."!make"($P896)
+ find_lex $P886, "$/"
+ find_lex $P887, "$past"
+ $P888 = $P886."!make"($P887)
.annotate 'line', 200
- .return ($P897)
- control_888:
+ .return ($P888)
+ control_879:
.local pmc exception
.get_results (exception)
- getattribute $P898, exception, "payload"
- .return ($P898)
+ getattribute $P889, exception, "payload"
+ .return ($P889)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<bs>" :subid("57_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_902
+.include "except_types.pasm"
+.sub "metachar:sym<:::>" :subid("55_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_893
.annotate 'line', 205
- new $P901, 'ExceptionHandler'
- set_addr $P901, control_900
- $P901."handle_types"(57)
- push_eh $P901
+ new $P892, 'ExceptionHandler'
+ set_addr $P892, control_891
+ $P892."handle_types"(.CONTROL_RETURN)
+ push_eh $P892
.lex "self", self
- .lex "$/", param_902
+ .lex "$/", param_893
.annotate 'line', 206
- find_lex $P903, "$/"
- find_lex $P904, "$/"
- unless_null $P904, vivify_229
- $P904 = root_new ['parrot';'Hash']
- vivify_229:
- set $P905, $P904["backslash"]
- unless_null $P905, vivify_230
- new $P905, "Undef"
- vivify_230:
- $P906 = $P905."ast"()
- $P907 = $P903."!make"($P906)
+ new $P894, "Undef"
+ .lex "$past", $P894
+ get_hll_global $P895, ["PAST"], "Regex"
+ find_lex $P896, "$/"
+ $P897 = $P895."new"("cut" :named("pasttype"), $P896 :named("node"))
+ store_lex "$past", $P897
+.annotate 'line', 207
+ find_lex $P898, "$/"
+ find_lex $P899, "$past"
+ $P900 = $P898."!make"($P899)
.annotate 'line', 205
- .return ($P907)
- control_900:
+ .return ($P900)
+ control_891:
.local pmc exception
.get_results (exception)
- getattribute $P908, exception, "payload"
- .return ($P908)
+ getattribute $P901, exception, "payload"
+ .return ($P901)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<mod>" :subid("58_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_912
-.annotate 'line', 209
- new $P911, 'ExceptionHandler'
- set_addr $P911, control_910
- $P911."handle_types"(57)
- push_eh $P911
- .lex "self", self
- .lex "$/", param_912
+.include "except_types.pasm"
+.sub "metachar:sym<lwb>" :subid("56_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_905
.annotate 'line', 210
- find_lex $P913, "$/"
- find_lex $P914, "$/"
- unless_null $P914, vivify_231
- $P914 = root_new ['parrot';'Hash']
- vivify_231:
- set $P915, $P914["mod_internal"]
- unless_null $P915, vivify_232
- new $P915, "Undef"
- vivify_232:
- $P916 = $P915."ast"()
- $P917 = $P913."!make"($P916)
-.annotate 'line', 209
- .return ($P917)
- control_910:
+ new $P904, 'ExceptionHandler'
+ set_addr $P904, control_903
+ $P904."handle_types"(.CONTROL_RETURN)
+ push_eh $P904
+ .lex "self", self
+ .lex "$/", param_905
+.annotate 'line', 211
+ new $P906, "Undef"
+ .lex "$past", $P906
+ get_hll_global $P907, ["PAST"], "Regex"
+ find_lex $P908, "$/"
+ $P909 = $P907."new"("anchor" :named("pasttype"), "lwb" :named("subtype"), $P908 :named("node"))
+ store_lex "$past", $P909
+.annotate 'line', 212
+ find_lex $P910, "$/"
+ find_lex $P911, "$past"
+ $P912 = $P910."!make"($P911)
+.annotate 'line', 210
+ .return ($P912)
+ control_903:
.local pmc exception
.get_results (exception)
- getattribute $P918, exception, "payload"
- .return ($P918)
+ getattribute $P913, exception, "payload"
+ .return ($P913)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<assert>" :subid("59_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_922
-.annotate 'line', 213
- new $P921, 'ExceptionHandler'
- set_addr $P921, control_920
- $P921."handle_types"(57)
- push_eh $P921
+.include "except_types.pasm"
+.sub "metachar:sym<rwb>" :subid("57_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_917
+.annotate 'line', 215
+ new $P916, 'ExceptionHandler'
+ set_addr $P916, control_915
+ $P916."handle_types"(.CONTROL_RETURN)
+ push_eh $P916
.lex "self", self
- .lex "$/", param_922
-.annotate 'line', 214
- find_lex $P923, "$/"
- find_lex $P924, "$/"
- unless_null $P924, vivify_233
- $P924 = root_new ['parrot';'Hash']
- vivify_233:
- set $P925, $P924["assertion"]
- unless_null $P925, vivify_234
- new $P925, "Undef"
- vivify_234:
- $P926 = $P925."ast"()
- $P927 = $P923."!make"($P926)
-.annotate 'line', 213
- .return ($P927)
- control_920:
+ .lex "$/", param_917
+.annotate 'line', 216
+ new $P918, "Undef"
+ .lex "$past", $P918
+ get_hll_global $P919, ["PAST"], "Regex"
+ find_lex $P920, "$/"
+ $P921 = $P919."new"("anchor" :named("pasttype"), "rwb" :named("subtype"), $P920 :named("node"))
+ store_lex "$past", $P921
+.annotate 'line', 217
+ find_lex $P922, "$/"
+ find_lex $P923, "$past"
+ $P924 = $P922."!make"($P923)
+.annotate 'line', 215
+ .return ($P924)
+ control_915:
.local pmc exception
.get_results (exception)
- getattribute $P928, exception, "payload"
- .return ($P928)
+ getattribute $P925, exception, "payload"
+ .return ($P925)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<~>" :subid("60_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_932
-.annotate 'line', 217
- new $P931, 'ExceptionHandler'
- set_addr $P931, control_930
- $P931."handle_types"(57)
- push_eh $P931
- .lex "self", self
- .lex "$/", param_932
-.annotate 'line', 218
- find_lex $P933, "$/"
- get_hll_global $P934, ["PAST"], "Regex"
-.annotate 'line', 219
- find_lex $P935, "$/"
- unless_null $P935, vivify_235
- $P935 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "metachar:sym<bs>" :subid("58_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_929
+.annotate 'line', 220
+ new $P928, 'ExceptionHandler'
+ set_addr $P928, control_927
+ $P928."handle_types"(.CONTROL_RETURN)
+ push_eh $P928
+ .lex "self", self
+ .lex "$/", param_929
+.annotate 'line', 221
+ find_lex $P930, "$/"
+ find_lex $P931, "$/"
+ unless_null $P931, vivify_235
+ $P931 = root_new ['parrot';'Hash']
vivify_235:
- set $P936, $P935["EXPR"]
- unless_null $P936, vivify_236
- new $P936, "Undef"
+ set $P932, $P931["backslash"]
+ unless_null $P932, vivify_236
+ new $P932, "Undef"
vivify_236:
- $P937 = $P936."ast"()
+ $P933 = $P932."ast"()
+ $P934 = $P930."!make"($P933)
.annotate 'line', 220
- get_hll_global $P938, ["PAST"], "Regex"
-.annotate 'line', 221
- find_lex $P939, "$/"
- unless_null $P939, vivify_237
- $P939 = root_new ['parrot';'Hash']
+ .return ($P934)
+ control_927:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P935, exception, "payload"
+ .return ($P935)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "metachar:sym<mod>" :subid("59_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_939
+.annotate 'line', 224
+ new $P938, 'ExceptionHandler'
+ set_addr $P938, control_937
+ $P938."handle_types"(.CONTROL_RETURN)
+ push_eh $P938
+ .lex "self", self
+ .lex "$/", param_939
+.annotate 'line', 225
+ find_lex $P940, "$/"
+ find_lex $P941, "$/"
+ unless_null $P941, vivify_237
+ $P941 = root_new ['parrot';'Hash']
vivify_237:
- set $P940, $P939["GOAL"]
- unless_null $P940, vivify_238
- new $P940, "Undef"
+ set $P942, $P941["mod_internal"]
+ unless_null $P942, vivify_238
+ new $P942, "Undef"
vivify_238:
- $P941 = $P940."ast"()
-.annotate 'line', 222
- get_hll_global $P942, ["PAST"], "Regex"
- find_lex $P943, "$/"
- unless_null $P943, vivify_239
- $P943 = root_new ['parrot';'Hash']
+ $P943 = $P942."ast"()
+ $P944 = $P940."!make"($P943)
+.annotate 'line', 224
+ .return ($P944)
+ control_937:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P945, exception, "payload"
+ .return ($P945)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "metachar:sym<assert>" :subid("60_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_949
+.annotate 'line', 228
+ new $P948, 'ExceptionHandler'
+ set_addr $P948, control_947
+ $P948."handle_types"(.CONTROL_RETURN)
+ push_eh $P948
+ .lex "self", self
+ .lex "$/", param_949
+.annotate 'line', 229
+ find_lex $P950, "$/"
+ find_lex $P951, "$/"
+ unless_null $P951, vivify_239
+ $P951 = root_new ['parrot';'Hash']
vivify_239:
- set $P944, $P943["GOAL"]
- unless_null $P944, vivify_240
- new $P944, "Undef"
+ set $P952, $P951["assertion"]
+ unless_null $P952, vivify_240
+ new $P952, "Undef"
vivify_240:
- set $S945, $P944
- $P946 = $P942."new"("FAILGOAL", $S945, "subrule" :named("pasttype"), "method" :named("subtype"))
- $P947 = $P938."new"($P941, $P946, "alt" :named("pasttype"))
-.annotate 'line', 220
- $P948 = $P934."new"($P937, $P947, "concat" :named("pasttype"))
-.annotate 'line', 218
- $P949 = $P933."!make"($P948)
-.annotate 'line', 217
- .return ($P949)
- control_930:
+ $P953 = $P952."ast"()
+ $P954 = $P950."!make"($P953)
+.annotate 'line', 228
+ .return ($P954)
+ control_947:
.local pmc exception
.get_results (exception)
- getattribute $P950, exception, "payload"
- .return ($P950)
+ getattribute $P955, exception, "payload"
+ .return ($P955)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<{*}>" :subid("61_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_954
-.annotate 'line', 230
- new $P953, 'ExceptionHandler'
- set_addr $P953, control_952
- $P953."handle_types"(57)
- push_eh $P953
- .lex "self", self
- .lex "$/", param_954
-.annotate 'line', 231
- new $P955, "Undef"
- .lex "$past", $P955
+.include "except_types.pasm"
+.sub "metachar:sym<~>" :subid("61_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_959
.annotate 'line', 232
- find_lex $P958, "$/"
- unless_null $P958, vivify_241
- $P958 = root_new ['parrot';'Hash']
+ new $P958, 'ExceptionHandler'
+ set_addr $P958, control_957
+ $P958."handle_types"(.CONTROL_RETURN)
+ push_eh $P958
+ .lex "self", self
+ .lex "$/", param_959
+.annotate 'line', 233
+ find_lex $P960, "$/"
+ get_hll_global $P961, ["PAST"], "Regex"
+.annotate 'line', 234
+ find_lex $P962, "$/"
+ unless_null $P962, vivify_241
+ $P962 = root_new ['parrot';'Hash']
vivify_241:
- set $P959, $P958["key"]
- unless_null $P959, vivify_242
- new $P959, "Undef"
+ set $P963, $P962["EXPR"]
+ unless_null $P963, vivify_242
+ new $P963, "Undef"
vivify_242:
- if $P959, if_957
- new $P967, "Integer"
- assign $P967, 0
- set $P956, $P967
- goto if_957_end
- if_957:
- get_hll_global $P960, ["PAST"], "Regex"
- find_lex $P961, "$/"
- unless_null $P961, vivify_243
- $P961 = root_new ['parrot';'Hash']
+ $P964 = $P963."ast"()
+.annotate 'line', 235
+ get_hll_global $P965, ["PAST"], "Regex"
+.annotate 'line', 236
+ find_lex $P966, "$/"
+ unless_null $P966, vivify_243
+ $P966 = root_new ['parrot';'Hash']
vivify_243:
- set $P962, $P961["key"]
- unless_null $P962, vivify_244
- $P962 = root_new ['parrot';'ResizablePMCArray']
+ set $P967, $P966["GOAL"]
+ unless_null $P967, vivify_244
+ new $P967, "Undef"
vivify_244:
- set $P963, $P962[0]
- unless_null $P963, vivify_245
- new $P963, "Undef"
+ $P968 = $P967."ast"()
+.annotate 'line', 237
+ get_hll_global $P969, ["PAST"], "Regex"
+ find_lex $P970, "$/"
+ unless_null $P970, vivify_245
+ $P970 = root_new ['parrot';'Hash']
vivify_245:
- set $S964, $P963
- find_lex $P965, "$/"
- $P966 = $P960."new"($S964, "reduce" :named("pasttype"), $P965 :named("node"))
- set $P956, $P966
- if_957_end:
- store_lex "$past", $P956
-.annotate 'line', 234
- find_lex $P968, "$/"
- find_lex $P969, "$past"
- $P970 = $P968."!make"($P969)
-.annotate 'line', 230
- .return ($P970)
- control_952:
+ set $P971, $P970["GOAL"]
+ unless_null $P971, vivify_246
+ new $P971, "Undef"
+ vivify_246:
+ set $S972, $P971
+ $P973 = $P969."new"("FAILGOAL", $S972, "subrule" :named("pasttype"), "method" :named("subtype"))
+ $P974 = $P965."new"($P968, $P973, "alt" :named("pasttype"))
+.annotate 'line', 235
+ $P975 = $P961."new"($P964, $P974, "concat" :named("pasttype"))
+.annotate 'line', 233
+ $P976 = $P960."!make"($P975)
+.annotate 'line', 232
+ .return ($P976)
+ control_957:
.local pmc exception
.get_results (exception)
- getattribute $P971, exception, "payload"
- .return ($P971)
+ getattribute $P977, exception, "payload"
+ .return ($P977)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<var>" :subid("62_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_975
-.annotate 'line', 237
- new $P974, 'ExceptionHandler'
- set_addr $P974, control_973
- $P974."handle_types"(57)
- push_eh $P974
- .lex "self", self
- .lex "$/", param_975
-.annotate 'line', 238
- new $P976, "Undef"
- .lex "$past", $P976
-.annotate 'line', 239
- new $P977, "Undef"
- .lex "$name", $P977
-.annotate 'line', 237
- find_lex $P978, "$past"
-.annotate 'line', 239
- find_lex $P981, "$/"
- unless_null $P981, vivify_246
- $P981 = root_new ['parrot';'Hash']
- vivify_246:
- set $P982, $P981["pos"]
- unless_null $P982, vivify_247
+.include "except_types.pasm"
+.sub "metachar:sym<{*}>" :subid("62_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_981
+.annotate 'line', 245
+ new $P980, 'ExceptionHandler'
+ set_addr $P980, control_979
+ $P980."handle_types"(.CONTROL_RETURN)
+ push_eh $P980
+ .lex "self", self
+ .lex "$/", param_981
+.annotate 'line', 246
new $P982, "Undef"
+ .lex "$past", $P982
+.annotate 'line', 247
+ find_lex $P985, "$/"
+ unless_null $P985, vivify_247
+ $P985 = root_new ['parrot';'Hash']
vivify_247:
- if $P982, if_980
- find_lex $P986, "$/"
+ set $P986, $P985["key"]
unless_null $P986, vivify_248
- $P986 = root_new ['parrot';'Hash']
+ new $P986, "Undef"
vivify_248:
- set $P987, $P986["name"]
- unless_null $P987, vivify_249
- new $P987, "Undef"
+ if $P986, if_984
+ new $P994, "Integer"
+ assign $P994, 0
+ set $P983, $P994
+ goto if_984_end
+ if_984:
+ get_hll_global $P987, ["PAST"], "Regex"
+ find_lex $P988, "$/"
+ unless_null $P988, vivify_249
+ $P988 = root_new ['parrot';'Hash']
vivify_249:
- set $S988, $P987
- new $P979, 'String'
- set $P979, $S988
- goto if_980_end
- if_980:
- find_lex $P983, "$/"
- unless_null $P983, vivify_250
- $P983 = root_new ['parrot';'Hash']
+ set $P989, $P988["key"]
+ unless_null $P989, vivify_250
+ $P989 = root_new ['parrot';'ResizablePMCArray']
vivify_250:
- set $P984, $P983["pos"]
- unless_null $P984, vivify_251
- new $P984, "Undef"
+ set $P990, $P989[0]
+ unless_null $P990, vivify_251
+ new $P990, "Undef"
vivify_251:
- set $N985, $P984
- new $P979, 'Float'
- set $P979, $N985
- if_980_end:
- store_lex "$name", $P979
-.annotate 'line', 240
- find_lex $P990, "$/"
- unless_null $P990, vivify_252
- $P990 = root_new ['parrot';'Hash']
- vivify_252:
- set $P991, $P990["quantified_atom"]
- unless_null $P991, vivify_253
- new $P991, "Undef"
- vivify_253:
- if $P991, if_989
-.annotate 'line', 251
- get_hll_global $P1020, ["PAST"], "Regex"
- find_lex $P1021, "$name"
- find_lex $P1022, "$/"
- $P1023 = $P1020."new"("!BACKREF", $P1021, "subrule" :named("pasttype"), "method" :named("subtype"), $P1022 :named("node"))
- store_lex "$past", $P1023
-.annotate 'line', 250
- goto if_989_end
- if_989:
-.annotate 'line', 241
+ set $S991, $P990
find_lex $P992, "$/"
- unless_null $P992, vivify_254
- $P992 = root_new ['parrot';'Hash']
- vivify_254:
- set $P993, $P992["quantified_atom"]
- unless_null $P993, vivify_255
- $P993 = root_new ['parrot';'ResizablePMCArray']
- vivify_255:
- set $P994, $P993[0]
- unless_null $P994, vivify_256
- new $P994, "Undef"
- vivify_256:
- $P995 = $P994."ast"()
- store_lex "$past", $P995
-.annotate 'line', 242
- find_lex $P999, "$past"
- $S1000 = $P999."pasttype"()
- iseq $I1001, $S1000, "quant"
- if $I1001, if_998
- new $P997, 'Integer'
- set $P997, $I1001
- goto if_998_end
- if_998:
- find_lex $P1002, "$past"
- unless_null $P1002, vivify_257
- $P1002 = root_new ['parrot';'ResizablePMCArray']
- vivify_257:
- set $P1003, $P1002[0]
- unless_null $P1003, vivify_258
- new $P1003, "Undef"
- vivify_258:
- $S1004 = $P1003."pasttype"()
- iseq $I1005, $S1004, "subrule"
- new $P997, 'Integer'
- set $P997, $I1005
- if_998_end:
- if $P997, if_996
-.annotate 'line', 245
- find_lex $P1010, "$past"
- $S1011 = $P1010."pasttype"()
- iseq $I1012, $S1011, "subrule"
- if $I1012, if_1009
-.annotate 'line', 247
- get_hll_global $P1015, ["PAST"], "Regex"
- find_lex $P1016, "$past"
- find_lex $P1017, "$name"
- find_lex $P1018, "$/"
- $P1019 = $P1015."new"($P1016, $P1017 :named("name"), "subcapture" :named("pasttype"), $P1018 :named("node"))
- store_lex "$past", $P1019
-.annotate 'line', 246
- goto if_1009_end
- if_1009:
+ $P993 = $P987."new"($S991, "reduce" :named("pasttype"), $P992 :named("node"))
+ set $P983, $P993
+ if_984_end:
+ store_lex "$past", $P983
+.annotate 'line', 249
+ find_lex $P995, "$/"
+ find_lex $P996, "$past"
+ $P997 = $P995."!make"($P996)
.annotate 'line', 245
- find_lex $P1013, "$past"
- find_lex $P1014, "$name"
- "subrule_alias"($P1013, $P1014)
- if_1009_end:
- goto if_996_end
- if_996:
-.annotate 'line', 243
- find_lex $P1006, "$past"
- unless_null $P1006, vivify_259
- $P1006 = root_new ['parrot';'ResizablePMCArray']
- vivify_259:
- set $P1007, $P1006[0]
- unless_null $P1007, vivify_260
- new $P1007, "Undef"
- vivify_260:
- find_lex $P1008, "$name"
- "subrule_alias"($P1007, $P1008)
- if_996_end:
- if_989_end:
-.annotate 'line', 254
- find_lex $P1024, "$/"
- find_lex $P1025, "$past"
- $P1026 = $P1024."!make"($P1025)
-.annotate 'line', 237
- .return ($P1026)
- control_973:
+ .return ($P997)
+ control_979:
.local pmc exception
.get_results (exception)
- getattribute $P1027, exception, "payload"
- .return ($P1027)
+ getattribute $P998, exception, "payload"
+ .return ($P998)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "metachar:sym<PIR>" :subid("63_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1031
-.annotate 'line', 257
- new $P1030, 'ExceptionHandler'
- set_addr $P1030, control_1029
- $P1030."handle_types"(57)
- push_eh $P1030
+.include "except_types.pasm"
+.sub "metachar:sym<var>" :subid("63_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1002
+.annotate 'line', 252
+ new $P1001, 'ExceptionHandler'
+ set_addr $P1001, control_1000
+ $P1001."handle_types"(.CONTROL_RETURN)
+ push_eh $P1001
.lex "self", self
- .lex "$/", param_1031
-.annotate 'line', 258
- find_lex $P1032, "$/"
- get_hll_global $P1033, ["PAST"], "Regex"
-.annotate 'line', 259
- get_hll_global $P1034, ["PAST"], "Op"
- find_lex $P1035, "$/"
- unless_null $P1035, vivify_261
- $P1035 = root_new ['parrot';'Hash']
+ .lex "$/", param_1002
+.annotate 'line', 253
+ new $P1003, "Undef"
+ .lex "$past", $P1003
+.annotate 'line', 254
+ new $P1004, "Undef"
+ .lex "$name", $P1004
+.annotate 'line', 252
+ find_lex $P1005, "$past"
+.annotate 'line', 254
+ find_lex $P1008, "$/"
+ unless_null $P1008, vivify_252
+ $P1008 = root_new ['parrot';'Hash']
+ vivify_252:
+ set $P1009, $P1008["pos"]
+ unless_null $P1009, vivify_253
+ new $P1009, "Undef"
+ vivify_253:
+ if $P1009, if_1007
+ find_lex $P1013, "$/"
+ unless_null $P1013, vivify_254
+ $P1013 = root_new ['parrot';'Hash']
+ vivify_254:
+ set $P1014, $P1013["name"]
+ unless_null $P1014, vivify_255
+ new $P1014, "Undef"
+ vivify_255:
+ set $S1015, $P1014
+ new $P1006, 'String'
+ set $P1006, $S1015
+ goto if_1007_end
+ if_1007:
+ find_lex $P1010, "$/"
+ unless_null $P1010, vivify_256
+ $P1010 = root_new ['parrot';'Hash']
+ vivify_256:
+ set $P1011, $P1010["pos"]
+ unless_null $P1011, vivify_257
+ new $P1011, "Undef"
+ vivify_257:
+ set $N1012, $P1011
+ new $P1006, 'Float'
+ set $P1006, $N1012
+ if_1007_end:
+ store_lex "$name", $P1006
+.annotate 'line', 255
+ find_lex $P1017, "$/"
+ unless_null $P1017, vivify_258
+ $P1017 = root_new ['parrot';'Hash']
+ vivify_258:
+ set $P1018, $P1017["quantified_atom"]
+ unless_null $P1018, vivify_259
+ new $P1018, "Undef"
+ vivify_259:
+ if $P1018, if_1016
+.annotate 'line', 266
+ get_hll_global $P1047, ["PAST"], "Regex"
+ find_lex $P1048, "$name"
+ find_lex $P1049, "$/"
+ $P1050 = $P1047."new"("!BACKREF", $P1048, "subrule" :named("pasttype"), "method" :named("subtype"), $P1049 :named("node"))
+ store_lex "$past", $P1050
+.annotate 'line', 265
+ goto if_1016_end
+ if_1016:
+.annotate 'line', 256
+ find_lex $P1019, "$/"
+ unless_null $P1019, vivify_260
+ $P1019 = root_new ['parrot';'Hash']
+ vivify_260:
+ set $P1020, $P1019["quantified_atom"]
+ unless_null $P1020, vivify_261
+ $P1020 = root_new ['parrot';'ResizablePMCArray']
vivify_261:
- set $P1036, $P1035["pir"]
- unless_null $P1036, vivify_262
- new $P1036, "Undef"
+ set $P1021, $P1020[0]
+ unless_null $P1021, vivify_262
+ new $P1021, "Undef"
vivify_262:
- set $S1037, $P1036
- $P1038 = $P1034."new"($S1037 :named("inline"), "inline" :named("pasttype"))
- find_lex $P1039, "$/"
- $P1040 = $P1033."new"($P1038, "pastnode" :named("pasttype"), $P1039 :named("node"))
-.annotate 'line', 258
- $P1041 = $P1032."!make"($P1040)
+ $P1022 = $P1021."ast"()
+ store_lex "$past", $P1022
.annotate 'line', 257
- .return ($P1041)
- control_1029:
- .local pmc exception
- .get_results (exception)
- getattribute $P1042, exception, "payload"
- .return ($P1042)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<w>" :subid("64_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1046
-.annotate 'line', 265
- new $P1045, 'ExceptionHandler'
- set_addr $P1045, control_1044
- $P1045."handle_types"(57)
- push_eh $P1045
- .lex "self", self
- .lex "$/", param_1046
-.annotate 'line', 266
- new $P1047, "Undef"
- .lex "$subtype", $P1047
-.annotate 'line', 267
- new $P1048, "Undef"
- .lex "$past", $P1048
-.annotate 'line', 266
- find_lex $P1051, "$/"
- unless_null $P1051, vivify_263
- $P1051 = root_new ['parrot';'Hash']
+ find_lex $P1026, "$past"
+ $S1027 = $P1026."pasttype"()
+ iseq $I1028, $S1027, "quant"
+ if $I1028, if_1025
+ new $P1024, 'Integer'
+ set $P1024, $I1028
+ goto if_1025_end
+ if_1025:
+ find_lex $P1029, "$past"
+ unless_null $P1029, vivify_263
+ $P1029 = root_new ['parrot';'ResizablePMCArray']
vivify_263:
- set $P1052, $P1051["sym"]
- unless_null $P1052, vivify_264
- new $P1052, "Undef"
+ set $P1030, $P1029[0]
+ unless_null $P1030, vivify_264
+ new $P1030, "Undef"
vivify_264:
- set $S1053, $P1052
- iseq $I1054, $S1053, "n"
- if $I1054, if_1050
- find_lex $P1056, "$/"
- unless_null $P1056, vivify_265
- $P1056 = root_new ['parrot';'Hash']
+ $S1031 = $P1030."pasttype"()
+ iseq $I1032, $S1031, "subrule"
+ new $P1024, 'Integer'
+ set $P1024, $I1032
+ if_1025_end:
+ if $P1024, if_1023
+.annotate 'line', 260
+ find_lex $P1037, "$past"
+ $S1038 = $P1037."pasttype"()
+ iseq $I1039, $S1038, "subrule"
+ if $I1039, if_1036
+.annotate 'line', 262
+ get_hll_global $P1042, ["PAST"], "Regex"
+ find_lex $P1043, "$past"
+ find_lex $P1044, "$name"
+ find_lex $P1045, "$/"
+ $P1046 = $P1042."new"($P1043, $P1044 :named("name"), "subcapture" :named("pasttype"), $P1045 :named("node"))
+ store_lex "$past", $P1046
+.annotate 'line', 261
+ goto if_1036_end
+ if_1036:
+.annotate 'line', 260
+ find_lex $P1040, "$past"
+ find_lex $P1041, "$name"
+ "subrule_alias"($P1040, $P1041)
+ if_1036_end:
+ goto if_1023_end
+ if_1023:
+.annotate 'line', 258
+ find_lex $P1033, "$past"
+ unless_null $P1033, vivify_265
+ $P1033 = root_new ['parrot';'ResizablePMCArray']
vivify_265:
- set $P1057, $P1056["sym"]
- unless_null $P1057, vivify_266
- new $P1057, "Undef"
+ set $P1034, $P1033[0]
+ unless_null $P1034, vivify_266
+ new $P1034, "Undef"
vivify_266:
- set $S1058, $P1057
- new $P1049, 'String'
- set $P1049, $S1058
- goto if_1050_end
- if_1050:
- new $P1055, "String"
- assign $P1055, "nl"
- set $P1049, $P1055
- if_1050_end:
- store_lex "$subtype", $P1049
-.annotate 'line', 267
- get_hll_global $P1059, ["PAST"], "Regex"
- find_lex $P1060, "$subtype"
- find_lex $P1061, "$/"
- $P1062 = $P1059."new"("charclass" :named("pasttype"), $P1060 :named("subtype"), $P1061 :named("node"))
- store_lex "$past", $P1062
-.annotate 'line', 268
- find_lex $P1063, "$/"
- find_lex $P1064, "$past"
- $P1065 = $P1063."!make"($P1064)
-.annotate 'line', 265
- .return ($P1065)
- control_1044:
+ find_lex $P1035, "$name"
+ "subrule_alias"($P1034, $P1035)
+ if_1023_end:
+ if_1016_end:
+.annotate 'line', 269
+ find_lex $P1051, "$/"
+ find_lex $P1052, "$past"
+ $P1053 = $P1051."!make"($P1052)
+.annotate 'line', 252
+ .return ($P1053)
+ control_1000:
.local pmc exception
.get_results (exception)
- getattribute $P1066, exception, "payload"
- .return ($P1066)
+ getattribute $P1054, exception, "payload"
+ .return ($P1054)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<b>" :subid("65_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1070
-.annotate 'line', 271
- new $P1069, 'ExceptionHandler'
- set_addr $P1069, control_1068
- $P1069."handle_types"(57)
- push_eh $P1069
- .lex "self", self
- .lex "$/", param_1070
+.include "except_types.pasm"
+.sub "metachar:sym<PIR>" :subid("64_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1058
.annotate 'line', 272
- new $P1071, "Undef"
- .lex "$past", $P1071
- get_hll_global $P1072, ["PAST"], "Regex"
+ new $P1057, 'ExceptionHandler'
+ set_addr $P1057, control_1056
+ $P1057."handle_types"(.CONTROL_RETURN)
+ push_eh $P1057
+ .lex "self", self
+ .lex "$/", param_1058
.annotate 'line', 273
- find_lex $P1073, "$/"
- unless_null $P1073, vivify_267
- $P1073 = root_new ['parrot';'Hash']
+ find_lex $P1059, "$/"
+ get_hll_global $P1060, ["PAST"], "Regex"
+.annotate 'line', 274
+ get_hll_global $P1061, ["PAST"], "Op"
+ find_lex $P1062, "$/"
+ unless_null $P1062, vivify_267
+ $P1062 = root_new ['parrot';'Hash']
vivify_267:
- set $P1074, $P1073["sym"]
- unless_null $P1074, vivify_268
- new $P1074, "Undef"
+ set $P1063, $P1062["pir"]
+ unless_null $P1063, vivify_268
+ new $P1063, "Undef"
vivify_268:
- set $S1075, $P1074
- iseq $I1076, $S1075, "B"
- find_lex $P1077, "$/"
- $P1078 = $P1072."new"("\b", "enumcharlist" :named("pasttype"), $I1076 :named("negate"), $P1077 :named("node"))
+ set $S1064, $P1063
+ $P1065 = $P1061."new"($S1064 :named("inline"), "inline" :named("pasttype"))
+ find_lex $P1066, "$/"
+ $P1067 = $P1060."new"($P1065, "pastnode" :named("pasttype"), $P1066 :named("node"))
+.annotate 'line', 273
+ $P1068 = $P1059."!make"($P1067)
.annotate 'line', 272
- store_lex "$past", $P1078
-.annotate 'line', 274
- find_lex $P1079, "$/"
- find_lex $P1080, "$past"
- $P1081 = $P1079."!make"($P1080)
-.annotate 'line', 271
- .return ($P1081)
- control_1068:
- .local pmc exception
- .get_results (exception)
- getattribute $P1082, exception, "payload"
- .return ($P1082)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<e>" :subid("66_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1086
-.annotate 'line', 277
- new $P1085, 'ExceptionHandler'
- set_addr $P1085, control_1084
- $P1085."handle_types"(57)
- push_eh $P1085
- .lex "self", self
- .lex "$/", param_1086
-.annotate 'line', 278
- new $P1087, "Undef"
- .lex "$past", $P1087
- get_hll_global $P1088, ["PAST"], "Regex"
-.annotate 'line', 279
- find_lex $P1089, "$/"
- unless_null $P1089, vivify_269
- $P1089 = root_new ['parrot';'Hash']
- vivify_269:
- set $P1090, $P1089["sym"]
- unless_null $P1090, vivify_270
- new $P1090, "Undef"
- vivify_270:
- set $S1091, $P1090
- iseq $I1092, $S1091, "E"
- find_lex $P1093, "$/"
- $P1094 = $P1088."new"("\e", "enumcharlist" :named("pasttype"), $I1092 :named("negate"), $P1093 :named("node"))
-.annotate 'line', 278
- store_lex "$past", $P1094
-.annotate 'line', 280
- find_lex $P1095, "$/"
- find_lex $P1096, "$past"
- $P1097 = $P1095."!make"($P1096)
-.annotate 'line', 277
- .return ($P1097)
- control_1084:
+ .return ($P1068)
+ control_1056:
.local pmc exception
.get_results (exception)
- getattribute $P1098, exception, "payload"
- .return ($P1098)
+ getattribute $P1069, exception, "payload"
+ .return ($P1069)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<f>" :subid("67_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1102
-.annotate 'line', 283
- new $P1101, 'ExceptionHandler'
- set_addr $P1101, control_1100
- $P1101."handle_types"(57)
- push_eh $P1101
- .lex "self", self
- .lex "$/", param_1102
-.annotate 'line', 284
- new $P1103, "Undef"
- .lex "$past", $P1103
- get_hll_global $P1104, ["PAST"], "Regex"
-.annotate 'line', 285
- find_lex $P1105, "$/"
- unless_null $P1105, vivify_271
- $P1105 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "backslash:sym<w>" :subid("65_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1073
+.annotate 'line', 280
+ new $P1072, 'ExceptionHandler'
+ set_addr $P1072, control_1071
+ $P1072."handle_types"(.CONTROL_RETURN)
+ push_eh $P1072
+ .lex "self", self
+ .lex "$/", param_1073
+.annotate 'line', 281
+ new $P1074, "Undef"
+ .lex "$subtype", $P1074
+.annotate 'line', 282
+ new $P1075, "Undef"
+ .lex "$past", $P1075
+.annotate 'line', 281
+ find_lex $P1078, "$/"
+ unless_null $P1078, vivify_269
+ $P1078 = root_new ['parrot';'Hash']
+ vivify_269:
+ set $P1079, $P1078["sym"]
+ unless_null $P1079, vivify_270
+ new $P1079, "Undef"
+ vivify_270:
+ set $S1080, $P1079
+ iseq $I1081, $S1080, "n"
+ if $I1081, if_1077
+ find_lex $P1083, "$/"
+ unless_null $P1083, vivify_271
+ $P1083 = root_new ['parrot';'Hash']
vivify_271:
- set $P1106, $P1105["sym"]
- unless_null $P1106, vivify_272
- new $P1106, "Undef"
+ set $P1084, $P1083["sym"]
+ unless_null $P1084, vivify_272
+ new $P1084, "Undef"
vivify_272:
- set $S1107, $P1106
- iseq $I1108, $S1107, "F"
- find_lex $P1109, "$/"
- $P1110 = $P1104."new"("\f", "enumcharlist" :named("pasttype"), $I1108 :named("negate"), $P1109 :named("node"))
-.annotate 'line', 284
- store_lex "$past", $P1110
-.annotate 'line', 286
- find_lex $P1111, "$/"
- find_lex $P1112, "$past"
- $P1113 = $P1111."!make"($P1112)
+ set $S1085, $P1084
+ new $P1076, 'String'
+ set $P1076, $S1085
+ goto if_1077_end
+ if_1077:
+ new $P1082, "String"
+ assign $P1082, "nl"
+ set $P1076, $P1082
+ if_1077_end:
+ store_lex "$subtype", $P1076
+.annotate 'line', 282
+ get_hll_global $P1086, ["PAST"], "Regex"
+ find_lex $P1087, "$subtype"
+ find_lex $P1088, "$/"
+ $P1089 = $P1086."new"("charclass" :named("pasttype"), $P1087 :named("subtype"), $P1088 :named("node"))
+ store_lex "$past", $P1089
.annotate 'line', 283
- .return ($P1113)
- control_1100:
+ find_lex $P1090, "$/"
+ find_lex $P1091, "$past"
+ $P1092 = $P1090."!make"($P1091)
+.annotate 'line', 280
+ .return ($P1092)
+ control_1071:
.local pmc exception
.get_results (exception)
- getattribute $P1114, exception, "payload"
- .return ($P1114)
+ getattribute $P1093, exception, "payload"
+ .return ($P1093)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<h>" :subid("68_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1118
-.annotate 'line', 289
- new $P1117, 'ExceptionHandler'
- set_addr $P1117, control_1116
- $P1117."handle_types"(57)
- push_eh $P1117
- .lex "self", self
- .lex "$/", param_1118
-.annotate 'line', 290
- new $P1119, "Undef"
- .lex "$past", $P1119
- get_hll_global $P1120, ["PAST"], "Regex"
-.annotate 'line', 291
- find_lex $P1121, "$/"
- unless_null $P1121, vivify_273
- $P1121 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "backslash:sym<b>" :subid("66_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1097
+.annotate 'line', 286
+ new $P1096, 'ExceptionHandler'
+ set_addr $P1096, control_1095
+ $P1096."handle_types"(.CONTROL_RETURN)
+ push_eh $P1096
+ .lex "self", self
+ .lex "$/", param_1097
+.annotate 'line', 287
+ new $P1098, "Undef"
+ .lex "$past", $P1098
+ get_hll_global $P1099, ["PAST"], "Regex"
+.annotate 'line', 288
+ find_lex $P1100, "$/"
+ unless_null $P1100, vivify_273
+ $P1100 = root_new ['parrot';'Hash']
vivify_273:
- set $P1122, $P1121["sym"]
- unless_null $P1122, vivify_274
- new $P1122, "Undef"
+ set $P1101, $P1100["sym"]
+ unless_null $P1101, vivify_274
+ new $P1101, "Undef"
vivify_274:
- set $S1123, $P1122
- iseq $I1124, $S1123, "H"
- find_lex $P1125, "$/"
- $P1126 = $P1120."new"(unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", "enumcharlist" :named("pasttype"), $I1124 :named("negate"), $P1125 :named("node"))
-.annotate 'line', 290
- store_lex "$past", $P1126
-.annotate 'line', 292
- find_lex $P1127, "$/"
- find_lex $P1128, "$past"
- $P1129 = $P1127."!make"($P1128)
+ set $S1102, $P1101
+ iseq $I1103, $S1102, "B"
+ find_lex $P1104, "$/"
+ $P1105 = $P1099."new"("\b", "enumcharlist" :named("pasttype"), $I1103 :named("negate"), $P1104 :named("node"))
+.annotate 'line', 287
+ store_lex "$past", $P1105
.annotate 'line', 289
- .return ($P1129)
- control_1116:
+ find_lex $P1106, "$/"
+ find_lex $P1107, "$past"
+ $P1108 = $P1106."!make"($P1107)
+.annotate 'line', 286
+ .return ($P1108)
+ control_1095:
.local pmc exception
.get_results (exception)
- getattribute $P1130, exception, "payload"
- .return ($P1130)
+ getattribute $P1109, exception, "payload"
+ .return ($P1109)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<r>" :subid("69_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1134
-.annotate 'line', 295
- new $P1133, 'ExceptionHandler'
- set_addr $P1133, control_1132
- $P1133."handle_types"(57)
- push_eh $P1133
- .lex "self", self
- .lex "$/", param_1134
-.annotate 'line', 296
- new $P1135, "Undef"
- .lex "$past", $P1135
- get_hll_global $P1136, ["PAST"], "Regex"
-.annotate 'line', 297
- find_lex $P1137, "$/"
- unless_null $P1137, vivify_275
- $P1137 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "backslash:sym<e>" :subid("67_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1113
+.annotate 'line', 292
+ new $P1112, 'ExceptionHandler'
+ set_addr $P1112, control_1111
+ $P1112."handle_types"(.CONTROL_RETURN)
+ push_eh $P1112
+ .lex "self", self
+ .lex "$/", param_1113
+.annotate 'line', 293
+ new $P1114, "Undef"
+ .lex "$past", $P1114
+ get_hll_global $P1115, ["PAST"], "Regex"
+.annotate 'line', 294
+ find_lex $P1116, "$/"
+ unless_null $P1116, vivify_275
+ $P1116 = root_new ['parrot';'Hash']
vivify_275:
- set $P1138, $P1137["sym"]
- unless_null $P1138, vivify_276
- new $P1138, "Undef"
+ set $P1117, $P1116["sym"]
+ unless_null $P1117, vivify_276
+ new $P1117, "Undef"
vivify_276:
- set $S1139, $P1138
- iseq $I1140, $S1139, "R"
- find_lex $P1141, "$/"
- $P1142 = $P1136."new"("\r", "enumcharlist" :named("pasttype"), $I1140 :named("negate"), $P1141 :named("node"))
-.annotate 'line', 296
- store_lex "$past", $P1142
-.annotate 'line', 298
- find_lex $P1143, "$/"
- find_lex $P1144, "$past"
- $P1145 = $P1143."!make"($P1144)
+ set $S1118, $P1117
+ iseq $I1119, $S1118, "E"
+ find_lex $P1120, "$/"
+ $P1121 = $P1115."new"("\e", "enumcharlist" :named("pasttype"), $I1119 :named("negate"), $P1120 :named("node"))
+.annotate 'line', 293
+ store_lex "$past", $P1121
.annotate 'line', 295
- .return ($P1145)
- control_1132:
+ find_lex $P1122, "$/"
+ find_lex $P1123, "$past"
+ $P1124 = $P1122."!make"($P1123)
+.annotate 'line', 292
+ .return ($P1124)
+ control_1111:
.local pmc exception
.get_results (exception)
- getattribute $P1146, exception, "payload"
- .return ($P1146)
+ getattribute $P1125, exception, "payload"
+ .return ($P1125)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<t>" :subid("70_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1150
-.annotate 'line', 301
- new $P1149, 'ExceptionHandler'
- set_addr $P1149, control_1148
- $P1149."handle_types"(57)
- push_eh $P1149
- .lex "self", self
- .lex "$/", param_1150
-.annotate 'line', 302
- new $P1151, "Undef"
- .lex "$past", $P1151
- get_hll_global $P1152, ["PAST"], "Regex"
-.annotate 'line', 303
- find_lex $P1153, "$/"
- unless_null $P1153, vivify_277
- $P1153 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "backslash:sym<f>" :subid("68_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1129
+.annotate 'line', 298
+ new $P1128, 'ExceptionHandler'
+ set_addr $P1128, control_1127
+ $P1128."handle_types"(.CONTROL_RETURN)
+ push_eh $P1128
+ .lex "self", self
+ .lex "$/", param_1129
+.annotate 'line', 299
+ new $P1130, "Undef"
+ .lex "$past", $P1130
+ get_hll_global $P1131, ["PAST"], "Regex"
+.annotate 'line', 300
+ find_lex $P1132, "$/"
+ unless_null $P1132, vivify_277
+ $P1132 = root_new ['parrot';'Hash']
vivify_277:
- set $P1154, $P1153["sym"]
- unless_null $P1154, vivify_278
- new $P1154, "Undef"
+ set $P1133, $P1132["sym"]
+ unless_null $P1133, vivify_278
+ new $P1133, "Undef"
vivify_278:
- set $S1155, $P1154
- iseq $I1156, $S1155, "T"
- find_lex $P1157, "$/"
- $P1158 = $P1152."new"("\t", "enumcharlist" :named("pasttype"), $I1156 :named("negate"), $P1157 :named("node"))
-.annotate 'line', 302
- store_lex "$past", $P1158
-.annotate 'line', 304
- find_lex $P1159, "$/"
- find_lex $P1160, "$past"
- $P1161 = $P1159."!make"($P1160)
+ set $S1134, $P1133
+ iseq $I1135, $S1134, "F"
+ find_lex $P1136, "$/"
+ $P1137 = $P1131."new"("\f", "enumcharlist" :named("pasttype"), $I1135 :named("negate"), $P1136 :named("node"))
+.annotate 'line', 299
+ store_lex "$past", $P1137
.annotate 'line', 301
- .return ($P1161)
- control_1148:
+ find_lex $P1138, "$/"
+ find_lex $P1139, "$past"
+ $P1140 = $P1138."!make"($P1139)
+.annotate 'line', 298
+ .return ($P1140)
+ control_1127:
.local pmc exception
.get_results (exception)
- getattribute $P1162, exception, "payload"
- .return ($P1162)
+ getattribute $P1141, exception, "payload"
+ .return ($P1141)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<v>" :subid("71_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1166
-.annotate 'line', 307
- new $P1165, 'ExceptionHandler'
- set_addr $P1165, control_1164
- $P1165."handle_types"(57)
- push_eh $P1165
- .lex "self", self
- .lex "$/", param_1166
-.annotate 'line', 308
- new $P1167, "Undef"
- .lex "$past", $P1167
- get_hll_global $P1168, ["PAST"], "Regex"
-.annotate 'line', 310
- find_lex $P1169, "$/"
- unless_null $P1169, vivify_279
- $P1169 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "backslash:sym<h>" :subid("69_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1145
+.annotate 'line', 304
+ new $P1144, 'ExceptionHandler'
+ set_addr $P1144, control_1143
+ $P1144."handle_types"(.CONTROL_RETURN)
+ push_eh $P1144
+ .lex "self", self
+ .lex "$/", param_1145
+.annotate 'line', 305
+ new $P1146, "Undef"
+ .lex "$past", $P1146
+ get_hll_global $P1147, ["PAST"], "Regex"
+.annotate 'line', 306
+ find_lex $P1148, "$/"
+ unless_null $P1148, vivify_279
+ $P1148 = root_new ['parrot';'Hash']
vivify_279:
- set $P1170, $P1169["sym"]
- unless_null $P1170, vivify_280
- new $P1170, "Undef"
+ set $P1149, $P1148["sym"]
+ unless_null $P1149, vivify_280
+ new $P1149, "Undef"
vivify_280:
- set $S1171, $P1170
- iseq $I1172, $S1171, "V"
- find_lex $P1173, "$/"
- $P1174 = $P1168."new"(unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", "enumcharlist" :named("pasttype"), $I1172 :named("negate"), $P1173 :named("node"))
-.annotate 'line', 308
- store_lex "$past", $P1174
-.annotate 'line', 311
- find_lex $P1175, "$/"
- find_lex $P1176, "$past"
- $P1177 = $P1175."!make"($P1176)
+ set $S1150, $P1149
+ iseq $I1151, $S1150, "H"
+ find_lex $P1152, "$/"
+ $P1153 = $P1147."new"(unicode:"\t \x{a0}\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000", "enumcharlist" :named("pasttype"), $I1151 :named("negate"), $P1152 :named("node"))
+.annotate 'line', 305
+ store_lex "$past", $P1153
.annotate 'line', 307
- .return ($P1177)
- control_1164:
+ find_lex $P1154, "$/"
+ find_lex $P1155, "$past"
+ $P1156 = $P1154."!make"($P1155)
+.annotate 'line', 304
+ .return ($P1156)
+ control_1143:
.local pmc exception
.get_results (exception)
- getattribute $P1178, exception, "payload"
- .return ($P1178)
+ getattribute $P1157, exception, "payload"
+ .return ($P1157)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<o>" :subid("72_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1182
-.annotate 'line', 314
- new $P1181, 'ExceptionHandler'
- set_addr $P1181, control_1180
- $P1181."handle_types"(57)
- push_eh $P1181
+.include "except_types.pasm"
+.sub "backslash:sym<r>" :subid("70_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1161
+.annotate 'line', 310
+ new $P1160, 'ExceptionHandler'
+ set_addr $P1160, control_1159
+ $P1160."handle_types"(.CONTROL_RETURN)
+ push_eh $P1160
.lex "self", self
- .lex "$/", param_1182
-.annotate 'line', 315
- new $P1183, "Undef"
- .lex "$octlit", $P1183
-.annotate 'line', 316
- get_hll_global $P1184, ["HLL";"Actions"], "ints_to_string"
- find_lex $P1187, "$/"
- unless_null $P1187, vivify_281
- $P1187 = root_new ['parrot';'Hash']
+ .lex "$/", param_1161
+.annotate 'line', 311
+ new $P1162, "Undef"
+ .lex "$past", $P1162
+ get_hll_global $P1163, ["PAST"], "Regex"
+.annotate 'line', 312
+ find_lex $P1164, "$/"
+ unless_null $P1164, vivify_281
+ $P1164 = root_new ['parrot';'Hash']
vivify_281:
- set $P1188, $P1187["octint"]
- unless_null $P1188, vivify_282
- new $P1188, "Undef"
+ set $P1165, $P1164["sym"]
+ unless_null $P1165, vivify_282
+ new $P1165, "Undef"
vivify_282:
- unless $P1188, unless_1186
- set $P1185, $P1188
- goto unless_1186_end
- unless_1186:
- find_lex $P1189, "$/"
- unless_null $P1189, vivify_283
- $P1189 = root_new ['parrot';'Hash']
- vivify_283:
- set $P1190, $P1189["octints"]
- unless_null $P1190, vivify_284
- $P1190 = root_new ['parrot';'Hash']
- vivify_284:
- set $P1191, $P1190["octint"]
- unless_null $P1191, vivify_285
- new $P1191, "Undef"
- vivify_285:
- set $P1185, $P1191
- unless_1186_end:
- $P1192 = $P1184($P1185)
- store_lex "$octlit", $P1192
-.annotate 'line', 317
- find_lex $P1193, "$/"
- find_lex $P1196, "$/"
- unless_null $P1196, vivify_286
- $P1196 = root_new ['parrot';'Hash']
- vivify_286:
- set $P1197, $P1196["sym"]
- unless_null $P1197, vivify_287
- new $P1197, "Undef"
- vivify_287:
- set $S1198, $P1197
- iseq $I1199, $S1198, "O"
- if $I1199, if_1195
-.annotate 'line', 320
- get_hll_global $P1204, ["PAST"], "Regex"
- find_lex $P1205, "$octlit"
- find_lex $P1206, "$/"
- $P1207 = $P1204."new"($P1205, "literal" :named("pasttype"), $P1206 :named("node"))
- set $P1194, $P1207
+ set $S1166, $P1165
+ iseq $I1167, $S1166, "R"
+ find_lex $P1168, "$/"
+ $P1169 = $P1163."new"("\r", "enumcharlist" :named("pasttype"), $I1167 :named("negate"), $P1168 :named("node"))
+.annotate 'line', 311
+ store_lex "$past", $P1169
+.annotate 'line', 313
+ find_lex $P1170, "$/"
+ find_lex $P1171, "$past"
+ $P1172 = $P1170."!make"($P1171)
+.annotate 'line', 310
+ .return ($P1172)
+ control_1159:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1173, exception, "payload"
+ .return ($P1173)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "backslash:sym<t>" :subid("71_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1177
+.annotate 'line', 316
+ new $P1176, 'ExceptionHandler'
+ set_addr $P1176, control_1175
+ $P1176."handle_types"(.CONTROL_RETURN)
+ push_eh $P1176
+ .lex "self", self
+ .lex "$/", param_1177
.annotate 'line', 317
- goto if_1195_end
- if_1195:
+ new $P1178, "Undef"
+ .lex "$past", $P1178
+ get_hll_global $P1179, ["PAST"], "Regex"
.annotate 'line', 318
- get_hll_global $P1200, ["PAST"], "Regex"
- find_lex $P1201, "$octlit"
- find_lex $P1202, "$/"
- $P1203 = $P1200."new"($P1201, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1202 :named("node"))
- set $P1194, $P1203
- if_1195_end:
- $P1208 = $P1193."!make"($P1194)
-.annotate 'line', 314
- .return ($P1208)
- control_1180:
+ find_lex $P1180, "$/"
+ unless_null $P1180, vivify_283
+ $P1180 = root_new ['parrot';'Hash']
+ vivify_283:
+ set $P1181, $P1180["sym"]
+ unless_null $P1181, vivify_284
+ new $P1181, "Undef"
+ vivify_284:
+ set $S1182, $P1181
+ iseq $I1183, $S1182, "T"
+ find_lex $P1184, "$/"
+ $P1185 = $P1179."new"("\t", "enumcharlist" :named("pasttype"), $I1183 :named("negate"), $P1184 :named("node"))
+.annotate 'line', 317
+ store_lex "$past", $P1185
+.annotate 'line', 319
+ find_lex $P1186, "$/"
+ find_lex $P1187, "$past"
+ $P1188 = $P1186."!make"($P1187)
+.annotate 'line', 316
+ .return ($P1188)
+ control_1175:
.local pmc exception
.get_results (exception)
- getattribute $P1209, exception, "payload"
- .return ($P1209)
+ getattribute $P1189, exception, "payload"
+ .return ($P1189)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<x>" :subid("73_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1213
+.include "except_types.pasm"
+.sub "backslash:sym<v>" :subid("72_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1193
+.annotate 'line', 322
+ new $P1192, 'ExceptionHandler'
+ set_addr $P1192, control_1191
+ $P1192."handle_types"(.CONTROL_RETURN)
+ push_eh $P1192
+ .lex "self", self
+ .lex "$/", param_1193
.annotate 'line', 323
- new $P1212, 'ExceptionHandler'
- set_addr $P1212, control_1211
- $P1212."handle_types"(57)
- push_eh $P1212
- .lex "self", self
- .lex "$/", param_1213
-.annotate 'line', 324
- new $P1214, "Undef"
- .lex "$hexlit", $P1214
+ new $P1194, "Undef"
+ .lex "$past", $P1194
+ get_hll_global $P1195, ["PAST"], "Regex"
.annotate 'line', 325
- get_hll_global $P1215, ["HLL";"Actions"], "ints_to_string"
- find_lex $P1218, "$/"
- unless_null $P1218, vivify_288
- $P1218 = root_new ['parrot';'Hash']
+ find_lex $P1196, "$/"
+ unless_null $P1196, vivify_285
+ $P1196 = root_new ['parrot';'Hash']
+ vivify_285:
+ set $P1197, $P1196["sym"]
+ unless_null $P1197, vivify_286
+ new $P1197, "Undef"
+ vivify_286:
+ set $S1198, $P1197
+ iseq $I1199, $S1198, "V"
+ find_lex $P1200, "$/"
+ $P1201 = $P1195."new"(unicode:"\n\x{b}\f\r\x{85}\u2028\u2029", "enumcharlist" :named("pasttype"), $I1199 :named("negate"), $P1200 :named("node"))
+.annotate 'line', 323
+ store_lex "$past", $P1201
+.annotate 'line', 326
+ find_lex $P1202, "$/"
+ find_lex $P1203, "$past"
+ $P1204 = $P1202."!make"($P1203)
+.annotate 'line', 322
+ .return ($P1204)
+ control_1191:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1205, exception, "payload"
+ .return ($P1205)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "backslash:sym<o>" :subid("73_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1209
+.annotate 'line', 329
+ new $P1208, 'ExceptionHandler'
+ set_addr $P1208, control_1207
+ $P1208."handle_types"(.CONTROL_RETURN)
+ push_eh $P1208
+ .lex "self", self
+ .lex "$/", param_1209
+.annotate 'line', 330
+ new $P1210, "Undef"
+ .lex "$octlit", $P1210
+.annotate 'line', 331
+ get_hll_global $P1211, ["HLL";"Actions"], "ints_to_string"
+ find_lex $P1214, "$/"
+ unless_null $P1214, vivify_287
+ $P1214 = root_new ['parrot';'Hash']
+ vivify_287:
+ set $P1215, $P1214["octint"]
+ unless_null $P1215, vivify_288
+ new $P1215, "Undef"
vivify_288:
- set $P1219, $P1218["hexint"]
- unless_null $P1219, vivify_289
- new $P1219, "Undef"
+ unless $P1215, unless_1213
+ set $P1212, $P1215
+ goto unless_1213_end
+ unless_1213:
+ find_lex $P1216, "$/"
+ unless_null $P1216, vivify_289
+ $P1216 = root_new ['parrot';'Hash']
vivify_289:
- unless $P1219, unless_1217
- set $P1216, $P1219
- goto unless_1217_end
- unless_1217:
- find_lex $P1220, "$/"
- unless_null $P1220, vivify_290
- $P1220 = root_new ['parrot';'Hash']
+ set $P1217, $P1216["octints"]
+ unless_null $P1217, vivify_290
+ $P1217 = root_new ['parrot';'Hash']
vivify_290:
- set $P1221, $P1220["hexints"]
- unless_null $P1221, vivify_291
- $P1221 = root_new ['parrot';'Hash']
+ set $P1218, $P1217["octint"]
+ unless_null $P1218, vivify_291
+ new $P1218, "Undef"
vivify_291:
- set $P1222, $P1221["hexint"]
- unless_null $P1222, vivify_292
- new $P1222, "Undef"
+ set $P1212, $P1218
+ unless_1213_end:
+ $P1219 = $P1211($P1212)
+ store_lex "$octlit", $P1219
+.annotate 'line', 332
+ find_lex $P1220, "$/"
+ find_lex $P1223, "$/"
+ unless_null $P1223, vivify_292
+ $P1223 = root_new ['parrot';'Hash']
vivify_292:
- set $P1216, $P1222
- unless_1217_end:
- $P1223 = $P1215($P1216)
- store_lex "$hexlit", $P1223
-.annotate 'line', 326
- find_lex $P1224, "$/"
- find_lex $P1227, "$/"
- unless_null $P1227, vivify_293
- $P1227 = root_new ['parrot';'Hash']
+ set $P1224, $P1223["sym"]
+ unless_null $P1224, vivify_293
+ new $P1224, "Undef"
vivify_293:
- set $P1228, $P1227["sym"]
- unless_null $P1228, vivify_294
- new $P1228, "Undef"
- vivify_294:
- set $S1229, $P1228
- iseq $I1230, $S1229, "X"
- if $I1230, if_1226
-.annotate 'line', 329
- get_hll_global $P1235, ["PAST"], "Regex"
- find_lex $P1236, "$hexlit"
- find_lex $P1237, "$/"
- $P1238 = $P1235."new"($P1236, "literal" :named("pasttype"), $P1237 :named("node"))
- set $P1225, $P1238
-.annotate 'line', 326
- goto if_1226_end
- if_1226:
-.annotate 'line', 327
+ set $S1225, $P1224
+ iseq $I1226, $S1225, "O"
+ if $I1226, if_1222
+.annotate 'line', 335
get_hll_global $P1231, ["PAST"], "Regex"
- find_lex $P1232, "$hexlit"
+ find_lex $P1232, "$octlit"
find_lex $P1233, "$/"
- $P1234 = $P1231."new"($P1232, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1233 :named("node"))
- set $P1225, $P1234
- if_1226_end:
- $P1239 = $P1224."!make"($P1225)
-.annotate 'line', 323
- .return ($P1239)
- control_1211:
+ $P1234 = $P1231."new"($P1232, "literal" :named("pasttype"), $P1233 :named("node"))
+ set $P1221, $P1234
+.annotate 'line', 332
+ goto if_1222_end
+ if_1222:
+.annotate 'line', 333
+ get_hll_global $P1227, ["PAST"], "Regex"
+ find_lex $P1228, "$octlit"
+ find_lex $P1229, "$/"
+ $P1230 = $P1227."new"($P1228, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1229 :named("node"))
+ set $P1221, $P1230
+ if_1222_end:
+ $P1235 = $P1220."!make"($P1221)
+.annotate 'line', 329
+ .return ($P1235)
+ control_1207:
.local pmc exception
.get_results (exception)
- getattribute $P1240, exception, "payload"
- .return ($P1240)
+ getattribute $P1236, exception, "payload"
+ .return ($P1236)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<c>" :subid("74_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1244
-.annotate 'line', 332
- new $P1243, 'ExceptionHandler'
- set_addr $P1243, control_1242
- $P1243."handle_types"(57)
- push_eh $P1243
- .lex "self", self
- .lex "$/", param_1244
-.annotate 'line', 333
+.include "except_types.pasm"
+.sub "backslash:sym<x>" :subid("74_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1240
+.annotate 'line', 338
+ new $P1239, 'ExceptionHandler'
+ set_addr $P1239, control_1238
+ $P1239."handle_types"(.CONTROL_RETURN)
+ push_eh $P1239
+ .lex "self", self
+ .lex "$/", param_1240
+.annotate 'line', 339
+ new $P1241, "Undef"
+ .lex "$hexlit", $P1241
+.annotate 'line', 340
+ get_hll_global $P1242, ["HLL";"Actions"], "ints_to_string"
find_lex $P1245, "$/"
- get_hll_global $P1246, ["PAST"], "Regex"
+ unless_null $P1245, vivify_294
+ $P1245 = root_new ['parrot';'Hash']
+ vivify_294:
+ set $P1246, $P1245["hexint"]
+ unless_null $P1246, vivify_295
+ new $P1246, "Undef"
+ vivify_295:
+ unless $P1246, unless_1244
+ set $P1243, $P1246
+ goto unless_1244_end
+ unless_1244:
find_lex $P1247, "$/"
- unless_null $P1247, vivify_295
+ unless_null $P1247, vivify_296
$P1247 = root_new ['parrot';'Hash']
- vivify_295:
- set $P1248, $P1247["charspec"]
- unless_null $P1248, vivify_296
- new $P1248, "Undef"
vivify_296:
- $P1249 = $P1248."ast"()
- find_lex $P1250, "$/"
- $P1251 = $P1246."new"($P1249, "literal" :named("pasttype"), $P1250 :named("node"))
- $P1252 = $P1245."!make"($P1251)
-.annotate 'line', 332
- .return ($P1252)
- control_1242:
- .local pmc exception
- .get_results (exception)
- getattribute $P1253, exception, "payload"
- .return ($P1253)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "backslash:sym<misc>" :subid("75_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1257
-.annotate 'line', 336
- new $P1256, 'ExceptionHandler'
- set_addr $P1256, control_1255
- $P1256."handle_types"(57)
- push_eh $P1256
- .lex "self", self
- .lex "$/", param_1257
-.annotate 'line', 337
- new $P1258, "Undef"
- .lex "$past", $P1258
- get_hll_global $P1259, ["PAST"], "Regex"
+ set $P1248, $P1247["hexints"]
+ unless_null $P1248, vivify_297
+ $P1248 = root_new ['parrot';'Hash']
+ vivify_297:
+ set $P1249, $P1248["hexint"]
+ unless_null $P1249, vivify_298
+ new $P1249, "Undef"
+ vivify_298:
+ set $P1243, $P1249
+ unless_1244_end:
+ $P1250 = $P1242($P1243)
+ store_lex "$hexlit", $P1250
+.annotate 'line', 341
+ find_lex $P1251, "$/"
+ find_lex $P1254, "$/"
+ unless_null $P1254, vivify_299
+ $P1254 = root_new ['parrot';'Hash']
+ vivify_299:
+ set $P1255, $P1254["sym"]
+ unless_null $P1255, vivify_300
+ new $P1255, "Undef"
+ vivify_300:
+ set $S1256, $P1255
+ iseq $I1257, $S1256, "X"
+ if $I1257, if_1253
+.annotate 'line', 344
+ get_hll_global $P1262, ["PAST"], "Regex"
+ find_lex $P1263, "$hexlit"
+ find_lex $P1264, "$/"
+ $P1265 = $P1262."new"($P1263, "literal" :named("pasttype"), $P1264 :named("node"))
+ set $P1252, $P1265
+.annotate 'line', 341
+ goto if_1253_end
+ if_1253:
+.annotate 'line', 342
+ get_hll_global $P1258, ["PAST"], "Regex"
+ find_lex $P1259, "$hexlit"
find_lex $P1260, "$/"
- set $S1261, $P1260
- find_lex $P1262, "$/"
- $P1263 = $P1259."new"($S1261, "literal" :named("pasttype"), $P1262 :named("node"))
- store_lex "$past", $P1263
+ $P1261 = $P1258."new"($P1259, "enumcharlist" :named("pasttype"), 1 :named("negate"), $P1260 :named("node"))
+ set $P1252, $P1261
+ if_1253_end:
+ $P1266 = $P1251."!make"($P1252)
.annotate 'line', 338
- find_lex $P1264, "$/"
- find_lex $P1265, "$past"
- $P1266 = $P1264."!make"($P1265)
-.annotate 'line', 336
.return ($P1266)
- control_1255:
+ control_1238:
.local pmc exception
.get_results (exception)
getattribute $P1267, exception, "payload"
@@ -10921,375 +11097,449 @@
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<?>" :subid("76_1274022889.08438") :method :outer("11_1274022889.08438")
+.include "except_types.pasm"
+.sub "backslash:sym<c>" :subid("75_1275811482.3686") :method :outer("11_1275811482.3686")
.param pmc param_1271
-.annotate 'line', 342
+.annotate 'line', 347
new $P1270, 'ExceptionHandler'
set_addr $P1270, control_1269
- $P1270."handle_types"(57)
+ $P1270."handle_types"(.CONTROL_RETURN)
push_eh $P1270
.lex "self", self
.lex "$/", param_1271
-.annotate 'line', 343
- new $P1272, "Undef"
- .lex "$past", $P1272
-.annotate 'line', 342
- find_lex $P1273, "$past"
-.annotate 'line', 344
- find_lex $P1275, "$/"
- unless_null $P1275, vivify_297
- $P1275 = root_new ['parrot';'Hash']
- vivify_297:
- set $P1276, $P1275["assertion"]
- unless_null $P1276, vivify_298
- new $P1276, "Undef"
- vivify_298:
- if $P1276, if_1274
.annotate 'line', 348
- new $P1281, "Integer"
- assign $P1281, 0
- store_lex "$past", $P1281
- goto if_1274_end
- if_1274:
-.annotate 'line', 345
+ find_lex $P1272, "$/"
+ get_hll_global $P1273, ["PAST"], "Regex"
+ find_lex $P1274, "$/"
+ unless_null $P1274, vivify_301
+ $P1274 = root_new ['parrot';'Hash']
+ vivify_301:
+ set $P1275, $P1274["charspec"]
+ unless_null $P1275, vivify_302
+ new $P1275, "Undef"
+ vivify_302:
+ $P1276 = $P1275."ast"()
find_lex $P1277, "$/"
- unless_null $P1277, vivify_299
- $P1277 = root_new ['parrot';'Hash']
- vivify_299:
- set $P1278, $P1277["assertion"]
- unless_null $P1278, vivify_300
- new $P1278, "Undef"
- vivify_300:
- $P1279 = $P1278."ast"()
- store_lex "$past", $P1279
-.annotate 'line', 346
- find_lex $P1280, "$past"
- $P1280."subtype"("zerowidth")
- if_1274_end:
-.annotate 'line', 349
- find_lex $P1282, "$/"
- find_lex $P1283, "$past"
- $P1284 = $P1282."!make"($P1283)
-.annotate 'line', 342
- .return ($P1284)
+ $P1278 = $P1273."new"($P1276, "literal" :named("pasttype"), $P1277 :named("node"))
+ $P1279 = $P1272."!make"($P1278)
+.annotate 'line', 347
+ .return ($P1279)
control_1269:
.local pmc exception
.get_results (exception)
- getattribute $P1285, exception, "payload"
- .return ($P1285)
+ getattribute $P1280, exception, "payload"
+ .return ($P1280)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<!>" :subid("77_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1289
-.annotate 'line', 352
- new $P1288, 'ExceptionHandler'
- set_addr $P1288, control_1287
- $P1288."handle_types"(57)
- push_eh $P1288
+.include "except_types.pasm"
+.sub "backslash:sym<misc>" :subid("76_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1284
+.annotate 'line', 351
+ new $P1283, 'ExceptionHandler'
+ set_addr $P1283, control_1282
+ $P1283."handle_types"(.CONTROL_RETURN)
+ push_eh $P1283
.lex "self", self
- .lex "$/", param_1289
-.annotate 'line', 353
- new $P1290, "Undef"
- .lex "$past", $P1290
+ .lex "$/", param_1284
.annotate 'line', 352
- find_lex $P1291, "$past"
-.annotate 'line', 354
- find_lex $P1293, "$/"
- unless_null $P1293, vivify_301
- $P1293 = root_new ['parrot';'Hash']
- vivify_301:
- set $P1294, $P1293["assertion"]
- unless_null $P1294, vivify_302
- new $P1294, "Undef"
- vivify_302:
- if $P1294, if_1292
-.annotate 'line', 360
- get_hll_global $P1303, ["PAST"], "Regex"
- find_lex $P1304, "$/"
- $P1305 = $P1303."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1304 :named("node"))
- store_lex "$past", $P1305
+ new $P1285, "Undef"
+ .lex "$past", $P1285
+ get_hll_global $P1286, ["PAST"], "Regex"
+ find_lex $P1287, "$/"
+ set $S1288, $P1287
+ find_lex $P1289, "$/"
+ $P1290 = $P1286."new"($S1288, "literal" :named("pasttype"), $P1289 :named("node"))
+ store_lex "$past", $P1290
+.annotate 'line', 353
+ find_lex $P1291, "$/"
+ find_lex $P1292, "$past"
+ $P1293 = $P1291."!make"($P1292)
+.annotate 'line', 351
+ .return ($P1293)
+ control_1282:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1294, exception, "payload"
+ .return ($P1294)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "assertion:sym<?>" :subid("77_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1298
+.annotate 'line', 357
+ new $P1297, 'ExceptionHandler'
+ set_addr $P1297, control_1296
+ $P1297."handle_types"(.CONTROL_RETURN)
+ push_eh $P1297
+ .lex "self", self
+ .lex "$/", param_1298
+.annotate 'line', 358
+ new $P1299, "Undef"
+ .lex "$past", $P1299
+.annotate 'line', 357
+ find_lex $P1300, "$past"
.annotate 'line', 359
- goto if_1292_end
- if_1292:
-.annotate 'line', 355
- find_lex $P1295, "$/"
- unless_null $P1295, vivify_303
- $P1295 = root_new ['parrot';'Hash']
+ find_lex $P1302, "$/"
+ unless_null $P1302, vivify_303
+ $P1302 = root_new ['parrot';'Hash']
vivify_303:
- set $P1296, $P1295["assertion"]
- unless_null $P1296, vivify_304
- new $P1296, "Undef"
+ set $P1303, $P1302["assertion"]
+ unless_null $P1303, vivify_304
+ new $P1303, "Undef"
vivify_304:
- $P1297 = $P1296."ast"()
- store_lex "$past", $P1297
-.annotate 'line', 356
- find_lex $P1298, "$past"
- find_lex $P1299, "$past"
- $P1300 = $P1299."negate"()
- isfalse $I1301, $P1300
- $P1298."negate"($I1301)
-.annotate 'line', 357
- find_lex $P1302, "$past"
- $P1302."subtype"("zerowidth")
- if_1292_end:
-.annotate 'line', 362
- find_lex $P1306, "$/"
+ if $P1303, if_1301
+.annotate 'line', 363
+ new $P1308, "Integer"
+ assign $P1308, 0
+ store_lex "$past", $P1308
+ goto if_1301_end
+ if_1301:
+.annotate 'line', 360
+ find_lex $P1304, "$/"
+ unless_null $P1304, vivify_305
+ $P1304 = root_new ['parrot';'Hash']
+ vivify_305:
+ set $P1305, $P1304["assertion"]
+ unless_null $P1305, vivify_306
+ new $P1305, "Undef"
+ vivify_306:
+ $P1306 = $P1305."ast"()
+ store_lex "$past", $P1306
+.annotate 'line', 361
find_lex $P1307, "$past"
- $P1308 = $P1306."!make"($P1307)
-.annotate 'line', 352
- .return ($P1308)
- control_1287:
+ $P1307."subtype"("zerowidth")
+ if_1301_end:
+.annotate 'line', 364
+ find_lex $P1309, "$/"
+ find_lex $P1310, "$past"
+ $P1311 = $P1309."!make"($P1310)
+.annotate 'line', 357
+ .return ($P1311)
+ control_1296:
.local pmc exception
.get_results (exception)
- getattribute $P1309, exception, "payload"
- .return ($P1309)
+ getattribute $P1312, exception, "payload"
+ .return ($P1312)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<method>" :subid("78_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1313
-.annotate 'line', 365
- new $P1312, 'ExceptionHandler'
- set_addr $P1312, control_1311
- $P1312."handle_types"(57)
- push_eh $P1312
+.include "except_types.pasm"
+.sub "assertion:sym<!>" :subid("78_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1316
+.annotate 'line', 367
+ new $P1315, 'ExceptionHandler'
+ set_addr $P1315, control_1314
+ $P1315."handle_types"(.CONTROL_RETURN)
+ push_eh $P1315
.lex "self", self
- .lex "$/", param_1313
-.annotate 'line', 366
- new $P1314, "Undef"
- .lex "$past", $P1314
- find_lex $P1315, "$/"
- unless_null $P1315, vivify_305
- $P1315 = root_new ['parrot';'Hash']
- vivify_305:
- set $P1316, $P1315["assertion"]
- unless_null $P1316, vivify_306
- new $P1316, "Undef"
- vivify_306:
- $P1317 = $P1316."ast"()
- store_lex "$past", $P1317
+ .lex "$/", param_1316
+.annotate 'line', 368
+ new $P1317, "Undef"
+ .lex "$past", $P1317
.annotate 'line', 367
find_lex $P1318, "$past"
- $P1318."subtype"("method")
-.annotate 'line', 368
- find_lex $P1319, "$past"
- $P1319."name"("")
.annotate 'line', 369
find_lex $P1320, "$/"
- find_lex $P1321, "$past"
- $P1322 = $P1320."!make"($P1321)
-.annotate 'line', 365
- .return ($P1322)
- control_1311:
+ unless_null $P1320, vivify_307
+ $P1320 = root_new ['parrot';'Hash']
+ vivify_307:
+ set $P1321, $P1320["assertion"]
+ unless_null $P1321, vivify_308
+ new $P1321, "Undef"
+ vivify_308:
+ if $P1321, if_1319
+.annotate 'line', 375
+ get_hll_global $P1330, ["PAST"], "Regex"
+ find_lex $P1331, "$/"
+ $P1332 = $P1330."new"("anchor" :named("pasttype"), "fail" :named("subtype"), $P1331 :named("node"))
+ store_lex "$past", $P1332
+.annotate 'line', 374
+ goto if_1319_end
+ if_1319:
+.annotate 'line', 370
+ find_lex $P1322, "$/"
+ unless_null $P1322, vivify_309
+ $P1322 = root_new ['parrot';'Hash']
+ vivify_309:
+ set $P1323, $P1322["assertion"]
+ unless_null $P1323, vivify_310
+ new $P1323, "Undef"
+ vivify_310:
+ $P1324 = $P1323."ast"()
+ store_lex "$past", $P1324
+.annotate 'line', 371
+ find_lex $P1325, "$past"
+ find_lex $P1326, "$past"
+ $P1327 = $P1326."negate"()
+ isfalse $I1328, $P1327
+ $P1325."negate"($I1328)
+.annotate 'line', 372
+ find_lex $P1329, "$past"
+ $P1329."subtype"("zerowidth")
+ if_1319_end:
+.annotate 'line', 377
+ find_lex $P1333, "$/"
+ find_lex $P1334, "$past"
+ $P1335 = $P1333."!make"($P1334)
+.annotate 'line', 367
+ .return ($P1335)
+ control_1314:
.local pmc exception
.get_results (exception)
- getattribute $P1323, exception, "payload"
- .return ($P1323)
+ getattribute $P1336, exception, "payload"
+ .return ($P1336)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<name>" :subid("79_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1327
-.annotate 'line', 372
- .const 'Sub' $P1385 = "81_1274022889.08438"
- capture_lex $P1385
- .const 'Sub' $P1349 = "80_1274022889.08438"
- capture_lex $P1349
- new $P1326, 'ExceptionHandler'
- set_addr $P1326, control_1325
- $P1326."handle_types"(57)
- push_eh $P1326
- .lex "self", self
- .lex "$/", param_1327
-.annotate 'line', 373
- new $P1328, "Undef"
- .lex "$name", $P1328
-.annotate 'line', 374
- new $P1329, "Undef"
- .lex "$past", $P1329
-.annotate 'line', 373
- find_lex $P1330, "$/"
- unless_null $P1330, vivify_307
- $P1330 = root_new ['parrot';'Hash']
- vivify_307:
- set $P1331, $P1330["longname"]
- unless_null $P1331, vivify_308
- new $P1331, "Undef"
- vivify_308:
- set $S1332, $P1331
- new $P1333, 'String'
- set $P1333, $S1332
- store_lex "$name", $P1333
- find_lex $P1334, "$past"
-.annotate 'line', 375
- find_lex $P1336, "$/"
- unless_null $P1336, vivify_309
- $P1336 = root_new ['parrot';'Hash']
- vivify_309:
- set $P1337, $P1336["assertion"]
- unless_null $P1337, vivify_310
- new $P1337, "Undef"
- vivify_310:
- if $P1337, if_1335
-.annotate 'line', 379
- find_lex $P1345, "$name"
- set $S1346, $P1345
- iseq $I1347, $S1346, "sym"
- if $I1347, if_1344
-.annotate 'line', 395
- get_hll_global $P1359, ["PAST"], "Regex"
- find_lex $P1360, "$name"
- find_lex $P1361, "$name"
- find_lex $P1362, "$/"
- $P1363 = $P1359."new"($P1360, $P1361 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1362 :named("node"))
- store_lex "$past", $P1363
-.annotate 'line', 397
- find_lex $P1365, "$/"
- unless_null $P1365, vivify_311
- $P1365 = root_new ['parrot';'Hash']
+.include "except_types.pasm"
+.sub "assertion:sym<method>" :subid("79_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1340
+.annotate 'line', 380
+ new $P1339, 'ExceptionHandler'
+ set_addr $P1339, control_1338
+ $P1339."handle_types"(.CONTROL_RETURN)
+ push_eh $P1339
+ .lex "self", self
+ .lex "$/", param_1340
+.annotate 'line', 381
+ new $P1341, "Undef"
+ .lex "$past", $P1341
+ find_lex $P1342, "$/"
+ unless_null $P1342, vivify_311
+ $P1342 = root_new ['parrot';'Hash']
vivify_311:
- set $P1366, $P1365["nibbler"]
- unless_null $P1366, vivify_312
- new $P1366, "Undef"
+ set $P1343, $P1342["assertion"]
+ unless_null $P1343, vivify_312
+ new $P1343, "Undef"
vivify_312:
- if $P1366, if_1364
-.annotate 'line', 400
- find_lex $P1374, "$/"
- unless_null $P1374, vivify_313
- $P1374 = root_new ['parrot';'Hash']
+ $P1344 = $P1343."ast"()
+ store_lex "$past", $P1344
+.annotate 'line', 382
+ find_lex $P1345, "$past"
+ $P1345."subtype"("method")
+.annotate 'line', 383
+ find_lex $P1346, "$past"
+ $P1346."name"("")
+.annotate 'line', 384
+ find_lex $P1347, "$/"
+ find_lex $P1348, "$past"
+ $P1349 = $P1347."!make"($P1348)
+.annotate 'line', 380
+ .return ($P1349)
+ control_1338:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1350, exception, "payload"
+ .return ($P1350)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.include "except_types.pasm"
+.sub "assertion:sym<name>" :subid("80_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1354
+.annotate 'line', 387
+ .const 'Sub' $P1412 = "82_1275811482.3686"
+ capture_lex $P1412
+ .const 'Sub' $P1376 = "81_1275811482.3686"
+ capture_lex $P1376
+ new $P1353, 'ExceptionHandler'
+ set_addr $P1353, control_1352
+ $P1353."handle_types"(.CONTROL_RETURN)
+ push_eh $P1353
+ .lex "self", self
+ .lex "$/", param_1354
+.annotate 'line', 388
+ new $P1355, "Undef"
+ .lex "$name", $P1355
+.annotate 'line', 389
+ new $P1356, "Undef"
+ .lex "$past", $P1356
+.annotate 'line', 388
+ find_lex $P1357, "$/"
+ unless_null $P1357, vivify_313
+ $P1357 = root_new ['parrot';'Hash']
vivify_313:
- set $P1375, $P1374["arglist"]
- unless_null $P1375, vivify_314
- new $P1375, "Undef"
+ set $P1358, $P1357["longname"]
+ unless_null $P1358, vivify_314
+ new $P1358, "Undef"
vivify_314:
- unless $P1375, if_1373_end
-.annotate 'line', 401
- find_lex $P1377, "$/"
- unless_null $P1377, vivify_315
- $P1377 = root_new ['parrot';'Hash']
+ set $S1359, $P1358
+ new $P1360, 'String'
+ set $P1360, $S1359
+ store_lex "$name", $P1360
+ find_lex $P1361, "$past"
+.annotate 'line', 390
+ find_lex $P1363, "$/"
+ unless_null $P1363, vivify_315
+ $P1363 = root_new ['parrot';'Hash']
vivify_315:
- set $P1378, $P1377["arglist"]
- unless_null $P1378, vivify_316
- $P1378 = root_new ['parrot';'ResizablePMCArray']
+ set $P1364, $P1363["assertion"]
+ unless_null $P1364, vivify_316
+ new $P1364, "Undef"
vivify_316:
- set $P1379, $P1378[0]
- unless_null $P1379, vivify_317
- new $P1379, "Undef"
+ if $P1364, if_1362
+.annotate 'line', 394
+ find_lex $P1372, "$name"
+ set $S1373, $P1372
+ iseq $I1374, $S1373, "sym"
+ if $I1374, if_1371
+.annotate 'line', 410
+ get_hll_global $P1386, ["PAST"], "Regex"
+ find_lex $P1387, "$name"
+ find_lex $P1388, "$name"
+ find_lex $P1389, "$/"
+ $P1390 = $P1386."new"($P1387, $P1388 :named("name"), "subrule" :named("pasttype"), "capture" :named("subtype"), $P1389 :named("node"))
+ store_lex "$past", $P1390
+.annotate 'line', 412
+ find_lex $P1392, "$/"
+ unless_null $P1392, vivify_317
+ $P1392 = root_new ['parrot';'Hash']
vivify_317:
- $P1380 = $P1379."ast"()
- $P1381 = $P1380."list"()
- defined $I1382, $P1381
- unless $I1382, for_undef_318
- iter $P1376, $P1381
- new $P1391, 'ExceptionHandler'
- set_addr $P1391, loop1390_handler
- $P1391."handle_types"(64, 66, 65)
- push_eh $P1391
- loop1390_test:
- unless $P1376, loop1390_done
- shift $P1383, $P1376
- loop1390_redo:
- .const 'Sub' $P1385 = "81_1274022889.08438"
- capture_lex $P1385
- $P1385($P1383)
- loop1390_next:
- goto loop1390_test
- loop1390_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1392, exception, 'type'
- eq $P1392, 64, loop1390_next
- eq $P1392, 66, loop1390_redo
- loop1390_done:
- pop_eh
- for_undef_318:
- if_1373_end:
-.annotate 'line', 400
- goto if_1364_end
- if_1364:
-.annotate 'line', 398
- find_lex $P1367, "$past"
- find_lex $P1368, "$/"
- unless_null $P1368, vivify_319
- $P1368 = root_new ['parrot';'Hash']
+ set $P1393, $P1392["nibbler"]
+ unless_null $P1393, vivify_318
+ new $P1393, "Undef"
+ vivify_318:
+ if $P1393, if_1391
+.annotate 'line', 415
+ find_lex $P1401, "$/"
+ unless_null $P1401, vivify_319
+ $P1401 = root_new ['parrot';'Hash']
vivify_319:
- set $P1369, $P1368["nibbler"]
- unless_null $P1369, vivify_320
- $P1369 = root_new ['parrot';'ResizablePMCArray']
+ set $P1402, $P1401["arglist"]
+ unless_null $P1402, vivify_320
+ new $P1402, "Undef"
vivify_320:
- set $P1370, $P1369[0]
- unless_null $P1370, vivify_321
- new $P1370, "Undef"
+ unless $P1402, if_1400_end
+.annotate 'line', 416
+ find_lex $P1404, "$/"
+ unless_null $P1404, vivify_321
+ $P1404 = root_new ['parrot';'Hash']
vivify_321:
- $P1371 = $P1370."ast"()
- $P1372 = "buildsub"($P1371)
- $P1367."push"($P1372)
- if_1364_end:
-.annotate 'line', 394
- goto if_1344_end
- if_1344:
-.annotate 'line', 379
- .const 'Sub' $P1349 = "80_1274022889.08438"
- capture_lex $P1349
- $P1349()
- if_1344_end:
- goto if_1335_end
- if_1335:
-.annotate 'line', 376
- find_lex $P1338, "$/"
- unless_null $P1338, vivify_322
- $P1338 = root_new ['parrot';'Hash']
+ set $P1405, $P1404["arglist"]
+ unless_null $P1405, vivify_322
+ $P1405 = root_new ['parrot';'ResizablePMCArray']
vivify_322:
- set $P1339, $P1338["assertion"]
- unless_null $P1339, vivify_323
- $P1339 = root_new ['parrot';'ResizablePMCArray']
+ set $P1406, $P1405[0]
+ unless_null $P1406, vivify_323
+ new $P1406, "Undef"
vivify_323:
- set $P1340, $P1339[0]
- unless_null $P1340, vivify_324
- new $P1340, "Undef"
- vivify_324:
- $P1341 = $P1340."ast"()
- store_lex "$past", $P1341
-.annotate 'line', 377
- find_lex $P1342, "$past"
- find_lex $P1343, "$name"
- "subrule_alias"($P1342, $P1343)
- if_1335_end:
-.annotate 'line', 404
- find_lex $P1393, "$/"
+ $P1407 = $P1406."ast"()
+ $P1408 = $P1407."list"()
+ defined $I1409, $P1408
+ unless $I1409, for_undef_324
+ iter $P1403, $P1408
+ new $P1418, 'ExceptionHandler'
+ set_addr $P1418, loop1417_handler
+ $P1418."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1418
+ loop1417_test:
+ unless $P1403, loop1417_done
+ shift $P1410, $P1403
+ loop1417_redo:
+ .const 'Sub' $P1412 = "82_1275811482.3686"
+ capture_lex $P1412
+ $P1412($P1410)
+ loop1417_next:
+ goto loop1417_test
+ loop1417_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1419, exception, 'type'
+ eq $P1419, .CONTROL_LOOP_NEXT, loop1417_next
+ eq $P1419, .CONTROL_LOOP_REDO, loop1417_redo
+ loop1417_done:
+ pop_eh
+ for_undef_324:
+ if_1400_end:
+.annotate 'line', 415
+ goto if_1391_end
+ if_1391:
+.annotate 'line', 413
find_lex $P1394, "$past"
- $P1395 = $P1393."!make"($P1394)
-.annotate 'line', 372
- .return ($P1395)
- control_1325:
+ find_lex $P1395, "$/"
+ unless_null $P1395, vivify_325
+ $P1395 = root_new ['parrot';'Hash']
+ vivify_325:
+ set $P1396, $P1395["nibbler"]
+ unless_null $P1396, vivify_326
+ $P1396 = root_new ['parrot';'ResizablePMCArray']
+ vivify_326:
+ set $P1397, $P1396[0]
+ unless_null $P1397, vivify_327
+ new $P1397, "Undef"
+ vivify_327:
+ $P1398 = $P1397."ast"()
+ $P1399 = "buildsub"($P1398)
+ $P1394."push"($P1399)
+ if_1391_end:
+.annotate 'line', 409
+ goto if_1371_end
+ if_1371:
+.annotate 'line', 394
+ .const 'Sub' $P1376 = "81_1275811482.3686"
+ capture_lex $P1376
+ $P1376()
+ if_1371_end:
+ goto if_1362_end
+ if_1362:
+.annotate 'line', 391
+ find_lex $P1365, "$/"
+ unless_null $P1365, vivify_328
+ $P1365 = root_new ['parrot';'Hash']
+ vivify_328:
+ set $P1366, $P1365["assertion"]
+ unless_null $P1366, vivify_329
+ $P1366 = root_new ['parrot';'ResizablePMCArray']
+ vivify_329:
+ set $P1367, $P1366[0]
+ unless_null $P1367, vivify_330
+ new $P1367, "Undef"
+ vivify_330:
+ $P1368 = $P1367."ast"()
+ store_lex "$past", $P1368
+.annotate 'line', 392
+ find_lex $P1369, "$past"
+ find_lex $P1370, "$name"
+ "subrule_alias"($P1369, $P1370)
+ if_1362_end:
+.annotate 'line', 419
+ find_lex $P1420, "$/"
+ find_lex $P1421, "$past"
+ $P1422 = $P1420."!make"($P1421)
+.annotate 'line', 387
+ .return ($P1422)
+ control_1352:
.local pmc exception
.get_results (exception)
- getattribute $P1396, exception, "payload"
- .return ($P1396)
+ getattribute $P1423, exception, "payload"
+ .return ($P1423)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1384" :anon :subid("81_1274022889.08438") :outer("79_1274022889.08438")
- .param pmc param_1386
-.annotate 'line', 401
- .lex "$_", param_1386
- find_lex $P1387, "$past"
- find_lex $P1388, "$_"
- $P1389 = $P1387."push"($P1388)
- .return ($P1389)
+.sub "_block1411" :anon :subid("82_1275811482.3686") :outer("80_1275811482.3686")
+ .param pmc param_1413
+.annotate 'line', 416
+ .lex "$_", param_1413
+ find_lex $P1414, "$past"
+ find_lex $P1415, "$_"
+ $P1416 = $P1414."push"($P1415)
+ .return ($P1416)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1348" :anon :subid("80_1274022889.08438") :outer("79_1274022889.08438")
-.annotate 'line', 380
- new $P1350, "Undef"
- .lex "$regexsym", $P1350
+.sub "_block1375" :anon :subid("81_1275811482.3686") :outer("80_1275811482.3686")
+.annotate 'line', 395
+ new $P1377, "Undef"
+ .lex "$regexsym", $P1377
$P0 = get_global '$REGEXNAME'
$S0 = $P0
@@ -11297,388 +11547,390 @@
add $I0, 5
$S0 = substr $S0, $I0
$S0 = chopn $S0, 1
- $P1351 = box $S0
+ $P1378 = box $S0
- store_lex "$regexsym", $P1351
-.annotate 'line', 389
- get_hll_global $P1352, ["PAST"], "Regex"
-.annotate 'line', 390
- get_hll_global $P1353, ["PAST"], "Regex"
- find_lex $P1354, "$regexsym"
- $P1355 = $P1353."new"($P1354, "literal" :named("pasttype"))
- find_lex $P1356, "$name"
- find_lex $P1357, "$/"
- $P1358 = $P1352."new"($P1355, $P1356 :named("name"), "subcapture" :named("pasttype"), $P1357 :named("node"))
-.annotate 'line', 389
- store_lex "$past", $P1358
-.annotate 'line', 379
- .return ($P1358)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "assertion:sym<[>" :subid("82_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1400
-.annotate 'line', 407
- .const 'Sub' $P1435 = "83_1274022889.08438"
- capture_lex $P1435
- new $P1399, 'ExceptionHandler'
- set_addr $P1399, control_1398
- $P1399."handle_types"(57)
- push_eh $P1399
- .lex "self", self
- .lex "$/", param_1400
-.annotate 'line', 408
- new $P1401, "Undef"
- .lex "$clist", $P1401
-.annotate 'line', 409
- new $P1402, "Undef"
- .lex "$past", $P1402
-.annotate 'line', 418
- new $P1403, "Undef"
- .lex "$i", $P1403
-.annotate 'line', 419
- new $P1404, "Undef"
- .lex "$n", $P1404
-.annotate 'line', 408
- find_lex $P1405, "$/"
- unless_null $P1405, vivify_325
- $P1405 = root_new ['parrot';'Hash']
- vivify_325:
- set $P1406, $P1405["cclass_elem"]
- unless_null $P1406, vivify_326
- new $P1406, "Undef"
- vivify_326:
- store_lex "$clist", $P1406
-.annotate 'line', 409
- find_lex $P1407, "$clist"
- unless_null $P1407, vivify_327
- $P1407 = root_new ['parrot';'ResizablePMCArray']
- vivify_327:
- set $P1408, $P1407[0]
- unless_null $P1408, vivify_328
- new $P1408, "Undef"
- vivify_328:
- $P1409 = $P1408."ast"()
- store_lex "$past", $P1409
-.annotate 'line', 410
- find_lex $P1413, "$past"
- $P1414 = $P1413."negate"()
- if $P1414, if_1412
- set $P1411, $P1414
- goto if_1412_end
- if_1412:
- find_lex $P1415, "$past"
- $S1416 = $P1415."pasttype"()
- iseq $I1417, $S1416, "subrule"
- new $P1411, 'Integer'
- set $P1411, $I1417
- if_1412_end:
- unless $P1411, if_1410_end
-.annotate 'line', 411
- find_lex $P1418, "$past"
- $P1418."subtype"("zerowidth")
-.annotate 'line', 412
- get_hll_global $P1419, ["PAST"], "Regex"
- find_lex $P1420, "$past"
-.annotate 'line', 414
- get_hll_global $P1421, ["PAST"], "Regex"
- $P1422 = $P1421."new"("charclass" :named("pasttype"), "." :named("subtype"))
- find_lex $P1423, "$/"
- $P1424 = $P1419."new"($P1420, $P1422, $P1423 :named("node"))
-.annotate 'line', 412
- store_lex "$past", $P1424
- if_1410_end:
-.annotate 'line', 418
- new $P1425, "Integer"
- assign $P1425, 1
- store_lex "$i", $P1425
-.annotate 'line', 419
- find_lex $P1426, "$clist"
- set $N1427, $P1426
- new $P1428, 'Float'
- set $P1428, $N1427
- store_lex "$n", $P1428
-.annotate 'line', 420
- new $P1459, 'ExceptionHandler'
- set_addr $P1459, loop1458_handler
- $P1459."handle_types"(64, 66, 65)
- push_eh $P1459
- loop1458_test:
- find_lex $P1429, "$i"
- set $N1430, $P1429
- find_lex $P1431, "$n"
- set $N1432, $P1431
- islt $I1433, $N1430, $N1432
- unless $I1433, loop1458_done
- loop1458_redo:
- .const 'Sub' $P1435 = "83_1274022889.08438"
- capture_lex $P1435
- $P1435()
- loop1458_next:
- goto loop1458_test
- loop1458_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1460, exception, 'type'
- eq $P1460, 64, loop1458_next
- eq $P1460, 66, loop1458_redo
- loop1458_done:
- pop_eh
-.annotate 'line', 431
- find_lex $P1461, "$/"
- find_lex $P1462, "$past"
- $P1463 = $P1461."!make"($P1462)
-.annotate 'line', 407
- .return ($P1463)
- control_1398:
- .local pmc exception
- .get_results (exception)
- getattribute $P1464, exception, "payload"
- .return ($P1464)
+ store_lex "$regexsym", $P1378
+.annotate 'line', 404
+ get_hll_global $P1379, ["PAST"], "Regex"
+.annotate 'line', 405
+ get_hll_global $P1380, ["PAST"], "Regex"
+ find_lex $P1381, "$regexsym"
+ $P1382 = $P1380."new"($P1381, "literal" :named("pasttype"))
+ find_lex $P1383, "$name"
+ find_lex $P1384, "$/"
+ $P1385 = $P1379."new"($P1382, $P1383 :named("name"), "subcapture" :named("pasttype"), $P1384 :named("node"))
+.annotate 'line', 404
+ store_lex "$past", $P1385
+.annotate 'line', 394
+ .return ($P1385)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1434" :anon :subid("83_1274022889.08438") :outer("82_1274022889.08438")
-.annotate 'line', 421
- new $P1436, "Undef"
- .lex "$ast", $P1436
- find_lex $P1437, "$i"
- set $I1438, $P1437
- find_lex $P1439, "$clist"
- unless_null $P1439, vivify_329
- $P1439 = root_new ['parrot';'ResizablePMCArray']
- vivify_329:
- set $P1440, $P1439[$I1438]
- unless_null $P1440, vivify_330
- new $P1440, "Undef"
- vivify_330:
- $P1441 = $P1440."ast"()
- store_lex "$ast", $P1441
+.include "except_types.pasm"
+.sub "assertion:sym<[>" :subid("83_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1427
.annotate 'line', 422
- find_lex $P1443, "$ast"
- $P1444 = $P1443."negate"()
- if $P1444, if_1442
-.annotate 'line', 427
- get_hll_global $P1451, ["PAST"], "Regex"
- find_lex $P1452, "$past"
- find_lex $P1453, "$ast"
- find_lex $P1454, "$/"
- $P1455 = $P1451."new"($P1452, $P1453, "alt" :named("pasttype"), $P1454 :named("node"))
- store_lex "$past", $P1455
-.annotate 'line', 426
- goto if_1442_end
- if_1442:
+ .const 'Sub' $P1462 = "84_1275811482.3686"
+ capture_lex $P1462
+ new $P1426, 'ExceptionHandler'
+ set_addr $P1426, control_1425
+ $P1426."handle_types"(.CONTROL_RETURN)
+ push_eh $P1426
+ .lex "self", self
+ .lex "$/", param_1427
.annotate 'line', 423
- find_lex $P1445, "$ast"
- $P1445."subtype"("zerowidth")
+ new $P1428, "Undef"
+ .lex "$clist", $P1428
.annotate 'line', 424
- get_hll_global $P1446, ["PAST"], "Regex"
- find_lex $P1447, "$ast"
- find_lex $P1448, "$past"
- find_lex $P1449, "$/"
- $P1450 = $P1446."new"($P1447, $P1448, "concat" :named("pasttype"), $P1449 :named("node"))
- store_lex "$past", $P1450
- if_1442_end:
-.annotate 'line', 429
- find_lex $P1456, "$i"
- add $P1457, $P1456, 1
- store_lex "$i", $P1457
-.annotate 'line', 420
- .return ($P1457)
-.end
-
-
-.namespace ["Regex";"P6Regex";"Actions"]
-.sub "cclass_elem" :subid("84_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1468
+ new $P1429, "Undef"
+ .lex "$past", $P1429
+.annotate 'line', 433
+ new $P1430, "Undef"
+ .lex "$i", $P1430
.annotate 'line', 434
- .const 'Sub' $P1493 = "86_1274022889.08438"
- capture_lex $P1493
- .const 'Sub' $P1477 = "85_1274022889.08438"
- capture_lex $P1477
- new $P1467, 'ExceptionHandler'
- set_addr $P1467, control_1466
- $P1467."handle_types"(57)
- push_eh $P1467
- .lex "self", self
- .lex "$/", param_1468
-.annotate 'line', 435
- new $P1469, "Undef"
- .lex "$str", $P1469
-.annotate 'line', 436
- new $P1470, "Undef"
- .lex "$past", $P1470
-.annotate 'line', 435
- new $P1471, "String"
- assign $P1471, ""
- store_lex "$str", $P1471
- find_lex $P1472, "$past"
-.annotate 'line', 437
- find_lex $P1474, "$/"
- unless_null $P1474, vivify_331
- $P1474 = root_new ['parrot';'Hash']
+ new $P1431, "Undef"
+ .lex "$n", $P1431
+.annotate 'line', 423
+ find_lex $P1432, "$/"
+ unless_null $P1432, vivify_331
+ $P1432 = root_new ['parrot';'Hash']
vivify_331:
- set $P1475, $P1474["name"]
- unless_null $P1475, vivify_332
- new $P1475, "Undef"
+ set $P1433, $P1432["cclass_elem"]
+ unless_null $P1433, vivify_332
+ new $P1433, "Undef"
vivify_332:
- if $P1475, if_1473
-.annotate 'line', 441
- find_lex $P1488, "$/"
- unless_null $P1488, vivify_333
- $P1488 = root_new ['parrot';'Hash']
+ store_lex "$clist", $P1433
+.annotate 'line', 424
+ find_lex $P1434, "$clist"
+ unless_null $P1434, vivify_333
+ $P1434 = root_new ['parrot';'ResizablePMCArray']
vivify_333:
- set $P1489, $P1488["charspec"]
- unless_null $P1489, vivify_334
- new $P1489, "Undef"
+ set $P1435, $P1434[0]
+ unless_null $P1435, vivify_334
+ new $P1435, "Undef"
vivify_334:
- defined $I1490, $P1489
- unless $I1490, for_undef_335
- iter $P1487, $P1489
- new $P1519, 'ExceptionHandler'
- set_addr $P1519, loop1518_handler
- $P1519."handle_types"(64, 66, 65)
- push_eh $P1519
- loop1518_test:
- unless $P1487, loop1518_done
- shift $P1491, $P1487
- loop1518_redo:
- .const 'Sub' $P1493 = "86_1274022889.08438"
- capture_lex $P1493
- $P1493($P1491)
- loop1518_next:
- goto loop1518_test
- loop1518_handler:
- .local pmc exception
- .get_results (exception)
- getattribute $P1520, exception, 'type'
- eq $P1520, 64, loop1518_next
- eq $P1520, 66, loop1518_redo
- loop1518_done:
- pop_eh
- for_undef_335:
-.annotate 'line', 466
- get_hll_global $P1521, ["PAST"], "Regex"
- find_lex $P1522, "$str"
- find_lex $P1523, "$/"
- $P1524 = $P1521."new"($P1522, "enumcharlist" :named("pasttype"), $P1523 :named("node"))
- store_lex "$past", $P1524
-.annotate 'line', 440
- goto if_1473_end
- if_1473:
-.annotate 'line', 437
- .const 'Sub' $P1477 = "85_1274022889.08438"
- capture_lex $P1477
- $P1477()
- if_1473_end:
-.annotate 'line', 468
- find_lex $P1525, "$past"
- find_lex $P1526, "$/"
- unless_null $P1526, vivify_347
- $P1526 = root_new ['parrot';'Hash']
- vivify_347:
- set $P1527, $P1526["sign"]
- unless_null $P1527, vivify_348
- new $P1527, "Undef"
- vivify_348:
- set $S1528, $P1527
- iseq $I1529, $S1528, "-"
- $P1525."negate"($I1529)
-.annotate 'line', 469
- find_lex $P1530, "$/"
- find_lex $P1531, "$past"
- $P1532 = $P1530."!make"($P1531)
+ $P1436 = $P1435."ast"()
+ store_lex "$past", $P1436
+.annotate 'line', 425
+ find_lex $P1440, "$past"
+ $P1441 = $P1440."negate"()
+ if $P1441, if_1439
+ set $P1438, $P1441
+ goto if_1439_end
+ if_1439:
+ find_lex $P1442, "$past"
+ $S1443 = $P1442."pasttype"()
+ iseq $I1444, $S1443, "subrule"
+ new $P1438, 'Integer'
+ set $P1438, $I1444
+ if_1439_end:
+ unless $P1438, if_1437_end
+.annotate 'line', 426
+ find_lex $P1445, "$past"
+ $P1445."subtype"("zerowidth")
+.annotate 'line', 427
+ get_hll_global $P1446, ["PAST"], "Regex"
+ find_lex $P1447, "$past"
+.annotate 'line', 429
+ get_hll_global $P1448, ["PAST"], "Regex"
+ $P1449 = $P1448."new"("charclass" :named("pasttype"), "." :named("subtype"))
+ find_lex $P1450, "$/"
+ $P1451 = $P1446."new"($P1447, $P1449, $P1450 :named("node"))
+.annotate 'line', 427
+ store_lex "$past", $P1451
+ if_1437_end:
+.annotate 'line', 433
+ new $P1452, "Integer"
+ assign $P1452, 1
+ store_lex "$i", $P1452
.annotate 'line', 434
- .return ($P1532)
- control_1466:
+ find_lex $P1453, "$clist"
+ set $N1454, $P1453
+ new $P1455, 'Float'
+ set $P1455, $N1454
+ store_lex "$n", $P1455
+.annotate 'line', 435
+ new $P1486, 'ExceptionHandler'
+ set_addr $P1486, loop1485_handler
+ $P1486."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1486
+ loop1485_test:
+ find_lex $P1456, "$i"
+ set $N1457, $P1456
+ find_lex $P1458, "$n"
+ set $N1459, $P1458
+ islt $I1460, $N1457, $N1459
+ unless $I1460, loop1485_done
+ loop1485_redo:
+ .const 'Sub' $P1462 = "84_1275811482.3686"
+ capture_lex $P1462
+ $P1462()
+ loop1485_next:
+ goto loop1485_test
+ loop1485_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1487, exception, 'type'
+ eq $P1487, .CONTROL_LOOP_NEXT, loop1485_next
+ eq $P1487, .CONTROL_LOOP_REDO, loop1485_redo
+ loop1485_done:
+ pop_eh
+.annotate 'line', 446
+ find_lex $P1488, "$/"
+ find_lex $P1489, "$past"
+ $P1490 = $P1488."!make"($P1489)
+.annotate 'line', 422
+ .return ($P1490)
+ control_1425:
.local pmc exception
.get_results (exception)
- getattribute $P1533, exception, "payload"
- .return ($P1533)
+ getattribute $P1491, exception, "payload"
+ .return ($P1491)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1492" :anon :subid("86_1274022889.08438") :outer("84_1274022889.08438")
- .param pmc param_1494
-.annotate 'line', 441
- .const 'Sub' $P1500 = "87_1274022889.08438"
- capture_lex $P1500
- .lex "$_", param_1494
-.annotate 'line', 442
- find_lex $P1497, "$_"
- unless_null $P1497, vivify_336
- $P1497 = root_new ['parrot';'ResizablePMCArray']
+.sub "_block1461" :anon :subid("84_1275811482.3686") :outer("83_1275811482.3686")
+.annotate 'line', 436
+ new $P1463, "Undef"
+ .lex "$ast", $P1463
+ find_lex $P1464, "$i"
+ set $I1465, $P1464
+ find_lex $P1466, "$clist"
+ unless_null $P1466, vivify_335
+ $P1466 = root_new ['parrot';'ResizablePMCArray']
+ vivify_335:
+ set $P1467, $P1466[$I1465]
+ unless_null $P1467, vivify_336
+ new $P1467, "Undef"
vivify_336:
- set $P1498, $P1497[1]
- unless_null $P1498, vivify_337
- new $P1498, "Undef"
- vivify_337:
- if $P1498, if_1496
-.annotate 'line', 464
- find_lex $P1514, "$str"
- find_lex $P1515, "$_"
- unless_null $P1515, vivify_338
- $P1515 = root_new ['parrot';'ResizablePMCArray']
- vivify_338:
- set $P1516, $P1515[0]
- unless_null $P1516, vivify_339
- new $P1516, "Undef"
- vivify_339:
- concat $P1517, $P1514, $P1516
- store_lex "$str", $P1517
- set $P1495, $P1517
+ $P1468 = $P1467."ast"()
+ store_lex "$ast", $P1468
+.annotate 'line', 437
+ find_lex $P1470, "$ast"
+ $P1471 = $P1470."negate"()
+ if $P1471, if_1469
.annotate 'line', 442
- goto if_1496_end
- if_1496:
- .const 'Sub' $P1500 = "87_1274022889.08438"
- capture_lex $P1500
- $P1513 = $P1500()
- set $P1495, $P1513
- if_1496_end:
+ get_hll_global $P1478, ["PAST"], "Regex"
+ find_lex $P1479, "$past"
+ find_lex $P1480, "$ast"
+ find_lex $P1481, "$/"
+ $P1482 = $P1478."new"($P1479, $P1480, "alt" :named("pasttype"), $P1481 :named("node"))
+ store_lex "$past", $P1482
.annotate 'line', 441
- .return ($P1495)
+ goto if_1469_end
+ if_1469:
+.annotate 'line', 438
+ find_lex $P1472, "$ast"
+ $P1472."subtype"("zerowidth")
+.annotate 'line', 439
+ get_hll_global $P1473, ["PAST"], "Regex"
+ find_lex $P1474, "$ast"
+ find_lex $P1475, "$past"
+ find_lex $P1476, "$/"
+ $P1477 = $P1473."new"($P1474, $P1475, "concat" :named("pasttype"), $P1476 :named("node"))
+ store_lex "$past", $P1477
+ if_1469_end:
+.annotate 'line', 444
+ find_lex $P1483, "$i"
+ add $P1484, $P1483, 1
+ store_lex "$i", $P1484
+.annotate 'line', 435
+ .return ($P1484)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1499" :anon :subid("87_1274022889.08438") :outer("86_1274022889.08438")
-.annotate 'line', 443
- new $P1501, "Undef"
- .lex "$a", $P1501
-.annotate 'line', 444
+.include "except_types.pasm"
+.sub "cclass_elem" :subid("85_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1495
+.annotate 'line', 449
+ .const 'Sub' $P1520 = "87_1275811482.3686"
+ capture_lex $P1520
+ .const 'Sub' $P1504 = "86_1275811482.3686"
+ capture_lex $P1504
+ new $P1494, 'ExceptionHandler'
+ set_addr $P1494, control_1493
+ $P1494."handle_types"(.CONTROL_RETURN)
+ push_eh $P1494
+ .lex "self", self
+ .lex "$/", param_1495
+.annotate 'line', 450
+ new $P1496, "Undef"
+ .lex "$str", $P1496
+.annotate 'line', 451
+ new $P1497, "Undef"
+ .lex "$past", $P1497
+.annotate 'line', 450
+ new $P1498, "String"
+ assign $P1498, ""
+ store_lex "$str", $P1498
+ find_lex $P1499, "$past"
+.annotate 'line', 452
+ find_lex $P1501, "$/"
+ unless_null $P1501, vivify_337
+ $P1501 = root_new ['parrot';'Hash']
+ vivify_337:
+ set $P1502, $P1501["name"]
+ unless_null $P1502, vivify_338
new $P1502, "Undef"
- .lex "$b", $P1502
-.annotate 'line', 445
- new $P1503, "Undef"
- .lex "$c", $P1503
-.annotate 'line', 443
- find_lex $P1504, "$_"
- unless_null $P1504, vivify_340
- $P1504 = root_new ['parrot';'ResizablePMCArray']
+ vivify_338:
+ if $P1502, if_1500
+.annotate 'line', 456
+ find_lex $P1515, "$/"
+ unless_null $P1515, vivify_339
+ $P1515 = root_new ['parrot';'Hash']
+ vivify_339:
+ set $P1516, $P1515["charspec"]
+ unless_null $P1516, vivify_340
+ new $P1516, "Undef"
vivify_340:
- set $P1505, $P1504[0]
- unless_null $P1505, vivify_341
- new $P1505, "Undef"
- vivify_341:
- store_lex "$a", $P1505
-.annotate 'line', 444
- find_lex $P1506, "$_"
- unless_null $P1506, vivify_342
- $P1506 = root_new ['parrot';'ResizablePMCArray']
+ defined $I1517, $P1516
+ unless $I1517, for_undef_341
+ iter $P1514, $P1516
+ new $P1546, 'ExceptionHandler'
+ set_addr $P1546, loop1545_handler
+ $P1546."handle_types"(.CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, .CONTROL_LOOP_LAST)
+ push_eh $P1546
+ loop1545_test:
+ unless $P1514, loop1545_done
+ shift $P1518, $P1514
+ loop1545_redo:
+ .const 'Sub' $P1520 = "87_1275811482.3686"
+ capture_lex $P1520
+ $P1520($P1518)
+ loop1545_next:
+ goto loop1545_test
+ loop1545_handler:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1547, exception, 'type'
+ eq $P1547, .CONTROL_LOOP_NEXT, loop1545_next
+ eq $P1547, .CONTROL_LOOP_REDO, loop1545_redo
+ loop1545_done:
+ pop_eh
+ for_undef_341:
+.annotate 'line', 481
+ get_hll_global $P1548, ["PAST"], "Regex"
+ find_lex $P1549, "$str"
+ find_lex $P1550, "$/"
+ $P1551 = $P1548."new"($P1549, "enumcharlist" :named("pasttype"), $P1550 :named("node"))
+ store_lex "$past", $P1551
+.annotate 'line', 455
+ goto if_1500_end
+ if_1500:
+.annotate 'line', 452
+ .const 'Sub' $P1504 = "86_1275811482.3686"
+ capture_lex $P1504
+ $P1504()
+ if_1500_end:
+.annotate 'line', 483
+ find_lex $P1552, "$past"
+ find_lex $P1553, "$/"
+ unless_null $P1553, vivify_353
+ $P1553 = root_new ['parrot';'Hash']
+ vivify_353:
+ set $P1554, $P1553["sign"]
+ unless_null $P1554, vivify_354
+ new $P1554, "Undef"
+ vivify_354:
+ set $S1555, $P1554
+ iseq $I1556, $S1555, "-"
+ $P1552."negate"($I1556)
+.annotate 'line', 484
+ find_lex $P1557, "$/"
+ find_lex $P1558, "$past"
+ $P1559 = $P1557."!make"($P1558)
+.annotate 'line', 449
+ .return ($P1559)
+ control_1493:
+ .local pmc exception
+ .get_results (exception)
+ getattribute $P1560, exception, "payload"
+ .return ($P1560)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.sub "_block1519" :anon :subid("87_1275811482.3686") :outer("85_1275811482.3686")
+ .param pmc param_1521
+.annotate 'line', 456
+ .const 'Sub' $P1527 = "88_1275811482.3686"
+ capture_lex $P1527
+ .lex "$_", param_1521
+.annotate 'line', 457
+ find_lex $P1524, "$_"
+ unless_null $P1524, vivify_342
+ $P1524 = root_new ['parrot';'ResizablePMCArray']
vivify_342:
- set $P1507, $P1506[1]
- unless_null $P1507, vivify_343
- $P1507 = root_new ['parrot';'ResizablePMCArray']
+ set $P1525, $P1524[1]
+ unless_null $P1525, vivify_343
+ new $P1525, "Undef"
vivify_343:
- set $P1508, $P1507[0]
- unless_null $P1508, vivify_344
- new $P1508, "Undef"
+ if $P1525, if_1523
+.annotate 'line', 479
+ find_lex $P1541, "$str"
+ find_lex $P1542, "$_"
+ unless_null $P1542, vivify_344
+ $P1542 = root_new ['parrot';'ResizablePMCArray']
vivify_344:
- store_lex "$b", $P1508
-.annotate 'line', 445
+ set $P1543, $P1542[0]
+ unless_null $P1543, vivify_345
+ new $P1543, "Undef"
+ vivify_345:
+ concat $P1544, $P1541, $P1543
+ store_lex "$str", $P1544
+ set $P1522, $P1544
+.annotate 'line', 457
+ goto if_1523_end
+ if_1523:
+ .const 'Sub' $P1527 = "88_1275811482.3686"
+ capture_lex $P1527
+ $P1540 = $P1527()
+ set $P1522, $P1540
+ if_1523_end:
+.annotate 'line', 456
+ .return ($P1522)
+.end
+
+
+.namespace ["Regex";"P6Regex";"Actions"]
+.sub "_block1526" :anon :subid("88_1275811482.3686") :outer("87_1275811482.3686")
+.annotate 'line', 458
+ new $P1528, "Undef"
+ .lex "$a", $P1528
+.annotate 'line', 459
+ new $P1529, "Undef"
+ .lex "$b", $P1529
+.annotate 'line', 460
+ new $P1530, "Undef"
+ .lex "$c", $P1530
+.annotate 'line', 458
+ find_lex $P1531, "$_"
+ unless_null $P1531, vivify_346
+ $P1531 = root_new ['parrot';'ResizablePMCArray']
+ vivify_346:
+ set $P1532, $P1531[0]
+ unless_null $P1532, vivify_347
+ new $P1532, "Undef"
+ vivify_347:
+ store_lex "$a", $P1532
+.annotate 'line', 459
+ find_lex $P1533, "$_"
+ unless_null $P1533, vivify_348
+ $P1533 = root_new ['parrot';'ResizablePMCArray']
+ vivify_348:
+ set $P1534, $P1533[1]
+ unless_null $P1534, vivify_349
+ $P1534 = root_new ['parrot';'ResizablePMCArray']
+ vivify_349:
+ set $P1535, $P1534[0]
+ unless_null $P1535, vivify_350
+ new $P1535, "Undef"
+ vivify_350:
+ store_lex "$b", $P1535
+.annotate 'line', 460
$P0 = find_lex '$a'
$S0 = $P0
@@ -11694,160 +11946,161 @@
inc $I0
goto cclass_loop
cclass_done:
- $P1509 = box $S2
+ $P1536 = box $S2
- store_lex "$c", $P1509
-.annotate 'line', 462
- find_lex $P1510, "$str"
- find_lex $P1511, "$c"
- concat $P1512, $P1510, $P1511
- store_lex "$str", $P1512
-.annotate 'line', 442
- .return ($P1512)
+ store_lex "$c", $P1536
+.annotate 'line', 477
+ find_lex $P1537, "$str"
+ find_lex $P1538, "$c"
+ concat $P1539, $P1537, $P1538
+ store_lex "$str", $P1539
+.annotate 'line', 457
+ .return ($P1539)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1476" :anon :subid("85_1274022889.08438") :outer("84_1274022889.08438")
-.annotate 'line', 438
- new $P1478, "Undef"
- .lex "$name", $P1478
- find_lex $P1479, "$/"
- unless_null $P1479, vivify_345
- $P1479 = root_new ['parrot';'Hash']
- vivify_345:
- set $P1480, $P1479["name"]
- unless_null $P1480, vivify_346
- new $P1480, "Undef"
- vivify_346:
- set $S1481, $P1480
- new $P1482, 'String'
- set $P1482, $S1481
- store_lex "$name", $P1482
-.annotate 'line', 439
- get_hll_global $P1483, ["PAST"], "Regex"
- find_lex $P1484, "$name"
- find_lex $P1485, "$/"
- $P1486 = $P1483."new"($P1484, "subrule" :named("pasttype"), "method" :named("subtype"), $P1485 :named("node"))
- store_lex "$past", $P1486
-.annotate 'line', 437
- .return ($P1486)
+.sub "_block1503" :anon :subid("86_1275811482.3686") :outer("85_1275811482.3686")
+.annotate 'line', 453
+ new $P1505, "Undef"
+ .lex "$name", $P1505
+ find_lex $P1506, "$/"
+ unless_null $P1506, vivify_351
+ $P1506 = root_new ['parrot';'Hash']
+ vivify_351:
+ set $P1507, $P1506["name"]
+ unless_null $P1507, vivify_352
+ new $P1507, "Undef"
+ vivify_352:
+ set $S1508, $P1507
+ new $P1509, 'String'
+ set $P1509, $S1508
+ store_lex "$name", $P1509
+.annotate 'line', 454
+ get_hll_global $P1510, ["PAST"], "Regex"
+ find_lex $P1511, "$name"
+ find_lex $P1512, "$/"
+ $P1513 = $P1510."new"($P1511, "subrule" :named("pasttype"), "method" :named("subtype"), $P1512 :named("node"))
+ store_lex "$past", $P1513
+.annotate 'line', 452
+ .return ($P1513)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "mod_internal" :subid("88_1274022889.08438") :method :outer("11_1274022889.08438")
- .param pmc param_1537
-.annotate 'line', 472
- new $P1536, 'ExceptionHandler'
- set_addr $P1536, control_1535
- $P1536."handle_types"(57)
- push_eh $P1536
- .lex "self", self
- .lex "$/", param_1537
-.annotate 'line', 473
- $P1538 = root_new ['parrot';'Hash']
- .lex "%mods", $P1538
-.annotate 'line', 474
- new $P1539, "Undef"
- .lex "$n", $P1539
-.annotate 'line', 473
- get_global $P1540, "@MODIFIERS"
- unless_null $P1540, vivify_349
- $P1540 = root_new ['parrot';'ResizablePMCArray']
- vivify_349:
- set $P1541, $P1540[0]
- unless_null $P1541, vivify_350
- new $P1541, "Undef"
- vivify_350:
- store_lex "%mods", $P1541
-.annotate 'line', 474
- find_lex $P1544, "$/"
- unless_null $P1544, vivify_351
- $P1544 = root_new ['parrot';'Hash']
- vivify_351:
- set $P1545, $P1544["n"]
- unless_null $P1545, vivify_352
- $P1545 = root_new ['parrot';'ResizablePMCArray']
- vivify_352:
- set $P1546, $P1545[0]
- unless_null $P1546, vivify_353
- new $P1546, "Undef"
- vivify_353:
- set $S1547, $P1546
- isgt $I1548, $S1547, ""
- if $I1548, if_1543
- new $P1553, "Integer"
- assign $P1553, 1
- set $P1542, $P1553
- goto if_1543_end
- if_1543:
- find_lex $P1549, "$/"
- unless_null $P1549, vivify_354
- $P1549 = root_new ['parrot';'Hash']
- vivify_354:
- set $P1550, $P1549["n"]
- unless_null $P1550, vivify_355
- $P1550 = root_new ['parrot';'ResizablePMCArray']
+.include "except_types.pasm"
+.sub "mod_internal" :subid("89_1275811482.3686") :method :outer("11_1275811482.3686")
+ .param pmc param_1564
+.annotate 'line', 487
+ new $P1563, 'ExceptionHandler'
+ set_addr $P1563, control_1562
+ $P1563."handle_types"(.CONTROL_RETURN)
+ push_eh $P1563
+ .lex "self", self
+ .lex "$/", param_1564
+.annotate 'line', 488
+ $P1565 = root_new ['parrot';'Hash']
+ .lex "%mods", $P1565
+.annotate 'line', 489
+ new $P1566, "Undef"
+ .lex "$n", $P1566
+.annotate 'line', 488
+ get_global $P1567, "@MODIFIERS"
+ unless_null $P1567, vivify_355
+ $P1567 = root_new ['parrot';'ResizablePMCArray']
vivify_355:
- set $P1551, $P1550[0]
- unless_null $P1551, vivify_356
- new $P1551, "Undef"
+ set $P1568, $P1567[0]
+ unless_null $P1568, vivify_356
+ new $P1568, "Undef"
vivify_356:
- set $N1552, $P1551
- new $P1542, 'Float'
- set $P1542, $N1552
- if_1543_end:
- store_lex "$n", $P1542
-.annotate 'line', 475
- find_lex $P1554, "$n"
- find_lex $P1555, "$/"
- unless_null $P1555, vivify_357
- $P1555 = root_new ['parrot';'Hash']
+ store_lex "%mods", $P1568
+.annotate 'line', 489
+ find_lex $P1571, "$/"
+ unless_null $P1571, vivify_357
+ $P1571 = root_new ['parrot';'Hash']
vivify_357:
- set $P1556, $P1555["mod_ident"]
- unless_null $P1556, vivify_358
- $P1556 = root_new ['parrot';'Hash']
+ set $P1572, $P1571["n"]
+ unless_null $P1572, vivify_358
+ $P1572 = root_new ['parrot';'ResizablePMCArray']
vivify_358:
- set $P1557, $P1556["sym"]
- unless_null $P1557, vivify_359
- new $P1557, "Undef"
+ set $P1573, $P1572[0]
+ unless_null $P1573, vivify_359
+ new $P1573, "Undef"
vivify_359:
- set $S1558, $P1557
- find_lex $P1559, "%mods"
- unless_null $P1559, vivify_360
- $P1559 = root_new ['parrot';'Hash']
- store_lex "%mods", $P1559
+ set $S1574, $P1573
+ isgt $I1575, $S1574, ""
+ if $I1575, if_1570
+ new $P1580, "Integer"
+ assign $P1580, 1
+ set $P1569, $P1580
+ goto if_1570_end
+ if_1570:
+ find_lex $P1576, "$/"
+ unless_null $P1576, vivify_360
+ $P1576 = root_new ['parrot';'Hash']
vivify_360:
- set $P1559[$S1558], $P1554
-.annotate 'line', 476
- find_lex $P1560, "$/"
- $P1561 = $P1560."!make"(0)
-.annotate 'line', 472
- .return ($P1561)
- control_1535:
+ set $P1577, $P1576["n"]
+ unless_null $P1577, vivify_361
+ $P1577 = root_new ['parrot';'ResizablePMCArray']
+ vivify_361:
+ set $P1578, $P1577[0]
+ unless_null $P1578, vivify_362
+ new $P1578, "Undef"
+ vivify_362:
+ set $N1579, $P1578
+ new $P1569, 'Float'
+ set $P1569, $N1579
+ if_1570_end:
+ store_lex "$n", $P1569
+.annotate 'line', 490
+ find_lex $P1581, "$n"
+ find_lex $P1582, "$/"
+ unless_null $P1582, vivify_363
+ $P1582 = root_new ['parrot';'Hash']
+ vivify_363:
+ set $P1583, $P1582["mod_ident"]
+ unless_null $P1583, vivify_364
+ $P1583 = root_new ['parrot';'Hash']
+ vivify_364:
+ set $P1584, $P1583["sym"]
+ unless_null $P1584, vivify_365
+ new $P1584, "Undef"
+ vivify_365:
+ set $S1585, $P1584
+ find_lex $P1586, "%mods"
+ unless_null $P1586, vivify_366
+ $P1586 = root_new ['parrot';'Hash']
+ store_lex "%mods", $P1586
+ vivify_366:
+ set $P1586[$S1585], $P1581
+.annotate 'line', 491
+ find_lex $P1587, "$/"
+ $P1588 = $P1587."!make"(0)
+.annotate 'line', 487
+ .return ($P1588)
+ control_1562:
.local pmc exception
.get_results (exception)
- getattribute $P1562, exception, "payload"
- .return ($P1562)
+ getattribute $P1589, exception, "payload"
+ .return ($P1589)
.end
.namespace ["Regex";"P6Regex";"Actions"]
-.sub "_block1567" :load :anon :subid("89_1274022889.08438")
+.sub "_block1594" :load :anon :subid("90_1275811482.3686")
.annotate 'line', 4
- .const 'Sub' $P1569 = "11_1274022889.08438"
- $P1570 = $P1569()
- .return ($P1570)
+ .const 'Sub' $P1596 = "11_1275811482.3686"
+ $P1597 = $P1596()
+ .return ($P1597)
.end
.namespace []
-.sub "_block1573" :load :anon :subid("90_1274022889.08438")
+.sub "_block1600" :load :anon :subid("91_1275811482.3686")
.annotate 'line', 1
- .const 'Sub' $P1575 = "10_1274022889.08438"
- $P1576 = $P1575()
- .return ($P1576)
+ .const 'Sub' $P1602 = "10_1275811482.3686"
+ $P1603 = $P1602()
+ .return ($P1603)
.end
# .include 'src/cheats/p6regex-grammar.pir'
Modified: branches/gsoc_threads/ext/nqp-rx/src/stage0/Regex-s0.pir
==============================================================================
--- branches/gsoc_threads/ext/nqp-rx/src/stage0/Regex-s0.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/ext/nqp-rx/src/stage0/Regex-s0.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -149,16 +149,12 @@
unless cstack_it goto cstack_done
.local pmc subcur, submatch, names
subcur = shift cstack_it
+ $I0 = isa subcur, ['Regex';'Cursor']
+ unless $I0 goto cstack_loop
# If the subcursor isn't bound with a name, skip it
names = getattribute subcur, '$!names'
if null names goto cstack_loop
- $I0 = isa subcur, ['Regex';'Cursor']
- unless $I0 goto cstack_1
submatch = subcur.'MATCH'()
- goto cstack_2
- cstack_1:
- submatch = subcur
- cstack_2:
# See if we have multiple binds
.local pmc names_it
subname = names
@@ -433,13 +429,15 @@
orig = getattribute self, '$!target'
line = orig.'lineof'(from)
inc line
- printerr from
- printerr '/'
- printerr line
- printerr ': '
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(2)
+ print $P1, from
+ print $P1, '/'
+ print $P1, line
+ print $P1, ': '
$S0 = join '', args
- printerr $S0
- printerr "\n"
+ print $P1, $S0
+ print $P1, "\n"
done:
.return (self)
.end
@@ -720,6 +718,128 @@
.end
+=item !INTERPOLATE(var [, convert])
+
+Perform regex interpolation on C<var>. If C<var> is a
+regex (sub), it is used directly, otherwise it is used
+for a string literal match. If C<var> is an array,
+then all of the elements of C<var> are considered,
+and the longest match is returned.
+
+=cut
+
+.sub '!INTERPOLATE' :method
+ .param pmc var
+
+ .local pmc cur
+ .local int pos, eos
+ .local string tgt
+
+ $I0 = does var, 'array'
+ if $I0 goto var_array
+
+ var_scalar:
+ $I0 = does var, 'invokable'
+ if $I0 goto var_sub
+
+ var_string:
+ (cur, pos, tgt) = self.'!cursor_start'()
+ eos = length tgt
+ $S0 = var
+ $I0 = length $S0
+ $I1 = pos + $I0
+ if $I1 > eos goto string_fail
+ $S1 = substr tgt, pos, $I0
+ if $S0 != $S1 goto string_fail
+ pos += $I0
+ string_pass:
+ cur.'!cursor_pass'(pos, '')
+ string_fail:
+ .return (cur)
+
+ var_sub:
+ cur = var(self)
+ .return (cur)
+
+ var_array:
+ (cur, pos, tgt) = self.'!cursor_start'()
+ eos = length tgt
+ .local pmc var_it, elem
+ .local int maxlen
+ var_it = iter var
+ maxlen = -1
+ array_loop:
+ unless var_it goto array_done
+ elem = shift var_it
+ $I0 = does elem, 'invokable'
+ if $I0 goto array_sub
+ array_string:
+ $S0 = elem
+ $I0 = length $S0
+ if $I0 <= maxlen goto array_loop
+ $I1 = pos + $I0
+ if $I1 > eos goto array_loop
+ $S1 = substr tgt, pos, $I0
+ if $S0 != $S1 goto array_loop
+ maxlen = $I0
+ goto array_loop
+ array_sub:
+ $P0 = elem(self)
+ unless $P0 goto array_loop
+ $I0 = $P0.'pos'()
+ $I0 -= pos
+ if $I0 <= maxlen goto array_loop
+ maxlen = $I0
+ goto array_loop
+ array_done:
+ if maxlen < 0 goto array_fail
+ $I0 = pos + maxlen
+ cur.'!cursor_pass'($I0, '')
+ array_fail:
+ .return (cur)
+.end
+
+
+=item !INTERPOLATE_REGEX(var)
+
+Same as C<!INTERPOLATE> above, except that any non-regex values
+are first compiled to regexes prior to being matched.
+
+=cut
+
+.sub '!INTERPOLATE_REGEX' :method
+ .param pmc var
+
+ $I0 = does var, 'invokable'
+ if $I0 goto done
+
+ .local pmc p6regex
+ p6regex = compreg 'Regex::P6Regex'
+
+ $I0 = does var, 'array'
+ if $I0 goto var_array
+ var = p6regex.'compile'(var)
+ goto done
+
+ var_array:
+ .local pmc var_it, elem
+ var_it = iter var
+ var = new ['ResizablePMCArray']
+ var_loop:
+ unless var_it goto done
+ elem = shift var_it
+ $I0 = does elem, 'invokable'
+ if $I0 goto var_next
+ elem = p6regex.'compile'(elem)
+ var_next:
+ push var, elem
+ goto var_loop
+
+ done:
+ .tailcall self.'!INTERPOLATE'(var)
+.end
+
+
=back
=head2 Vtable functions
@@ -879,6 +999,10 @@
(cur, pos, tgt) = self.'!cursor_start'()
$I0 = is_cclass .CCLASS_ALPHABETIC, tgt, pos
if $I0 goto pass
+
+ $I0 = length tgt
+ if pos >= $I0 goto fail
+
$S0 = substr tgt, pos, 1
if $S0 != '_' goto fail
pass:
@@ -1495,6 +1619,9 @@
$I0 = self.'to'()
$I1 = self.'from'()
$I2 = $I0 - $I1
+ if $I2 >= 0 goto done
+ .return (0)
+ done:
.return ($I2)
.end
@@ -1921,7 +2048,7 @@
# vim: expandtab shiftwidth=4 ft=pir:
### .include 'src/PAST/Regex.pir'
-# $Id: Regex.pir 41578 2009-09-30 14:45:23Z pmichaud $
+# $Id$
=head1 NAME
@@ -2167,6 +2294,22 @@
.tailcall head.'prefix'(prefix, tail :flat)
.end
+.sub 'prefix_pastnode' :method
+ .param string prefix
+ .param pmc tail
+
+ unless tail goto pastnode_none
+ .local string subtype
+ subtype = self.'subtype'()
+ if subtype != 'declarative' goto pastnode_none
+
+ .local pmc head
+ head = shift tail
+ .tailcall head.'prefix'(prefix, tail :flat)
+
+ pastnode_none:
+ .return (prefix)
+.end
.sub 'prefix_subcapture' :method
.param string prefix
@@ -2180,7 +2323,7 @@
.param pmc tail
.local pmc name, negate, subtype
- name = self.'name'()
+ name = self[0]
negate = self.'negate'()
subtype = self.'subtype'()
$I0 = does name, 'string'
@@ -2268,7 +2411,7 @@
.lex '$*REG', reghash
.local pmc regexname, regexname_esc
- $P0 = get_global '@?BLOCK'
+ $P0 = find_dynamic_lex '@*BLOCKPAST'
$P1 = $P0[0]
$S0 = $P1.'name'()
regexname = box $S0
@@ -2358,6 +2501,7 @@
ops.'push_pirop'('.local pmc', 'match')
ops.'push_pirop'('.lex', '"$/"', 'match')
ops.'push_pirop'('length', eos, tgt, 'result'=>eos)
+ ops.'push_pirop'('gt', pos, eos, donelabel)
# On Parrot, indexing into variable-width encoded strings
# (such as utf8) becomes much more expensive as we move
Modified: branches/gsoc_threads/ext/nqp-rx/src/stage0/nqp-setting.nqp
==============================================================================
--- branches/gsoc_threads/ext/nqp-rx/src/stage0/nqp-setting.nqp Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/ext/nqp-rx/src/stage0/nqp-setting.nqp Thu Jun 10 21:09:12 2010 (r47545)
@@ -182,10 +182,12 @@
my $result := pir::new__Ps('StringBuilder');
for @matches -> $match {
- pir::push($result, pir::substr($text, $offset, $match.from - $offset))
- if $match.from > $offset;
- pir::push($result, $is_code ?? $repl($match) !! $repl);
- $offset := $match.to;
+ if $match {
+ pir::push($result, pir::substr($text, $offset, $match.from - $offset))
+ if $match.from > $offset;
+ pir::push($result, $is_code ?? $repl($match) !! $repl);
+ $offset := $match.to;
+ }
}
my $chars := pir::length($text);
@@ -211,9 +213,10 @@
=end
our sub slurp ($filename) {
- my $handle := pir::open__Pss($file, 'r');
+ my $handle := FileHandle.new();
+ $handle.open($file, 'r');
my $contents := $handle.readall;
- pir::close($handle);
+ $handle.close();
$contents;
}
@@ -223,9 +226,10 @@
=end item
our sub spew($filename, $contents) {
- my $handle := pir::open__Pss($filename, 'w');
+ my $handle := FileHandle.new();
+ $handle.open($filename, 'w');
$handle.print($contents);
- pir::close($handle);
+ $handle.close();
}
# vim: ft=perl6
Modified: branches/gsoc_threads/include/parrot/charset.h
==============================================================================
--- branches/gsoc_threads/include/parrot/charset.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/charset.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -72,11 +72,13 @@
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
const char * Parrot_charset_c_name(SHIM_INTERP, INTVAL number_of_charset);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
STRING * Parrot_charset_name(SHIM_INTERP, INTVAL number_of_charset);
@@ -89,6 +91,7 @@
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
INTVAL Parrot_charset_number_of_str(SHIM_INTERP, ARGIN(const STRING *src))
__attribute__nonnull__(2);
@@ -102,11 +105,13 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
const CHARSET * Parrot_default_charset(SHIM_INTERP);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
const CHARSET * Parrot_find_charset(SHIM_INTERP,
@@ -114,6 +119,7 @@
__attribute__nonnull__(2);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
charset_converter_t Parrot_find_charset_converter(SHIM_INTERP,
@@ -123,6 +129,7 @@
__attribute__nonnull__(3);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
const CHARSET * Parrot_get_charset(SHIM_INTERP, INTVAL number_of_charset);
Modified: branches/gsoc_threads/include/parrot/compiler.h
==============================================================================
--- branches/gsoc_threads/include/parrot/compiler.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/compiler.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -136,11 +136,35 @@
#define PARROT_IGNORABLE_RESULT
#define PARROT_WARN_UNUSED_RESULT __attribute__warn_unused_result__
+#define PARROT_PURE_FUNCTION __attribute__pure__ __attribute__warn_unused_result__
/* Pure functions have no side-effects, and depend only on parms or globals. e.g. strlen() */
-#define PARROT_PURE_FUNCTION __attribute__pure__ __attribute__warn_unused_result__
-
-/* Const functions are pure functions, and do not examine targets of pointers. e.g. sqrt() */
-#define PARROT_CONST_FUNCTION __attribute__const__ __attribute__warn_unused_result__
+/* "Many functions have no effects except the return value and their
+ return value depends only on the parameters and/or global
+ variables. Such a function can be subject to common subexpression
+ elimination and loop optimization just as an arithmetic operator
+ would be. For example, "PARROT_PURE_FUNCTION int square(int x)"
+ says that the hypothetical function square is safe to call fewer
+ times than the program says.
+
+ Some of common examples of pure functions are strlen or
+ memcmp. Interesting non-pure functions are functions with infinite
+ loops or those depending on volatile memory or other system resource,
+ that may change between two consecutive calls (such as feof in a
+ multithreading environment)." -- http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
+*/
+
+#define PARROT_CONST_FUNCTION __attribute__const__ __attribute__warn_unused_result__
+/* Const functions are pure functions, and also do not examine targets of pointer args or globals. e.g. sqrt() */
+/* "Many functions do not examine any values except their arguments,
+ and have no effects except the return value. Basically this is just
+ slightly more strict class than the pure attribute below, since
+ function is not allowed to read global memory. Note that a function
+ that has pointer arguments and examines the data pointed to must
+ not be declared const. Likewise, a function that calls a non-const
+ function usually must not be const. It does not make sense for a
+ const function to return void."
+ -- http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
+*/
#define PARROT_DOES_NOT_RETURN /*@noreturn@*/ __attribute__noreturn__
#define PARROT_DOES_NOT_RETURN_WHEN_FALSE /*@noreturnwhenfalse@*/
Modified: branches/gsoc_threads/include/parrot/debugger.h
==============================================================================
--- branches/gsoc_threads/include/parrot/debugger.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/debugger.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -205,11 +205,20 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+void PDB_backtrace(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
void PDB_load_source(PARROT_INTERP, ARGIN(const char *command))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
PARROT_EXPORT
+void PDB_print(PARROT_INTERP, ARGIN(const char *command))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
void PDB_script_file(PARROT_INTERP, ARGIN(const char *command))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -227,9 +236,6 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
-void PDB_backtrace(PARROT_INTERP)
- __attribute__nonnull__(1);
-
PARROT_WARN_UNUSED_RESULT
char PDB_break(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -330,10 +336,6 @@
void PDB_next(PARROT_INTERP, ARGIN_NULLOK(const char *command))
__attribute__nonnull__(1);
-void PDB_print(PARROT_INTERP, ARGIN(const char *command))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
char PDB_program_end(PARROT_INTERP)
__attribute__nonnull__(1);
@@ -372,9 +374,14 @@
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_debugger_start __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_PDB_backtrace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_PDB_load_source __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(command))
+#define ASSERT_ARGS_PDB_print __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(command))
#define ASSERT_ARGS_PDB_script_file __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(command))
@@ -385,8 +392,6 @@
#define ASSERT_ARGS_PDB_assign __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(command))
-#define ASSERT_ARGS_PDB_backtrace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_PDB_break __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_PDB_check_condition __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -443,9 +448,6 @@
, PARROT_ASSERT_ARG(command))
#define ASSERT_ARGS_PDB_next __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_PDB_print __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(command))
#define ASSERT_ARGS_PDB_program_end __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_PDB_run_command __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/gsoc_threads/include/parrot/embed.h
==============================================================================
--- branches/gsoc_threads/include/parrot/embed.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/embed.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -141,14 +141,17 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_UInt Parrot_test_debug(PARROT_INTERP, Parrot_UInt flag)
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_Int Parrot_test_flag(PARROT_INTERP, Parrot_Int flag)
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_UInt Parrot_test_trace(PARROT_INTERP, Parrot_UInt flag)
__attribute__nonnull__(1);
Modified: branches/gsoc_threads/include/parrot/encoding.h
==============================================================================
--- branches/gsoc_threads/include/parrot/encoding.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/encoding.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -56,6 +56,7 @@
PARROT_DATA ENCODING *Parrot_utf8_encoding_ptr;
PARROT_DATA ENCODING *Parrot_utf16_encoding_ptr;
PARROT_DATA ENCODING *Parrot_ucs2_encoding_ptr;
+PARROT_DATA ENCODING *Parrot_ucs4_encoding_ptr;
PARROT_DATA ENCODING *Parrot_default_encoding_ptr;
#endif
Modified: branches/gsoc_threads/include/parrot/exceptions.h
==============================================================================
--- branches/gsoc_threads/include/parrot/exceptions.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/exceptions.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -90,6 +90,7 @@
CONTROL_ERROR,
CONTROL_TAKE,
CONTROL_LEAVE,
+ CONTROL_EXIT,
CONTROL_LOOP_NEXT,
CONTROL_LOOP_LAST,
@@ -115,9 +116,9 @@
/* HEADERIZER BEGIN: src/exceptions.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+PARROT_EXPORT
PARROT_DOES_NOT_RETURN
PARROT_COLD
-PARROT_EXPORT
void do_panic(
NULLOK_INTERP,
ARGIN_NULLOK(const char *message),
Modified: branches/gsoc_threads/include/parrot/gc_api.h
==============================================================================
--- branches/gsoc_threads/include/parrot/gc_api.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/gc_api.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -93,10 +93,10 @@
/* &end_gen */
-#define GC_trace_stack_FLAG (UINTVAL)(1 << 0) /* trace system areas and stack */
-#define GC_trace_normal (UINTVAL)(1 << 0) /* the same */
-#define GC_lazy_FLAG (UINTVAL)(1 << 1) /* timely destruction run */
-#define GC_finish_FLAG (UINTVAL)(1 << 2) /* on Parrot exit: mark (almost) all PMCs dead and */
+#define GC_trace_stack_FLAG (UINTVAL)(1 << 1) /* trace system areas and stack */
+#define GC_trace_normal_FLAG (UINTVAL)(1 << 1) /* the same */
+#define GC_lazy_FLAG (UINTVAL)(1 << 2) /* timely destruction run */
+#define GC_finish_FLAG (UINTVAL)(1 << 3) /* on Parrot exit: mark (almost) all PMCs dead and */
/* garbage collect. */
/* HEADERIZER BEGIN: src/gc/api.c */
Modified: branches/gsoc_threads/include/parrot/hash.h
==============================================================================
--- branches/gsoc_threads/include/parrot/hash.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/hash.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -315,13 +315,13 @@
__attribute__nonnull__(2);
PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
int int_compare(SHIM_INTERP,
ARGIN_NULLOK(const void *a),
ARGIN_NULLOK(const void *b));
PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
size_t key_hash_int(SHIM_INTERP,
ARGIN_NULLOK(const void *value),
size_t seed);
Modified: branches/gsoc_threads/include/parrot/imcc.h
==============================================================================
--- branches/gsoc_threads/include/parrot/imcc.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/imcc.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -6,10 +6,8 @@
#ifndef PARROT_IMCC_H_GUARD
#define PARROT_IMCC_H_GUARD
-PARROT_EXPORT void imcc_initialize(PARROT_INTERP);
-PARROT_EXPORT void imcc_start_handling_flags(PARROT_INTERP);
-PARROT_EXPORT int imcc_handle_flag(PARROT_INTERP, struct longopt_opt_info *opt, Parrot_Run_core_t *core);
-PARROT_EXPORT int imcc_run(PARROT_INTERP, const char *sourcefile, int argc, const char **argv);
+PARROT_EXPORT int imcc_run(PARROT_INTERP, const char *sourcefile, int argc, const char **argv);
+PARROT_EXPORT void imcc_run_pbc(PARROT_INTERP, const char *outputfile, int argc, const char **argv);
#endif /* PARROT_IMCC_H_GUARD */
Modified: branches/gsoc_threads/include/parrot/interpreter.h
==============================================================================
--- branches/gsoc_threads/include/parrot/interpreter.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/interpreter.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -522,14 +522,6 @@
__attribute__nonnull__(3)
__attribute__nonnull__(4);
-PARROT_WARN_UNUSED_RESULT
-INTVAL sysinfo_i(SHIM_INTERP, INTVAL info_wanted);
-
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-STRING * sysinfo_s(PARROT_INTERP, INTVAL info_wanted)
- __attribute__nonnull__(1);
-
#define ASSERT_ARGS_interpinfo __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_interpinfo_p __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -556,9 +548,6 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(func) \
, PARROT_ASSERT_ARG(name))
-#define ASSERT_ARGS_sysinfo_i __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_sysinfo_s __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/interp/inter_misc.c */
Modified: branches/gsoc_threads/include/parrot/io.h
==============================================================================
--- branches/gsoc_threads/include/parrot/io.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/io.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -222,6 +222,10 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
+PIOOFF_T Parrot_io_make_offset32(INTVAL hi, INTVAL lo);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
PMC * Parrot_io_new_pmc(PARROT_INTERP, INTVAL flags)
__attribute__nonnull__(1);
@@ -342,9 +346,6 @@
FUNC_MODIFIES(*pmc);
PARROT_WARN_UNUSED_RESULT
-PIOOFF_T Parrot_io_make_offset32(INTVAL hi, INTVAL lo);
-
-PARROT_WARN_UNUSED_RESULT
PIOOFF_T Parrot_io_make_offset_pmc(PARROT_INTERP, ARGMOD(PMC *pmc))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
@@ -378,6 +379,7 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
#define ASSERT_ARGS_Parrot_io_make_offset __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_io_make_offset32 __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_Parrot_io_new_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_io_open __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -420,7 +422,6 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc) \
, PARROT_ASSERT_ARG(buffer))
-#define ASSERT_ARGS_Parrot_io_make_offset32 __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_Parrot_io_make_offset_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
Modified: branches/gsoc_threads/include/parrot/longopt.h
==============================================================================
--- branches/gsoc_threads/include/parrot/longopt.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/longopt.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,13 +1,9 @@
/* longopt.h
- * Copyright (C) 2001-2003, Parrot Foundation.
+ * Copyright (C) 2001-2010, Parrot Foundation.
* SVN Info
* $Id$
* Overview:
* Command line option parsing (for pre-initialized code)
- * Data Structure and Algorithms:
- * History:
- * Notes:
- * References:
*/
#ifndef PARROT_LONGOPT_H_GUARD
@@ -44,10 +40,18 @@
#define LONGOPT_OPT_INFO_INIT { 1, 0, NULL, NULL, NULL }
+#define OPT_GC_DEBUG 128
+#define OPT_DESTROY_FLAG 129
+#define OPT_HELP_DEBUG 130
+#define OPT_PBC_OUTPUT 131
+#define OPT_RUNTIME_PREFIX 132
+#define OPT_HASH_SEED 133
+
/* HEADERIZER BEGIN: src/longopt.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
int longopt_get(PARROT_INTERP,
int argc,
ARGIN(const char* argv[]),
@@ -59,11 +63,17 @@
__attribute__nonnull__(5)
FUNC_MODIFIES(* info_buf);
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+PARROT_CONST_FUNCTION
+const struct longopt_opt_decl * Parrot_cmd_options(void);
+
#define ASSERT_ARGS_longopt_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(argv) \
, PARROT_ASSERT_ARG(options) \
, PARROT_ASSERT_ARG(info_buf))
+#define ASSERT_ARGS_Parrot_cmd_options __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/longopt.c */
Modified: branches/gsoc_threads/include/parrot/misc.h
==============================================================================
--- branches/gsoc_threads/include/parrot/misc.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/misc.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -83,6 +83,13 @@
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+PMC* Parrot_tm_to_array(PARROT_INTERP, ARGIN(const struct tm *tm))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
INTVAL Parrot_uint_rand(INTVAL how_random);
PARROT_CONST_FUNCTION
@@ -102,12 +109,6 @@
__attribute__nonnull__(4)
FUNC_MODIFIES(*data);
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-PMC* tm_to_array(PARROT_INTERP, ARGIN(const struct tm *tm))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2);
-
#define ASSERT_ARGS_Parrot_byte_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(base) \
, PARROT_ASSERT_ARG(search))
@@ -123,6 +124,9 @@
, PARROT_ASSERT_ARG(src_regs) \
, PARROT_ASSERT_ARG(info))
#define ASSERT_ARGS_Parrot_srand __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_Parrot_tm_to_array __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(tm))
#define ASSERT_ARGS_Parrot_uint_rand __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_floatval_mod __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_intval_mod __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
@@ -130,9 +134,6 @@
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(data) \
, PARROT_ASSERT_ARG(cmp))
-#define ASSERT_ARGS_tm_to_array __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(tm))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: src/utils.c */
Copied: branches/gsoc_threads/include/parrot/oplib/core_ops.h (from r47544, trunk/include/parrot/oplib/core_ops.h)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/include/parrot/oplib/core_ops.h Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/include/parrot/oplib/core_ops.h)
@@ -0,0 +1,1119 @@
+
+/* $Id$ */
+
+#ifndef PARROT_OPLIB_CORE_OPS_H_GUARD
+#define PARROT_OPLIB_CORE_OPS_H_GUARD
+
+
+/* ex: set ro:
+ * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ *
+ * This file is generated automatically from 'src/ops/core.ops' (and possibly other
+ * .ops files). by ops2c.nqp.
+ *
+ * Any changes made here will be lost! To regenerate this file after making
+ * changes to any ops, use the bootstap-ops makefile target.
+ *
+ */
+
+#include "parrot/parrot.h"
+#include "parrot/oplib.h"
+#include "parrot/runcore_api.h"
+
+ op_lib_t *Parrot_DynOp_core_2_4_0(PARROT_INTERP, long init);
+
+ opcode_t * Parrot_end(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_noop(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_check_events(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_check_events__(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_wrapper__(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_load_bytecode_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_load_bytecode_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_load_language_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_load_language_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_branch_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_branch_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_local_branch_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_local_branch_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_local_return_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_jump_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_jump_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_enternative(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_if_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_if_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_if_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_if_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unless_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unless_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unless_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unless_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_invokecc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_invoke_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_yield(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_tailcall_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_returncc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_capture_lex_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_newclosure_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_args_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_params_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_returns_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_results_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_result_info_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_result_info_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_result_info_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_addr_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_addr_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_addr_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_addr_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_schedule_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addhandler_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_eh_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_eh_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pop_eh(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_throw_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_throw_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_rethrow_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_count_eh_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_die_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exit_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exit_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_debug_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_debug_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bounds_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bounds_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_profile_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_profile_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trace_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trace_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gc_debug_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gc_debug_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_interpinfo_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_interpinfo_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_interpinfo_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_interpinfo_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_interpinfo_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_interpinfo_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_warningson_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_warningson_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_warningsoff_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_warningsoff_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_errorson_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_errorson_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_errorsoff_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_errorsoff_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_runinterp_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_runinterp_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getinterp_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sweep_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_collect(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sweepoff(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sweepon(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_collectoff(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_collecton(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_needs_destroy_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_loadlib_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_loadlib_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_loadlib_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_loadlib_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_loadlib_p_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_loadlib_p_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dlfunc_p_p_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dlfunc_p_p_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dlfunc_p_p_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dlfunc_p_p_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dlvar_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dlvar_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_compreg_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_compreg_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_compreg_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_compreg_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_callback_p_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_callback_p_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_annotations_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_annotations_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_annotations_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_band_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bor_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shl_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shr_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lsr_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bxor_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_ic_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_n_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_nc_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_n_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_str_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_num_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_addr_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_addr_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_addr_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_addr_sc_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_eq_addr_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_ic_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_n_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_nc_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_n_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_str_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_num_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_addr_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_addr_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_addr_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_addr_sc_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ne_addr_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_ic_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_n_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_nc_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_n_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_str_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_lt_num_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_ic_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_n_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_nc_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_n_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_str_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_le_num_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_str_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_gt_num_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_nc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_str_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ge_num_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_if_null_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_if_null_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unless_null_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unless_null_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_i_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_str_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_num_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_cmp_pmc_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_issame_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_issame_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_issame_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_issame_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_issame_i_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isntsame_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isntsame_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isntsame_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isntsame_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isntsame_i_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_istrue_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isfalse_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isnull_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isnull_i_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isnull_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isnull_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isgt_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isge_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isle_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_islt_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iseq_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isne_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_and_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_and_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_and_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_and_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_not_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_not_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_not_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_not_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_or_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_or_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_or_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_or_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_xor_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_xor_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_xor_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_xor_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_say_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_print_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getstdin_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getstdout_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getstderr_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_abs_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_abs_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_abs_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_abs_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_abs_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_abs_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dec_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dec_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_dec_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_i_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_n_nc_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_div_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fdiv_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ceil_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ceil_i_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ceil_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_floor_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_floor_i_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_floor_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mod_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_mul_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_neg_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_neg_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_neg_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_neg_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_neg_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_neg_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_i_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_i_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_i_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_n_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_n_nc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_n_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sub_p_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sqrt_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_callmethodcc_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_callmethodcc_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_callmethodcc_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_callmethod_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_callmethod_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_callmethod_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_tailcallmethod_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_tailcallmethod_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_tailcallmethod_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addmethod_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addmethod_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_can_i_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_can_i_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_does_i_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_does_i_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_does_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_does_i_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isa_i_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isa_i_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isa_i_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_isa_i_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_newclass_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_newclass_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_newclass_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_newclass_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_pc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_pc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_subclass_p_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_class_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_class_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_class_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_class_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_class_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addparent_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_removeparent_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addrole_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addattribute_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_addattribute_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_removeattribute_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_removeattribute_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getattribute_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getattribute_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getattribute_p_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getattribute_p_p_pc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getattribute_p_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getattribute_p_p_pc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setattribute_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setattribute_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setattribute_p_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setattribute_p_pc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setattribute_p_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setattribute_p_pc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inspect_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inspect_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inspect_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inspect_p_pc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inspect_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_inspect_p_pc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_typeof_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_typeof_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_repr_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_method_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_method_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_defined_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_defined_i_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_defined_i_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_defined_i_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_defined_i_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exists_i_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exists_i_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exists_i_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_exists_i_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_delete_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_delete_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_delete_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_delete_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_elements_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_push_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pop_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pop_n_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pop_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pop_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unshift_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shift_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shift_n_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shift_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_shift_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_splice_p_p_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_splice_p_p_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_splice_p_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_splice_p_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setprop_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setprop_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getprop_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_getprop_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_delprop_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_delprop_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_prophash_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_freeze_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_thaw_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_thaw_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_multi_s_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_multi_sc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_multi_s_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_add_multi_sc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_multi_p_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_multi_p_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_multi_p_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_multi_p_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_register_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unregister_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_box_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_box_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_box_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_box_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_box_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_box_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_iter_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_morph_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_morph_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_clone_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_clone_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_assign_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_setref_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_deref_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_ki_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kic_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_p_ki(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_p_kic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_k_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_kc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_i_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_n_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_s_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_p_k(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_p_p_kc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_clone_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_clone_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_clone_p_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_copy_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_null_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_null_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_null_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_null_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ord_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ord_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ord_i_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ord_i_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ord_i_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_ord_i_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_chr_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_chr_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_chopn_s_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_chopn_s_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_chopn_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_chopn_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_s_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_s_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_s_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_concat_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_s_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_s_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_repeat_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_length_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_length_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bytelength_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_bytelength_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_pin_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_unpin_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_s_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_sc_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_s_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_sc_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_s_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_sc_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_s_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_sc_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_p_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_p_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_p_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_substr_s_p_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_i_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_i_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_ic_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_ic_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_i_ic_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_i_ic_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_ic_ic_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_ic_ic_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_i_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_i_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_ic_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_ic_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_i_ic_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_i_ic_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_s_ic_ic_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_replace_s_sc_ic_ic_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_s_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_sc_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_s_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_sc_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_sc_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_index_i_sc_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sprintf_s_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sprintf_s_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sprintf_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stringinfo_i_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stringinfo_i_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stringinfo_i_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_stringinfo_i_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_upcase_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_upcase_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_downcase_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_downcase_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_titlecase_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_titlecase_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_join_s_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_join_s_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_split_p_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_split_p_sc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_split_p_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_split_p_sc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_charset_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_charset_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_charsetname_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_charsetname_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_charset_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_charset_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_charset_s_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_charset_s_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_charset_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_charset_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_encoding_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_encoding_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_encodingname_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_encodingname_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_encoding_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_encoding_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_encoding_s_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_encoding_s_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_encoding_s_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trans_encoding_s_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_i_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_ic_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_i_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_ic_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_i_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_ic_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_i_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_is_cclass_i_ic_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_s_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_s_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_sc_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_sc_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_s_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_s_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_sc_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_sc_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_s_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_s_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_sc_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_sc_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_s_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_s_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_i_sc_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_cclass_i_ic_sc_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_s_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_s_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_sc_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_sc_i_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_s_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_s_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_sc_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_sc_ic_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_s_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_s_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_sc_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_sc_i_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_s_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_s_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_i_sc_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_not_cclass_i_ic_sc_ic_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_escape_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_compose_s_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_compose_s_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_spawnw_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_spawnw_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_spawnw_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_err_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_err_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_err_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_err_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_time_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_time_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sleep_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sleep_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sleep_n(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_sleep_nc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_store_lex_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_store_lex_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_store_dynamic_lex_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_store_dynamic_lex_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_lex_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_lex_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_dynamic_lex_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_dynamic_lex_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_caller_lex_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_caller_lex_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_namespace_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_namespace_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_namespace_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_namespace_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_namespace_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_namespace_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_namespace_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_namespace_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_namespace_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_global_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_global_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_global_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_global_p_pc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_global_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_global_p_pc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_global_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_global_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_global_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_global_p_pc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_global_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_hll_global_p_pc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_global_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_global_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_global_p_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_global_p_pc_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_global_p_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_root_global_p_pc_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_global_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_global_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_global_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_global_pc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_global_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_global_pc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_hll_global_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_hll_global_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_hll_global_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_hll_global_pc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_hll_global_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_hll_global_pc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_root_global_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_root_global_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_root_global_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_root_global_pc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_root_global_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_root_global_pc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_name_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_name_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_sub_not_null_p_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_sub_not_null_p_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_trap(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_set_label_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_get_label_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_ic_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_ic_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_i_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_i_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_ic_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_ic_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_p_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_fetch_p_pc_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_p_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_pc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_p_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_pc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_i_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_ic_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_ic_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_i_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_i_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_ic_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_ic_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_s_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_sc_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_s_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_p_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_vivify_p_pc_sc_pc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_s_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_sc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_s_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_sc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_pc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_new_p_pc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_p_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_pc_i(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_p_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_root_new_p_pc_ic(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_codepoint_i_s(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_find_codepoint_i_sc(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_finalize_p(opcode_t *, PARROT_INTERP);
+ opcode_t * Parrot_finalize_pc(opcode_t *, PARROT_INTERP);
+
+
+#endif /* PARROT_OPLIB_CORE_OPS_H_GUARD */
+
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * buffer-read-only: t
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Copied: branches/gsoc_threads/include/parrot/oplib/ops.h (from r47544, trunk/include/parrot/oplib/ops.h)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/include/parrot/oplib/ops.h Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/include/parrot/oplib/ops.h)
@@ -0,0 +1,1116 @@
+
+/* $Id$ */
+
+#ifndef PARROT_OPLIB_OPS_H_GUARD
+#define PARROT_OPLIB_OPS_H_GUARD
+
+
+/* ex: set ro:
+ * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ *
+ * This file is generated automatically from 'src/ops/core.ops' (and possibly other
+ * .ops files). by ops2c.nqp.
+ *
+ * Any changes made here will be lost! To regenerate this file after making
+ * changes to any ops, use the bootstap-ops makefile target.
+ *
+ */
+
+typedef enum {
+ PARROT_OP_end, /* 0 */
+ PARROT_OP_noop, /* 1 */
+ PARROT_OP_check_events, /* 2 */
+ PARROT_OP_check_events__, /* 3 */
+ PARROT_OP_wrapper__, /* 4 */
+ PARROT_OP_load_bytecode_s, /* 5 */
+ PARROT_OP_load_bytecode_sc, /* 6 */
+ PARROT_OP_load_language_s, /* 7 */
+ PARROT_OP_load_language_sc, /* 8 */
+ PARROT_OP_branch_i, /* 9 */
+ PARROT_OP_branch_ic, /* 10 */
+ PARROT_OP_local_branch_p_i, /* 11 */
+ PARROT_OP_local_branch_p_ic, /* 12 */
+ PARROT_OP_local_return_p, /* 13 */
+ PARROT_OP_jump_i, /* 14 */
+ PARROT_OP_jump_ic, /* 15 */
+ PARROT_OP_enternative, /* 16 */
+ PARROT_OP_if_i_ic, /* 17 */
+ PARROT_OP_if_n_ic, /* 18 */
+ PARROT_OP_if_s_ic, /* 19 */
+ PARROT_OP_if_p_ic, /* 20 */
+ PARROT_OP_unless_i_ic, /* 21 */
+ PARROT_OP_unless_n_ic, /* 22 */
+ PARROT_OP_unless_s_ic, /* 23 */
+ PARROT_OP_unless_p_ic, /* 24 */
+ PARROT_OP_invokecc_p, /* 25 */
+ PARROT_OP_invoke_p_p, /* 26 */
+ PARROT_OP_yield, /* 27 */
+ PARROT_OP_tailcall_p, /* 28 */
+ PARROT_OP_returncc, /* 29 */
+ PARROT_OP_capture_lex_p, /* 30 */
+ PARROT_OP_newclosure_p_p, /* 31 */
+ PARROT_OP_set_args_pc, /* 32 */
+ PARROT_OP_get_params_pc, /* 33 */
+ PARROT_OP_set_returns_pc, /* 34 */
+ PARROT_OP_get_results_pc, /* 35 */
+ PARROT_OP_set_result_info_p, /* 36 */
+ PARROT_OP_set_result_info_pc, /* 37 */
+ PARROT_OP_result_info_p, /* 38 */
+ PARROT_OP_set_addr_i_ic, /* 39 */
+ PARROT_OP_set_addr_p_ic, /* 40 */
+ PARROT_OP_set_addr_p_i, /* 41 */
+ PARROT_OP_get_addr_i_p, /* 42 */
+ PARROT_OP_schedule_p, /* 43 */
+ PARROT_OP_addhandler_p, /* 44 */
+ PARROT_OP_push_eh_ic, /* 45 */
+ PARROT_OP_push_eh_p, /* 46 */
+ PARROT_OP_pop_eh, /* 47 */
+ PARROT_OP_throw_p, /* 48 */
+ PARROT_OP_throw_p_p, /* 49 */
+ PARROT_OP_rethrow_p, /* 50 */
+ PARROT_OP_count_eh_i, /* 51 */
+ PARROT_OP_die_s, /* 52 */
+ PARROT_OP_die_sc, /* 53 */
+ PARROT_OP_die_p, /* 54 */
+ PARROT_OP_die_pc, /* 55 */
+ PARROT_OP_die_i_i, /* 56 */
+ PARROT_OP_die_ic_i, /* 57 */
+ PARROT_OP_die_i_ic, /* 58 */
+ PARROT_OP_die_ic_ic, /* 59 */
+ PARROT_OP_exit_i, /* 60 */
+ PARROT_OP_exit_ic, /* 61 */
+ PARROT_OP_debug_i, /* 62 */
+ PARROT_OP_debug_ic, /* 63 */
+ PARROT_OP_bounds_i, /* 64 */
+ PARROT_OP_bounds_ic, /* 65 */
+ PARROT_OP_profile_i, /* 66 */
+ PARROT_OP_profile_ic, /* 67 */
+ PARROT_OP_trace_i, /* 68 */
+ PARROT_OP_trace_ic, /* 69 */
+ PARROT_OP_gc_debug_i, /* 70 */
+ PARROT_OP_gc_debug_ic, /* 71 */
+ PARROT_OP_interpinfo_i_i, /* 72 */
+ PARROT_OP_interpinfo_i_ic, /* 73 */
+ PARROT_OP_interpinfo_p_i, /* 74 */
+ PARROT_OP_interpinfo_p_ic, /* 75 */
+ PARROT_OP_interpinfo_s_i, /* 76 */
+ PARROT_OP_interpinfo_s_ic, /* 77 */
+ PARROT_OP_warningson_i, /* 78 */
+ PARROT_OP_warningson_ic, /* 79 */
+ PARROT_OP_warningsoff_i, /* 80 */
+ PARROT_OP_warningsoff_ic, /* 81 */
+ PARROT_OP_errorson_i, /* 82 */
+ PARROT_OP_errorson_ic, /* 83 */
+ PARROT_OP_errorsoff_i, /* 84 */
+ PARROT_OP_errorsoff_ic, /* 85 */
+ PARROT_OP_runinterp_p_i, /* 86 */
+ PARROT_OP_runinterp_p_ic, /* 87 */
+ PARROT_OP_getinterp_p, /* 88 */
+ PARROT_OP_sweep_ic, /* 89 */
+ PARROT_OP_collect, /* 90 */
+ PARROT_OP_sweepoff, /* 91 */
+ PARROT_OP_sweepon, /* 92 */
+ PARROT_OP_collectoff, /* 93 */
+ PARROT_OP_collecton, /* 94 */
+ PARROT_OP_needs_destroy_p, /* 95 */
+ PARROT_OP_loadlib_p_s, /* 96 */
+ PARROT_OP_loadlib_p_sc, /* 97 */
+ PARROT_OP_loadlib_p_s_p, /* 98 */
+ PARROT_OP_loadlib_p_sc_p, /* 99 */
+ PARROT_OP_loadlib_p_s_pc, /* 100 */
+ PARROT_OP_loadlib_p_sc_pc, /* 101 */
+ PARROT_OP_dlfunc_p_p_s_s, /* 102 */
+ PARROT_OP_dlfunc_p_p_sc_s, /* 103 */
+ PARROT_OP_dlfunc_p_p_s_sc, /* 104 */
+ PARROT_OP_dlfunc_p_p_sc_sc, /* 105 */
+ PARROT_OP_dlvar_p_p_s, /* 106 */
+ PARROT_OP_dlvar_p_p_sc, /* 107 */
+ PARROT_OP_compreg_s_p, /* 108 */
+ PARROT_OP_compreg_sc_p, /* 109 */
+ PARROT_OP_compreg_p_s, /* 110 */
+ PARROT_OP_compreg_p_sc, /* 111 */
+ PARROT_OP_new_callback_p_p_p_s, /* 112 */
+ PARROT_OP_new_callback_p_p_p_sc, /* 113 */
+ PARROT_OP_annotations_p, /* 114 */
+ PARROT_OP_annotations_p_s, /* 115 */
+ PARROT_OP_annotations_p_sc, /* 116 */
+ PARROT_OP_band_i_i, /* 117 */
+ PARROT_OP_band_i_ic, /* 118 */
+ PARROT_OP_band_i_i_i, /* 119 */
+ PARROT_OP_band_i_ic_i, /* 120 */
+ PARROT_OP_band_i_i_ic, /* 121 */
+ PARROT_OP_bor_i_i, /* 122 */
+ PARROT_OP_bor_i_ic, /* 123 */
+ PARROT_OP_bor_i_i_i, /* 124 */
+ PARROT_OP_bor_i_ic_i, /* 125 */
+ PARROT_OP_bor_i_i_ic, /* 126 */
+ PARROT_OP_shl_i_i, /* 127 */
+ PARROT_OP_shl_i_ic, /* 128 */
+ PARROT_OP_shl_i_i_i, /* 129 */
+ PARROT_OP_shl_i_ic_i, /* 130 */
+ PARROT_OP_shl_i_i_ic, /* 131 */
+ PARROT_OP_shr_i_i, /* 132 */
+ PARROT_OP_shr_i_ic, /* 133 */
+ PARROT_OP_shr_i_i_i, /* 134 */
+ PARROT_OP_shr_i_ic_i, /* 135 */
+ PARROT_OP_shr_i_i_ic, /* 136 */
+ PARROT_OP_lsr_i_i, /* 137 */
+ PARROT_OP_lsr_i_ic, /* 138 */
+ PARROT_OP_lsr_i_i_i, /* 139 */
+ PARROT_OP_lsr_i_ic_i, /* 140 */
+ PARROT_OP_lsr_i_i_ic, /* 141 */
+ PARROT_OP_bxor_i_i, /* 142 */
+ PARROT_OP_bxor_i_ic, /* 143 */
+ PARROT_OP_bxor_i_i_i, /* 144 */
+ PARROT_OP_bxor_i_ic_i, /* 145 */
+ PARROT_OP_bxor_i_i_ic, /* 146 */
+ PARROT_OP_eq_i_i_ic, /* 147 */
+ PARROT_OP_eq_ic_i_ic, /* 148 */
+ PARROT_OP_eq_i_ic_ic, /* 149 */
+ PARROT_OP_eq_n_n_ic, /* 150 */
+ PARROT_OP_eq_nc_n_ic, /* 151 */
+ PARROT_OP_eq_n_nc_ic, /* 152 */
+ PARROT_OP_eq_s_s_ic, /* 153 */
+ PARROT_OP_eq_sc_s_ic, /* 154 */
+ PARROT_OP_eq_s_sc_ic, /* 155 */
+ PARROT_OP_eq_p_p_ic, /* 156 */
+ PARROT_OP_eq_p_i_ic, /* 157 */
+ PARROT_OP_eq_p_ic_ic, /* 158 */
+ PARROT_OP_eq_p_n_ic, /* 159 */
+ PARROT_OP_eq_p_nc_ic, /* 160 */
+ PARROT_OP_eq_p_s_ic, /* 161 */
+ PARROT_OP_eq_p_sc_ic, /* 162 */
+ PARROT_OP_eq_str_p_p_ic, /* 163 */
+ PARROT_OP_eq_num_p_p_ic, /* 164 */
+ PARROT_OP_eq_addr_s_s_ic, /* 165 */
+ PARROT_OP_eq_addr_sc_s_ic, /* 166 */
+ PARROT_OP_eq_addr_s_sc_ic, /* 167 */
+ PARROT_OP_eq_addr_sc_sc_ic, /* 168 */
+ PARROT_OP_eq_addr_p_p_ic, /* 169 */
+ PARROT_OP_ne_i_i_ic, /* 170 */
+ PARROT_OP_ne_ic_i_ic, /* 171 */
+ PARROT_OP_ne_i_ic_ic, /* 172 */
+ PARROT_OP_ne_n_n_ic, /* 173 */
+ PARROT_OP_ne_nc_n_ic, /* 174 */
+ PARROT_OP_ne_n_nc_ic, /* 175 */
+ PARROT_OP_ne_s_s_ic, /* 176 */
+ PARROT_OP_ne_sc_s_ic, /* 177 */
+ PARROT_OP_ne_s_sc_ic, /* 178 */
+ PARROT_OP_ne_p_p_ic, /* 179 */
+ PARROT_OP_ne_p_i_ic, /* 180 */
+ PARROT_OP_ne_p_ic_ic, /* 181 */
+ PARROT_OP_ne_p_n_ic, /* 182 */
+ PARROT_OP_ne_p_nc_ic, /* 183 */
+ PARROT_OP_ne_p_s_ic, /* 184 */
+ PARROT_OP_ne_p_sc_ic, /* 185 */
+ PARROT_OP_ne_str_p_p_ic, /* 186 */
+ PARROT_OP_ne_num_p_p_ic, /* 187 */
+ PARROT_OP_ne_addr_s_s_ic, /* 188 */
+ PARROT_OP_ne_addr_sc_s_ic, /* 189 */
+ PARROT_OP_ne_addr_s_sc_ic, /* 190 */
+ PARROT_OP_ne_addr_sc_sc_ic, /* 191 */
+ PARROT_OP_ne_addr_p_p_ic, /* 192 */
+ PARROT_OP_lt_i_i_ic, /* 193 */
+ PARROT_OP_lt_ic_i_ic, /* 194 */
+ PARROT_OP_lt_i_ic_ic, /* 195 */
+ PARROT_OP_lt_n_n_ic, /* 196 */
+ PARROT_OP_lt_nc_n_ic, /* 197 */
+ PARROT_OP_lt_n_nc_ic, /* 198 */
+ PARROT_OP_lt_s_s_ic, /* 199 */
+ PARROT_OP_lt_sc_s_ic, /* 200 */
+ PARROT_OP_lt_s_sc_ic, /* 201 */
+ PARROT_OP_lt_p_p_ic, /* 202 */
+ PARROT_OP_lt_p_i_ic, /* 203 */
+ PARROT_OP_lt_p_ic_ic, /* 204 */
+ PARROT_OP_lt_p_n_ic, /* 205 */
+ PARROT_OP_lt_p_nc_ic, /* 206 */
+ PARROT_OP_lt_p_s_ic, /* 207 */
+ PARROT_OP_lt_p_sc_ic, /* 208 */
+ PARROT_OP_lt_str_p_p_ic, /* 209 */
+ PARROT_OP_lt_num_p_p_ic, /* 210 */
+ PARROT_OP_le_i_i_ic, /* 211 */
+ PARROT_OP_le_ic_i_ic, /* 212 */
+ PARROT_OP_le_i_ic_ic, /* 213 */
+ PARROT_OP_le_n_n_ic, /* 214 */
+ PARROT_OP_le_nc_n_ic, /* 215 */
+ PARROT_OP_le_n_nc_ic, /* 216 */
+ PARROT_OP_le_s_s_ic, /* 217 */
+ PARROT_OP_le_sc_s_ic, /* 218 */
+ PARROT_OP_le_s_sc_ic, /* 219 */
+ PARROT_OP_le_p_p_ic, /* 220 */
+ PARROT_OP_le_p_i_ic, /* 221 */
+ PARROT_OP_le_p_ic_ic, /* 222 */
+ PARROT_OP_le_p_n_ic, /* 223 */
+ PARROT_OP_le_p_nc_ic, /* 224 */
+ PARROT_OP_le_p_s_ic, /* 225 */
+ PARROT_OP_le_p_sc_ic, /* 226 */
+ PARROT_OP_le_str_p_p_ic, /* 227 */
+ PARROT_OP_le_num_p_p_ic, /* 228 */
+ PARROT_OP_gt_p_p_ic, /* 229 */
+ PARROT_OP_gt_p_i_ic, /* 230 */
+ PARROT_OP_gt_p_ic_ic, /* 231 */
+ PARROT_OP_gt_p_n_ic, /* 232 */
+ PARROT_OP_gt_p_nc_ic, /* 233 */
+ PARROT_OP_gt_p_s_ic, /* 234 */
+ PARROT_OP_gt_p_sc_ic, /* 235 */
+ PARROT_OP_gt_str_p_p_ic, /* 236 */
+ PARROT_OP_gt_num_p_p_ic, /* 237 */
+ PARROT_OP_ge_p_p_ic, /* 238 */
+ PARROT_OP_ge_p_i_ic, /* 239 */
+ PARROT_OP_ge_p_ic_ic, /* 240 */
+ PARROT_OP_ge_p_n_ic, /* 241 */
+ PARROT_OP_ge_p_nc_ic, /* 242 */
+ PARROT_OP_ge_p_s_ic, /* 243 */
+ PARROT_OP_ge_p_sc_ic, /* 244 */
+ PARROT_OP_ge_str_p_p_ic, /* 245 */
+ PARROT_OP_ge_num_p_p_ic, /* 246 */
+ PARROT_OP_if_null_p_ic, /* 247 */
+ PARROT_OP_if_null_s_ic, /* 248 */
+ PARROT_OP_unless_null_p_ic, /* 249 */
+ PARROT_OP_unless_null_s_ic, /* 250 */
+ PARROT_OP_cmp_i_i_i, /* 251 */
+ PARROT_OP_cmp_i_ic_i, /* 252 */
+ PARROT_OP_cmp_i_i_ic, /* 253 */
+ PARROT_OP_cmp_i_n_n, /* 254 */
+ PARROT_OP_cmp_i_nc_n, /* 255 */
+ PARROT_OP_cmp_i_n_nc, /* 256 */
+ PARROT_OP_cmp_i_s_s, /* 257 */
+ PARROT_OP_cmp_i_sc_s, /* 258 */
+ PARROT_OP_cmp_i_s_sc, /* 259 */
+ PARROT_OP_cmp_i_p_p, /* 260 */
+ PARROT_OP_cmp_i_p_i, /* 261 */
+ PARROT_OP_cmp_i_p_ic, /* 262 */
+ PARROT_OP_cmp_i_p_n, /* 263 */
+ PARROT_OP_cmp_i_p_nc, /* 264 */
+ PARROT_OP_cmp_i_p_s, /* 265 */
+ PARROT_OP_cmp_i_p_sc, /* 266 */
+ PARROT_OP_cmp_str_i_p_p, /* 267 */
+ PARROT_OP_cmp_num_i_p_p, /* 268 */
+ PARROT_OP_cmp_pmc_p_p_p, /* 269 */
+ PARROT_OP_issame_i_p_p, /* 270 */
+ PARROT_OP_issame_i_s_s, /* 271 */
+ PARROT_OP_issame_i_sc_s, /* 272 */
+ PARROT_OP_issame_i_s_sc, /* 273 */
+ PARROT_OP_issame_i_sc_sc, /* 274 */
+ PARROT_OP_isntsame_i_p_p, /* 275 */
+ PARROT_OP_isntsame_i_s_s, /* 276 */
+ PARROT_OP_isntsame_i_sc_s, /* 277 */
+ PARROT_OP_isntsame_i_s_sc, /* 278 */
+ PARROT_OP_isntsame_i_sc_sc, /* 279 */
+ PARROT_OP_istrue_i_p, /* 280 */
+ PARROT_OP_isfalse_i_p, /* 281 */
+ PARROT_OP_isnull_i_p, /* 282 */
+ PARROT_OP_isnull_i_pc, /* 283 */
+ PARROT_OP_isnull_i_s, /* 284 */
+ PARROT_OP_isnull_i_sc, /* 285 */
+ PARROT_OP_isgt_i_p_p, /* 286 */
+ PARROT_OP_isge_i_p_p, /* 287 */
+ PARROT_OP_isle_i_i_i, /* 288 */
+ PARROT_OP_isle_i_ic_i, /* 289 */
+ PARROT_OP_isle_i_i_ic, /* 290 */
+ PARROT_OP_isle_i_n_n, /* 291 */
+ PARROT_OP_isle_i_nc_n, /* 292 */
+ PARROT_OP_isle_i_n_nc, /* 293 */
+ PARROT_OP_isle_i_s_s, /* 294 */
+ PARROT_OP_isle_i_sc_s, /* 295 */
+ PARROT_OP_isle_i_s_sc, /* 296 */
+ PARROT_OP_isle_i_p_p, /* 297 */
+ PARROT_OP_islt_i_i_i, /* 298 */
+ PARROT_OP_islt_i_ic_i, /* 299 */
+ PARROT_OP_islt_i_i_ic, /* 300 */
+ PARROT_OP_islt_i_n_n, /* 301 */
+ PARROT_OP_islt_i_nc_n, /* 302 */
+ PARROT_OP_islt_i_n_nc, /* 303 */
+ PARROT_OP_islt_i_s_s, /* 304 */
+ PARROT_OP_islt_i_sc_s, /* 305 */
+ PARROT_OP_islt_i_s_sc, /* 306 */
+ PARROT_OP_islt_i_p_p, /* 307 */
+ PARROT_OP_iseq_i_i_i, /* 308 */
+ PARROT_OP_iseq_i_ic_i, /* 309 */
+ PARROT_OP_iseq_i_i_ic, /* 310 */
+ PARROT_OP_iseq_i_n_n, /* 311 */
+ PARROT_OP_iseq_i_nc_n, /* 312 */
+ PARROT_OP_iseq_i_n_nc, /* 313 */
+ PARROT_OP_iseq_i_s_s, /* 314 */
+ PARROT_OP_iseq_i_sc_s, /* 315 */
+ PARROT_OP_iseq_i_s_sc, /* 316 */
+ PARROT_OP_iseq_i_p_p, /* 317 */
+ PARROT_OP_isne_i_i_i, /* 318 */
+ PARROT_OP_isne_i_ic_i, /* 319 */
+ PARROT_OP_isne_i_i_ic, /* 320 */
+ PARROT_OP_isne_i_n_n, /* 321 */
+ PARROT_OP_isne_i_nc_n, /* 322 */
+ PARROT_OP_isne_i_n_nc, /* 323 */
+ PARROT_OP_isne_i_s_s, /* 324 */
+ PARROT_OP_isne_i_sc_s, /* 325 */
+ PARROT_OP_isne_i_s_sc, /* 326 */
+ PARROT_OP_isne_i_p_p, /* 327 */
+ PARROT_OP_and_i_i_i, /* 328 */
+ PARROT_OP_and_i_ic_i, /* 329 */
+ PARROT_OP_and_i_i_ic, /* 330 */
+ PARROT_OP_and_p_p_p, /* 331 */
+ PARROT_OP_not_i, /* 332 */
+ PARROT_OP_not_i_i, /* 333 */
+ PARROT_OP_not_p, /* 334 */
+ PARROT_OP_not_p_p, /* 335 */
+ PARROT_OP_or_i_i_i, /* 336 */
+ PARROT_OP_or_i_ic_i, /* 337 */
+ PARROT_OP_or_i_i_ic, /* 338 */
+ PARROT_OP_or_p_p_p, /* 339 */
+ PARROT_OP_xor_i_i_i, /* 340 */
+ PARROT_OP_xor_i_ic_i, /* 341 */
+ PARROT_OP_xor_i_i_ic, /* 342 */
+ PARROT_OP_xor_p_p_p, /* 343 */
+ PARROT_OP_print_i, /* 344 */
+ PARROT_OP_print_ic, /* 345 */
+ PARROT_OP_print_n, /* 346 */
+ PARROT_OP_print_nc, /* 347 */
+ PARROT_OP_print_s, /* 348 */
+ PARROT_OP_print_sc, /* 349 */
+ PARROT_OP_print_p, /* 350 */
+ PARROT_OP_say_i, /* 351 */
+ PARROT_OP_say_ic, /* 352 */
+ PARROT_OP_say_n, /* 353 */
+ PARROT_OP_say_nc, /* 354 */
+ PARROT_OP_say_s, /* 355 */
+ PARROT_OP_say_sc, /* 356 */
+ PARROT_OP_say_p, /* 357 */
+ PARROT_OP_print_p_i, /* 358 */
+ PARROT_OP_print_p_ic, /* 359 */
+ PARROT_OP_print_p_n, /* 360 */
+ PARROT_OP_print_p_nc, /* 361 */
+ PARROT_OP_print_p_s, /* 362 */
+ PARROT_OP_print_p_sc, /* 363 */
+ PARROT_OP_print_p_p, /* 364 */
+ PARROT_OP_getstdin_p, /* 365 */
+ PARROT_OP_getstdout_p, /* 366 */
+ PARROT_OP_getstderr_p, /* 367 */
+ PARROT_OP_abs_i, /* 368 */
+ PARROT_OP_abs_n, /* 369 */
+ PARROT_OP_abs_i_i, /* 370 */
+ PARROT_OP_abs_n_n, /* 371 */
+ PARROT_OP_abs_p, /* 372 */
+ PARROT_OP_abs_p_p, /* 373 */
+ PARROT_OP_add_i_i, /* 374 */
+ PARROT_OP_add_i_ic, /* 375 */
+ PARROT_OP_add_n_n, /* 376 */
+ PARROT_OP_add_n_nc, /* 377 */
+ PARROT_OP_add_p_p, /* 378 */
+ PARROT_OP_add_p_i, /* 379 */
+ PARROT_OP_add_p_ic, /* 380 */
+ PARROT_OP_add_p_n, /* 381 */
+ PARROT_OP_add_p_nc, /* 382 */
+ PARROT_OP_add_i_i_i, /* 383 */
+ PARROT_OP_add_i_ic_i, /* 384 */
+ PARROT_OP_add_i_i_ic, /* 385 */
+ PARROT_OP_add_n_n_n, /* 386 */
+ PARROT_OP_add_n_nc_n, /* 387 */
+ PARROT_OP_add_n_n_nc, /* 388 */
+ PARROT_OP_add_p_p_p, /* 389 */
+ PARROT_OP_add_p_p_i, /* 390 */
+ PARROT_OP_add_p_p_ic, /* 391 */
+ PARROT_OP_add_p_p_n, /* 392 */
+ PARROT_OP_add_p_p_nc, /* 393 */
+ PARROT_OP_dec_i, /* 394 */
+ PARROT_OP_dec_n, /* 395 */
+ PARROT_OP_dec_p, /* 396 */
+ PARROT_OP_div_i_i, /* 397 */
+ PARROT_OP_div_i_ic, /* 398 */
+ PARROT_OP_div_n_n, /* 399 */
+ PARROT_OP_div_n_nc, /* 400 */
+ PARROT_OP_div_p_p, /* 401 */
+ PARROT_OP_div_p_i, /* 402 */
+ PARROT_OP_div_p_ic, /* 403 */
+ PARROT_OP_div_p_n, /* 404 */
+ PARROT_OP_div_p_nc, /* 405 */
+ PARROT_OP_div_i_i_i, /* 406 */
+ PARROT_OP_div_i_ic_i, /* 407 */
+ PARROT_OP_div_i_i_ic, /* 408 */
+ PARROT_OP_div_i_ic_ic, /* 409 */
+ PARROT_OP_div_n_n_n, /* 410 */
+ PARROT_OP_div_n_nc_n, /* 411 */
+ PARROT_OP_div_n_n_nc, /* 412 */
+ PARROT_OP_div_n_nc_nc, /* 413 */
+ PARROT_OP_div_p_p_p, /* 414 */
+ PARROT_OP_div_p_p_i, /* 415 */
+ PARROT_OP_div_p_p_ic, /* 416 */
+ PARROT_OP_div_p_p_n, /* 417 */
+ PARROT_OP_div_p_p_nc, /* 418 */
+ PARROT_OP_fdiv_i_i, /* 419 */
+ PARROT_OP_fdiv_i_ic, /* 420 */
+ PARROT_OP_fdiv_n_n, /* 421 */
+ PARROT_OP_fdiv_n_nc, /* 422 */
+ PARROT_OP_fdiv_p_p, /* 423 */
+ PARROT_OP_fdiv_p_i, /* 424 */
+ PARROT_OP_fdiv_p_ic, /* 425 */
+ PARROT_OP_fdiv_p_n, /* 426 */
+ PARROT_OP_fdiv_p_nc, /* 427 */
+ PARROT_OP_fdiv_i_i_i, /* 428 */
+ PARROT_OP_fdiv_i_ic_i, /* 429 */
+ PARROT_OP_fdiv_i_i_ic, /* 430 */
+ PARROT_OP_fdiv_n_n_n, /* 431 */
+ PARROT_OP_fdiv_n_nc_n, /* 432 */
+ PARROT_OP_fdiv_n_n_nc, /* 433 */
+ PARROT_OP_fdiv_p_p_p, /* 434 */
+ PARROT_OP_fdiv_p_p_i, /* 435 */
+ PARROT_OP_fdiv_p_p_ic, /* 436 */
+ PARROT_OP_fdiv_p_p_n, /* 437 */
+ PARROT_OP_fdiv_p_p_nc, /* 438 */
+ PARROT_OP_ceil_n, /* 439 */
+ PARROT_OP_ceil_i_n, /* 440 */
+ PARROT_OP_ceil_n_n, /* 441 */
+ PARROT_OP_floor_n, /* 442 */
+ PARROT_OP_floor_i_n, /* 443 */
+ PARROT_OP_floor_n_n, /* 444 */
+ PARROT_OP_inc_i, /* 445 */
+ PARROT_OP_inc_n, /* 446 */
+ PARROT_OP_inc_p, /* 447 */
+ PARROT_OP_mod_i_i, /* 448 */
+ PARROT_OP_mod_i_ic, /* 449 */
+ PARROT_OP_mod_n_n, /* 450 */
+ PARROT_OP_mod_n_nc, /* 451 */
+ PARROT_OP_mod_p_p, /* 452 */
+ PARROT_OP_mod_p_i, /* 453 */
+ PARROT_OP_mod_p_ic, /* 454 */
+ PARROT_OP_mod_p_n, /* 455 */
+ PARROT_OP_mod_p_nc, /* 456 */
+ PARROT_OP_mod_i_i_i, /* 457 */
+ PARROT_OP_mod_i_ic_i, /* 458 */
+ PARROT_OP_mod_i_i_ic, /* 459 */
+ PARROT_OP_mod_n_n_n, /* 460 */
+ PARROT_OP_mod_n_nc_n, /* 461 */
+ PARROT_OP_mod_n_n_nc, /* 462 */
+ PARROT_OP_mod_p_p_p, /* 463 */
+ PARROT_OP_mod_p_p_i, /* 464 */
+ PARROT_OP_mod_p_p_ic, /* 465 */
+ PARROT_OP_mod_p_p_n, /* 466 */
+ PARROT_OP_mod_p_p_nc, /* 467 */
+ PARROT_OP_mul_i_i, /* 468 */
+ PARROT_OP_mul_i_ic, /* 469 */
+ PARROT_OP_mul_n_n, /* 470 */
+ PARROT_OP_mul_n_nc, /* 471 */
+ PARROT_OP_mul_p_p, /* 472 */
+ PARROT_OP_mul_p_i, /* 473 */
+ PARROT_OP_mul_p_ic, /* 474 */
+ PARROT_OP_mul_p_n, /* 475 */
+ PARROT_OP_mul_p_nc, /* 476 */
+ PARROT_OP_mul_i_i_i, /* 477 */
+ PARROT_OP_mul_i_ic_i, /* 478 */
+ PARROT_OP_mul_i_i_ic, /* 479 */
+ PARROT_OP_mul_n_n_n, /* 480 */
+ PARROT_OP_mul_n_nc_n, /* 481 */
+ PARROT_OP_mul_n_n_nc, /* 482 */
+ PARROT_OP_mul_p_p_p, /* 483 */
+ PARROT_OP_mul_p_p_i, /* 484 */
+ PARROT_OP_mul_p_p_ic, /* 485 */
+ PARROT_OP_mul_p_p_n, /* 486 */
+ PARROT_OP_mul_p_p_nc, /* 487 */
+ PARROT_OP_neg_i, /* 488 */
+ PARROT_OP_neg_n, /* 489 */
+ PARROT_OP_neg_p, /* 490 */
+ PARROT_OP_neg_i_i, /* 491 */
+ PARROT_OP_neg_n_n, /* 492 */
+ PARROT_OP_neg_p_p, /* 493 */
+ PARROT_OP_sub_i_i, /* 494 */
+ PARROT_OP_sub_i_ic, /* 495 */
+ PARROT_OP_sub_n_n, /* 496 */
+ PARROT_OP_sub_n_nc, /* 497 */
+ PARROT_OP_sub_p_p, /* 498 */
+ PARROT_OP_sub_p_i, /* 499 */
+ PARROT_OP_sub_p_ic, /* 500 */
+ PARROT_OP_sub_p_n, /* 501 */
+ PARROT_OP_sub_p_nc, /* 502 */
+ PARROT_OP_sub_i_i_i, /* 503 */
+ PARROT_OP_sub_i_ic_i, /* 504 */
+ PARROT_OP_sub_i_i_ic, /* 505 */
+ PARROT_OP_sub_n_n_n, /* 506 */
+ PARROT_OP_sub_n_nc_n, /* 507 */
+ PARROT_OP_sub_n_n_nc, /* 508 */
+ PARROT_OP_sub_p_p_p, /* 509 */
+ PARROT_OP_sub_p_p_i, /* 510 */
+ PARROT_OP_sub_p_p_ic, /* 511 */
+ PARROT_OP_sub_p_p_n, /* 512 */
+ PARROT_OP_sub_p_p_nc, /* 513 */
+ PARROT_OP_sqrt_n_n, /* 514 */
+ PARROT_OP_callmethodcc_p_s, /* 515 */
+ PARROT_OP_callmethodcc_p_sc, /* 516 */
+ PARROT_OP_callmethodcc_p_p, /* 517 */
+ PARROT_OP_callmethod_p_s_p, /* 518 */
+ PARROT_OP_callmethod_p_sc_p, /* 519 */
+ PARROT_OP_callmethod_p_p_p, /* 520 */
+ PARROT_OP_tailcallmethod_p_s, /* 521 */
+ PARROT_OP_tailcallmethod_p_sc, /* 522 */
+ PARROT_OP_tailcallmethod_p_p, /* 523 */
+ PARROT_OP_addmethod_p_s_p, /* 524 */
+ PARROT_OP_addmethod_p_sc_p, /* 525 */
+ PARROT_OP_can_i_p_s, /* 526 */
+ PARROT_OP_can_i_p_sc, /* 527 */
+ PARROT_OP_does_i_p_s, /* 528 */
+ PARROT_OP_does_i_p_sc, /* 529 */
+ PARROT_OP_does_i_p_p, /* 530 */
+ PARROT_OP_does_i_p_pc, /* 531 */
+ PARROT_OP_isa_i_p_s, /* 532 */
+ PARROT_OP_isa_i_p_sc, /* 533 */
+ PARROT_OP_isa_i_p_p, /* 534 */
+ PARROT_OP_isa_i_p_pc, /* 535 */
+ PARROT_OP_newclass_p_s, /* 536 */
+ PARROT_OP_newclass_p_sc, /* 537 */
+ PARROT_OP_newclass_p_p, /* 538 */
+ PARROT_OP_newclass_p_pc, /* 539 */
+ PARROT_OP_subclass_p_p, /* 540 */
+ PARROT_OP_subclass_p_pc, /* 541 */
+ PARROT_OP_subclass_p_p_s, /* 542 */
+ PARROT_OP_subclass_p_pc_s, /* 543 */
+ PARROT_OP_subclass_p_p_sc, /* 544 */
+ PARROT_OP_subclass_p_pc_sc, /* 545 */
+ PARROT_OP_subclass_p_p_p, /* 546 */
+ PARROT_OP_subclass_p_pc_p, /* 547 */
+ PARROT_OP_subclass_p_p_pc, /* 548 */
+ PARROT_OP_subclass_p_pc_pc, /* 549 */
+ PARROT_OP_subclass_p_s, /* 550 */
+ PARROT_OP_subclass_p_sc, /* 551 */
+ PARROT_OP_subclass_p_s_s, /* 552 */
+ PARROT_OP_subclass_p_sc_s, /* 553 */
+ PARROT_OP_subclass_p_s_sc, /* 554 */
+ PARROT_OP_subclass_p_sc_sc, /* 555 */
+ PARROT_OP_subclass_p_s_p, /* 556 */
+ PARROT_OP_subclass_p_sc_p, /* 557 */
+ PARROT_OP_subclass_p_s_pc, /* 558 */
+ PARROT_OP_subclass_p_sc_pc, /* 559 */
+ PARROT_OP_get_class_p_s, /* 560 */
+ PARROT_OP_get_class_p_sc, /* 561 */
+ PARROT_OP_get_class_p_p, /* 562 */
+ PARROT_OP_get_class_p_pc, /* 563 */
+ PARROT_OP_class_p_p, /* 564 */
+ PARROT_OP_addparent_p_p, /* 565 */
+ PARROT_OP_removeparent_p_p, /* 566 */
+ PARROT_OP_addrole_p_p, /* 567 */
+ PARROT_OP_addattribute_p_s, /* 568 */
+ PARROT_OP_addattribute_p_sc, /* 569 */
+ PARROT_OP_removeattribute_p_s, /* 570 */
+ PARROT_OP_removeattribute_p_sc, /* 571 */
+ PARROT_OP_getattribute_p_p_s, /* 572 */
+ PARROT_OP_getattribute_p_p_sc, /* 573 */
+ PARROT_OP_getattribute_p_p_p_s, /* 574 */
+ PARROT_OP_getattribute_p_p_pc_s, /* 575 */
+ PARROT_OP_getattribute_p_p_p_sc, /* 576 */
+ PARROT_OP_getattribute_p_p_pc_sc, /* 577 */
+ PARROT_OP_setattribute_p_s_p, /* 578 */
+ PARROT_OP_setattribute_p_sc_p, /* 579 */
+ PARROT_OP_setattribute_p_p_s_p, /* 580 */
+ PARROT_OP_setattribute_p_pc_s_p, /* 581 */
+ PARROT_OP_setattribute_p_p_sc_p, /* 582 */
+ PARROT_OP_setattribute_p_pc_sc_p, /* 583 */
+ PARROT_OP_inspect_p_p, /* 584 */
+ PARROT_OP_inspect_p_pc, /* 585 */
+ PARROT_OP_inspect_p_p_s, /* 586 */
+ PARROT_OP_inspect_p_pc_s, /* 587 */
+ PARROT_OP_inspect_p_p_sc, /* 588 */
+ PARROT_OP_inspect_p_pc_sc, /* 589 */
+ PARROT_OP_new_p_s, /* 590 */
+ PARROT_OP_new_p_sc, /* 591 */
+ PARROT_OP_new_p_s_p, /* 592 */
+ PARROT_OP_new_p_sc_p, /* 593 */
+ PARROT_OP_new_p_s_pc, /* 594 */
+ PARROT_OP_new_p_sc_pc, /* 595 */
+ PARROT_OP_new_p_p, /* 596 */
+ PARROT_OP_new_p_pc, /* 597 */
+ PARROT_OP_new_p_p_p, /* 598 */
+ PARROT_OP_new_p_pc_p, /* 599 */
+ PARROT_OP_new_p_p_pc, /* 600 */
+ PARROT_OP_new_p_pc_pc, /* 601 */
+ PARROT_OP_root_new_p_p, /* 602 */
+ PARROT_OP_root_new_p_pc, /* 603 */
+ PARROT_OP_root_new_p_p_p, /* 604 */
+ PARROT_OP_root_new_p_pc_p, /* 605 */
+ PARROT_OP_root_new_p_p_pc, /* 606 */
+ PARROT_OP_root_new_p_pc_pc, /* 607 */
+ PARROT_OP_typeof_s_p, /* 608 */
+ PARROT_OP_typeof_p_p, /* 609 */
+ PARROT_OP_get_repr_s_p, /* 610 */
+ PARROT_OP_find_method_p_p_s, /* 611 */
+ PARROT_OP_find_method_p_p_sc, /* 612 */
+ PARROT_OP_defined_i_p, /* 613 */
+ PARROT_OP_defined_i_p_ki, /* 614 */
+ PARROT_OP_defined_i_p_kic, /* 615 */
+ PARROT_OP_defined_i_p_k, /* 616 */
+ PARROT_OP_defined_i_p_kc, /* 617 */
+ PARROT_OP_exists_i_p_ki, /* 618 */
+ PARROT_OP_exists_i_p_kic, /* 619 */
+ PARROT_OP_exists_i_p_k, /* 620 */
+ PARROT_OP_exists_i_p_kc, /* 621 */
+ PARROT_OP_delete_p_k, /* 622 */
+ PARROT_OP_delete_p_kc, /* 623 */
+ PARROT_OP_delete_p_ki, /* 624 */
+ PARROT_OP_delete_p_kic, /* 625 */
+ PARROT_OP_elements_i_p, /* 626 */
+ PARROT_OP_push_p_i, /* 627 */
+ PARROT_OP_push_p_ic, /* 628 */
+ PARROT_OP_push_p_n, /* 629 */
+ PARROT_OP_push_p_nc, /* 630 */
+ PARROT_OP_push_p_s, /* 631 */
+ PARROT_OP_push_p_sc, /* 632 */
+ PARROT_OP_push_p_p, /* 633 */
+ PARROT_OP_pop_i_p, /* 634 */
+ PARROT_OP_pop_n_p, /* 635 */
+ PARROT_OP_pop_s_p, /* 636 */
+ PARROT_OP_pop_p_p, /* 637 */
+ PARROT_OP_unshift_p_i, /* 638 */
+ PARROT_OP_unshift_p_ic, /* 639 */
+ PARROT_OP_unshift_p_n, /* 640 */
+ PARROT_OP_unshift_p_nc, /* 641 */
+ PARROT_OP_unshift_p_s, /* 642 */
+ PARROT_OP_unshift_p_sc, /* 643 */
+ PARROT_OP_unshift_p_p, /* 644 */
+ PARROT_OP_shift_i_p, /* 645 */
+ PARROT_OP_shift_n_p, /* 646 */
+ PARROT_OP_shift_s_p, /* 647 */
+ PARROT_OP_shift_p_p, /* 648 */
+ PARROT_OP_splice_p_p_i_i, /* 649 */
+ PARROT_OP_splice_p_p_ic_i, /* 650 */
+ PARROT_OP_splice_p_p_i_ic, /* 651 */
+ PARROT_OP_splice_p_p_ic_ic, /* 652 */
+ PARROT_OP_setprop_p_s_p, /* 653 */
+ PARROT_OP_setprop_p_sc_p, /* 654 */
+ PARROT_OP_getprop_p_s_p, /* 655 */
+ PARROT_OP_getprop_p_sc_p, /* 656 */
+ PARROT_OP_delprop_p_s, /* 657 */
+ PARROT_OP_delprop_p_sc, /* 658 */
+ PARROT_OP_prophash_p_p, /* 659 */
+ PARROT_OP_freeze_s_p, /* 660 */
+ PARROT_OP_thaw_p_s, /* 661 */
+ PARROT_OP_thaw_p_sc, /* 662 */
+ PARROT_OP_add_multi_s_s_p, /* 663 */
+ PARROT_OP_add_multi_sc_s_p, /* 664 */
+ PARROT_OP_add_multi_s_sc_p, /* 665 */
+ PARROT_OP_add_multi_sc_sc_p, /* 666 */
+ PARROT_OP_find_multi_p_s_s, /* 667 */
+ PARROT_OP_find_multi_p_sc_s, /* 668 */
+ PARROT_OP_find_multi_p_s_sc, /* 669 */
+ PARROT_OP_find_multi_p_sc_sc, /* 670 */
+ PARROT_OP_register_p, /* 671 */
+ PARROT_OP_unregister_p, /* 672 */
+ PARROT_OP_box_p_i, /* 673 */
+ PARROT_OP_box_p_ic, /* 674 */
+ PARROT_OP_box_p_n, /* 675 */
+ PARROT_OP_box_p_nc, /* 676 */
+ PARROT_OP_box_p_s, /* 677 */
+ PARROT_OP_box_p_sc, /* 678 */
+ PARROT_OP_iter_p_p, /* 679 */
+ PARROT_OP_morph_p_p, /* 680 */
+ PARROT_OP_morph_p_pc, /* 681 */
+ PARROT_OP_clone_s_s, /* 682 */
+ PARROT_OP_clone_s_sc, /* 683 */
+ PARROT_OP_set_i_i, /* 684 */
+ PARROT_OP_set_i_ic, /* 685 */
+ PARROT_OP_set_i_n, /* 686 */
+ PARROT_OP_set_i_nc, /* 687 */
+ PARROT_OP_set_i_s, /* 688 */
+ PARROT_OP_set_i_sc, /* 689 */
+ PARROT_OP_set_n_n, /* 690 */
+ PARROT_OP_set_n_nc, /* 691 */
+ PARROT_OP_set_n_i, /* 692 */
+ PARROT_OP_set_n_ic, /* 693 */
+ PARROT_OP_set_n_s, /* 694 */
+ PARROT_OP_set_n_sc, /* 695 */
+ PARROT_OP_set_n_p, /* 696 */
+ PARROT_OP_set_s_p, /* 697 */
+ PARROT_OP_set_s_s, /* 698 */
+ PARROT_OP_set_s_sc, /* 699 */
+ PARROT_OP_set_s_i, /* 700 */
+ PARROT_OP_set_s_ic, /* 701 */
+ PARROT_OP_set_s_n, /* 702 */
+ PARROT_OP_set_s_nc, /* 703 */
+ PARROT_OP_set_p_pc, /* 704 */
+ PARROT_OP_set_p_p, /* 705 */
+ PARROT_OP_set_p_i, /* 706 */
+ PARROT_OP_set_p_ic, /* 707 */
+ PARROT_OP_set_p_n, /* 708 */
+ PARROT_OP_set_p_nc, /* 709 */
+ PARROT_OP_set_p_s, /* 710 */
+ PARROT_OP_set_p_sc, /* 711 */
+ PARROT_OP_set_i_p, /* 712 */
+ PARROT_OP_assign_p_p, /* 713 */
+ PARROT_OP_assign_p_i, /* 714 */
+ PARROT_OP_assign_p_ic, /* 715 */
+ PARROT_OP_assign_p_n, /* 716 */
+ PARROT_OP_assign_p_nc, /* 717 */
+ PARROT_OP_assign_p_s, /* 718 */
+ PARROT_OP_assign_p_sc, /* 719 */
+ PARROT_OP_assign_s_s, /* 720 */
+ PARROT_OP_assign_s_sc, /* 721 */
+ PARROT_OP_setref_p_p, /* 722 */
+ PARROT_OP_deref_p_p, /* 723 */
+ PARROT_OP_set_p_ki_i, /* 724 */
+ PARROT_OP_set_p_kic_i, /* 725 */
+ PARROT_OP_set_p_ki_ic, /* 726 */
+ PARROT_OP_set_p_kic_ic, /* 727 */
+ PARROT_OP_set_p_ki_n, /* 728 */
+ PARROT_OP_set_p_kic_n, /* 729 */
+ PARROT_OP_set_p_ki_nc, /* 730 */
+ PARROT_OP_set_p_kic_nc, /* 731 */
+ PARROT_OP_set_p_ki_s, /* 732 */
+ PARROT_OP_set_p_kic_s, /* 733 */
+ PARROT_OP_set_p_ki_sc, /* 734 */
+ PARROT_OP_set_p_kic_sc, /* 735 */
+ PARROT_OP_set_p_ki_p, /* 736 */
+ PARROT_OP_set_p_kic_p, /* 737 */
+ PARROT_OP_set_i_p_ki, /* 738 */
+ PARROT_OP_set_i_p_kic, /* 739 */
+ PARROT_OP_set_n_p_ki, /* 740 */
+ PARROT_OP_set_n_p_kic, /* 741 */
+ PARROT_OP_set_s_p_ki, /* 742 */
+ PARROT_OP_set_s_p_kic, /* 743 */
+ PARROT_OP_set_p_p_ki, /* 744 */
+ PARROT_OP_set_p_p_kic, /* 745 */
+ PARROT_OP_set_p_k_i, /* 746 */
+ PARROT_OP_set_p_kc_i, /* 747 */
+ PARROT_OP_set_p_k_ic, /* 748 */
+ PARROT_OP_set_p_kc_ic, /* 749 */
+ PARROT_OP_set_p_k_n, /* 750 */
+ PARROT_OP_set_p_kc_n, /* 751 */
+ PARROT_OP_set_p_k_nc, /* 752 */
+ PARROT_OP_set_p_kc_nc, /* 753 */
+ PARROT_OP_set_p_k_s, /* 754 */
+ PARROT_OP_set_p_kc_s, /* 755 */
+ PARROT_OP_set_p_k_sc, /* 756 */
+ PARROT_OP_set_p_kc_sc, /* 757 */
+ PARROT_OP_set_p_k_p, /* 758 */
+ PARROT_OP_set_p_kc_p, /* 759 */
+ PARROT_OP_set_i_p_k, /* 760 */
+ PARROT_OP_set_i_p_kc, /* 761 */
+ PARROT_OP_set_n_p_k, /* 762 */
+ PARROT_OP_set_n_p_kc, /* 763 */
+ PARROT_OP_set_s_p_k, /* 764 */
+ PARROT_OP_set_s_p_kc, /* 765 */
+ PARROT_OP_set_p_p_k, /* 766 */
+ PARROT_OP_set_p_p_kc, /* 767 */
+ PARROT_OP_clone_p_p, /* 768 */
+ PARROT_OP_clone_p_p_p, /* 769 */
+ PARROT_OP_clone_p_p_pc, /* 770 */
+ PARROT_OP_copy_p_p, /* 771 */
+ PARROT_OP_null_s, /* 772 */
+ PARROT_OP_null_i, /* 773 */
+ PARROT_OP_null_p, /* 774 */
+ PARROT_OP_null_n, /* 775 */
+ PARROT_OP_ord_i_s, /* 776 */
+ PARROT_OP_ord_i_sc, /* 777 */
+ PARROT_OP_ord_i_s_i, /* 778 */
+ PARROT_OP_ord_i_sc_i, /* 779 */
+ PARROT_OP_ord_i_s_ic, /* 780 */
+ PARROT_OP_ord_i_sc_ic, /* 781 */
+ PARROT_OP_chr_s_i, /* 782 */
+ PARROT_OP_chr_s_ic, /* 783 */
+ PARROT_OP_chopn_s_s_i, /* 784 */
+ PARROT_OP_chopn_s_sc_i, /* 785 */
+ PARROT_OP_chopn_s_s_ic, /* 786 */
+ PARROT_OP_chopn_s_sc_ic, /* 787 */
+ PARROT_OP_concat_s_s, /* 788 */
+ PARROT_OP_concat_s_sc, /* 789 */
+ PARROT_OP_concat_p_p, /* 790 */
+ PARROT_OP_concat_p_s, /* 791 */
+ PARROT_OP_concat_p_sc, /* 792 */
+ PARROT_OP_concat_s_s_s, /* 793 */
+ PARROT_OP_concat_s_sc_s, /* 794 */
+ PARROT_OP_concat_s_s_sc, /* 795 */
+ PARROT_OP_concat_p_p_s, /* 796 */
+ PARROT_OP_concat_p_p_sc, /* 797 */
+ PARROT_OP_concat_p_p_p, /* 798 */
+ PARROT_OP_repeat_s_s_i, /* 799 */
+ PARROT_OP_repeat_s_sc_i, /* 800 */
+ PARROT_OP_repeat_s_s_ic, /* 801 */
+ PARROT_OP_repeat_s_sc_ic, /* 802 */
+ PARROT_OP_repeat_p_p_i, /* 803 */
+ PARROT_OP_repeat_p_p_ic, /* 804 */
+ PARROT_OP_repeat_p_p_p, /* 805 */
+ PARROT_OP_repeat_p_i, /* 806 */
+ PARROT_OP_repeat_p_ic, /* 807 */
+ PARROT_OP_repeat_p_p, /* 808 */
+ PARROT_OP_length_i_s, /* 809 */
+ PARROT_OP_length_i_sc, /* 810 */
+ PARROT_OP_bytelength_i_s, /* 811 */
+ PARROT_OP_bytelength_i_sc, /* 812 */
+ PARROT_OP_pin_s, /* 813 */
+ PARROT_OP_unpin_s, /* 814 */
+ PARROT_OP_substr_s_s_i, /* 815 */
+ PARROT_OP_substr_s_sc_i, /* 816 */
+ PARROT_OP_substr_s_s_ic, /* 817 */
+ PARROT_OP_substr_s_sc_ic, /* 818 */
+ PARROT_OP_substr_s_s_i_i, /* 819 */
+ PARROT_OP_substr_s_sc_i_i, /* 820 */
+ PARROT_OP_substr_s_s_ic_i, /* 821 */
+ PARROT_OP_substr_s_sc_ic_i, /* 822 */
+ PARROT_OP_substr_s_s_i_ic, /* 823 */
+ PARROT_OP_substr_s_sc_i_ic, /* 824 */
+ PARROT_OP_substr_s_s_ic_ic, /* 825 */
+ PARROT_OP_substr_s_sc_ic_ic, /* 826 */
+ PARROT_OP_substr_s_p_i_i, /* 827 */
+ PARROT_OP_substr_s_p_ic_i, /* 828 */
+ PARROT_OP_substr_s_p_i_ic, /* 829 */
+ PARROT_OP_substr_s_p_ic_ic, /* 830 */
+ PARROT_OP_replace_s_s_i_i_s, /* 831 */
+ PARROT_OP_replace_s_sc_i_i_s, /* 832 */
+ PARROT_OP_replace_s_s_ic_i_s, /* 833 */
+ PARROT_OP_replace_s_sc_ic_i_s, /* 834 */
+ PARROT_OP_replace_s_s_i_ic_s, /* 835 */
+ PARROT_OP_replace_s_sc_i_ic_s, /* 836 */
+ PARROT_OP_replace_s_s_ic_ic_s, /* 837 */
+ PARROT_OP_replace_s_sc_ic_ic_s, /* 838 */
+ PARROT_OP_replace_s_s_i_i_sc, /* 839 */
+ PARROT_OP_replace_s_sc_i_i_sc, /* 840 */
+ PARROT_OP_replace_s_s_ic_i_sc, /* 841 */
+ PARROT_OP_replace_s_sc_ic_i_sc, /* 842 */
+ PARROT_OP_replace_s_s_i_ic_sc, /* 843 */
+ PARROT_OP_replace_s_sc_i_ic_sc, /* 844 */
+ PARROT_OP_replace_s_s_ic_ic_sc, /* 845 */
+ PARROT_OP_replace_s_sc_ic_ic_sc, /* 846 */
+ PARROT_OP_index_i_s_s, /* 847 */
+ PARROT_OP_index_i_sc_s, /* 848 */
+ PARROT_OP_index_i_s_sc, /* 849 */
+ PARROT_OP_index_i_sc_sc, /* 850 */
+ PARROT_OP_index_i_s_s_i, /* 851 */
+ PARROT_OP_index_i_sc_s_i, /* 852 */
+ PARROT_OP_index_i_s_sc_i, /* 853 */
+ PARROT_OP_index_i_sc_sc_i, /* 854 */
+ PARROT_OP_index_i_s_s_ic, /* 855 */
+ PARROT_OP_index_i_sc_s_ic, /* 856 */
+ PARROT_OP_index_i_s_sc_ic, /* 857 */
+ PARROT_OP_index_i_sc_sc_ic, /* 858 */
+ PARROT_OP_sprintf_s_s_p, /* 859 */
+ PARROT_OP_sprintf_s_sc_p, /* 860 */
+ PARROT_OP_sprintf_p_p_p, /* 861 */
+ PARROT_OP_new_s, /* 862 */
+ PARROT_OP_new_s_i, /* 863 */
+ PARROT_OP_new_s_ic, /* 864 */
+ PARROT_OP_stringinfo_i_s_i, /* 865 */
+ PARROT_OP_stringinfo_i_sc_i, /* 866 */
+ PARROT_OP_stringinfo_i_s_ic, /* 867 */
+ PARROT_OP_stringinfo_i_sc_ic, /* 868 */
+ PARROT_OP_upcase_s_s, /* 869 */
+ PARROT_OP_upcase_s_sc, /* 870 */
+ PARROT_OP_downcase_s_s, /* 871 */
+ PARROT_OP_downcase_s_sc, /* 872 */
+ PARROT_OP_titlecase_s_s, /* 873 */
+ PARROT_OP_titlecase_s_sc, /* 874 */
+ PARROT_OP_join_s_s_p, /* 875 */
+ PARROT_OP_join_s_sc_p, /* 876 */
+ PARROT_OP_split_p_s_s, /* 877 */
+ PARROT_OP_split_p_sc_s, /* 878 */
+ PARROT_OP_split_p_s_sc, /* 879 */
+ PARROT_OP_split_p_sc_sc, /* 880 */
+ PARROT_OP_charset_i_s, /* 881 */
+ PARROT_OP_charset_i_sc, /* 882 */
+ PARROT_OP_charsetname_s_i, /* 883 */
+ PARROT_OP_charsetname_s_ic, /* 884 */
+ PARROT_OP_find_charset_i_s, /* 885 */
+ PARROT_OP_find_charset_i_sc, /* 886 */
+ PARROT_OP_trans_charset_s_s_i, /* 887 */
+ PARROT_OP_trans_charset_s_sc_i, /* 888 */
+ PARROT_OP_trans_charset_s_s_ic, /* 889 */
+ PARROT_OP_trans_charset_s_sc_ic, /* 890 */
+ PARROT_OP_encoding_i_s, /* 891 */
+ PARROT_OP_encoding_i_sc, /* 892 */
+ PARROT_OP_encodingname_s_i, /* 893 */
+ PARROT_OP_encodingname_s_ic, /* 894 */
+ PARROT_OP_find_encoding_i_s, /* 895 */
+ PARROT_OP_find_encoding_i_sc, /* 896 */
+ PARROT_OP_trans_encoding_s_s_i, /* 897 */
+ PARROT_OP_trans_encoding_s_sc_i, /* 898 */
+ PARROT_OP_trans_encoding_s_s_ic, /* 899 */
+ PARROT_OP_trans_encoding_s_sc_ic, /* 900 */
+ PARROT_OP_is_cclass_i_i_s_i, /* 901 */
+ PARROT_OP_is_cclass_i_ic_s_i, /* 902 */
+ PARROT_OP_is_cclass_i_i_sc_i, /* 903 */
+ PARROT_OP_is_cclass_i_ic_sc_i, /* 904 */
+ PARROT_OP_is_cclass_i_i_s_ic, /* 905 */
+ PARROT_OP_is_cclass_i_ic_s_ic, /* 906 */
+ PARROT_OP_is_cclass_i_i_sc_ic, /* 907 */
+ PARROT_OP_is_cclass_i_ic_sc_ic, /* 908 */
+ PARROT_OP_find_cclass_i_i_s_i_i, /* 909 */
+ PARROT_OP_find_cclass_i_ic_s_i_i, /* 910 */
+ PARROT_OP_find_cclass_i_i_sc_i_i, /* 911 */
+ PARROT_OP_find_cclass_i_ic_sc_i_i, /* 912 */
+ PARROT_OP_find_cclass_i_i_s_ic_i, /* 913 */
+ PARROT_OP_find_cclass_i_ic_s_ic_i, /* 914 */
+ PARROT_OP_find_cclass_i_i_sc_ic_i, /* 915 */
+ PARROT_OP_find_cclass_i_ic_sc_ic_i, /* 916 */
+ PARROT_OP_find_cclass_i_i_s_i_ic, /* 917 */
+ PARROT_OP_find_cclass_i_ic_s_i_ic, /* 918 */
+ PARROT_OP_find_cclass_i_i_sc_i_ic, /* 919 */
+ PARROT_OP_find_cclass_i_ic_sc_i_ic, /* 920 */
+ PARROT_OP_find_cclass_i_i_s_ic_ic, /* 921 */
+ PARROT_OP_find_cclass_i_ic_s_ic_ic, /* 922 */
+ PARROT_OP_find_cclass_i_i_sc_ic_ic, /* 923 */
+ PARROT_OP_find_cclass_i_ic_sc_ic_ic, /* 924 */
+ PARROT_OP_find_not_cclass_i_i_s_i_i, /* 925 */
+ PARROT_OP_find_not_cclass_i_ic_s_i_i, /* 926 */
+ PARROT_OP_find_not_cclass_i_i_sc_i_i, /* 927 */
+ PARROT_OP_find_not_cclass_i_ic_sc_i_i, /* 928 */
+ PARROT_OP_find_not_cclass_i_i_s_ic_i, /* 929 */
+ PARROT_OP_find_not_cclass_i_ic_s_ic_i, /* 930 */
+ PARROT_OP_find_not_cclass_i_i_sc_ic_i, /* 931 */
+ PARROT_OP_find_not_cclass_i_ic_sc_ic_i, /* 932 */
+ PARROT_OP_find_not_cclass_i_i_s_i_ic, /* 933 */
+ PARROT_OP_find_not_cclass_i_ic_s_i_ic, /* 934 */
+ PARROT_OP_find_not_cclass_i_i_sc_i_ic, /* 935 */
+ PARROT_OP_find_not_cclass_i_ic_sc_i_ic, /* 936 */
+ PARROT_OP_find_not_cclass_i_i_s_ic_ic, /* 937 */
+ PARROT_OP_find_not_cclass_i_ic_s_ic_ic, /* 938 */
+ PARROT_OP_find_not_cclass_i_i_sc_ic_ic, /* 939 */
+ PARROT_OP_find_not_cclass_i_ic_sc_ic_ic, /* 940 */
+ PARROT_OP_escape_s_s, /* 941 */
+ PARROT_OP_compose_s_s, /* 942 */
+ PARROT_OP_compose_s_sc, /* 943 */
+ PARROT_OP_spawnw_i_s, /* 944 */
+ PARROT_OP_spawnw_i_sc, /* 945 */
+ PARROT_OP_spawnw_i_p, /* 946 */
+ PARROT_OP_err_i, /* 947 */
+ PARROT_OP_err_s, /* 948 */
+ PARROT_OP_err_s_i, /* 949 */
+ PARROT_OP_err_s_ic, /* 950 */
+ PARROT_OP_time_i, /* 951 */
+ PARROT_OP_time_n, /* 952 */
+ PARROT_OP_sleep_i, /* 953 */
+ PARROT_OP_sleep_ic, /* 954 */
+ PARROT_OP_sleep_n, /* 955 */
+ PARROT_OP_sleep_nc, /* 956 */
+ PARROT_OP_store_lex_s_p, /* 957 */
+ PARROT_OP_store_lex_sc_p, /* 958 */
+ PARROT_OP_store_dynamic_lex_s_p, /* 959 */
+ PARROT_OP_store_dynamic_lex_sc_p, /* 960 */
+ PARROT_OP_find_lex_p_s, /* 961 */
+ PARROT_OP_find_lex_p_sc, /* 962 */
+ PARROT_OP_find_dynamic_lex_p_s, /* 963 */
+ PARROT_OP_find_dynamic_lex_p_sc, /* 964 */
+ PARROT_OP_find_caller_lex_p_s, /* 965 */
+ PARROT_OP_find_caller_lex_p_sc, /* 966 */
+ PARROT_OP_get_namespace_p, /* 967 */
+ PARROT_OP_get_namespace_p_p, /* 968 */
+ PARROT_OP_get_namespace_p_pc, /* 969 */
+ PARROT_OP_get_hll_namespace_p, /* 970 */
+ PARROT_OP_get_hll_namespace_p_p, /* 971 */
+ PARROT_OP_get_hll_namespace_p_pc, /* 972 */
+ PARROT_OP_get_root_namespace_p, /* 973 */
+ PARROT_OP_get_root_namespace_p_p, /* 974 */
+ PARROT_OP_get_root_namespace_p_pc, /* 975 */
+ PARROT_OP_get_global_p_s, /* 976 */
+ PARROT_OP_get_global_p_sc, /* 977 */
+ PARROT_OP_get_global_p_p_s, /* 978 */
+ PARROT_OP_get_global_p_pc_s, /* 979 */
+ PARROT_OP_get_global_p_p_sc, /* 980 */
+ PARROT_OP_get_global_p_pc_sc, /* 981 */
+ PARROT_OP_get_hll_global_p_s, /* 982 */
+ PARROT_OP_get_hll_global_p_sc, /* 983 */
+ PARROT_OP_get_hll_global_p_p_s, /* 984 */
+ PARROT_OP_get_hll_global_p_pc_s, /* 985 */
+ PARROT_OP_get_hll_global_p_p_sc, /* 986 */
+ PARROT_OP_get_hll_global_p_pc_sc, /* 987 */
+ PARROT_OP_get_root_global_p_s, /* 988 */
+ PARROT_OP_get_root_global_p_sc, /* 989 */
+ PARROT_OP_get_root_global_p_p_s, /* 990 */
+ PARROT_OP_get_root_global_p_pc_s, /* 991 */
+ PARROT_OP_get_root_global_p_p_sc, /* 992 */
+ PARROT_OP_get_root_global_p_pc_sc, /* 993 */
+ PARROT_OP_set_global_s_p, /* 994 */
+ PARROT_OP_set_global_sc_p, /* 995 */
+ PARROT_OP_set_global_p_s_p, /* 996 */
+ PARROT_OP_set_global_pc_s_p, /* 997 */
+ PARROT_OP_set_global_p_sc_p, /* 998 */
+ PARROT_OP_set_global_pc_sc_p, /* 999 */
+ PARROT_OP_set_hll_global_s_p, /* 1000 */
+ PARROT_OP_set_hll_global_sc_p, /* 1001 */
+ PARROT_OP_set_hll_global_p_s_p, /* 1002 */
+ PARROT_OP_set_hll_global_pc_s_p, /* 1003 */
+ PARROT_OP_set_hll_global_p_sc_p, /* 1004 */
+ PARROT_OP_set_hll_global_pc_sc_p, /* 1005 */
+ PARROT_OP_set_root_global_s_p, /* 1006 */
+ PARROT_OP_set_root_global_sc_p, /* 1007 */
+ PARROT_OP_set_root_global_p_s_p, /* 1008 */
+ PARROT_OP_set_root_global_pc_s_p, /* 1009 */
+ PARROT_OP_set_root_global_p_sc_p, /* 1010 */
+ PARROT_OP_set_root_global_pc_sc_p, /* 1011 */
+ PARROT_OP_find_name_p_s, /* 1012 */
+ PARROT_OP_find_name_p_sc, /* 1013 */
+ PARROT_OP_find_sub_not_null_p_s, /* 1014 */
+ PARROT_OP_find_sub_not_null_p_sc, /* 1015 */
+ PARROT_OP_trap, /* 1016 */
+ PARROT_OP_set_label_p_ic, /* 1017 */
+ PARROT_OP_get_label_i_p, /* 1018 */
+ PARROT_OP_fetch_p_p_p_p, /* 1019 */
+ PARROT_OP_fetch_p_pc_p_p, /* 1020 */
+ PARROT_OP_fetch_p_p_pc_p, /* 1021 */
+ PARROT_OP_fetch_p_pc_pc_p, /* 1022 */
+ PARROT_OP_fetch_p_p_p_pc, /* 1023 */
+ PARROT_OP_fetch_p_pc_p_pc, /* 1024 */
+ PARROT_OP_fetch_p_p_pc_pc, /* 1025 */
+ PARROT_OP_fetch_p_pc_pc_pc, /* 1026 */
+ PARROT_OP_fetch_p_p_i_p, /* 1027 */
+ PARROT_OP_fetch_p_pc_i_p, /* 1028 */
+ PARROT_OP_fetch_p_p_ic_p, /* 1029 */
+ PARROT_OP_fetch_p_pc_ic_p, /* 1030 */
+ PARROT_OP_fetch_p_p_i_pc, /* 1031 */
+ PARROT_OP_fetch_p_pc_i_pc, /* 1032 */
+ PARROT_OP_fetch_p_p_ic_pc, /* 1033 */
+ PARROT_OP_fetch_p_pc_ic_pc, /* 1034 */
+ PARROT_OP_fetch_p_p_s_p, /* 1035 */
+ PARROT_OP_fetch_p_pc_s_p, /* 1036 */
+ PARROT_OP_fetch_p_p_sc_p, /* 1037 */
+ PARROT_OP_fetch_p_pc_sc_p, /* 1038 */
+ PARROT_OP_fetch_p_p_s_pc, /* 1039 */
+ PARROT_OP_fetch_p_pc_s_pc, /* 1040 */
+ PARROT_OP_fetch_p_p_sc_pc, /* 1041 */
+ PARROT_OP_fetch_p_pc_sc_pc, /* 1042 */
+ PARROT_OP_vivify_p_p_p_p, /* 1043 */
+ PARROT_OP_vivify_p_pc_p_p, /* 1044 */
+ PARROT_OP_vivify_p_p_pc_p, /* 1045 */
+ PARROT_OP_vivify_p_pc_pc_p, /* 1046 */
+ PARROT_OP_vivify_p_p_p_pc, /* 1047 */
+ PARROT_OP_vivify_p_pc_p_pc, /* 1048 */
+ PARROT_OP_vivify_p_p_pc_pc, /* 1049 */
+ PARROT_OP_vivify_p_pc_pc_pc, /* 1050 */
+ PARROT_OP_vivify_p_p_i_p, /* 1051 */
+ PARROT_OP_vivify_p_pc_i_p, /* 1052 */
+ PARROT_OP_vivify_p_p_ic_p, /* 1053 */
+ PARROT_OP_vivify_p_pc_ic_p, /* 1054 */
+ PARROT_OP_vivify_p_p_i_pc, /* 1055 */
+ PARROT_OP_vivify_p_pc_i_pc, /* 1056 */
+ PARROT_OP_vivify_p_p_ic_pc, /* 1057 */
+ PARROT_OP_vivify_p_pc_ic_pc, /* 1058 */
+ PARROT_OP_vivify_p_p_s_p, /* 1059 */
+ PARROT_OP_vivify_p_pc_s_p, /* 1060 */
+ PARROT_OP_vivify_p_p_sc_p, /* 1061 */
+ PARROT_OP_vivify_p_pc_sc_p, /* 1062 */
+ PARROT_OP_vivify_p_p_s_pc, /* 1063 */
+ PARROT_OP_vivify_p_pc_s_pc, /* 1064 */
+ PARROT_OP_vivify_p_p_sc_pc, /* 1065 */
+ PARROT_OP_vivify_p_pc_sc_pc, /* 1066 */
+ PARROT_OP_new_p_s_i, /* 1067 */
+ PARROT_OP_new_p_sc_i, /* 1068 */
+ PARROT_OP_new_p_s_ic, /* 1069 */
+ PARROT_OP_new_p_sc_ic, /* 1070 */
+ PARROT_OP_new_p_p_i, /* 1071 */
+ PARROT_OP_new_p_pc_i, /* 1072 */
+ PARROT_OP_new_p_p_ic, /* 1073 */
+ PARROT_OP_new_p_pc_ic, /* 1074 */
+ PARROT_OP_root_new_p_p_i, /* 1075 */
+ PARROT_OP_root_new_p_pc_i, /* 1076 */
+ PARROT_OP_root_new_p_p_ic, /* 1077 */
+ PARROT_OP_root_new_p_pc_ic, /* 1078 */
+ PARROT_OP_find_codepoint_i_s, /* 1079 */
+ PARROT_OP_find_codepoint_i_sc, /* 1080 */
+ PARROT_OP_finalize_p, /* 1081 */
+ PARROT_OP_finalize_pc /* 1082 */
+
+} parrot_opcode_enums;
+
+
+#endif /* PARROT_OPLIB_OPS_H_GUARD */
+
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * buffer-read-only: t
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Copied: branches/gsoc_threads/include/parrot/opsenum.h (from r47544, trunk/include/parrot/opsenum.h)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/include/parrot/opsenum.h Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/include/parrot/opsenum.h)
@@ -0,0 +1,1114 @@
+
+/* $Id$ */
+
+#ifndef PARROT_OPSENUM_H_GUARD
+#define PARROT_OPSENUM_H_GUARD
+
+
+/* ex: set ro:
+ * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ *
+ * This file is generated automatically from 'src/ops/core.ops' (and possibly other
+ * .ops files). by ops2c.nqp.
+ *
+ * Any changes made here will be lost! To regenerate this file after making
+ * changes to any ops, use the bootstap-ops makefile target.
+ *
+ */
+enum OPS_ENUM {
+ enum_ops_end = 0,
+ enum_ops_noop = 1,
+ enum_ops_check_events = 2,
+ enum_ops_check_events__ = 3,
+ enum_ops_wrapper__ = 4,
+ enum_ops_load_bytecode_s = 5,
+ enum_ops_load_bytecode_sc = 6,
+ enum_ops_load_language_s = 7,
+ enum_ops_load_language_sc = 8,
+ enum_ops_branch_i = 9,
+ enum_ops_branch_ic = 10,
+ enum_ops_local_branch_p_i = 11,
+ enum_ops_local_branch_p_ic = 12,
+ enum_ops_local_return_p = 13,
+ enum_ops_jump_i = 14,
+ enum_ops_jump_ic = 15,
+ enum_ops_enternative = 16,
+ enum_ops_if_i_ic = 17,
+ enum_ops_if_n_ic = 18,
+ enum_ops_if_s_ic = 19,
+ enum_ops_if_p_ic = 20,
+ enum_ops_unless_i_ic = 21,
+ enum_ops_unless_n_ic = 22,
+ enum_ops_unless_s_ic = 23,
+ enum_ops_unless_p_ic = 24,
+ enum_ops_invokecc_p = 25,
+ enum_ops_invoke_p_p = 26,
+ enum_ops_yield = 27,
+ enum_ops_tailcall_p = 28,
+ enum_ops_returncc = 29,
+ enum_ops_capture_lex_p = 30,
+ enum_ops_newclosure_p_p = 31,
+ enum_ops_set_args_pc = 32,
+ enum_ops_get_params_pc = 33,
+ enum_ops_set_returns_pc = 34,
+ enum_ops_get_results_pc = 35,
+ enum_ops_set_result_info_p = 36,
+ enum_ops_set_result_info_pc = 37,
+ enum_ops_result_info_p = 38,
+ enum_ops_set_addr_i_ic = 39,
+ enum_ops_set_addr_p_ic = 40,
+ enum_ops_set_addr_p_i = 41,
+ enum_ops_get_addr_i_p = 42,
+ enum_ops_schedule_p = 43,
+ enum_ops_addhandler_p = 44,
+ enum_ops_push_eh_ic = 45,
+ enum_ops_push_eh_p = 46,
+ enum_ops_pop_eh = 47,
+ enum_ops_throw_p = 48,
+ enum_ops_throw_p_p = 49,
+ enum_ops_rethrow_p = 50,
+ enum_ops_count_eh_i = 51,
+ enum_ops_die_s = 52,
+ enum_ops_die_sc = 53,
+ enum_ops_die_p = 54,
+ enum_ops_die_pc = 55,
+ enum_ops_die_i_i = 56,
+ enum_ops_die_ic_i = 57,
+ enum_ops_die_i_ic = 58,
+ enum_ops_die_ic_ic = 59,
+ enum_ops_exit_i = 60,
+ enum_ops_exit_ic = 61,
+ enum_ops_debug_i = 62,
+ enum_ops_debug_ic = 63,
+ enum_ops_bounds_i = 64,
+ enum_ops_bounds_ic = 65,
+ enum_ops_profile_i = 66,
+ enum_ops_profile_ic = 67,
+ enum_ops_trace_i = 68,
+ enum_ops_trace_ic = 69,
+ enum_ops_gc_debug_i = 70,
+ enum_ops_gc_debug_ic = 71,
+ enum_ops_interpinfo_i_i = 72,
+ enum_ops_interpinfo_i_ic = 73,
+ enum_ops_interpinfo_p_i = 74,
+ enum_ops_interpinfo_p_ic = 75,
+ enum_ops_interpinfo_s_i = 76,
+ enum_ops_interpinfo_s_ic = 77,
+ enum_ops_warningson_i = 78,
+ enum_ops_warningson_ic = 79,
+ enum_ops_warningsoff_i = 80,
+ enum_ops_warningsoff_ic = 81,
+ enum_ops_errorson_i = 82,
+ enum_ops_errorson_ic = 83,
+ enum_ops_errorsoff_i = 84,
+ enum_ops_errorsoff_ic = 85,
+ enum_ops_runinterp_p_i = 86,
+ enum_ops_runinterp_p_ic = 87,
+ enum_ops_getinterp_p = 88,
+ enum_ops_sweep_ic = 89,
+ enum_ops_collect = 90,
+ enum_ops_sweepoff = 91,
+ enum_ops_sweepon = 92,
+ enum_ops_collectoff = 93,
+ enum_ops_collecton = 94,
+ enum_ops_needs_destroy_p = 95,
+ enum_ops_loadlib_p_s = 96,
+ enum_ops_loadlib_p_sc = 97,
+ enum_ops_loadlib_p_s_p = 98,
+ enum_ops_loadlib_p_sc_p = 99,
+ enum_ops_loadlib_p_s_pc = 100,
+ enum_ops_loadlib_p_sc_pc = 101,
+ enum_ops_dlfunc_p_p_s_s = 102,
+ enum_ops_dlfunc_p_p_sc_s = 103,
+ enum_ops_dlfunc_p_p_s_sc = 104,
+ enum_ops_dlfunc_p_p_sc_sc = 105,
+ enum_ops_dlvar_p_p_s = 106,
+ enum_ops_dlvar_p_p_sc = 107,
+ enum_ops_compreg_s_p = 108,
+ enum_ops_compreg_sc_p = 109,
+ enum_ops_compreg_p_s = 110,
+ enum_ops_compreg_p_sc = 111,
+ enum_ops_new_callback_p_p_p_s = 112,
+ enum_ops_new_callback_p_p_p_sc = 113,
+ enum_ops_annotations_p = 114,
+ enum_ops_annotations_p_s = 115,
+ enum_ops_annotations_p_sc = 116,
+ enum_ops_band_i_i = 117,
+ enum_ops_band_i_ic = 118,
+ enum_ops_band_i_i_i = 119,
+ enum_ops_band_i_ic_i = 120,
+ enum_ops_band_i_i_ic = 121,
+ enum_ops_bor_i_i = 122,
+ enum_ops_bor_i_ic = 123,
+ enum_ops_bor_i_i_i = 124,
+ enum_ops_bor_i_ic_i = 125,
+ enum_ops_bor_i_i_ic = 126,
+ enum_ops_shl_i_i = 127,
+ enum_ops_shl_i_ic = 128,
+ enum_ops_shl_i_i_i = 129,
+ enum_ops_shl_i_ic_i = 130,
+ enum_ops_shl_i_i_ic = 131,
+ enum_ops_shr_i_i = 132,
+ enum_ops_shr_i_ic = 133,
+ enum_ops_shr_i_i_i = 134,
+ enum_ops_shr_i_ic_i = 135,
+ enum_ops_shr_i_i_ic = 136,
+ enum_ops_lsr_i_i = 137,
+ enum_ops_lsr_i_ic = 138,
+ enum_ops_lsr_i_i_i = 139,
+ enum_ops_lsr_i_ic_i = 140,
+ enum_ops_lsr_i_i_ic = 141,
+ enum_ops_bxor_i_i = 142,
+ enum_ops_bxor_i_ic = 143,
+ enum_ops_bxor_i_i_i = 144,
+ enum_ops_bxor_i_ic_i = 145,
+ enum_ops_bxor_i_i_ic = 146,
+ enum_ops_eq_i_i_ic = 147,
+ enum_ops_eq_ic_i_ic = 148,
+ enum_ops_eq_i_ic_ic = 149,
+ enum_ops_eq_n_n_ic = 150,
+ enum_ops_eq_nc_n_ic = 151,
+ enum_ops_eq_n_nc_ic = 152,
+ enum_ops_eq_s_s_ic = 153,
+ enum_ops_eq_sc_s_ic = 154,
+ enum_ops_eq_s_sc_ic = 155,
+ enum_ops_eq_p_p_ic = 156,
+ enum_ops_eq_p_i_ic = 157,
+ enum_ops_eq_p_ic_ic = 158,
+ enum_ops_eq_p_n_ic = 159,
+ enum_ops_eq_p_nc_ic = 160,
+ enum_ops_eq_p_s_ic = 161,
+ enum_ops_eq_p_sc_ic = 162,
+ enum_ops_eq_str_p_p_ic = 163,
+ enum_ops_eq_num_p_p_ic = 164,
+ enum_ops_eq_addr_s_s_ic = 165,
+ enum_ops_eq_addr_sc_s_ic = 166,
+ enum_ops_eq_addr_s_sc_ic = 167,
+ enum_ops_eq_addr_sc_sc_ic = 168,
+ enum_ops_eq_addr_p_p_ic = 169,
+ enum_ops_ne_i_i_ic = 170,
+ enum_ops_ne_ic_i_ic = 171,
+ enum_ops_ne_i_ic_ic = 172,
+ enum_ops_ne_n_n_ic = 173,
+ enum_ops_ne_nc_n_ic = 174,
+ enum_ops_ne_n_nc_ic = 175,
+ enum_ops_ne_s_s_ic = 176,
+ enum_ops_ne_sc_s_ic = 177,
+ enum_ops_ne_s_sc_ic = 178,
+ enum_ops_ne_p_p_ic = 179,
+ enum_ops_ne_p_i_ic = 180,
+ enum_ops_ne_p_ic_ic = 181,
+ enum_ops_ne_p_n_ic = 182,
+ enum_ops_ne_p_nc_ic = 183,
+ enum_ops_ne_p_s_ic = 184,
+ enum_ops_ne_p_sc_ic = 185,
+ enum_ops_ne_str_p_p_ic = 186,
+ enum_ops_ne_num_p_p_ic = 187,
+ enum_ops_ne_addr_s_s_ic = 188,
+ enum_ops_ne_addr_sc_s_ic = 189,
+ enum_ops_ne_addr_s_sc_ic = 190,
+ enum_ops_ne_addr_sc_sc_ic = 191,
+ enum_ops_ne_addr_p_p_ic = 192,
+ enum_ops_lt_i_i_ic = 193,
+ enum_ops_lt_ic_i_ic = 194,
+ enum_ops_lt_i_ic_ic = 195,
+ enum_ops_lt_n_n_ic = 196,
+ enum_ops_lt_nc_n_ic = 197,
+ enum_ops_lt_n_nc_ic = 198,
+ enum_ops_lt_s_s_ic = 199,
+ enum_ops_lt_sc_s_ic = 200,
+ enum_ops_lt_s_sc_ic = 201,
+ enum_ops_lt_p_p_ic = 202,
+ enum_ops_lt_p_i_ic = 203,
+ enum_ops_lt_p_ic_ic = 204,
+ enum_ops_lt_p_n_ic = 205,
+ enum_ops_lt_p_nc_ic = 206,
+ enum_ops_lt_p_s_ic = 207,
+ enum_ops_lt_p_sc_ic = 208,
+ enum_ops_lt_str_p_p_ic = 209,
+ enum_ops_lt_num_p_p_ic = 210,
+ enum_ops_le_i_i_ic = 211,
+ enum_ops_le_ic_i_ic = 212,
+ enum_ops_le_i_ic_ic = 213,
+ enum_ops_le_n_n_ic = 214,
+ enum_ops_le_nc_n_ic = 215,
+ enum_ops_le_n_nc_ic = 216,
+ enum_ops_le_s_s_ic = 217,
+ enum_ops_le_sc_s_ic = 218,
+ enum_ops_le_s_sc_ic = 219,
+ enum_ops_le_p_p_ic = 220,
+ enum_ops_le_p_i_ic = 221,
+ enum_ops_le_p_ic_ic = 222,
+ enum_ops_le_p_n_ic = 223,
+ enum_ops_le_p_nc_ic = 224,
+ enum_ops_le_p_s_ic = 225,
+ enum_ops_le_p_sc_ic = 226,
+ enum_ops_le_str_p_p_ic = 227,
+ enum_ops_le_num_p_p_ic = 228,
+ enum_ops_gt_p_p_ic = 229,
+ enum_ops_gt_p_i_ic = 230,
+ enum_ops_gt_p_ic_ic = 231,
+ enum_ops_gt_p_n_ic = 232,
+ enum_ops_gt_p_nc_ic = 233,
+ enum_ops_gt_p_s_ic = 234,
+ enum_ops_gt_p_sc_ic = 235,
+ enum_ops_gt_str_p_p_ic = 236,
+ enum_ops_gt_num_p_p_ic = 237,
+ enum_ops_ge_p_p_ic = 238,
+ enum_ops_ge_p_i_ic = 239,
+ enum_ops_ge_p_ic_ic = 240,
+ enum_ops_ge_p_n_ic = 241,
+ enum_ops_ge_p_nc_ic = 242,
+ enum_ops_ge_p_s_ic = 243,
+ enum_ops_ge_p_sc_ic = 244,
+ enum_ops_ge_str_p_p_ic = 245,
+ enum_ops_ge_num_p_p_ic = 246,
+ enum_ops_if_null_p_ic = 247,
+ enum_ops_if_null_s_ic = 248,
+ enum_ops_unless_null_p_ic = 249,
+ enum_ops_unless_null_s_ic = 250,
+ enum_ops_cmp_i_i_i = 251,
+ enum_ops_cmp_i_ic_i = 252,
+ enum_ops_cmp_i_i_ic = 253,
+ enum_ops_cmp_i_n_n = 254,
+ enum_ops_cmp_i_nc_n = 255,
+ enum_ops_cmp_i_n_nc = 256,
+ enum_ops_cmp_i_s_s = 257,
+ enum_ops_cmp_i_sc_s = 258,
+ enum_ops_cmp_i_s_sc = 259,
+ enum_ops_cmp_i_p_p = 260,
+ enum_ops_cmp_i_p_i = 261,
+ enum_ops_cmp_i_p_ic = 262,
+ enum_ops_cmp_i_p_n = 263,
+ enum_ops_cmp_i_p_nc = 264,
+ enum_ops_cmp_i_p_s = 265,
+ enum_ops_cmp_i_p_sc = 266,
+ enum_ops_cmp_str_i_p_p = 267,
+ enum_ops_cmp_num_i_p_p = 268,
+ enum_ops_cmp_pmc_p_p_p = 269,
+ enum_ops_issame_i_p_p = 270,
+ enum_ops_issame_i_s_s = 271,
+ enum_ops_issame_i_sc_s = 272,
+ enum_ops_issame_i_s_sc = 273,
+ enum_ops_issame_i_sc_sc = 274,
+ enum_ops_isntsame_i_p_p = 275,
+ enum_ops_isntsame_i_s_s = 276,
+ enum_ops_isntsame_i_sc_s = 277,
+ enum_ops_isntsame_i_s_sc = 278,
+ enum_ops_isntsame_i_sc_sc = 279,
+ enum_ops_istrue_i_p = 280,
+ enum_ops_isfalse_i_p = 281,
+ enum_ops_isnull_i_p = 282,
+ enum_ops_isnull_i_pc = 283,
+ enum_ops_isnull_i_s = 284,
+ enum_ops_isnull_i_sc = 285,
+ enum_ops_isgt_i_p_p = 286,
+ enum_ops_isge_i_p_p = 287,
+ enum_ops_isle_i_i_i = 288,
+ enum_ops_isle_i_ic_i = 289,
+ enum_ops_isle_i_i_ic = 290,
+ enum_ops_isle_i_n_n = 291,
+ enum_ops_isle_i_nc_n = 292,
+ enum_ops_isle_i_n_nc = 293,
+ enum_ops_isle_i_s_s = 294,
+ enum_ops_isle_i_sc_s = 295,
+ enum_ops_isle_i_s_sc = 296,
+ enum_ops_isle_i_p_p = 297,
+ enum_ops_islt_i_i_i = 298,
+ enum_ops_islt_i_ic_i = 299,
+ enum_ops_islt_i_i_ic = 300,
+ enum_ops_islt_i_n_n = 301,
+ enum_ops_islt_i_nc_n = 302,
+ enum_ops_islt_i_n_nc = 303,
+ enum_ops_islt_i_s_s = 304,
+ enum_ops_islt_i_sc_s = 305,
+ enum_ops_islt_i_s_sc = 306,
+ enum_ops_islt_i_p_p = 307,
+ enum_ops_iseq_i_i_i = 308,
+ enum_ops_iseq_i_ic_i = 309,
+ enum_ops_iseq_i_i_ic = 310,
+ enum_ops_iseq_i_n_n = 311,
+ enum_ops_iseq_i_nc_n = 312,
+ enum_ops_iseq_i_n_nc = 313,
+ enum_ops_iseq_i_s_s = 314,
+ enum_ops_iseq_i_sc_s = 315,
+ enum_ops_iseq_i_s_sc = 316,
+ enum_ops_iseq_i_p_p = 317,
+ enum_ops_isne_i_i_i = 318,
+ enum_ops_isne_i_ic_i = 319,
+ enum_ops_isne_i_i_ic = 320,
+ enum_ops_isne_i_n_n = 321,
+ enum_ops_isne_i_nc_n = 322,
+ enum_ops_isne_i_n_nc = 323,
+ enum_ops_isne_i_s_s = 324,
+ enum_ops_isne_i_sc_s = 325,
+ enum_ops_isne_i_s_sc = 326,
+ enum_ops_isne_i_p_p = 327,
+ enum_ops_and_i_i_i = 328,
+ enum_ops_and_i_ic_i = 329,
+ enum_ops_and_i_i_ic = 330,
+ enum_ops_and_p_p_p = 331,
+ enum_ops_not_i = 332,
+ enum_ops_not_i_i = 333,
+ enum_ops_not_p = 334,
+ enum_ops_not_p_p = 335,
+ enum_ops_or_i_i_i = 336,
+ enum_ops_or_i_ic_i = 337,
+ enum_ops_or_i_i_ic = 338,
+ enum_ops_or_p_p_p = 339,
+ enum_ops_xor_i_i_i = 340,
+ enum_ops_xor_i_ic_i = 341,
+ enum_ops_xor_i_i_ic = 342,
+ enum_ops_xor_p_p_p = 343,
+ enum_ops_print_i = 344,
+ enum_ops_print_ic = 345,
+ enum_ops_print_n = 346,
+ enum_ops_print_nc = 347,
+ enum_ops_print_s = 348,
+ enum_ops_print_sc = 349,
+ enum_ops_print_p = 350,
+ enum_ops_say_i = 351,
+ enum_ops_say_ic = 352,
+ enum_ops_say_n = 353,
+ enum_ops_say_nc = 354,
+ enum_ops_say_s = 355,
+ enum_ops_say_sc = 356,
+ enum_ops_say_p = 357,
+ enum_ops_print_p_i = 358,
+ enum_ops_print_p_ic = 359,
+ enum_ops_print_p_n = 360,
+ enum_ops_print_p_nc = 361,
+ enum_ops_print_p_s = 362,
+ enum_ops_print_p_sc = 363,
+ enum_ops_print_p_p = 364,
+ enum_ops_getstdin_p = 365,
+ enum_ops_getstdout_p = 366,
+ enum_ops_getstderr_p = 367,
+ enum_ops_abs_i = 368,
+ enum_ops_abs_n = 369,
+ enum_ops_abs_i_i = 370,
+ enum_ops_abs_n_n = 371,
+ enum_ops_abs_p = 372,
+ enum_ops_abs_p_p = 373,
+ enum_ops_add_i_i = 374,
+ enum_ops_add_i_ic = 375,
+ enum_ops_add_n_n = 376,
+ enum_ops_add_n_nc = 377,
+ enum_ops_add_p_p = 378,
+ enum_ops_add_p_i = 379,
+ enum_ops_add_p_ic = 380,
+ enum_ops_add_p_n = 381,
+ enum_ops_add_p_nc = 382,
+ enum_ops_add_i_i_i = 383,
+ enum_ops_add_i_ic_i = 384,
+ enum_ops_add_i_i_ic = 385,
+ enum_ops_add_n_n_n = 386,
+ enum_ops_add_n_nc_n = 387,
+ enum_ops_add_n_n_nc = 388,
+ enum_ops_add_p_p_p = 389,
+ enum_ops_add_p_p_i = 390,
+ enum_ops_add_p_p_ic = 391,
+ enum_ops_add_p_p_n = 392,
+ enum_ops_add_p_p_nc = 393,
+ enum_ops_dec_i = 394,
+ enum_ops_dec_n = 395,
+ enum_ops_dec_p = 396,
+ enum_ops_div_i_i = 397,
+ enum_ops_div_i_ic = 398,
+ enum_ops_div_n_n = 399,
+ enum_ops_div_n_nc = 400,
+ enum_ops_div_p_p = 401,
+ enum_ops_div_p_i = 402,
+ enum_ops_div_p_ic = 403,
+ enum_ops_div_p_n = 404,
+ enum_ops_div_p_nc = 405,
+ enum_ops_div_i_i_i = 406,
+ enum_ops_div_i_ic_i = 407,
+ enum_ops_div_i_i_ic = 408,
+ enum_ops_div_i_ic_ic = 409,
+ enum_ops_div_n_n_n = 410,
+ enum_ops_div_n_nc_n = 411,
+ enum_ops_div_n_n_nc = 412,
+ enum_ops_div_n_nc_nc = 413,
+ enum_ops_div_p_p_p = 414,
+ enum_ops_div_p_p_i = 415,
+ enum_ops_div_p_p_ic = 416,
+ enum_ops_div_p_p_n = 417,
+ enum_ops_div_p_p_nc = 418,
+ enum_ops_fdiv_i_i = 419,
+ enum_ops_fdiv_i_ic = 420,
+ enum_ops_fdiv_n_n = 421,
+ enum_ops_fdiv_n_nc = 422,
+ enum_ops_fdiv_p_p = 423,
+ enum_ops_fdiv_p_i = 424,
+ enum_ops_fdiv_p_ic = 425,
+ enum_ops_fdiv_p_n = 426,
+ enum_ops_fdiv_p_nc = 427,
+ enum_ops_fdiv_i_i_i = 428,
+ enum_ops_fdiv_i_ic_i = 429,
+ enum_ops_fdiv_i_i_ic = 430,
+ enum_ops_fdiv_n_n_n = 431,
+ enum_ops_fdiv_n_nc_n = 432,
+ enum_ops_fdiv_n_n_nc = 433,
+ enum_ops_fdiv_p_p_p = 434,
+ enum_ops_fdiv_p_p_i = 435,
+ enum_ops_fdiv_p_p_ic = 436,
+ enum_ops_fdiv_p_p_n = 437,
+ enum_ops_fdiv_p_p_nc = 438,
+ enum_ops_ceil_n = 439,
+ enum_ops_ceil_i_n = 440,
+ enum_ops_ceil_n_n = 441,
+ enum_ops_floor_n = 442,
+ enum_ops_floor_i_n = 443,
+ enum_ops_floor_n_n = 444,
+ enum_ops_inc_i = 445,
+ enum_ops_inc_n = 446,
+ enum_ops_inc_p = 447,
+ enum_ops_mod_i_i = 448,
+ enum_ops_mod_i_ic = 449,
+ enum_ops_mod_n_n = 450,
+ enum_ops_mod_n_nc = 451,
+ enum_ops_mod_p_p = 452,
+ enum_ops_mod_p_i = 453,
+ enum_ops_mod_p_ic = 454,
+ enum_ops_mod_p_n = 455,
+ enum_ops_mod_p_nc = 456,
+ enum_ops_mod_i_i_i = 457,
+ enum_ops_mod_i_ic_i = 458,
+ enum_ops_mod_i_i_ic = 459,
+ enum_ops_mod_n_n_n = 460,
+ enum_ops_mod_n_nc_n = 461,
+ enum_ops_mod_n_n_nc = 462,
+ enum_ops_mod_p_p_p = 463,
+ enum_ops_mod_p_p_i = 464,
+ enum_ops_mod_p_p_ic = 465,
+ enum_ops_mod_p_p_n = 466,
+ enum_ops_mod_p_p_nc = 467,
+ enum_ops_mul_i_i = 468,
+ enum_ops_mul_i_ic = 469,
+ enum_ops_mul_n_n = 470,
+ enum_ops_mul_n_nc = 471,
+ enum_ops_mul_p_p = 472,
+ enum_ops_mul_p_i = 473,
+ enum_ops_mul_p_ic = 474,
+ enum_ops_mul_p_n = 475,
+ enum_ops_mul_p_nc = 476,
+ enum_ops_mul_i_i_i = 477,
+ enum_ops_mul_i_ic_i = 478,
+ enum_ops_mul_i_i_ic = 479,
+ enum_ops_mul_n_n_n = 480,
+ enum_ops_mul_n_nc_n = 481,
+ enum_ops_mul_n_n_nc = 482,
+ enum_ops_mul_p_p_p = 483,
+ enum_ops_mul_p_p_i = 484,
+ enum_ops_mul_p_p_ic = 485,
+ enum_ops_mul_p_p_n = 486,
+ enum_ops_mul_p_p_nc = 487,
+ enum_ops_neg_i = 488,
+ enum_ops_neg_n = 489,
+ enum_ops_neg_p = 490,
+ enum_ops_neg_i_i = 491,
+ enum_ops_neg_n_n = 492,
+ enum_ops_neg_p_p = 493,
+ enum_ops_sub_i_i = 494,
+ enum_ops_sub_i_ic = 495,
+ enum_ops_sub_n_n = 496,
+ enum_ops_sub_n_nc = 497,
+ enum_ops_sub_p_p = 498,
+ enum_ops_sub_p_i = 499,
+ enum_ops_sub_p_ic = 500,
+ enum_ops_sub_p_n = 501,
+ enum_ops_sub_p_nc = 502,
+ enum_ops_sub_i_i_i = 503,
+ enum_ops_sub_i_ic_i = 504,
+ enum_ops_sub_i_i_ic = 505,
+ enum_ops_sub_n_n_n = 506,
+ enum_ops_sub_n_nc_n = 507,
+ enum_ops_sub_n_n_nc = 508,
+ enum_ops_sub_p_p_p = 509,
+ enum_ops_sub_p_p_i = 510,
+ enum_ops_sub_p_p_ic = 511,
+ enum_ops_sub_p_p_n = 512,
+ enum_ops_sub_p_p_nc = 513,
+ enum_ops_sqrt_n_n = 514,
+ enum_ops_callmethodcc_p_s = 515,
+ enum_ops_callmethodcc_p_sc = 516,
+ enum_ops_callmethodcc_p_p = 517,
+ enum_ops_callmethod_p_s_p = 518,
+ enum_ops_callmethod_p_sc_p = 519,
+ enum_ops_callmethod_p_p_p = 520,
+ enum_ops_tailcallmethod_p_s = 521,
+ enum_ops_tailcallmethod_p_sc = 522,
+ enum_ops_tailcallmethod_p_p = 523,
+ enum_ops_addmethod_p_s_p = 524,
+ enum_ops_addmethod_p_sc_p = 525,
+ enum_ops_can_i_p_s = 526,
+ enum_ops_can_i_p_sc = 527,
+ enum_ops_does_i_p_s = 528,
+ enum_ops_does_i_p_sc = 529,
+ enum_ops_does_i_p_p = 530,
+ enum_ops_does_i_p_pc = 531,
+ enum_ops_isa_i_p_s = 532,
+ enum_ops_isa_i_p_sc = 533,
+ enum_ops_isa_i_p_p = 534,
+ enum_ops_isa_i_p_pc = 535,
+ enum_ops_newclass_p_s = 536,
+ enum_ops_newclass_p_sc = 537,
+ enum_ops_newclass_p_p = 538,
+ enum_ops_newclass_p_pc = 539,
+ enum_ops_subclass_p_p = 540,
+ enum_ops_subclass_p_pc = 541,
+ enum_ops_subclass_p_p_s = 542,
+ enum_ops_subclass_p_pc_s = 543,
+ enum_ops_subclass_p_p_sc = 544,
+ enum_ops_subclass_p_pc_sc = 545,
+ enum_ops_subclass_p_p_p = 546,
+ enum_ops_subclass_p_pc_p = 547,
+ enum_ops_subclass_p_p_pc = 548,
+ enum_ops_subclass_p_pc_pc = 549,
+ enum_ops_subclass_p_s = 550,
+ enum_ops_subclass_p_sc = 551,
+ enum_ops_subclass_p_s_s = 552,
+ enum_ops_subclass_p_sc_s = 553,
+ enum_ops_subclass_p_s_sc = 554,
+ enum_ops_subclass_p_sc_sc = 555,
+ enum_ops_subclass_p_s_p = 556,
+ enum_ops_subclass_p_sc_p = 557,
+ enum_ops_subclass_p_s_pc = 558,
+ enum_ops_subclass_p_sc_pc = 559,
+ enum_ops_get_class_p_s = 560,
+ enum_ops_get_class_p_sc = 561,
+ enum_ops_get_class_p_p = 562,
+ enum_ops_get_class_p_pc = 563,
+ enum_ops_class_p_p = 564,
+ enum_ops_addparent_p_p = 565,
+ enum_ops_removeparent_p_p = 566,
+ enum_ops_addrole_p_p = 567,
+ enum_ops_addattribute_p_s = 568,
+ enum_ops_addattribute_p_sc = 569,
+ enum_ops_removeattribute_p_s = 570,
+ enum_ops_removeattribute_p_sc = 571,
+ enum_ops_getattribute_p_p_s = 572,
+ enum_ops_getattribute_p_p_sc = 573,
+ enum_ops_getattribute_p_p_p_s = 574,
+ enum_ops_getattribute_p_p_pc_s = 575,
+ enum_ops_getattribute_p_p_p_sc = 576,
+ enum_ops_getattribute_p_p_pc_sc = 577,
+ enum_ops_setattribute_p_s_p = 578,
+ enum_ops_setattribute_p_sc_p = 579,
+ enum_ops_setattribute_p_p_s_p = 580,
+ enum_ops_setattribute_p_pc_s_p = 581,
+ enum_ops_setattribute_p_p_sc_p = 582,
+ enum_ops_setattribute_p_pc_sc_p = 583,
+ enum_ops_inspect_p_p = 584,
+ enum_ops_inspect_p_pc = 585,
+ enum_ops_inspect_p_p_s = 586,
+ enum_ops_inspect_p_pc_s = 587,
+ enum_ops_inspect_p_p_sc = 588,
+ enum_ops_inspect_p_pc_sc = 589,
+ enum_ops_new_p_s = 590,
+ enum_ops_new_p_sc = 591,
+ enum_ops_new_p_s_p = 592,
+ enum_ops_new_p_sc_p = 593,
+ enum_ops_new_p_s_pc = 594,
+ enum_ops_new_p_sc_pc = 595,
+ enum_ops_new_p_p = 596,
+ enum_ops_new_p_pc = 597,
+ enum_ops_new_p_p_p = 598,
+ enum_ops_new_p_pc_p = 599,
+ enum_ops_new_p_p_pc = 600,
+ enum_ops_new_p_pc_pc = 601,
+ enum_ops_root_new_p_p = 602,
+ enum_ops_root_new_p_pc = 603,
+ enum_ops_root_new_p_p_p = 604,
+ enum_ops_root_new_p_pc_p = 605,
+ enum_ops_root_new_p_p_pc = 606,
+ enum_ops_root_new_p_pc_pc = 607,
+ enum_ops_typeof_s_p = 608,
+ enum_ops_typeof_p_p = 609,
+ enum_ops_get_repr_s_p = 610,
+ enum_ops_find_method_p_p_s = 611,
+ enum_ops_find_method_p_p_sc = 612,
+ enum_ops_defined_i_p = 613,
+ enum_ops_defined_i_p_ki = 614,
+ enum_ops_defined_i_p_kic = 615,
+ enum_ops_defined_i_p_k = 616,
+ enum_ops_defined_i_p_kc = 617,
+ enum_ops_exists_i_p_ki = 618,
+ enum_ops_exists_i_p_kic = 619,
+ enum_ops_exists_i_p_k = 620,
+ enum_ops_exists_i_p_kc = 621,
+ enum_ops_delete_p_k = 622,
+ enum_ops_delete_p_kc = 623,
+ enum_ops_delete_p_ki = 624,
+ enum_ops_delete_p_kic = 625,
+ enum_ops_elements_i_p = 626,
+ enum_ops_push_p_i = 627,
+ enum_ops_push_p_ic = 628,
+ enum_ops_push_p_n = 629,
+ enum_ops_push_p_nc = 630,
+ enum_ops_push_p_s = 631,
+ enum_ops_push_p_sc = 632,
+ enum_ops_push_p_p = 633,
+ enum_ops_pop_i_p = 634,
+ enum_ops_pop_n_p = 635,
+ enum_ops_pop_s_p = 636,
+ enum_ops_pop_p_p = 637,
+ enum_ops_unshift_p_i = 638,
+ enum_ops_unshift_p_ic = 639,
+ enum_ops_unshift_p_n = 640,
+ enum_ops_unshift_p_nc = 641,
+ enum_ops_unshift_p_s = 642,
+ enum_ops_unshift_p_sc = 643,
+ enum_ops_unshift_p_p = 644,
+ enum_ops_shift_i_p = 645,
+ enum_ops_shift_n_p = 646,
+ enum_ops_shift_s_p = 647,
+ enum_ops_shift_p_p = 648,
+ enum_ops_splice_p_p_i_i = 649,
+ enum_ops_splice_p_p_ic_i = 650,
+ enum_ops_splice_p_p_i_ic = 651,
+ enum_ops_splice_p_p_ic_ic = 652,
+ enum_ops_setprop_p_s_p = 653,
+ enum_ops_setprop_p_sc_p = 654,
+ enum_ops_getprop_p_s_p = 655,
+ enum_ops_getprop_p_sc_p = 656,
+ enum_ops_delprop_p_s = 657,
+ enum_ops_delprop_p_sc = 658,
+ enum_ops_prophash_p_p = 659,
+ enum_ops_freeze_s_p = 660,
+ enum_ops_thaw_p_s = 661,
+ enum_ops_thaw_p_sc = 662,
+ enum_ops_add_multi_s_s_p = 663,
+ enum_ops_add_multi_sc_s_p = 664,
+ enum_ops_add_multi_s_sc_p = 665,
+ enum_ops_add_multi_sc_sc_p = 666,
+ enum_ops_find_multi_p_s_s = 667,
+ enum_ops_find_multi_p_sc_s = 668,
+ enum_ops_find_multi_p_s_sc = 669,
+ enum_ops_find_multi_p_sc_sc = 670,
+ enum_ops_register_p = 671,
+ enum_ops_unregister_p = 672,
+ enum_ops_box_p_i = 673,
+ enum_ops_box_p_ic = 674,
+ enum_ops_box_p_n = 675,
+ enum_ops_box_p_nc = 676,
+ enum_ops_box_p_s = 677,
+ enum_ops_box_p_sc = 678,
+ enum_ops_iter_p_p = 679,
+ enum_ops_morph_p_p = 680,
+ enum_ops_morph_p_pc = 681,
+ enum_ops_clone_s_s = 682,
+ enum_ops_clone_s_sc = 683,
+ enum_ops_set_i_i = 684,
+ enum_ops_set_i_ic = 685,
+ enum_ops_set_i_n = 686,
+ enum_ops_set_i_nc = 687,
+ enum_ops_set_i_s = 688,
+ enum_ops_set_i_sc = 689,
+ enum_ops_set_n_n = 690,
+ enum_ops_set_n_nc = 691,
+ enum_ops_set_n_i = 692,
+ enum_ops_set_n_ic = 693,
+ enum_ops_set_n_s = 694,
+ enum_ops_set_n_sc = 695,
+ enum_ops_set_n_p = 696,
+ enum_ops_set_s_p = 697,
+ enum_ops_set_s_s = 698,
+ enum_ops_set_s_sc = 699,
+ enum_ops_set_s_i = 700,
+ enum_ops_set_s_ic = 701,
+ enum_ops_set_s_n = 702,
+ enum_ops_set_s_nc = 703,
+ enum_ops_set_p_pc = 704,
+ enum_ops_set_p_p = 705,
+ enum_ops_set_p_i = 706,
+ enum_ops_set_p_ic = 707,
+ enum_ops_set_p_n = 708,
+ enum_ops_set_p_nc = 709,
+ enum_ops_set_p_s = 710,
+ enum_ops_set_p_sc = 711,
+ enum_ops_set_i_p = 712,
+ enum_ops_assign_p_p = 713,
+ enum_ops_assign_p_i = 714,
+ enum_ops_assign_p_ic = 715,
+ enum_ops_assign_p_n = 716,
+ enum_ops_assign_p_nc = 717,
+ enum_ops_assign_p_s = 718,
+ enum_ops_assign_p_sc = 719,
+ enum_ops_assign_s_s = 720,
+ enum_ops_assign_s_sc = 721,
+ enum_ops_setref_p_p = 722,
+ enum_ops_deref_p_p = 723,
+ enum_ops_set_p_ki_i = 724,
+ enum_ops_set_p_kic_i = 725,
+ enum_ops_set_p_ki_ic = 726,
+ enum_ops_set_p_kic_ic = 727,
+ enum_ops_set_p_ki_n = 728,
+ enum_ops_set_p_kic_n = 729,
+ enum_ops_set_p_ki_nc = 730,
+ enum_ops_set_p_kic_nc = 731,
+ enum_ops_set_p_ki_s = 732,
+ enum_ops_set_p_kic_s = 733,
+ enum_ops_set_p_ki_sc = 734,
+ enum_ops_set_p_kic_sc = 735,
+ enum_ops_set_p_ki_p = 736,
+ enum_ops_set_p_kic_p = 737,
+ enum_ops_set_i_p_ki = 738,
+ enum_ops_set_i_p_kic = 739,
+ enum_ops_set_n_p_ki = 740,
+ enum_ops_set_n_p_kic = 741,
+ enum_ops_set_s_p_ki = 742,
+ enum_ops_set_s_p_kic = 743,
+ enum_ops_set_p_p_ki = 744,
+ enum_ops_set_p_p_kic = 745,
+ enum_ops_set_p_k_i = 746,
+ enum_ops_set_p_kc_i = 747,
+ enum_ops_set_p_k_ic = 748,
+ enum_ops_set_p_kc_ic = 749,
+ enum_ops_set_p_k_n = 750,
+ enum_ops_set_p_kc_n = 751,
+ enum_ops_set_p_k_nc = 752,
+ enum_ops_set_p_kc_nc = 753,
+ enum_ops_set_p_k_s = 754,
+ enum_ops_set_p_kc_s = 755,
+ enum_ops_set_p_k_sc = 756,
+ enum_ops_set_p_kc_sc = 757,
+ enum_ops_set_p_k_p = 758,
+ enum_ops_set_p_kc_p = 759,
+ enum_ops_set_i_p_k = 760,
+ enum_ops_set_i_p_kc = 761,
+ enum_ops_set_n_p_k = 762,
+ enum_ops_set_n_p_kc = 763,
+ enum_ops_set_s_p_k = 764,
+ enum_ops_set_s_p_kc = 765,
+ enum_ops_set_p_p_k = 766,
+ enum_ops_set_p_p_kc = 767,
+ enum_ops_clone_p_p = 768,
+ enum_ops_clone_p_p_p = 769,
+ enum_ops_clone_p_p_pc = 770,
+ enum_ops_copy_p_p = 771,
+ enum_ops_null_s = 772,
+ enum_ops_null_i = 773,
+ enum_ops_null_p = 774,
+ enum_ops_null_n = 775,
+ enum_ops_ord_i_s = 776,
+ enum_ops_ord_i_sc = 777,
+ enum_ops_ord_i_s_i = 778,
+ enum_ops_ord_i_sc_i = 779,
+ enum_ops_ord_i_s_ic = 780,
+ enum_ops_ord_i_sc_ic = 781,
+ enum_ops_chr_s_i = 782,
+ enum_ops_chr_s_ic = 783,
+ enum_ops_chopn_s_s_i = 784,
+ enum_ops_chopn_s_sc_i = 785,
+ enum_ops_chopn_s_s_ic = 786,
+ enum_ops_chopn_s_sc_ic = 787,
+ enum_ops_concat_s_s = 788,
+ enum_ops_concat_s_sc = 789,
+ enum_ops_concat_p_p = 790,
+ enum_ops_concat_p_s = 791,
+ enum_ops_concat_p_sc = 792,
+ enum_ops_concat_s_s_s = 793,
+ enum_ops_concat_s_sc_s = 794,
+ enum_ops_concat_s_s_sc = 795,
+ enum_ops_concat_p_p_s = 796,
+ enum_ops_concat_p_p_sc = 797,
+ enum_ops_concat_p_p_p = 798,
+ enum_ops_repeat_s_s_i = 799,
+ enum_ops_repeat_s_sc_i = 800,
+ enum_ops_repeat_s_s_ic = 801,
+ enum_ops_repeat_s_sc_ic = 802,
+ enum_ops_repeat_p_p_i = 803,
+ enum_ops_repeat_p_p_ic = 804,
+ enum_ops_repeat_p_p_p = 805,
+ enum_ops_repeat_p_i = 806,
+ enum_ops_repeat_p_ic = 807,
+ enum_ops_repeat_p_p = 808,
+ enum_ops_length_i_s = 809,
+ enum_ops_length_i_sc = 810,
+ enum_ops_bytelength_i_s = 811,
+ enum_ops_bytelength_i_sc = 812,
+ enum_ops_pin_s = 813,
+ enum_ops_unpin_s = 814,
+ enum_ops_substr_s_s_i = 815,
+ enum_ops_substr_s_sc_i = 816,
+ enum_ops_substr_s_s_ic = 817,
+ enum_ops_substr_s_sc_ic = 818,
+ enum_ops_substr_s_s_i_i = 819,
+ enum_ops_substr_s_sc_i_i = 820,
+ enum_ops_substr_s_s_ic_i = 821,
+ enum_ops_substr_s_sc_ic_i = 822,
+ enum_ops_substr_s_s_i_ic = 823,
+ enum_ops_substr_s_sc_i_ic = 824,
+ enum_ops_substr_s_s_ic_ic = 825,
+ enum_ops_substr_s_sc_ic_ic = 826,
+ enum_ops_substr_s_p_i_i = 827,
+ enum_ops_substr_s_p_ic_i = 828,
+ enum_ops_substr_s_p_i_ic = 829,
+ enum_ops_substr_s_p_ic_ic = 830,
+ enum_ops_replace_s_s_i_i_s = 831,
+ enum_ops_replace_s_sc_i_i_s = 832,
+ enum_ops_replace_s_s_ic_i_s = 833,
+ enum_ops_replace_s_sc_ic_i_s = 834,
+ enum_ops_replace_s_s_i_ic_s = 835,
+ enum_ops_replace_s_sc_i_ic_s = 836,
+ enum_ops_replace_s_s_ic_ic_s = 837,
+ enum_ops_replace_s_sc_ic_ic_s = 838,
+ enum_ops_replace_s_s_i_i_sc = 839,
+ enum_ops_replace_s_sc_i_i_sc = 840,
+ enum_ops_replace_s_s_ic_i_sc = 841,
+ enum_ops_replace_s_sc_ic_i_sc = 842,
+ enum_ops_replace_s_s_i_ic_sc = 843,
+ enum_ops_replace_s_sc_i_ic_sc = 844,
+ enum_ops_replace_s_s_ic_ic_sc = 845,
+ enum_ops_replace_s_sc_ic_ic_sc = 846,
+ enum_ops_index_i_s_s = 847,
+ enum_ops_index_i_sc_s = 848,
+ enum_ops_index_i_s_sc = 849,
+ enum_ops_index_i_sc_sc = 850,
+ enum_ops_index_i_s_s_i = 851,
+ enum_ops_index_i_sc_s_i = 852,
+ enum_ops_index_i_s_sc_i = 853,
+ enum_ops_index_i_sc_sc_i = 854,
+ enum_ops_index_i_s_s_ic = 855,
+ enum_ops_index_i_sc_s_ic = 856,
+ enum_ops_index_i_s_sc_ic = 857,
+ enum_ops_index_i_sc_sc_ic = 858,
+ enum_ops_sprintf_s_s_p = 859,
+ enum_ops_sprintf_s_sc_p = 860,
+ enum_ops_sprintf_p_p_p = 861,
+ enum_ops_new_s = 862,
+ enum_ops_new_s_i = 863,
+ enum_ops_new_s_ic = 864,
+ enum_ops_stringinfo_i_s_i = 865,
+ enum_ops_stringinfo_i_sc_i = 866,
+ enum_ops_stringinfo_i_s_ic = 867,
+ enum_ops_stringinfo_i_sc_ic = 868,
+ enum_ops_upcase_s_s = 869,
+ enum_ops_upcase_s_sc = 870,
+ enum_ops_downcase_s_s = 871,
+ enum_ops_downcase_s_sc = 872,
+ enum_ops_titlecase_s_s = 873,
+ enum_ops_titlecase_s_sc = 874,
+ enum_ops_join_s_s_p = 875,
+ enum_ops_join_s_sc_p = 876,
+ enum_ops_split_p_s_s = 877,
+ enum_ops_split_p_sc_s = 878,
+ enum_ops_split_p_s_sc = 879,
+ enum_ops_split_p_sc_sc = 880,
+ enum_ops_charset_i_s = 881,
+ enum_ops_charset_i_sc = 882,
+ enum_ops_charsetname_s_i = 883,
+ enum_ops_charsetname_s_ic = 884,
+ enum_ops_find_charset_i_s = 885,
+ enum_ops_find_charset_i_sc = 886,
+ enum_ops_trans_charset_s_s_i = 887,
+ enum_ops_trans_charset_s_sc_i = 888,
+ enum_ops_trans_charset_s_s_ic = 889,
+ enum_ops_trans_charset_s_sc_ic = 890,
+ enum_ops_encoding_i_s = 891,
+ enum_ops_encoding_i_sc = 892,
+ enum_ops_encodingname_s_i = 893,
+ enum_ops_encodingname_s_ic = 894,
+ enum_ops_find_encoding_i_s = 895,
+ enum_ops_find_encoding_i_sc = 896,
+ enum_ops_trans_encoding_s_s_i = 897,
+ enum_ops_trans_encoding_s_sc_i = 898,
+ enum_ops_trans_encoding_s_s_ic = 899,
+ enum_ops_trans_encoding_s_sc_ic = 900,
+ enum_ops_is_cclass_i_i_s_i = 901,
+ enum_ops_is_cclass_i_ic_s_i = 902,
+ enum_ops_is_cclass_i_i_sc_i = 903,
+ enum_ops_is_cclass_i_ic_sc_i = 904,
+ enum_ops_is_cclass_i_i_s_ic = 905,
+ enum_ops_is_cclass_i_ic_s_ic = 906,
+ enum_ops_is_cclass_i_i_sc_ic = 907,
+ enum_ops_is_cclass_i_ic_sc_ic = 908,
+ enum_ops_find_cclass_i_i_s_i_i = 909,
+ enum_ops_find_cclass_i_ic_s_i_i = 910,
+ enum_ops_find_cclass_i_i_sc_i_i = 911,
+ enum_ops_find_cclass_i_ic_sc_i_i = 912,
+ enum_ops_find_cclass_i_i_s_ic_i = 913,
+ enum_ops_find_cclass_i_ic_s_ic_i = 914,
+ enum_ops_find_cclass_i_i_sc_ic_i = 915,
+ enum_ops_find_cclass_i_ic_sc_ic_i = 916,
+ enum_ops_find_cclass_i_i_s_i_ic = 917,
+ enum_ops_find_cclass_i_ic_s_i_ic = 918,
+ enum_ops_find_cclass_i_i_sc_i_ic = 919,
+ enum_ops_find_cclass_i_ic_sc_i_ic = 920,
+ enum_ops_find_cclass_i_i_s_ic_ic = 921,
+ enum_ops_find_cclass_i_ic_s_ic_ic = 922,
+ enum_ops_find_cclass_i_i_sc_ic_ic = 923,
+ enum_ops_find_cclass_i_ic_sc_ic_ic = 924,
+ enum_ops_find_not_cclass_i_i_s_i_i = 925,
+ enum_ops_find_not_cclass_i_ic_s_i_i = 926,
+ enum_ops_find_not_cclass_i_i_sc_i_i = 927,
+ enum_ops_find_not_cclass_i_ic_sc_i_i = 928,
+ enum_ops_find_not_cclass_i_i_s_ic_i = 929,
+ enum_ops_find_not_cclass_i_ic_s_ic_i = 930,
+ enum_ops_find_not_cclass_i_i_sc_ic_i = 931,
+ enum_ops_find_not_cclass_i_ic_sc_ic_i = 932,
+ enum_ops_find_not_cclass_i_i_s_i_ic = 933,
+ enum_ops_find_not_cclass_i_ic_s_i_ic = 934,
+ enum_ops_find_not_cclass_i_i_sc_i_ic = 935,
+ enum_ops_find_not_cclass_i_ic_sc_i_ic = 936,
+ enum_ops_find_not_cclass_i_i_s_ic_ic = 937,
+ enum_ops_find_not_cclass_i_ic_s_ic_ic = 938,
+ enum_ops_find_not_cclass_i_i_sc_ic_ic = 939,
+ enum_ops_find_not_cclass_i_ic_sc_ic_ic = 940,
+ enum_ops_escape_s_s = 941,
+ enum_ops_compose_s_s = 942,
+ enum_ops_compose_s_sc = 943,
+ enum_ops_spawnw_i_s = 944,
+ enum_ops_spawnw_i_sc = 945,
+ enum_ops_spawnw_i_p = 946,
+ enum_ops_err_i = 947,
+ enum_ops_err_s = 948,
+ enum_ops_err_s_i = 949,
+ enum_ops_err_s_ic = 950,
+ enum_ops_time_i = 951,
+ enum_ops_time_n = 952,
+ enum_ops_sleep_i = 953,
+ enum_ops_sleep_ic = 954,
+ enum_ops_sleep_n = 955,
+ enum_ops_sleep_nc = 956,
+ enum_ops_store_lex_s_p = 957,
+ enum_ops_store_lex_sc_p = 958,
+ enum_ops_store_dynamic_lex_s_p = 959,
+ enum_ops_store_dynamic_lex_sc_p = 960,
+ enum_ops_find_lex_p_s = 961,
+ enum_ops_find_lex_p_sc = 962,
+ enum_ops_find_dynamic_lex_p_s = 963,
+ enum_ops_find_dynamic_lex_p_sc = 964,
+ enum_ops_find_caller_lex_p_s = 965,
+ enum_ops_find_caller_lex_p_sc = 966,
+ enum_ops_get_namespace_p = 967,
+ enum_ops_get_namespace_p_p = 968,
+ enum_ops_get_namespace_p_pc = 969,
+ enum_ops_get_hll_namespace_p = 970,
+ enum_ops_get_hll_namespace_p_p = 971,
+ enum_ops_get_hll_namespace_p_pc = 972,
+ enum_ops_get_root_namespace_p = 973,
+ enum_ops_get_root_namespace_p_p = 974,
+ enum_ops_get_root_namespace_p_pc = 975,
+ enum_ops_get_global_p_s = 976,
+ enum_ops_get_global_p_sc = 977,
+ enum_ops_get_global_p_p_s = 978,
+ enum_ops_get_global_p_pc_s = 979,
+ enum_ops_get_global_p_p_sc = 980,
+ enum_ops_get_global_p_pc_sc = 981,
+ enum_ops_get_hll_global_p_s = 982,
+ enum_ops_get_hll_global_p_sc = 983,
+ enum_ops_get_hll_global_p_p_s = 984,
+ enum_ops_get_hll_global_p_pc_s = 985,
+ enum_ops_get_hll_global_p_p_sc = 986,
+ enum_ops_get_hll_global_p_pc_sc = 987,
+ enum_ops_get_root_global_p_s = 988,
+ enum_ops_get_root_global_p_sc = 989,
+ enum_ops_get_root_global_p_p_s = 990,
+ enum_ops_get_root_global_p_pc_s = 991,
+ enum_ops_get_root_global_p_p_sc = 992,
+ enum_ops_get_root_global_p_pc_sc = 993,
+ enum_ops_set_global_s_p = 994,
+ enum_ops_set_global_sc_p = 995,
+ enum_ops_set_global_p_s_p = 996,
+ enum_ops_set_global_pc_s_p = 997,
+ enum_ops_set_global_p_sc_p = 998,
+ enum_ops_set_global_pc_sc_p = 999,
+ enum_ops_set_hll_global_s_p = 1000,
+ enum_ops_set_hll_global_sc_p = 1001,
+ enum_ops_set_hll_global_p_s_p = 1002,
+ enum_ops_set_hll_global_pc_s_p = 1003,
+ enum_ops_set_hll_global_p_sc_p = 1004,
+ enum_ops_set_hll_global_pc_sc_p = 1005,
+ enum_ops_set_root_global_s_p = 1006,
+ enum_ops_set_root_global_sc_p = 1007,
+ enum_ops_set_root_global_p_s_p = 1008,
+ enum_ops_set_root_global_pc_s_p = 1009,
+ enum_ops_set_root_global_p_sc_p = 1010,
+ enum_ops_set_root_global_pc_sc_p = 1011,
+ enum_ops_find_name_p_s = 1012,
+ enum_ops_find_name_p_sc = 1013,
+ enum_ops_find_sub_not_null_p_s = 1014,
+ enum_ops_find_sub_not_null_p_sc = 1015,
+ enum_ops_trap = 1016,
+ enum_ops_set_label_p_ic = 1017,
+ enum_ops_get_label_i_p = 1018,
+ enum_ops_fetch_p_p_p_p = 1019,
+ enum_ops_fetch_p_pc_p_p = 1020,
+ enum_ops_fetch_p_p_pc_p = 1021,
+ enum_ops_fetch_p_pc_pc_p = 1022,
+ enum_ops_fetch_p_p_p_pc = 1023,
+ enum_ops_fetch_p_pc_p_pc = 1024,
+ enum_ops_fetch_p_p_pc_pc = 1025,
+ enum_ops_fetch_p_pc_pc_pc = 1026,
+ enum_ops_fetch_p_p_i_p = 1027,
+ enum_ops_fetch_p_pc_i_p = 1028,
+ enum_ops_fetch_p_p_ic_p = 1029,
+ enum_ops_fetch_p_pc_ic_p = 1030,
+ enum_ops_fetch_p_p_i_pc = 1031,
+ enum_ops_fetch_p_pc_i_pc = 1032,
+ enum_ops_fetch_p_p_ic_pc = 1033,
+ enum_ops_fetch_p_pc_ic_pc = 1034,
+ enum_ops_fetch_p_p_s_p = 1035,
+ enum_ops_fetch_p_pc_s_p = 1036,
+ enum_ops_fetch_p_p_sc_p = 1037,
+ enum_ops_fetch_p_pc_sc_p = 1038,
+ enum_ops_fetch_p_p_s_pc = 1039,
+ enum_ops_fetch_p_pc_s_pc = 1040,
+ enum_ops_fetch_p_p_sc_pc = 1041,
+ enum_ops_fetch_p_pc_sc_pc = 1042,
+ enum_ops_vivify_p_p_p_p = 1043,
+ enum_ops_vivify_p_pc_p_p = 1044,
+ enum_ops_vivify_p_p_pc_p = 1045,
+ enum_ops_vivify_p_pc_pc_p = 1046,
+ enum_ops_vivify_p_p_p_pc = 1047,
+ enum_ops_vivify_p_pc_p_pc = 1048,
+ enum_ops_vivify_p_p_pc_pc = 1049,
+ enum_ops_vivify_p_pc_pc_pc = 1050,
+ enum_ops_vivify_p_p_i_p = 1051,
+ enum_ops_vivify_p_pc_i_p = 1052,
+ enum_ops_vivify_p_p_ic_p = 1053,
+ enum_ops_vivify_p_pc_ic_p = 1054,
+ enum_ops_vivify_p_p_i_pc = 1055,
+ enum_ops_vivify_p_pc_i_pc = 1056,
+ enum_ops_vivify_p_p_ic_pc = 1057,
+ enum_ops_vivify_p_pc_ic_pc = 1058,
+ enum_ops_vivify_p_p_s_p = 1059,
+ enum_ops_vivify_p_pc_s_p = 1060,
+ enum_ops_vivify_p_p_sc_p = 1061,
+ enum_ops_vivify_p_pc_sc_p = 1062,
+ enum_ops_vivify_p_p_s_pc = 1063,
+ enum_ops_vivify_p_pc_s_pc = 1064,
+ enum_ops_vivify_p_p_sc_pc = 1065,
+ enum_ops_vivify_p_pc_sc_pc = 1066,
+ enum_ops_new_p_s_i = 1067,
+ enum_ops_new_p_sc_i = 1068,
+ enum_ops_new_p_s_ic = 1069,
+ enum_ops_new_p_sc_ic = 1070,
+ enum_ops_new_p_p_i = 1071,
+ enum_ops_new_p_pc_i = 1072,
+ enum_ops_new_p_p_ic = 1073,
+ enum_ops_new_p_pc_ic = 1074,
+ enum_ops_root_new_p_p_i = 1075,
+ enum_ops_root_new_p_pc_i = 1076,
+ enum_ops_root_new_p_p_ic = 1077,
+ enum_ops_root_new_p_pc_ic = 1078,
+ enum_ops_find_codepoint_i_s = 1079,
+ enum_ops_find_codepoint_i_sc = 1080,
+ enum_ops_finalize_p = 1081,
+ enum_ops_finalize_pc = 1082,
+};
+
+
+#endif /* PARROT_OPSENUM_H_GUARD */
+
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * buffer-read-only: t
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Modified: branches/gsoc_threads/include/parrot/packfile.h
==============================================================================
--- branches/gsoc_threads/include/parrot/packfile.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/packfile.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -222,7 +222,6 @@
typedef enum {
enum_fixup_none,
- enum_fixup_label,
enum_fixup_sub
} enum_fixup_t;
@@ -1096,7 +1095,8 @@
size_t PF_size_string(ARGIN(const STRING *s))
__attribute__nonnull__(1);
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
+PARROT_WARN_UNUSED_RESULT
size_t PF_size_strlen(const UINTVAL len);
PARROT_WARN_UNUSED_RESULT
Modified: branches/gsoc_threads/include/parrot/platform_interface.h
==============================================================================
--- branches/gsoc_threads/include/parrot/platform_interface.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/platform_interface.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -57,8 +57,14 @@
void Parrot_usleep(unsigned int microseconds);
INTVAL Parrot_intval_time(void);
FLOATVAL Parrot_floatval_time(void);
+
+PARROT_EXPORT
struct tm * Parrot_gmtime_r(const time_t *, struct tm *);
+
+PARROT_EXPORT
struct tm * Parrot_localtime_r(const time_t *, struct tm *);
+
+PARROT_EXPORT
char* Parrot_asctime_r(const struct tm*, char *);
/*
Modified: branches/gsoc_threads/include/parrot/pmc.h
==============================================================================
--- branches/gsoc_threads/include/parrot/pmc.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/pmc.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -53,6 +53,7 @@
__attribute__nonnull__(1);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_HOT
INTVAL Parrot_pmc_is_null(SHIM_INTERP, ARGIN_NULLOK(const PMC *pmc));
@@ -84,6 +85,7 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
PMC * Parrot_pmc_new_constant_noinit(PARROT_INTERP, INTVAL base_type)
__attribute__nonnull__(1);
@@ -243,6 +245,9 @@
#define pmc_type Parrot_pmc_get_type_str
#define pmc_type_p Parrot_pmc_get_type
+#define PMC_IS_TYPE(p, t) ((p)->vtable->base_type == enum_class_ ## t)
+#define PMC_IS_TYPE_ENUM(p, e) ((p)->vtable->base_type == (e))
+
#endif /* PARROT_PMC_H_GUARD */
/*
Modified: branches/gsoc_threads/include/parrot/runcore_trace.h
==============================================================================
--- branches/gsoc_threads/include/parrot/runcore_trace.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/runcore_trace.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -18,10 +18,6 @@
/* HEADERIZER BEGIN: src/runcore/trace.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-PARROT_CANNOT_RETURN_NULL
-Interp * debugger_or_interp(PARROT_INTERP)
- __attribute__nonnull__(1);
-
int trace_key_dump(PARROT_INTERP, ARGIN(PMC *key))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
@@ -44,8 +40,6 @@
void trace_pmc_dump(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc))
__attribute__nonnull__(1);
-#define ASSERT_ARGS_debugger_or_interp __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
- PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_trace_key_dump __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(key))
Modified: branches/gsoc_threads/include/parrot/string_funcs.h
==============================================================================
--- branches/gsoc_threads/include/parrot/string_funcs.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/string_funcs.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -235,6 +235,7 @@
__attribute__nonnull__(3);
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
INTVAL Parrot_str_length(SHIM_INTERP, ARGIN_NULLOK(const STRING *s));
@@ -390,7 +391,8 @@
STRING * Parrot_str_unescape_string(PARROT_INTERP,
ARGIN(const STRING *src),
ARGIN(const CHARSET *charset),
- ARGIN(const ENCODING *encoding))
+ ARGIN(const ENCODING *encoding),
+ UINTVAL flags)
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(3)
Modified: branches/gsoc_threads/include/parrot/warnings.h
==============================================================================
--- branches/gsoc_threads/include/parrot/warnings.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/include/parrot/warnings.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -61,12 +61,20 @@
__attribute__nonnull__(3);
PARROT_EXPORT
+void Parrot_warn_deprecated(PARROT_INTERP, ARGIN(const char *message))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_EXPORT
void print_pbc_location(PARROT_INTERP)
__attribute__nonnull__(1);
#define ASSERT_ARGS_Parrot_warn __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(message))
+#define ASSERT_ARGS_Parrot_warn_deprecated __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(message))
#define ASSERT_ARGS_print_pbc_location __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
Modified: branches/gsoc_threads/lib/Parrot/Configure.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Configure.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/lib/Parrot/Configure.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -21,6 +21,7 @@
$conf->add_steps(@steps);
$conf->runsteps;
+ $conf->debug(@messages);
=head1 DESCRIPTION
@@ -554,6 +555,22 @@
return;
}
+=item * C<debug()>
+
+When C<--verbose> is requested, or when a particular configuration step is
+specified in C<--verbose-step>, this method prints its arguments as a string
+on STDOUT.
+
+=cut
+
+sub debug {
+ my ($conf, @messages) = @_;
+ if ($conf->options->get('verbose')) {
+ print join('' => @messages);
+ }
+ return 1;
+}
+
=back
=head1 CREDITS
Modified: branches/gsoc_threads/lib/Parrot/Configure/Options/Conf.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Configure/Options/Conf.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/lib/Parrot/Configure/Options/Conf.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -44,8 +44,6 @@
which upon failure cause Configure.pl to halt
--silent Don't be verbose, interactive or fatal
--nomanicheck Don't check the MANIFEST
- --languages="list of languages"
- Specify a list of languages to process
--ask Have Configure ask for commonly-changed info
--test=configure Run tests of configuration tools before configuring
Modified: branches/gsoc_threads/lib/Parrot/Configure/Options/Conf/Shared.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Configure/Options/Conf/Shared.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/lib/Parrot/Configure/Options/Conf/Shared.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -39,7 +39,6 @@
intval
jitcapable
buildframes
- languages
ld
ldflags
lex
Modified: branches/gsoc_threads/lib/Parrot/Configure/Options/Reconf.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Configure/Options/Reconf.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/lib/Parrot/Configure/Options/Reconf.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
# $Id$
package Parrot::Configure::Options::Reconf;
@@ -16,7 +16,6 @@
ask
debugging
help
- languages
lex
maintainer
step
@@ -57,8 +56,6 @@
--step=(gen::makefiles)
Execute a single configure step
--target=(Makefile) Regenerate a specific makefile
- --languages="list of languages"
- Specify a list of languages to process
--ask Have Configure ask for commonly-changed info
Modified: branches/gsoc_threads/lib/Parrot/Configure/Options/Test/Prepare.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Configure/Options/Test/Prepare.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/lib/Parrot/Configure/Options/Test/Prepare.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -161,8 +161,6 @@
t/postconfigure/
t/tools/pmc2cutils/
- t/tools/ops2cutils/
- t/tools/ops2pm/
t/pharness/
=back
Modified: branches/gsoc_threads/lib/Parrot/Configure/Step/List.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Configure/Step/List.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/lib/Parrot/Configure/Step/List.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -48,7 +48,6 @@
auto::socklen_t
auto::neg_0
auto::env
- auto::extra_nci_thunks
auto::thread
auto::gmp
auto::readline
Modified: branches/gsoc_threads/lib/Parrot/Distribution.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Distribution.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/lib/Parrot/Distribution.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -430,7 +430,11 @@
compilers/pirc/macro/macroparser.h
include/parrot/config.h
include/parrot/has_header.h
+ include/parrot/oplib/core_ops.h
+ include/parrot/oplib/ops.h
+ include/parrot/opsenum.h
src/gc/malloc.c
+ src/ops/core_ops.c
} unless @exemptions;
my $path = -f $file ? $file : $file->path;
Modified: branches/gsoc_threads/lib/Parrot/Docs/Section/Ops.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Docs/Section/Ops.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/lib/Parrot/Docs/Section/Ops.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -53,12 +53,6 @@
'Opcodes',
'ops.html',
'',
- $self->new_group(
- 'Tools',
- '',
- $self->new_item( '', 'tools/build/ops2c.pl' ),
- $self->new_item( '', 'tools/build/ops2pm.pl' ),
- ),
$self->new_group( 'Opcode Libraries', '', @core_ops ),
$self->new_group( 'Dynamic Opcode Libraries', '', @dynamic_ops ),
);
Modified: branches/gsoc_threads/lib/Parrot/Docs/Section/Tools.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Docs/Section/Tools.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/lib/Parrot/Docs/Section/Tools.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -53,8 +53,6 @@
'',
$self->new_item( '', 'docs/configuration.pod' ),
$self->new_item( '', 'tools/build/c2str.pl' ),
- $self->new_item( '', 'tools/build/ops2c.pl' ),
- $self->new_item( '', 'tools/build/ops2pm.pl' ),
$self->new_item( '', 'tools/build/parrot_config_c.pl' ),
$self->new_item( '', 'tools/build/pmc2c.pl' ),
$self->new_item( '', 'tools/dev/install_files.pl' ),
Modified: branches/gsoc_threads/lib/Parrot/Harness/DefaultTests.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Harness/DefaultTests.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/lib/Parrot/Harness/DefaultTests.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -65,8 +65,6 @@
t/pmc/*.t
t/oo/*.t
t/native_pbc/*.t
- t/dynpmc/*.t
- t/dynoplibs/*.t
);
# core tests are run unless --runcore-tests is present. Typically
@@ -85,7 +83,9 @@
t/compilers/pge/p5regex/*.t
t/compilers/pge/perl6regex/*.t
t/compilers/tge/*.t
+ t/compilers/opsc/*.t
t/compilers/data_json/*.t
+ t/dynoplibs/*.t
t/library/*.t
t/tools/*.t
t/profiling/*.t
Modified: branches/gsoc_threads/lib/Parrot/Headerizer.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Headerizer.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/lib/Parrot/Headerizer.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -247,8 +247,10 @@
}
if ( $return_type =~ /\*/ ) {
if ( !$macros{PARROT_CAN_RETURN_NULL} && !$macros{PARROT_CANNOT_RETURN_NULL} ) {
- $self->squawk( $file, $name,
- 'Returns a pointer, but no PARROT_CAN(NOT)_RETURN_NULL macro found.' );
+ if ( $name !~ /^yy/ ) { # Don't complain about lexer-created functions
+ $self->squawk( $file, $name,
+ 'Returns a pointer, but no PARROT_CAN(NOT)_RETURN_NULL macro found.' );
+ }
}
elsif ( $macros{PARROT_CAN_RETURN_NULL} && $macros{PARROT_CANNOT_RETURN_NULL} ) {
$self->squawk( $file, $name,
Deleted: branches/gsoc_threads/lib/Parrot/Op.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Op.pm Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,423 +0,0 @@
-#! perl
-# Copyright (C) 2001-2009, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-Parrot::Op - Parrot Operation
-
-=head1 SYNOPSIS
-
- use Parrot::Op;
-
-=head1 DESCRIPTION
-
-C<Parrot::Op> represents a Parrot operation (op, for short), as read
-from an ops file via C<Parrot::OpsFile>, or perhaps even generated by
-some other means. It is the Perl equivalent of the C<op_info_t> C
-C<struct> defined in F<include/parrot/op.h>.
-
-=head2 Op Type
-
-Ops are either I<auto> or I<manual>. Manual ops are responsible for
-having explicit next-op C<RETURN()> statements, while auto ops can count
-on an automatically generated next-op to be appended to the op body.
-
-Note that F<tools/build/ops2c.pl> supplies either 'inline' or 'function'
-as the op's type, depending on whether the C<inline> keyword is present
-in the op definition. This has the effect of causing all ops to be
-considered manual.
-
-=head2 Op Arguments
-
-Note that argument 0 is considered to be the op itself, with arguments
-1..9 being the arguments passed to the op.
-
-Op argument direction and type are represented by short one or two letter
-descriptors.
-
-Op Direction:
-
- i The argument is incoming
- o The argument is outgoing
- io The argument is both incoming and outgoing
-
-Op Type:
-
- i The argument is an integer register index.
- n The argument is a number register index.
- p The argument is a PMC register index.
- s The argument is a string register index.
- ic The argument is an integer constant (in-line).
- nc The argument is a number constant index.
- pc The argument is a PMC constant index.
- sc The argument is a string constant index.
- kc The argument is a key constant index.
- ki The argument is a key integer register index.
- kic The argument is a key integer constant (in-line).
-
-=head2 Class Methods
-
-=over 4
-
-=cut
-
-package Parrot::Op;
-
-use strict;
-use warnings;
-
-=item C<new($code, $type, $name, $args, $argdirs, $labels, $flags)>
-
-Allocates a new bodyless op. A body must be provided eventually for the
-op to be usable.
-
-C<$code> is the integer identifier for the op.
-
-C<$type> is the type of op (see the note on op types above).
-
-C<$name> is the name of the op.
-
-C<$args> is a reference to an array of argument type descriptors.
-
-C<$argdirs> is a reference to an array of argument direction
-descriptors. Element I<x> is the direction of argument C<< $args->[I<x>]
->>.
-
-C<$labels> is a reference to an array of boolean values indicating
-whether each argument direction was prefixed by 'C<label>'.
-
-C<$flags> is a hash reference containing zero or more I<hints> or
-I<directives>.
-
-=cut
-
-sub new {
- my $class = shift;
- my ( $code, $type, $name, $args, $argdirs, $labels, $flags ) = @_;
-
- my $self = {
- CODE => $code,
- TYPE => $type,
- NAME => $name,
- ARGS => [@$args],
- ARGDIRS => [@$argdirs],
- LABELS => [@$labels],
- FLAGS => $flags,
- BODY => '',
- JUMP => 0,
- };
-
- return bless $self, $class;
-}
-
-=back
-
-=head2 Instance Methods
-
-=over 4
-
-=item C<code()>
-
-Returns the op code.
-
-=cut
-
-sub code {
- my $self = shift;
-
- return $self->{CODE};
-}
-
-=item C<type()>
-
-The type of the op, either 'inline' or 'function'.
-
-=cut
-
-sub type {
- my $self = shift;
-
- return $self->{TYPE};
-}
-
-=item C<name()>
-
-The (short or root) name of the op.
-
-=cut
-
-sub name {
- my $self = shift;
-
- return $self->{NAME};
-}
-
-=item C<full_name()>
-
-For argumentless ops, it's the same as C<name()>. For ops with
-arguments, an underscore followed by underscore-separated argument types
-are appended to the name.
-
-=cut
-
-sub full_name {
- my $self = shift;
- my $name = $self->name;
- my @arg_types = $self->arg_types;
-
- $name .= "_" . join( "_", @arg_types ) if @arg_types;
-
- return $name;
-}
-
-=item C<func_name()>
-
-The same as C<full_name()>, but with 'C<Parrot_>' prefixed.
-
-=cut
-
-sub func_name {
- my ( $self, $trans ) = @_;
-
- return $trans->prefix . $self->full_name;
-}
-
-=item C<arg_types()>
-
-Returns the types of the op's arguments.
-
-=cut
-
-sub arg_types {
- my $self = shift;
-
- return @{ $self->{ARGS} };
-}
-
-=item C<arg_type($index)>
-
-Returns the type of the op's argument at C<$index>.
-
-=cut
-
-sub arg_type {
- my $self = shift;
-
- return $self->{ARGS}[shift];
-}
-
-=item C<arg_dirs()>
-
-Returns the directions of the op's arguments.
-
-=cut
-
-sub arg_dirs {
- my $self = shift;
-
- return @{ $self->{ARGDIRS} };
-}
-
-=item C<labels()>
-
-Returns the labels.
-
-=cut
-
-sub labels {
- my $self = shift;
-
- return @{ $self->{LABELS} };
-}
-
-=item C<flags(@flags)>
-
-=item C<flags()>
-
-Sets/gets the op's flags. This returns a hash reference, whose keys are any
-flags (passed as ":flag") specified for the op.
-
-=cut
-
-sub flags {
- my $self = shift;
-
- if (@_) {
- $self->{FLAGS} = shift;
- }
-
- return $self->{FLAGS};
-}
-
-=item C<arg_dir($index)>
-
-Returns the direction of the op's argument at C<$index>.
-
-=cut
-
-sub arg_dir {
- my $self = shift;
-
- return $self->{ARGDIRS}[shift];
-}
-
-=item C<body($body)>
-
-=item C<body()>
-
-Sets/gets the op's code body.
-
-=cut
-
-sub body {
- my $self = shift;
-
- if (@_) {
- $self->{BODY} = shift;
- }
-
- return $self->{BODY};
-}
-
-=item C<jump($jump)>
-
-=item C<jump()>
-
-Sets/gets a string containing one or more C<op_jump_t> values joined with
-C<|> (see F<include/parrot/op.h>). This indicates if and how an op
-may jump.
-
-=cut
-
-sub jump {
- my $self = shift;
-
- if (@_) {
- $self->{JUMP} = shift;
- }
-
- return $self->{JUMP};
-}
-
-# Called from rewrite_body() to perform the actual substitutions.
-sub _substitute {
- my $self = shift;
- local $_ = shift;
- my $trans = shift;
- my $preamble_only = shift;
-
- my $rewrote_access =
- s/{{\@([^{]*?)}}/ $trans->access_arg($self->arg_type($1 - 1), $1, $self); /me;
-
- die "Argument access not allowed in preamble\n"
- if $preamble_only && $rewrote_access;
-
- s/{{=0,=([^{]*?)}}/ $trans->restart_address($1) . "; {{=0}}"; /me;
- s/{{=0,\+=([^{]*?)}}/ $trans->restart_offset($1) . "; {{=0}}"; /me;
-
- s/{{\+=([^{]*?)}}/ $trans->goto_offset($1); /me;
- s/{{=([^*][^{]*?)}}/ $trans->goto_address($1); /me;
-
- s/{{\^(\d+)}}/ $1 /me;
- s/{{\^\+([^{]*?)}}/ $trans->expr_offset($1); /me;
- s/{{\^([^{]*?)}}/ $trans->expr_address($1); /me;
-
- return $_;
-}
-
-=item C<rewrite_body($body, $trans, [$preamble])>
-
-Performs the various macro substitutions using the specified transform,
-correctly handling nested substitions, and repeating over the whole string
-until no more substitutions can be made.
-
-C<VTABLE_> macros are enforced by converting C<<< I<< x >>->vtable->I<<
-method >> >>> to C<VTABLE_I<method>>.
-
-=cut
-
-sub rewrite_body {
- my ( $self, $body, $trans, $preamble_only ) = @_;
-
- while (1) {
- my $new_body = $self->_substitute( $body, $trans, !!$preamble_only );
-
- last if $body eq $new_body;
-
- $body = $new_body;
- }
-
- return $body;
-}
-
-=item C<source($trans)>
-
-Returns the L<C<body()>> of the op with substitutions made by
-C<$trans> (a subclass of C<Parrot::OpTrans>).
-
-=cut
-
-sub source {
- my ( $self, $trans ) = @_;
-
- my $flags = $self->flags;
-
- if (exists($$flags{pic})
- && !( ref($trans) eq 'Parrot::OpTrans::CGP' || ref($trans) eq 'Parrot::OpTrans::CSwitch' ) )
- {
- return qq{PANIC(interp, "How did you do that");\n};
- }
-
- my $prelude = $trans->can( 'add_body_prelude' )
- ? $trans->add_body_prelude()
- : '';
-
- return $self->rewrite_body( $prelude . $self->body, $trans );
-}
-
-=item C<size()>
-
-Returns the op's number of arguments. Note that this also includes
-the op itself as one argument.
-
-=cut
-
-sub size {
- my $self = shift;
-
- return scalar( $self->arg_types + 1 );
-}
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item C<Parrot::OpsFile>
-
-=item C<Parrot::OpTrans>
-
-=item F<tools/build/ops2c.pl>
-
-=item F<tools/build/ops2pm.pl>
-
-=item F<tools/build/pbc2c.pl>
-
-=back
-
-=head1 HISTORY
-
-Author: Gregor N. Purdy E<lt>gregor at focusresearch.comE<gt>
-
-=cut
-
-1;
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Deleted: branches/gsoc_threads/lib/Parrot/OpTrans.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/OpTrans.pm Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,225 +0,0 @@
-# Copyright (C) 2002-2007, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-Parrot::OpTrans - Transform Ops to C Code
-
-=head1 DESCRIPTION
-
-C<Parrot::OpTrans> is the abstract superclass for the Parrot op to C
-transforms. Each transform contains various bits of information needed
-to generate the C code, and creates a different type of run loop. The
-methods defined here supply various default values and behaviour common
-to all transforms.
-
-The subclass hierarchy is as follows:
-
- OpTrans
- |
- |
- C
-
-=head2 Class Methods
-
-=over 4
-
-=cut
-
-package Parrot::OpTrans;
-
-use strict;
-use warnings;
-
-=item C<new()>
-
-Returns a new instance.
-
-=cut
-
-sub new {
- return bless {}, shift;
-}
-
-=back
-
-=head2 Instance Methods
-
-=over 4
-
-=item C<prefix()>
-
-Returns the default 'C<Parrot_>' prefix.
-
-Used by C<Parrot::Op>'s C<func_name()> to individuate op function names.
-
-=cut
-
-sub prefix {
- return 'Parrot_';
-}
-
-=item C<suffix()>
-
-Implemented in subclasses to return a suffix with which to individuate
-variable names. This default implementation returns an empty string.
-
-=cut
-
-sub suffix {
- return '';
-}
-
-=item C<core_type()>
-
-Implemented in subclasses to return the type of core created by the
-transform. This default implementation raises an exception indicating
-that the core type is missing. See the C<Parrot_Run_core_t> C<enum> in
-F<include/parrot/interpreter.h> for a list of the core types.
-
-=cut
-
-sub core_type {
- my $self = shift;
-
- die ref($self) . " doesn't have core_type()";
-}
-
-=item C<run_core_func_decl($base)>
-
-Optionally implemented in subclasses to return the C code for the run
-core function declaration. C<$base> is the name of the main ops file minus
-the .ops extension.
-
-=item C<ops_addr_decl($base_suffix)>
-
-Optionally implemented in subclasses to return the C code for the ops
-address declaration. C<$base_suffix> is the name of the main ops file minus
-the .ops extension with C<suffix()> and an underscore appended.
-
-=item C<run_core_func_decl($base)>
-
-Optionally implemented in subclasses to return the C code for the run
-core function declaration. C<$base> is the same as for
-C<run_core_func_decl()>.
-
-=item C<run_core_func_start()>
-
-Implemented in subclasses, if C<run_core_func_decl()> is implemented, to
-return the C code prior to the run core function.
-
-=item C<run_core_after_addr_table($base_suffix)>
-
-Optionally implemented in subclasses to return the run core C code for
-section after the address table. C<$base_suffix> is the same as for
-C<ops_addr_decl()>.
-
-=item C<run_core_finish($base)>
-
-Implemented in subclasses to return the C code following the run core
-function. C<$base> is the same as for C<run_core_func_decl()>.
-
-=item C<init_func_init1($base)>
-
-Optionally implemented in subclasses to return the C code for the core's
-init function. C<$base> is the same as for C<run_core_func_decl()>.
-
-=item C<init_set_dispatch($base_suffix)>
-
-Optionally implemented in subclasses to return the C code for
-initializing the dispatch mechanism within the core's init function.
-C<$base_suffix> is the same as for C<ops_addr_decl()>.
-
-=back
-
-B<Macro Substitutions>
-
-The following methods are called by C<Parrot::OpFile> to perform ops
-file macro substitutions.
-
-=over
-
-=item C<access_arg($type, $value, $op)>
-
-Implemented in subclasses to return the C code for the specified op
-argument type and value. C<$op> is an instance of C<Parrot::Op>.
-
-=item C<gen_goto($where)>
-
-The various C<goto_I<X>> methods below call this method with the return
-value of an C<expr_I<X>> method (implemented in subclass).
-
-=cut
-
-sub gen_goto {
- my ( $self, $where_str ) = @_;
-
- return "return $where_str";
-}
-
-=item C<restart_address($address)>
-
-Implemented in subclasses to return the C code for C<restart
-ADDRESS($address)>.
-
-=item C<restart_offset($offset)>
-
-Implemented in subclasses to return the C code for C<restart
-OFFSET($offset)>.
-
-=item C<goto_address($address)>
-
-Transforms the C<goto ADDRESS($address)> macro in an ops file into the
-relevant C code.
-
-=cut
-
-sub goto_address {
- my $self = shift;
-
- return $self->gen_goto( $self->expr_address(@_) );
-}
-
-=item C<goto_offset($offset)>
-
-Transforms the C<goto OFFSET($offset)> macro in an ops file into the
-relevant C code.
-
-=cut
-
-sub goto_offset {
- my $self = shift;
-
- return $self->gen_goto( $self->expr_offset(@_) );
-}
-
-=item C<expr_offset($offset)>
-
-Implemented in subclasses to return the C code for C<OFFSET($offset)>.
-Called by C<goto_offset()>.
-
-=item C<expr_address($address)>
-
-Implemented in subclasses to return the C code for C<ADDRESS($address)>.
-Called by C<goto_address()>.
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item C<Parrot::OpTrans::C>
-
-=back
-
-=cut
-
-1;
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Deleted: branches/gsoc_threads/lib/Parrot/Ops2pm.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Ops2pm.pm Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,537 +0,0 @@
-# Copyright (C) 2007, Parrot Foundation.
-# $Id$
-package Parrot::Ops2pm;
-use strict;
-use warnings;
-use Cwd;
-use Data::Dumper ();
-use File::Path ();
-use File::Spec;
-use lib qw ( lib );
-use base qw( Parrot::Ops2pm::Base );
-use Parrot::OpsFile;
-
-=head1 NAME
-
-Parrot::Ops2pm - Methods holding functionality for F<tools/build/ops2pm.pl>.
-
-=head1 SYNOPSIS
-
- use Parrot::Ops2pm;
-
- $self = Parrot::Ops2pm->new( {
- argv => [ @ARGV ],
- nolines => $nolines_flag,
- moddir => "lib/Parrot/OpLib",
- module => "core.pm",
- inc_dir => "include/parrot/oplib",
- inc_f => "ops.h",
- script => "tools/build/ops2pm.pl",
- } );
-
- $self->prepare_ops();
- $self->load_op_map_files();
- $self->sort_ops();
- $self->prepare_real_ops();
- $self->print_module();
- $self->print_h();
- exit 0;
-
-=cut
-
-=head1 DESCRIPTION
-
-Parrot::Ops2pm provides methods called by F<tools/build/ops2pm.pl>, a
-program which is called at the very beginning of the Parrot F<make> process.
-The program's function is to build two files:
-
-=over 4
-
-=item * F<lib/Parrot/OpLib/core.pm>
-
-=item * F<include/parrot/oplib/ops.h>
-
-=back
-
-The functionality once (pre-April 2007) found in F<tools/build/ops2pm.pl> has
-been extracted into this package's methods in order to support
-component-focused testing and future refactoring.
-
-=head1 METHODS
-
-=head2 C<new()>
-
-Inherited from Parrot::Ops2pm::Base and documented in
-F<lib/Parrot/Ops2pm/Base.pm>.
-
-=head2 C<prepare_ops()>
-
-Inherited from Parrot::Ops2pm::Base and documented in
-F<lib/Parrot/Ops2pm/Base.pm>.
-
-=head2 C<load_op_map_files()>
-
-=over 4
-
-=item * Purpose
-
-When F<tools/build/ops2pm.pl> is called by F<make>, this method
-checks the number of ops strictly against F<src/ops/ops.num> and
-F<src/ops/ops.skip>.
-
-=item * Arguments
-
-None. (Implicitly requires that the C<argv> and C<script> keys
-have been provided to the constructor.)
-
-=item * Return Value and Side Effects
-
-Returns true value upon success. Internally, sets these
-values in these elements in the object's data structure:
-
-=over 4
-
-=item * C<max_op_num>
-
-Scalar holding number of highest non-experimental op. Example:
-
- 'max_op_num' => 1246,
-
-=item * C<optable>
-
-Reference to hash holding mapping of opcode names ops to their numbers.
-Example:
-
- 'optable' => {
- 'pow_p_p_i' => 650,
- 'say_s' => 463,
- 'lsr_p_p_i' => 207,
- 'lt_s_sc_ic' => 289,
- # ...
- 'debug_init' => 429,
- 'iseq_i_nc_n' => 397,
- 'eq_addr_sc_s_ic' => 254
- },
-
-Per F<src/ops/ops.num>, this mapping exists so that we can nail down
-the op numbers for the core opcodes in a particular version of the
-bytecode and provide backward-compatibility for bytecode.
-
-=item * C<skiptable>
-
-Reference to a 'seen-hash' of skipped opcodes.
-
- 'skiptable' => {
- 'bor_i_ic_ic' => 1,
- 'xor_i_ic_ic' => 1,
- 'tanh_n_nc' => 1,
- # ...
- },
-
-As F<src/ops/ops.skip> states, these are "... opcodes that could be listed in
-F<[src/ops/]ops.num> but aren't ever to be generated or implemented because
-they are useless and/or silly."
-
-=back
-
-=back
-
-=cut
-
-sub load_op_map_files {
- my $self = shift;
- my $num_file = $self->{num_file};
- my $skip_file = $self->{skip_file};
-
- my ( $op, $name, $number, $prev );
-
- $self->{max_op_num} ||= 0;
-
- open $op, '<', $num_file
- or die "Can't open $num_file: $!";
- $prev = -1;
- while (<$op>) {
- chomp;
- s/#.*$//;
- s/\s*$//;
- s/^\s*//;
- next unless $_;
- ( $name, $number ) = split( /\s+/, $_ );
- if ( $prev + 1 != $number ) {
- die "hole in ops.num before #$number";
- }
- if ( exists $self->{optable}{$name} ) {
- die "duplicate opcode $name and $number";
- }
- $prev = $number;
- $self->{optable}{$name} = $number;
- if ( $number > $self->{max_op_num} ) {
- $self->{max_op_num} = $number;
- }
- }
- undef $op;
-
- open $op, '<', $skip_file
- or die "Can't open $skip_file: $!";
- while (<$op>) {
- chomp;
- s/#.*$//;
- s/\s*$//;
- s/^\s*//;
- next unless $_;
- ($name) = split( /\s+/, $_ );
- if ( exists $self->{optable}{$name} ) {
- die "skipped opcode is also in $num_file:$.";
- }
- $self->{skiptable}{$name} = 1;
- }
- undef $op;
- return 1;
-}
-
-=head2 C<sort_ops()>
-
-=over 4
-
-=item * Purpose
-
-Internal manipulation of the Parrot::Ops2pm object: sorting by number of the
-list of op codes found in the object's C<{ops}-E<gt>{OPS}> element.
-
-=item * Arguments
-
-None.
-
-=item * Return Value and Side Effects
-
-No return value. Internally, re-sets the C<ops> key of the object's data
-structure.
-
-=item * Comment
-
-It is at this point that warnings about experimental opcodes will be
-emitted if you are working in a checkout from the Parrot repository. Example:
-
- trap 1247 experimental, not in ops.num
-
-=back
-
-=cut
-
-sub sort_ops {
- my $self = shift;
- for my $el ( @{ $self->{ops}{OPS} } ) {
- if ( exists $self->{optable}{ $el->full_name } ) {
- $el->{CODE} = $self->{optable}{ $el->full_name };
- }
- elsif ( exists $self->{skiptable}{ $el->full_name } ) {
- $el->{CODE} = -1;
- }
- elsif ( $el->{experimental} ) {
- my $n = $self->{optable}{ $el->full_name } = ++$self->{max_op_num};
- warn sprintf(
- "%-25s %-10s experimental, not in ops.num\n",
- $el->full_name, $n
- ) if -e "DEVELOPING";
- $el->{CODE} = $n;
- }
- else {
- die sprintf(
- "%-25s %-10s FATAL: not in ops.num nor ops.skip\n",
- $el->full_name, ""
- ) if -e "DEVELOPING";
- $el->{CODE} = -1;
- }
- }
- @{ $self->{ops}{OPS} } =
- sort { $a->{CODE} <=> $b->{CODE} } ( @{ $self->{ops}{OPS} } );
-}
-
-=head2 C<prepare_real_ops()>
-
-=over 4
-
-=item * Purpose
-
-Final stage of preparation of ops.
-
-=item * Arguments
-
-None. (Same implicit requirements for the constructor as
-C<load_op_map_files()> above.)
-
-=item * Return Value and Side Effects
-
-No return value. Internally, adds the C<real_ops> key of the object's
-data structure. Its value is a Parrot::OpsFile object.
-
-=back
-
-=cut
-
-sub prepare_real_ops {
- my $self = shift;
-
- my $real_ops = Parrot::OpsFile->new( [], $self->{nolines} );
- $real_ops->{PREAMBLE} = $self->{ops}{PREAMBLE};
- $real_ops->version( $self->{ops}->version );
-
- # verify opcode numbers
- my $seq = 0;
- for my $el ( @{ $self->{ops}{OPS} } ) {
- next if $el->{CODE} < 0; # skip
- my $opname = $el->full_name;
- my $n = $self->{optable}{$opname}; # former global
- if ( $n != $el->{CODE} ) {
- die "op $opname: number mismatch: ops.num $n vs. core.ops $el->{CODE}";
- }
- if ( $seq != $el->{CODE} ) {
- die "op $opname: sequence mismatch: ops.num $seq vs. core.ops $el->{CODE}";
- }
- push @{ $real_ops->{OPS} }, $el;
- ++$seq;
- }
- $self->{real_ops} = $real_ops;
-}
-
-=head2 C<print_module()>
-
-=over 4
-
-=item * Purpose
-
-Uses information in the object's data structure -- principally
-the C<real_ops> element -- to create F<lib/Parrot/OpLib/core.pm>.
-
-=item * Arguments
-
-None. (Implicitly requires that the constructor have the
-following keys defined: C<argv>, C<script>, C<moddir> and C<module>.)
-
-=item * Return Value
-
-Returns true value upon success.
-
-=item * Comment
-
-=back
-
-=cut
-
-sub print_module {
- my $self = shift;
- my $cwd = cwd();
- my $fulldir = File::Spec->catdir( $cwd, $self->{moddir} );
- if ( !-d $fulldir ) {
- if ( !File::Path::mkpath( [ $fulldir ], 0, 0755 ) ) {
- -d $fulldir
- or die "$self->{script}: Could not mkdir $fulldir: $!!\n";
- }
- }
- my $fullpath = File::Spec->catfile( ($fulldir), $self->{module} );
- open my $MODULE, '>', $fullpath
- or die "$self->{script}: Could not open module file '$fullpath' for writing: $!!\n";
-
- my $version = $self->{real_ops}->version();
- ( my $pod = <<"END_POD") =~ s/^ //osmg;
- =head1 NAME
-
- Parrot::OpLib::core - Parrot Op Info
-
- =head1 DESCRIPTION
-
- This is an autogenerated file, created by F<$self->{script}>.
-
- It contains Parrot version info, a preamble for inclusion in C code,
- and an array of C<Parrot::Op> instances representing the Parrot ops.
-
- =cut
-END_POD
-
- my $preamble = <<END_C;
-#! perl -w
-#
-# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
-#
-# This file is generated automatically from '$self->{file}'.
-# Any changes made here will be lost!
-#
-
-$pod
-
-use strict;
-
-package Parrot::OpLib::core;
-
-use vars qw(\$VERSION \$ops \$preamble);
-
-\$VERSION = "$version";
-
-END_C
-
- print {$MODULE} $preamble;
- print {$MODULE} Data::Dumper->Dump( [ $self->{real_ops}->preamble, [ $self->{real_ops}->ops ] ],
- [qw($preamble $ops)] );
-
- print {$MODULE} <<END_C;
-
-1;
-END_C
-
- close $MODULE or die;
-
- return 1;
-}
-
-=head2 C<print_h()>
-
-=over 4
-
-=item * Purpose
-
-Uses information in the object's data structure -- principally
-the C<real_ops> key -- to create F<include/parrot/oplib/ops.h>.
-
-=item * Arguments
-
-None. (Implicitly requires that the constructor have the
-following keys defined: C<argv>, C<script>, C<inc_dir> and C<inc_f>.)
-
-=item * Return Value
-
-Returns true value upon success.
-
-=item * Comment
-
-=back
-
-=cut
-
-sub print_h {
- my $self = shift;
- my $cwd = cwd();
- my $fulldir = File::Spec->catdir( $cwd, $self->{inc_dir} );
- if ( !-d $fulldir ) {
- if ( !File::Path::mkpath( [ $fulldir ], 0, 0755 ) ) {
- -d $fulldir
- or die "$self->{script}: Could not mkdir $fulldir: $!!\n";
- }
- }
-
- my $fullpath = File::Spec->catfile( ($fulldir), $self->{inc_f} );
- open my $OUT, '>', $fullpath
- or die "$self->{script}: Could not open module file '$fullpath' for writing: $!!\n";
-
- print $OUT <<END_C;
-/* ex: set ro:
- * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- *
- * This file is generated automatically from '$self->{file}'
- * by $self->{script}.
- *
- * Any changes made here will be lost!
- */
-
-#ifndef PARROT_OPS_H_GUARD
-#define PARROT_OPS_H_GUARD
-
-typedef enum {
-END_C
-
- my @OPS = @{ $self->{real_ops}->{OPS} };
- for my $el (@OPS) {
- my $opname = $el->full_name;
- my $n = $el->{CODE};
- my $comma = $n < @OPS - 1 ? "," : "";
- $opname = "PARROT_OP_$opname$comma";
-
- printf $OUT " %-30s\t/* %4d */\n", $opname, $n;
- }
-
- print $OUT <<END_C;
-} parrot_opcode_enums;
-
-#endif /* PARROT_OPS_H_GUARD */
-
-END_C
-
- # append the C code coda
- print $OUT <<END_C;
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
-END_C
- close $OUT;
- return 1;
-}
-
-=head1 NOTE ON TESTING
-
-A suite of test files to accompany this package is found in
-F<t/tools/ops2pm>. This suite has been developed to maximize its
-coverage of the code of Parrot::Ops2pm (as measured by Perl module
-Devel::Cover). Should you wish to refactor this package, it is recommended
-that you do so in a B<test-driven> manner:
-
-=over 4
-
-=item 1
-
-Write the specification for any additions or modifications to
-Parrot::Ops2pm' interface.
-
-=item 2
-
-Write tests that reflect any such modifications.
-
-=item 3
-
-Write the additional or modified code that reflects the new specification.
-
-=item 4
-
-Test the new code and debug. The tests in the suite should be run B<after>
-Parrot's F<Configure.pl> has run but B<before> F<make> has run. Example:
-
- $> perl Configure.pl
- $> prove -v t/tools/ops2pm/*.t
- $> make
-
-=item 5
-
-Use Devel::Cover to measure the extent to which the existing and new tests
-cover the existing and revised code.
-
-=item 6
-
-Refactor and retest to ensure high test coverage.
-
-=back
-
-This package's methods are called by F<tools/build/ops2pm.pl>, which in turn
-is invoked by F<make> in the Parrot build process. Successful execution of
-F<make> proves that the functionality in this package achieved its overall
-objective but does not necessarily invoke many of the individual code
-statements in the package. That is the rationale for the component-focused
-testing provided by the test suite.
-
-=head1 AUTHOR
-
-See F<tools/build/ops2pm.pl> for a list of the Parrot hackers who, over a
-period of several years, developed the functionality now found in the methods
-of Parrot::Ops2pm. Jim Keenan extracted that functionality and placed
-it in this package's methods.
-
-=cut
-
-1;
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Deleted: branches/gsoc_threads/lib/Parrot/OpsFile.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/OpsFile.pm Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,750 +0,0 @@
-#! perl
-# Copyright (C) 2001-2009, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-Parrot::OpsFile - Ops To C Code Generation
-
-=head1 SYNOPSIS
-
- use Parrot::OpsFile;
-
-=head1 DESCRIPTION
-
-C<Parrot::OpsFile> takes one or more files of op functions and
-creates real C code for them.
-
-This class is used by F<tools/build/ops2c.pl>,
-F<tools/build/ops2pm.pl> and F<tools/build/pbc2c.pl>.
-
-=head2 Op Functions
-
-For ops that have trivial bodies (such as just a call to some other
-function and a C<return> statement), opcode functions are in the format:
-
- inline op opname (args) :flags {
- ... body of function ...
- }
-
-Note that currently the C<inline> op type is ignored.
-
-Alternately, for opcode functions that have more internal complexity the
-format is:
-
- op opname (args) :flags {
- ... body of function ...
- }
-
-There may be more than one C<return>.
-
-In both cases the closing brace B<must> be on its own line.
-
-When specifying multiple flags, each flag gets its own prefixing colon.
-
-=head2 Op Arguments
-
-Op arguments are a comma-separated list of direction and type pairs.
-
-Argument direction is one of:
-
- in the argument passes a value into the op
- out the argument passes a value out of the op
- inout the argument passes a value into and out of the op
- inconst the argument passes a constant value into the op
- invar the argument passes a variable value into the op
-
-Argument direction is used to determine the life times of symbols and
-their related register allocations. When an argument is passed into an
-op a register is read from, when it's passed out of an op a register is
-written to.
-
-Argument type is one of:
-
- INT the argument is an integer
- NUM the argument is an numeric
- STR the argument is an string
- PMC the argument is an PMC
- KEY the argument is an aggregate PMC key
- INTKEY the argument is an aggregate PMC integer key
- LABEL the argument is an integer branch offset or address
-
-The size of the return offset is determined from the op function's
-signature.
-
-=head2 Op Flags
-
-The flags are of two types:
-
-=over 4
-
-=item 1 class
-
-The classification of ops is intended to facilitate the selection of
-suitable ops for a Parrot safe mode.
-
-=item 2 behavior
-
-The presence (or absence) of certain flags will change how the op behaves. For
-example, the lack of the C<flow> flag will cause the op to be implicitly
-terminated with C<goto NEXT()>. (See next section).
-
-The :deprecated flag will generate a diagnostic to standard error at
-runtime when a deprecated opcode is invoked and
-C<PARROT_WARNINGS_DEPRECATED_FLAG> has been set.
-
-=back
-
-=head2 Op Body (Macro Substitutions)
-
-In the following macro descriptions, C<PC> and C<PC'> are the current
-and next position within the Parrot code.
-
-=over 4
-
-=item C<goto OFFSET(X)>
-
-Transforms to C<PC' = PC + X>. This is used for branches.
-
-=item C<goto NEXT()>
-
-Transforms to C<PC' = PC + S>, where C<S> is the size of an op.
-
-=item C<goto ADDRESS(X)>
-
-Transforms to C<PC' = X>. This is used for absolute jumps.
-
-=item C<expr OFFSET(X)>
-
-Transforms to C<PC + X>. This is used to give a relative address.
-
-=item C<expr NEXT()>
-
-Transforms to C<PC + S>, the position of the next op.
-
-=item C<expr ADDRESS(X)>
-
-Transforms to C<X>, an absolute address.
-
-=item C<restart OFFSET(X)>
-
-Transforms to C<PC' = 0> and restarts at C<PC + X>.
-
-=item C<restart NEXT()>
-
-Transforms to C<PC' = 0> and restarts at C<PC + S>.
-
-=item C<$n>
-
-Transforms to the op function's nth argument. C<$0> is the opcode itself.
-
-=back
-
-Note that, for ease of parsing, if the argument to one of the above
-notations in a ops file contains parentheses, then double the enclosing
-parentheses and add a space around the argument, like so:
-
- goto OFFSET(( (void*)interp->happy_place ))
-
-=head2 Class Methods
-
-=over 4
-
-=cut
-
-package Parrot::OpsFile;
-
-use strict;
-use warnings;
-
-use base qw( Exporter );
-
-use Parrot::Op;
-use Parrot::Config;
-
-our %op_body;
-our @EXPORT = qw( %op_body );
-
-# private sub _trim()
-#
-# Trim leading and trailing spaces.
-
-sub _trim {
- my $value = shift;
-
- $value =~ s/^\s+//;
- $value =~ s/\s+$//;
-
- return $value;
-}
-
-=item C<new(@files)>
-
-Returns a new instance initialized by calling C<read_ops()> on each of
-the specified op files.
-
-=cut
-
-sub new {
- my ( $class, $files, $nolines ) = @_;
-
- my $self = bless { PREAMBLE => '' }, $class;
-
- $self->read_ops( $_, $nolines ) for @{$files};
-
- # FILE holds a space separated list of opsfile name
- if ( $self->{FILE} ) {
- $self->{FILE} =~ s/, $//;
- $self->{FILE} =~ s/, $//;
- }
-
- return $self;
-}
-
-=back
-
-=head2 Instance Methods
-
-=over 4
-
-=item C<read_ops($file,$nolines)>
-
-Reads in the specified .ops file, gathering information about the ops.
-
-=cut
-
-sub read_ops {
- my ( $self, $file, $nolines ) = @_;
-
- my $ops_file = "src/" . $file;
-
- die "Parrot::OpFunc::init(): No file specified!\n" unless defined $file;
-
- $self->{FILE} .= $file . ', ';
-
- my $orig = $file;
-
- open my $OPS, '<', $file or die "Can't open $file, $!/$^E";
-
- $self->version( $PConfig{VERSION} );
-
- if ( !( $file =~ s/\.ops$/.c/ ) ) {
- $file .= ".c";
- }
-
- #
- # Read through the file, creating and storing Parrot::Op objects:
- #
-
- my $count = 0;
- my ( $name, $footer );
- my $type;
- my $body;
- my $short_name;
- my $args;
- my @args;
- my @argdirs;
- my $seen_pod;
- my $seen_op;
- my $in_preamble;
- my $line;
- my $flags;
- my @labels;
-
- while (<$OPS>) {
- $seen_pod = 1 if m|^=|;
- $in_preamble = 1 if s|^BEGIN_OPS_PREAMBLE||;
-
- unless ( $seen_op or m|^(inline\s+)?op\s+| ) {
-
- if (m|^END_OPS_PREAMBLE|) {
- $_ = '';
- $in_preamble = 0;
- }
- elsif ($in_preamble) {
- $self->{PREAMBLE} .= $_;
- }
-
- next;
- }
-
- die "No 'VERSION = ...;' line found before beginning of ops in file '$orig'!\n"
- unless defined $self->version;
-
- #
- # Handle start-of-op:
- #
- # We create a new Parrot::Op instance based on the type, name and args.
- # We query the Parrot::Op for the op size, etc., which we use later.
- #
- # Either of these two forms work:
- #
- # inline op name (args) {
- # op name (args) {
- #
- # The args are a comma-separated list of items from this table of argument
- # types (even if no formal args are specified, there will be a single 'o'
- # entry):
- #
- # op The opcode
- #
- # i Integer register index
- # n Number register index
- # p PMC register index
- # s String register index
- #
- # ic Integer constant (in-line)
- # nc Number constant index
- # pc PMC constant index
- # sc String constant index
- # kc Key constant index
- # kic Integer Key constant index (in-line)
- #
-
- my $op_sig_RE = qr/
- ^
- (inline\s+)? # optional keywords
- op
- \s+
- ([a-zA-Z]\w*) # op name
- \s*
- \((.*)\) # argument signature
- \s*
- ((?: \:\w+\s*)*) # :flags
- \s*
- {
- $
- /x;
-
- if ($_ =~ $op_sig_RE) {
- if ($seen_op) {
- die "$ops_file [$.]: Cannot define an op within an op definition!\n";
- }
-
- $type = defined($1) ? 'inline' : 'function';
- $short_name = $2;
- $args = _trim( lc $3 );
- $flags = $4 ? _trim( lc $4 ) : "";
- @args = split( /\s*,\s*/, $args );
- @argdirs = ();
- @labels = ();
- $body = '';
- $seen_op = 1;
- $line = $. + 1;
-
- $flags = { map { $_ => undef } (split(/[ :]+/, $flags)) };
-
- my @temp;
-
- for my $arg (@args) {
- my ( $use, $type ) =
- $arg =~ m/^(in|out|inout|inconst|invar)
- \s+
- (INT|NUM|STR|PMC|KEY|INTKEY|LABEL)$/ix;
-
- die "Unrecognized arg format '$arg' in '$_'!"
- unless defined($use) and defined($type);
-
- # remember it's a label, then turn it to an int
- if ( $type =~ /^LABEL$/i ) {
- $type = 'i';
- push @labels, 1;
- }
- else {
- push @labels, 0;
- }
-
- if ( $type =~ /^INTKEY$/i ) {
- $type = 'ki';
- }
- else {
- $type = lc substr( $type, 0, 1 );
- }
-
- if ( $use eq 'in' ) {
- push @temp, "$type|${type}c";
- push @argdirs, 'i';
- }
- elsif ( $use eq 'invar' ) {
- push @temp, $type;
- push @argdirs, 'i';
- }
- elsif ( $use eq 'inconst' ) {
- push @temp, "${type}c";
- push @argdirs, 'i';
- }
- elsif ( $use eq 'inout' ) {
- push @temp, $type;
- push @argdirs, 'io';
- }
- else {
- push @temp, $type;
- push @argdirs, 'o';
- }
- }
-
- @args = @temp;
-
- next;
- }
-
- #
- # Handle end-of-op:
- #
- # We stash the accumulated body of source code in the Parrot::Op, push the
- # Parrot::Op onto our op array, and forget the op so we can start the next
- # one.
- #
-
- if (/^}\s*$/) {
- $count += $self->make_op(
- $count, $type, $short_name, $body, \@args, \@argdirs,
- $line, $orig, \@labels, $flags, $nolines
- );
-
- $seen_op = 0;
-
- next;
- }
-
- #
- # Accumulate the code into the op's body:
- #
-
- if ($seen_op) {
- $body .= $_;
- }
- else {
- die "Parrot::OpsFile: Unrecognized line: '$_'!\n";
- }
- }
-
- if ($seen_op) {
- die "Parrot::OpsFile: File ended with incomplete op definition!\n";
- }
-
- close $OPS or die "Could not close ops file '$file' ($!)!";
-
- return;
-}
-
-# Extends a string containing an or expression "0" .. "A" .. "A|B" etc.
-sub or_flag {
- my ( $flag, $value ) = @_;
-
- if ( $$flag eq '0' ) {
- $$flag = $value;
- }
- else {
- $$flag .= "|$value";
- }
-}
-
-=item C<make_op($code,
-$type, $short_name, $body, $args, $argdirs, $line, $file, $labels, $flags, $nolines)>
-
-Returns a new C<Parrot::Op> instance for the specified arguments.
-
-=cut
-
-sub make_op {
- my (
- $self, $code, $type, $short_name, $body, $args,
- $argdirs, $line, $file, $labels, $flags, $nolines
- ) = @_;
- my $counter = 0;
- my $branch = 0;
- my $pop = 0;
-
- if (exists($$flags{deprecated})) {
- $body = <<"END_CODE" . $body;
-INTVAL unused = PARROT_WARNINGS_test(interp,PARROT_WARNINGS_DEPRECATED_FLAG) &&
- fprintf(stderr,"Warning: instruction '$short_name' is deprecated\\n");
-END_CODE
-}
- unless (exists($$flags{flow})) {
- $body .= "\ngoto NEXT();";
- }
-
- foreach my $variant ( expand_args(@$args) ) {
- my (@fixedargs) = split( /,/, $variant );
- my $op =
- Parrot::Op->new( $code++, $type, $short_name, [@fixedargs], [@$argdirs], [@$labels],
- $flags );
- my $op_size = $op->size;
- my $jumps = "0";
-
- #
- # Macro substitutions:
- #
- # We convert the following notations:
- #
- # .ops file Op body Meaning Comment
- # ----------------- ------- ------------ ----------------------------------
- # goto OFFSET(X) {{+=X}} PC' = PC + X Used for branches
- # goto NEXT() {{+=S}} PC' = PC + S Where S is op size
- # goto ADDRESS(X) {{=X}} PC' = X Used for absolute jumps
- # expr OFFSET(X) {{^+X}} PC + X Relative address
- # expr NEXT() {{^+S}} PC + S Where S is op size
- # expr ADDRESS(X) {{^X}} X Absolute address
- #
- # restart OFFSET(X) {{=0,+=X}} PC' = 0 Restarts at PC + X
- # restart NEXT() {{=0,+=S}} PC' = 0 Restarts at PC + S
- #
- # $X {{@X}} Argument X $0 is opcode, $1 is first arg
- #
- # For ease of parsing, if the argument to one of the above
- # notations in a .ops file contains parentheses, then double the
- # enclosing parentheses and add a space around the argument,
- # like so:
- #
- # goto OFFSET(( (void*)interp->happy_place ))
- #
- # Later transformations turn the Op body notations into C code, based
- # on the mode of operation (function calls, switch statements, gotos
- # with labels, etc.).
- #
- if ($body =~ /(goto|restart)\s+OFFSET\(.*?\)/ || $short_name =~ /runinterp/) {
- $branch = 1;
- }
-
- $body =~ s/\bgoto\s+ADDRESS\(\( (.*?) \)\)/{{=$1}}/mg;
- $body =~ s/\bexpr\s+ADDRESS\(\( (.*?) \)\)/{{^$1}}/mg;
- $body =~ s/\bgoto\s+ADDRESS\((.*?)\)/{{=$1}}/mg;
- $body =~ s/\bexpr\s+ADDRESS\((.*?)\)/{{^$1}}/mg;
-
- $body =~ s/\bgoto\s+OFFSET\(\( (.*?) \)\)/{{+=$1}}/mg;
- $body =~ s/\bexpr\s+OFFSET\(\( (.*?) \)\)/{{^+$1}}/mg;
- $body =~ s/\bgoto\s+OFFSET\((.*?)\)/{{+=$1}}/mg;
- $body =~ s/\bexpr\s+OFFSET\((.*?)\)/{{^+$1}}/mg;
-
- $body =~ s/\bexpr\s+NEXT\(\)/{{^+$op_size}}/mg;
- $body =~ s/\bgoto\s+NEXT\(\)/{{+=$op_size}}/mg;
-
- $body =~ s/\brestart\s+OFFSET\((.*?)\)/{{=0,+=$1}}/mg;
- $body =~ s/\brestart\s+NEXT\(\)/{{=0,+=$op_size}}/mg;
- $body =~ s/\brestart\s+ADDRESS\((.*?)\)/{{=$1}}/mg;
-
- $body =~ s/\$(\d+)/{{\@$1}}/mg;
-
- # We can only reference as many parameters as we declare
- my $max_arg_num = @$args;
- my @found_args = ($body =~ m/{{@(\d+)}}/g);
- foreach my $arg (@found_args) {
- die "opcode '$short_name' uses '\$$arg' but only has $max_arg_num parameters.\n" if $arg > $max_arg_num;
- }
-
-
- my $file_escaped = $file;
- $file_escaped =~ s|(\\)|$1$1|g; # escape backslashes
- $op->body( $nolines ? $body : qq{#line $line "$file_escaped"\n$body} );
-
- # Constants here are defined in include/parrot/op.h
- or_flag( \$jumps, "PARROT_JUMP_RELATIVE" ) if $branch;
-
- $op->jump($jumps);
- $self->push_op($op);
- $counter++;
- }
-
- return $counter;
-}
-
-=item C<expand_args(@args)>
-
-Given an argument list, returns a list of all the possible argument
-combinations.
-
-=cut
-
-sub expand_args {
- my (@args) = @_;
-
- return "" if ( !scalar(@args) );
-
- my $arg = shift(@args);
- my @var = split( /\|/, $arg );
-
- if ( !scalar(@args) ) {
- return @var;
- }
- else {
- my @list = expand_args(@args);
- my @results;
-
- foreach my $l (@list) {
- foreach my $v (@var) {
- push( @results, "$v,$l" );
- }
- }
-
- return @results;
- }
-}
-
-=item C<ops()>
-
-Returns the C<Parrot::Op> instances found in the file(s).
-
-=cut
-
-sub ops {
- my ($self) = @_;
-
- return @{ $self->{OPS} };
-}
-
-=item C<op($index)>
-
-Returns the op at C<$index>.
-
-=cut
-
-sub op {
- my ( $self, $index ) = @_;
-
- return $self->{OPS}[$index];
-}
-
-=item C<preamble()>
-
-=item C<preamble($trans)>
-
-Returns any lines found prior to first op definition.
-
-If C<$trans> (an C<Parrot::OpTrans> subclass) is supplied then
-substitutions are made.
-
-=cut
-
-sub preamble {
- my ( $self, $trans ) = @_;
-
- local $_ = $self->{PREAMBLE};
-
- if ($trans) {
- s/goto\s+OFFSET\((.*)\)/{{+=$1}}/mg;
-
- #s/goto\s+NEXT\(\)/{{+=$op_size}}/mg; #not supported--dependent on op size
- s/goto\s+ADDRESS\((.*)\)/{{=$1}}/mg;
-
- $_ = Parrot::Op->rewrite_body( $_, $trans, 'preamble' );
- }
-
- return $_;
-}
-
-=item C<version($major, $minor, $patch)>
-
-=item C<version($version)>
-
-=item C<version()>
-
-Sets/gets the version number.
-
-=cut
-
-sub version {
- my $self = shift;
-
- if ( @_ == 1 ) {
- $self->{VERSION} = shift;
- }
- elsif ( @_ == 3 ) {
- $self->{VERSION} = join( '.', @_ );
- }
- elsif ( @_ == 0 ) {
- if (wantarray) {
- return split( /\./, $self->{VERSION} );
- }
- else {
- return $self->{VERSION};
- }
- }
- else {
- die "Parrot::OpsFile::version(): Illegal argument count" . scalar(@_) . "!";
- }
-}
-
-=item C<major_version()>
-
-Returns the major version number.
-
-=cut
-
-sub major_version {
- my $self = shift;
-
- $self->{VERSION} =~ m/^(\d+)\./;
-
- return $1;
-}
-
-=item C<minor_version()>
-
-Returns the minor version number.
-
-=cut
-
-sub minor_version {
- my $self = shift;
-
- $self->{VERSION} =~ m/^\d+\.(\d+)\./;
-
- return $1;
-}
-
-=item C<patch_version()>
-
-Returns the patch version number.
-
-=cut
-
-sub patch_version {
- my $self = shift;
-
- $self->{VERSION} =~ m/^\d+\.\d+\.(\d+)/;
-
- return $1;
-}
-
-=item C<push_op($op)>
-
-Adds C<$op> to the end of the op list.
-
-=cut
-
-sub push_op {
- my ( $self, $op ) = @_;
-
- push @{ $self->{OPS} }, $op;
-}
-
-=back
-
-=head1 SEE ALSO
-
-=over 4
-
-=item C<Parrot::Op>
-
-=item C<Parrot::OpTrans>
-
-=item F<tools/build/ops2c.pl>
-
-=item F<tools/build/ops2pm.pl>
-
-=item F<tools/build/pbc2c.pl>
-
-=back
-
-=cut
-
-1;
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Deleted: branches/gsoc_threads/lib/Parrot/OpsRenumber.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/OpsRenumber.pm Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,190 +0,0 @@
-# Copyright (C) 2007, Parrot Foundation.
-# $Id$
-package Parrot::OpsRenumber;
-use strict;
-use warnings;
-use lib qw ( lib );
-use base qw( Parrot::Ops2pm::Base );
-
-=head1 NAME
-
-Parrot::OpsRenumber - Methods holding functionality for F<tools/dev/opsrenumber.pl>.
-
-=head1 SYNOPSIS
-
- use Parrot::OpsRenumber;
-
- $self = Parrot::OpsRenumber->new( {
- argv => [ @ARGV ],
- moddir => "lib/Parrot/OpLib",
- module => "core.pm",
- inc_dir => "include/parrot/oplib",
- inc_f => "ops.h",
- script => "tools/dev/opsrenumber.pl",
- } );
-
- $self->prepare_ops();
- $self->renum_op_map_file();
-
-=cut
-
-=head1 DESCRIPTION
-
-Parrot::OpsRenumber provides methods called by F<tools/dev/opsrenumber.pl>.
-
-=head1 METHODS
-
-=head2 C<new()>
-
-Inherited from Parrot::Ops2pm::Base and documented in
-F<lib/Parrot/Ops2pm/Base.pm>.
-
-=head2 C<prepare_ops()>
-
-Inherited from Parrot::Ops2pm::Base and documented in
-F<lib/Parrot/Ops2pm/Base.pm>.
-
-=head2 C<renum_op_map_file()>
-
-=over 4
-
-=item * Purpose
-
-This method renumbers F<src/ops/ops.num> based on the already
-existing file of that name and additional F<.ops> files.
-
-=item * Arguments
-
-Two scalars. First is Parrot major version number. Second is optional:
-string holding name of an F<.ops> file; defaults to F<src/ops/ops.num>.
-(Implicitly requires that the C<argv> and C<script> elements were provided to
-the constructor.)
-
-=item * Return Value
-
-Returns true value upon success.
-
-=back
-
-=cut
-
-
-my $OPSENUM_PREAMBLE =<<END;
-/* ex: set ro ft=c:
- * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- *
- * This file is generated automatically from 'lib/Parrot/OpsRenumber.pm'.
- *
- * Any changes made here will be lost!
- *
- */
-#ifndef OPSENUM_H_GUARD
-#define OPSENUM_H_GUARD
-enum OPS_ENUM {
-END
-
-my $OPSENUM_POSTAMBLE =<<END;
-};
-#endif /* OPSENUM_H_GUARD */
-/* GENERATED BY lib/Parrot/OpsRenumber.pm */
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
-END
-
-sub renum_op_map_file {
- my $self = shift;
-
- my $file = $self->{num_file};
-
- # We open up the currently existing ops.num and file and read it
- # line-by-line. That file is basically divided into two halves
- # separated by the ###DYNAMIC### line. Above that line are found
- # (a) # inline comments and
- # (b) the first 7, never-to-be-altered opcodes.
- # Below that line are all the remaining opcodes. All opcode lines
- # match the pattern /^(\w+)\s+(\d+)$/. Everything above the line gets
- # pushed into @lines and, if it's an opcode line, gets split and
- # pushed into %fixed as well. Nothing happens to the (opcode) lines
- # below the DYNAMIC line.
-
- my ( $name, $number, @lines, %seen, %fixed, $fix );
- $fix = 1;
- open my $OP, '<', $file
- or die "Can't open $file, error $!";
- while (<$OP>) {
- push @lines, $_ if $fix;
- chomp;
- $fix = 0 if /^###DYNAMIC###/;
- s/#.*$//;
- s/\s*$//;
- s/^\s*//;
- next unless $_;
- ( $name, $number ) = split( /\s+/, $_ );
- $seen{$name} = 1;
- $fixed{$name} = $number if $fix;
- }
- close $OP;
-
- # Now we re-open the very same file we just read -- this time for
- # writing. We directly print all the lines in @lines, i.e., those
- # above the DYNAMIC line. For the purpose of renumbering, we create
- # an index $n.
-
- my $opsenumfn = $self->{opsenum_file};
- open my $OPSENUM, '>', $opsenumfn or die "Can't open $opsenumfn, error $!";
- print $OPSENUM $OPSENUM_PREAMBLE;
- open $OP, '>', $file
- or die "Can't open $file, error $!";
- print $OP @lines;
- my ($n);
-
- # We can't use all autogenerated ops from oplib/core
- # there are unwanted permutations like 'add_i_ic_ic
- # which aren't opcodes but calculated at compile-time.
-
- # The ops element is set by prepare_ops(), which is inherited from
- # Parrot::Ops2pm::Base. prepare_ops(), in turn, works off
- # Parrot::OpsFile.
-
- # So whether a particular opcode will continue to appear in ops.num
- # depends entirely on whether or not it's found in
- # @{ $self->{ops}->{OPS} }. If a particular opcode has been deleted or
- # gone missing from that array, then it won't appear in the new
- # ops.num.
-
- for ( @{ $self->{ops}->{OPS} } ) {
-
- # To account for the number of opcodes above the line, we'll
- # increment the index by one for every element in %fixed.
-
- if ( defined $fixed{ $_->full_name } ) {
- $n = $fixed{ $_->full_name };
- }
-
- # For all other opcodes, we'll print the opcode, increment the
- # index, then print the index on that same line.
-
- elsif ( $seen{ $_->full_name } ) {
- printf $OP "%-31s%4d\n", $_->full_name, ++$n;
- printf $OPSENUM " enum_ops_%-31s= %4d,\n", $_->full_name, $n;
- }
- }
- close $OP;
- print $OPSENUM $OPSENUM_POSTAMBLE;
- close $OPSENUM;
-
- return 1;
-}
-
-1;
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/gsoc_threads/lib/Parrot/Test/Pod.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Test/Pod.pm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/lib/Parrot/Test/Pod.pm Thu Jun 10 21:09:12 2010 (r47545)
@@ -72,11 +72,23 @@
| t/configure/testlib/cdefectivefoobar
| t/configure/testlib/bdefectivefoobar
| examples/config/file/configwithfatalstep
+ | compilers/opsc
}x
) {
delete $files_needing_analysis->{ $file };
next SECOND_FILE;
}
+
+ # read first line. If it contains "nqp" remove file from test.
+ my $fh;
+ open $fh, '<', $full_file or croak "Can't opend file $full_file $!";
+ my $line = <$fh>;
+ close $fh;
+
+ if ($line =~ m/ nqp | use \s v6 /x) {
+ delete $files_needing_analysis->{ $file };
+ next SECOND_FILE;
+ }
}
}
nstore $files_needing_analysis, $sto;
@@ -198,7 +210,7 @@
@files = @{ $self->{argv} };
}
else {
- print STDERR "\nFinding files with POD, this may take a minute.\n";
+ print STDERR "\n# Finding files with POD, this may take a minute.\n";
@files = (
keys(%{ $self->{manifest} }),
keys(%{ $self->{manifest_gen} })
Modified: branches/gsoc_threads/runtime/parrot/library/Archive/Tar.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/Archive/Tar.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/Archive/Tar.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -14,6 +14,7 @@
=cut
.include 'stat.pasm'
+.loadlib 'io_ops'
=head3 Class Archive;Tar;File
@@ -438,8 +439,11 @@
.sub '_error' :method
.param pmc args :slurpy
$S0 = join '', args
- printerr $S0
- printerr "\n"
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'($S0)
+ $P1.'print'("\n")
.end
=back
Modified: branches/gsoc_threads/runtime/parrot/library/Archive/Zip.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/Archive/Zip.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/Archive/Zip.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -13,6 +13,8 @@
=cut
+.loadlib 'sys_ops'
+.loadlib 'io_ops'
.include 'stat.pasm'
.include 'tm.pasm'
@@ -43,8 +45,11 @@
.sub '_printError'
.param pmc args :slurpy
$S0 = join '', args
- printerr $S0
- printerr "\n"
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'($S0)
+ $P1.'print'("\n")
.end
.sub '_ioError' :method
@@ -388,11 +393,11 @@
.sub '_refreshLocalFileHeader' :method
.param pmc fh
.local int here
- here = tell fh
+ here = fh.'tell'()
$P0 = getattribute self, 'writeLocalHeaderRelativeOffset'
$I0 = $P0
$I0 += SIGNATURE_LENGTH
- seek fh, $I0, 0
+ fh.'seek'($I0, 0)
.local string header, fileName, localExtraField
.const string VERSION = 20
header = self.'pack_v'(VERSION)
@@ -428,7 +433,7 @@
if $I0 goto L2
.tailcall self.'_ioError'('re-writing local header')
L2:
- seek fh, here, 0
+ fh.'seek'(here, 0)
.return (AZ_OK)
.end
@@ -597,7 +602,7 @@
.return ('', AZ_OK)
L1:
$P0 = self.'fh'()
- $S0 = read $P0, chunkSize
+ $S0 = $P0.'read'(chunkSize)
unless $S0 == '' goto L2
$I0 = self.'_ioError'("reading data")
.return ($S0, $I0)
@@ -647,7 +652,7 @@
.return ($I0)
L1:
$P0 = self.'fh'()
- seek $P0, 0, 0
+ $P0.'seek'(0, 0)
.return (AZ_OK)
.end
Modified: branches/gsoc_threads/runtime/parrot/library/CGI/QueryHash.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/CGI/QueryHash.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/CGI/QueryHash.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -69,9 +69,11 @@
.local int len
content_length = my_env['CONTENT_LENGTH']
len = content_length
- in = getstdin
- query = read in, len
- close in
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ in = $P0.'stdhandle'(.PIO_STDIN_FILENO)
+ query = in.'read'(len)
+ in.'close'()
#_dumper( query, 'queryPOST:' )
query_hash = parse( query )
Modified: branches/gsoc_threads/runtime/parrot/library/Config/JSON.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/Config/JSON.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/Config/JSON.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -25,7 +25,8 @@
.local string text
.local pmc fh
- fh = open filename, 'r'
+ fh = new ['FileHandle']
+ fh.'open'(filename, 'r')
if fh goto slurp_file
$P0 = new 'Exception'
$S0 = concat "Can't open file: ", filename
@@ -75,10 +76,11 @@
output = _json( config, expanded )
# write out the file..
- $P1 = open filename, 'w'
+ $P1 = new ['FileHandle']
+ $P1.'open'(filename, 'w')
print $P1, output
print $P1, "\n"
- close $P1
+ $P1.'close'()
.end
Modified: branches/gsoc_threads/runtime/parrot/library/Configure/genfile.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/Configure/genfile.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/Configure/genfile.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -38,6 +38,7 @@
=cut
+.loadlib 'sys_ops'
.include 'sysinfo.pasm'
.sub 'genfile'
@@ -356,13 +357,16 @@
.param string str
.param int pos
.param string msg
- printerr "in '"
- printerr str
- printerr "' at "
- printerr pos
- printerr " : "
- printerr msg
- printerr "\n"
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'("in '")
+ $P1.'print'(str)
+ $P1.'print'("' at ")
+ $P1.'print'(pos)
+ $P1.'print'(" : ")
+ $P1.'print'(msg)
+ $P1.'print'("\n")
.end
.sub 'interpolate_var'
@@ -401,9 +405,12 @@
$I1 = $I3
goto L8
L7:
- printerr "\tunknown config: "
- printerr $S1
- printerr "\n"
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'("\tunknown config: ")
+ $P1.'print'($S1)
+ $P1.'print'("\n")
L6:
$I0 = $I3 + 1
goto L3
Modified: branches/gsoc_threads/runtime/parrot/library/Crow.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/Crow.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/Crow.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -15,8 +15,8 @@
getopts = new ['Getopt';'Obj']
getopts.'notOptStop'(1)
- getopts = push 'help|h'
- getopts = push 'type|t=s'
+ push getopts, 'help|h'
+ push getopts, 'type|t=s'
.local pmc opts
opts = getopts.'get_options'(args)
@@ -65,7 +65,8 @@
.local pmc newsfile
.local string buf, news, start
- newsfile = open 'NEWS', 'r'
+ newsfile = new ['FileHandle']
+ newsfile.'open'('NEWS', 'r')
## find the start of the news item for this version
start = concat 'New in ', version
@@ -73,12 +74,12 @@
before:
$I0 = newsfile.'eof'()
if $I0 goto err_news
- buf = readline newsfile
+ buf = newsfile.'readline'()
$I0 = index buf, start
if $I0 != 0 goto before
blank:
- buf = readline newsfile
+ buf = newsfile.'readline'()
$I0 = index buf, "\n"
if $I0 == 0 goto blank
$I0 = index buf, "\r"
@@ -86,7 +87,7 @@
news .= buf
item:
- buf = readline newsfile
+ buf = newsfile.'readline'()
$I0 = index buf, "\n"
if $I0 == 0 goto done
$I0 = index buf, "\r"
Modified: branches/gsoc_threads/runtime/parrot/library/Digest/MD5.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/Digest/MD5.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/Digest/MD5.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -49,6 +49,8 @@
=cut
+.loadlib 'bit_ops'
+
###########################################################################
# Export function entries to globals
Modified: branches/gsoc_threads/runtime/parrot/library/HTTP/Message.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/HTTP/Message.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/HTTP/Message.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -20,6 +20,8 @@
.namespace ['HTTP';'Date']
+.loadlib 'io_ops' # XXX avoids segfaults for some reason (see TT #1663)
+.loadlib 'sys_ops'
.include 'tm.pasm'
.sub 'time2str'
@@ -171,10 +173,11 @@
.include 'cclass.pasm'
.sub '' :init :load :anon
- load_bytecode 'URI.pir'
+ load_bytecode 'URI.pbc'
$P0 = subclass ['HTTP';'Message'], ['HTTP';'Request']
$P0.'add_attribute'('method')
$P0.'add_attribute'('uri')
+ $P0.'add_attribute'('proxy')
.end
=item method
@@ -195,6 +198,17 @@
.return ($P0)
.end
+.sub 'proxy' :method
+ .param pmc val :optional
+ .param int has_val :opt_flag
+ unless has_val goto L1
+ setattribute self, 'proxy', val
+ .return ()
+ L1:
+ $P0 = getattribute self, 'proxy'
+ .return ($P0)
+.end
+
=item GET
=cut
@@ -467,7 +481,7 @@
L2:
$S0 = $P0
.local pmc encode
- encode = get_hll_global ['MIME';'Base64'], 'encode_base64'
+ encode = get_hll_global ['MIME';'Base64'], 'encode_base64'
$S0 = encode($S0)
$I1 = length $S0
$I0 = 0
Deleted: branches/gsoc_threads/runtime/parrot/library/LWP.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/LWP.pir Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,851 +0,0 @@
-# Copyright (C) 2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-LWP - The World-Wide Web library for Parrot
-
-=head2 DESCRIPTION
-
-Simplified port of LWP (version 5.834)
-see http://search.cpan.org/~gaas/libwww-perl/
-
-=head3 Class LWP;UserAgent
-
-=over 4
-
-=cut
-
-.namespace ['LWP';'UserAgent']
-
-.sub '' :init :load :anon
- load_bytecode 'HTTP/Message.pir'
- $P0 = newclass ['LWP';'UserAgent']
- $P0.'add_attribute'('def_headers')
- $P0.'add_attribute'('show_progress')
- $P0.'add_attribute'('progress_start')
- $P0.'add_attribute'('progress_lastp')
- $P0.'add_attribute'('progress_ani')
- $P0.'add_attribute'('max_redirect')
- .globalconst int RC_OK = 200
- .globalconst int RC_MOVED_PERMANENTLY = 301
- .globalconst int RC_FOUND = 302
- .globalconst int RC_SEE_OTHER = 303
- .globalconst int RC_TEMPORARY_REDIRECT = 307
- .globalconst int RC_BAD_REQUEST = 400
- .globalconst int RC_NOT_FOUND = 404
- .globalconst int RC_INTERNAL_SERVER_ERROR = 500
- .globalconst int RC_NOT_IMPLEMENTED = 501
-.end
-
-.sub 'init' :vtable :method
- $P0 = new ['HTTP';'Headers']
- $P0['User-Agent'] = 'libwww-parrot'
- setattribute self, 'def_headers', $P0
- $P0 = box 7
- setattribute self, 'max_redirect', $P0
-.end
-
-.sub 'send_request' :method
- .param pmc request
- .local string method
- method = request.'method'()
- .local pmc url
- url = request.'uri'()
- .local string scheme
- scheme = url.'scheme'()
- self.'progress'('begin', request)
- .local pmc protocol, response
- $P0 =get_hll_global ['LWP';'Protocol'], 'create'
- protocol = $P0(scheme, self)
- unless null protocol goto L1
- response = _new_response(request, RC_NOT_IMPLEMENTED, 'Not Implemented')
- goto L2
- L1:
- response = protocol.'request'(request)
- setattribute response, 'request', request
- $P0 = get_hll_global ['HTTP';'Date'], 'time2str'
- $I0 = time
- $S0 = $P0($I0)
- response.'push_header'('Client-Date', $S0)
- L2:
- self.'progress'('end', response)
- .return (response)
-.end
-
-.sub 'prepare_request' :method
- .param pmc request
- $P0 = request.'method'()
- unless null $P0 goto L1
- die "Method missing"
- L1:
- $P0 = request.'uri'()
- unless null $P0 goto L2
- die "URL missing"
- L2:
- $S0 = $P0.'scheme'()
- unless $S0 == '' goto L3
- die "URL must be absolute"
- L3:
- $P0 = getattribute self, 'def_headers'
- $P1 = iter $P0
- L4:
- unless $P1 goto L5
- $S0 = shift $P1
- $S1 = $P0[$S0]
- request.'push_header'($S0, $S1)
- goto L4
- L5:
-.end
-
-.sub 'simple_request' :method
- .param pmc request
- unless null request goto L1
- die "No request object passed in"
- L1:
- $I0 = isa request, ['HTTP';'Request']
- if $I0 goto L2
- die "You need a ['HTTP';'Request']"
- L2:
- self.'prepare_request'(request)
- .tailcall self.'send_request'(request)
-.end
-
-.sub 'request' :method
- .param pmc request
- .param pmc previous :optional
- .param int has_previous :opt_flag
-
- .local pmc response
- response = self.'simple_request'(request)
- unless has_previous goto L1
- response.'previous'(previous)
- L1:
-
- .local int redirect
- $P0 = response.'redirect'()
- redirect = elements $P0
- .local int max_redirect
- $P0 = getattribute self, 'max_redirect'
- max_redirect = $P0
- unless redirect >= max_redirect goto L2
- $S0 = 'Redirect loop detected (max_redirect = '
- $S1 = max_redirect
- $S0 .= $S1
- $S0 .= ')'
- response.'push_header'('Client-Warning', $S0)
- .return (response)
- L2:
-
- .local int code
- code = response.'code'()
-
- if code == RC_MOVED_PERMANENTLY goto L3
- if code == RC_FOUND goto L3
- if code == RC_SEE_OTHER goto L3
- if code == RC_TEMPORARY_REDIRECT goto L3
- goto L4
- L3:
- .local pmc referral
- referral = clone request
- # These headers should never be forwarded
- referral.'remove_header'('Host')
- referral.'remove_header'('Cookie')
-
- # work in progress
-
- .local string referral_uri
- referral_uri = response.'get_header'('Location')
- $P0 = get_hll_global ['URI'], 'new_from_string'
- $P1 = $P0(referral_uri)
- $S0 = $P1.'scheme'()
- unless $S0 == '' goto L5
- $P2 = new 'StringBuilder'
- $P3 = request.'uri'()
- $S0 = $P3.'scheme'()
- push $P2, $S0
- push $P2, '://'
- $S0 = request.'get_header'('Host')
- push $P2, $S0
- push $P2, referral_uri
- $P1 = $P0($P2)
- L5:
- setattribute referral, 'uri', $P1
-
- # work in progress
-
- $I0 = self.'redirect_ok'(referral, response)
- if $I0 goto L6
- .return (response)
- L6:
- .tailcall self.'request'(referral, response)
- L4:
-
- # work in progress
-
- .return (response)
-.end
-
-=item get
-
-=cut
-
-.sub 'get' :method
- .param pmc args :slurpy
- .param pmc kv :slurpy :named
- .local pmc request
- $P0 = get_hll_global ['HTTP';'Request'], 'GET'
- request = $P0(args :flat, kv :flat :named)
- .tailcall self.'request'(request)
-.end
-
-=item post
-
-=cut
-
-.sub 'post' :method
- .param pmc args :slurpy
- .param pmc kv :slurpy :named
- .local pmc request
- $P0 = get_hll_global ['HTTP';'Request'], 'POST'
- request = $P0(args :flat, kv :flat :named)
- .tailcall self.'request'(request)
-.end
-
-=item put
-
-=cut
-
-.sub 'put' :method
- .param pmc args :slurpy
- .param pmc kv :slurpy :named
- .local pmc request
- $P0 = get_hll_global ['HTTP';'Request'], 'PUT'
- request = $P0(args :flat, kv :flat :named)
- .tailcall self.'request'(request)
-.end
-
-=item delete
-
-=cut
-
-.sub 'delete' :method
- .param pmc args :slurpy
- .param pmc kv :slurpy :named
- .local pmc request
- $P0 = get_hll_global ['HTTP';'Request'], 'DELETE'
- request = $P0(args :flat, kv :flat :named)
- .tailcall self.'request'(request)
-.end
-
-.sub 'progress' :method
- .param string status
- .param pmc msg
- $P0 = getattribute self, 'show_progress'
- if null $P0 goto L1
- unless $P0 goto L1
- unless status == 'begin' goto L2
- printerr "** "
- $P0 = getattribute msg, 'method'
- printerr $P0
- printerr " "
- $P0 = getattribute msg, 'uri'
- printerr $P0
- printerr " ==> "
- $N1 = time
- $P0 = box $N1
- setattribute self, 'progress_start', $P0
- $P0 = box ''
- setattribute self, 'progress_lastp', $P0
- $P0 = box 0
- setattribute self, 'progress_ani', $P0
- goto L1
- L2:
- unless status == 'end' goto L3
- $P0 = getattribute self, 'progress_start'
- $N1 = $P0
- $N2 = time
- null $P0
- setattribute self, 'progress_start', $P0
- setattribute self, 'progress_lastp', $P0
- setattribute self, 'progress_ani', $P0
- $S0 = msg.'status_line'()
- printerr $S0
- $N0 =$N2 - $N1
- $I0 = $N0
- unless $I0 goto L4
- printerr " ("
- printerr $I0
- printerr "s)"
- L4:
- printerr "\n"
- goto L1
- L3:
- unless status == 'tick' goto L5
- $P0 = getattribute self, 'progress_ani'
- inc $P0
- $P0 %= 4
- $P1 = split '', '-\|/'
- $S0 = $P1[$P0]
- printerr $S0
- printerr "\b"
- goto L1
- L5:
- $N0 = status
- $N0 *= 100
- $P0 = new 'FixedFloatArray'
- set $P0, 1
- $P0[0] = $N0
- $S1 = sprintf '%3.0f%%', $P0
- $P0 = getattribute self, 'progress_lastp'
- $S0 = $P0
- if $S0 == $S1 goto L1
- set $P0, $S1
- printerr $S1
- printerr "\b\b\b\b"
- L1:
-.end
-
-.sub 'redirect_ok' :method
- .param pmc new_request
- .param pmc response
- $P0 = response.'request'()
- $S0 = $P0.'method'()
- if $S0 == 'GET' goto L1
- if $S0 == 'HEAD' goto L1
- .return (0)
- L1:
- # work in progress
- .return (1)
-.end
-
-=item max_redirect
-
-=cut
-
-.sub 'max_redirect' :method
- .param pmc val
- setattribute self, 'max_redirect', val
-.end
-
-=item show_progress
-
-=cut
-
-.sub 'show_progress' :method
- .param pmc val
- setattribute self, 'show_progress', val
-.end
-
-=item agent
-
-=cut
-
-.sub 'agent' :method
- .param string val
- $P0 = getattribute self, 'def_headers'
- $P0['User-Agent'] = val
-.end
-
-=item env_provy
-
-=cut
-
-.sub 'env_proxy' :method
- $P0 = new 'Env'
- $P1 = iter $P0
- L1:
- unless $P1 goto L2
- $S0 = shift $P1
- $S1 = downcase $S0
-
- # work in progress
-
- goto L1
- L2:
-.end
-
-.sub '_new_response'
- .param pmc request
- .param pmc code
- .param pmc message
- .local pmc response
- response = new ['HTTP';'Response']
- setattribute response, 'code', code
- setattribute response, 'message', message
- setattribute response, 'request', request
- $P0 = get_hll_global ['HTTP';'Date'], 'time2str'
- $I0 = time
- $S0 = $P0($I0)
- response.'push_header'('Client-Date', $S0)
- response.'push_header'('Client-Warning', "Internal response")
- response.'push_header'('Content-Type', 'text/plain')
- $S0 = code
- $S0 .= ' '
- $S1 = message
- $S0 .= $S1
- $S0 .= "\n"
- $P0 = box $S0
- setattribute response, 'content', $P0
- .return (response)
-.end
-
-=back
-
-=head3 Class LWP;Protocol
-
-=over 4
-
-=cut
-
-.namespace ['LWP';'Protocol']
-
-.sub '' :init :load :anon
- $P0 = newclass ['LWP';'Protocol']
- $P0.'add_attribute'('scheme')
- $P0.'add_attribute'('ua')
-.end
-
-=item create
-
-=cut
-
-.sub 'create'
- .param string scheme
- .param pmc ua
- $P1 = new 'Key'
- set $P1, 'LWP'
- $P2 = new 'Key'
- set $P2, 'Protocol'
- push $P1, $P2
- $P3 = new 'Key'
- set $P3, scheme
- push $P1, $P3
- $P0 = get_class $P1
- unless null $P0 goto L1
- .return ($P0)
- L1:
- .local pmc protocol
- protocol = new $P0
- $P0 = box scheme
- setattribute protocol, 'scheme', $P0
- setattribute protocol, 'ua', ua
- .return (protocol)
-.end
-
-=item scheme
-
-=cut
-
-.sub 'scheme' :method
- $P0 = getattribute self, 'scheme'
- .return ($P0)
-.end
-
-=item ua
-
-=cut
-
-.sub 'ua' :method
- $P0 = getattribute self, 'ua'
- .return ($P0)
-.end
-
-.sub 'request' :method
- .param pmc args :slurpy
- die 'LWP::Protocol::request() needs to be overridden in subclasses'
-.end
-
-=back
-
-=head3 Class LWP;Protocol;file
-
-=cut
-
-.namespace ['LWP';'Protocol';'file']
-
-.include 'stat.pasm'
-
-.sub '' :init :load :anon
- $P0 = subclass ['LWP';'Protocol'], ['LWP';'Protocol';'file']
-.end
-
-.sub 'request' :method
- .param pmc request
- load_bytecode 'osutils.pbc'
- .local string method
- method = request.'method'()
- $P0 = get_hll_global ['LWP';'Protocol';'file'], method
- unless null $P0 goto L1
- $P0 = new ['HTTP';'Response']
- $P1 = box RC_BAD_REQUEST
- setattribute $P0, 'code', $P1
- $S0 = "Library does not allow method " . method
- $S0 .= " for 'file:' URLs"
- $P1 = box $S0
- setattribute $P0, 'message', $P1
- .return ($P0)
- L1:
- .local pmc url
- url = request.'uri'()
- .local string scheme
- scheme = url.'scheme'()
- if scheme == 'file' goto L2
- $P0 = new ['HTTP';'Response']
- $P1 = box RC_INTERNAL_SERVER_ERROR
- setattribute $P0, 'code', $P1
- $S0 = "LWP::Protocol::file::request called for '" . scheme
- $S0 .= "'"
- $P1 = box $S0
- setattribute $P0, 'message', $P1
- .return ($P0)
- L2:
- .tailcall $P0(self, request)
-.end
-
-.sub 'HEAD' :method :nsentry
- .param pmc request
- .tailcall self.'GET'(request)
-.end
-
-.sub 'GET' :method :nsentry
- .param pmc request
- .local pmc response
- response = new ['HTTP';'Response']
- .local string method
- method = request.'method'()
- .local pmc url
- url = request.'uri'()
- .local string path
- path = url.'path'()
-
- $I0 = stat path, .STAT_EXISTS
- if $I0 goto L1
- $P0 = box RC_NOT_FOUND
- setattribute response, 'code', $P0
- $S0 = "File `" . path
- $S0 .= "' does not exist"
- $P0 = box $S0
- setattribute response, 'message', $P0
- .return (response)
- L1:
-
- .local int mtime
- mtime = stat path, .STAT_MODIFYTIME
- $P0 = get_hll_global ['HTTP';'Date'], 'time2str'
- $S0 = $P0(mtime)
- response.'push_header'('Last-Modified', $S0)
- .local int filesize
- filesize = stat path, .STAT_FILESIZE
- response.'push_header'('Content-Length', filesize)
-
- if method == 'HEAD' goto L2
- push_eh _handler
- $S0 = slurp(path)
- pop_eh
- $P0 = box $S0
- setattribute response, 'content', $P0
- L2:
- $P0 = box RC_OK
- setattribute response, 'code', $P0
- .return (response)
-
- _handler:
- .local pmc ex
- .get_results (ex)
- $P0 = box RC_INTERNAL_SERVER_ERROR
- setattribute response, 'code', $P0
- $S0 = ex
- $P0 = box $S0
- setattribute response, 'message', $P0
- .return (response)
-.end
-
-.sub 'PUT' :method :nsentry
- .param pmc request
- .local pmc response
- response = new ['HTTP';'Response']
- .local pmc url
- url = request.'uri'()
- .local string path
- path = url.'path'()
- .local string content
- content = request.'content'()
-
- push_eh _handler
- $S0 = spew(path, content)
- pop_eh
-
- $P0 = box RC_OK
- setattribute response, 'code', $P0
- .return (response)
-
- _handler:
- .local pmc ex
- .get_results (ex)
- $P0 = box RC_INTERNAL_SERVER_ERROR
- setattribute response, 'code', $P0
- $S0 = ex
- $P0 = box $S0
- setattribute response, 'message', $P0
- .return (response)
-.end
-
-.sub 'DELETE' :method :nsentry
- .param pmc request
- .local pmc response
- response = new ['HTTP';'Response']
- .local pmc url
- url = request.'uri'()
- .local string path
- path = url.'path'()
-
- $I0 = stat path, .STAT_EXISTS
- if $I0 goto L1
- $P0 = box RC_NOT_FOUND
- setattribute response, 'code', $P0
- $S0 = "File `" . path
- $S0 .= "' does not exist"
- $P0 = box $S0
- setattribute response, 'message', $P0
- .return (response)
- L1:
-
- push_eh _handler
- $S0 = unlink(path)
- pop_eh
-
- $P0 = box RC_OK
- setattribute response, 'code', $P0
- .return (response)
-
- _handler:
- .local pmc ex
- .get_results (ex)
- $P0 = box RC_INTERNAL_SERVER_ERROR
- setattribute response, 'code', $P0
- $S0 = ex
- $P0 = box $S0
- setattribute response, 'message', $P0
- .return (response)
-.end
-
-=head3 Class LWP;Protocol;http
-
-=cut
-
-.namespace ['LWP';'Protocol';'http']
-
-.include 'socket.pasm'
-
-.sub '' :init :load :anon
- $P0 = subclass ['LWP';'Protocol'], ['LWP';'Protocol';'http']
-.end
-
-.sub '_new_socket' :method
- .param string host
- .param int port
- .local pmc sock, addr
- sock = new 'Socket'
- sock.'socket'(.PIO_PF_INET, .PIO_SOCK_STREAM, .PIO_PROTO_TCP)
- addr = sock.'sockaddr'(host, port)
- sock.'connect'(addr)
- .return (sock)
-.end
-
-.sub '_fixup_header' :method
- .param pmc headers
- .param pmc url
- .local string host
- host = url.'authority'()
- headers['Host'] = host
-.end
-
-.sub '_format_request'
- .param string method
- .param string uri
- .param pmc headers
- .const string CRLF = "\r\n"
- $P0 = new 'StringBuilder'
- push $P0, method
- push $P0, ' '
- push $P0, uri
- push $P0, ' HTTP/1.1'
- push $P0, CRLF
- $P1 = iter headers
- L1:
- unless $P1 goto L2
- $S0 = shift $P1
- $S1 = headers[$S0]
- push $P0, $S0
- push $P0, ': '
- push $P0, $S1
- push $P0, CRLF
- goto L1
- L2:
- push $P0, CRLF
- .return ($P0)
-.end
-
-.sub '_parse_response_headers' :method
- .param pmc response
- .param string str
- .local string sep
- sep = "\r\n"
- $I0 = index str, "\r"
- unless $I0 < 0 goto L0
- sep = "\n"
- L0:
- $S0 = sep . sep
- $I0 = index str, $S0
- if $I0 < 0 goto L1
- str = substr str, 0, $I0
- L1:
-
- $P0 = split sep, str
- .local string status_line
- status_line = shift $P0
- $I0 = index status_line, " "
- if $I0 < 0 goto L2
- $S0 = substr status_line, 0, $I0
- $P1 = box $S0
- setattribute response, 'protocol', $P1
- $I1 = $I0 + 1
- $I0 = index status_line, " ", $I1
- if $I0 < 0 goto L2
- $I2 = $I0 - $I1
- $S0 = substr status_line, $I1, $I2
- $P1 = box $S0
- setattribute response, 'code', $P1
- inc $I0
- $S0 = substr status_line, $I0
- $P1 = box $S0
- setattribute response, 'message', $P1
-
- $P3 = new ['HTTP';'Headers']
- L3:
- unless $P0 goto L4
- $S0 = shift $P0
- $I0 = index $S0, ": "
- if $I0 < 0 goto L3
- $S1 = substr $S0, 0, $I0
- $I0 += 2
- $S2 = substr $S0, $I0
- $P3[$S1] = $S2
- goto L3
- L4:
- setattribute response, 'headers', $P3
-
- $I0 = length str
- .return ($I0)
- L2:
- .return (0)
-.end
-
-.sub '_parse_response_content' :method
- .param pmc response
- .param string str
- $I0 = index str, "\r\n\r\n"
- if $I0 < 0 goto L1
- $I0 += 4
- $S0 = substr str, $I0
- $P0 = box $S0
- setattribute response, 'content', $P0
- goto L2
- L1:
- $I0 = index str, "\n\n"
- if $I0 < 0 goto L1
- $I0 += 2
- $S0 = substr str, $I0
- $P0 = box $S0
- setattribute response, 'content', $P0
- L2:
-.end
-
-.sub 'request' :method
- .param pmc request
-
- .local string method
- method = request.'method'()
- .local pmc url
- url = request.'uri'()
- .local string host, port, fullpath
- host = url.'host'()
- port = url.'port'()
- fullpath = url.'path_query'()
- $I0 = index fullpath, '/'
- if $I0 == 0 goto L1
- fullpath = '/' . fullpath
- L1:
-
- # connect to remote site
- .local pmc sock
- sock = self.'_new_socket'(host, port)
-
- .local pmc request_headers
- request_headers = request.'headers'()
- self.'_fixup_header'(request_headers, url)
-
- .local pmc ua
- ua = self.'ua'()
- $S0 = _format_request(method, fullpath, request_headers)
- sock.'send'($S0)
-
- .local string content
- content = request.'content'()
- unless content goto L11
- .local int content_length
- content_length = length content
- $I0 = 0
- L12:
- unless $I0 < content_length goto L11
- $S0 = substr content, $I0, 8192
- $I1 = sock.'send'($S0)
- $I0 += $I1
- $N0 = $I0 / content_length
- goto L12
- L11:
-
- .local pmc response
- response = new ['HTTP';'Response']
- .local pmc buf
- buf = new 'StringBuilder'
- .local int header_length
- content_length = 0
- L21:
- ua.'progress'('tick', request)
- $S0 = sock.'recv'()
- if $S0 == '' goto L22
- push buf, $S0
- header_length = self.'_parse_response_headers'(response, buf)
- $I0 = response.'is_success'()
- unless $I0 goto L22
- $S0 = response.'get_header'('Content-Length')
- if $S0 == '' goto L21
- content_length = $S0
- L23:
- $I0 = buf.'get_string_length'()
- $I0 -= header_length
- $N0 = $I0 / content_length
- ua.'progress'($N0, request)
- $S0 = sock.'recv'()
- if $S0 == '' goto L22
- push buf, $S0
- goto L23
- L22:
- sock.'close'()
- self.'_parse_response_content'(response, buf)
- .return (response)
-.end
-
-=head1 AUTHOR
-
-Francois Perrad
-
-=cut
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/gsoc_threads/runtime/parrot/library/LWP/Protocol.pir (from r47544, trunk/runtime/parrot/library/LWP/Protocol.pir)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/runtime/parrot/library/LWP/Protocol.pir Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/runtime/parrot/library/LWP/Protocol.pir)
@@ -0,0 +1,538 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+LWP - The World-Wide Web library for Parrot
+
+=head2 DESCRIPTION
+
+Simplified port of LWP (version 5.834)
+see http://search.cpan.org/~gaas/libwww-perl/
+
+=head3 Class LWP;Protocol
+
+=over 4
+
+=cut
+
+.namespace ['LWP';'Protocol']
+
+.sub '' :init :load :anon
+ load_bytecode 'HTTP/Message.pbc'
+ $P0 = newclass ['LWP';'Protocol']
+ $P0.'add_attribute'('scheme')
+ $P0.'add_attribute'('ua')
+.end
+
+=item create
+
+=cut
+
+.sub 'create'
+ .param string scheme
+ .param pmc ua
+ $P1 = new 'Key'
+ set $P1, 'LWP'
+ $P2 = new 'Key'
+ set $P2, 'Protocol'
+ push $P1, $P2
+ $P3 = new 'Key'
+ set $P3, scheme
+ push $P1, $P3
+ $P0 = get_class $P1
+ unless null $P0 goto L1
+ .return ($P0)
+ L1:
+ .local pmc protocol
+ protocol = new $P0
+ $P0 = box scheme
+ setattribute protocol, 'scheme', $P0
+ setattribute protocol, 'ua', ua
+ .return (protocol)
+.end
+
+=item scheme
+
+=cut
+
+.sub 'scheme' :method
+ $P0 = getattribute self, 'scheme'
+ .return ($P0)
+.end
+
+=item ua
+
+=cut
+
+.sub 'ua' :method
+ $P0 = getattribute self, 'ua'
+ .return ($P0)
+.end
+
+.sub 'request' :method
+ .param pmc args :slurpy
+ die 'LWP::Protocol::request() needs to be overridden in subclasses'
+.end
+
+=back
+
+=head3 Class LWP;Protocol;file
+
+=over 4
+
+=cut
+
+.namespace ['LWP';'Protocol';'file']
+
+.loadlib 'io_ops'
+.include 'stat.pasm'
+
+.sub '' :init :load :anon
+ $P0 = subclass ['LWP';'Protocol'], ['LWP';'Protocol';'file']
+ .globalconst int RC_OK = 200
+ .globalconst int RC_BAD_REQUEST = 400
+ .globalconst int RC_NOT_FOUND = 404
+ .globalconst int RC_INTERNAL_SERVER_ERROR = 500
+.end
+
+=item request
+
+=cut
+
+.sub 'request' :method
+ .param pmc request
+ .param pmc proxy
+ if null proxy goto L1
+ $P0 = new ['HTTP';'Response']
+ $P1 = box RC_BAD_REQUEST
+ setattribute $P0, 'code', $P1
+ $P1 = box 'You can not proxy through the filesystem'
+ setattribute $P0, 'message', $P1
+ .return ($P0)
+ L1:
+ load_bytecode 'osutils.pbc'
+ .local string method
+ method = request.'method'()
+ $P0 = get_hll_global ['LWP';'Protocol';'file'], method
+ unless null $P0 goto L2
+ $P0 = new ['HTTP';'Response']
+ $P1 = box RC_BAD_REQUEST
+ setattribute $P0, 'code', $P1
+ $S0 = "Library does not allow method " . method
+ $S0 .= " for 'file:' URLs"
+ $P1 = box $S0
+ setattribute $P0, 'message', $P1
+ .return ($P0)
+ L2:
+ .local pmc url
+ url = request.'uri'()
+ .local string scheme
+ scheme = url.'scheme'()
+ if scheme == 'file' goto L3
+ $P0 = new ['HTTP';'Response']
+ $P1 = box RC_INTERNAL_SERVER_ERROR
+ setattribute $P0, 'code', $P1
+ $S0 = "LWP::Protocol::file::request called for '" . scheme
+ $S0 .= "'"
+ $P1 = box $S0
+ setattribute $P0, 'message', $P1
+ .return ($P0)
+ L3:
+ .tailcall $P0(self, request)
+.end
+
+.sub 'HEAD' :method :nsentry
+ .param pmc request
+ .tailcall self.'GET'(request)
+.end
+
+.sub 'GET' :method :nsentry
+ .param pmc request
+ .local pmc response
+ response = new ['HTTP';'Response']
+ .local string method
+ method = request.'method'()
+ .local pmc url
+ url = request.'uri'()
+ .local string path
+ path = url.'path'()
+
+ $I0 = stat path, .STAT_EXISTS
+ if $I0 goto L1
+ $P0 = box RC_NOT_FOUND
+ setattribute response, 'code', $P0
+ $S0 = "File `" . path
+ $S0 .= "' does not exist"
+ $P0 = box $S0
+ setattribute response, 'message', $P0
+ .return (response)
+ L1:
+
+ .local int mtime
+ mtime = stat path, .STAT_MODIFYTIME
+ $P0 = get_hll_global ['HTTP';'Date'], 'time2str'
+ $S0 = $P0(mtime)
+ response.'push_header'('Last-Modified', $S0)
+ .local int filesize
+ filesize = stat path, .STAT_FILESIZE
+ response.'push_header'('Content-Length', filesize)
+
+ if method == 'HEAD' goto L2
+ push_eh _handler
+ $S0 = slurp(path)
+ pop_eh
+ $P0 = box $S0
+ setattribute response, 'content', $P0
+ L2:
+ $P0 = box RC_OK
+ setattribute response, 'code', $P0
+ .return (response)
+
+ _handler:
+ .local pmc ex
+ .get_results (ex)
+ $P0 = box RC_INTERNAL_SERVER_ERROR
+ setattribute response, 'code', $P0
+ $S0 = ex
+ $P0 = box $S0
+ setattribute response, 'message', $P0
+ .return (response)
+.end
+
+.sub 'PUT' :method :nsentry
+ .param pmc request
+ .local pmc response
+ response = new ['HTTP';'Response']
+ .local pmc url
+ url = request.'uri'()
+ .local string path
+ path = url.'path'()
+ .local string content
+ content = request.'content'()
+
+ push_eh _handler
+ $S0 = spew(path, content)
+ pop_eh
+
+ $P0 = box RC_OK
+ setattribute response, 'code', $P0
+ .return (response)
+
+ _handler:
+ .local pmc ex
+ .get_results (ex)
+ $P0 = box RC_INTERNAL_SERVER_ERROR
+ setattribute response, 'code', $P0
+ $S0 = ex
+ $P0 = box $S0
+ setattribute response, 'message', $P0
+ .return (response)
+.end
+
+.sub 'DELETE' :method :nsentry
+ .param pmc request
+ .local pmc response
+ response = new ['HTTP';'Response']
+ .local pmc url
+ url = request.'uri'()
+ .local string path
+ path = url.'path'()
+
+ $I0 = stat path, .STAT_EXISTS
+ if $I0 goto L1
+ $P0 = box RC_NOT_FOUND
+ setattribute response, 'code', $P0
+ $S0 = "File `" . path
+ $S0 .= "' does not exist"
+ $P0 = box $S0
+ setattribute response, 'message', $P0
+ .return (response)
+ L1:
+
+ push_eh _handler
+ $S0 = unlink(path)
+ pop_eh
+
+ $P0 = box RC_OK
+ setattribute response, 'code', $P0
+ .return (response)
+
+ _handler:
+ .local pmc ex
+ .get_results (ex)
+ $P0 = box RC_INTERNAL_SERVER_ERROR
+ setattribute response, 'code', $P0
+ $S0 = ex
+ $P0 = box $S0
+ setattribute response, 'message', $P0
+ .return (response)
+.end
+
+=back
+
+=head3 Class LWP;Protocol;http
+
+=over 4
+
+=cut
+
+.namespace ['LWP';'Protocol';'http']
+
+.include 'socket.pasm'
+
+.sub '' :init :load :anon
+ $P0 = subclass ['LWP';'Protocol'], ['LWP';'Protocol';'http']
+.end
+
+.sub '_new_socket' :method
+ .param string host
+ .param int port
+ .local pmc sock, addr
+ sock = new 'Socket'
+ sock.'socket'(.PIO_PF_INET, .PIO_SOCK_STREAM, .PIO_PROTO_TCP)
+ addr = sock.'sockaddr'(host, port)
+ sock.'connect'(addr)
+ .return (sock)
+.end
+
+.sub '_fixup_header' :method
+ .param pmc headers
+ .param pmc url
+ .param pmc proxy
+ # Extract 'Host' header
+ .local string host
+ host = url.'authority'()
+ $I0 = index host, '@'
+ if $I0 < 0 goto L1
+ .local string userinfo
+ userinfo = substr host, 0, $I0
+ inc $I0
+ host = substr host, $I1
+ $S0 = headers['Authorization']
+ unless $S0 == '' goto L1
+ load_bytecode 'MIME/Base64.pbc'
+ $P0 = get_hll_global ['MIME';'Base64'], 'encode_base64'
+ $S0 = $P0(userinfo)
+ $S0 = 'Basic ' . $S0
+ headers['Authorization'] = $S0
+ L1:
+ headers['Host'] = host
+ if null proxy goto L2
+ userinfo = proxy.'userinfo'()
+ if userinfo == '' goto L2
+ load_bytecode 'MIME/Base64.pbc'
+ $P0 = get_hll_global ['MIME';'Base64'], 'encode_base64'
+ $S0 = $P0(userinfo)
+ $S0 = 'Basic ' . $S0
+ headers['Proxy-Authorization'] = $S0
+ L2:
+.end
+
+.sub '_format_request'
+ .param string method
+ .param string uri
+ .param pmc headers
+ .const string CRLF = "\r\n"
+ $P0 = new 'StringBuilder'
+ push $P0, method
+ push $P0, ' '
+ push $P0, uri
+ push $P0, ' HTTP/1.1'
+ push $P0, CRLF
+ $P1 = iter headers
+ L1:
+ unless $P1 goto L2
+ $S0 = shift $P1
+ $S1 = headers[$S0]
+ push $P0, $S0
+ push $P0, ': '
+ push $P0, $S1
+ push $P0, CRLF
+ goto L1
+ L2:
+ push $P0, CRLF
+ .return ($P0)
+.end
+
+.sub '_parse_response_headers' :method
+ .param pmc response
+ .param string str
+ .local string sep
+ sep = "\r\n"
+ $I0 = index str, "\r"
+ unless $I0 < 0 goto L0
+ sep = "\n"
+ L0:
+ $S0 = sep . sep
+ $I0 = index str, $S0
+ if $I0 < 0 goto L1
+ str = substr str, 0, $I0
+ L1:
+
+ $P0 = split sep, str
+ .local string status_line
+ status_line = shift $P0
+ $I0 = index status_line, " "
+ if $I0 < 0 goto L2
+ $S0 = substr status_line, 0, $I0
+ $P1 = box $S0
+ setattribute response, 'protocol', $P1
+ $I1 = $I0 + 1
+ $I0 = index status_line, " ", $I1
+ if $I0 < 0 goto L2
+ $I2 = $I0 - $I1
+ $S0 = substr status_line, $I1, $I2
+ $P1 = box $S0
+ setattribute response, 'code', $P1
+ inc $I0
+ $S0 = substr status_line, $I0
+ $P1 = box $S0
+ setattribute response, 'message', $P1
+
+ $P3 = new ['HTTP';'Headers']
+ L3:
+ unless $P0 goto L4
+ $S0 = shift $P0
+ $I0 = index $S0, ": "
+ if $I0 < 0 goto L3
+ $S1 = substr $S0, 0, $I0
+ $I0 += 2
+ $S2 = substr $S0, $I0
+ $P3[$S1] = $S2
+ goto L3
+ L4:
+ setattribute response, 'headers', $P3
+
+ $I0 = length str
+ .return ($I0)
+ L2:
+ .return (0)
+.end
+
+.sub '_parse_response_content' :method
+ .param pmc response
+ .param string str
+ $I0 = index str, "\r\n\r\n"
+ if $I0 < 0 goto L1
+ $I0 += 4
+ goto L2
+ L1:
+ $I0 = index str, "\n\n"
+ if $I0 < 0 goto L3
+ $I0 += 2
+ L2:
+ $S0 = substr str, $I0
+ $P0 = box $S0
+ setattribute response, 'content', $P0
+ L3:
+.end
+
+=item request
+
+=cut
+
+.sub 'request' :method
+ .param pmc request
+ .param pmc proxy
+
+ .local string method
+ method = request.'method'()
+ .local pmc url
+ url = request.'uri'()
+ .local string host, port, fullpath
+ if null proxy goto L1
+ # proxy is an URL to an HTTP server which will proxy this request
+ host = proxy.'host'()
+ port = proxy.'port'()
+ unless method == 'CONNECT' goto L3
+ fullpath = url.'host'()
+ fullpath .= ':'
+ $S0 = url.'port'()
+ fullpath .= $S0
+ goto L2
+ L3:
+ fullpath = url
+ goto L2
+ L1:
+ host = url.'host'()
+ port = url.'port'()
+ fullpath = url.'path_query'()
+ $I0 = index fullpath, '/'
+ if $I0 == 0 goto L2
+ fullpath = '/' . fullpath
+ L2:
+
+ # connect to remote site
+ .local pmc sock
+ sock = self.'_new_socket'(host, port)
+
+ .local pmc request_headers
+ request_headers = request.'headers'()
+ self.'_fixup_header'(request_headers, url, proxy)
+
+ .local pmc ua
+ ua = self.'ua'()
+ $S0 = _format_request(method, fullpath, request_headers)
+ sock.'send'($S0)
+
+ .local string content
+ content = request.'content'()
+ unless content goto L11
+ .local int content_length
+ content_length = length content
+ $I0 = 0
+ L12:
+ unless $I0 < content_length goto L11
+ $S0 = substr content, $I0, 8192
+ $I1 = sock.'send'($S0)
+ $I0 += $I1
+ $N0 = $I0 / content_length
+ goto L12
+ L11:
+
+ .local pmc response
+ response = new ['HTTP';'Response']
+ .local pmc buf
+ buf = new 'StringBuilder'
+ .local int header_length
+ content_length = 0
+ L21:
+ ua.'progress'('tick', request)
+ $S0 = sock.'recv'()
+ if $S0 == '' goto L22
+ push buf, $S0
+ header_length = self.'_parse_response_headers'(response, buf)
+ $I0 = response.'is_success'()
+ unless $I0 goto L22
+ $S0 = response.'get_header'('Content-Length')
+ if $S0 == '' goto L21
+ content_length = $S0
+ L23:
+ $I0 = buf.'get_string_length'()
+ $I0 -= header_length
+ $N0 = $I0 / content_length
+ ua.'progress'($N0, request)
+ $S0 = sock.'recv'()
+ if $S0 == '' goto L22
+ push buf, $S0
+ goto L23
+ L22:
+ sock.'close'()
+ self.'_parse_response_content'(response, buf)
+ .return (response)
+.end
+
+=back
+
+=head1 AUTHOR
+
+Francois Perrad
+
+=cut
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/gsoc_threads/runtime/parrot/library/LWP/UserAgent.pir (from r47544, trunk/runtime/parrot/library/LWP/UserAgent.pir)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/runtime/parrot/library/LWP/UserAgent.pir Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/runtime/parrot/library/LWP/UserAgent.pir)
@@ -0,0 +1,554 @@
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+LWP - The World-Wide Web library for Parrot
+
+=head2 DESCRIPTION
+
+Simplified port of LWP (version 5.834)
+see http://search.cpan.org/~gaas/libwww-perl/
+
+=head3 Class LWP;UserAgent
+
+=over 4
+
+=cut
+
+.namespace ['LWP';'UserAgent']
+.loadlib 'io_ops'
+
+.sub '' :init :load :anon
+ load_bytecode 'URI.pbc'
+ load_bytecode 'HTTP/Message.pbc'
+ load_bytecode 'LWP/Protocol.pbc'
+ $P0 = newclass ['LWP';'UserAgent']
+ $P0.'add_attribute'('def_headers')
+ $P0.'add_attribute'('show_progress')
+ $P0.'add_attribute'('progress_start')
+ $P0.'add_attribute'('progress_lastp')
+ $P0.'add_attribute'('progress_ani')
+ $P0.'add_attribute'('max_redirect')
+ $P0.'add_attribute'('proxy')
+ $P0.'add_attribute'('no_proxy')
+ .globalconst int RC_MOVED_PERMANENTLY = 301
+ .globalconst int RC_FOUND = 302
+ .globalconst int RC_SEE_OTHER = 303
+ .globalconst int RC_TEMPORARY_REDIRECT = 307
+ .globalconst int RC_UNAUTHORIZED = 401
+ .globalconst int RC_PROXY_AUTHENTICATION_REQUIRED = 407
+ .globalconst int RC_NOT_IMPLEMENTED = 501
+.end
+
+.sub 'init' :vtable :method
+ $P0 = new ['HTTP';'Headers']
+ $P0['User-Agent'] = 'libwww-parrot'
+ setattribute self, 'def_headers', $P0
+ $P0 = box 7
+ setattribute self, 'max_redirect', $P0
+ $P0 = new 'Hash'
+ setattribute self, 'proxy', $P0
+ $P0 = new 'ResizableStringArray'
+ setattribute self, 'no_proxy', $P0
+.end
+
+.sub 'send_request' :method
+ .param pmc request
+ .local string method
+ method = request.'method'()
+ .local pmc url
+ url = request.'uri'()
+ .local string scheme
+ scheme = url.'scheme'()
+ self.'progress'('begin', request)
+ .local pmc proxy
+ proxy = request.'proxy'()
+ if null proxy goto L1
+ scheme = proxy.'scheme'()
+ L1:
+ .local pmc protocol, response
+ $P0 =get_hll_global ['LWP';'Protocol'], 'create'
+ protocol = $P0(scheme, self)
+ unless null protocol goto L2
+ response = _new_response(request, RC_NOT_IMPLEMENTED, 'Not Implemented')
+ goto L3
+ L2:
+ response = protocol.'request'(request, proxy)
+ setattribute response, 'request', request
+ $P0 = get_hll_global ['HTTP';'Date'], 'time2str'
+ $I0 = time
+ $S0 = $P0($I0)
+ response.'push_header'('Client-Date', $S0)
+ L3:
+ self.'progress'('end', response)
+ .return (response)
+.end
+
+.sub 'prepare_request' :method
+ .param pmc request
+ $P0 = request.'method'()
+ unless null $P0 goto L1
+ die "Method missing"
+ L1:
+ $P0 = request.'uri'()
+ unless null $P0 goto L2
+ die "URL missing"
+ L2:
+ $S0 = $P0.'scheme'()
+ unless $S0 == '' goto L3
+ die "URL must be absolute"
+ L3:
+ self.'_need_proxy'(request)
+ $P0 = getattribute self, 'def_headers'
+ $P1 = iter $P0
+ L4:
+ unless $P1 goto L5
+ $S0 = shift $P1
+ $S1 = $P0[$S0]
+ request.'push_header'($S0, $S1)
+ goto L4
+ L5:
+.end
+
+.sub 'simple_request' :method
+ .param pmc request
+ unless null request goto L1
+ die "No request object passed in"
+ L1:
+ $I0 = isa request, ['HTTP';'Request']
+ if $I0 goto L2
+ die "You need a ['HTTP';'Request']"
+ L2:
+ self.'prepare_request'(request)
+ .tailcall self.'send_request'(request)
+.end
+
+.sub 'request' :method
+ .param pmc request
+ .param pmc previous :optional
+ .param int has_previous :opt_flag
+
+ .local pmc response
+ response = self.'simple_request'(request)
+ unless has_previous goto L1
+ response.'previous'(previous)
+ L1:
+
+ .local int redirect
+ $P0 = response.'redirect'()
+ redirect = elements $P0
+ .local int max_redirect
+ $P0 = getattribute self, 'max_redirect'
+ max_redirect = $P0
+ unless redirect >= max_redirect goto L2
+ $S0 = 'Redirect loop detected (max_redirect = '
+ $S1 = max_redirect
+ $S0 .= $S1
+ $S0 .= ')'
+ response.'push_header'('Client-Warning', $S0)
+ .return (response)
+ L2:
+
+ .local int code
+ code = response.'code'()
+
+ if code == RC_MOVED_PERMANENTLY goto L3
+ if code == RC_FOUND goto L3
+ if code == RC_SEE_OTHER goto L3
+ if code == RC_TEMPORARY_REDIRECT goto L3
+ goto L4
+ L3:
+ .local pmc referral
+ referral = clone request
+ # These headers should never be forwarded
+ referral.'remove_header'('Host')
+ referral.'remove_header'('Cookie')
+
+ # work in progress
+
+ .local string referral_uri
+ referral_uri = response.'get_header'('Location')
+ $P0 = get_hll_global ['URI'], 'new_from_string'
+ $P1 = $P0(referral_uri)
+ $S0 = $P1.'scheme'()
+ unless $S0 == '' goto L5
+ $P2 = new 'StringBuilder'
+ $P3 = request.'uri'()
+ $S0 = $P3.'scheme'()
+ push $P2, $S0
+ push $P2, '://'
+ $S0 = request.'get_header'('Host')
+ push $P2, $S0
+ push $P2, referral_uri
+ $P1 = $P0($P2)
+ L5:
+ setattribute referral, 'uri', $P1
+
+ # work in progress
+
+ $I0 = self.'redirect_ok'(referral, response)
+ if $I0 goto L6
+ .return (response)
+ L6:
+ .tailcall self.'request'(referral, response)
+
+ L4:
+ .local int proxy
+ proxy = 0
+ .local string ch_header
+ ch_header = 'WWW-Authenticate'
+ if code == RC_UNAUTHORIZED goto L11
+ proxy = 1
+ ch_header = 'Proxy-Authenticate'
+ if code == RC_PROXY_AUTHENTICATION_REQUIRED goto L11
+ goto L12
+ L11:
+ .local string challenge
+ challenge = response.'get_header'(ch_header)
+ unless challenge == '' goto L13
+ response.'push_header'('Client-Warning', 'Missing Authenticate header')
+ .return (response)
+ L13:
+
+ # work in progress
+ print "# "
+ say challenge
+
+ L12:
+ .return (response)
+.end
+
+=item get
+
+=cut
+
+.sub 'get' :method
+ .param pmc args :slurpy
+ .param pmc kv :slurpy :named
+ .local pmc request
+ $P0 = get_hll_global ['HTTP';'Request'], 'GET'
+ request = $P0(args :flat, kv :flat :named)
+ .tailcall self.'request'(request)
+.end
+
+=item head
+
+=cut
+
+.sub 'head' :method
+ .param pmc args :slurpy
+ .param pmc kv :slurpy :named
+ .local pmc request
+ $P0 = get_hll_global ['HTTP';'Request'], 'HEAD'
+ request = $P0(args :flat, kv :flat :named)
+ .tailcall self.'request'(request)
+.end
+
+=item post
+
+=cut
+
+.sub 'post' :method
+ .param pmc args :slurpy
+ .param pmc kv :slurpy :named
+ .local pmc request
+ $P0 = get_hll_global ['HTTP';'Request'], 'POST'
+ request = $P0(args :flat, kv :flat :named)
+ .tailcall self.'request'(request)
+.end
+
+=item put
+
+=cut
+
+.sub 'put' :method
+ .param pmc args :slurpy
+ .param pmc kv :slurpy :named
+ .local pmc request
+ $P0 = get_hll_global ['HTTP';'Request'], 'PUT'
+ request = $P0(args :flat, kv :flat :named)
+ .tailcall self.'request'(request)
+.end
+
+=item delete
+
+=cut
+
+.sub 'delete' :method
+ .param pmc args :slurpy
+ .param pmc kv :slurpy :named
+ .local pmc request
+ $P0 = get_hll_global ['HTTP';'Request'], 'DELETE'
+ request = $P0(args :flat, kv :flat :named)
+ .tailcall self.'request'(request)
+.end
+
+.sub 'progress' :method
+ .param string status
+ .param pmc msg
+ $P0 = getattribute self, 'show_progress'
+ if null $P0 goto L1
+ unless $P0 goto L1
+ unless status == 'begin' goto L2
+ printerr "** "
+ $P0 = getattribute msg, 'method'
+ printerr $P0
+ printerr " "
+ $P0 = getattribute msg, 'uri'
+ printerr $P0
+ printerr " ==> "
+ $N1 = time
+ $P0 = box $N1
+ setattribute self, 'progress_start', $P0
+ $P0 = box ''
+ setattribute self, 'progress_lastp', $P0
+ $P0 = box 0
+ setattribute self, 'progress_ani', $P0
+ goto L1
+ L2:
+ unless status == 'end' goto L3
+ $P0 = getattribute self, 'progress_start'
+ $N1 = $P0
+ $N2 = time
+ null $P0
+ setattribute self, 'progress_start', $P0
+ setattribute self, 'progress_lastp', $P0
+ setattribute self, 'progress_ani', $P0
+ $S0 = msg.'status_line'()
+ printerr $S0
+ $N0 =$N2 - $N1
+ $I0 = $N0
+ unless $I0 goto L4
+ printerr " ("
+ printerr $I0
+ printerr "s)"
+ L4:
+ printerr "\n"
+ goto L1
+ L3:
+ unless status == 'tick' goto L5
+ $P0 = getattribute self, 'progress_ani'
+ inc $P0
+ $P0 %= 4
+ $P1 = split '', '-\|/'
+ $S0 = $P1[$P0]
+ printerr $S0
+ printerr "\b"
+ goto L1
+ L5:
+ $N0 = status
+ $N0 *= 100
+ $P0 = new 'FixedFloatArray'
+ set $P0, 1
+ $P0[0] = $N0
+ $S1 = sprintf '%3.0f%%', $P0
+ $P0 = getattribute self, 'progress_lastp'
+ $S0 = $P0
+ if $S0 == $S1 goto L1
+ set $P0, $S1
+ printerr $S1
+ printerr "\b\b\b\b"
+ L1:
+.end
+
+.sub 'redirect_ok' :method
+ .param pmc new_request
+ .param pmc response
+ $P0 = response.'request'()
+ $S0 = $P0.'method'()
+ if $S0 == 'GET' goto L1
+ if $S0 == 'HEAD' goto L1
+ .return (0)
+ L1:
+ # work in progress
+ .return (1)
+.end
+
+=item max_redirect
+
+=cut
+
+.sub 'max_redirect' :method
+ .param pmc val
+ setattribute self, 'max_redirect', val
+.end
+
+=item show_progress
+
+=cut
+
+.sub 'show_progress' :method
+ .param pmc val
+ setattribute self, 'show_progress', val
+.end
+
+=item agent
+
+=cut
+
+.sub 'agent' :method
+ .param string val
+ $P0 = getattribute self, 'def_headers'
+ $P0['User-Agent'] = val
+.end
+
+.sub '_need_proxy' :method
+ .param pmc req
+ $P0 = req.'proxy'()
+ unless null $P0 goto L1
+ .local pmc uri
+ uri = req.'uri'()
+ .local string scheme
+ scheme = uri.'scheme'()
+ $P0 = getattribute self, 'proxy'
+ .local string proxy
+ proxy = $P0[scheme]
+ unless proxy goto L1
+ .local string host
+ host = uri.'host'()
+ $P0 = getattribute self, 'no_proxy'
+ $P1 = iter $P0
+ L2:
+ unless $P1 goto L3
+ $S0 = shift $P1
+ $I0 = index host, $S0
+ if $I0 < 0 goto L2
+ goto L1
+ L3:
+ $P0 = get_hll_global ['URI'], 'new_from_string'
+ $P0 = $P0(proxy)
+ req.'proxy'($P0)
+ L1:
+.end
+
+=item env_provy
+
+=cut
+
+.sub 'env_proxy' :method
+ $P0 = new 'Env'
+ $P1 = iter $P0
+ L1:
+ unless $P1 goto L2
+ $S0 = shift $P1
+ $S1 = downcase $S0
+ $I0 = index $S1, '_proxy'
+ if $I0 < 0 goto L1
+ $S2 = $P0[$S0]
+ unless $S1 == 'no_proxy' goto L3
+ $P2 = split ',', $S2
+ $P3 = iter $P2
+ L4:
+ unless $P3 goto L1
+ $S0 = shift $P3
+ $S0 = trim($S0)
+ self.'no_proxy'($S0)
+ goto L4
+ L3:
+ $S3 = substr $S1, 0, $I0
+ # Ignore xxx_proxy variables if xxx isn't a supported protocol
+ $P11 = new 'Key'
+ set $P11, 'LWP'
+ $P12 = new 'Key'
+ set $P12, 'Protocol'
+ push $P11, $P12
+ $P13 = new 'Key'
+ set $P13, $S3
+ push $P11, $P13
+ $P10 = get_class $P11
+ if null $P10 goto L1
+ self.'proxy'($S3, $S2)
+ goto L1
+ L2:
+.end
+
+.include 'cclass.pasm'
+
+.sub 'trim' :anon
+ .param string str
+ $I0 = length str
+ $I0 = find_not_cclass .CCLASS_WHITESPACE, str, 0, $I0
+ str = substr str, $I0
+ $I0 = length str
+ L1:
+ dec $I0
+ unless $I0 > 0 goto L2
+ $I1 = is_cclass .CCLASS_WHITESPACE, str, $I0
+ if $I1 != 0 goto L1
+ L2:
+ inc $I0
+ str = substr str, 0, $I0
+ .return (str)
+.end
+
+=item proxy
+
+=cut
+
+.sub 'proxy' :method
+ .param string scheme
+ .param string url
+ $P0 = getattribute self, 'proxy'
+ $P0[scheme] = url
+.end
+
+=item no_proxy
+
+=cut
+
+.sub 'no_proxy' :method
+ .param pmc args :slurpy
+ $I0 = elements args
+ if $I0 goto L1
+ $P0 = new 'ResizableStringArray'
+ setattribute self, 'no_proxy', $P0
+ goto L2
+ L1:
+ $P0 = getattribute self, 'no_proxy'
+ L3:
+ unless args goto L2
+ $S0 = shift args
+ push $P0, $S0
+ goto L3
+ L2:
+.end
+
+.sub '_new_response'
+ .param pmc request
+ .param pmc code
+ .param pmc message
+ .local pmc response
+ response = new ['HTTP';'Response']
+ setattribute response, 'code', code
+ setattribute response, 'message', message
+ setattribute response, 'request', request
+ $P0 = get_hll_global ['HTTP';'Date'], 'time2str'
+ $I0 = time
+ $S0 = $P0($I0)
+ response.'push_header'('Client-Date', $S0)
+ response.'push_header'('Client-Warning', "Internal response")
+ response.'push_header'('Content-Type', 'text/plain')
+ $S0 = code
+ $S0 .= ' '
+ $S1 = message
+ $S0 .= $S1
+ $S0 .= "\n"
+ $P0 = box $S0
+ setattribute response, 'content', $P0
+ .return (response)
+.end
+
+=back
+
+=head1 AUTHOR
+
+Francois Perrad
+
+=cut
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gsoc_threads/runtime/parrot/library/PGE/Util.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/PGE/Util.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/PGE/Util.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -132,7 +132,10 @@
message .= $S0
message .= "\n"
emit_message:
- printerr message
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'(message)
mob.'to'(pos)
.return (mob)
Modified: branches/gsoc_threads/runtime/parrot/library/Stream/ParrotIO.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/Stream/ParrotIO.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/Stream/ParrotIO.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -56,7 +56,8 @@
.param string mode
.local pmc pio
- open pio, name, mode
+ pio = new ['FileHandle']
+ pio.'open'(name, mode)
assign self, pio
.end
@@ -100,7 +101,7 @@
bs = self."blockSize"()
pio = self."source"()
- read str, pio, bs
+ str = pio.'read'(bs)
length $I0, str
if $I0 > 0 goto OK
self."close"()
Modified: branches/gsoc_threads/runtime/parrot/library/TAP/Harness.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/TAP/Harness.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/TAP/Harness.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -226,7 +226,7 @@
.param pmc parser
$P0 = parser.'delete_spool'()
if null $P0 goto L1
- close $P0
+ $P0.'close'()
L1:
.end
Modified: branches/gsoc_threads/runtime/parrot/library/TAP/Parser.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/TAP/Parser.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/TAP/Parser.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -908,14 +908,14 @@
push_eh _handler
$P0.'open'(filename, 'r')
pop_eh
- $S0 = readline $P0
+ $S0 = $P0.'readline'()
$I0 = index $S0, '#!'
unless $I0 == 0 goto L1
- close $P0
+ $P0.'close'()
$S0 = _get_exec($S0)
.tailcall self.'exec'($S0, filename)
L1:
- seek $P0, 0, 0
+ $P0.'seek'(0, 0)
setattribute self, 'stream', $P0
.return ()
_handler:
@@ -1010,7 +1010,7 @@
st = box 'INIT'
.lex 'state', st
L2:
- $S0 = readline stream
+ $S0 = stream.'readline'()
if $S0 == '' goto L3
$S0 = chomp($S0)
.local pmc token
@@ -1034,7 +1034,7 @@
.yield (token)
goto L2
L3:
- close stream
+ stream.'close'()
$I0 = can stream, 'exit_status'
unless $I0 goto L7
$I0 = stream.'exit_status'()
@@ -1085,9 +1085,12 @@
set st, $S0
goto L5
L2:
- printerr "Unhandled token type: "
- printerr type
- printerr "\n"
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'("Unhandled token type: ")
+ $P1.'print'(type)
+ $P1.'print'("\n")
L5:
.end
Modified: branches/gsoc_threads/runtime/parrot/library/Test/Builder/Output.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/Test/Builder/Output.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/Test/Builder/Output.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -57,14 +57,18 @@
.local pmc output
.local pmc diag_output
+ .include 'stdio.pasm'
+
output = args['output']
unless null output goto CHECK_ERROR_OUTPUT
- getstdout output
+ $P0 = getinterp
+ output = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
CHECK_ERROR_OUTPUT:
diag_output = args['diag_output']
unless null diag_output goto SET_OUTPUT
- getstderr diag_output
+ $P0 = getinterp
+ diag_output = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
SET_OUTPUT:
setattribute self, "output", output
@@ -144,7 +148,7 @@
if i == 0 goto LINE_OK
line = lines[i]
first_char = substr line, 0, 1
- eq_str first_char, '#', LINE_OK
+ if first_char == '#' goto LINE_OK
.local string new_line
new_line = '# '
@@ -184,7 +188,7 @@
.local string first_char
first_char = substr message, 0, 1
- eq_str first_char, '#', WRITE_MESSAGE
+ if first_char == '#' goto WRITE_MESSAGE
first_char = '# '
concat first_char, message
Modified: branches/gsoc_threads/runtime/parrot/library/URI.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/URI.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/URI.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -280,16 +280,45 @@
$P0 = subclass ['URI';'_generic'], ['URI';'_server']
.end
+=item userinfo
+
+=cut
+
+.sub 'userinfo' :method
+ $S0 = self.'authority'()
+ $I0 = index $S0, '@'
+ if $I0 < 0 goto L1
+ $S0 = substr $S0, 0, $I0
+ .return ($S0)
+ L1:
+ .return ('')
+.end
+
=item host
=cut
.sub 'host' :method
$S0 = self.'authority'()
- $I0 = index $S0, ':'
+ $I0 = index $S0, '@'
if $I0 < 0 goto L1
- $S0 = substr $S0, 0, $I0
+ inc $I0
+ $S0 = substr $S0, $I0
L1:
+ .local int pos, lastpos
+ lastpos = length $S0
+ pos = 0
+ L2:
+ pos = index $S0, ':', pos
+ if pos < 0 goto L3
+ $I1 = pos
+ inc pos
+ $I0 = is_cclass .CCLASS_NUMERIC, $S0, pos
+ unless $I0 goto L2
+ $I0 = find_not_cclass .CCLASS_NUMERIC, $S0, pos, lastpos
+ unless $I0 == lastpos goto L2
+ $S0 = substr $S0, 0, $I1
+ L3:
.return ($S0)
.end
@@ -301,8 +330,10 @@
$S0 = self.'authority'()
.local int pos, lastpos
lastpos = length $S0
- pos = index $S0, ':'
- if pos < 0 goto L1
+ pos = 0
+ L1:
+ pos = index $S0, ':', pos
+ if pos < 0 goto L2
inc pos
$I0 = is_cclass .CCLASS_NUMERIC, $S0, pos
unless $I0 goto L1
@@ -310,7 +341,7 @@
unless $I0 == lastpos goto L1
$S1 = substr $S0, pos
.return ($S1)
- L1:
+ L2:
.tailcall self.'default_port'()
.end
Modified: branches/gsoc_threads/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/distutils.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/distutils.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -132,6 +132,31 @@
=head2 EXAMPLES
+ $ cat hello.pir
+ .sub 'main' :main
+ say 'hello world!'
+ .end
+
+ $ cat setup.pir
+ .sub 'main' :main
+ .param pmc args
+ $S0 = shift args
+ load_bytecode 'distutils.pbc'
+
+ $P0 = new 'Hash'
+ $P1 = new 'Hash'
+ $P1['hello.pbc'] = 'hello.pir'
+ $P0['pbc_pir'] = $P1
+ $P2 = new 'Hash'
+ $P2['parrot-hello'] = 'hello.pbc'
+ $P0['installable_pbc'] = $P2
+ .tailcall setup(args :flat, $P0 :flat :named)
+ .end
+
+ $ parrot setup.pir
+ $ parrot setup.pir install
+ $ parrot setup clean
+
L<http://github.com/fperrad/parrot-MT19937/blob/master/setup.pir>
L<http://github.com/fperrad/markdown/blob/master/setup.pir>
@@ -172,6 +197,9 @@
=cut
+.loadlib 'io_ops' # workaround TT #1663
+.loadlib 'sys_ops'
+
.sub '__onload' :load :init :anon
load_bytecode 'osutils.pbc'
$P0 = new 'Hash'
@@ -340,7 +368,7 @@
run_step('usage', kv :flat :named)
L12:
pop_eh
- end
+ .return ()
_handler:
.local pmc ex
.get_results (ex)
@@ -1057,8 +1085,6 @@
.param string cflags
.param string ldflags
mkpath('dynext', 1 :named('verbose'))
- .local pmc cores
- cores = get_cores()
.local string load_ext
load_ext = get_load_ext()
$P0 = iter hash
@@ -1067,18 +1093,10 @@
.local string ops, src
ops = shift $P0
src = hash[ops]
- $P1 = iter cores
- L3:
- unless $P1 goto L4
- .local string core, suffix
- core = shift $P1
- suffix = cores[core]
- $S0 = _mk_path_dynops(ops, suffix, load_ext)
+ $S0 = _mk_path_dynops(ops, load_ext)
$I0 = newer($S0, src)
- if $I0 goto L3
- __build_dynops(src, ops, core, suffix, cflags, ldflags)
- goto L3
- L4:
+ if $I0 goto L1
+ __build_dynops(src, ops, cflags, ldflags)
goto L1
L2:
.end
@@ -1086,31 +1104,24 @@
.sub '__build_dynops' :anon
.param string src
.param string ops
- .param string core
- .param string suffix
.param string cflags
.param string ldflags
.local pmc config
config = get_config()
.local string cmd
- cmd = config['perl']
- cmd .= " "
- $S0 = get_tool('build/ops2c.pl')
- cmd .= $S0
- cmd .= " "
- cmd .= core
+ cmd = get_executable('ops2c')
cmd .= " --dynamic "
cmd .= src
system(cmd, 1 :named('verbose'))
$S0 = config['o']
- $S1 = _mk_path_gen_dynops(src, ops, suffix, $S0)
- $S2 = _mk_path_gen_dynops(src, ops, suffix, '.c')
+ $S1 = _mk_path_gen_dynops(src, ops, $S0)
+ $S2 = _mk_path_gen_dynops(src, ops, '.c')
__compile_cc($S1, $S2, cflags)
.local string dynext
$S0 = config['load_ext']
- dynext = _mk_path_dynops(ops, suffix, $S0)
+ dynext = _mk_path_dynops(ops, $S0)
cmd = config['ld']
cmd .= " "
$S0 = config['ld_out']
@@ -1118,7 +1129,7 @@
cmd .= dynext
cmd .= " "
$S0 = config['o']
- $S0 = _mk_path_gen_dynops(src, ops, suffix, $S0)
+ $S0 = _mk_path_gen_dynops(src, ops, $S0)
cmd .= $S0
cmd .= " "
$S0 = get_ldflags()
@@ -1176,10 +1187,8 @@
.sub '_mk_path_dynops' :anon
.param string ops
- .param string suffix
.param string load_ext
$S0 = "dynext/" . ops
- $S0 .= suffix
$S0 .= load_ext
.return ($S0)
.end
@@ -1187,22 +1196,14 @@
.sub '_mk_path_gen_dynops' :anon
.param string src
.param string ops
- .param string suffix
.param string ext
$S0 = dirname(src)
$S0 .= "/"
$S0 .= ops
- $S0 .= suffix
$S0 .= ext
.return ($S0)
.end
-.sub 'get_cores'
- $P0 = new 'Hash'
- $P0['C'] = ''
- .return ($P0)
-.end
-
=item dynpmc
hash
@@ -1711,8 +1712,6 @@
.sub 'clean_dynops'
.param pmc hash
- .local pmc cores
- cores = get_cores()
.local string load_ext, obj
load_ext = get_load_ext()
obj = get_obj()
@@ -1722,22 +1721,14 @@
.local string ops, src
ops = shift $P0
src = hash[ops]
- $P1 = iter cores
- L3:
- unless $P1 goto L4
- .local string core, suffix
- core = shift $P1
- suffix = cores[core]
- $S0 = _mk_path_dynops(ops, suffix, load_ext)
+ $S0 = _mk_path_dynops(ops, load_ext)
unlink($S0, 1 :named('verbose'))
- $S0 = _mk_path_gen_dynops(src, ops, suffix, '.c')
+ $S0 = _mk_path_gen_dynops(src, ops, '.c')
unlink($S0, 1 :named('verbose'))
- $S0 = _mk_path_gen_dynops(src, ops, suffix, '.h')
+ $S0 = _mk_path_gen_dynops(src, ops, '.h')
unlink($S0, 1 :named('verbose'))
- $S0 = _mk_path_gen_dynops(src, ops, suffix, obj)
+ $S0 = _mk_path_gen_dynops(src, ops, obj)
unlink($S0, 1 :named('verbose'))
- goto L3
- L4:
goto L1
L2:
.end
@@ -2152,9 +2143,10 @@
set $P0, 1
$P0[0] = archive
push contents, $P0
- load_bytecode 'LWP.pir'
+ load_bytecode 'LWP/UserAgent.pir'
.local pmc ua, response
ua = new ['LWP';'UserAgent']
+ ua.'env_proxy'()
ua.'show_progress'(1)
$S0 = kv['smolder_url']
response = ua.'post'($S0, contents :flat, 'form-data' :named('Content-Type'), 'close' :named('Connection'))
@@ -2406,26 +2398,17 @@
.sub 'get_install_dynops' :anon
.param pmc files
.param pmc hash
- .local string libdir, load_ext, ops, suffix
+ .local string libdir, load_ext, ops
libdir = get_libdir()
load_ext = get_load_ext()
- .local pmc cores
- cores = get_cores()
$P0 = iter hash
L1:
unless $P0 goto L2
ops = shift $P0
- $P1 = iter cores
- L3:
- unless $P1 goto L4
- $S0 = shift $P1
- suffix = cores[$S0]
- $S1 = _mk_path_dynops(ops, suffix, load_ext)
+ $S1 = _mk_path_dynops(ops, load_ext)
$S2 = libdir . "/"
$S2 .= $S1
files[$S2] = $S1
- goto L3
- L4:
goto L1
L2:
.end
@@ -3724,7 +3707,8 @@
.end
.sub 'get_timestamp' :anon
- $P0 = open 'date --rfc-2822', 'rp'
+ $P0 = new 'FileHandle'
+ $P0.'open'('date --rfc-2822', 'rp')
$S0 = $P0.'readline'()
$P0.'close'()
$S0 = chopn $S0, 1
@@ -4526,7 +4510,8 @@
system(cmd, verbose :named('verbose'), 1 :named('ignore_error'))
unlink(srcname, verbose :named('verbose'))
- $P0 = open exename, 'rp'
+ $P0 = new 'FileHandle'
+ $P0.'open'(exename, 'rp')
$S0 = $P0.'readall'()
$P0.'close'()
@@ -4563,6 +4548,36 @@
.return ($I0)
.end
+=item runtests
+
+=cut
+
+.sub 'runtests' :multi()
+ .param pmc files :slurpy
+ .param pmc opts :slurpy :named
+ load_bytecode 'TAP/Harness.pbc'
+ .local pmc harness
+ harness = new ['TAP';'Harness']
+ harness.'process_args'(opts)
+ .local pmc aggregate
+ aggregate = harness.'runtests'(files)
+ $I0 = aggregate.'has_errors'()
+ unless $I0 goto L1
+ $I0 = exists opts['ignore_error']
+ unless $I0 goto L2
+ $I0 = opts['ignore_error']
+ if $I0 goto L1
+ L2:
+ die "test fails"
+ L1:
+.end
+
+.sub 'runtests' :multi(ResizableStringArray,Hash)
+ .param pmc array
+ .param pmc hash
+ .tailcall runtests(array :flat, hash :flat :named)
+.end
+
=back
=head1 AUTHOR
Modified: branches/gsoc_threads/runtime/parrot/library/osutils.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/osutils.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/osutils.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -45,6 +45,7 @@
.return ($I0)
.end
+.loadlib 'io_ops'
.include 'stat.pasm'
.sub 'file_exists'
Modified: branches/gsoc_threads/runtime/parrot/library/parrotlib.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/parrotlib.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/parrotlib.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -127,32 +127,46 @@
.sub dynext_location
.param string request
.param string ext
+
+ .local pmc os
.local string name
+ $P0 = loadlib 'os'
+ os = new ['OS']
+
name = request
- stat $I0, name, 0
- if $I0 goto END
+ push_eh FILE_NOT_FOUND_1
+ # OS.stat throws on file not found
+ os.'stat'(name)
+ goto END
+FILE_NOT_FOUND_1:
name = concat request, ext
- stat $I0, name, 0
- if $I0 goto END
+ push_eh FILE_NOT_FOUND_2
+ os.'stat'(name)
+ goto END
+FILE_NOT_FOUND_2:
name = concat "runtime/parrot/dynext/", request
- stat $I0, name, 0
- if $I0 goto END
+ push_eh FILE_NOT_FOUND_3
+ os.'stat'(name)
+ goto END
+FILE_NOT_FOUND_3:
name = concat "runtime/parrot/dynext/", request
name = concat name, ext
- stat $I0, name, 0
- if $I0 goto END
+ push_eh FILE_NOT_FOUND_4
+ os.'stat'(name)
+ goto END
+FILE_NOT_FOUND_4:
# file not found, give the OS a chance to locate it
name = concat request, ext
+ .return (name)
END:
- .begin_return
- .set_return name
- .end_return
+ pop_eh
+ .return (name)
.end
@@ -187,10 +201,18 @@
path = $P0
$S0 = concat path, name
- stat $I0, $S0, 0
- if $I0 goto OK
+ $P0 = loadlib 'os'
+ $P0 = new ['OS']
+ push_eh FILE_NOT_FOUND
+ # OS.stat throws on file not found
+ $P0.'stat'($S0)
+ pop_eh
+ goto END
+
+FILE_NOT_FOUND:
null $S0
-OK:
+
+END:
.begin_return
.set_return $S0
.end_return
Modified: branches/gsoc_threads/runtime/parrot/library/pcre.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/pcre.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/runtime/parrot/library/pcre.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -45,6 +45,7 @@
=cut
+.loadlib 'sys_ops'
.include "sysinfo.pasm"
.sub init
Modified: branches/gsoc_threads/src/call/context.c
==============================================================================
--- branches/gsoc_threads/src/call/context.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/call/context.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -518,7 +518,7 @@
ARGIN_NULLOK(PMC *old))
{
ASSERT_ARGS(Parrot_alloc_context)
- PMC *pmcctx = Parrot_pmc_new(interp, enum_class_CallContext);
+ PMC * const pmcctx = Parrot_pmc_new(interp, enum_class_CallContext);
allocate_registers(interp, pmcctx, number_regs_used);
init_context(interp, pmcctx, old);
@@ -544,7 +544,7 @@
Parrot_pcc_allocate_empty_context(PARROT_INTERP, ARGIN_NULLOK(PMC *old))
{
ASSERT_ARGS(Parrot_pcc_allocate_empty_context)
- PMC *pmcctx = Parrot_pmc_new(interp, enum_class_CallContext);
+ PMC * const pmcctx = Parrot_pmc_new(interp, enum_class_CallContext);
init_context(interp, pmcctx, old);
@@ -622,8 +622,9 @@
Parrot_clear_i(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_clear_i)
+ const UINTVAL regs_used = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_INT);
UINTVAL i;
- for (i = 0; i < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_INT); ++i)
+ for (i = 0; i < regs_used; ++i)
REG_INT(interp, i) = 0;
}
@@ -643,8 +644,9 @@
Parrot_clear_s(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_clear_s)
+ const UINTVAL regs_used = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_STR);
UINTVAL i;
- for (i = 0; i < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_STR); ++i)
+ for (i = 0; i < regs_used; ++i)
REG_STR(interp, i) = NULL;
}
@@ -664,8 +666,9 @@
Parrot_clear_p(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_clear_p)
+ const UINTVAL regs_used = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_PMC);
UINTVAL i;
- for (i = 0; i < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_PMC); ++i)
+ for (i = 0; i < regs_used; ++i)
REG_PMC(interp, i) = PMCNULL;
}
@@ -685,8 +688,9 @@
Parrot_clear_n(PARROT_INTERP)
{
ASSERT_ARGS(Parrot_clear_n)
+ const UINTVAL regs_used = Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_NUM);
UINTVAL i;
- for (i = 0; i < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_NUM); ++i)
+ for (i = 0; i < regs_used; ++i)
REG_NUM(interp, i) = 0.0;
}
Modified: branches/gsoc_threads/src/debug.c
==============================================================================
--- branches/gsoc_threads/src/debug.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/debug.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -2481,8 +2481,7 @@
" :unused040",
" :optional",
" :opt_flag",
- " :named",
- NULL
+ " :named"
};
@@ -2503,7 +2502,7 @@
/* Add flags, if we have any. */
{
- int flag_idx = 0;
+ unsigned int flag_idx = 0;
int flags = sig_value;
/* End when we run out of flags, off the end of flag_names, or
@@ -2511,10 +2510,12 @@
* 100 is just an estimate of all buf lengths added together.
*/
while (flags && idx < sizeof (buf) - 100) {
- const char * const flag_string
- = (specialop == 2 && STREQ(flag_names[flag_idx], " :flat"))
+ const char * const flag_string =
+ flag_idx < (sizeof flag_names / sizeof (char *))
+ ? (specialop == 2 && STREQ(flag_names[flag_idx], " :flat"))
? " :slurpy"
- : flag_names[flag_idx];
+ : flag_names[flag_idx]
+ : (const char *) NULL;
if (! flag_string)
break;
@@ -3070,6 +3071,7 @@
*/
+PARROT_EXPORT
void
PDB_print(PARROT_INTERP, ARGIN(const char *command))
{
@@ -3182,6 +3184,7 @@
*/
+PARROT_EXPORT
void
PDB_backtrace(PARROT_INTERP)
{
Modified: branches/gsoc_threads/src/dynoplibs/Defines.in
==============================================================================
--- branches/gsoc_threads/src/dynoplibs/Defines.in Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/dynoplibs/Defines.in Thu Jun 10 21:09:12 2010 (r47545)
@@ -2,6 +2,11 @@
$(DYNEXT_DIR)/obscure_ops$(LOAD_EXT) \
$(DYNEXT_DIR)/math_ops$(LOAD_EXT) \
$(DYNEXT_DIR)/deprecated_ops$(LOAD_EXT) \
+ $(DYNEXT_DIR)/trans_ops$(LOAD_EXT) \
+ $(DYNEXT_DIR)/bit_ops$(LOAD_EXT) \
+ $(DYNEXT_DIR)/debug_ops$(LOAD_EXT) \
+ $(DYNEXT_DIR)/sys_ops$(LOAD_EXT) \
+ $(DYNEXT_DIR)/io_ops$(LOAD_EXT) \
DYNOPLIBS_CLEANUPS = \
src/dynoplibs/*.c \
Modified: branches/gsoc_threads/src/dynoplibs/Rules.in
==============================================================================
--- branches/gsoc_threads/src/dynoplibs/Rules.in Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/dynoplibs/Rules.in Thu Jun 10 21:09:12 2010 (r47545)
@@ -7,6 +7,8 @@
$(PARROT_H_HEADERS) \
include/parrot/runcore_api.h
+#########################
+
$(DYNEXT_DIR)/obscure_ops$(LOAD_EXT): src/dynoplibs/obscure_ops$(O) $(LIBPARROT)
$(LD) @ld_out@$@ src/dynoplibs/obscure_ops$(O) $(LINKARGS)
#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
@@ -17,23 +19,25 @@
src/dynoplibs/obscure_ops.h: src/dynoplibs/obscure_ops.c
-src/dynoplibs/obscure_ops.c: src/dynoplibs/obscure.ops $(BUILD_TOOLS_DIR)/ops2c.pl
- $(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl C --dynamic src/dynoplibs/obscure.ops
+src/dynoplibs/obscure_ops.c: src/dynoplibs/obscure.ops $(OPS2C)
+ $(OPS2C) --dynamic src/dynoplibs/obscure.ops --quiet
+#########################
$(DYNEXT_DIR)/math_ops$(LOAD_EXT): src/dynoplibs/math_ops$(O) $(LIBPARROT)
$(LD) @ld_out@$@ src/dynoplibs/math_ops$(O) $(LINKARGS)
#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
#IF(cygwin or hpux): $(CHMOD) 0775 $@
-src/dynoplibs/math_ops.c: src/dynoplibs/math.ops $(BUILD_TOOLS_DIR)/ops2c.pl
- $(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl C --dynamic src/dynoplibs/math.ops
+src/dynoplibs/math_ops.c: src/dynoplibs/math.ops $(OPS2C)
+ $(OPS2C) --dynamic src/dynoplibs/math.ops --quiet
src/dynoplibs/math_ops$(O): $(DYNOP_O_DEPS) \
src/dynoplibs/math_ops.c src/dynoplibs/math_ops.h
src/dynoplibs/math_ops.h: src/dynoplibs/math_ops.c
+#########################
$(DYNEXT_DIR)/deprecated_ops$(LOAD_EXT): src/dynoplibs/deprecated_ops$(O) $(LIBPARROT)
$(LD) @ld_out@$@ src/dynoplibs/deprecated_ops$(O) $(LINKARGS)
@@ -45,5 +49,81 @@
src/dynoplibs/deprecated_ops.h: src/dynoplibs/deprecated_ops.c
-src/dynoplibs/deprecated_ops.c: src/dynoplibs/deprecated.ops $(BUILD_TOOLS_DIR)/ops2c.pl
- $(PERL) $(BUILD_TOOLS_DIR)/ops2c.pl C --dynamic src/dynoplibs/deprecated.ops
+src/dynoplibs/deprecated_ops.c: src/dynoplibs/deprecated.ops $(OPS2C)
+ $(OPS2C) --dynamic src/dynoplibs/deprecated.ops --quiet
+
+#########################
+
+$(DYNEXT_DIR)/trans_ops$(LOAD_EXT): src/dynoplibs/trans_ops$(O) $(LIBPARROT)
+ $(LD) @ld_out@$@ src/dynoplibs/trans_ops$(O) $(LINKARGS)
+#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux): $(CHMOD) 0775 $@
+
+src/dynoplibs/trans_ops$(O): $(DYNOP_O_DEPS) \
+ src/dynoplibs/trans_ops.c src/dynoplibs/trans_ops.h
+
+src/dynoplibs/trans_ops.h: src/dynoplibs/trans_ops.c
+
+src/dynoplibs/trans_ops.c: src/dynoplibs/trans.ops $(OPS2C)
+ $(OPS2C) --dynamic src/dynoplibs/trans.ops --quiet
+
+#########################
+
+$(DYNEXT_DIR)/bit_ops$(LOAD_EXT): src/dynoplibs/bit_ops$(O) $(LIBPARROT)
+ $(LD) @ld_out@$@ src/dynoplibs/bit_ops$(O) $(LINKARGS)
+#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux): $(CHMOD) 0775 $@
+
+src/dynoplibs/bit_ops$(O): $(DYNOP_O_DEPS) \
+ src/dynoplibs/bit_ops.c src/dynoplibs/bit_ops.h
+
+src/dynoplibs/bit_ops.h: src/dynoplibs/bit_ops.c
+
+src/dynoplibs/bit_ops.c: src/dynoplibs/bit.ops $(OPS2C)
+ $(OPS2C) --dynamic src/dynoplibs/bit.ops --quiet
+
+#########################
+
+$(DYNEXT_DIR)/debug_ops$(LOAD_EXT): src/dynoplibs/debug_ops$(O) $(LIBPARROT)
+ $(LD) @ld_out@$@ src/dynoplibs/debug_ops$(O) $(LINKARGS)
+#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux): $(CHMOD) 0775 $@
+
+src/dynoplibs/debug_ops$(O): $(DYNOP_O_DEPS) \
+ src/dynoplibs/debug_ops.c src/dynoplibs/debug_ops.h
+
+src/dynoplibs/debug_ops.h: src/dynoplibs/debug_ops.c
+
+src/dynoplibs/debug_ops.c: src/dynoplibs/debug.ops $(OPS2C)
+ $(OPS2C) --dynamic src/dynoplibs/debug.ops --quiet
+
+#########################
+
+$(DYNEXT_DIR)/sys_ops$(LOAD_EXT): src/dynoplibs/sys_ops$(O) $(LIBPARROT)
+ $(LD) @ld_out@$@ src/dynoplibs/sys_ops$(O) $(LINKARGS)
+#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux): $(CHMOD) 0775 $@
+
+src/dynoplibs/sys_ops$(O): $(DYNOP_O_DEPS) \
+ src/dynoplibs/sys_ops.c src/dynoplibs/sys_ops.h
+
+src/dynoplibs/sys_ops.h: src/dynoplibs/sys_ops.c
+
+src/dynoplibs/sys_ops.c: src/dynoplibs/sys.ops $(OPS2C)
+ $(OPS2C) --dynamic src/dynoplibs/sys.ops --quiet
+
+#########################
+
+$(DYNEXT_DIR)/io_ops$(LOAD_EXT): src/dynoplibs/io_ops$(O) $(LIBPARROT)
+ $(LD) @ld_out@$@ src/dynoplibs/io_ops$(O) $(LINKARGS)
+#IF(win32): if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux): $(CHMOD) 0775 $@
+
+src/dynoplibs/io_ops$(O): $(DYNOP_O_DEPS) \
+ src/dynoplibs/io_ops.c src/dynoplibs/io_ops.h
+
+src/dynoplibs/io_ops.h: src/dynoplibs/io_ops.c
+
+src/dynoplibs/io_ops.c: src/dynoplibs/io.ops $(OPS2C)
+ $(OPS2C) --dynamic src/dynoplibs/io.ops --quiet
+
Copied: branches/gsoc_threads/src/dynoplibs/bit.ops (from r47544, trunk/src/dynoplibs/bit.ops)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/src/dynoplibs/bit.ops Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/src/dynoplibs/bit.ops)
@@ -0,0 +1,542 @@
+/*
+ * $Id$
+** bit.ops
+*/
+
+BEGIN_OPS_PREAMBLE
+ /* Signed shift operator that is compatible with PMC shifts. This is
+ * guaranteed to produce the same result as bitwise_left_shift_internal modulo
+ * word size, ignoring the fact that Parrot integers are always signed. This
+ * usually gives the same answer regardless whether you shift PMC operands and
+ * then assign to an I-reg, or move the operands to I-regs and do the shift
+ * there -- except when the true result is between 2^{w-1} and 2^w (where w is
+ * the word size), in which case the high order bit is taken as the sign,
+ * giving a truncated result that is 2^w lower.
+ */
+#define bit_shift_left(number, bits) \
+ ((bits) >= 8*INTVAL_SIZE ? 0 \
+ : (bits) >= 0 ? (number) << (bits) \
+ : (bits) > -8*INTVAL_SIZE ? (number) >> -(bits) \
+ : 0)
+
+END_OPS_PREAMBLE
+
+=head1 NAME
+
+bit.ops - Bitwise Opcodes Dynoplib
+
+=head1 DESCRIPTION
+
+Operations that deal with bits directly, either individually
+or in groups.
+
+The variant with an appended B<s> like B<bands> work on strings.
+
+=over 4
+
+=cut
+
+########################################
+
+=item B<band>(invar PMC, in INT)
+
+=item B<band>(invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<and> of the corresponding bits
+from $1 and $2.
+
+=item B<band>(invar PMC, invar PMC, in INT)
+
+=item B<band>(invar PMC, invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<and> of the corresponding bits
+from $2 and $3.
+
+=cut
+
+inline op band(invar PMC, in INT) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = a & $2;
+ VTABLE_set_integer_native(interp, $1, b);
+}
+
+inline op band(invar PMC, invar PMC) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = VTABLE_get_integer(interp, $2);
+ VTABLE_set_integer_native(interp, $1, a & b);
+}
+
+inline op band(invar PMC, invar PMC, in INT) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ VTABLE_set_integer_native(interp, $1, a & $3);
+}
+
+inline op band(invar PMC, invar PMC, invar PMC) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = VTABLE_get_integer(interp, $3);
+ VTABLE_set_integer_native(interp, $1, a & b);
+}
+
+=item B<bands>(invar PMC, in STR)
+
+=item B<bands>(invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<and> of the corresponding bits
+from $1 and $2.
+
+=item B<bands>(out STR, in STR, in STR)
+
+=item B<bands>(invar PMC, invar PMC, in STR)
+
+=item B<bands>(invar PMC, invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<and> of the corresponding bits
+from $2 and $3.
+
+=cut
+
+inline op bands(invar PMC, in STR) :base_core {
+ STRING * const a = VTABLE_get_string(interp, $1);
+ STRING * const b = Parrot_str_bitwise_and(interp, a, $2);
+ VTABLE_set_string_native(interp, $1, b);
+}
+
+inline op bands(invar PMC, invar PMC) :base_core {
+ STRING * a = VTABLE_get_string(interp, $1);
+ STRING * const b = VTABLE_get_string(interp, $2);
+ a = Parrot_str_bitwise_and(interp, a, b);
+ VTABLE_set_string_native(interp, $1, a);
+}
+
+inline op bands(out STR, in STR, in STR) :base_core {
+ $1 = Parrot_str_bitwise_and(interp, $2, $3);
+}
+
+inline op bands(invar PMC, invar PMC, in STR) :base_core {
+ STRING * const a = VTABLE_get_string(interp, $2);
+ STRING * const b = Parrot_str_bitwise_and(interp, a, $3);
+ VTABLE_set_string_native(interp, $1, b);
+}
+
+inline op bands(invar PMC, invar PMC, invar PMC) :base_core {
+ STRING * const a = VTABLE_get_string(interp, $2);
+ STRING * const b = VTABLE_get_string(interp, $3);
+ STRING * const c = Parrot_str_bitwise_and(interp, a, b);
+ VTABLE_set_string_native(interp, $1, c);
+}
+
+########################################
+
+=item B<bor>(invar PMC, in INT)
+
+=item B<bor>(invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<or> of the corresponding bits
+from $1 and $2.
+
+=item B<bor>(invar PMC, invar PMC, in INT)
+
+=item B<bor>(invar PMC, invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<or> of the corresponding bits
+from $2 and $3.
+
+=cut
+
+inline op bor(invar PMC, in INT) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ VTABLE_set_integer_native(interp, $1, a | $2);
+}
+
+inline op bor(invar PMC, invar PMC) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = VTABLE_get_integer(interp, $2);
+ VTABLE_set_integer_native(interp, $1, a | b);
+}
+
+inline op bor(invar PMC, invar PMC, in INT) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ VTABLE_set_integer_native(interp, $1, a | $3);
+}
+
+inline op bor(invar PMC, invar PMC, invar PMC) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = VTABLE_get_integer(interp, $3);
+ VTABLE_set_integer_native(interp, $1, a | b);
+}
+
+########################################
+
+=item B<bors>(invar PMC, in STR)
+
+=item B<bors>(invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<or> of the corresponding bits
+from $1 and $2.
+
+=item B<bors>(out STR, in STR, in STR)
+
+=item B<bors>(invar PMC, invar PMC, in STR)
+
+=item B<bors>(invar PMC, invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<or> of the corresponding bits
+from $2 and $3.
+
+=cut
+
+inline op bors(invar PMC, in STR) :base_core {
+ STRING * const a = VTABLE_get_string(interp, $1);
+ STRING * const b = Parrot_str_bitwise_or(interp, a, $2);
+ VTABLE_set_string_native(interp, $1, b);
+}
+
+inline op bors(invar PMC, invar PMC) :base_core {
+ STRING * const a = VTABLE_get_string(interp, $1);
+ STRING * const b = VTABLE_get_string(interp, $2);
+ STRING * const c = Parrot_str_bitwise_or(interp, a, b);
+ VTABLE_set_string_native(interp, $1, c);
+}
+
+inline op bors(out STR, in STR, in STR) :base_core {
+ $1 = Parrot_str_bitwise_or(interp, $2, $3);
+}
+
+inline op bors(invar PMC, invar PMC, in STR) :base_core {
+ STRING * const b = VTABLE_get_string(interp, $2);
+ STRING * const c = Parrot_str_bitwise_or(interp, b, $3);
+ VTABLE_set_string_native(interp, $1, c);
+}
+
+inline op bors(invar PMC, invar PMC, invar PMC) :base_core {
+ STRING * const a = VTABLE_get_string(interp, $2);
+ STRING * const b = VTABLE_get_string(interp, $3);
+ STRING * const c = Parrot_str_bitwise_or(interp, a, b);
+ VTABLE_set_string_native(interp, $1, c);
+}
+
+########################################
+
+=item B<shl>(invar PMC, in INT)
+
+=item B<shl>(invar PMC, invar PMC)
+
+Shift left $1 by $2 bits.
+
+=item B<shl>(invar PMC, invar PMC, in INT)
+
+=item B<shl>(invar PMC, invar PMC, invar PMC)
+
+Set $1 to the value of $2 shifted left by $3 bits.
+
+=cut
+
+inline op shl(invar PMC, in INT) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = bit_shift_left(a, $2);
+ VTABLE_set_integer_native(interp, $1, b);
+}
+
+inline op shl(invar PMC, invar PMC) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = VTABLE_get_integer(interp, $2);
+ const INTVAL c = bit_shift_left(a, b);
+ VTABLE_set_integer_native(interp, $1, c);
+}
+
+inline op shl(invar PMC, invar PMC, in INT) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = bit_shift_left(a, $3);
+ VTABLE_set_integer_native(interp, $1, b);
+}
+
+inline op shl(invar PMC, invar PMC, invar PMC) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = VTABLE_get_integer(interp, $3);
+ const INTVAL c = bit_shift_left(a, b);
+ VTABLE_set_integer_native(interp, $1, c);
+}
+
+########################################
+
+=item B<shr>(invar PMC, in INT)
+
+=item B<shr>(invar PMC, invar PMC)
+
+Shift right $1 by $2 bits.
+
+=item B<shr>(invar PMC, invar PMC, in INT)
+
+=item B<shr>(invar PMC, invar PMC, invar PMC)
+
+Set $1 to the value of $2 shifted right by $3 bits.
+
+=cut
+
+inline op shr(invar PMC, in INT) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = bit_shift_left(a, -$2);
+ VTABLE_set_integer_native(interp, $1, b);
+}
+
+inline op shr(invar PMC, invar PMC) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ const INTVAL b = VTABLE_get_integer(interp, $2);
+ const INTVAL c = bit_shift_left(a, -b);
+ VTABLE_set_integer_native(interp, $1, c);
+}
+
+inline op shr(invar PMC, invar PMC, in INT) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL c = bit_shift_left(a, -$3);
+ VTABLE_set_integer_native(interp, $1, c);
+}
+
+inline op shr(invar PMC, invar PMC, invar PMC) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ const INTVAL b = VTABLE_get_integer(interp, $3);
+ const INTVAL c = bit_shift_left(a, -b);
+ VTABLE_set_integer_native(interp, $1, c);
+}
+
+########################################
+
+=item B<bnot>(inout INT)
+
+=item B<bnot>(invar PMC)
+
+Sets $1 to C<bitwise not> $1 inplace.
+
+=item B<bnot>(out INT, in INT)
+
+=item B<bnot>(out PMC, invar PMC)
+
+=cut
+
+inline op bnot(inout INT) :base_core {
+ $1 = ~ $1;
+}
+
+inline op bnot(out INT, in INT) :base_core {
+ $1 = ~ $2;
+}
+
+inline op bnot(invar PMC) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $1);
+ VTABLE_set_integer_native(interp, $1, ~a);
+}
+
+inline op bnot(out PMC, invar PMC) :base_core {
+ const INTVAL a = VTABLE_get_integer(interp, $2);
+ PMC * const b = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
+ VTABLE_set_integer_native(interp, b, ~a);
+ $1 = b;
+}
+
+=item B<bnots>(invar PMC)
+
+=item B<bnots>(out STR, in STR)
+
+=item B<bnots>(out PMC, invar PMC)
+
+=cut
+
+inline op bnots(out STR, in STR) :base_core {
+ $1 = Parrot_str_bitwise_not(interp, $2);
+}
+
+inline op bnots(invar PMC) :base_core {
+ STRING * const a = VTABLE_get_string(interp, $1);
+ STRING * const b = Parrot_str_bitwise_not(interp, a);
+ VTABLE_set_string_native(interp, $1, b);
+}
+
+inline op bnots(out PMC, invar PMC) :base_core {
+ STRING * const a = VTABLE_get_string(interp, $2);
+ STRING * const b = Parrot_str_bitwise_not(interp, a);
+ VTABLE_set_string_native(interp, $1, b);
+}
+
+########################################
+
+=item B<lsr>(invar PMC, in INT)
+
+=item B<lsr>(invar PMC, invar PMC)
+
+Shift $1 logically shifted right by $2 bits.
+
+=item B<lsr>(invar PMC, invar PMC, in INT)
+
+=item B<lsr>(invar PMC, invar PMC, invar PMC)
+
+Set $1 to the value of $2 logically shifted right by $3 bits.
+
+=cut
+
+inline op lsr(invar PMC, in INT) :base_core {
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+ const UINTVAL b = a >> $2;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)b);
+}
+
+inline op lsr(invar PMC, invar PMC) :base_core {
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)c);
+}
+
+inline op lsr(invar PMC, invar PMC, in INT) :base_core {
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL b = (UINTVAL)$3;
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)c);
+}
+
+inline op lsr(invar PMC, invar PMC, invar PMC) :base_core {
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $3);
+ const UINTVAL c = a >> b;
+ VTABLE_set_integer_native(interp, $3, (INTVAL)c);
+}
+
+=item B<rot>(out INT, in INT, in INT, inconst INT)
+
+Rotate $2 left or right by $3 and place result in $1.
+$4 is the amount of bits to rotate, 32 bit on a 32-bit CPU and 32 or 64
+on a 64-bit CPU. If the rotate count is negative a rotate right by ($3+$4)
+is performed.
+
+=cut
+
+inline op rot(out INT, in INT, in INT, inconst INT) {
+ const INTVAL r = $2;
+ INTVAL s = $3;
+ const INTVAL w = $4;
+ INTVAL d, t;
+ if (s < 0)
+ s += w;
+ d = r << s;
+ t = w - s;
+ t = (INTVAL)((UINTVAL)r >> t);
+ d |= t;
+ $1 = d;
+}
+
+########################################
+
+=item B<bxor>(invar PMC, in INT)
+
+=item B<bxor>(invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<xor> of the corresponding bits
+from $1 and $2.
+
+=item B<bxor>(invar PMC, invar PMC, in INT)
+
+=item B<bxor>(invar PMC, invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<xor> of the corresponding bits
+from $2 and $3.
+
+=cut
+
+inline op bxor(invar PMC, in INT) :base_core {
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+ const UINTVAL b = a ^ $2;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)b);
+}
+
+inline op bxor(invar PMC, invar PMC) :base_core {
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL c = a ^ b;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)c);
+}
+
+inline op bxor(invar PMC, invar PMC, in INT) :base_core {
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL b = a ^ $3;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)b);
+}
+
+inline op bxor(invar PMC, invar PMC, invar PMC) :base_core {
+ const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
+ const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $3);
+ const UINTVAL c = a ^ b;
+ VTABLE_set_integer_native(interp, $1, (INTVAL)c);
+}
+
+########################################
+
+=item B<bxors>(invar PMC, in STR)
+
+=item B<bxors>(invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<xor> of the corresponding bits
+from $1 and $2.
+
+=item B<bxors>(out STR, in STR, in STR)
+
+=item B<bxors>(invar PMC, invar PMC, in STR)
+
+=item B<bxors>(invar PMC, invar PMC, invar PMC)
+
+Set the bits of $1 according to the B<xor> of the corresponding bits
+from $2 and $3.
+
+=cut
+
+inline op bxors(invar PMC, in STR) :base_core {
+ STRING * const a = VTABLE_get_string(interp, $1);
+ STRING * const b = Parrot_str_bitwise_xor(interp, a, $2);
+ VTABLE_set_string_native(interp, $1, b);
+}
+
+inline op bxors(invar PMC, invar PMC) :base_core {
+ STRING * const a = VTABLE_get_string(interp, $1);
+ STRING * const b = VTABLE_get_string(interp, $2);
+ STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
+ VTABLE_set_string_native(interp, $1, c);
+}
+
+inline op bxors(out STR, in STR, in STR) :base_core {
+ $1 = Parrot_str_bitwise_xor(interp, $2, $3);
+}
+
+inline op bxors(invar PMC, invar PMC, in STR) :base_core {
+ STRING * const a = VTABLE_get_string(interp, $2);
+ STRING * const b = Parrot_str_bitwise_xor(interp, a, $3);
+ VTABLE_set_string_native(interp, $1, b);
+}
+
+inline op bxors(invar PMC, invar PMC, invar PMC) :base_core {
+ STRING * const a = VTABLE_get_string(interp, $2);
+ STRING * const b = VTABLE_get_string(interp, $3);
+ STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
+ VTABLE_set_string_native(interp, $1, c);
+}
+
+=back
+
+=cut
+
+###############################################################################
+
+=head1 COPYRIGHT
+
+Copyright (C) 2001-2010, Parrot Foundation.
+
+=head1 LICENSE
+
+This program is free software. It is subject to the same license
+as the Parrot interpreter itself.
+
+=cut
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Copied: branches/gsoc_threads/src/dynoplibs/debug.ops (from r47544, trunk/src/dynoplibs/debug.ops)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/src/dynoplibs/debug.ops Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/src/dynoplibs/debug.ops)
@@ -0,0 +1,146 @@
+/*
+ * $Id$
+ * Copyright (C) 2002-2008, Parrot Foundation.
+ */
+
+/*
+** debug.ops
+*/
+
+=head1 NAME
+
+debug.ops - Debugging Opcodes
+
+=cut
+
+=head1 DESCRIPTION
+
+Parrot debugger
+
+=cut
+
+=head1 HISTORY
+
+Initial version by Daniel Grunblatt on 2002.5.19
+
+=cut
+
+###############################################################################
+
+=head2 Parrot debug operations
+
+=over 4
+
+=cut
+
+########################################
+
+=item B<debug_init>()
+
+Init the Parrot debugger, must be called before any other debug op.
+
+=cut
+
+op debug_init() :base_debug {
+ Parrot_debugger_init(interp);
+}
+
+########################################
+
+=item B<debug_load>(inconst STR)
+
+Load a Parrot source file for the current program.
+
+=cut
+
+op debug_load(inconst STR) :base_debug {
+ Parrot_debugger_load(interp, $1);
+}
+
+########################################
+
+=item B<debug_break>()
+
+Break execution and drop into the debugger.
+If we are already into the debugger and is the first time we are
+called set a breakpoint.
+
+When you re run/continue the program begin debugged it will pay
+no attention to the debug ops.
+
+=cut
+
+op debug_break() :base_debug {
+ Parrot_debugger_break(interp, cur_opcode);
+}
+
+########################################
+
+=item B<debug_print>()
+
+Print all the Parrot registers at once.
+
+=cut
+
+op debug_print() :base_debug {
+ if (!interp->pdb) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_INVALID_OPERATION,
+ "Initialize debugger with debug_init before using debug_print");
+ goto ADDRESS(handler);
+ }
+
+ if (!(interp->pdb->state & PDB_BREAK)) {
+ PDB_print(interp, "I");
+ PDB_print(interp, "N");
+ PDB_print(interp, "S");
+ PDB_print(interp, "P");
+ }
+}
+
+=item B<backtrace>()
+
+Print a backtrace.
+
+=cut
+
+op backtrace() :base_debug {
+ PDB_backtrace(interp);
+}
+
+#######################################
+
+=item B<getline>(out INT)
+
+Get the current line number.
+
+=cut
+
+inline op getline(out INT) {
+ Parrot_Context_info info;
+ Parrot_Context_get_info(interp, CURRENT_CONTEXT(interp), &info);
+ $1 = info.line;
+}
+
+=item B<getfile>(out STR)
+
+Get the name of the current file.
+
+=cut
+
+inline op getfile(out STR) {
+ Parrot_Context_info info;
+ Parrot_Context_get_info(interp, CURRENT_CONTEXT(interp), &info);
+ $1 = info.file;
+}
+
+=back
+
+=cut
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Modified: branches/gsoc_threads/src/dynoplibs/deprecated.ops
==============================================================================
--- branches/gsoc_threads/src/dynoplibs/deprecated.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/dynoplibs/deprecated.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -30,25 +30,25 @@
=cut
-op exchange(inout INT, inout INT) :base_core {
+op exchange(inout INT, inout INT) :deprecated {
const INTVAL temp = $1;
$1 = $2;
$2 = temp;
}
-op exchange(inout PMC, inout PMC) :base_core {
+op exchange(inout PMC, inout PMC) :deprecated {
PMC * const temp = $1;
$1 = $2;
$2 = temp;
}
-op exchange(inout NUM, inout NUM) :base_core {
+op exchange(inout NUM, inout NUM) :deprecated {
FLOATVAL temp = $1;
$1 = $2;
$2 = temp;
}
-op exchange(inout STR, inout STR) :base_core {
+op exchange(inout STR, inout STR) :deprecated {
STRING * const temp = $1;
$1 = $2;
$2 = temp;
@@ -62,7 +62,7 @@
=cut
-inline op setp_ind(in INT, invar PMC) :base_ref {
+inline op setp_ind(in INT, invar PMC) :deprecated {
if ($1 < 0 || $1 >= NUM_REGISTERS)
PANIC(interp, "Out of bound register access");
REG_PMC(interp, $1) = $2;
@@ -76,7 +76,7 @@
=cut
-inline op setn_ind(in INT, in NUM) :base_ref {
+inline op setn_ind(in INT, in NUM) :deprecated {
if ($1 < 0 || $1 >= NUM_REGISTERS)
PANIC(interp, "Out of bound register access");
REG_NUM(interp, $1) = $2;
@@ -90,7 +90,7 @@
=cut
-inline op sets_ind(in INT, in STR) :base_ref {
+inline op sets_ind(in INT, in STR) :deprecated {
if ($1 < 0 || $1 >= NUM_REGISTERS)
PANIC(interp, "Out of bound register access");
REG_STR(interp, $1) = $2;
@@ -104,7 +104,7 @@
=cut
-inline op seti_ind(in INT, in INT) :base_ref {
+inline op seti_ind(in INT, in INT) :deprecated {
if ($1 < 0 || $1 >= NUM_REGISTERS)
PANIC(interp, "Out of bound register access");
REG_INT(interp, $1) = $2;
@@ -128,19 +128,19 @@
=cut
-inline op cleari() :base_core {
+inline op cleari() :deprecated {
Parrot_clear_i(interp);
}
-inline op clearn() :base_core {
+inline op clearn() :deprecated {
Parrot_clear_n(interp);
}
-inline op clears() :base_core {
+inline op clears() :deprecated {
Parrot_clear_s(interp);
}
-inline op clearp() :base_core {
+inline op clearp() :deprecated {
Parrot_clear_p(interp);
}
Copied: branches/gsoc_threads/src/dynoplibs/io.ops (from r47544, trunk/src/dynoplibs/io.ops)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/src/dynoplibs/io.ops Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/src/dynoplibs/io.ops)
@@ -0,0 +1,342 @@
+/*
+ * $Id$
+ * Copyright (C) 2010, Parrot Foundation.
+** io.ops
+*/
+
+=head1 NAME
+
+io.ops - Extended I/O Dynops
+
+=head1 DESCRIPTION
+
+A richer I/O API than that available in core Parrot.
+
+=over 4
+
+=cut
+
+BEGIN_OPS_PREAMBLE
+#include "../io/io_private.h"
+END_OPS_PREAMBLE
+
+##########################################
+
+=item B<stat>(out INT, in STR, in INT)
+
+=item B<stat>(out INT, in INT, in INT)
+
+Stat the file. Return stat element $3 for file $2 into $1. The queryable
+items currently are:
+
+ EXISTS 0
+ FILESIZE 1
+ ISDIR 2
+ ISDEV 3
+ CREATETIME 4 (Time file was created)
+ ACCESSTIME 5 (Time file was last accessed)
+ MODIFYTIME 6 (Time file data was changed)
+ CHANGETIME 7 (Time file metadata was changed)
+ BACKUPTIME 8 (Time of last backup)
+ UID 9
+ GID 10
+
+
+=cut
+
+op stat(out INT, in STR, in INT) {
+ $1 = Parrot_stat_info_intval(interp, $2, $3);
+}
+
+op stat(out INT, in INT, in INT) {
+ $1 = Parrot_fstat_info_intval(interp, $2, $3);
+}
+
+##########################################
+
+=item B<read>(out STR, in INT)
+
+Read up to N bytes from standard input stream
+
+=item B<read>(out STR, invar PMC, in INT)
+
+Read up to N bytes from IO PMC stream.
+
+=cut
+
+op read(out STR, in INT) :base_io {
+ $1 = Parrot_io_reads(interp, _PIO_STDIN(interp), (size_t)$2);
+}
+
+op read(out STR, invar PMC, in INT) :base_io {
+ $1 = Parrot_io_reads(interp, $2, (size_t)$3);
+}
+
+=item B<readline>(out STR, invar PMC)
+
+Read a line up to EOL from filehandle $2.
+This switches the filehandle to linebuffer-mode.
+
+=cut
+
+inline op readline(out STR, invar PMC) :base_io {
+ $1 = Parrot_io_readline(interp, $2);
+}
+
+##########################################
+
+=item B<printerr>(in INT)
+
+=item B<printerr>(in NUM)
+
+=item B<printerr>(in STR)
+
+=item B<printerr>(invar PMC)
+
+Print $1 to standard error.
+
+=cut
+
+op printerr(in INT) :base_io {
+ Parrot_io_eprintf(interp, INTVAL_FMT, $1);
+}
+
+op printerr(in NUM) :base_io {
+ Parrot_io_eprintf(interp, FLOATVAL_FMT, $1);
+}
+
+op printerr(in STR) :base_io {
+ STRING * const s = $1;
+ if (s && Parrot_str_byte_length(interp, s))
+ Parrot_io_putps(interp, _PIO_STDERR(interp), s);
+}
+
+op printerr(invar PMC) :base_io {
+ PMC * const p = $1;
+ STRING * const s = (VTABLE_get_string(interp, p));
+ if (s)
+ Parrot_io_putps(interp, _PIO_STDERR(interp), s);
+}
+
+##########################################
+
+=item B<seek>(invar PMC, in INT, in INT)
+
+seek:
+Set file position to offset $2 on IO stream $1. 'whence' is
+indicated by the value in $3. The valid values for 'whence' are:
+
+ Value Meaning
+ 0 Seek from the beginning of the file
+ 1 Seek from the current position
+ 2 Seek from the end of the file
+
+[ Note: the above values for 'whence' is just an educated guess
+at this point ]
+
+=item B<seek>(invar PMC, in INT, in INT, in INT)
+
+64bit seek:
+Set file position to offset ($2 << 32 | $3) on IO stream $1. 'whence' is
+indicated by the value in $4. This allows 64-bit seeks with only 32-bit
+INTVALS.
+
+=cut
+
+op seek(invar PMC, in INT, in INT) :base_io {
+ if ($1) {
+ if (Parrot_io_seek(interp, $1, Parrot_io_make_offset($2), $3) < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_PIO_ERROR,
+ "seek failed (32bit)");
+ goto ADDRESS(handler);
+ }
+ }
+}
+
+op seek(invar PMC, in INT, in INT, in INT) :base_io {
+ if ($1) {
+ if (Parrot_io_seek(interp, $1, Parrot_io_make_offset32($2, $3), $4) < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_PIO_ERROR,
+ "seek failed (64bit)");
+ goto ADDRESS(handler);
+ }
+ }
+}
+
+=item B<tell>(out INT, invar PMC)
+
+tell:
+Get the current file position of stream $2 and store it in $1.
+On systems where INTVAL is 32bit the result will be truncated if the
+position is beyond 2 GiB
+
+=item B<tell>(out INT, out INT, invar PMC)
+
+64bit tell:
+Get the current file positon of stream $3 in two parts of 32-bit each
+($1 = pos >> 32, $2 = pos & 0xffffffff).
+
+=cut
+
+op tell(out INT, invar PMC) :base_io {
+ if ($2)
+ $1 = (INTVAL)Parrot_io_tell(interp, $2);
+}
+
+op tell(out INT, out INT, invar PMC) :base_io {
+ if ($3) {
+ PIOOFF_T pos;
+ pos = Parrot_io_tell(interp, $3);
+ $1 = (INTVAL)(pos >> 31);
+ $2 = (INTVAL)(pos & 0xffffffff);
+ }
+}
+
+##########################################
+
+=item B<peek>(out STR)
+
+Returns the next byte from standard input, but does not
+remove it from the stream.
+
+=item B<peek>(out STR, invar PMC)
+
+Reads the next byte from an IO PMC, but does not
+remove it from the stream.
+
+=cut
+
+op peek(out STR) :base_io {
+ STRING ** const s = &$1;
+
+ *s = NULL;
+ if (Parrot_io_peek(interp, _PIO_STDIN(interp), s) < 0) {
+ $1 = STRINGNULL;
+ }
+}
+
+op peek(out STR, invar PMC) :base_io {
+ STRING ** const s = &$1;
+
+ *s = NULL;
+ if (Parrot_io_peek(interp, $2, s) < 0) {
+ $1 = STRINGNULL;
+ }
+}
+
+#########################################
+
+=item B<open>(out PMC, in STR, in STR)
+
+Open URL (file, address, database, in core image) named $2 with
+a mode string in $3 and create an IO object in $1.
+
+The mode consists of a string of characters specified in any order:
+
+ r : read
+ w : write
+ a : append (Note: you must specify "wa", not just "a")
+ p : pipe
+
+=item B<open>(out PMC, in STR)
+
+Open URL (file, address, database, in core image) named $2 with
+read mode and create an IO object in $1.
+
+=cut
+
+inline op open(out PMC, in STR, in STR) :filesys_open {
+ if (STRING_IS_NULL($2) || STRING_IS_NULL($3)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_UNEXPECTED_NULL, "Invalid open");
+ goto ADDRESS(handler);
+ }
+ else {
+ $1 = Parrot_io_open(interp, PMCNULL, $2, $3);
+ PARROT_ASSERT(! PMC_IS_NULL($1));
+ }
+}
+
+inline op open(out PMC, in STR) :filesys_open {
+ if (STRING_IS_NULL($2)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_UNEXPECTED_NULL, "Invalid open");
+ goto ADDRESS(handler);
+ }
+ else {
+ $1 = Parrot_io_open(interp, PMCNULL, $2, NULL);
+ PARROT_ASSERT(! PMC_IS_NULL($1));
+ }
+}
+
+########################################
+
+=item B<close>(invar PMC)
+
+Close IO object $1
+
+=cut
+
+inline op close(invar PMC) :base_io {
+ Parrot_io_close(interp, $1);
+}
+
+########################################
+
+=item B<fdopen>(out PMC, in INT, in STR)
+
+Create ParrotIO object in $1 as a copy of file descriptor $2.
+
+=cut
+
+inline op fdopen(out PMC, in INT, in STR) :filesys_open {
+ $1 = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)$2, $3);
+ if (!$1)
+ $1 = Parrot_pmc_new(interp, enum_class_Undef);
+}
+
+#########################################
+
+=item B<setstdin>(invar PMC)
+
+Sets the standard input for a bare C<read> op to go to the supplied PMC.
+Call C<getstdin> first if you care about retaining the previous PMC.
+
+=item B<setstdout>(invar PMC)
+
+Sets the standard output for a bare C<print> op to go to the supplied PMC.
+Call C<getstdout> first if you care about retaining the previous PMC.
+
+=item B<setstderr>(invar PMC)
+
+Sets the standard error for a bare C<printerr> op to go to the supplied PMC.
+Call C<getstderr> first if you care about retaining the previous PMC.
+
+=cut
+
+inline op setstdin(invar PMC) :base_io {
+ _PIO_STDIN(interp) = $1;
+}
+
+inline op setstdout(invar PMC) :base_io {
+ _PIO_STDOUT(interp) = $1;
+}
+
+inline op setstderr(invar PMC) :base_io {
+ _PIO_STDERR(interp) = $1;
+}
+
+########################################
+
+=back
+
+=cut
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Modified: branches/gsoc_threads/src/dynoplibs/math.ops
==============================================================================
--- branches/gsoc_threads/src/dynoplibs/math.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/dynoplibs/math.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -25,7 +25,169 @@
=cut
-=over
+=head2 General Math
+
+=over 4
+
+=cut
+
+########################################
+
+=item B<cmod>(out INT, in INT, in INT)
+
+=item B<cmod>(invar PMC, invar PMC, in INT)
+
+=item B<cmod>(invar PMC, invar PMC, invar PMC)
+
+NOTE: This "uncorrected mod" algorithm uses the C language's built-in
+mod operator (x % y), which is
+
+ ... the remainder when x is divided by y, and thus is zero
+ when y divides x exactly.
+ ...
+ The direction of truncation for / and the sign of the result
+ for % are machine-dependent for negative operands, as is the
+ action taken on overflow or underflow.
+ -- [1], page 41
+
+Also:
+
+ ... if the second operand is 0, the result is undefined.
+ Otherwise, it is always true that (a/b)*b + a%b is equal to z. If
+ both operands are non-negative, then the remainder is non-
+ negative and smaller than the divisor; if not, it is guaranteed
+ only that the absolute value of the remainder is smaller than
+ the absolute value of the divisor.
+ -- [1], page 205
+
+This op is provided for those who need it (such as speed-sensitive
+applications with heavy use of mod, but using it only with positive
+arguments), but a more mathematically useful mod based on ** floor(x/y)
+and defined with y == 0 is provided by the mod op.
+
+ [1] Brian W. Kernighan and Dennis M. Ritchie, *The C Programming
+ Language*, Second Edition. Prentice Hall, 1988.
+
+If the denominator is zero, a 'Divide by zero' exception is thrown.
+
+=cut
+
+inline op cmod(out INT, in INT, in INT) :base_core {
+ INTVAL den = $3;
+ if ($3 == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");
+ goto ADDRESS(handler);
+ }
+ $1 = $2 % den;
+}
+
+inline op cmod(invar PMC, invar PMC, in INT) :base_core {
+ INTVAL result;
+
+ if ($3 == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");
+ goto ADDRESS(handler);
+ }
+
+ result = VTABLE_get_integer(interp, $2) % $3;
+
+ $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
+ VTABLE_set_integer_native(interp, $1, result);
+}
+
+inline op cmod(invar PMC, invar PMC, invar PMC) :base_core {
+ INTVAL result;
+ INTVAL value = VTABLE_get_integer(interp, $3);
+
+ if (value == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");
+ goto ADDRESS(handler);
+ }
+
+ result = VTABLE_get_integer(interp, $2) % value;
+
+ $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
+ VTABLE_set_integer_native(interp, $1, result);
+}
+
+########################################
+
+=item B<cmod>(out NUM, in NUM, in NUM)
+
+=item B<cmod>(invar PMC, invar PMC, in NUM)
+
+NOTE: This "uncorrected mod" algorithm uses the built-in C math library's
+fmod() function, which computes
+
+ ... the remainder of dividing x by y. The return value is
+ x - n * y, where n is the quotient of x / y, rounded towards
+ zero to an integer.
+ -- fmod() manpage on RedHat Linux 7.0
+
+In addition, fmod() returns
+
+ the remainder, unless y is zero, when the function fails and
+ errno is set.
+
+According to page 251 of [1], the result when y is zero is implementation-
+defined.
+
+This op is provided for those who need it, but a more mathematically
+useful numeric mod based on floor(x/y) instead of truncate(x/y) and
+defined with y == 0 is provided by the mod op.
+
+ [1] Brian W. Kernighan and Dennis M. Ritchie, *The C Programming
+ Language*, Second Edition. Prentice Hall, 1988.
+
+If the denominator is zero, a 'Divide by zero' exception is thrown.
+
+=cut
+
+inline op cmod(out NUM, in NUM, in NUM) :base_core {
+ FLOATVAL den = $3;
+ if (FLOAT_IS_ZERO($3)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");
+ goto ADDRESS(handler);
+ }
+ $1 = fmod($2, den);
+}
+
+inline op cmod(invar PMC, invar PMC, in NUM) :base_core {
+ FLOATVAL result;
+ FLOATVAL value = $3;
+
+ if (FLOAT_IS_ZERO(value)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");
+ goto ADDRESS(handler);
+ }
+
+ result = fmod(VTABLE_get_integer(interp, $2), value);
+
+ $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
+ VTABLE_set_integer_native(interp, $1, (INTVAL) result);
+}
+
+=back
+
+=cut
+
+###############################################################################
+
+=head2 Pseudorandom number operations
+
+These operations perform various pseudorandom number operations.
+
+=over 4
=item B<rand>(out NUM)
@@ -109,6 +271,8 @@
=back
+=cut
+
=head1 COPYRIGHT
Copyright (C) 2001-2009, Parrot Foundation.
Copied: branches/gsoc_threads/src/dynoplibs/sys.ops (from r47544, trunk/src/dynoplibs/sys.ops)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/src/dynoplibs/sys.ops Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/src/dynoplibs/sys.ops)
@@ -0,0 +1,280 @@
+/*
+ * $Id$
+** sys.ops
+*/
+
+=head1 NAME
+
+sys.ops - System Interaction Dynops
+
+=head1 DESCRIPTION
+
+Operations that allow the user to interact with the system.
+
+=over 4
+
+=cut
+
+BEGIN_OPS_PREAMBLE
+
+#ifdef PARROT_HAS_HEADER_SYSUTSNAME
+# include <sys/utsname.h>
+#endif
+
+END_OPS_PREAMBLE
+
+########################################
+
+=item B<gmtime>(out STR, in INT)
+
+Take the integer, which represents GMT epoch-seconds, and turn it into a
+formatted string.
+
+=item B<localtime>(out STR, in INT)
+
+Take the integer, which represents GMT epoch-seconds, and turn it into a
+formatted string. The time is adjusted to localtime before formatting.
+
+=item B<decodetime>(out PMC, in INT)
+
+Take the integer, which represents GMT epoch-seconds, and return an Array
+PMC which represents the decoded time. The array elements are
+(include "tm.pasm" for the constants):
+
+=over 4
+
+=item 0, .TM_SEC
+
+Seconds (0-60)
+
+=item 1, .TM_MIN
+
+Minutes (0-59)
+
+=item 2, .TM_HOUR
+
+Hours (0-23)
+
+=item 3, .TM_MDAY
+
+Day of month (1-31)
+
+=item 4, .TM_MON
+
+Month of year (1-12) (Note, B<actual> month, not month - 1)
+
+=item 5, .TM_YEAR
+
+Year (note, B<actual> year. The year 2004 comes back as 2004, not 104)
+
+=item 6, .TM_WDAY
+
+Day of week. Sunday is day 0
+
+=item 7, .TM_YDAY
+
+Day of year (0-365)
+
+=item 8, .TM_ISDST
+
+Daylight savings/summer time in effect
+
+=back
+
+Timezone name will be GMT and offset will be 0, since the time is taken and
+decoded as GMT.
+
+=item B<decodelocaltime>(out PMC, in INT)
+
+Take the passed in integer, which represents GMT epoch-seconds, and return
+an array as in decodetime. The time is first shifted to localtime before
+decoding.
+
+=cut
+
+op gmtime(out STR, in INT) {
+ struct tm tm;
+ const time_t t = (time_t) $2;
+ char resultbuffer[26];
+ Parrot_gmtime_r(&t, &tm);
+ Parrot_asctime_r(&tm, resultbuffer);
+ $1 = Parrot_str_new(interp, resultbuffer, 25);
+}
+
+op localtime(out STR, in INT) {
+ struct tm tm;
+ const time_t t = (time_t) $2;
+ char resultbuffer[26];
+ Parrot_localtime_r(&t, &tm);
+ Parrot_asctime_r(&tm, resultbuffer);
+ $1 = Parrot_str_new(interp, resultbuffer, 25);
+}
+
+op decodetime(out PMC, in INT) {
+ struct tm tm;
+ const time_t t = (time_t) $2;
+ Parrot_gmtime_r(&t, &tm);
+ $1 = Parrot_tm_to_array(interp, &tm);
+}
+
+op decodelocaltime(out PMC, in INT) {
+ struct tm tm;
+ const time_t t = (time_t) $2;
+ Parrot_localtime_r(&t, &tm);
+ $1 = Parrot_tm_to_array(interp, &tm);
+}
+
+########################################
+
+=item B<sysinfo>(out STR, in INT)
+
+Return system information. The values it returns depends on what you
+ask. They are:
+
+=over 4
+
+=item C<PARROT_INTSIZE> The size of a platform integer
+
+=item C<PARROT_FLOATSIZE> The size of a platform float
+
+=item C<PARROT_POINTERSIZE> The size of a platform pointer (Largest possible data pointer)
+
+=item C<PARROT_INTMAX> The maximum value of a platform integer
+
+=item C<PARROT_INTMIN> The minimum value of a platform integer
+
+=back
+
+=item B<sysinfo>(out INT, in INT)
+
+Return system information. The values it returns depends on what you
+ask. They are:
+
+=over 4
+
+=item C<PARROT_OS> The OS name
+
+This is something like "OS X", "MacOS", "Windows", or "VMS".
+
+=item C<PARROT_OS_VERSION> The OS version string
+
+This is the current (hopefully) OS Version. For OSes that have plain
+version numbers it will be the version number. For OSes that name
+their versions, it will be the version name.
+
+On HP/UX, this may be something like 11.2, while on Windows it may be
+"95", "98", "2000", "NT", "ME", or "XP".
+
+=item C<PARROT_OS_VERSION_NUMBER> The OS version number string
+
+On OSes that don't name themselves, this will be the same as what's
+returned in the OS version string. On OSes that I<do> name themselves,
+this will be a more specific version number. In all cases it is OS
+dependent.
+
+=item C<CPU_ARCH> The CPU architecture
+
+The name of the CPU family, such as "VAX", "Alpha", "PPC", or "x86".
+
+=item C<CPU_TYPE> The CPU model
+
+The model name of the current system's CPU. This is something like
+"EV68", "Athlon", or "Pentium III".
+
+=back
+
+Note that some of these values may be set at Parrot compile time,
+rather than at runtime, if the system has no reliable way to fetch the
+data dynamically, or if there is no way the value can change. Also,
+the value returned may be somewhat misleading--Parrot running under a
+VirtualPC window will report "Windows" as its OS and "x86" as its CPU,
+even if it's really running on an OS X system.
+
+=cut
+
+inline op sysinfo(out STR, in INT) {
+ switch ($2) {
+ case PARROT_OS:
+ $1 = Parrot_str_new_constant(interp, BUILD_OS_NAME);
+ break;
+
+#ifdef PARROT_HAS_HEADER_SYSUTSNAME
+ case PARROT_OS_VERSION:
+ {
+ struct utsname info;
+ if (uname(&info) == 0) {
+ $1 = string_make(interp, info.version, strlen(info.version), "ascii", 0);
+ }
+ }
+ break;
+
+ case PARROT_OS_VERSION_NUMBER:
+ {
+ struct utsname info;
+ if (uname(&info) == 0) {
+ $1 = string_make(interp, info.release, strlen(info.version), "ascii", 0);
+ }
+ }
+ break;
+#endif
+
+ case CPU_ARCH:
+ $1 = string_make(interp, PARROT_CPU_ARCH, sizeof (PARROT_CPU_ARCH) - 1, "ascii", 0);
+ break;
+
+ case CPU_TYPE:
+ default:
+ $1 = string_from_literal(interp, "");
+ break;
+ }
+}
+
+inline op sysinfo(out INT, in INT) {
+ switch ($2) {
+ case PARROT_INTSIZE:
+ $1 = sizeof (INTVAL);
+ break;
+
+ case PARROT_FLOATSIZE:
+ $1 = sizeof (FLOATVAL);
+ break;
+
+ case PARROT_POINTERSIZE:
+ $1 = sizeof (void *);
+ break;
+
+ case PARROT_INTMIN:
+ $1 = PARROT_INTVAL_MIN;
+ break;
+
+ case PARROT_INTMAX:
+ $1 = PARROT_INTVAL_MAX;
+ break;
+
+ default:
+ $1 = -1;
+ break;
+ }
+}
+
+###############################################################################
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright (C) 2010, Parrot Foundation.
+
+=head1 LICENSE
+
+This program is free software. It is subject to the same license
+as the Parrot interp itself.
+
+=cut
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Copied: branches/gsoc_threads/src/dynoplibs/trans.ops (from r47544, trunk/src/dynoplibs/trans.ops)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/src/dynoplibs/trans.ops Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/src/dynoplibs/trans.ops)
@@ -0,0 +1,320 @@
+/*
+ * $Id$
+ * trans.ops
+ */
+
+=head1 NAME
+
+trans.ops - Transcendental Opcodes
+
+=head1 DESCRIPTION
+
+Addition library of operations to perform various transcendental operations such
+as logarithmics and trigonometrics.
+
+To use this library of ops, add this directive to your PIR:
+
+ .loadlib 'trans_ops'
+
+=over 4
+
+=cut
+
+########################################
+
+=item B<acos>(out NUM, in NUM)
+
+Set $1 to the arc cosine (in radians) of $2.
+
+=cut
+
+inline op acos(out NUM, in NUM) :base_math {
+ $1 = acos((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<asec>(out NUM, in NUM)
+
+Set $1 to the arc secant (in radians) of $2.
+
+=cut
+
+inline op asec(out NUM, in NUM) :base_math {
+ $1 = acos(((FLOATVAL)1) / ((FLOATVAL)$2));
+}
+
+########################################
+
+
+=item B<asin>(out NUM, in NUM)
+
+Set $1 to the arc sine (in radians) of $2.
+
+=cut
+
+inline op asin(out NUM, in NUM) :base_math {
+ $1 = asin((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<atan>(out NUM, in NUM)
+
+=item B<atan>(out NUM, in NUM, in NUM)
+
+The two-argument versions set $1 to the arc tangent (in radians) of $2.
+
+The three-argument versions set $1 to the arc tangent (in radians) of
+$2 / $3, taking account of the signs of the arguments in determining the
+quadrant of the result.
+
+=cut
+
+inline op atan(out NUM, in NUM) :base_math {
+ $1 = atan((FLOATVAL)$2);
+}
+
+inline op atan(out NUM, in NUM, in NUM) :base_math {
+ $1 = atan2((FLOATVAL)$2, (FLOATVAL)$3);
+}
+
+########################################
+
+=item B<cos>(out NUM, in NUM)
+
+Set $1 to the cosine of $2 (given in radians).
+
+=cut
+
+inline op cos(out NUM, in NUM) :base_math {
+ $1 = cos((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<cosh>(out NUM, in NUM)
+
+Set $1 to the hyperbolic cosine of $2 (given in radians).
+
+=cut
+
+inline op cosh(out NUM, in NUM) :base_math {
+ $1 = cosh((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<exp>(out NUM, in NUM)
+
+Set $1 to I<e> raised to the power $2. I<e> is the base of the natural
+logarithm.
+
+=cut
+
+inline op exp(out NUM, in NUM) :base_math {
+ $1 = exp((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<ln>(out NUM, in NUM)
+
+Set $1 to the natural (base I<e>) logarithm of $2.
+
+=cut
+
+inline op ln(out NUM, in NUM) :base_math {
+ $1 = log((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<log10>(out NUM, in NUM)
+
+Set $1 to the base 10 logarithm of $2.
+
+=cut
+
+inline op log10(out NUM, in NUM) :base_math {
+ $1 = log10((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<log2>(out NUM, in NUM)
+
+Set $1 to the base 2 logarithm of $2.
+
+=cut
+
+op log2(out NUM, in NUM) :base_math {
+ FLOATVAL temp = log((FLOATVAL)2.0);
+ $1 = log((FLOATVAL)$2) / temp;
+}
+
+########################################
+
+=item B<sec>(out NUM, in NUM)
+
+Set $1 to the secant of $2 (given in radians).
+
+=cut
+
+inline op sec(out NUM, in NUM) :base_math {
+ $1 = ((FLOATVAL)1) / cos((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<sech>(out NUM, in NUM)
+
+Set $1 to the hyperbolic secant of $2 (given in radians).
+
+=cut
+
+inline op sech(out NUM, in NUM) :base_math {
+ $1 = ((FLOATVAL)1) / cosh((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<sin>(out NUM, in NUM)
+
+Set $1 to the sine of $2 (given in radians).
+
+=cut
+
+inline op sin(out NUM, in NUM) :base_math {
+ $1 = sin((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<sinh>(out NUM, in NUM)
+
+Set $1 to the hyperbolic sine of $2 (given in radians).
+
+=cut
+
+inline op sinh(out NUM, in NUM) :base_math {
+ $1 = sinh((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<tan>(out NUM, in NUM)
+
+Set $1 to the tangent of $2 (given in radians).
+
+=cut
+
+inline op tan(out NUM, in NUM) :base_math {
+ $1 = tan((FLOATVAL)$2);
+}
+
+########################################
+
+=item B<tanh>(out NUM, in NUM)
+
+Set $1 to the hyperbolic tangent of $2 (given in radians).
+
+=cut
+
+inline op tanh(out NUM, in NUM) :base_math {
+ $1 = tanh((FLOATVAL)$2);
+}
+
+=item B<pow>(out NUM, in NUM, in NUM)
+
+=item B<pow>(out NUM, in NUM, in INT)
+
+=item B<pow>(invar PMC, invar PMC, invar PMC)
+
+=item B<pow>(invar PMC, invar PMC, in INT)
+
+=item B<pow>(invar PMC, invar PMC, in NUM)
+
+Set $1 to $2 raised to the power $3.
+
+=cut
+
+inline op pow(out NUM, in NUM, in NUM) :base_core {
+ $1 = pow((FLOATVAL)$2, (FLOATVAL)$3);
+}
+
+inline op pow(invar PMC, invar PMC, invar PMC) :base_core {
+ const FLOATVAL a = VTABLE_get_number(interp, $2);
+ const FLOATVAL b = VTABLE_get_number(interp, $3);
+ const FLOATVAL c = pow(a, b);
+ if (PMC_IS_NULL($1))
+ $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
+ VTABLE_set_number_native(interp, $1, c);
+}
+
+inline op pow(invar PMC, invar PMC, in INT) :base_core {
+ const FLOATVAL a = VTABLE_get_number(interp, $2);
+ const FLOATVAL b = (FLOATVAL)$3;
+ const FLOATVAL c = pow(a, b);
+ if (PMC_IS_NULL($1))
+ $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
+ VTABLE_set_number_native(interp, $1, c);
+}
+
+inline op pow(invar PMC, invar PMC, in NUM) :base_core {
+ const FLOATVAL a = VTABLE_get_number(interp, $2);
+ const FLOATVAL c = pow(a, $3);
+ if (PMC_IS_NULL($1))
+ $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ else
+ $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
+ VTABLE_set_number_native(interp, $1, c);
+}
+
+inline op pow(out NUM, in NUM, in INT) :base_core {
+ FLOATVAL n2 = $2;
+ FLOATVAL res = 1.0;
+ INTVAL e = $3;
+ int s = 1;
+ if (e != 0) {
+ if (e < 0) {
+ s = -1;
+ e = -e;
+ }
+ }
+ while (e) {
+ if (e & 1) {
+ res *= n2;
+ }
+ n2 *= n2;
+ e >>= 1;
+ }
+ if (s < 0) {
+ res = 1.0/res;
+ }
+ $1 = res;
+}
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright (C) 2010-2010, Parrot Foundation.
+
+=head1 LICENSE
+
+This program is free software. It is subject to the same license
+as the Parrot interpreter itself.
+
+=cut
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Modified: branches/gsoc_threads/src/embed.c
==============================================================================
--- branches/gsoc_threads/src/embed.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/embed.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -281,6 +281,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_Int
Parrot_test_flag(PARROT_INTERP, Parrot_Int flag)
{
@@ -300,6 +301,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_UInt
Parrot_test_debug(PARROT_INTERP, Parrot_UInt flag)
{
@@ -319,6 +321,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
Parrot_UInt
Parrot_test_trace(PARROT_INTERP, Parrot_UInt flag)
{
Modified: branches/gsoc_threads/src/exceptions.c
==============================================================================
--- branches/gsoc_threads/src/exceptions.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/exceptions.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -68,7 +68,7 @@
long error, ARGIN_NULLOK(STRING *msg))
{
ASSERT_ARGS(Parrot_ex_build_exception)
- PMC *exception = Parrot_pmc_new(interp, enum_class_Exception);
+ PMC * const exception = Parrot_pmc_new(interp, enum_class_Exception);
VTABLE_set_integer_keyed_str(interp, exception, CONST_STRING(interp, "severity"), severity);
VTABLE_set_integer_keyed_str(interp, exception, CONST_STRING(interp, "type"), error);
@@ -206,7 +206,13 @@
{
ASSERT_ARGS(Parrot_ex_throw_from_op)
opcode_t *address;
- PMC * const handler = Parrot_cx_find_handler_local(interp, exception);
+ PMC *handler;
+
+ /* Note the thrower. */
+ VTABLE_set_attr_str(interp, exception, CONST_STRING(interp, "thrower"), CURRENT_CONTEXT(interp));
+
+ /* Locate the handler, if there is one. */
+ handler = Parrot_cx_find_handler_local(interp, exception);
if (PMC_IS_NULL(handler)) {
STRING * const message = VTABLE_get_string(interp, exception);
const INTVAL severity = VTABLE_get_integer_keyed_str(interp, exception, CONST_STRING(interp, "severity"));
@@ -354,10 +360,8 @@
}
/* Note the thrower.
- * XXX TT #596 - pass in current context instead when we have context PMCs. */
- /* Don't split line. It will break CONST_STRING handling */
- VTABLE_set_attr_str(interp, exception, CONST_STRING(interp, "thrower"), Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp)));
-
+ * Don't split line. It will break CONST_STRING handling. */
+ VTABLE_set_attr_str(interp, exception, CONST_STRING(interp, "thrower"), CURRENT_CONTEXT(interp));
/* it's a C exception handler */
if (PObj_get_FLAGS(handler) & SUB_FLAG_C_HANDLER) {
@@ -680,9 +684,9 @@
*/
+PARROT_EXPORT
PARROT_DOES_NOT_RETURN
PARROT_COLD
-PARROT_EXPORT
void
do_panic(NULLOK_INTERP, ARGIN_NULLOK(const char *message),
ARGIN_NULLOK(const char *file), unsigned int line)
Modified: branches/gsoc_threads/src/gc/gc_private.h
==============================================================================
--- branches/gsoc_threads/src/gc/gc_private.h Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/gc/gc_private.h Thu Jun 10 21:09:12 2010 (r47545)
@@ -352,7 +352,7 @@
ARGMOD(Memory_Pools *mem_pools),
int flag,
ARGIN_NULLOK(void *arg),
- ARGIN(pool_iter_fn func))
+ NOTNULL(pool_iter_fn func))
__attribute__nonnull__(1)
__attribute__nonnull__(2)
__attribute__nonnull__(5)
Modified: branches/gsoc_threads/src/gc/mark_sweep.c
==============================================================================
--- branches/gsoc_threads/src/gc/mark_sweep.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/gc/mark_sweep.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -840,7 +840,7 @@
header_pools_iterate_callback(PARROT_INTERP,
ARGMOD(Memory_Pools *mem_pools),
int flag, ARGIN_NULLOK(void *arg),
- ARGIN(pool_iter_fn func))
+ NOTNULL(pool_iter_fn func))
{
ASSERT_ARGS(header_pools_iterate_callback)
Modified: branches/gsoc_threads/src/hash.c
==============================================================================
--- branches/gsoc_threads/src/hash.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/hash.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -375,7 +375,7 @@
*/
PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
size_t
key_hash_int(SHIM_INTERP, ARGIN_NULLOK(const void *value), size_t seed)
{
@@ -396,7 +396,7 @@
*/
PARROT_WARN_UNUSED_RESULT
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
int
int_compare(SHIM_INTERP, ARGIN_NULLOK(const void *a), ARGIN_NULLOK(const void *b))
{
@@ -1121,8 +1121,7 @@
*/
void
-parrot_chash_destroy_values(PARROT_INTERP, ARGMOD(Hash *hash),
- NOTNULL(value_free func))
+parrot_chash_destroy_values(PARROT_INTERP, ARGMOD(Hash *hash), NOTNULL(value_free func))
{
ASSERT_ARGS(parrot_chash_destroy_values)
UINTVAL i;
Modified: branches/gsoc_threads/src/interp/inter_misc.c
==============================================================================
--- branches/gsoc_threads/src/interp/inter_misc.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/interp/inter_misc.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -27,10 +27,6 @@
#include "parrot/has_header.h"
-#ifdef PARROT_HAS_HEADER_SYSUTSNAME
-# include <sys/utsname.h>
-#endif
-
/* HEADERIZER HFILE: include/parrot/interpreter.h */
/*
@@ -169,7 +165,7 @@
Parrot_compile_file(PARROT_INTERP, ARGIN(const char *fullname), ARGOUT(STRING **error))
{
ASSERT_ARGS(Parrot_compile_file)
- return IMCC_compile_file_s(interp, fullname, error);
+ return imcc_compile_file(interp, fullname, error);
}
/*
@@ -365,105 +361,6 @@
}
/*
-
-=item C<INTVAL sysinfo_i(PARROT_INTERP, INTVAL info_wanted)>
-
-Returns the system info.
-
-C<info_wanted> is one of:
-
- PARROT_INTSIZE
- PARROT_FLOATSIZE
- PARROT_POINTERSIZE
- PARROT_INTMAX
- PARROT_INTMIN
-
-In unknown info is requested then -1 is returned.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-INTVAL
-sysinfo_i(SHIM_INTERP, INTVAL info_wanted)
-{
- ASSERT_ARGS(sysinfo_i)
- switch (info_wanted) {
- case PARROT_INTSIZE:
- return sizeof (INTVAL);
- case PARROT_FLOATSIZE:
- return sizeof (FLOATVAL);
- case PARROT_POINTERSIZE:
- return sizeof (void *);
- case PARROT_INTMIN:
- return PARROT_INTVAL_MIN;
- case PARROT_INTMAX:
- return PARROT_INTVAL_MAX;
- default:
- return -1;
- }
-}
-
-/*
-
-=item C<STRING * sysinfo_s(PARROT_INTERP, INTVAL info_wanted)>
-
-Returns the system info string.
-
-C<info_wanted> is one of:
-
- PARROT_OS
- PARROT_OS_VERSION
- PARROT_OS_VERSION_NUMBER
- CPU_ARCH
- CPU_TYPE
-
-If unknown info is requested then an empty string is returned.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-STRING *
-sysinfo_s(PARROT_INTERP, INTVAL info_wanted)
-{
- ASSERT_ARGS(sysinfo_s)
- switch (info_wanted) {
- case PARROT_OS:
- return Parrot_str_new_constant(interp, BUILD_OS_NAME);
- case PARROT_OS_VERSION:
-#ifdef PARROT_HAS_HEADER_SYSUTSNAME
- {
- struct utsname info;
- if (uname(&info) == 0) {
- return string_make(interp, info.version, strlen(info.version), "ascii", 0);
- }
- }
-#endif
- break;
- case PARROT_OS_VERSION_NUMBER:
-#ifdef PARROT_HAS_HEADER_SYSUTSNAME
- {
- struct utsname info;
- if (uname(&info) == 0) {
- return string_make(interp, info.release, strlen(info.version), "ascii", 0);
- }
- }
-#endif
- break;
- case CPU_ARCH:
- return string_make(interp, PARROT_CPU_ARCH, sizeof (PARROT_CPU_ARCH) - 1, "ascii", 0);
- case CPU_TYPE:
- default:
- break;
- }
- return CONST_STRING(interp, "");
-}
-
-/*
* Local variables:
* c-file-style: "parrot"
* End:
Modified: branches/gsoc_threads/src/io/api.c
==============================================================================
--- branches/gsoc_threads/src/io/api.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/io/api.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -888,6 +888,7 @@
*/
+PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PIOOFF_T
Parrot_io_make_offset32(INTVAL hi, INTVAL lo)
Modified: branches/gsoc_threads/src/library.c
==============================================================================
--- branches/gsoc_threads/src/library.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/library.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -809,6 +809,7 @@
ASSERT_ARGS(Parrot_get_runtime_prefix)
char * const env = Parrot_getenv(interp, CONST_STRING(interp, "PARROT_RUNTIME"));
+ Parrot_warn_deprecated(interp, "Parrot_get_runtime_prefix is deprecated TT #1191");
if (env)
return env;
else {
Modified: branches/gsoc_threads/src/longopt.c
==============================================================================
--- branches/gsoc_threads/src/longopt.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/longopt.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2007, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -25,6 +25,7 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+PARROT_WARN_UNUSED_RESULT
static int longopt_get_longopt(PARROT_INTERP,
int argc,
ARGIN(const char* argv[]),
@@ -36,6 +37,7 @@
__attribute__nonnull__(5)
FUNC_MODIFIES(* info_buf);
+PARROT_WARN_UNUSED_RESULT
static int longopt_get_shortopt(PARROT_INTERP,
int argc,
ARGIN(const char* argv[]),
@@ -64,6 +66,57 @@
/*
+=item C<const struct longopt_opt_decl * Parrot_cmd_options(void)>
+
+Set up the const struct declaration for cmd_options
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+PARROT_CONST_FUNCTION
+const struct longopt_opt_decl *
+Parrot_cmd_options(void)
+{
+ ASSERT_ARGS(Parrot_cmd_options)
+ static const struct longopt_opt_decl cmd_options[] = {
+ { '.', '.', (OPTION_flags)0, { "--wait" } },
+ { 'D', 'D', OPTION_optional_FLAG, { "--parrot-debug" } },
+ { 'E', 'E', (OPTION_flags)0, { "--pre-process-only" } },
+ { 'G', 'G', (OPTION_flags)0, { "--no-gc" } },
+ { '\0', OPT_HASH_SEED, OPTION_required_FLAG, { "--hash-seed" } },
+ { 'I', 'I', OPTION_required_FLAG, { "--include" } },
+ { 'L', 'L', OPTION_required_FLAG, { "--library" } },
+ { 'O', 'O', OPTION_optional_FLAG, { "--optimize" } },
+ { 'R', 'R', OPTION_required_FLAG, { "--runcore" } },
+ { 'g', 'g', OPTION_required_FLAG, { "--gc" } },
+ { 'V', 'V', (OPTION_flags)0, { "--version" } },
+ { 'X', 'X', OPTION_required_FLAG, { "--dynext" } },
+ { '\0', OPT_DESTROY_FLAG, (OPTION_flags)0,
+ { "--leak-test", "--destroy-at-end" } },
+ { '\0', OPT_GC_DEBUG, (OPTION_flags)0, { "--gc-debug" } },
+ { 'a', 'a', (OPTION_flags)0, { "--pasm" } },
+ { 'c', 'c', (OPTION_flags)0, { "--pbc" } },
+ { 'd', 'd', OPTION_optional_FLAG, { "--imcc-debug" } },
+ { '\0', OPT_HELP_DEBUG, (OPTION_flags)0, { "--help-debug" } },
+ { 'h', 'h', (OPTION_flags)0, { "--help" } },
+ { 'o', 'o', OPTION_required_FLAG, { "--output" } },
+ { '\0', OPT_PBC_OUTPUT, (OPTION_flags)0, { "--output-pbc" } },
+ { 'r', 'r', (OPTION_flags)0, { "--run-pbc" } },
+ { '\0', OPT_RUNTIME_PREFIX, (OPTION_flags)0, { "--runtime-prefix" } },
+ { 't', 't', OPTION_optional_FLAG, { "--trace" } },
+ { 'v', 'v', (OPTION_flags)0, { "--verbose" } },
+ { 'w', 'w', (OPTION_flags)0, { "--warnings" } },
+ { 'y', 'y', (OPTION_flags)0, { "--yydebug" } },
+ { 0, 0, (OPTION_flags)0, { NULL } }
+ };
+ return cmd_options;
+}
+
+/*
+
=item C<int longopt_get(PARROT_INTERP, int argc, const char* argv[], const
struct longopt_opt_decl options[], struct longopt_opt_info* info_buf)>
@@ -83,6 +136,7 @@
*/
PARROT_EXPORT
+PARROT_WARN_UNUSED_RESULT
int
longopt_get(PARROT_INTERP, int argc, ARGIN(const char* argv[]),
ARGIN(const struct longopt_opt_decl options[]),
@@ -134,6 +188,7 @@
*/
+PARROT_WARN_UNUSED_RESULT
static int
longopt_get_longopt(PARROT_INTERP, int argc, ARGIN(const char* argv[]),
ARGIN(const struct longopt_opt_decl options[]),
@@ -231,6 +286,7 @@
*/
+PARROT_WARN_UNUSED_RESULT
static int
longopt_get_shortopt(PARROT_INTERP, int argc, ARGIN(const char* argv[]),
ARGIN(const struct longopt_opt_decl options[]),
Modified: branches/gsoc_threads/src/main.c
==============================================================================
--- branches/gsoc_threads/src/main.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/main.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -45,17 +45,20 @@
static void Parrot_version(void);
PARROT_CAN_RETURN_NULL
static const char * parseflags(PARROT_INTERP,
- ARGMOD(int *argc),
- ARGMOD(const char **argv[]),
+ int argc,
+ ARGIN(const char *argv[]),
+ ARGOUT(int *pgm_argc),
+ ARGOUT(const char ***pgm_argv),
ARGMOD(Parrot_Run_core_t *core),
ARGMOD(Parrot_trace_flags *trace))
__attribute__nonnull__(1)
- __attribute__nonnull__(2)
__attribute__nonnull__(3)
__attribute__nonnull__(4)
__attribute__nonnull__(5)
- FUNC_MODIFIES(*argc)
- FUNC_MODIFIES(*argv[])
+ __attribute__nonnull__(6)
+ __attribute__nonnull__(7)
+ FUNC_MODIFIES(*pgm_argc)
+ FUNC_MODIFIES(*pgm_argv)
FUNC_MODIFIES(*core)
FUNC_MODIFIES(*trace);
@@ -76,8 +79,9 @@
#define ASSERT_ARGS_Parrot_version __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
#define ASSERT_ARGS_parseflags __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
- , PARROT_ASSERT_ARG(argc) \
, PARROT_ASSERT_ARG(argv) \
+ , PARROT_ASSERT_ARG(pgm_argc) \
+ , PARROT_ASSERT_ARG(pgm_argv) \
, PARROT_ASSERT_ARG(core) \
, PARROT_ASSERT_ARG(trace))
#define ASSERT_ARGS_parseflags_minimal __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
@@ -101,11 +105,13 @@
int
main(int argc, const char *argv[])
{
- int stacktop;
- const char *sourcefile;
- const char *execname;
- Interp *interp;
- int status;
+ int stacktop;
+ const char *sourcefile;
+ const char *execname;
+ Interp *interp;
+ int status;
+ int pir_argc;
+ const char **pir_argv;
Parrot_Run_core_t core = PARROT_SLOW_CORE;
Parrot_trace_flags trace = PARROT_NO_TRACE;
@@ -129,66 +135,28 @@
/* Now initialize interpreter */
initialize_interpreter(interp, (void*)&stacktop);
- imcc_initialize(interp);
/* Parse flags */
- sourcefile = parseflags(interp, &argc, &argv, &core, &trace);
+ sourcefile = parseflags(interp, argc, argv, &pir_argc, &pir_argv, &core, &trace);
Parrot_set_trace(interp, trace);
Parrot_set_run_core(interp, (Parrot_Run_core_t) core);
Parrot_set_executable_name(interp, Parrot_str_new(interp, execname, 0));
- status = imcc_run(interp, sourcefile, argc, argv);
- UNUSED(status);
+ status = imcc_run(interp, sourcefile, argc, argv);
+
+ if (status)
+ imcc_run_pbc(interp, interp->output_file, pir_argc, pir_argv);
/* Clean-up after ourselves */
Parrot_destroy(interp);
Parrot_exit(interp, 0);
}
-#define OPT_GC_DEBUG 128
-#define OPT_DESTROY_FLAG 129
-#define OPT_HELP_DEBUG 130
-#define OPT_PBC_OUTPUT 131
-#define OPT_RUNTIME_PREFIX 132
-#define OPT_HASH_SEED 133
-
#define SET_FLAG(flag) Parrot_set_flag(interp, (flag))
#define SET_DEBUG(flag) Parrot_set_debug(interp, (flag))
#define SET_TRACE(flag) Parrot_set_trace(interp, (flag))
-static struct longopt_opt_decl options[] = {
- { '.', '.', (OPTION_flags)0, { "--wait" } },
- { 'D', 'D', OPTION_optional_FLAG, { "--parrot-debug" } },
- { 'E', 'E', (OPTION_flags)0, { "--pre-process-only" } },
- { 'G', 'G', (OPTION_flags)0, { "--no-gc" } },
- { '\0', OPT_HASH_SEED, OPTION_required_FLAG, { "--hash-seed" } },
- { 'I', 'I', OPTION_required_FLAG, { "--include" } },
- { 'L', 'L', OPTION_required_FLAG, { "--library" } },
- { 'O', 'O', OPTION_optional_FLAG, { "--optimize" } },
- { 'R', 'R', OPTION_required_FLAG, { "--runcore" } },
- { 'g', 'g', OPTION_required_FLAG, { "--gc" } },
- { 'V', 'V', (OPTION_flags)0, { "--version" } },
- { 'X', 'X', OPTION_required_FLAG, { "--dynext" } },
- { '\0', OPT_DESTROY_FLAG, (OPTION_flags)0,
- { "--leak-test", "--destroy-at-end" } },
- { '\0', OPT_GC_DEBUG, (OPTION_flags)0, { "--gc-debug" } },
- { 'a', 'a', (OPTION_flags)0, { "--pasm" } },
- { 'c', 'c', (OPTION_flags)0, { "--pbc" } },
- { 'd', 'd', OPTION_optional_FLAG, { "--imcc-debug" } },
- { '\0', OPT_HELP_DEBUG, (OPTION_flags)0, { "--help-debug" } },
- { 'h', 'h', (OPTION_flags)0, { "--help" } },
- { 'o', 'o', OPTION_required_FLAG, { "--output" } },
- { '\0', OPT_PBC_OUTPUT, (OPTION_flags)0, { "--output-pbc" } },
- { 'r', 'r', (OPTION_flags)0, { "--run-pbc" } },
- { '\0', OPT_RUNTIME_PREFIX, (OPTION_flags)0, { "--runtime-prefix" } },
- { 't', 't', OPTION_optional_FLAG, { "--trace" } },
- { 'v', 'v', (OPTION_flags)0, { "--verbose" } },
- { 'w', 'w', (OPTION_flags)0, { "--warnings" } },
- { 'y', 'y', (OPTION_flags)0, { "--yydebug" } },
- { 0, 0, (OPTION_flags)0, { NULL } }
-};
-
/*
=item C<static int is_all_hex_digits(const char *s)>
@@ -423,8 +391,9 @@
/*
-=item C<static const char * parseflags(PARROT_INTERP, int *argc, const char
-**argv[], Parrot_Run_core_t *core, Parrot_trace_flags *trace)>
+=item C<static const char * parseflags(PARROT_INTERP, int argc, const char
+*argv[], int *pgm_argc, const char ***pgm_argv, Parrot_Run_core_t *core,
+Parrot_trace_flags *trace)>
Parse Parrot's command line for options and set appropriate flags.
@@ -435,26 +404,20 @@
PARROT_CAN_RETURN_NULL
static const char *
parseflags(PARROT_INTERP,
- ARGMOD(int *argc), ARGMOD(const char **argv[]),
+ int argc, ARGIN(const char *argv[]),
+ ARGOUT(int *pgm_argc), ARGOUT(const char ***pgm_argv),
ARGMOD(Parrot_Run_core_t *core), ARGMOD(Parrot_trace_flags *trace))
{
ASSERT_ARGS(parseflags)
struct longopt_opt_info opt = LONGOPT_OPT_INFO_INIT;
int status;
- /* g++ complains if we cast char** to const char** directly. However, nobody
- ever complains if you const to void* first. Sure we lose a certain
- amount of compiler-enforced type safety, but this is a rare occasion
- with a very long explanatory comment. */
- const char ** const _tempargv = (const char **)((void *)*argv);
- if (*argc == 1) {
+ if (argc == 1) {
usage(stderr);
exit(EXIT_SUCCESS);
}
- imcc_start_handling_flags(interp);
-
- while ((status = longopt_get(interp, *argc, _tempargv, options, &opt)) > 0) {
+ while ((status = longopt_get(interp, argc, argv, Parrot_cmd_options(), &opt)) > 0) {
switch (opt.opt_id) {
case 'R':
if (STREQ(opt.opt_arg, "slow") || STREQ(opt.opt_arg, "bounds"))
@@ -544,16 +507,19 @@
Parrot_lib_add_path_from_cstring(interp, opt.opt_arg,
PARROT_LIB_PATH_DYNEXT);
break;
+ case 'w':
+ /* FIXME It's not best way to set warnings... */
+ Parrot_setwarnings(interp, PARROT_WARNINGS_ALL_FLAG);
+ break;
+ case 'o':
+ interp->output_file = opt.opt_arg;
+ break;
+ case OPT_PBC_OUTPUT:
+ if (!interp->output_file)
+ interp->output_file = "-";
default:
- /* Delegate handling of IMCC flags to IMCC */
- if (imcc_handle_flag(interp, &opt, core))
- break;
-
- /* PIRC flags handling goes here */
- fprintf(stderr,
- "main: Invalid flag '%s' used.\n\nhelp: parrot -h\n",
- (*argv)[0]);
- exit(EXIT_FAILURE);
+ /* languages handle their arguments later (after being initialized) */
+ break;
}
}
@@ -564,7 +530,7 @@
}
/* reached the end of the option list and consumed all of argv */
- if (*argc == opt.opt_index) {
+ if (argc == opt.opt_index) {
if (interp->output_file) {
fprintf(stderr, "Missing program name or argument for -o\n");
}
@@ -576,10 +542,10 @@
exit(EXIT_FAILURE);
}
- *argc -= opt.opt_index;
- *argv += opt.opt_index;
+ *pgm_argc = argc - opt.opt_index;
+ *pgm_argv = argv + opt.opt_index;
- return (*argv)[0];
+ return (*pgm_argv)[0];
}
/*
Modified: branches/gsoc_threads/src/oo.c
==============================================================================
--- branches/gsoc_threads/src/oo.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/oo.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -156,6 +156,9 @@
Lookup a class object from a namespace, string, or key PMC.
+TODO: This function is terribly inefficient. It needs to be refactored in a
+major way
+
=cut
*/
@@ -169,51 +172,52 @@
ASSERT_ARGS(Parrot_oo_get_class)
PMC *classobj = PMCNULL;
- if (!PMC_IS_NULL(key)) {
- if (PObj_is_class_TEST(key))
- classobj = key;
- else {
- /* Fast select of behavior based on type of the lookup key */
- switch (key->vtable->base_type) {
- case enum_class_NameSpace:
- classobj = VTABLE_get_class(interp, key);
- break;
- case enum_class_String:
- case enum_class_Key:
- case enum_class_ResizableStringArray:
- {
- PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp,
- interp->HLL_namespace,
- Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
- PMC * const ns = Parrot_get_namespace_keyed(interp,
- hll_ns, key);
+ if (PMC_IS_NULL(key))
+ return PMCNULL;
- if (!PMC_IS_NULL(ns))
- classobj = VTABLE_get_class(interp, ns);
- }
- default:
- break;
+ if (PObj_is_class_TEST(key))
+ classobj = key;
+ else {
+ /* Fast select of behavior based on type of the lookup key */
+ switch (key->vtable->base_type) {
+ case enum_class_NameSpace:
+ classobj = VTABLE_get_class(interp, key);
+ break;
+ case enum_class_String:
+ case enum_class_Key:
+ case enum_class_ResizableStringArray:
+ {
+ PMC * const hll_ns = VTABLE_get_pmc_keyed_int(interp,
+ interp->HLL_namespace,
+ Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp)));
+ PMC * const ns = Parrot_get_namespace_keyed(interp,
+ hll_ns, key);
+
+ if (!PMC_IS_NULL(ns))
+ classobj = VTABLE_get_class(interp, ns);
}
+ default:
+ break;
}
+ }
- /* If the PMCProxy doesn't exist yet for the given key, we look up the
- type ID here and create a new one */
- if (PMC_IS_NULL(classobj)) {
- INTVAL type;
- const INTVAL base_type = key->vtable->base_type;
-
- /* This is a hack! All PMCs should be able to be handled through
- a single codepath, and all of them should be able to avoid
- stringification because it's so imprecise. */
- if (base_type == enum_class_Key
- || base_type == enum_class_ResizableStringArray
- || base_type == enum_class_String)
- type = Parrot_pmc_get_type(interp, key);
- else
- type = Parrot_pmc_get_type_str(interp, VTABLE_get_string(interp, key));
+ /* If the PMCProxy doesn't exist yet for the given key, we look up the
+ type ID here and create a new one */
+ if (PMC_IS_NULL(classobj)) {
+ INTVAL type;
+ const INTVAL base_type = key->vtable->base_type;
+
+ /* This is a hack! All PMCs should be able to be handled through
+ a single codepath, and all of them should be able to avoid
+ stringification because it's so imprecise. */
+ if (base_type == enum_class_Key
+ || base_type == enum_class_ResizableStringArray
+ || base_type == enum_class_String)
+ type = Parrot_pmc_get_type(interp, key);
+ else
+ type = Parrot_pmc_get_type_str(interp, VTABLE_get_string(interp, key));
- classobj = get_pmc_proxy(interp, type);
- }
+ classobj = get_pmc_proxy(interp, type);
}
return classobj;
@@ -264,7 +268,6 @@
/* Now clone attributes list.class. */
cloned_guts = (Parrot_Object_attributes *) PMC_data(cloned);
cloned_guts->_class = obj->_class;
- cloned_guts->attrib_store = NULL; /* XXX Do we need to set ->attrib_store twice? */
cloned_guts->attrib_store = VTABLE_clone(interp, obj->attrib_store);
num_attrs = VTABLE_elements(interp, cloned_guts->attrib_store);
for (i = 0; i < num_attrs; ++i) {
@@ -350,7 +353,8 @@
=item C<PMC * Parrot_oo_get_class_str(PARROT_INTERP, STRING *name)>
-Lookup a class object from a builtin string.
+Lookup a class object from the string C<name>. If the metaobject is found,
+return it. Otherwise, create a new PMCProxy for the type ID number.
=cut
@@ -388,7 +392,7 @@
=item C<PMC * Parrot_oo_newclass_from_str(PARROT_INTERP, STRING *name)>
-Create a new class object from a string name.
+Create a new Class PMC for a new type of the given C<name>.
=cut
@@ -419,7 +423,8 @@
=item C<PMC * Parrot_oo_find_vtable_override_for_class(PARROT_INTERP, PMC
*classobj, STRING *name)>
-Lookup a vtable override in a specific class object.
+Find the vtable override with the specified C<name> in the given C<classobj>
+metaobject.
=cut
Modified: branches/gsoc_threads/src/ops/bit.ops
==============================================================================
--- branches/gsoc_threads/src/ops/bit.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/ops/bit.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -32,6 +32,9 @@
The variant with an appended B<s> like B<bands> work on strings.
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
=over 4
=cut
@@ -40,19 +43,11 @@
=item B<band>(inout INT, in INT)
-=item B<band>(invar PMC, in INT)
-
-=item B<band>(invar PMC, invar PMC)
-
Set the bits of $1 according to the B<and> of the corresponding bits
from $1 and $2.
=item B<band>(out INT, in INT, in INT)
-=item B<band>(invar PMC, invar PMC, in INT)
-
-=item B<band>(invar PMC, invar PMC, invar PMC)
-
Set the bits of $1 according to the B<and> of the corresponding bits
from $2 and $3.
@@ -62,156 +57,19 @@
$1 &= $2;
}
-inline op band(invar PMC, in INT) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $1);
- const INTVAL b = a & $2;
- VTABLE_set_integer_native(interp, $1, b);
-}
-
-inline op band(invar PMC, invar PMC) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $1);
- const INTVAL b = VTABLE_get_integer(interp, $2);
- VTABLE_set_integer_native(interp, $1, a & b);
-}
-
inline op band(out INT, in INT, in INT) :base_core {
$1 = $2 & $3;
}
-inline op band(invar PMC, invar PMC, in INT) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $2);
- VTABLE_set_integer_native(interp, $1, a & $3);
-}
-
-inline op band(invar PMC, invar PMC, invar PMC) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $2);
- const INTVAL b = VTABLE_get_integer(interp, $3);
- VTABLE_set_integer_native(interp, $1, a & b);
-}
-
-=item B<bands>(invar PMC, in STR)
-
-=item B<bands>(invar PMC, invar PMC)
-
-Set the bits of $1 according to the B<and> of the corresponding bits
-from $1 and $2.
-
-=item B<bands>(out STR, in STR, in STR)
-
-=item B<bands>(invar PMC, invar PMC, in STR)
-
-=item B<bands>(invar PMC, invar PMC, invar PMC)
-
-Set the bits of $1 according to the B<and> of the corresponding bits
-from $2 and $3.
-
-=cut
-
-inline op bands(invar PMC, in STR) :base_core {
- STRING * const a = VTABLE_get_string(interp, $1);
- STRING * const b = Parrot_str_bitwise_and(interp, a, $2);
- VTABLE_set_string_native(interp, $1, b);
-}
-
-inline op bands(invar PMC, invar PMC) :base_core {
- STRING * a = VTABLE_get_string(interp, $1);
- STRING * const b = VTABLE_get_string(interp, $2);
- a = Parrot_str_bitwise_and(interp, a, b);
- VTABLE_set_string_native(interp, $1, a);
-}
-
-inline op bands(out STR, in STR, in STR) :base_core {
- $1 = Parrot_str_bitwise_and(interp, $2, $3);
-}
-
-inline op bands(invar PMC, invar PMC, in STR) :base_core {
- STRING * const a = VTABLE_get_string(interp, $2);
- STRING * const b = Parrot_str_bitwise_and(interp, a, $3);
- VTABLE_set_string_native(interp, $1, b);
-}
-
-inline op bands(invar PMC, invar PMC, invar PMC) :base_core {
- STRING * const a = VTABLE_get_string(interp, $2);
- STRING * const b = VTABLE_get_string(interp, $3);
- STRING * const c = Parrot_str_bitwise_and(interp, a, b);
- VTABLE_set_string_native(interp, $1, c);
-}
-
-########################################
-
-=item B<bnot>(inout INT)
-
-=item B<bnot>(invar PMC)
-
-Sets $1 to C<bitwise not> $1 inplace.
-
-=item B<bnot>(out INT, in INT)
-
-=item B<bnot>(out PMC, invar PMC)
-
-=cut
-
-inline op bnot(inout INT) :base_core {
- $1 = ~ $1;
-}
-
-inline op bnot(out INT, in INT) :base_core {
- $1 = ~ $2;
-}
-
-inline op bnot(invar PMC) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $1);
- VTABLE_set_integer_native(interp, $1, ~a);
-}
-
-inline op bnot(out PMC, invar PMC) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $2);
- PMC * const b = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
- VTABLE_set_integer_native(interp, b, ~a);
- $1 = b;
-}
-
-=item B<bnots>(invar PMC)
-
-=item B<bnots>(out STR, in STR)
-
-=item B<bnots>(out PMC, invar PMC)
-
-=cut
-
-inline op bnots(out STR, in STR) :base_core {
- $1 = Parrot_str_bitwise_not(interp, $2);
-}
-
-inline op bnots(invar PMC) :base_core {
- STRING * const a = VTABLE_get_string(interp, $1);
- STRING * const b = Parrot_str_bitwise_not(interp, a);
- VTABLE_set_string_native(interp, $1, b);
-}
-
-inline op bnots(out PMC, invar PMC) :base_core {
- STRING * const a = VTABLE_get_string(interp, $2);
- STRING * const b = Parrot_str_bitwise_not(interp, a);
- VTABLE_set_string_native(interp, $1, b);
-}
-
########################################
=item B<bor>(inout INT, in INT)
-=item B<bor>(invar PMC, in INT)
-
-=item B<bor>(invar PMC, invar PMC)
-
Set the bits of $1 according to the B<or> of the corresponding bits
from $1 and $2.
=item B<bor>(out INT, in INT, in INT)
-=item B<bor>(invar PMC, invar PMC, in INT)
-
-=item B<bor>(invar PMC, invar PMC, invar PMC)
-
Set the bits of $1 according to the B<or> of the corresponding bits
from $2 and $3.
@@ -221,96 +79,18 @@
$1 |= $2;
}
-inline op bor(invar PMC, in INT) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $1);
- VTABLE_set_integer_native(interp, $1, a | $2);
-}
-
-inline op bor(invar PMC, invar PMC) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $1);
- const INTVAL b = VTABLE_get_integer(interp, $2);
- VTABLE_set_integer_native(interp, $1, a | b);
-}
-
inline op bor(out INT, in INT, in INT) :base_core {
$1 = $2 | $3;
}
-inline op bor(invar PMC, invar PMC, in INT) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $2);
- VTABLE_set_integer_native(interp, $1, a | $3);
-}
-
-inline op bor(invar PMC, invar PMC, invar PMC) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $2);
- const INTVAL b = VTABLE_get_integer(interp, $3);
- VTABLE_set_integer_native(interp, $1, a | b);
-}
-
-=item B<bors>(invar PMC, in STR)
-
-=item B<bors>(invar PMC, invar PMC)
-
-Set the bits of $1 according to the B<or> of the corresponding bits
-from $1 and $2.
-
-=item B<bors>(out STR, in STR, in STR)
-
-=item B<bors>(invar PMC, invar PMC, in STR)
-
-=item B<bors>(invar PMC, invar PMC, invar PMC)
-
-Set the bits of $1 according to the B<or> of the corresponding bits
-from $2 and $3.
-
-=cut
-
-inline op bors(invar PMC, in STR) :base_core {
- STRING * const a = VTABLE_get_string(interp, $1);
- STRING * const b = Parrot_str_bitwise_or(interp, a, $2);
- VTABLE_set_string_native(interp, $1, b);
-}
-
-inline op bors(invar PMC, invar PMC) :base_core {
- STRING * const a = VTABLE_get_string(interp, $1);
- STRING * const b = VTABLE_get_string(interp, $2);
- STRING * const c = Parrot_str_bitwise_or(interp, a, b);
- VTABLE_set_string_native(interp, $1, c);
-}
-
-inline op bors(out STR, in STR, in STR) :base_core {
- $1 = Parrot_str_bitwise_or(interp, $2, $3);
-}
-
-inline op bors(invar PMC, invar PMC, in STR) :base_core {
- STRING * const b = VTABLE_get_string(interp, $2);
- STRING * const c = Parrot_str_bitwise_or(interp, b, $3);
- VTABLE_set_string_native(interp, $1, c);
-}
-
-inline op bors(invar PMC, invar PMC, invar PMC) :base_core {
- STRING * const a = VTABLE_get_string(interp, $2);
- STRING * const b = VTABLE_get_string(interp, $3);
- STRING * const c = Parrot_str_bitwise_or(interp, a, b);
- VTABLE_set_string_native(interp, $1, c);
-}
-
########################################
=item B<shl>(inout INT, in INT)
-=item B<shl>(invar PMC, in INT)
-
-=item B<shl>(invar PMC, invar PMC)
-
Shift left $1 by $2 bits.
=item B<shl>(out INT, in INT, in INT)
-=item B<shl>(invar PMC, invar PMC, in INT)
-
-=item B<shl>(invar PMC, invar PMC, invar PMC)
-
Set $1 to the value of $2 shifted left by $3 bits.
=cut
@@ -319,52 +99,18 @@
$1 = bit_shift_left($1, $2);
}
-inline op shl(invar PMC, in INT) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $1);
- const INTVAL b = bit_shift_left(a, $2);
- VTABLE_set_integer_native(interp, $1, b);
-}
-
-inline op shl(invar PMC, invar PMC) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $1);
- const INTVAL b = VTABLE_get_integer(interp, $2);
- const INTVAL c = bit_shift_left(a, b);
- VTABLE_set_integer_native(interp, $1, c);
-}
-
inline op shl(out INT, in INT, in INT) :base_core {
$1 = bit_shift_left($2, $3);
}
-inline op shl(invar PMC, invar PMC, in INT) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $2);
- const INTVAL b = bit_shift_left(a, $3);
- VTABLE_set_integer_native(interp, $1, b);
-}
-
-inline op shl(invar PMC, invar PMC, invar PMC) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $2);
- const INTVAL b = VTABLE_get_integer(interp, $3);
- const INTVAL c = bit_shift_left(a, b);
- VTABLE_set_integer_native(interp, $1, c);
-}
-
########################################
=item B<shr>(inout INT, in INT)
-=item B<shr>(invar PMC, in INT)
-
-=item B<shr>(invar PMC, invar PMC)
-
Shift right $1 by $2 bits.
=item B<shr>(out INT, in INT, in INT)
-=item B<shr>(invar PMC, invar PMC, in INT)
-
-=item B<shr>(invar PMC, invar PMC, invar PMC)
-
Set $1 to the value of $2 shifted right by $3 bits.
=cut
@@ -374,53 +120,19 @@
$1 = bit_shift_left($1, signed_shift);
}
-inline op shr(invar PMC, in INT) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $1);
- const INTVAL b = bit_shift_left(a, -$2);
- VTABLE_set_integer_native(interp, $1, b);
-}
-
-inline op shr(invar PMC, invar PMC) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $1);
- const INTVAL b = VTABLE_get_integer(interp, $2);
- const INTVAL c = bit_shift_left(a, -b);
- VTABLE_set_integer_native(interp, $1, c);
-}
-
inline op shr(out INT, in INT, in INT) :base_core {
const INTVAL signed_shift = -$3;
$1 = bit_shift_left($2, signed_shift);
}
-inline op shr(invar PMC, invar PMC, in INT) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $2);
- const INTVAL c = bit_shift_left(a, -$3);
- VTABLE_set_integer_native(interp, $1, c);
-}
-
-inline op shr(invar PMC, invar PMC, invar PMC) :base_core {
- const INTVAL a = VTABLE_get_integer(interp, $2);
- const INTVAL b = VTABLE_get_integer(interp, $3);
- const INTVAL c = bit_shift_left(a, -b);
- VTABLE_set_integer_native(interp, $1, c);
-}
-
########################################
=item B<lsr>(out INT, in INT)
-=item B<lsr>(invar PMC, in INT)
-
-=item B<lsr>(invar PMC, invar PMC)
-
Shift $1 logically shifted right by $2 bits.
=item B<lsr>(out INT, in INT, in INT)
-=item B<lsr>(invar PMC, invar PMC, in INT)
-
-=item B<lsr>(invar PMC, invar PMC, invar PMC)
-
Set $1 to the value of $2 logically shifted right by $3 bits.
=cut
@@ -431,77 +143,19 @@
$1 = (INTVAL)b;
}
-inline op lsr(invar PMC, in INT) :base_core {
- const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
- const UINTVAL b = a >> $2;
- VTABLE_set_integer_native(interp, $1, (INTVAL)b);
-}
-
-inline op lsr(invar PMC, invar PMC) :base_core {
- const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
- const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $2);
- const UINTVAL c = a >> b;
- VTABLE_set_integer_native(interp, $1, (INTVAL)c);
-}
-
inline op lsr(out INT, in INT, in INT) :base_core {
$1 = (INTVAL)((UINTVAL)$2 >> $3);
}
-inline op lsr(invar PMC, invar PMC, in INT) :base_core {
- const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
- const UINTVAL b = (UINTVAL)$3;
- const UINTVAL c = a >> b;
- VTABLE_set_integer_native(interp, $1, (INTVAL)c);
-}
-
-inline op lsr(invar PMC, invar PMC, invar PMC) :base_core {
- const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
- const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $3);
- const UINTVAL c = a >> b;
- VTABLE_set_integer_native(interp, $3, (INTVAL)c);
-}
-
-=item B<rot>(out INT, in INT, in INT, inconst INT)
-
-Rotate $2 left or right by $3 and place result in $1.
-$4 is the amount of bits to rotate, 32 bit on a 32-bit CPU and 32 or 64
-on a 64-bit CPU. If the rotate count is negative a rotate right by ($3+$4)
-is performed.
-
-=cut
-
-inline op rot(out INT, in INT, in INT, inconst INT) {
- const INTVAL r = $2;
- INTVAL s = $3;
- const INTVAL w = $4;
- INTVAL d, t;
- if (s < 0)
- s += w;
- d = r << s;
- t = w - s;
- t = (INTVAL)((UINTVAL)r >> t);
- d |= t;
- $1 = d;
-}
-
########################################
=item B<bxor>(inout INT, in INT)
-=item B<bxor>(invar PMC, in INT)
-
-=item B<bxor>(invar PMC, invar PMC)
-
Set the bits of $1 according to the B<xor> of the corresponding bits
from $1 and $2.
=item B<bxor>(out INT, in INT, in INT)
-=item B<bxor>(invar PMC, invar PMC, in INT)
-
-=item B<bxor>(invar PMC, invar PMC, invar PMC)
-
Set the bits of $1 according to the B<xor> of the corresponding bits
from $2 and $3.
@@ -511,84 +165,10 @@
$1 ^= $2;
}
-inline op bxor(invar PMC, in INT) :base_core {
- const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
- const UINTVAL b = a ^ $2;
- VTABLE_set_integer_native(interp, $1, (INTVAL)b);
-}
-
-inline op bxor(invar PMC, invar PMC) :base_core {
- const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $1);
- const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $2);
- const UINTVAL c = a ^ b;
- VTABLE_set_integer_native(interp, $1, (INTVAL)c);
-}
-
inline op bxor(out INT, in INT, in INT) :base_core {
$1 = $2 ^ $3;
}
-inline op bxor(invar PMC, invar PMC, in INT) :base_core {
- const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
- const UINTVAL b = a ^ $3;
- VTABLE_set_integer_native(interp, $1, (INTVAL)b);
-}
-
-inline op bxor(invar PMC, invar PMC, invar PMC) :base_core {
- const UINTVAL a = (UINTVAL)VTABLE_get_integer(interp, $2);
- const UINTVAL b = (UINTVAL)VTABLE_get_integer(interp, $3);
- const UINTVAL c = a ^ b;
- VTABLE_set_integer_native(interp, $1, (INTVAL)c);
-}
-
-=item B<bxors>(invar PMC, in STR)
-
-=item B<bxors>(invar PMC, invar PMC)
-
-Set the bits of $1 according to the B<xor> of the corresponding bits
-from $1 and $2.
-
-=item B<bxors>(out STR, in STR, in STR)
-
-=item B<bxors>(invar PMC, invar PMC, in STR)
-
-=item B<bxors>(invar PMC, invar PMC, invar PMC)
-
-Set the bits of $1 according to the B<xor> of the corresponding bits
-from $2 and $3.
-
-=cut
-
-inline op bxors(invar PMC, in STR) :base_core {
- STRING * const a = VTABLE_get_string(interp, $1);
- STRING * const b = Parrot_str_bitwise_xor(interp, a, $2);
- VTABLE_set_string_native(interp, $1, b);
-}
-
-inline op bxors(invar PMC, invar PMC) :base_core {
- STRING * const a = VTABLE_get_string(interp, $1);
- STRING * const b = VTABLE_get_string(interp, $2);
- STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
- VTABLE_set_string_native(interp, $1, c);
-}
-
-inline op bxors(out STR, in STR, in STR) :base_core {
- $1 = Parrot_str_bitwise_xor(interp, $2, $3);
-}
-
-inline op bxors(invar PMC, invar PMC, in STR) :base_core {
- STRING * const a = VTABLE_get_string(interp, $2);
- STRING * const b = Parrot_str_bitwise_xor(interp, a, $3);
- VTABLE_set_string_native(interp, $1, b);
-}
-
-inline op bxors(invar PMC, invar PMC, invar PMC) :base_core {
- STRING * const a = VTABLE_get_string(interp, $2);
- STRING * const b = VTABLE_get_string(interp, $3);
- STRING * const c = Parrot_str_bitwise_xor(interp, a, b);
- VTABLE_set_string_native(interp, $1, c);
-}
-
=back
=cut
Modified: branches/gsoc_threads/src/ops/cmp.ops
==============================================================================
--- branches/gsoc_threads/src/ops/cmp.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/ops/cmp.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -15,6 +15,9 @@
Some of these operations affect control flow directly; others
do not.
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
=cut
###############################################################################
Modified: branches/gsoc_threads/src/ops/core.ops
==============================================================================
--- branches/gsoc_threads/src/ops/core.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/ops/core.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -26,6 +26,9 @@
Core operations are primarily flow control and interpreter
introspection.
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
=cut
# ' for emacs
@@ -379,6 +382,8 @@
PMC * const signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+
if (!PMC_IS_NULL(signature))
Parrot_pcc_set_object(interp, signature, NULL);
interp->current_cont = NEED_CONTINUATION;
@@ -393,6 +398,8 @@
PMC * const signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+
if (!PMC_IS_NULL(signature))
Parrot_pcc_set_object(interp, signature, NULL);
interp->current_cont = $2;
@@ -535,6 +542,7 @@
PARROT_ERRORS_RESULT_COUNT_FLAG);
argc = VTABLE_elements(interp, signature);
+ Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), PMCNULL);
goto OFFSET(argc + 2);
}
@@ -819,7 +827,8 @@
opcode_t *dest;
opcode_t * const ret = expr NEXT();
PMC * const resume = pmc_new(interp, enum_class_Continuation);
- PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, $1, NULL);
+ PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit,
+ CONTROL_EXIT, NULL);
VTABLE_set_pointer(interp, resume, ret);
@@ -1103,7 +1112,7 @@
op sweep(inconst INT) {
if ($1)
- Parrot_gc_mark_and_sweep(interp, 0);
+ Parrot_gc_mark_and_sweep(interp, GC_trace_normal_FLAG);
else
if (Parrot_gc_impatient_pmcs(interp))
Parrot_gc_mark_and_sweep(interp, GC_lazy_FLAG);
Copied: branches/gsoc_threads/src/ops/core_ops.c (from r47544, trunk/src/ops/core_ops.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/src/ops/core_ops.c Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/src/ops/core_ops.c)
@@ -0,0 +1,25182 @@
+
+/* ex: set ro:
+ * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ *
+ * This file is generated automatically from 'src/ops/core.ops' (and possibly other
+ * .ops files). by ops2c.nqp.
+ *
+ * Any changes made here will be lost! To regenerate this file after making
+ * changes to any ops, use the bootstap-ops makefile target.
+ *
+ */
+
+#include "parrot/oplib/core_ops.h"
+#include "pmc/pmc_parrotlibrary.h"
+#include "pmc/pmc_callcontext.h"
+
+
+/* defines - Ops::Trans::C */
+#undef CONST
+#define REL_PC ((size_t)(cur_opcode - (opcode_t *)interp->code->base.data))
+#define CUR_OPCODE cur_opcode
+#define IREG(i) (CUR_CTX->bp.regs_i[cur_opcode[i]])
+#define NREG(i) (CUR_CTX->bp.regs_n[-1L - cur_opcode[i]])
+#define PREG(i) (CUR_CTX->bp_ps.regs_p[-1L - cur_opcode[i]])
+#define SREG(i) (CUR_CTX->bp_ps.regs_s[cur_opcode[i]])
+#define CONST(i) Parrot_pcc_get_constants(interp, interp->ctx)[cur_opcode[i]]
+
+static int get_op(PARROT_INTERP, const char * name, int full);
+
+
+
+
+#include "parrot/dynext.h"
+#include "parrot/embed.h"
+#include "parrot/runcore_api.h"
+#include "pmc/pmc_continuation.h"
+#include "pmc/pmc_parrotlibrary.h"
+
+
+ /* Signed shift operator that is compatible with PMC shifts. This is
+ * guaranteed to produce the same result as bitwise_left_shift_internal modulo
+ * word size, ignoring the fact that Parrot integers are always signed. This
+ * usually gives the same answer regardless whether you shift PMC operands and
+ * then assign to an I-reg, or move the operands to I-regs and do the shift
+ * there -- except when the true result is between 2^{w-1} and 2^w (where w is
+ * the word size), in which case the high order bit is taken as the sign,
+ * giving a truncated result that is 2^w lower.
+ */
+#define bit_shift_left(number, bits) \
+ ((bits) >= 8*INTVAL_SIZE ? 0 \
+ : (bits) >= 0 ? (number) << (bits) \
+ : (bits) > -8*INTVAL_SIZE ? (number) >> -(bits) \
+ : 0)
+
+
+#include "../io/io_private.h"
+
+
+#if PARROT_HAS_ICU
+# include <unicode/uchar.h>
+#endif
+
+
+
+INTVAL core_numops = 1084;
+
+/*
+** Op Function Table:
+*/
+
+static op_func_t core_op_func_table[1084] = {
+ Parrot_end, /* 0 */
+ Parrot_noop, /* 1 */
+ Parrot_check_events, /* 2 */
+ Parrot_check_events__, /* 3 */
+ Parrot_wrapper__, /* 4 */
+ Parrot_load_bytecode_s, /* 5 */
+ Parrot_load_bytecode_sc, /* 6 */
+ Parrot_load_language_s, /* 7 */
+ Parrot_load_language_sc, /* 8 */
+ Parrot_branch_i, /* 9 */
+ Parrot_branch_ic, /* 10 */
+ Parrot_local_branch_p_i, /* 11 */
+ Parrot_local_branch_p_ic, /* 12 */
+ Parrot_local_return_p, /* 13 */
+ Parrot_jump_i, /* 14 */
+ Parrot_jump_ic, /* 15 */
+ Parrot_enternative, /* 16 */
+ Parrot_if_i_ic, /* 17 */
+ Parrot_if_n_ic, /* 18 */
+ Parrot_if_s_ic, /* 19 */
+ Parrot_if_p_ic, /* 20 */
+ Parrot_unless_i_ic, /* 21 */
+ Parrot_unless_n_ic, /* 22 */
+ Parrot_unless_s_ic, /* 23 */
+ Parrot_unless_p_ic, /* 24 */
+ Parrot_invokecc_p, /* 25 */
+ Parrot_invoke_p_p, /* 26 */
+ Parrot_yield, /* 27 */
+ Parrot_tailcall_p, /* 28 */
+ Parrot_returncc, /* 29 */
+ Parrot_capture_lex_p, /* 30 */
+ Parrot_newclosure_p_p, /* 31 */
+ Parrot_set_args_pc, /* 32 */
+ Parrot_get_params_pc, /* 33 */
+ Parrot_set_returns_pc, /* 34 */
+ Parrot_get_results_pc, /* 35 */
+ Parrot_set_result_info_p, /* 36 */
+ Parrot_set_result_info_pc, /* 37 */
+ Parrot_result_info_p, /* 38 */
+ Parrot_set_addr_i_ic, /* 39 */
+ Parrot_set_addr_p_ic, /* 40 */
+ Parrot_set_addr_p_i, /* 41 */
+ Parrot_get_addr_i_p, /* 42 */
+ Parrot_schedule_p, /* 43 */
+ Parrot_addhandler_p, /* 44 */
+ Parrot_push_eh_ic, /* 45 */
+ Parrot_push_eh_p, /* 46 */
+ Parrot_pop_eh, /* 47 */
+ Parrot_throw_p, /* 48 */
+ Parrot_throw_p_p, /* 49 */
+ Parrot_rethrow_p, /* 50 */
+ Parrot_count_eh_i, /* 51 */
+ Parrot_die_s, /* 52 */
+ Parrot_die_sc, /* 53 */
+ Parrot_die_p, /* 54 */
+ Parrot_die_pc, /* 55 */
+ Parrot_die_i_i, /* 56 */
+ Parrot_die_ic_i, /* 57 */
+ Parrot_die_i_ic, /* 58 */
+ Parrot_die_ic_ic, /* 59 */
+ Parrot_exit_i, /* 60 */
+ Parrot_exit_ic, /* 61 */
+ Parrot_debug_i, /* 62 */
+ Parrot_debug_ic, /* 63 */
+ Parrot_bounds_i, /* 64 */
+ Parrot_bounds_ic, /* 65 */
+ Parrot_profile_i, /* 66 */
+ Parrot_profile_ic, /* 67 */
+ Parrot_trace_i, /* 68 */
+ Parrot_trace_ic, /* 69 */
+ Parrot_gc_debug_i, /* 70 */
+ Parrot_gc_debug_ic, /* 71 */
+ Parrot_interpinfo_i_i, /* 72 */
+ Parrot_interpinfo_i_ic, /* 73 */
+ Parrot_interpinfo_p_i, /* 74 */
+ Parrot_interpinfo_p_ic, /* 75 */
+ Parrot_interpinfo_s_i, /* 76 */
+ Parrot_interpinfo_s_ic, /* 77 */
+ Parrot_warningson_i, /* 78 */
+ Parrot_warningson_ic, /* 79 */
+ Parrot_warningsoff_i, /* 80 */
+ Parrot_warningsoff_ic, /* 81 */
+ Parrot_errorson_i, /* 82 */
+ Parrot_errorson_ic, /* 83 */
+ Parrot_errorsoff_i, /* 84 */
+ Parrot_errorsoff_ic, /* 85 */
+ Parrot_runinterp_p_i, /* 86 */
+ Parrot_runinterp_p_ic, /* 87 */
+ Parrot_getinterp_p, /* 88 */
+ Parrot_sweep_ic, /* 89 */
+ Parrot_collect, /* 90 */
+ Parrot_sweepoff, /* 91 */
+ Parrot_sweepon, /* 92 */
+ Parrot_collectoff, /* 93 */
+ Parrot_collecton, /* 94 */
+ Parrot_needs_destroy_p, /* 95 */
+ Parrot_loadlib_p_s, /* 96 */
+ Parrot_loadlib_p_sc, /* 97 */
+ Parrot_loadlib_p_s_p, /* 98 */
+ Parrot_loadlib_p_sc_p, /* 99 */
+ Parrot_loadlib_p_s_pc, /* 100 */
+ Parrot_loadlib_p_sc_pc, /* 101 */
+ Parrot_dlfunc_p_p_s_s, /* 102 */
+ Parrot_dlfunc_p_p_sc_s, /* 103 */
+ Parrot_dlfunc_p_p_s_sc, /* 104 */
+ Parrot_dlfunc_p_p_sc_sc, /* 105 */
+ Parrot_dlvar_p_p_s, /* 106 */
+ Parrot_dlvar_p_p_sc, /* 107 */
+ Parrot_compreg_s_p, /* 108 */
+ Parrot_compreg_sc_p, /* 109 */
+ Parrot_compreg_p_s, /* 110 */
+ Parrot_compreg_p_sc, /* 111 */
+ Parrot_new_callback_p_p_p_s, /* 112 */
+ Parrot_new_callback_p_p_p_sc, /* 113 */
+ Parrot_annotations_p, /* 114 */
+ Parrot_annotations_p_s, /* 115 */
+ Parrot_annotations_p_sc, /* 116 */
+ Parrot_band_i_i, /* 117 */
+ Parrot_band_i_ic, /* 118 */
+ Parrot_band_i_i_i, /* 119 */
+ Parrot_band_i_ic_i, /* 120 */
+ Parrot_band_i_i_ic, /* 121 */
+ Parrot_bor_i_i, /* 122 */
+ Parrot_bor_i_ic, /* 123 */
+ Parrot_bor_i_i_i, /* 124 */
+ Parrot_bor_i_ic_i, /* 125 */
+ Parrot_bor_i_i_ic, /* 126 */
+ Parrot_shl_i_i, /* 127 */
+ Parrot_shl_i_ic, /* 128 */
+ Parrot_shl_i_i_i, /* 129 */
+ Parrot_shl_i_ic_i, /* 130 */
+ Parrot_shl_i_i_ic, /* 131 */
+ Parrot_shr_i_i, /* 132 */
+ Parrot_shr_i_ic, /* 133 */
+ Parrot_shr_i_i_i, /* 134 */
+ Parrot_shr_i_ic_i, /* 135 */
+ Parrot_shr_i_i_ic, /* 136 */
+ Parrot_lsr_i_i, /* 137 */
+ Parrot_lsr_i_ic, /* 138 */
+ Parrot_lsr_i_i_i, /* 139 */
+ Parrot_lsr_i_ic_i, /* 140 */
+ Parrot_lsr_i_i_ic, /* 141 */
+ Parrot_bxor_i_i, /* 142 */
+ Parrot_bxor_i_ic, /* 143 */
+ Parrot_bxor_i_i_i, /* 144 */
+ Parrot_bxor_i_ic_i, /* 145 */
+ Parrot_bxor_i_i_ic, /* 146 */
+ Parrot_eq_i_i_ic, /* 147 */
+ Parrot_eq_ic_i_ic, /* 148 */
+ Parrot_eq_i_ic_ic, /* 149 */
+ Parrot_eq_n_n_ic, /* 150 */
+ Parrot_eq_nc_n_ic, /* 151 */
+ Parrot_eq_n_nc_ic, /* 152 */
+ Parrot_eq_s_s_ic, /* 153 */
+ Parrot_eq_sc_s_ic, /* 154 */
+ Parrot_eq_s_sc_ic, /* 155 */
+ Parrot_eq_p_p_ic, /* 156 */
+ Parrot_eq_p_i_ic, /* 157 */
+ Parrot_eq_p_ic_ic, /* 158 */
+ Parrot_eq_p_n_ic, /* 159 */
+ Parrot_eq_p_nc_ic, /* 160 */
+ Parrot_eq_p_s_ic, /* 161 */
+ Parrot_eq_p_sc_ic, /* 162 */
+ Parrot_eq_str_p_p_ic, /* 163 */
+ Parrot_eq_num_p_p_ic, /* 164 */
+ Parrot_eq_addr_s_s_ic, /* 165 */
+ Parrot_eq_addr_sc_s_ic, /* 166 */
+ Parrot_eq_addr_s_sc_ic, /* 167 */
+ Parrot_eq_addr_sc_sc_ic, /* 168 */
+ Parrot_eq_addr_p_p_ic, /* 169 */
+ Parrot_ne_i_i_ic, /* 170 */
+ Parrot_ne_ic_i_ic, /* 171 */
+ Parrot_ne_i_ic_ic, /* 172 */
+ Parrot_ne_n_n_ic, /* 173 */
+ Parrot_ne_nc_n_ic, /* 174 */
+ Parrot_ne_n_nc_ic, /* 175 */
+ Parrot_ne_s_s_ic, /* 176 */
+ Parrot_ne_sc_s_ic, /* 177 */
+ Parrot_ne_s_sc_ic, /* 178 */
+ Parrot_ne_p_p_ic, /* 179 */
+ Parrot_ne_p_i_ic, /* 180 */
+ Parrot_ne_p_ic_ic, /* 181 */
+ Parrot_ne_p_n_ic, /* 182 */
+ Parrot_ne_p_nc_ic, /* 183 */
+ Parrot_ne_p_s_ic, /* 184 */
+ Parrot_ne_p_sc_ic, /* 185 */
+ Parrot_ne_str_p_p_ic, /* 186 */
+ Parrot_ne_num_p_p_ic, /* 187 */
+ Parrot_ne_addr_s_s_ic, /* 188 */
+ Parrot_ne_addr_sc_s_ic, /* 189 */
+ Parrot_ne_addr_s_sc_ic, /* 190 */
+ Parrot_ne_addr_sc_sc_ic, /* 191 */
+ Parrot_ne_addr_p_p_ic, /* 192 */
+ Parrot_lt_i_i_ic, /* 193 */
+ Parrot_lt_ic_i_ic, /* 194 */
+ Parrot_lt_i_ic_ic, /* 195 */
+ Parrot_lt_n_n_ic, /* 196 */
+ Parrot_lt_nc_n_ic, /* 197 */
+ Parrot_lt_n_nc_ic, /* 198 */
+ Parrot_lt_s_s_ic, /* 199 */
+ Parrot_lt_sc_s_ic, /* 200 */
+ Parrot_lt_s_sc_ic, /* 201 */
+ Parrot_lt_p_p_ic, /* 202 */
+ Parrot_lt_p_i_ic, /* 203 */
+ Parrot_lt_p_ic_ic, /* 204 */
+ Parrot_lt_p_n_ic, /* 205 */
+ Parrot_lt_p_nc_ic, /* 206 */
+ Parrot_lt_p_s_ic, /* 207 */
+ Parrot_lt_p_sc_ic, /* 208 */
+ Parrot_lt_str_p_p_ic, /* 209 */
+ Parrot_lt_num_p_p_ic, /* 210 */
+ Parrot_le_i_i_ic, /* 211 */
+ Parrot_le_ic_i_ic, /* 212 */
+ Parrot_le_i_ic_ic, /* 213 */
+ Parrot_le_n_n_ic, /* 214 */
+ Parrot_le_nc_n_ic, /* 215 */
+ Parrot_le_n_nc_ic, /* 216 */
+ Parrot_le_s_s_ic, /* 217 */
+ Parrot_le_sc_s_ic, /* 218 */
+ Parrot_le_s_sc_ic, /* 219 */
+ Parrot_le_p_p_ic, /* 220 */
+ Parrot_le_p_i_ic, /* 221 */
+ Parrot_le_p_ic_ic, /* 222 */
+ Parrot_le_p_n_ic, /* 223 */
+ Parrot_le_p_nc_ic, /* 224 */
+ Parrot_le_p_s_ic, /* 225 */
+ Parrot_le_p_sc_ic, /* 226 */
+ Parrot_le_str_p_p_ic, /* 227 */
+ Parrot_le_num_p_p_ic, /* 228 */
+ Parrot_gt_p_p_ic, /* 229 */
+ Parrot_gt_p_i_ic, /* 230 */
+ Parrot_gt_p_ic_ic, /* 231 */
+ Parrot_gt_p_n_ic, /* 232 */
+ Parrot_gt_p_nc_ic, /* 233 */
+ Parrot_gt_p_s_ic, /* 234 */
+ Parrot_gt_p_sc_ic, /* 235 */
+ Parrot_gt_str_p_p_ic, /* 236 */
+ Parrot_gt_num_p_p_ic, /* 237 */
+ Parrot_ge_p_p_ic, /* 238 */
+ Parrot_ge_p_i_ic, /* 239 */
+ Parrot_ge_p_ic_ic, /* 240 */
+ Parrot_ge_p_n_ic, /* 241 */
+ Parrot_ge_p_nc_ic, /* 242 */
+ Parrot_ge_p_s_ic, /* 243 */
+ Parrot_ge_p_sc_ic, /* 244 */
+ Parrot_ge_str_p_p_ic, /* 245 */
+ Parrot_ge_num_p_p_ic, /* 246 */
+ Parrot_if_null_p_ic, /* 247 */
+ Parrot_if_null_s_ic, /* 248 */
+ Parrot_unless_null_p_ic, /* 249 */
+ Parrot_unless_null_s_ic, /* 250 */
+ Parrot_cmp_i_i_i, /* 251 */
+ Parrot_cmp_i_ic_i, /* 252 */
+ Parrot_cmp_i_i_ic, /* 253 */
+ Parrot_cmp_i_n_n, /* 254 */
+ Parrot_cmp_i_nc_n, /* 255 */
+ Parrot_cmp_i_n_nc, /* 256 */
+ Parrot_cmp_i_s_s, /* 257 */
+ Parrot_cmp_i_sc_s, /* 258 */
+ Parrot_cmp_i_s_sc, /* 259 */
+ Parrot_cmp_i_p_p, /* 260 */
+ Parrot_cmp_i_p_i, /* 261 */
+ Parrot_cmp_i_p_ic, /* 262 */
+ Parrot_cmp_i_p_n, /* 263 */
+ Parrot_cmp_i_p_nc, /* 264 */
+ Parrot_cmp_i_p_s, /* 265 */
+ Parrot_cmp_i_p_sc, /* 266 */
+ Parrot_cmp_str_i_p_p, /* 267 */
+ Parrot_cmp_num_i_p_p, /* 268 */
+ Parrot_cmp_pmc_p_p_p, /* 269 */
+ Parrot_issame_i_p_p, /* 270 */
+ Parrot_issame_i_s_s, /* 271 */
+ Parrot_issame_i_sc_s, /* 272 */
+ Parrot_issame_i_s_sc, /* 273 */
+ Parrot_issame_i_sc_sc, /* 274 */
+ Parrot_isntsame_i_p_p, /* 275 */
+ Parrot_isntsame_i_s_s, /* 276 */
+ Parrot_isntsame_i_sc_s, /* 277 */
+ Parrot_isntsame_i_s_sc, /* 278 */
+ Parrot_isntsame_i_sc_sc, /* 279 */
+ Parrot_istrue_i_p, /* 280 */
+ Parrot_isfalse_i_p, /* 281 */
+ Parrot_isnull_i_p, /* 282 */
+ Parrot_isnull_i_pc, /* 283 */
+ Parrot_isnull_i_s, /* 284 */
+ Parrot_isnull_i_sc, /* 285 */
+ Parrot_isgt_i_p_p, /* 286 */
+ Parrot_isge_i_p_p, /* 287 */
+ Parrot_isle_i_i_i, /* 288 */
+ Parrot_isle_i_ic_i, /* 289 */
+ Parrot_isle_i_i_ic, /* 290 */
+ Parrot_isle_i_n_n, /* 291 */
+ Parrot_isle_i_nc_n, /* 292 */
+ Parrot_isle_i_n_nc, /* 293 */
+ Parrot_isle_i_s_s, /* 294 */
+ Parrot_isle_i_sc_s, /* 295 */
+ Parrot_isle_i_s_sc, /* 296 */
+ Parrot_isle_i_p_p, /* 297 */
+ Parrot_islt_i_i_i, /* 298 */
+ Parrot_islt_i_ic_i, /* 299 */
+ Parrot_islt_i_i_ic, /* 300 */
+ Parrot_islt_i_n_n, /* 301 */
+ Parrot_islt_i_nc_n, /* 302 */
+ Parrot_islt_i_n_nc, /* 303 */
+ Parrot_islt_i_s_s, /* 304 */
+ Parrot_islt_i_sc_s, /* 305 */
+ Parrot_islt_i_s_sc, /* 306 */
+ Parrot_islt_i_p_p, /* 307 */
+ Parrot_iseq_i_i_i, /* 308 */
+ Parrot_iseq_i_ic_i, /* 309 */
+ Parrot_iseq_i_i_ic, /* 310 */
+ Parrot_iseq_i_n_n, /* 311 */
+ Parrot_iseq_i_nc_n, /* 312 */
+ Parrot_iseq_i_n_nc, /* 313 */
+ Parrot_iseq_i_s_s, /* 314 */
+ Parrot_iseq_i_sc_s, /* 315 */
+ Parrot_iseq_i_s_sc, /* 316 */
+ Parrot_iseq_i_p_p, /* 317 */
+ Parrot_isne_i_i_i, /* 318 */
+ Parrot_isne_i_ic_i, /* 319 */
+ Parrot_isne_i_i_ic, /* 320 */
+ Parrot_isne_i_n_n, /* 321 */
+ Parrot_isne_i_nc_n, /* 322 */
+ Parrot_isne_i_n_nc, /* 323 */
+ Parrot_isne_i_s_s, /* 324 */
+ Parrot_isne_i_sc_s, /* 325 */
+ Parrot_isne_i_s_sc, /* 326 */
+ Parrot_isne_i_p_p, /* 327 */
+ Parrot_and_i_i_i, /* 328 */
+ Parrot_and_i_ic_i, /* 329 */
+ Parrot_and_i_i_ic, /* 330 */
+ Parrot_and_p_p_p, /* 331 */
+ Parrot_not_i, /* 332 */
+ Parrot_not_i_i, /* 333 */
+ Parrot_not_p, /* 334 */
+ Parrot_not_p_p, /* 335 */
+ Parrot_or_i_i_i, /* 336 */
+ Parrot_or_i_ic_i, /* 337 */
+ Parrot_or_i_i_ic, /* 338 */
+ Parrot_or_p_p_p, /* 339 */
+ Parrot_xor_i_i_i, /* 340 */
+ Parrot_xor_i_ic_i, /* 341 */
+ Parrot_xor_i_i_ic, /* 342 */
+ Parrot_xor_p_p_p, /* 343 */
+ Parrot_print_i, /* 344 */
+ Parrot_print_ic, /* 345 */
+ Parrot_print_n, /* 346 */
+ Parrot_print_nc, /* 347 */
+ Parrot_print_s, /* 348 */
+ Parrot_print_sc, /* 349 */
+ Parrot_print_p, /* 350 */
+ Parrot_say_i, /* 351 */
+ Parrot_say_ic, /* 352 */
+ Parrot_say_n, /* 353 */
+ Parrot_say_nc, /* 354 */
+ Parrot_say_s, /* 355 */
+ Parrot_say_sc, /* 356 */
+ Parrot_say_p, /* 357 */
+ Parrot_print_p_i, /* 358 */
+ Parrot_print_p_ic, /* 359 */
+ Parrot_print_p_n, /* 360 */
+ Parrot_print_p_nc, /* 361 */
+ Parrot_print_p_s, /* 362 */
+ Parrot_print_p_sc, /* 363 */
+ Parrot_print_p_p, /* 364 */
+ Parrot_getstdin_p, /* 365 */
+ Parrot_getstdout_p, /* 366 */
+ Parrot_getstderr_p, /* 367 */
+ Parrot_abs_i, /* 368 */
+ Parrot_abs_n, /* 369 */
+ Parrot_abs_i_i, /* 370 */
+ Parrot_abs_n_n, /* 371 */
+ Parrot_abs_p, /* 372 */
+ Parrot_abs_p_p, /* 373 */
+ Parrot_add_i_i, /* 374 */
+ Parrot_add_i_ic, /* 375 */
+ Parrot_add_n_n, /* 376 */
+ Parrot_add_n_nc, /* 377 */
+ Parrot_add_p_p, /* 378 */
+ Parrot_add_p_i, /* 379 */
+ Parrot_add_p_ic, /* 380 */
+ Parrot_add_p_n, /* 381 */
+ Parrot_add_p_nc, /* 382 */
+ Parrot_add_i_i_i, /* 383 */
+ Parrot_add_i_ic_i, /* 384 */
+ Parrot_add_i_i_ic, /* 385 */
+ Parrot_add_n_n_n, /* 386 */
+ Parrot_add_n_nc_n, /* 387 */
+ Parrot_add_n_n_nc, /* 388 */
+ Parrot_add_p_p_p, /* 389 */
+ Parrot_add_p_p_i, /* 390 */
+ Parrot_add_p_p_ic, /* 391 */
+ Parrot_add_p_p_n, /* 392 */
+ Parrot_add_p_p_nc, /* 393 */
+ Parrot_dec_i, /* 394 */
+ Parrot_dec_n, /* 395 */
+ Parrot_dec_p, /* 396 */
+ Parrot_div_i_i, /* 397 */
+ Parrot_div_i_ic, /* 398 */
+ Parrot_div_n_n, /* 399 */
+ Parrot_div_n_nc, /* 400 */
+ Parrot_div_p_p, /* 401 */
+ Parrot_div_p_i, /* 402 */
+ Parrot_div_p_ic, /* 403 */
+ Parrot_div_p_n, /* 404 */
+ Parrot_div_p_nc, /* 405 */
+ Parrot_div_i_i_i, /* 406 */
+ Parrot_div_i_ic_i, /* 407 */
+ Parrot_div_i_i_ic, /* 408 */
+ Parrot_div_i_ic_ic, /* 409 */
+ Parrot_div_n_n_n, /* 410 */
+ Parrot_div_n_nc_n, /* 411 */
+ Parrot_div_n_n_nc, /* 412 */
+ Parrot_div_n_nc_nc, /* 413 */
+ Parrot_div_p_p_p, /* 414 */
+ Parrot_div_p_p_i, /* 415 */
+ Parrot_div_p_p_ic, /* 416 */
+ Parrot_div_p_p_n, /* 417 */
+ Parrot_div_p_p_nc, /* 418 */
+ Parrot_fdiv_i_i, /* 419 */
+ Parrot_fdiv_i_ic, /* 420 */
+ Parrot_fdiv_n_n, /* 421 */
+ Parrot_fdiv_n_nc, /* 422 */
+ Parrot_fdiv_p_p, /* 423 */
+ Parrot_fdiv_p_i, /* 424 */
+ Parrot_fdiv_p_ic, /* 425 */
+ Parrot_fdiv_p_n, /* 426 */
+ Parrot_fdiv_p_nc, /* 427 */
+ Parrot_fdiv_i_i_i, /* 428 */
+ Parrot_fdiv_i_ic_i, /* 429 */
+ Parrot_fdiv_i_i_ic, /* 430 */
+ Parrot_fdiv_n_n_n, /* 431 */
+ Parrot_fdiv_n_nc_n, /* 432 */
+ Parrot_fdiv_n_n_nc, /* 433 */
+ Parrot_fdiv_p_p_p, /* 434 */
+ Parrot_fdiv_p_p_i, /* 435 */
+ Parrot_fdiv_p_p_ic, /* 436 */
+ Parrot_fdiv_p_p_n, /* 437 */
+ Parrot_fdiv_p_p_nc, /* 438 */
+ Parrot_ceil_n, /* 439 */
+ Parrot_ceil_i_n, /* 440 */
+ Parrot_ceil_n_n, /* 441 */
+ Parrot_floor_n, /* 442 */
+ Parrot_floor_i_n, /* 443 */
+ Parrot_floor_n_n, /* 444 */
+ Parrot_inc_i, /* 445 */
+ Parrot_inc_n, /* 446 */
+ Parrot_inc_p, /* 447 */
+ Parrot_mod_i_i, /* 448 */
+ Parrot_mod_i_ic, /* 449 */
+ Parrot_mod_n_n, /* 450 */
+ Parrot_mod_n_nc, /* 451 */
+ Parrot_mod_p_p, /* 452 */
+ Parrot_mod_p_i, /* 453 */
+ Parrot_mod_p_ic, /* 454 */
+ Parrot_mod_p_n, /* 455 */
+ Parrot_mod_p_nc, /* 456 */
+ Parrot_mod_i_i_i, /* 457 */
+ Parrot_mod_i_ic_i, /* 458 */
+ Parrot_mod_i_i_ic, /* 459 */
+ Parrot_mod_n_n_n, /* 460 */
+ Parrot_mod_n_nc_n, /* 461 */
+ Parrot_mod_n_n_nc, /* 462 */
+ Parrot_mod_p_p_p, /* 463 */
+ Parrot_mod_p_p_i, /* 464 */
+ Parrot_mod_p_p_ic, /* 465 */
+ Parrot_mod_p_p_n, /* 466 */
+ Parrot_mod_p_p_nc, /* 467 */
+ Parrot_mul_i_i, /* 468 */
+ Parrot_mul_i_ic, /* 469 */
+ Parrot_mul_n_n, /* 470 */
+ Parrot_mul_n_nc, /* 471 */
+ Parrot_mul_p_p, /* 472 */
+ Parrot_mul_p_i, /* 473 */
+ Parrot_mul_p_ic, /* 474 */
+ Parrot_mul_p_n, /* 475 */
+ Parrot_mul_p_nc, /* 476 */
+ Parrot_mul_i_i_i, /* 477 */
+ Parrot_mul_i_ic_i, /* 478 */
+ Parrot_mul_i_i_ic, /* 479 */
+ Parrot_mul_n_n_n, /* 480 */
+ Parrot_mul_n_nc_n, /* 481 */
+ Parrot_mul_n_n_nc, /* 482 */
+ Parrot_mul_p_p_p, /* 483 */
+ Parrot_mul_p_p_i, /* 484 */
+ Parrot_mul_p_p_ic, /* 485 */
+ Parrot_mul_p_p_n, /* 486 */
+ Parrot_mul_p_p_nc, /* 487 */
+ Parrot_neg_i, /* 488 */
+ Parrot_neg_n, /* 489 */
+ Parrot_neg_p, /* 490 */
+ Parrot_neg_i_i, /* 491 */
+ Parrot_neg_n_n, /* 492 */
+ Parrot_neg_p_p, /* 493 */
+ Parrot_sub_i_i, /* 494 */
+ Parrot_sub_i_ic, /* 495 */
+ Parrot_sub_n_n, /* 496 */
+ Parrot_sub_n_nc, /* 497 */
+ Parrot_sub_p_p, /* 498 */
+ Parrot_sub_p_i, /* 499 */
+ Parrot_sub_p_ic, /* 500 */
+ Parrot_sub_p_n, /* 501 */
+ Parrot_sub_p_nc, /* 502 */
+ Parrot_sub_i_i_i, /* 503 */
+ Parrot_sub_i_ic_i, /* 504 */
+ Parrot_sub_i_i_ic, /* 505 */
+ Parrot_sub_n_n_n, /* 506 */
+ Parrot_sub_n_nc_n, /* 507 */
+ Parrot_sub_n_n_nc, /* 508 */
+ Parrot_sub_p_p_p, /* 509 */
+ Parrot_sub_p_p_i, /* 510 */
+ Parrot_sub_p_p_ic, /* 511 */
+ Parrot_sub_p_p_n, /* 512 */
+ Parrot_sub_p_p_nc, /* 513 */
+ Parrot_sqrt_n_n, /* 514 */
+ Parrot_callmethodcc_p_s, /* 515 */
+ Parrot_callmethodcc_p_sc, /* 516 */
+ Parrot_callmethodcc_p_p, /* 517 */
+ Parrot_callmethod_p_s_p, /* 518 */
+ Parrot_callmethod_p_sc_p, /* 519 */
+ Parrot_callmethod_p_p_p, /* 520 */
+ Parrot_tailcallmethod_p_s, /* 521 */
+ Parrot_tailcallmethod_p_sc, /* 522 */
+ Parrot_tailcallmethod_p_p, /* 523 */
+ Parrot_addmethod_p_s_p, /* 524 */
+ Parrot_addmethod_p_sc_p, /* 525 */
+ Parrot_can_i_p_s, /* 526 */
+ Parrot_can_i_p_sc, /* 527 */
+ Parrot_does_i_p_s, /* 528 */
+ Parrot_does_i_p_sc, /* 529 */
+ Parrot_does_i_p_p, /* 530 */
+ Parrot_does_i_p_pc, /* 531 */
+ Parrot_isa_i_p_s, /* 532 */
+ Parrot_isa_i_p_sc, /* 533 */
+ Parrot_isa_i_p_p, /* 534 */
+ Parrot_isa_i_p_pc, /* 535 */
+ Parrot_newclass_p_s, /* 536 */
+ Parrot_newclass_p_sc, /* 537 */
+ Parrot_newclass_p_p, /* 538 */
+ Parrot_newclass_p_pc, /* 539 */
+ Parrot_subclass_p_p, /* 540 */
+ Parrot_subclass_p_pc, /* 541 */
+ Parrot_subclass_p_p_s, /* 542 */
+ Parrot_subclass_p_pc_s, /* 543 */
+ Parrot_subclass_p_p_sc, /* 544 */
+ Parrot_subclass_p_pc_sc, /* 545 */
+ Parrot_subclass_p_p_p, /* 546 */
+ Parrot_subclass_p_pc_p, /* 547 */
+ Parrot_subclass_p_p_pc, /* 548 */
+ Parrot_subclass_p_pc_pc, /* 549 */
+ Parrot_subclass_p_s, /* 550 */
+ Parrot_subclass_p_sc, /* 551 */
+ Parrot_subclass_p_s_s, /* 552 */
+ Parrot_subclass_p_sc_s, /* 553 */
+ Parrot_subclass_p_s_sc, /* 554 */
+ Parrot_subclass_p_sc_sc, /* 555 */
+ Parrot_subclass_p_s_p, /* 556 */
+ Parrot_subclass_p_sc_p, /* 557 */
+ Parrot_subclass_p_s_pc, /* 558 */
+ Parrot_subclass_p_sc_pc, /* 559 */
+ Parrot_get_class_p_s, /* 560 */
+ Parrot_get_class_p_sc, /* 561 */
+ Parrot_get_class_p_p, /* 562 */
+ Parrot_get_class_p_pc, /* 563 */
+ Parrot_class_p_p, /* 564 */
+ Parrot_addparent_p_p, /* 565 */
+ Parrot_removeparent_p_p, /* 566 */
+ Parrot_addrole_p_p, /* 567 */
+ Parrot_addattribute_p_s, /* 568 */
+ Parrot_addattribute_p_sc, /* 569 */
+ Parrot_removeattribute_p_s, /* 570 */
+ Parrot_removeattribute_p_sc, /* 571 */
+ Parrot_getattribute_p_p_s, /* 572 */
+ Parrot_getattribute_p_p_sc, /* 573 */
+ Parrot_getattribute_p_p_p_s, /* 574 */
+ Parrot_getattribute_p_p_pc_s, /* 575 */
+ Parrot_getattribute_p_p_p_sc, /* 576 */
+ Parrot_getattribute_p_p_pc_sc, /* 577 */
+ Parrot_setattribute_p_s_p, /* 578 */
+ Parrot_setattribute_p_sc_p, /* 579 */
+ Parrot_setattribute_p_p_s_p, /* 580 */
+ Parrot_setattribute_p_pc_s_p, /* 581 */
+ Parrot_setattribute_p_p_sc_p, /* 582 */
+ Parrot_setattribute_p_pc_sc_p, /* 583 */
+ Parrot_inspect_p_p, /* 584 */
+ Parrot_inspect_p_pc, /* 585 */
+ Parrot_inspect_p_p_s, /* 586 */
+ Parrot_inspect_p_pc_s, /* 587 */
+ Parrot_inspect_p_p_sc, /* 588 */
+ Parrot_inspect_p_pc_sc, /* 589 */
+ Parrot_new_p_s, /* 590 */
+ Parrot_new_p_sc, /* 591 */
+ Parrot_new_p_s_p, /* 592 */
+ Parrot_new_p_sc_p, /* 593 */
+ Parrot_new_p_s_pc, /* 594 */
+ Parrot_new_p_sc_pc, /* 595 */
+ Parrot_new_p_p, /* 596 */
+ Parrot_new_p_pc, /* 597 */
+ Parrot_new_p_p_p, /* 598 */
+ Parrot_new_p_pc_p, /* 599 */
+ Parrot_new_p_p_pc, /* 600 */
+ Parrot_new_p_pc_pc, /* 601 */
+ Parrot_root_new_p_p, /* 602 */
+ Parrot_root_new_p_pc, /* 603 */
+ Parrot_root_new_p_p_p, /* 604 */
+ Parrot_root_new_p_pc_p, /* 605 */
+ Parrot_root_new_p_p_pc, /* 606 */
+ Parrot_root_new_p_pc_pc, /* 607 */
+ Parrot_typeof_s_p, /* 608 */
+ Parrot_typeof_p_p, /* 609 */
+ Parrot_get_repr_s_p, /* 610 */
+ Parrot_find_method_p_p_s, /* 611 */
+ Parrot_find_method_p_p_sc, /* 612 */
+ Parrot_defined_i_p, /* 613 */
+ Parrot_defined_i_p_ki, /* 614 */
+ Parrot_defined_i_p_kic, /* 615 */
+ Parrot_defined_i_p_k, /* 616 */
+ Parrot_defined_i_p_kc, /* 617 */
+ Parrot_exists_i_p_ki, /* 618 */
+ Parrot_exists_i_p_kic, /* 619 */
+ Parrot_exists_i_p_k, /* 620 */
+ Parrot_exists_i_p_kc, /* 621 */
+ Parrot_delete_p_k, /* 622 */
+ Parrot_delete_p_kc, /* 623 */
+ Parrot_delete_p_ki, /* 624 */
+ Parrot_delete_p_kic, /* 625 */
+ Parrot_elements_i_p, /* 626 */
+ Parrot_push_p_i, /* 627 */
+ Parrot_push_p_ic, /* 628 */
+ Parrot_push_p_n, /* 629 */
+ Parrot_push_p_nc, /* 630 */
+ Parrot_push_p_s, /* 631 */
+ Parrot_push_p_sc, /* 632 */
+ Parrot_push_p_p, /* 633 */
+ Parrot_pop_i_p, /* 634 */
+ Parrot_pop_n_p, /* 635 */
+ Parrot_pop_s_p, /* 636 */
+ Parrot_pop_p_p, /* 637 */
+ Parrot_unshift_p_i, /* 638 */
+ Parrot_unshift_p_ic, /* 639 */
+ Parrot_unshift_p_n, /* 640 */
+ Parrot_unshift_p_nc, /* 641 */
+ Parrot_unshift_p_s, /* 642 */
+ Parrot_unshift_p_sc, /* 643 */
+ Parrot_unshift_p_p, /* 644 */
+ Parrot_shift_i_p, /* 645 */
+ Parrot_shift_n_p, /* 646 */
+ Parrot_shift_s_p, /* 647 */
+ Parrot_shift_p_p, /* 648 */
+ Parrot_splice_p_p_i_i, /* 649 */
+ Parrot_splice_p_p_ic_i, /* 650 */
+ Parrot_splice_p_p_i_ic, /* 651 */
+ Parrot_splice_p_p_ic_ic, /* 652 */
+ Parrot_setprop_p_s_p, /* 653 */
+ Parrot_setprop_p_sc_p, /* 654 */
+ Parrot_getprop_p_s_p, /* 655 */
+ Parrot_getprop_p_sc_p, /* 656 */
+ Parrot_delprop_p_s, /* 657 */
+ Parrot_delprop_p_sc, /* 658 */
+ Parrot_prophash_p_p, /* 659 */
+ Parrot_freeze_s_p, /* 660 */
+ Parrot_thaw_p_s, /* 661 */
+ Parrot_thaw_p_sc, /* 662 */
+ Parrot_add_multi_s_s_p, /* 663 */
+ Parrot_add_multi_sc_s_p, /* 664 */
+ Parrot_add_multi_s_sc_p, /* 665 */
+ Parrot_add_multi_sc_sc_p, /* 666 */
+ Parrot_find_multi_p_s_s, /* 667 */
+ Parrot_find_multi_p_sc_s, /* 668 */
+ Parrot_find_multi_p_s_sc, /* 669 */
+ Parrot_find_multi_p_sc_sc, /* 670 */
+ Parrot_register_p, /* 671 */
+ Parrot_unregister_p, /* 672 */
+ Parrot_box_p_i, /* 673 */
+ Parrot_box_p_ic, /* 674 */
+ Parrot_box_p_n, /* 675 */
+ Parrot_box_p_nc, /* 676 */
+ Parrot_box_p_s, /* 677 */
+ Parrot_box_p_sc, /* 678 */
+ Parrot_iter_p_p, /* 679 */
+ Parrot_morph_p_p, /* 680 */
+ Parrot_morph_p_pc, /* 681 */
+ Parrot_clone_s_s, /* 682 */
+ Parrot_clone_s_sc, /* 683 */
+ Parrot_set_i_i, /* 684 */
+ Parrot_set_i_ic, /* 685 */
+ Parrot_set_i_n, /* 686 */
+ Parrot_set_i_nc, /* 687 */
+ Parrot_set_i_s, /* 688 */
+ Parrot_set_i_sc, /* 689 */
+ Parrot_set_n_n, /* 690 */
+ Parrot_set_n_nc, /* 691 */
+ Parrot_set_n_i, /* 692 */
+ Parrot_set_n_ic, /* 693 */
+ Parrot_set_n_s, /* 694 */
+ Parrot_set_n_sc, /* 695 */
+ Parrot_set_n_p, /* 696 */
+ Parrot_set_s_p, /* 697 */
+ Parrot_set_s_s, /* 698 */
+ Parrot_set_s_sc, /* 699 */
+ Parrot_set_s_i, /* 700 */
+ Parrot_set_s_ic, /* 701 */
+ Parrot_set_s_n, /* 702 */
+ Parrot_set_s_nc, /* 703 */
+ Parrot_set_p_pc, /* 704 */
+ Parrot_set_p_p, /* 705 */
+ Parrot_set_p_i, /* 706 */
+ Parrot_set_p_ic, /* 707 */
+ Parrot_set_p_n, /* 708 */
+ Parrot_set_p_nc, /* 709 */
+ Parrot_set_p_s, /* 710 */
+ Parrot_set_p_sc, /* 711 */
+ Parrot_set_i_p, /* 712 */
+ Parrot_assign_p_p, /* 713 */
+ Parrot_assign_p_i, /* 714 */
+ Parrot_assign_p_ic, /* 715 */
+ Parrot_assign_p_n, /* 716 */
+ Parrot_assign_p_nc, /* 717 */
+ Parrot_assign_p_s, /* 718 */
+ Parrot_assign_p_sc, /* 719 */
+ Parrot_assign_s_s, /* 720 */
+ Parrot_assign_s_sc, /* 721 */
+ Parrot_setref_p_p, /* 722 */
+ Parrot_deref_p_p, /* 723 */
+ Parrot_set_p_ki_i, /* 724 */
+ Parrot_set_p_kic_i, /* 725 */
+ Parrot_set_p_ki_ic, /* 726 */
+ Parrot_set_p_kic_ic, /* 727 */
+ Parrot_set_p_ki_n, /* 728 */
+ Parrot_set_p_kic_n, /* 729 */
+ Parrot_set_p_ki_nc, /* 730 */
+ Parrot_set_p_kic_nc, /* 731 */
+ Parrot_set_p_ki_s, /* 732 */
+ Parrot_set_p_kic_s, /* 733 */
+ Parrot_set_p_ki_sc, /* 734 */
+ Parrot_set_p_kic_sc, /* 735 */
+ Parrot_set_p_ki_p, /* 736 */
+ Parrot_set_p_kic_p, /* 737 */
+ Parrot_set_i_p_ki, /* 738 */
+ Parrot_set_i_p_kic, /* 739 */
+ Parrot_set_n_p_ki, /* 740 */
+ Parrot_set_n_p_kic, /* 741 */
+ Parrot_set_s_p_ki, /* 742 */
+ Parrot_set_s_p_kic, /* 743 */
+ Parrot_set_p_p_ki, /* 744 */
+ Parrot_set_p_p_kic, /* 745 */
+ Parrot_set_p_k_i, /* 746 */
+ Parrot_set_p_kc_i, /* 747 */
+ Parrot_set_p_k_ic, /* 748 */
+ Parrot_set_p_kc_ic, /* 749 */
+ Parrot_set_p_k_n, /* 750 */
+ Parrot_set_p_kc_n, /* 751 */
+ Parrot_set_p_k_nc, /* 752 */
+ Parrot_set_p_kc_nc, /* 753 */
+ Parrot_set_p_k_s, /* 754 */
+ Parrot_set_p_kc_s, /* 755 */
+ Parrot_set_p_k_sc, /* 756 */
+ Parrot_set_p_kc_sc, /* 757 */
+ Parrot_set_p_k_p, /* 758 */
+ Parrot_set_p_kc_p, /* 759 */
+ Parrot_set_i_p_k, /* 760 */
+ Parrot_set_i_p_kc, /* 761 */
+ Parrot_set_n_p_k, /* 762 */
+ Parrot_set_n_p_kc, /* 763 */
+ Parrot_set_s_p_k, /* 764 */
+ Parrot_set_s_p_kc, /* 765 */
+ Parrot_set_p_p_k, /* 766 */
+ Parrot_set_p_p_kc, /* 767 */
+ Parrot_clone_p_p, /* 768 */
+ Parrot_clone_p_p_p, /* 769 */
+ Parrot_clone_p_p_pc, /* 770 */
+ Parrot_copy_p_p, /* 771 */
+ Parrot_null_s, /* 772 */
+ Parrot_null_i, /* 773 */
+ Parrot_null_p, /* 774 */
+ Parrot_null_n, /* 775 */
+ Parrot_ord_i_s, /* 776 */
+ Parrot_ord_i_sc, /* 777 */
+ Parrot_ord_i_s_i, /* 778 */
+ Parrot_ord_i_sc_i, /* 779 */
+ Parrot_ord_i_s_ic, /* 780 */
+ Parrot_ord_i_sc_ic, /* 781 */
+ Parrot_chr_s_i, /* 782 */
+ Parrot_chr_s_ic, /* 783 */
+ Parrot_chopn_s_s_i, /* 784 */
+ Parrot_chopn_s_sc_i, /* 785 */
+ Parrot_chopn_s_s_ic, /* 786 */
+ Parrot_chopn_s_sc_ic, /* 787 */
+ Parrot_concat_s_s, /* 788 */
+ Parrot_concat_s_sc, /* 789 */
+ Parrot_concat_p_p, /* 790 */
+ Parrot_concat_p_s, /* 791 */
+ Parrot_concat_p_sc, /* 792 */
+ Parrot_concat_s_s_s, /* 793 */
+ Parrot_concat_s_sc_s, /* 794 */
+ Parrot_concat_s_s_sc, /* 795 */
+ Parrot_concat_p_p_s, /* 796 */
+ Parrot_concat_p_p_sc, /* 797 */
+ Parrot_concat_p_p_p, /* 798 */
+ Parrot_repeat_s_s_i, /* 799 */
+ Parrot_repeat_s_sc_i, /* 800 */
+ Parrot_repeat_s_s_ic, /* 801 */
+ Parrot_repeat_s_sc_ic, /* 802 */
+ Parrot_repeat_p_p_i, /* 803 */
+ Parrot_repeat_p_p_ic, /* 804 */
+ Parrot_repeat_p_p_p, /* 805 */
+ Parrot_repeat_p_i, /* 806 */
+ Parrot_repeat_p_ic, /* 807 */
+ Parrot_repeat_p_p, /* 808 */
+ Parrot_length_i_s, /* 809 */
+ Parrot_length_i_sc, /* 810 */
+ Parrot_bytelength_i_s, /* 811 */
+ Parrot_bytelength_i_sc, /* 812 */
+ Parrot_pin_s, /* 813 */
+ Parrot_unpin_s, /* 814 */
+ Parrot_substr_s_s_i, /* 815 */
+ Parrot_substr_s_sc_i, /* 816 */
+ Parrot_substr_s_s_ic, /* 817 */
+ Parrot_substr_s_sc_ic, /* 818 */
+ Parrot_substr_s_s_i_i, /* 819 */
+ Parrot_substr_s_sc_i_i, /* 820 */
+ Parrot_substr_s_s_ic_i, /* 821 */
+ Parrot_substr_s_sc_ic_i, /* 822 */
+ Parrot_substr_s_s_i_ic, /* 823 */
+ Parrot_substr_s_sc_i_ic, /* 824 */
+ Parrot_substr_s_s_ic_ic, /* 825 */
+ Parrot_substr_s_sc_ic_ic, /* 826 */
+ Parrot_substr_s_p_i_i, /* 827 */
+ Parrot_substr_s_p_ic_i, /* 828 */
+ Parrot_substr_s_p_i_ic, /* 829 */
+ Parrot_substr_s_p_ic_ic, /* 830 */
+ Parrot_replace_s_s_i_i_s, /* 831 */
+ Parrot_replace_s_sc_i_i_s, /* 832 */
+ Parrot_replace_s_s_ic_i_s, /* 833 */
+ Parrot_replace_s_sc_ic_i_s, /* 834 */
+ Parrot_replace_s_s_i_ic_s, /* 835 */
+ Parrot_replace_s_sc_i_ic_s, /* 836 */
+ Parrot_replace_s_s_ic_ic_s, /* 837 */
+ Parrot_replace_s_sc_ic_ic_s, /* 838 */
+ Parrot_replace_s_s_i_i_sc, /* 839 */
+ Parrot_replace_s_sc_i_i_sc, /* 840 */
+ Parrot_replace_s_s_ic_i_sc, /* 841 */
+ Parrot_replace_s_sc_ic_i_sc, /* 842 */
+ Parrot_replace_s_s_i_ic_sc, /* 843 */
+ Parrot_replace_s_sc_i_ic_sc, /* 844 */
+ Parrot_replace_s_s_ic_ic_sc, /* 845 */
+ Parrot_replace_s_sc_ic_ic_sc, /* 846 */
+ Parrot_index_i_s_s, /* 847 */
+ Parrot_index_i_sc_s, /* 848 */
+ Parrot_index_i_s_sc, /* 849 */
+ Parrot_index_i_sc_sc, /* 850 */
+ Parrot_index_i_s_s_i, /* 851 */
+ Parrot_index_i_sc_s_i, /* 852 */
+ Parrot_index_i_s_sc_i, /* 853 */
+ Parrot_index_i_sc_sc_i, /* 854 */
+ Parrot_index_i_s_s_ic, /* 855 */
+ Parrot_index_i_sc_s_ic, /* 856 */
+ Parrot_index_i_s_sc_ic, /* 857 */
+ Parrot_index_i_sc_sc_ic, /* 858 */
+ Parrot_sprintf_s_s_p, /* 859 */
+ Parrot_sprintf_s_sc_p, /* 860 */
+ Parrot_sprintf_p_p_p, /* 861 */
+ Parrot_new_s, /* 862 */
+ Parrot_new_s_i, /* 863 */
+ Parrot_new_s_ic, /* 864 */
+ Parrot_stringinfo_i_s_i, /* 865 */
+ Parrot_stringinfo_i_sc_i, /* 866 */
+ Parrot_stringinfo_i_s_ic, /* 867 */
+ Parrot_stringinfo_i_sc_ic, /* 868 */
+ Parrot_upcase_s_s, /* 869 */
+ Parrot_upcase_s_sc, /* 870 */
+ Parrot_downcase_s_s, /* 871 */
+ Parrot_downcase_s_sc, /* 872 */
+ Parrot_titlecase_s_s, /* 873 */
+ Parrot_titlecase_s_sc, /* 874 */
+ Parrot_join_s_s_p, /* 875 */
+ Parrot_join_s_sc_p, /* 876 */
+ Parrot_split_p_s_s, /* 877 */
+ Parrot_split_p_sc_s, /* 878 */
+ Parrot_split_p_s_sc, /* 879 */
+ Parrot_split_p_sc_sc, /* 880 */
+ Parrot_charset_i_s, /* 881 */
+ Parrot_charset_i_sc, /* 882 */
+ Parrot_charsetname_s_i, /* 883 */
+ Parrot_charsetname_s_ic, /* 884 */
+ Parrot_find_charset_i_s, /* 885 */
+ Parrot_find_charset_i_sc, /* 886 */
+ Parrot_trans_charset_s_s_i, /* 887 */
+ Parrot_trans_charset_s_sc_i, /* 888 */
+ Parrot_trans_charset_s_s_ic, /* 889 */
+ Parrot_trans_charset_s_sc_ic, /* 890 */
+ Parrot_encoding_i_s, /* 891 */
+ Parrot_encoding_i_sc, /* 892 */
+ Parrot_encodingname_s_i, /* 893 */
+ Parrot_encodingname_s_ic, /* 894 */
+ Parrot_find_encoding_i_s, /* 895 */
+ Parrot_find_encoding_i_sc, /* 896 */
+ Parrot_trans_encoding_s_s_i, /* 897 */
+ Parrot_trans_encoding_s_sc_i, /* 898 */
+ Parrot_trans_encoding_s_s_ic, /* 899 */
+ Parrot_trans_encoding_s_sc_ic, /* 900 */
+ Parrot_is_cclass_i_i_s_i, /* 901 */
+ Parrot_is_cclass_i_ic_s_i, /* 902 */
+ Parrot_is_cclass_i_i_sc_i, /* 903 */
+ Parrot_is_cclass_i_ic_sc_i, /* 904 */
+ Parrot_is_cclass_i_i_s_ic, /* 905 */
+ Parrot_is_cclass_i_ic_s_ic, /* 906 */
+ Parrot_is_cclass_i_i_sc_ic, /* 907 */
+ Parrot_is_cclass_i_ic_sc_ic, /* 908 */
+ Parrot_find_cclass_i_i_s_i_i, /* 909 */
+ Parrot_find_cclass_i_ic_s_i_i, /* 910 */
+ Parrot_find_cclass_i_i_sc_i_i, /* 911 */
+ Parrot_find_cclass_i_ic_sc_i_i, /* 912 */
+ Parrot_find_cclass_i_i_s_ic_i, /* 913 */
+ Parrot_find_cclass_i_ic_s_ic_i, /* 914 */
+ Parrot_find_cclass_i_i_sc_ic_i, /* 915 */
+ Parrot_find_cclass_i_ic_sc_ic_i, /* 916 */
+ Parrot_find_cclass_i_i_s_i_ic, /* 917 */
+ Parrot_find_cclass_i_ic_s_i_ic, /* 918 */
+ Parrot_find_cclass_i_i_sc_i_ic, /* 919 */
+ Parrot_find_cclass_i_ic_sc_i_ic, /* 920 */
+ Parrot_find_cclass_i_i_s_ic_ic, /* 921 */
+ Parrot_find_cclass_i_ic_s_ic_ic, /* 922 */
+ Parrot_find_cclass_i_i_sc_ic_ic, /* 923 */
+ Parrot_find_cclass_i_ic_sc_ic_ic, /* 924 */
+ Parrot_find_not_cclass_i_i_s_i_i, /* 925 */
+ Parrot_find_not_cclass_i_ic_s_i_i, /* 926 */
+ Parrot_find_not_cclass_i_i_sc_i_i, /* 927 */
+ Parrot_find_not_cclass_i_ic_sc_i_i, /* 928 */
+ Parrot_find_not_cclass_i_i_s_ic_i, /* 929 */
+ Parrot_find_not_cclass_i_ic_s_ic_i, /* 930 */
+ Parrot_find_not_cclass_i_i_sc_ic_i, /* 931 */
+ Parrot_find_not_cclass_i_ic_sc_ic_i, /* 932 */
+ Parrot_find_not_cclass_i_i_s_i_ic, /* 933 */
+ Parrot_find_not_cclass_i_ic_s_i_ic, /* 934 */
+ Parrot_find_not_cclass_i_i_sc_i_ic, /* 935 */
+ Parrot_find_not_cclass_i_ic_sc_i_ic, /* 936 */
+ Parrot_find_not_cclass_i_i_s_ic_ic, /* 937 */
+ Parrot_find_not_cclass_i_ic_s_ic_ic, /* 938 */
+ Parrot_find_not_cclass_i_i_sc_ic_ic, /* 939 */
+ Parrot_find_not_cclass_i_ic_sc_ic_ic, /* 940 */
+ Parrot_escape_s_s, /* 941 */
+ Parrot_compose_s_s, /* 942 */
+ Parrot_compose_s_sc, /* 943 */
+ Parrot_spawnw_i_s, /* 944 */
+ Parrot_spawnw_i_sc, /* 945 */
+ Parrot_spawnw_i_p, /* 946 */
+ Parrot_err_i, /* 947 */
+ Parrot_err_s, /* 948 */
+ Parrot_err_s_i, /* 949 */
+ Parrot_err_s_ic, /* 950 */
+ Parrot_time_i, /* 951 */
+ Parrot_time_n, /* 952 */
+ Parrot_sleep_i, /* 953 */
+ Parrot_sleep_ic, /* 954 */
+ Parrot_sleep_n, /* 955 */
+ Parrot_sleep_nc, /* 956 */
+ Parrot_store_lex_s_p, /* 957 */
+ Parrot_store_lex_sc_p, /* 958 */
+ Parrot_store_dynamic_lex_s_p, /* 959 */
+ Parrot_store_dynamic_lex_sc_p, /* 960 */
+ Parrot_find_lex_p_s, /* 961 */
+ Parrot_find_lex_p_sc, /* 962 */
+ Parrot_find_dynamic_lex_p_s, /* 963 */
+ Parrot_find_dynamic_lex_p_sc, /* 964 */
+ Parrot_find_caller_lex_p_s, /* 965 */
+ Parrot_find_caller_lex_p_sc, /* 966 */
+ Parrot_get_namespace_p, /* 967 */
+ Parrot_get_namespace_p_p, /* 968 */
+ Parrot_get_namespace_p_pc, /* 969 */
+ Parrot_get_hll_namespace_p, /* 970 */
+ Parrot_get_hll_namespace_p_p, /* 971 */
+ Parrot_get_hll_namespace_p_pc, /* 972 */
+ Parrot_get_root_namespace_p, /* 973 */
+ Parrot_get_root_namespace_p_p, /* 974 */
+ Parrot_get_root_namespace_p_pc, /* 975 */
+ Parrot_get_global_p_s, /* 976 */
+ Parrot_get_global_p_sc, /* 977 */
+ Parrot_get_global_p_p_s, /* 978 */
+ Parrot_get_global_p_pc_s, /* 979 */
+ Parrot_get_global_p_p_sc, /* 980 */
+ Parrot_get_global_p_pc_sc, /* 981 */
+ Parrot_get_hll_global_p_s, /* 982 */
+ Parrot_get_hll_global_p_sc, /* 983 */
+ Parrot_get_hll_global_p_p_s, /* 984 */
+ Parrot_get_hll_global_p_pc_s, /* 985 */
+ Parrot_get_hll_global_p_p_sc, /* 986 */
+ Parrot_get_hll_global_p_pc_sc, /* 987 */
+ Parrot_get_root_global_p_s, /* 988 */
+ Parrot_get_root_global_p_sc, /* 989 */
+ Parrot_get_root_global_p_p_s, /* 990 */
+ Parrot_get_root_global_p_pc_s, /* 991 */
+ Parrot_get_root_global_p_p_sc, /* 992 */
+ Parrot_get_root_global_p_pc_sc, /* 993 */
+ Parrot_set_global_s_p, /* 994 */
+ Parrot_set_global_sc_p, /* 995 */
+ Parrot_set_global_p_s_p, /* 996 */
+ Parrot_set_global_pc_s_p, /* 997 */
+ Parrot_set_global_p_sc_p, /* 998 */
+ Parrot_set_global_pc_sc_p, /* 999 */
+ Parrot_set_hll_global_s_p, /* 1000 */
+ Parrot_set_hll_global_sc_p, /* 1001 */
+ Parrot_set_hll_global_p_s_p, /* 1002 */
+ Parrot_set_hll_global_pc_s_p, /* 1003 */
+ Parrot_set_hll_global_p_sc_p, /* 1004 */
+ Parrot_set_hll_global_pc_sc_p, /* 1005 */
+ Parrot_set_root_global_s_p, /* 1006 */
+ Parrot_set_root_global_sc_p, /* 1007 */
+ Parrot_set_root_global_p_s_p, /* 1008 */
+ Parrot_set_root_global_pc_s_p, /* 1009 */
+ Parrot_set_root_global_p_sc_p, /* 1010 */
+ Parrot_set_root_global_pc_sc_p, /* 1011 */
+ Parrot_find_name_p_s, /* 1012 */
+ Parrot_find_name_p_sc, /* 1013 */
+ Parrot_find_sub_not_null_p_s, /* 1014 */
+ Parrot_find_sub_not_null_p_sc, /* 1015 */
+ Parrot_trap, /* 1016 */
+ Parrot_set_label_p_ic, /* 1017 */
+ Parrot_get_label_i_p, /* 1018 */
+ Parrot_fetch_p_p_p_p, /* 1019 */
+ Parrot_fetch_p_pc_p_p, /* 1020 */
+ Parrot_fetch_p_p_pc_p, /* 1021 */
+ Parrot_fetch_p_pc_pc_p, /* 1022 */
+ Parrot_fetch_p_p_p_pc, /* 1023 */
+ Parrot_fetch_p_pc_p_pc, /* 1024 */
+ Parrot_fetch_p_p_pc_pc, /* 1025 */
+ Parrot_fetch_p_pc_pc_pc, /* 1026 */
+ Parrot_fetch_p_p_i_p, /* 1027 */
+ Parrot_fetch_p_pc_i_p, /* 1028 */
+ Parrot_fetch_p_p_ic_p, /* 1029 */
+ Parrot_fetch_p_pc_ic_p, /* 1030 */
+ Parrot_fetch_p_p_i_pc, /* 1031 */
+ Parrot_fetch_p_pc_i_pc, /* 1032 */
+ Parrot_fetch_p_p_ic_pc, /* 1033 */
+ Parrot_fetch_p_pc_ic_pc, /* 1034 */
+ Parrot_fetch_p_p_s_p, /* 1035 */
+ Parrot_fetch_p_pc_s_p, /* 1036 */
+ Parrot_fetch_p_p_sc_p, /* 1037 */
+ Parrot_fetch_p_pc_sc_p, /* 1038 */
+ Parrot_fetch_p_p_s_pc, /* 1039 */
+ Parrot_fetch_p_pc_s_pc, /* 1040 */
+ Parrot_fetch_p_p_sc_pc, /* 1041 */
+ Parrot_fetch_p_pc_sc_pc, /* 1042 */
+ Parrot_vivify_p_p_p_p, /* 1043 */
+ Parrot_vivify_p_pc_p_p, /* 1044 */
+ Parrot_vivify_p_p_pc_p, /* 1045 */
+ Parrot_vivify_p_pc_pc_p, /* 1046 */
+ Parrot_vivify_p_p_p_pc, /* 1047 */
+ Parrot_vivify_p_pc_p_pc, /* 1048 */
+ Parrot_vivify_p_p_pc_pc, /* 1049 */
+ Parrot_vivify_p_pc_pc_pc, /* 1050 */
+ Parrot_vivify_p_p_i_p, /* 1051 */
+ Parrot_vivify_p_pc_i_p, /* 1052 */
+ Parrot_vivify_p_p_ic_p, /* 1053 */
+ Parrot_vivify_p_pc_ic_p, /* 1054 */
+ Parrot_vivify_p_p_i_pc, /* 1055 */
+ Parrot_vivify_p_pc_i_pc, /* 1056 */
+ Parrot_vivify_p_p_ic_pc, /* 1057 */
+ Parrot_vivify_p_pc_ic_pc, /* 1058 */
+ Parrot_vivify_p_p_s_p, /* 1059 */
+ Parrot_vivify_p_pc_s_p, /* 1060 */
+ Parrot_vivify_p_p_sc_p, /* 1061 */
+ Parrot_vivify_p_pc_sc_p, /* 1062 */
+ Parrot_vivify_p_p_s_pc, /* 1063 */
+ Parrot_vivify_p_pc_s_pc, /* 1064 */
+ Parrot_vivify_p_p_sc_pc, /* 1065 */
+ Parrot_vivify_p_pc_sc_pc, /* 1066 */
+ Parrot_new_p_s_i, /* 1067 */
+ Parrot_new_p_sc_i, /* 1068 */
+ Parrot_new_p_s_ic, /* 1069 */
+ Parrot_new_p_sc_ic, /* 1070 */
+ Parrot_new_p_p_i, /* 1071 */
+ Parrot_new_p_pc_i, /* 1072 */
+ Parrot_new_p_p_ic, /* 1073 */
+ Parrot_new_p_pc_ic, /* 1074 */
+ Parrot_root_new_p_p_i, /* 1075 */
+ Parrot_root_new_p_pc_i, /* 1076 */
+ Parrot_root_new_p_p_ic, /* 1077 */
+ Parrot_root_new_p_pc_ic, /* 1078 */
+ Parrot_find_codepoint_i_s, /* 1079 */
+ Parrot_find_codepoint_i_sc, /* 1080 */
+ Parrot_finalize_p, /* 1081 */
+ Parrot_finalize_pc, /* 1082 */
+
+ NULL /* NULL function pointer */
+};
+
+
+
+/*
+** Op Info Table:
+*/
+
+static op_info_t core_op_info_table[1084] = {
+ { /* 0 */
+ /* type PARROT_INLINE_OP, */
+ "end",
+ "end",
+ "Parrot_end",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 1 */
+ /* type PARROT_INLINE_OP, */
+ "noop",
+ "noop",
+ "Parrot_noop",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 2 */
+ /* type PARROT_INLINE_OP, */
+ "check_events",
+ "check_events",
+ "Parrot_check_events",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 3 */
+ /* type PARROT_INLINE_OP, */
+ "check_events__",
+ "check_events__",
+ "Parrot_check_events__",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 4 */
+ /* type PARROT_INLINE_OP, */
+ "wrapper__",
+ "wrapper__",
+ "Parrot_wrapper__",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 5 */
+ /* type PARROT_INLINE_OP, */
+ "load_bytecode",
+ "load_bytecode_s",
+ "Parrot_load_bytecode_s",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_S },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 6 */
+ /* type PARROT_INLINE_OP, */
+ "load_bytecode",
+ "load_bytecode_sc",
+ "Parrot_load_bytecode_sc",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 7 */
+ /* type PARROT_INLINE_OP, */
+ "load_language",
+ "load_language_s",
+ "Parrot_load_language_s",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_S },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 8 */
+ /* type PARROT_INLINE_OP, */
+ "load_language",
+ "load_language_sc",
+ "Parrot_load_language_sc",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 9 */
+ /* type PARROT_INLINE_OP, */
+ "branch",
+ "branch_i",
+ "Parrot_branch_i",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 1 }
+ },
+ { /* 10 */
+ /* type PARROT_INLINE_OP, */
+ "branch",
+ "branch_ic",
+ "Parrot_branch_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 1 }
+ },
+ { /* 11 */
+ /* type PARROT_INLINE_OP, */
+ "local_branch",
+ "local_branch_p_i",
+ "Parrot_local_branch_p_i",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 12 */
+ /* type PARROT_INLINE_OP, */
+ "local_branch",
+ "local_branch_p_ic",
+ "Parrot_local_branch_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 13 */
+ /* type PARROT_INLINE_OP, */
+ "local_return",
+ "local_return_p",
+ "Parrot_local_return_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 14 */
+ /* type PARROT_INLINE_OP, */
+ "jump",
+ "jump_i",
+ "Parrot_jump_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 1 }
+ },
+ { /* 15 */
+ /* type PARROT_INLINE_OP, */
+ "jump",
+ "jump_ic",
+ "Parrot_jump_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 1 }
+ },
+ { /* 16 */
+ /* type PARROT_FUNCTION_OP, */
+ "enternative",
+ "enternative",
+ "Parrot_enternative",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 17 */
+ /* type PARROT_INLINE_OP, */
+ "if",
+ "if_i_ic",
+ "Parrot_if_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 18 */
+ /* type PARROT_INLINE_OP, */
+ "if",
+ "if_n_ic",
+ "Parrot_if_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 19 */
+ /* type PARROT_FUNCTION_OP, */
+ "if",
+ "if_s_ic",
+ "Parrot_if_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 20 */
+ /* type PARROT_FUNCTION_OP, */
+ "if",
+ "if_p_ic",
+ "Parrot_if_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 21 */
+ /* type PARROT_INLINE_OP, */
+ "unless",
+ "unless_i_ic",
+ "Parrot_unless_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 22 */
+ /* type PARROT_INLINE_OP, */
+ "unless",
+ "unless_n_ic",
+ "Parrot_unless_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 23 */
+ /* type PARROT_FUNCTION_OP, */
+ "unless",
+ "unless_s_ic",
+ "Parrot_unless_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 24 */
+ /* type PARROT_FUNCTION_OP, */
+ "unless",
+ "unless_p_ic",
+ "Parrot_unless_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 25 */
+ /* type PARROT_INLINE_OP, */
+ "invokecc",
+ "invokecc_p",
+ "Parrot_invokecc_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 26 */
+ /* type PARROT_INLINE_OP, */
+ "invoke",
+ "invoke_p_p",
+ "Parrot_invoke_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 27 */
+ /* type PARROT_INLINE_OP, */
+ "yield",
+ "yield",
+ "Parrot_yield",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 28 */
+ /* type PARROT_INLINE_OP, */
+ "tailcall",
+ "tailcall_p",
+ "Parrot_tailcall_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 29 */
+ /* type PARROT_INLINE_OP, */
+ "returncc",
+ "returncc",
+ "Parrot_returncc",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 30 */
+ /* type PARROT_INLINE_OP, */
+ "capture_lex",
+ "capture_lex_p",
+ "Parrot_capture_lex_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 31 */
+ /* type PARROT_INLINE_OP, */
+ "newclosure",
+ "newclosure_p_p",
+ "Parrot_newclosure_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 32 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_args",
+ "set_args_pc",
+ "Parrot_set_args_pc",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 2,
+ { PARROT_ARG_PC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 33 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_params",
+ "get_params_pc",
+ "Parrot_get_params_pc",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 2,
+ { PARROT_ARG_PC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 34 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_returns",
+ "set_returns_pc",
+ "Parrot_set_returns_pc",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 2,
+ { PARROT_ARG_PC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 35 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_results",
+ "get_results_pc",
+ "Parrot_get_results_pc",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 2,
+ { PARROT_ARG_PC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 36 */
+ /* type PARROT_INLINE_OP, */
+ "set_result_info",
+ "set_result_info_p",
+ "Parrot_set_result_info_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 37 */
+ /* type PARROT_INLINE_OP, */
+ "set_result_info",
+ "set_result_info_pc",
+ "Parrot_set_result_info_pc",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_PC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 38 */
+ /* type PARROT_INLINE_OP, */
+ "result_info",
+ "result_info_p",
+ "Parrot_result_info_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 39 */
+ /* type PARROT_INLINE_OP, */
+ "set_addr",
+ "set_addr_i_ic",
+ "Parrot_set_addr_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 40 */
+ /* type PARROT_INLINE_OP, */
+ "set_addr",
+ "set_addr_p_ic",
+ "Parrot_set_addr_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 41 */
+ /* type PARROT_INLINE_OP, */
+ "set_addr",
+ "set_addr_p_i",
+ "Parrot_set_addr_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 42 */
+ /* type PARROT_INLINE_OP, */
+ "get_addr",
+ "get_addr_i_p",
+ "Parrot_get_addr_i_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 43 */
+ /* type PARROT_INLINE_OP, */
+ "schedule",
+ "schedule_p",
+ "Parrot_schedule_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 44 */
+ /* type PARROT_INLINE_OP, */
+ "addhandler",
+ "addhandler_p",
+ "Parrot_addhandler_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 45 */
+ /* type PARROT_INLINE_OP, */
+ "push_eh",
+ "push_eh_ic",
+ "Parrot_push_eh_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 1 }
+ },
+ { /* 46 */
+ /* type PARROT_INLINE_OP, */
+ "push_eh",
+ "push_eh_p",
+ "Parrot_push_eh_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 47 */
+ /* type PARROT_INLINE_OP, */
+ "pop_eh",
+ "pop_eh",
+ "Parrot_pop_eh",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 48 */
+ /* type PARROT_INLINE_OP, */
+ "throw",
+ "throw_p",
+ "Parrot_throw_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 49 */
+ /* type PARROT_INLINE_OP, */
+ "throw",
+ "throw_p_p",
+ "Parrot_throw_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 50 */
+ /* type PARROT_INLINE_OP, */
+ "rethrow",
+ "rethrow_p",
+ "Parrot_rethrow_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 51 */
+ /* type PARROT_INLINE_OP, */
+ "count_eh",
+ "count_eh_i",
+ "Parrot_count_eh_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 52 */
+ /* type PARROT_INLINE_OP, */
+ "die",
+ "die_s",
+ "Parrot_die_s",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_S },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 53 */
+ /* type PARROT_INLINE_OP, */
+ "die",
+ "die_sc",
+ "Parrot_die_sc",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 54 */
+ /* type PARROT_INLINE_OP, */
+ "die",
+ "die_p",
+ "Parrot_die_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 55 */
+ /* type PARROT_INLINE_OP, */
+ "die",
+ "die_pc",
+ "Parrot_die_pc",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_PC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 56 */
+ /* type PARROT_INLINE_OP, */
+ "die",
+ "die_i_i",
+ "Parrot_die_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 57 */
+ /* type PARROT_INLINE_OP, */
+ "die",
+ "die_ic_i",
+ "Parrot_die_ic_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 58 */
+ /* type PARROT_INLINE_OP, */
+ "die",
+ "die_i_ic",
+ "Parrot_die_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 59 */
+ /* type PARROT_INLINE_OP, */
+ "die",
+ "die_ic_ic",
+ "Parrot_die_ic_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 60 */
+ /* type PARROT_INLINE_OP, */
+ "exit",
+ "exit_i",
+ "Parrot_exit_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 61 */
+ /* type PARROT_INLINE_OP, */
+ "exit",
+ "exit_ic",
+ "Parrot_exit_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 62 */
+ /* type PARROT_INLINE_OP, */
+ "debug",
+ "debug_i",
+ "Parrot_debug_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 63 */
+ /* type PARROT_INLINE_OP, */
+ "debug",
+ "debug_ic",
+ "Parrot_debug_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 64 */
+ /* type PARROT_INLINE_OP, */
+ "bounds",
+ "bounds_i",
+ "Parrot_bounds_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 65 */
+ /* type PARROT_INLINE_OP, */
+ "bounds",
+ "bounds_ic",
+ "Parrot_bounds_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 66 */
+ /* type PARROT_INLINE_OP, */
+ "profile",
+ "profile_i",
+ "Parrot_profile_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 67 */
+ /* type PARROT_INLINE_OP, */
+ "profile",
+ "profile_ic",
+ "Parrot_profile_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 68 */
+ /* type PARROT_INLINE_OP, */
+ "trace",
+ "trace_i",
+ "Parrot_trace_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 69 */
+ /* type PARROT_INLINE_OP, */
+ "trace",
+ "trace_ic",
+ "Parrot_trace_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 70 */
+ /* type PARROT_INLINE_OP, */
+ "gc_debug",
+ "gc_debug_i",
+ "Parrot_gc_debug_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 71 */
+ /* type PARROT_INLINE_OP, */
+ "gc_debug",
+ "gc_debug_ic",
+ "Parrot_gc_debug_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 72 */
+ /* type PARROT_FUNCTION_OP, */
+ "interpinfo",
+ "interpinfo_i_i",
+ "Parrot_interpinfo_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 73 */
+ /* type PARROT_FUNCTION_OP, */
+ "interpinfo",
+ "interpinfo_i_ic",
+ "Parrot_interpinfo_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 74 */
+ /* type PARROT_FUNCTION_OP, */
+ "interpinfo",
+ "interpinfo_p_i",
+ "Parrot_interpinfo_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 75 */
+ /* type PARROT_FUNCTION_OP, */
+ "interpinfo",
+ "interpinfo_p_ic",
+ "Parrot_interpinfo_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 76 */
+ /* type PARROT_FUNCTION_OP, */
+ "interpinfo",
+ "interpinfo_s_i",
+ "Parrot_interpinfo_s_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 77 */
+ /* type PARROT_FUNCTION_OP, */
+ "interpinfo",
+ "interpinfo_s_ic",
+ "Parrot_interpinfo_s_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 78 */
+ /* type PARROT_INLINE_OP, */
+ "warningson",
+ "warningson_i",
+ "Parrot_warningson_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 79 */
+ /* type PARROT_INLINE_OP, */
+ "warningson",
+ "warningson_ic",
+ "Parrot_warningson_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 80 */
+ /* type PARROT_INLINE_OP, */
+ "warningsoff",
+ "warningsoff_i",
+ "Parrot_warningsoff_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 81 */
+ /* type PARROT_INLINE_OP, */
+ "warningsoff",
+ "warningsoff_ic",
+ "Parrot_warningsoff_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 82 */
+ /* type PARROT_INLINE_OP, */
+ "errorson",
+ "errorson_i",
+ "Parrot_errorson_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 83 */
+ /* type PARROT_INLINE_OP, */
+ "errorson",
+ "errorson_ic",
+ "Parrot_errorson_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 84 */
+ /* type PARROT_INLINE_OP, */
+ "errorsoff",
+ "errorsoff_i",
+ "Parrot_errorsoff_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 85 */
+ /* type PARROT_INLINE_OP, */
+ "errorsoff",
+ "errorsoff_ic",
+ "Parrot_errorsoff_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 86 */
+ /* type PARROT_FUNCTION_OP, */
+ "runinterp",
+ "runinterp_p_i",
+ "Parrot_runinterp_p_i",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 87 */
+ /* type PARROT_FUNCTION_OP, */
+ "runinterp",
+ "runinterp_p_ic",
+ "Parrot_runinterp_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 88 */
+ /* type PARROT_FUNCTION_OP, */
+ "getinterp",
+ "getinterp_p",
+ "Parrot_getinterp_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 89 */
+ /* type PARROT_FUNCTION_OP, */
+ "sweep",
+ "sweep_ic",
+ "Parrot_sweep_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 90 */
+ /* type PARROT_FUNCTION_OP, */
+ "collect",
+ "collect",
+ "Parrot_collect",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 91 */
+ /* type PARROT_FUNCTION_OP, */
+ "sweepoff",
+ "sweepoff",
+ "Parrot_sweepoff",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 92 */
+ /* type PARROT_FUNCTION_OP, */
+ "sweepon",
+ "sweepon",
+ "Parrot_sweepon",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 93 */
+ /* type PARROT_FUNCTION_OP, */
+ "collectoff",
+ "collectoff",
+ "Parrot_collectoff",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 94 */
+ /* type PARROT_FUNCTION_OP, */
+ "collecton",
+ "collecton",
+ "Parrot_collecton",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 95 */
+ /* type PARROT_FUNCTION_OP, */
+ "needs_destroy",
+ "needs_destroy_p",
+ "Parrot_needs_destroy_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 96 */
+ /* type PARROT_INLINE_OP, */
+ "loadlib",
+ "loadlib_p_s",
+ "Parrot_loadlib_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 97 */
+ /* type PARROT_INLINE_OP, */
+ "loadlib",
+ "loadlib_p_sc",
+ "Parrot_loadlib_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 98 */
+ /* type PARROT_INLINE_OP, */
+ "loadlib",
+ "loadlib_p_s_p",
+ "Parrot_loadlib_p_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 99 */
+ /* type PARROT_INLINE_OP, */
+ "loadlib",
+ "loadlib_p_sc_p",
+ "Parrot_loadlib_p_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 100 */
+ /* type PARROT_INLINE_OP, */
+ "loadlib",
+ "loadlib_p_s_pc",
+ "Parrot_loadlib_p_s_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 101 */
+ /* type PARROT_INLINE_OP, */
+ "loadlib",
+ "loadlib_p_sc_pc",
+ "Parrot_loadlib_p_sc_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 102 */
+ /* type PARROT_FUNCTION_OP, */
+ "dlfunc",
+ "dlfunc_p_p_s_s",
+ "Parrot_dlfunc_p_p_s_s",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 103 */
+ /* type PARROT_FUNCTION_OP, */
+ "dlfunc",
+ "dlfunc_p_p_sc_s",
+ "Parrot_dlfunc_p_p_sc_s",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 104 */
+ /* type PARROT_FUNCTION_OP, */
+ "dlfunc",
+ "dlfunc_p_p_s_sc",
+ "Parrot_dlfunc_p_p_s_sc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 105 */
+ /* type PARROT_FUNCTION_OP, */
+ "dlfunc",
+ "dlfunc_p_p_sc_sc",
+ "Parrot_dlfunc_p_p_sc_sc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 106 */
+ /* type PARROT_FUNCTION_OP, */
+ "dlvar",
+ "dlvar_p_p_s",
+ "Parrot_dlvar_p_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 107 */
+ /* type PARROT_FUNCTION_OP, */
+ "dlvar",
+ "dlvar_p_p_sc",
+ "Parrot_dlvar_p_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 108 */
+ /* type PARROT_INLINE_OP, */
+ "compreg",
+ "compreg_s_p",
+ "Parrot_compreg_s_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 109 */
+ /* type PARROT_INLINE_OP, */
+ "compreg",
+ "compreg_sc_p",
+ "Parrot_compreg_sc_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 110 */
+ /* type PARROT_INLINE_OP, */
+ "compreg",
+ "compreg_p_s",
+ "Parrot_compreg_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 111 */
+ /* type PARROT_INLINE_OP, */
+ "compreg",
+ "compreg_p_sc",
+ "Parrot_compreg_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 112 */
+ /* type PARROT_FUNCTION_OP, */
+ "new_callback",
+ "new_callback_p_p_p_s",
+ "Parrot_new_callback_p_p_p_s",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 113 */
+ /* type PARROT_FUNCTION_OP, */
+ "new_callback",
+ "new_callback_p_p_p_sc",
+ "Parrot_new_callback_p_p_p_sc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 114 */
+ /* type PARROT_INLINE_OP, */
+ "annotations",
+ "annotations_p",
+ "Parrot_annotations_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 115 */
+ /* type PARROT_INLINE_OP, */
+ "annotations",
+ "annotations_p_s",
+ "Parrot_annotations_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 116 */
+ /* type PARROT_INLINE_OP, */
+ "annotations",
+ "annotations_p_sc",
+ "Parrot_annotations_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 117 */
+ /* type PARROT_INLINE_OP, */
+ "band",
+ "band_i_i",
+ "Parrot_band_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 118 */
+ /* type PARROT_INLINE_OP, */
+ "band",
+ "band_i_ic",
+ "Parrot_band_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 119 */
+ /* type PARROT_INLINE_OP, */
+ "band",
+ "band_i_i_i",
+ "Parrot_band_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 120 */
+ /* type PARROT_INLINE_OP, */
+ "band",
+ "band_i_ic_i",
+ "Parrot_band_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 121 */
+ /* type PARROT_INLINE_OP, */
+ "band",
+ "band_i_i_ic",
+ "Parrot_band_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 122 */
+ /* type PARROT_INLINE_OP, */
+ "bor",
+ "bor_i_i",
+ "Parrot_bor_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 123 */
+ /* type PARROT_INLINE_OP, */
+ "bor",
+ "bor_i_ic",
+ "Parrot_bor_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 124 */
+ /* type PARROT_INLINE_OP, */
+ "bor",
+ "bor_i_i_i",
+ "Parrot_bor_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 125 */
+ /* type PARROT_INLINE_OP, */
+ "bor",
+ "bor_i_ic_i",
+ "Parrot_bor_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 126 */
+ /* type PARROT_INLINE_OP, */
+ "bor",
+ "bor_i_i_ic",
+ "Parrot_bor_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 127 */
+ /* type PARROT_INLINE_OP, */
+ "shl",
+ "shl_i_i",
+ "Parrot_shl_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 128 */
+ /* type PARROT_INLINE_OP, */
+ "shl",
+ "shl_i_ic",
+ "Parrot_shl_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 129 */
+ /* type PARROT_INLINE_OP, */
+ "shl",
+ "shl_i_i_i",
+ "Parrot_shl_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 130 */
+ /* type PARROT_INLINE_OP, */
+ "shl",
+ "shl_i_ic_i",
+ "Parrot_shl_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 131 */
+ /* type PARROT_INLINE_OP, */
+ "shl",
+ "shl_i_i_ic",
+ "Parrot_shl_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 132 */
+ /* type PARROT_INLINE_OP, */
+ "shr",
+ "shr_i_i",
+ "Parrot_shr_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 133 */
+ /* type PARROT_INLINE_OP, */
+ "shr",
+ "shr_i_ic",
+ "Parrot_shr_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 134 */
+ /* type PARROT_INLINE_OP, */
+ "shr",
+ "shr_i_i_i",
+ "Parrot_shr_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 135 */
+ /* type PARROT_INLINE_OP, */
+ "shr",
+ "shr_i_ic_i",
+ "Parrot_shr_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 136 */
+ /* type PARROT_INLINE_OP, */
+ "shr",
+ "shr_i_i_ic",
+ "Parrot_shr_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 137 */
+ /* type PARROT_INLINE_OP, */
+ "lsr",
+ "lsr_i_i",
+ "Parrot_lsr_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 138 */
+ /* type PARROT_INLINE_OP, */
+ "lsr",
+ "lsr_i_ic",
+ "Parrot_lsr_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 139 */
+ /* type PARROT_INLINE_OP, */
+ "lsr",
+ "lsr_i_i_i",
+ "Parrot_lsr_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 140 */
+ /* type PARROT_INLINE_OP, */
+ "lsr",
+ "lsr_i_ic_i",
+ "Parrot_lsr_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 141 */
+ /* type PARROT_INLINE_OP, */
+ "lsr",
+ "lsr_i_i_ic",
+ "Parrot_lsr_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 142 */
+ /* type PARROT_INLINE_OP, */
+ "bxor",
+ "bxor_i_i",
+ "Parrot_bxor_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 143 */
+ /* type PARROT_INLINE_OP, */
+ "bxor",
+ "bxor_i_ic",
+ "Parrot_bxor_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 144 */
+ /* type PARROT_INLINE_OP, */
+ "bxor",
+ "bxor_i_i_i",
+ "Parrot_bxor_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 145 */
+ /* type PARROT_INLINE_OP, */
+ "bxor",
+ "bxor_i_ic_i",
+ "Parrot_bxor_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 146 */
+ /* type PARROT_INLINE_OP, */
+ "bxor",
+ "bxor_i_i_ic",
+ "Parrot_bxor_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 147 */
+ /* type PARROT_INLINE_OP, */
+ "eq",
+ "eq_i_i_ic",
+ "Parrot_eq_i_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 148 */
+ /* type PARROT_INLINE_OP, */
+ "eq",
+ "eq_ic_i_ic",
+ "Parrot_eq_ic_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 149 */
+ /* type PARROT_INLINE_OP, */
+ "eq",
+ "eq_i_ic_ic",
+ "Parrot_eq_i_ic_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 150 */
+ /* type PARROT_INLINE_OP, */
+ "eq",
+ "eq_n_n_ic",
+ "Parrot_eq_n_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 151 */
+ /* type PARROT_INLINE_OP, */
+ "eq",
+ "eq_nc_n_ic",
+ "Parrot_eq_nc_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 152 */
+ /* type PARROT_INLINE_OP, */
+ "eq",
+ "eq_n_nc_ic",
+ "Parrot_eq_n_nc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 153 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq",
+ "eq_s_s_ic",
+ "Parrot_eq_s_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 154 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq",
+ "eq_sc_s_ic",
+ "Parrot_eq_sc_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 155 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq",
+ "eq_s_sc_ic",
+ "Parrot_eq_s_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 156 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq",
+ "eq_p_p_ic",
+ "Parrot_eq_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 157 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq",
+ "eq_p_i_ic",
+ "Parrot_eq_p_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 158 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq",
+ "eq_p_ic_ic",
+ "Parrot_eq_p_ic_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 159 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq",
+ "eq_p_n_ic",
+ "Parrot_eq_p_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 160 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq",
+ "eq_p_nc_ic",
+ "Parrot_eq_p_nc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 161 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq",
+ "eq_p_s_ic",
+ "Parrot_eq_p_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 162 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq",
+ "eq_p_sc_ic",
+ "Parrot_eq_p_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 163 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq_str",
+ "eq_str_p_p_ic",
+ "Parrot_eq_str_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 164 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq_num",
+ "eq_num_p_p_ic",
+ "Parrot_eq_num_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 165 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq_addr",
+ "eq_addr_s_s_ic",
+ "Parrot_eq_addr_s_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 166 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq_addr",
+ "eq_addr_sc_s_ic",
+ "Parrot_eq_addr_sc_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 167 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq_addr",
+ "eq_addr_s_sc_ic",
+ "Parrot_eq_addr_s_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 168 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq_addr",
+ "eq_addr_sc_sc_ic",
+ "Parrot_eq_addr_sc_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 169 */
+ /* type PARROT_FUNCTION_OP, */
+ "eq_addr",
+ "eq_addr_p_p_ic",
+ "Parrot_eq_addr_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 170 */
+ /* type PARROT_INLINE_OP, */
+ "ne",
+ "ne_i_i_ic",
+ "Parrot_ne_i_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 171 */
+ /* type PARROT_INLINE_OP, */
+ "ne",
+ "ne_ic_i_ic",
+ "Parrot_ne_ic_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 172 */
+ /* type PARROT_INLINE_OP, */
+ "ne",
+ "ne_i_ic_ic",
+ "Parrot_ne_i_ic_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 173 */
+ /* type PARROT_INLINE_OP, */
+ "ne",
+ "ne_n_n_ic",
+ "Parrot_ne_n_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 174 */
+ /* type PARROT_INLINE_OP, */
+ "ne",
+ "ne_nc_n_ic",
+ "Parrot_ne_nc_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 175 */
+ /* type PARROT_INLINE_OP, */
+ "ne",
+ "ne_n_nc_ic",
+ "Parrot_ne_n_nc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 176 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne",
+ "ne_s_s_ic",
+ "Parrot_ne_s_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 177 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne",
+ "ne_sc_s_ic",
+ "Parrot_ne_sc_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 178 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne",
+ "ne_s_sc_ic",
+ "Parrot_ne_s_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 179 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne",
+ "ne_p_p_ic",
+ "Parrot_ne_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 180 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne",
+ "ne_p_i_ic",
+ "Parrot_ne_p_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 181 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne",
+ "ne_p_ic_ic",
+ "Parrot_ne_p_ic_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 182 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne",
+ "ne_p_n_ic",
+ "Parrot_ne_p_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 183 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne",
+ "ne_p_nc_ic",
+ "Parrot_ne_p_nc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 184 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne",
+ "ne_p_s_ic",
+ "Parrot_ne_p_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 185 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne",
+ "ne_p_sc_ic",
+ "Parrot_ne_p_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 186 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne_str",
+ "ne_str_p_p_ic",
+ "Parrot_ne_str_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 187 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne_num",
+ "ne_num_p_p_ic",
+ "Parrot_ne_num_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 188 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne_addr",
+ "ne_addr_s_s_ic",
+ "Parrot_ne_addr_s_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 189 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne_addr",
+ "ne_addr_sc_s_ic",
+ "Parrot_ne_addr_sc_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 190 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne_addr",
+ "ne_addr_s_sc_ic",
+ "Parrot_ne_addr_s_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 191 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne_addr",
+ "ne_addr_sc_sc_ic",
+ "Parrot_ne_addr_sc_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 192 */
+ /* type PARROT_FUNCTION_OP, */
+ "ne_addr",
+ "ne_addr_p_p_ic",
+ "Parrot_ne_addr_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 193 */
+ /* type PARROT_INLINE_OP, */
+ "lt",
+ "lt_i_i_ic",
+ "Parrot_lt_i_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 194 */
+ /* type PARROT_INLINE_OP, */
+ "lt",
+ "lt_ic_i_ic",
+ "Parrot_lt_ic_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 195 */
+ /* type PARROT_INLINE_OP, */
+ "lt",
+ "lt_i_ic_ic",
+ "Parrot_lt_i_ic_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 196 */
+ /* type PARROT_INLINE_OP, */
+ "lt",
+ "lt_n_n_ic",
+ "Parrot_lt_n_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 197 */
+ /* type PARROT_INLINE_OP, */
+ "lt",
+ "lt_nc_n_ic",
+ "Parrot_lt_nc_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 198 */
+ /* type PARROT_INLINE_OP, */
+ "lt",
+ "lt_n_nc_ic",
+ "Parrot_lt_n_nc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 199 */
+ /* type PARROT_FUNCTION_OP, */
+ "lt",
+ "lt_s_s_ic",
+ "Parrot_lt_s_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 200 */
+ /* type PARROT_FUNCTION_OP, */
+ "lt",
+ "lt_sc_s_ic",
+ "Parrot_lt_sc_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 201 */
+ /* type PARROT_FUNCTION_OP, */
+ "lt",
+ "lt_s_sc_ic",
+ "Parrot_lt_s_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 202 */
+ /* type PARROT_FUNCTION_OP, */
+ "lt",
+ "lt_p_p_ic",
+ "Parrot_lt_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 203 */
+ /* type PARROT_FUNCTION_OP, */
+ "lt",
+ "lt_p_i_ic",
+ "Parrot_lt_p_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 204 */
+ /* type PARROT_FUNCTION_OP, */
+ "lt",
+ "lt_p_ic_ic",
+ "Parrot_lt_p_ic_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 205 */
+ /* type PARROT_FUNCTION_OP, */
+ "lt",
+ "lt_p_n_ic",
+ "Parrot_lt_p_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 206 */
+ /* type PARROT_FUNCTION_OP, */
+ "lt",
+ "lt_p_nc_ic",
+ "Parrot_lt_p_nc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 207 */
+ /* type PARROT_FUNCTION_OP, */
+ "lt",
+ "lt_p_s_ic",
+ "Parrot_lt_p_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 208 */
+ /* type PARROT_FUNCTION_OP, */
+ "lt",
+ "lt_p_sc_ic",
+ "Parrot_lt_p_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 209 */
+ /* type PARROT_FUNCTION_OP, */
+ "lt_str",
+ "lt_str_p_p_ic",
+ "Parrot_lt_str_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 210 */
+ /* type PARROT_FUNCTION_OP, */
+ "lt_num",
+ "lt_num_p_p_ic",
+ "Parrot_lt_num_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 211 */
+ /* type PARROT_INLINE_OP, */
+ "le",
+ "le_i_i_ic",
+ "Parrot_le_i_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 212 */
+ /* type PARROT_INLINE_OP, */
+ "le",
+ "le_ic_i_ic",
+ "Parrot_le_ic_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 213 */
+ /* type PARROT_INLINE_OP, */
+ "le",
+ "le_i_ic_ic",
+ "Parrot_le_i_ic_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 214 */
+ /* type PARROT_INLINE_OP, */
+ "le",
+ "le_n_n_ic",
+ "Parrot_le_n_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 215 */
+ /* type PARROT_INLINE_OP, */
+ "le",
+ "le_nc_n_ic",
+ "Parrot_le_nc_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_NC, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 216 */
+ /* type PARROT_INLINE_OP, */
+ "le",
+ "le_n_nc_ic",
+ "Parrot_le_n_nc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 217 */
+ /* type PARROT_FUNCTION_OP, */
+ "le",
+ "le_s_s_ic",
+ "Parrot_le_s_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 218 */
+ /* type PARROT_FUNCTION_OP, */
+ "le",
+ "le_sc_s_ic",
+ "Parrot_le_sc_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 219 */
+ /* type PARROT_FUNCTION_OP, */
+ "le",
+ "le_s_sc_ic",
+ "Parrot_le_s_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 220 */
+ /* type PARROT_FUNCTION_OP, */
+ "le",
+ "le_p_p_ic",
+ "Parrot_le_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 221 */
+ /* type PARROT_FUNCTION_OP, */
+ "le",
+ "le_p_i_ic",
+ "Parrot_le_p_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 222 */
+ /* type PARROT_FUNCTION_OP, */
+ "le",
+ "le_p_ic_ic",
+ "Parrot_le_p_ic_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 223 */
+ /* type PARROT_FUNCTION_OP, */
+ "le",
+ "le_p_n_ic",
+ "Parrot_le_p_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 224 */
+ /* type PARROT_FUNCTION_OP, */
+ "le",
+ "le_p_nc_ic",
+ "Parrot_le_p_nc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 225 */
+ /* type PARROT_FUNCTION_OP, */
+ "le",
+ "le_p_s_ic",
+ "Parrot_le_p_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 226 */
+ /* type PARROT_FUNCTION_OP, */
+ "le",
+ "le_p_sc_ic",
+ "Parrot_le_p_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 227 */
+ /* type PARROT_FUNCTION_OP, */
+ "le_str",
+ "le_str_p_p_ic",
+ "Parrot_le_str_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 228 */
+ /* type PARROT_FUNCTION_OP, */
+ "le_num",
+ "le_num_p_p_ic",
+ "Parrot_le_num_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 229 */
+ /* type PARROT_FUNCTION_OP, */
+ "gt",
+ "gt_p_p_ic",
+ "Parrot_gt_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 230 */
+ /* type PARROT_FUNCTION_OP, */
+ "gt",
+ "gt_p_i_ic",
+ "Parrot_gt_p_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 231 */
+ /* type PARROT_FUNCTION_OP, */
+ "gt",
+ "gt_p_ic_ic",
+ "Parrot_gt_p_ic_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 232 */
+ /* type PARROT_FUNCTION_OP, */
+ "gt",
+ "gt_p_n_ic",
+ "Parrot_gt_p_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 233 */
+ /* type PARROT_FUNCTION_OP, */
+ "gt",
+ "gt_p_nc_ic",
+ "Parrot_gt_p_nc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 234 */
+ /* type PARROT_FUNCTION_OP, */
+ "gt",
+ "gt_p_s_ic",
+ "Parrot_gt_p_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 235 */
+ /* type PARROT_FUNCTION_OP, */
+ "gt",
+ "gt_p_sc_ic",
+ "Parrot_gt_p_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 236 */
+ /* type PARROT_FUNCTION_OP, */
+ "gt_str",
+ "gt_str_p_p_ic",
+ "Parrot_gt_str_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 237 */
+ /* type PARROT_FUNCTION_OP, */
+ "gt_num",
+ "gt_num_p_p_ic",
+ "Parrot_gt_num_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 238 */
+ /* type PARROT_FUNCTION_OP, */
+ "ge",
+ "ge_p_p_ic",
+ "Parrot_ge_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 239 */
+ /* type PARROT_FUNCTION_OP, */
+ "ge",
+ "ge_p_i_ic",
+ "Parrot_ge_p_i_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 240 */
+ /* type PARROT_FUNCTION_OP, */
+ "ge",
+ "ge_p_ic_ic",
+ "Parrot_ge_p_ic_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 241 */
+ /* type PARROT_FUNCTION_OP, */
+ "ge",
+ "ge_p_n_ic",
+ "Parrot_ge_p_n_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 242 */
+ /* type PARROT_FUNCTION_OP, */
+ "ge",
+ "ge_p_nc_ic",
+ "Parrot_ge_p_nc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_NC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 243 */
+ /* type PARROT_FUNCTION_OP, */
+ "ge",
+ "ge_p_s_ic",
+ "Parrot_ge_p_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 244 */
+ /* type PARROT_FUNCTION_OP, */
+ "ge",
+ "ge_p_sc_ic",
+ "Parrot_ge_p_sc_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 245 */
+ /* type PARROT_FUNCTION_OP, */
+ "ge_str",
+ "ge_str_p_p_ic",
+ "Parrot_ge_str_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 246 */
+ /* type PARROT_FUNCTION_OP, */
+ "ge_num",
+ "ge_num_p_p_ic",
+ "Parrot_ge_num_p_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 1 }
+ },
+ { /* 247 */
+ /* type PARROT_FUNCTION_OP, */
+ "if_null",
+ "if_null_p_ic",
+ "Parrot_if_null_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 248 */
+ /* type PARROT_FUNCTION_OP, */
+ "if_null",
+ "if_null_s_ic",
+ "Parrot_if_null_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 249 */
+ /* type PARROT_FUNCTION_OP, */
+ "unless_null",
+ "unless_null_p_ic",
+ "Parrot_unless_null_p_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 250 */
+ /* type PARROT_FUNCTION_OP, */
+ "unless_null",
+ "unless_null_s_ic",
+ "Parrot_unless_null_s_ic",
+ /* "", body */
+ PARROT_JUMP_RELATIVE,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 251 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_i_i",
+ "Parrot_cmp_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 252 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_ic_i",
+ "Parrot_cmp_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 253 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_i_ic",
+ "Parrot_cmp_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 254 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_n_n",
+ "Parrot_cmp_i_n_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 255 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_nc_n",
+ "Parrot_cmp_i_nc_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 256 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_n_nc",
+ "Parrot_cmp_i_n_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 257 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_s_s",
+ "Parrot_cmp_i_s_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 258 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_sc_s",
+ "Parrot_cmp_i_sc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 259 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_s_sc",
+ "Parrot_cmp_i_s_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 260 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_p_p",
+ "Parrot_cmp_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 261 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_p_i",
+ "Parrot_cmp_i_p_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 262 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_p_ic",
+ "Parrot_cmp_i_p_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 263 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_p_n",
+ "Parrot_cmp_i_p_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 264 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_p_nc",
+ "Parrot_cmp_i_p_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 265 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_p_s",
+ "Parrot_cmp_i_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 266 */
+ /* type PARROT_INLINE_OP, */
+ "cmp",
+ "cmp_i_p_sc",
+ "Parrot_cmp_i_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 267 */
+ /* type PARROT_INLINE_OP, */
+ "cmp_str",
+ "cmp_str_i_p_p",
+ "Parrot_cmp_str_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 268 */
+ /* type PARROT_INLINE_OP, */
+ "cmp_num",
+ "cmp_num_i_p_p",
+ "Parrot_cmp_num_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 269 */
+ /* type PARROT_INLINE_OP, */
+ "cmp_pmc",
+ "cmp_pmc_p_p_p",
+ "Parrot_cmp_pmc_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 270 */
+ /* type PARROT_INLINE_OP, */
+ "issame",
+ "issame_i_p_p",
+ "Parrot_issame_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 271 */
+ /* type PARROT_INLINE_OP, */
+ "issame",
+ "issame_i_s_s",
+ "Parrot_issame_i_s_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 272 */
+ /* type PARROT_INLINE_OP, */
+ "issame",
+ "issame_i_sc_s",
+ "Parrot_issame_i_sc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 273 */
+ /* type PARROT_INLINE_OP, */
+ "issame",
+ "issame_i_s_sc",
+ "Parrot_issame_i_s_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 274 */
+ /* type PARROT_INLINE_OP, */
+ "issame",
+ "issame_i_sc_sc",
+ "Parrot_issame_i_sc_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 275 */
+ /* type PARROT_INLINE_OP, */
+ "isntsame",
+ "isntsame_i_p_p",
+ "Parrot_isntsame_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 276 */
+ /* type PARROT_INLINE_OP, */
+ "isntsame",
+ "isntsame_i_s_s",
+ "Parrot_isntsame_i_s_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 277 */
+ /* type PARROT_INLINE_OP, */
+ "isntsame",
+ "isntsame_i_sc_s",
+ "Parrot_isntsame_i_sc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 278 */
+ /* type PARROT_INLINE_OP, */
+ "isntsame",
+ "isntsame_i_s_sc",
+ "Parrot_isntsame_i_s_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 279 */
+ /* type PARROT_INLINE_OP, */
+ "isntsame",
+ "isntsame_i_sc_sc",
+ "Parrot_isntsame_i_sc_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 280 */
+ /* type PARROT_INLINE_OP, */
+ "istrue",
+ "istrue_i_p",
+ "Parrot_istrue_i_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 281 */
+ /* type PARROT_INLINE_OP, */
+ "isfalse",
+ "isfalse_i_p",
+ "Parrot_isfalse_i_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 282 */
+ /* type PARROT_INLINE_OP, */
+ "isnull",
+ "isnull_i_p",
+ "Parrot_isnull_i_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 283 */
+ /* type PARROT_INLINE_OP, */
+ "isnull",
+ "isnull_i_pc",
+ "Parrot_isnull_i_pc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 284 */
+ /* type PARROT_INLINE_OP, */
+ "isnull",
+ "isnull_i_s",
+ "Parrot_isnull_i_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 285 */
+ /* type PARROT_INLINE_OP, */
+ "isnull",
+ "isnull_i_sc",
+ "Parrot_isnull_i_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 286 */
+ /* type PARROT_INLINE_OP, */
+ "isgt",
+ "isgt_i_p_p",
+ "Parrot_isgt_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 287 */
+ /* type PARROT_INLINE_OP, */
+ "isge",
+ "isge_i_p_p",
+ "Parrot_isge_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 288 */
+ /* type PARROT_INLINE_OP, */
+ "isle",
+ "isle_i_i_i",
+ "Parrot_isle_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 289 */
+ /* type PARROT_INLINE_OP, */
+ "isle",
+ "isle_i_ic_i",
+ "Parrot_isle_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 290 */
+ /* type PARROT_INLINE_OP, */
+ "isle",
+ "isle_i_i_ic",
+ "Parrot_isle_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 291 */
+ /* type PARROT_INLINE_OP, */
+ "isle",
+ "isle_i_n_n",
+ "Parrot_isle_i_n_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 292 */
+ /* type PARROT_INLINE_OP, */
+ "isle",
+ "isle_i_nc_n",
+ "Parrot_isle_i_nc_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 293 */
+ /* type PARROT_INLINE_OP, */
+ "isle",
+ "isle_i_n_nc",
+ "Parrot_isle_i_n_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 294 */
+ /* type PARROT_INLINE_OP, */
+ "isle",
+ "isle_i_s_s",
+ "Parrot_isle_i_s_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 295 */
+ /* type PARROT_INLINE_OP, */
+ "isle",
+ "isle_i_sc_s",
+ "Parrot_isle_i_sc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 296 */
+ /* type PARROT_INLINE_OP, */
+ "isle",
+ "isle_i_s_sc",
+ "Parrot_isle_i_s_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 297 */
+ /* type PARROT_INLINE_OP, */
+ "isle",
+ "isle_i_p_p",
+ "Parrot_isle_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 298 */
+ /* type PARROT_INLINE_OP, */
+ "islt",
+ "islt_i_i_i",
+ "Parrot_islt_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 299 */
+ /* type PARROT_INLINE_OP, */
+ "islt",
+ "islt_i_ic_i",
+ "Parrot_islt_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 300 */
+ /* type PARROT_INLINE_OP, */
+ "islt",
+ "islt_i_i_ic",
+ "Parrot_islt_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 301 */
+ /* type PARROT_INLINE_OP, */
+ "islt",
+ "islt_i_n_n",
+ "Parrot_islt_i_n_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 302 */
+ /* type PARROT_INLINE_OP, */
+ "islt",
+ "islt_i_nc_n",
+ "Parrot_islt_i_nc_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 303 */
+ /* type PARROT_INLINE_OP, */
+ "islt",
+ "islt_i_n_nc",
+ "Parrot_islt_i_n_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 304 */
+ /* type PARROT_INLINE_OP, */
+ "islt",
+ "islt_i_s_s",
+ "Parrot_islt_i_s_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 305 */
+ /* type PARROT_INLINE_OP, */
+ "islt",
+ "islt_i_sc_s",
+ "Parrot_islt_i_sc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 306 */
+ /* type PARROT_INLINE_OP, */
+ "islt",
+ "islt_i_s_sc",
+ "Parrot_islt_i_s_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 307 */
+ /* type PARROT_INLINE_OP, */
+ "islt",
+ "islt_i_p_p",
+ "Parrot_islt_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 308 */
+ /* type PARROT_INLINE_OP, */
+ "iseq",
+ "iseq_i_i_i",
+ "Parrot_iseq_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 309 */
+ /* type PARROT_INLINE_OP, */
+ "iseq",
+ "iseq_i_ic_i",
+ "Parrot_iseq_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 310 */
+ /* type PARROT_INLINE_OP, */
+ "iseq",
+ "iseq_i_i_ic",
+ "Parrot_iseq_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 311 */
+ /* type PARROT_INLINE_OP, */
+ "iseq",
+ "iseq_i_n_n",
+ "Parrot_iseq_i_n_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 312 */
+ /* type PARROT_INLINE_OP, */
+ "iseq",
+ "iseq_i_nc_n",
+ "Parrot_iseq_i_nc_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 313 */
+ /* type PARROT_INLINE_OP, */
+ "iseq",
+ "iseq_i_n_nc",
+ "Parrot_iseq_i_n_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 314 */
+ /* type PARROT_INLINE_OP, */
+ "iseq",
+ "iseq_i_s_s",
+ "Parrot_iseq_i_s_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 315 */
+ /* type PARROT_INLINE_OP, */
+ "iseq",
+ "iseq_i_sc_s",
+ "Parrot_iseq_i_sc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 316 */
+ /* type PARROT_INLINE_OP, */
+ "iseq",
+ "iseq_i_s_sc",
+ "Parrot_iseq_i_s_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 317 */
+ /* type PARROT_INLINE_OP, */
+ "iseq",
+ "iseq_i_p_p",
+ "Parrot_iseq_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 318 */
+ /* type PARROT_INLINE_OP, */
+ "isne",
+ "isne_i_i_i",
+ "Parrot_isne_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 319 */
+ /* type PARROT_INLINE_OP, */
+ "isne",
+ "isne_i_ic_i",
+ "Parrot_isne_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 320 */
+ /* type PARROT_INLINE_OP, */
+ "isne",
+ "isne_i_i_ic",
+ "Parrot_isne_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 321 */
+ /* type PARROT_INLINE_OP, */
+ "isne",
+ "isne_i_n_n",
+ "Parrot_isne_i_n_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 322 */
+ /* type PARROT_INLINE_OP, */
+ "isne",
+ "isne_i_nc_n",
+ "Parrot_isne_i_nc_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_NC, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 323 */
+ /* type PARROT_INLINE_OP, */
+ "isne",
+ "isne_i_n_nc",
+ "Parrot_isne_i_n_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 324 */
+ /* type PARROT_INLINE_OP, */
+ "isne",
+ "isne_i_s_s",
+ "Parrot_isne_i_s_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 325 */
+ /* type PARROT_INLINE_OP, */
+ "isne",
+ "isne_i_sc_s",
+ "Parrot_isne_i_sc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 326 */
+ /* type PARROT_INLINE_OP, */
+ "isne",
+ "isne_i_s_sc",
+ "Parrot_isne_i_s_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 327 */
+ /* type PARROT_INLINE_OP, */
+ "isne",
+ "isne_i_p_p",
+ "Parrot_isne_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 328 */
+ /* type PARROT_INLINE_OP, */
+ "and",
+ "and_i_i_i",
+ "Parrot_and_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 329 */
+ /* type PARROT_INLINE_OP, */
+ "and",
+ "and_i_ic_i",
+ "Parrot_and_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 330 */
+ /* type PARROT_INLINE_OP, */
+ "and",
+ "and_i_i_ic",
+ "Parrot_and_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 331 */
+ /* type PARROT_INLINE_OP, */
+ "and",
+ "and_p_p_p",
+ "Parrot_and_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 332 */
+ /* type PARROT_INLINE_OP, */
+ "not",
+ "not_i",
+ "Parrot_not_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 333 */
+ /* type PARROT_INLINE_OP, */
+ "not",
+ "not_i_i",
+ "Parrot_not_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 334 */
+ /* type PARROT_INLINE_OP, */
+ "not",
+ "not_p",
+ "Parrot_not_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 335 */
+ /* type PARROT_INLINE_OP, */
+ "not",
+ "not_p_p",
+ "Parrot_not_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 336 */
+ /* type PARROT_INLINE_OP, */
+ "or",
+ "or_i_i_i",
+ "Parrot_or_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 337 */
+ /* type PARROT_INLINE_OP, */
+ "or",
+ "or_i_ic_i",
+ "Parrot_or_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 338 */
+ /* type PARROT_INLINE_OP, */
+ "or",
+ "or_i_i_ic",
+ "Parrot_or_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 339 */
+ /* type PARROT_INLINE_OP, */
+ "or",
+ "or_p_p_p",
+ "Parrot_or_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 340 */
+ /* type PARROT_INLINE_OP, */
+ "xor",
+ "xor_i_i_i",
+ "Parrot_xor_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 341 */
+ /* type PARROT_INLINE_OP, */
+ "xor",
+ "xor_i_ic_i",
+ "Parrot_xor_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 342 */
+ /* type PARROT_INLINE_OP, */
+ "xor",
+ "xor_i_i_ic",
+ "Parrot_xor_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 343 */
+ /* type PARROT_INLINE_OP, */
+ "xor",
+ "xor_p_p_p",
+ "Parrot_xor_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 344 */
+ /* type PARROT_INLINE_OP, */
+ "print",
+ "print_i",
+ "Parrot_print_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 345 */
+ /* type PARROT_INLINE_OP, */
+ "print",
+ "print_ic",
+ "Parrot_print_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 346 */
+ /* type PARROT_INLINE_OP, */
+ "print",
+ "print_n",
+ "Parrot_print_n",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_N },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 347 */
+ /* type PARROT_INLINE_OP, */
+ "print",
+ "print_nc",
+ "Parrot_print_nc",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 348 */
+ /* type PARROT_FUNCTION_OP, */
+ "print",
+ "print_s",
+ "Parrot_print_s",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_S },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 349 */
+ /* type PARROT_FUNCTION_OP, */
+ "print",
+ "print_sc",
+ "Parrot_print_sc",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 350 */
+ /* type PARROT_FUNCTION_OP, */
+ "print",
+ "print_p",
+ "Parrot_print_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 351 */
+ /* type PARROT_INLINE_OP, */
+ "say",
+ "say_i",
+ "Parrot_say_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 352 */
+ /* type PARROT_INLINE_OP, */
+ "say",
+ "say_ic",
+ "Parrot_say_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 353 */
+ /* type PARROT_INLINE_OP, */
+ "say",
+ "say_n",
+ "Parrot_say_n",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_N },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 354 */
+ /* type PARROT_INLINE_OP, */
+ "say",
+ "say_nc",
+ "Parrot_say_nc",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 355 */
+ /* type PARROT_FUNCTION_OP, */
+ "say",
+ "say_s",
+ "Parrot_say_s",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_S },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 356 */
+ /* type PARROT_FUNCTION_OP, */
+ "say",
+ "say_sc",
+ "Parrot_say_sc",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 357 */
+ /* type PARROT_FUNCTION_OP, */
+ "say",
+ "say_p",
+ "Parrot_say_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 358 */
+ /* type PARROT_FUNCTION_OP, */
+ "print",
+ "print_p_i",
+ "Parrot_print_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 359 */
+ /* type PARROT_FUNCTION_OP, */
+ "print",
+ "print_p_ic",
+ "Parrot_print_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 360 */
+ /* type PARROT_FUNCTION_OP, */
+ "print",
+ "print_p_n",
+ "Parrot_print_p_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 361 */
+ /* type PARROT_FUNCTION_OP, */
+ "print",
+ "print_p_nc",
+ "Parrot_print_p_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 362 */
+ /* type PARROT_FUNCTION_OP, */
+ "print",
+ "print_p_s",
+ "Parrot_print_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 363 */
+ /* type PARROT_FUNCTION_OP, */
+ "print",
+ "print_p_sc",
+ "Parrot_print_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 364 */
+ /* type PARROT_FUNCTION_OP, */
+ "print",
+ "print_p_p",
+ "Parrot_print_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 365 */
+ /* type PARROT_INLINE_OP, */
+ "getstdin",
+ "getstdin_p",
+ "Parrot_getstdin_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 366 */
+ /* type PARROT_INLINE_OP, */
+ "getstdout",
+ "getstdout_p",
+ "Parrot_getstdout_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 367 */
+ /* type PARROT_INLINE_OP, */
+ "getstderr",
+ "getstderr_p",
+ "Parrot_getstderr_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 368 */
+ /* type PARROT_INLINE_OP, */
+ "abs",
+ "abs_i",
+ "Parrot_abs_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 369 */
+ /* type PARROT_INLINE_OP, */
+ "abs",
+ "abs_n",
+ "Parrot_abs_n",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_N },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 370 */
+ /* type PARROT_INLINE_OP, */
+ "abs",
+ "abs_i_i",
+ "Parrot_abs_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 371 */
+ /* type PARROT_INLINE_OP, */
+ "abs",
+ "abs_n_n",
+ "Parrot_abs_n_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 372 */
+ /* type PARROT_INLINE_OP, */
+ "abs",
+ "abs_p",
+ "Parrot_abs_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 373 */
+ /* type PARROT_INLINE_OP, */
+ "abs",
+ "abs_p_p",
+ "Parrot_abs_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 374 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_i_i",
+ "Parrot_add_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 375 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_i_ic",
+ "Parrot_add_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 376 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_n_n",
+ "Parrot_add_n_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 377 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_n_nc",
+ "Parrot_add_n_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 378 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_p_p",
+ "Parrot_add_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 379 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_p_i",
+ "Parrot_add_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 380 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_p_ic",
+ "Parrot_add_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 381 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_p_n",
+ "Parrot_add_p_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 382 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_p_nc",
+ "Parrot_add_p_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 383 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_i_i_i",
+ "Parrot_add_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 384 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_i_ic_i",
+ "Parrot_add_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 385 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_i_i_ic",
+ "Parrot_add_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 386 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_n_n_n",
+ "Parrot_add_n_n_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 387 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_n_nc_n",
+ "Parrot_add_n_nc_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 388 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_n_n_nc",
+ "Parrot_add_n_n_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 389 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_p_p_p",
+ "Parrot_add_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 390 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_p_p_i",
+ "Parrot_add_p_p_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 391 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_p_p_ic",
+ "Parrot_add_p_p_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 392 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_p_p_n",
+ "Parrot_add_p_p_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 393 */
+ /* type PARROT_INLINE_OP, */
+ "add",
+ "add_p_p_nc",
+ "Parrot_add_p_p_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 394 */
+ /* type PARROT_INLINE_OP, */
+ "dec",
+ "dec_i",
+ "Parrot_dec_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 395 */
+ /* type PARROT_INLINE_OP, */
+ "dec",
+ "dec_n",
+ "Parrot_dec_n",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_N },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 396 */
+ /* type PARROT_INLINE_OP, */
+ "dec",
+ "dec_p",
+ "Parrot_dec_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 397 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_i_i",
+ "Parrot_div_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 398 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_i_ic",
+ "Parrot_div_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 399 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_n_n",
+ "Parrot_div_n_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 400 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_n_nc",
+ "Parrot_div_n_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 401 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_p_p",
+ "Parrot_div_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 402 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_p_i",
+ "Parrot_div_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 403 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_p_ic",
+ "Parrot_div_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 404 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_p_n",
+ "Parrot_div_p_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 405 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_p_nc",
+ "Parrot_div_p_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 406 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_i_i_i",
+ "Parrot_div_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 407 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_i_ic_i",
+ "Parrot_div_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 408 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_i_i_ic",
+ "Parrot_div_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 409 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_i_ic_ic",
+ "Parrot_div_i_ic_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 410 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_n_n_n",
+ "Parrot_div_n_n_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 411 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_n_nc_n",
+ "Parrot_div_n_nc_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 412 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_n_n_nc",
+ "Parrot_div_n_n_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 413 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_n_nc_nc",
+ "Parrot_div_n_nc_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 414 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_p_p_p",
+ "Parrot_div_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 415 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_p_p_i",
+ "Parrot_div_p_p_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 416 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_p_p_ic",
+ "Parrot_div_p_p_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 417 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_p_p_n",
+ "Parrot_div_p_p_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 418 */
+ /* type PARROT_INLINE_OP, */
+ "div",
+ "div_p_p_nc",
+ "Parrot_div_p_p_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 419 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_i_i",
+ "Parrot_fdiv_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 420 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_i_ic",
+ "Parrot_fdiv_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 421 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_n_n",
+ "Parrot_fdiv_n_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 422 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_n_nc",
+ "Parrot_fdiv_n_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 423 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_p_p",
+ "Parrot_fdiv_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 424 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_p_i",
+ "Parrot_fdiv_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 425 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_p_ic",
+ "Parrot_fdiv_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 426 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_p_n",
+ "Parrot_fdiv_p_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 427 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_p_nc",
+ "Parrot_fdiv_p_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 428 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_i_i_i",
+ "Parrot_fdiv_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 429 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_i_ic_i",
+ "Parrot_fdiv_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 430 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_i_i_ic",
+ "Parrot_fdiv_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 431 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_n_n_n",
+ "Parrot_fdiv_n_n_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 432 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_n_nc_n",
+ "Parrot_fdiv_n_nc_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 433 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_n_n_nc",
+ "Parrot_fdiv_n_n_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 434 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_p_p_p",
+ "Parrot_fdiv_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 435 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_p_p_i",
+ "Parrot_fdiv_p_p_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 436 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_p_p_ic",
+ "Parrot_fdiv_p_p_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 437 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_p_p_n",
+ "Parrot_fdiv_p_p_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 438 */
+ /* type PARROT_INLINE_OP, */
+ "fdiv",
+ "fdiv_p_p_nc",
+ "Parrot_fdiv_p_p_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 439 */
+ /* type PARROT_INLINE_OP, */
+ "ceil",
+ "ceil_n",
+ "Parrot_ceil_n",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_N },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 440 */
+ /* type PARROT_INLINE_OP, */
+ "ceil",
+ "ceil_i_n",
+ "Parrot_ceil_i_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 441 */
+ /* type PARROT_INLINE_OP, */
+ "ceil",
+ "ceil_n_n",
+ "Parrot_ceil_n_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 442 */
+ /* type PARROT_INLINE_OP, */
+ "floor",
+ "floor_n",
+ "Parrot_floor_n",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_N },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 443 */
+ /* type PARROT_INLINE_OP, */
+ "floor",
+ "floor_i_n",
+ "Parrot_floor_i_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 444 */
+ /* type PARROT_INLINE_OP, */
+ "floor",
+ "floor_n_n",
+ "Parrot_floor_n_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 445 */
+ /* type PARROT_INLINE_OP, */
+ "inc",
+ "inc_i",
+ "Parrot_inc_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 446 */
+ /* type PARROT_INLINE_OP, */
+ "inc",
+ "inc_n",
+ "Parrot_inc_n",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_N },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 447 */
+ /* type PARROT_INLINE_OP, */
+ "inc",
+ "inc_p",
+ "Parrot_inc_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 448 */
+ /* type PARROT_FUNCTION_OP, */
+ "mod",
+ "mod_i_i",
+ "Parrot_mod_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 449 */
+ /* type PARROT_FUNCTION_OP, */
+ "mod",
+ "mod_i_ic",
+ "Parrot_mod_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 450 */
+ /* type PARROT_FUNCTION_OP, */
+ "mod",
+ "mod_n_n",
+ "Parrot_mod_n_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 451 */
+ /* type PARROT_FUNCTION_OP, */
+ "mod",
+ "mod_n_nc",
+ "Parrot_mod_n_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 452 */
+ /* type PARROT_INLINE_OP, */
+ "mod",
+ "mod_p_p",
+ "Parrot_mod_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 453 */
+ /* type PARROT_INLINE_OP, */
+ "mod",
+ "mod_p_i",
+ "Parrot_mod_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 454 */
+ /* type PARROT_INLINE_OP, */
+ "mod",
+ "mod_p_ic",
+ "Parrot_mod_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 455 */
+ /* type PARROT_INLINE_OP, */
+ "mod",
+ "mod_p_n",
+ "Parrot_mod_p_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 456 */
+ /* type PARROT_INLINE_OP, */
+ "mod",
+ "mod_p_nc",
+ "Parrot_mod_p_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 457 */
+ /* type PARROT_FUNCTION_OP, */
+ "mod",
+ "mod_i_i_i",
+ "Parrot_mod_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 458 */
+ /* type PARROT_FUNCTION_OP, */
+ "mod",
+ "mod_i_ic_i",
+ "Parrot_mod_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 459 */
+ /* type PARROT_FUNCTION_OP, */
+ "mod",
+ "mod_i_i_ic",
+ "Parrot_mod_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 460 */
+ /* type PARROT_FUNCTION_OP, */
+ "mod",
+ "mod_n_n_n",
+ "Parrot_mod_n_n_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 461 */
+ /* type PARROT_FUNCTION_OP, */
+ "mod",
+ "mod_n_nc_n",
+ "Parrot_mod_n_nc_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 462 */
+ /* type PARROT_FUNCTION_OP, */
+ "mod",
+ "mod_n_n_nc",
+ "Parrot_mod_n_n_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 463 */
+ /* type PARROT_INLINE_OP, */
+ "mod",
+ "mod_p_p_p",
+ "Parrot_mod_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 464 */
+ /* type PARROT_INLINE_OP, */
+ "mod",
+ "mod_p_p_i",
+ "Parrot_mod_p_p_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 465 */
+ /* type PARROT_INLINE_OP, */
+ "mod",
+ "mod_p_p_ic",
+ "Parrot_mod_p_p_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 466 */
+ /* type PARROT_INLINE_OP, */
+ "mod",
+ "mod_p_p_n",
+ "Parrot_mod_p_p_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 467 */
+ /* type PARROT_INLINE_OP, */
+ "mod",
+ "mod_p_p_nc",
+ "Parrot_mod_p_p_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 468 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_i_i",
+ "Parrot_mul_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 469 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_i_ic",
+ "Parrot_mul_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 470 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_n_n",
+ "Parrot_mul_n_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 471 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_n_nc",
+ "Parrot_mul_n_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 472 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_p_p",
+ "Parrot_mul_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 473 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_p_i",
+ "Parrot_mul_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 474 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_p_ic",
+ "Parrot_mul_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 475 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_p_n",
+ "Parrot_mul_p_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 476 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_p_nc",
+ "Parrot_mul_p_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 477 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_i_i_i",
+ "Parrot_mul_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 478 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_i_ic_i",
+ "Parrot_mul_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 479 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_i_i_ic",
+ "Parrot_mul_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 480 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_n_n_n",
+ "Parrot_mul_n_n_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 481 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_n_nc_n",
+ "Parrot_mul_n_nc_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 482 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_n_n_nc",
+ "Parrot_mul_n_n_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 483 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_p_p_p",
+ "Parrot_mul_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 484 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_p_p_i",
+ "Parrot_mul_p_p_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 485 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_p_p_ic",
+ "Parrot_mul_p_p_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 486 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_p_p_n",
+ "Parrot_mul_p_p_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 487 */
+ /* type PARROT_INLINE_OP, */
+ "mul",
+ "mul_p_p_nc",
+ "Parrot_mul_p_p_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 488 */
+ /* type PARROT_INLINE_OP, */
+ "neg",
+ "neg_i",
+ "Parrot_neg_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 489 */
+ /* type PARROT_INLINE_OP, */
+ "neg",
+ "neg_n",
+ "Parrot_neg_n",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_N },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 490 */
+ /* type PARROT_INLINE_OP, */
+ "neg",
+ "neg_p",
+ "Parrot_neg_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 491 */
+ /* type PARROT_INLINE_OP, */
+ "neg",
+ "neg_i_i",
+ "Parrot_neg_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 492 */
+ /* type PARROT_INLINE_OP, */
+ "neg",
+ "neg_n_n",
+ "Parrot_neg_n_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 493 */
+ /* type PARROT_INLINE_OP, */
+ "neg",
+ "neg_p_p",
+ "Parrot_neg_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 494 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_i_i",
+ "Parrot_sub_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 495 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_i_ic",
+ "Parrot_sub_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 496 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_n_n",
+ "Parrot_sub_n_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 497 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_n_nc",
+ "Parrot_sub_n_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 498 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_p_p",
+ "Parrot_sub_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 499 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_p_i",
+ "Parrot_sub_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 500 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_p_ic",
+ "Parrot_sub_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 501 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_p_n",
+ "Parrot_sub_p_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 502 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_p_nc",
+ "Parrot_sub_p_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 503 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_i_i_i",
+ "Parrot_sub_i_i_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 504 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_i_ic_i",
+ "Parrot_sub_i_ic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 505 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_i_i_ic",
+ "Parrot_sub_i_i_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 506 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_n_n_n",
+ "Parrot_sub_n_n_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 507 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_n_nc_n",
+ "Parrot_sub_n_nc_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_NC, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 508 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_n_n_nc",
+ "Parrot_sub_n_n_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 509 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_p_p_p",
+ "Parrot_sub_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 510 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_p_p_i",
+ "Parrot_sub_p_p_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 511 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_p_p_ic",
+ "Parrot_sub_p_p_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 512 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_p_p_n",
+ "Parrot_sub_p_p_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 513 */
+ /* type PARROT_INLINE_OP, */
+ "sub",
+ "sub_p_p_nc",
+ "Parrot_sub_p_p_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 514 */
+ /* type PARROT_INLINE_OP, */
+ "sqrt",
+ "sqrt_n_n",
+ "Parrot_sqrt_n_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 515 */
+ /* type PARROT_FUNCTION_OP, */
+ "callmethodcc",
+ "callmethodcc_p_s",
+ "Parrot_callmethodcc_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 516 */
+ /* type PARROT_FUNCTION_OP, */
+ "callmethodcc",
+ "callmethodcc_p_sc",
+ "Parrot_callmethodcc_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 517 */
+ /* type PARROT_FUNCTION_OP, */
+ "callmethodcc",
+ "callmethodcc_p_p",
+ "Parrot_callmethodcc_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 518 */
+ /* type PARROT_FUNCTION_OP, */
+ "callmethod",
+ "callmethod_p_s_p",
+ "Parrot_callmethod_p_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 519 */
+ /* type PARROT_FUNCTION_OP, */
+ "callmethod",
+ "callmethod_p_sc_p",
+ "Parrot_callmethod_p_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 520 */
+ /* type PARROT_FUNCTION_OP, */
+ "callmethod",
+ "callmethod_p_p_p",
+ "Parrot_callmethod_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 521 */
+ /* type PARROT_FUNCTION_OP, */
+ "tailcallmethod",
+ "tailcallmethod_p_s",
+ "Parrot_tailcallmethod_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 522 */
+ /* type PARROT_FUNCTION_OP, */
+ "tailcallmethod",
+ "tailcallmethod_p_sc",
+ "Parrot_tailcallmethod_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 523 */
+ /* type PARROT_FUNCTION_OP, */
+ "tailcallmethod",
+ "tailcallmethod_p_p",
+ "Parrot_tailcallmethod_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 524 */
+ /* type PARROT_INLINE_OP, */
+ "addmethod",
+ "addmethod_p_s_p",
+ "Parrot_addmethod_p_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 525 */
+ /* type PARROT_INLINE_OP, */
+ "addmethod",
+ "addmethod_p_sc_p",
+ "Parrot_addmethod_p_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 526 */
+ /* type PARROT_INLINE_OP, */
+ "can",
+ "can_i_p_s",
+ "Parrot_can_i_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 527 */
+ /* type PARROT_INLINE_OP, */
+ "can",
+ "can_i_p_sc",
+ "Parrot_can_i_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 528 */
+ /* type PARROT_INLINE_OP, */
+ "does",
+ "does_i_p_s",
+ "Parrot_does_i_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 529 */
+ /* type PARROT_INLINE_OP, */
+ "does",
+ "does_i_p_sc",
+ "Parrot_does_i_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 530 */
+ /* type PARROT_INLINE_OP, */
+ "does",
+ "does_i_p_p",
+ "Parrot_does_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 531 */
+ /* type PARROT_INLINE_OP, */
+ "does",
+ "does_i_p_pc",
+ "Parrot_does_i_p_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 532 */
+ /* type PARROT_INLINE_OP, */
+ "isa",
+ "isa_i_p_s",
+ "Parrot_isa_i_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 533 */
+ /* type PARROT_INLINE_OP, */
+ "isa",
+ "isa_i_p_sc",
+ "Parrot_isa_i_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 534 */
+ /* type PARROT_INLINE_OP, */
+ "isa",
+ "isa_i_p_p",
+ "Parrot_isa_i_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 535 */
+ /* type PARROT_INLINE_OP, */
+ "isa",
+ "isa_i_p_pc",
+ "Parrot_isa_i_p_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 536 */
+ /* type PARROT_INLINE_OP, */
+ "newclass",
+ "newclass_p_s",
+ "Parrot_newclass_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 537 */
+ /* type PARROT_INLINE_OP, */
+ "newclass",
+ "newclass_p_sc",
+ "Parrot_newclass_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 538 */
+ /* type PARROT_INLINE_OP, */
+ "newclass",
+ "newclass_p_p",
+ "Parrot_newclass_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 539 */
+ /* type PARROT_INLINE_OP, */
+ "newclass",
+ "newclass_p_pc",
+ "Parrot_newclass_p_pc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 540 */
+ /* type PARROT_INLINE_OP, */
+ "subclass",
+ "subclass_p_p",
+ "Parrot_subclass_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 541 */
+ /* type PARROT_INLINE_OP, */
+ "subclass",
+ "subclass_p_pc",
+ "Parrot_subclass_p_pc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 542 */
+ /* type PARROT_INLINE_OP, */
+ "subclass",
+ "subclass_p_p_s",
+ "Parrot_subclass_p_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 543 */
+ /* type PARROT_INLINE_OP, */
+ "subclass",
+ "subclass_p_pc_s",
+ "Parrot_subclass_p_pc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 544 */
+ /* type PARROT_INLINE_OP, */
+ "subclass",
+ "subclass_p_p_sc",
+ "Parrot_subclass_p_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 545 */
+ /* type PARROT_INLINE_OP, */
+ "subclass",
+ "subclass_p_pc_sc",
+ "Parrot_subclass_p_pc_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 546 */
+ /* type PARROT_INLINE_OP, */
+ "subclass",
+ "subclass_p_p_p",
+ "Parrot_subclass_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 547 */
+ /* type PARROT_INLINE_OP, */
+ "subclass",
+ "subclass_p_pc_p",
+ "Parrot_subclass_p_pc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 548 */
+ /* type PARROT_INLINE_OP, */
+ "subclass",
+ "subclass_p_p_pc",
+ "Parrot_subclass_p_p_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 549 */
+ /* type PARROT_INLINE_OP, */
+ "subclass",
+ "subclass_p_pc_pc",
+ "Parrot_subclass_p_pc_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 550 */
+ /* type PARROT_FUNCTION_OP, */
+ "subclass",
+ "subclass_p_s",
+ "Parrot_subclass_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 551 */
+ /* type PARROT_FUNCTION_OP, */
+ "subclass",
+ "subclass_p_sc",
+ "Parrot_subclass_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 552 */
+ /* type PARROT_FUNCTION_OP, */
+ "subclass",
+ "subclass_p_s_s",
+ "Parrot_subclass_p_s_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 553 */
+ /* type PARROT_FUNCTION_OP, */
+ "subclass",
+ "subclass_p_sc_s",
+ "Parrot_subclass_p_sc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 554 */
+ /* type PARROT_FUNCTION_OP, */
+ "subclass",
+ "subclass_p_s_sc",
+ "Parrot_subclass_p_s_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 555 */
+ /* type PARROT_FUNCTION_OP, */
+ "subclass",
+ "subclass_p_sc_sc",
+ "Parrot_subclass_p_sc_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 556 */
+ /* type PARROT_FUNCTION_OP, */
+ "subclass",
+ "subclass_p_s_p",
+ "Parrot_subclass_p_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 557 */
+ /* type PARROT_FUNCTION_OP, */
+ "subclass",
+ "subclass_p_sc_p",
+ "Parrot_subclass_p_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 558 */
+ /* type PARROT_FUNCTION_OP, */
+ "subclass",
+ "subclass_p_s_pc",
+ "Parrot_subclass_p_s_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 559 */
+ /* type PARROT_FUNCTION_OP, */
+ "subclass",
+ "subclass_p_sc_pc",
+ "Parrot_subclass_p_sc_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 560 */
+ /* type PARROT_INLINE_OP, */
+ "get_class",
+ "get_class_p_s",
+ "Parrot_get_class_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 561 */
+ /* type PARROT_INLINE_OP, */
+ "get_class",
+ "get_class_p_sc",
+ "Parrot_get_class_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 562 */
+ /* type PARROT_INLINE_OP, */
+ "get_class",
+ "get_class_p_p",
+ "Parrot_get_class_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 563 */
+ /* type PARROT_INLINE_OP, */
+ "get_class",
+ "get_class_p_pc",
+ "Parrot_get_class_p_pc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 564 */
+ /* type PARROT_INLINE_OP, */
+ "class",
+ "class_p_p",
+ "Parrot_class_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 565 */
+ /* type PARROT_INLINE_OP, */
+ "addparent",
+ "addparent_p_p",
+ "Parrot_addparent_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 566 */
+ /* type PARROT_INLINE_OP, */
+ "removeparent",
+ "removeparent_p_p",
+ "Parrot_removeparent_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 567 */
+ /* type PARROT_INLINE_OP, */
+ "addrole",
+ "addrole_p_p",
+ "Parrot_addrole_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 568 */
+ /* type PARROT_INLINE_OP, */
+ "addattribute",
+ "addattribute_p_s",
+ "Parrot_addattribute_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 569 */
+ /* type PARROT_INLINE_OP, */
+ "addattribute",
+ "addattribute_p_sc",
+ "Parrot_addattribute_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 570 */
+ /* type PARROT_FUNCTION_OP, */
+ "removeattribute",
+ "removeattribute_p_s",
+ "Parrot_removeattribute_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 571 */
+ /* type PARROT_FUNCTION_OP, */
+ "removeattribute",
+ "removeattribute_p_sc",
+ "Parrot_removeattribute_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 572 */
+ /* type PARROT_INLINE_OP, */
+ "getattribute",
+ "getattribute_p_p_s",
+ "Parrot_getattribute_p_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 573 */
+ /* type PARROT_INLINE_OP, */
+ "getattribute",
+ "getattribute_p_p_sc",
+ "Parrot_getattribute_p_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 574 */
+ /* type PARROT_INLINE_OP, */
+ "getattribute",
+ "getattribute_p_p_p_s",
+ "Parrot_getattribute_p_p_p_s",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 575 */
+ /* type PARROT_INLINE_OP, */
+ "getattribute",
+ "getattribute_p_p_pc_s",
+ "Parrot_getattribute_p_p_pc_s",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 576 */
+ /* type PARROT_INLINE_OP, */
+ "getattribute",
+ "getattribute_p_p_p_sc",
+ "Parrot_getattribute_p_p_p_sc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 577 */
+ /* type PARROT_INLINE_OP, */
+ "getattribute",
+ "getattribute_p_p_pc_sc",
+ "Parrot_getattribute_p_p_pc_sc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 578 */
+ /* type PARROT_INLINE_OP, */
+ "setattribute",
+ "setattribute_p_s_p",
+ "Parrot_setattribute_p_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 579 */
+ /* type PARROT_INLINE_OP, */
+ "setattribute",
+ "setattribute_p_sc_p",
+ "Parrot_setattribute_p_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 580 */
+ /* type PARROT_INLINE_OP, */
+ "setattribute",
+ "setattribute_p_p_s_p",
+ "Parrot_setattribute_p_p_s_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 581 */
+ /* type PARROT_INLINE_OP, */
+ "setattribute",
+ "setattribute_p_pc_s_p",
+ "Parrot_setattribute_p_pc_s_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 582 */
+ /* type PARROT_INLINE_OP, */
+ "setattribute",
+ "setattribute_p_p_sc_p",
+ "Parrot_setattribute_p_p_sc_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 583 */
+ /* type PARROT_INLINE_OP, */
+ "setattribute",
+ "setattribute_p_pc_sc_p",
+ "Parrot_setattribute_p_pc_sc_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 584 */
+ /* type PARROT_INLINE_OP, */
+ "inspect",
+ "inspect_p_p",
+ "Parrot_inspect_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 585 */
+ /* type PARROT_INLINE_OP, */
+ "inspect",
+ "inspect_p_pc",
+ "Parrot_inspect_p_pc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 586 */
+ /* type PARROT_INLINE_OP, */
+ "inspect",
+ "inspect_p_p_s",
+ "Parrot_inspect_p_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 587 */
+ /* type PARROT_INLINE_OP, */
+ "inspect",
+ "inspect_p_pc_s",
+ "Parrot_inspect_p_pc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 588 */
+ /* type PARROT_INLINE_OP, */
+ "inspect",
+ "inspect_p_p_sc",
+ "Parrot_inspect_p_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 589 */
+ /* type PARROT_INLINE_OP, */
+ "inspect",
+ "inspect_p_pc_sc",
+ "Parrot_inspect_p_pc_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 590 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_s",
+ "Parrot_new_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 591 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_sc",
+ "Parrot_new_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 592 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_s_p",
+ "Parrot_new_p_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 593 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_sc_p",
+ "Parrot_new_p_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 594 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_s_pc",
+ "Parrot_new_p_s_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 595 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_sc_pc",
+ "Parrot_new_p_sc_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 596 */
+ /* type PARROT_INLINE_OP, */
+ "new",
+ "new_p_p",
+ "Parrot_new_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 597 */
+ /* type PARROT_INLINE_OP, */
+ "new",
+ "new_p_pc",
+ "Parrot_new_p_pc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 598 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_p_p",
+ "Parrot_new_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 599 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_pc_p",
+ "Parrot_new_p_pc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 600 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_p_pc",
+ "Parrot_new_p_p_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 601 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_pc_pc",
+ "Parrot_new_p_pc_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 602 */
+ /* type PARROT_FUNCTION_OP, */
+ "root_new",
+ "root_new_p_p",
+ "Parrot_root_new_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 603 */
+ /* type PARROT_FUNCTION_OP, */
+ "root_new",
+ "root_new_p_pc",
+ "Parrot_root_new_p_pc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 604 */
+ /* type PARROT_FUNCTION_OP, */
+ "root_new",
+ "root_new_p_p_p",
+ "Parrot_root_new_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 605 */
+ /* type PARROT_FUNCTION_OP, */
+ "root_new",
+ "root_new_p_pc_p",
+ "Parrot_root_new_p_pc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 606 */
+ /* type PARROT_FUNCTION_OP, */
+ "root_new",
+ "root_new_p_p_pc",
+ "Parrot_root_new_p_p_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 607 */
+ /* type PARROT_FUNCTION_OP, */
+ "root_new",
+ "root_new_p_pc_pc",
+ "Parrot_root_new_p_pc_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 608 */
+ /* type PARROT_INLINE_OP, */
+ "typeof",
+ "typeof_s_p",
+ "Parrot_typeof_s_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 609 */
+ /* type PARROT_INLINE_OP, */
+ "typeof",
+ "typeof_p_p",
+ "Parrot_typeof_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 610 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_repr",
+ "get_repr_s_p",
+ "Parrot_get_repr_s_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 611 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_method",
+ "find_method_p_p_s",
+ "Parrot_find_method_p_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 612 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_method",
+ "find_method_p_p_sc",
+ "Parrot_find_method_p_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 613 */
+ /* type PARROT_INLINE_OP, */
+ "defined",
+ "defined_i_p",
+ "Parrot_defined_i_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 614 */
+ /* type PARROT_INLINE_OP, */
+ "defined",
+ "defined_i_p_ki",
+ "Parrot_defined_i_p_ki",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 615 */
+ /* type PARROT_INLINE_OP, */
+ "defined",
+ "defined_i_p_kic",
+ "Parrot_defined_i_p_kic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 616 */
+ /* type PARROT_INLINE_OP, */
+ "defined",
+ "defined_i_p_k",
+ "Parrot_defined_i_p_k",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 617 */
+ /* type PARROT_INLINE_OP, */
+ "defined",
+ "defined_i_p_kc",
+ "Parrot_defined_i_p_kc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 618 */
+ /* type PARROT_INLINE_OP, */
+ "exists",
+ "exists_i_p_ki",
+ "Parrot_exists_i_p_ki",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 619 */
+ /* type PARROT_INLINE_OP, */
+ "exists",
+ "exists_i_p_kic",
+ "Parrot_exists_i_p_kic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 620 */
+ /* type PARROT_INLINE_OP, */
+ "exists",
+ "exists_i_p_k",
+ "Parrot_exists_i_p_k",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 621 */
+ /* type PARROT_INLINE_OP, */
+ "exists",
+ "exists_i_p_kc",
+ "Parrot_exists_i_p_kc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 622 */
+ /* type PARROT_INLINE_OP, */
+ "delete",
+ "delete_p_k",
+ "Parrot_delete_p_k",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_K },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 623 */
+ /* type PARROT_INLINE_OP, */
+ "delete",
+ "delete_p_kc",
+ "Parrot_delete_p_kc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_KC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 624 */
+ /* type PARROT_INLINE_OP, */
+ "delete",
+ "delete_p_ki",
+ "Parrot_delete_p_ki",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_KI },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 625 */
+ /* type PARROT_INLINE_OP, */
+ "delete",
+ "delete_p_kic",
+ "Parrot_delete_p_kic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_KIC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 626 */
+ /* type PARROT_INLINE_OP, */
+ "elements",
+ "elements_i_p",
+ "Parrot_elements_i_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 627 */
+ /* type PARROT_INLINE_OP, */
+ "push",
+ "push_p_i",
+ "Parrot_push_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 628 */
+ /* type PARROT_INLINE_OP, */
+ "push",
+ "push_p_ic",
+ "Parrot_push_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 629 */
+ /* type PARROT_INLINE_OP, */
+ "push",
+ "push_p_n",
+ "Parrot_push_p_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 630 */
+ /* type PARROT_INLINE_OP, */
+ "push",
+ "push_p_nc",
+ "Parrot_push_p_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 631 */
+ /* type PARROT_INLINE_OP, */
+ "push",
+ "push_p_s",
+ "Parrot_push_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 632 */
+ /* type PARROT_INLINE_OP, */
+ "push",
+ "push_p_sc",
+ "Parrot_push_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 633 */
+ /* type PARROT_INLINE_OP, */
+ "push",
+ "push_p_p",
+ "Parrot_push_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 634 */
+ /* type PARROT_INLINE_OP, */
+ "pop",
+ "pop_i_p",
+ "Parrot_pop_i_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 635 */
+ /* type PARROT_INLINE_OP, */
+ "pop",
+ "pop_n_p",
+ "Parrot_pop_n_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 636 */
+ /* type PARROT_INLINE_OP, */
+ "pop",
+ "pop_s_p",
+ "Parrot_pop_s_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 637 */
+ /* type PARROT_INLINE_OP, */
+ "pop",
+ "pop_p_p",
+ "Parrot_pop_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 638 */
+ /* type PARROT_INLINE_OP, */
+ "unshift",
+ "unshift_p_i",
+ "Parrot_unshift_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 639 */
+ /* type PARROT_INLINE_OP, */
+ "unshift",
+ "unshift_p_ic",
+ "Parrot_unshift_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 640 */
+ /* type PARROT_INLINE_OP, */
+ "unshift",
+ "unshift_p_n",
+ "Parrot_unshift_p_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 641 */
+ /* type PARROT_INLINE_OP, */
+ "unshift",
+ "unshift_p_nc",
+ "Parrot_unshift_p_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 642 */
+ /* type PARROT_INLINE_OP, */
+ "unshift",
+ "unshift_p_s",
+ "Parrot_unshift_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 643 */
+ /* type PARROT_INLINE_OP, */
+ "unshift",
+ "unshift_p_sc",
+ "Parrot_unshift_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 644 */
+ /* type PARROT_INLINE_OP, */
+ "unshift",
+ "unshift_p_p",
+ "Parrot_unshift_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 645 */
+ /* type PARROT_INLINE_OP, */
+ "shift",
+ "shift_i_p",
+ "Parrot_shift_i_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 646 */
+ /* type PARROT_INLINE_OP, */
+ "shift",
+ "shift_n_p",
+ "Parrot_shift_n_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 647 */
+ /* type PARROT_INLINE_OP, */
+ "shift",
+ "shift_s_p",
+ "Parrot_shift_s_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 648 */
+ /* type PARROT_INLINE_OP, */
+ "shift",
+ "shift_p_p",
+ "Parrot_shift_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 649 */
+ /* type PARROT_INLINE_OP, */
+ "splice",
+ "splice_p_p_i_i",
+ "Parrot_splice_p_p_i_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 650 */
+ /* type PARROT_INLINE_OP, */
+ "splice",
+ "splice_p_p_ic_i",
+ "Parrot_splice_p_p_ic_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 651 */
+ /* type PARROT_INLINE_OP, */
+ "splice",
+ "splice_p_p_i_ic",
+ "Parrot_splice_p_p_i_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 652 */
+ /* type PARROT_INLINE_OP, */
+ "splice",
+ "splice_p_p_ic_ic",
+ "Parrot_splice_p_p_ic_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 653 */
+ /* type PARROT_FUNCTION_OP, */
+ "setprop",
+ "setprop_p_s_p",
+ "Parrot_setprop_p_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 654 */
+ /* type PARROT_FUNCTION_OP, */
+ "setprop",
+ "setprop_p_sc_p",
+ "Parrot_setprop_p_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 655 */
+ /* type PARROT_FUNCTION_OP, */
+ "getprop",
+ "getprop_p_s_p",
+ "Parrot_getprop_p_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 656 */
+ /* type PARROT_FUNCTION_OP, */
+ "getprop",
+ "getprop_p_sc_p",
+ "Parrot_getprop_p_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 657 */
+ /* type PARROT_FUNCTION_OP, */
+ "delprop",
+ "delprop_p_s",
+ "Parrot_delprop_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 658 */
+ /* type PARROT_FUNCTION_OP, */
+ "delprop",
+ "delprop_p_sc",
+ "Parrot_delprop_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 659 */
+ /* type PARROT_FUNCTION_OP, */
+ "prophash",
+ "prophash_p_p",
+ "Parrot_prophash_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 660 */
+ /* type PARROT_FUNCTION_OP, */
+ "freeze",
+ "freeze_s_p",
+ "Parrot_freeze_s_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 661 */
+ /* type PARROT_FUNCTION_OP, */
+ "thaw",
+ "thaw_p_s",
+ "Parrot_thaw_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 662 */
+ /* type PARROT_FUNCTION_OP, */
+ "thaw",
+ "thaw_p_sc",
+ "Parrot_thaw_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 663 */
+ /* type PARROT_INLINE_OP, */
+ "add_multi",
+ "add_multi_s_s_p",
+ "Parrot_add_multi_s_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 664 */
+ /* type PARROT_INLINE_OP, */
+ "add_multi",
+ "add_multi_sc_s_p",
+ "Parrot_add_multi_sc_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 665 */
+ /* type PARROT_INLINE_OP, */
+ "add_multi",
+ "add_multi_s_sc_p",
+ "Parrot_add_multi_s_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 666 */
+ /* type PARROT_INLINE_OP, */
+ "add_multi",
+ "add_multi_sc_sc_p",
+ "Parrot_add_multi_sc_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 667 */
+ /* type PARROT_INLINE_OP, */
+ "find_multi",
+ "find_multi_p_s_s",
+ "Parrot_find_multi_p_s_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 668 */
+ /* type PARROT_INLINE_OP, */
+ "find_multi",
+ "find_multi_p_sc_s",
+ "Parrot_find_multi_p_sc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 669 */
+ /* type PARROT_INLINE_OP, */
+ "find_multi",
+ "find_multi_p_s_sc",
+ "Parrot_find_multi_p_s_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 670 */
+ /* type PARROT_INLINE_OP, */
+ "find_multi",
+ "find_multi_p_sc_sc",
+ "Parrot_find_multi_p_sc_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 671 */
+ /* type PARROT_FUNCTION_OP, */
+ "register",
+ "register_p",
+ "Parrot_register_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 672 */
+ /* type PARROT_FUNCTION_OP, */
+ "unregister",
+ "unregister_p",
+ "Parrot_unregister_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 673 */
+ /* type PARROT_FUNCTION_OP, */
+ "box",
+ "box_p_i",
+ "Parrot_box_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 674 */
+ /* type PARROT_FUNCTION_OP, */
+ "box",
+ "box_p_ic",
+ "Parrot_box_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 675 */
+ /* type PARROT_FUNCTION_OP, */
+ "box",
+ "box_p_n",
+ "Parrot_box_p_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 676 */
+ /* type PARROT_FUNCTION_OP, */
+ "box",
+ "box_p_nc",
+ "Parrot_box_p_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 677 */
+ /* type PARROT_FUNCTION_OP, */
+ "box",
+ "box_p_s",
+ "Parrot_box_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 678 */
+ /* type PARROT_FUNCTION_OP, */
+ "box",
+ "box_p_sc",
+ "Parrot_box_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 679 */
+ /* type PARROT_INLINE_OP, */
+ "iter",
+ "iter_p_p",
+ "Parrot_iter_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 680 */
+ /* type PARROT_INLINE_OP, */
+ "morph",
+ "morph_p_p",
+ "Parrot_morph_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 681 */
+ /* type PARROT_INLINE_OP, */
+ "morph",
+ "morph_p_pc",
+ "Parrot_morph_p_pc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 682 */
+ /* type PARROT_INLINE_OP, */
+ "clone",
+ "clone_s_s",
+ "Parrot_clone_s_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 683 */
+ /* type PARROT_INLINE_OP, */
+ "clone",
+ "clone_s_sc",
+ "Parrot_clone_s_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 684 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_i_i",
+ "Parrot_set_i_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 685 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_i_ic",
+ "Parrot_set_i_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 686 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_i_n",
+ "Parrot_set_i_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 687 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_i_nc",
+ "Parrot_set_i_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 688 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_i_s",
+ "Parrot_set_i_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 689 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_i_sc",
+ "Parrot_set_i_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 690 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_n_n",
+ "Parrot_set_n_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 691 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_n_nc",
+ "Parrot_set_n_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 692 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_n_i",
+ "Parrot_set_n_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 693 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_n_ic",
+ "Parrot_set_n_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 694 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_n_s",
+ "Parrot_set_n_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 695 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_n_sc",
+ "Parrot_set_n_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 696 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_n_p",
+ "Parrot_set_n_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_N, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 697 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_s_p",
+ "Parrot_set_s_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 698 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_s_s",
+ "Parrot_set_s_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 699 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_s_sc",
+ "Parrot_set_s_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 700 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_s_i",
+ "Parrot_set_s_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 701 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_s_ic",
+ "Parrot_set_s_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 702 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_s_n",
+ "Parrot_set_s_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 703 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_s_nc",
+ "Parrot_set_s_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_NC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 704 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_pc",
+ "Parrot_set_p_pc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 705 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_p",
+ "Parrot_set_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 706 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_i",
+ "Parrot_set_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 707 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_ic",
+ "Parrot_set_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 708 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_n",
+ "Parrot_set_p_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 709 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_nc",
+ "Parrot_set_p_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 710 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_s",
+ "Parrot_set_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 711 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_sc",
+ "Parrot_set_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 712 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_i_p",
+ "Parrot_set_i_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 713 */
+ /* type PARROT_INLINE_OP, */
+ "assign",
+ "assign_p_p",
+ "Parrot_assign_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 714 */
+ /* type PARROT_INLINE_OP, */
+ "assign",
+ "assign_p_i",
+ "Parrot_assign_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 715 */
+ /* type PARROT_INLINE_OP, */
+ "assign",
+ "assign_p_ic",
+ "Parrot_assign_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 716 */
+ /* type PARROT_INLINE_OP, */
+ "assign",
+ "assign_p_n",
+ "Parrot_assign_p_n",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 717 */
+ /* type PARROT_INLINE_OP, */
+ "assign",
+ "assign_p_nc",
+ "Parrot_assign_p_nc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 718 */
+ /* type PARROT_INLINE_OP, */
+ "assign",
+ "assign_p_s",
+ "Parrot_assign_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 719 */
+ /* type PARROT_INLINE_OP, */
+ "assign",
+ "assign_p_sc",
+ "Parrot_assign_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 720 */
+ /* type PARROT_INLINE_OP, */
+ "assign",
+ "assign_s_s",
+ "Parrot_assign_s_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 721 */
+ /* type PARROT_INLINE_OP, */
+ "assign",
+ "assign_s_sc",
+ "Parrot_assign_s_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 722 */
+ /* type PARROT_INLINE_OP, */
+ "setref",
+ "setref_p_p",
+ "Parrot_setref_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 723 */
+ /* type PARROT_INLINE_OP, */
+ "deref",
+ "deref_p_p",
+ "Parrot_deref_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 724 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_ki_i",
+ "Parrot_set_p_ki_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 725 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kic_i",
+ "Parrot_set_p_kic_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 726 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_ki_ic",
+ "Parrot_set_p_ki_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 727 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kic_ic",
+ "Parrot_set_p_kic_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 728 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_ki_n",
+ "Parrot_set_p_ki_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 729 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kic_n",
+ "Parrot_set_p_kic_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 730 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_ki_nc",
+ "Parrot_set_p_ki_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 731 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kic_nc",
+ "Parrot_set_p_kic_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 732 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_ki_s",
+ "Parrot_set_p_ki_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 733 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kic_s",
+ "Parrot_set_p_kic_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 734 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_ki_sc",
+ "Parrot_set_p_ki_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 735 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kic_sc",
+ "Parrot_set_p_kic_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 736 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_ki_p",
+ "Parrot_set_p_ki_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KI, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 737 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kic_p",
+ "Parrot_set_p_kic_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KIC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 738 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_i_p_ki",
+ "Parrot_set_i_p_ki",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KI },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 739 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_i_p_kic",
+ "Parrot_set_i_p_kic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KIC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 740 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_n_p_ki",
+ "Parrot_set_n_p_ki",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KI },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 741 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_n_p_kic",
+ "Parrot_set_n_p_kic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KIC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 742 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_s_p_ki",
+ "Parrot_set_s_p_ki",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KI },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 743 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_s_p_kic",
+ "Parrot_set_s_p_kic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KIC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 744 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_p_ki",
+ "Parrot_set_p_p_ki",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KI },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 745 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_p_kic",
+ "Parrot_set_p_p_kic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KIC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 746 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_k_i",
+ "Parrot_set_p_k_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 747 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kc_i",
+ "Parrot_set_p_kc_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 748 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_k_ic",
+ "Parrot_set_p_k_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 749 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kc_ic",
+ "Parrot_set_p_kc_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 750 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_k_n",
+ "Parrot_set_p_k_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 751 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kc_n",
+ "Parrot_set_p_kc_n",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_N },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 752 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_k_nc",
+ "Parrot_set_p_k_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 753 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kc_nc",
+ "Parrot_set_p_kc_nc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 754 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_k_s",
+ "Parrot_set_p_k_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 755 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kc_s",
+ "Parrot_set_p_kc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 756 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_k_sc",
+ "Parrot_set_p_k_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 757 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kc_sc",
+ "Parrot_set_p_kc_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 758 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_k_p",
+ "Parrot_set_p_k_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_K, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 759 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_kc_p",
+ "Parrot_set_p_kc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_KC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 760 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_i_p_k",
+ "Parrot_set_i_p_k",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_K },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 761 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_i_p_kc",
+ "Parrot_set_i_p_kc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_P, PARROT_ARG_KC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 762 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_n_p_k",
+ "Parrot_set_n_p_k",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_K },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 763 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_n_p_kc",
+ "Parrot_set_n_p_kc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_N, PARROT_ARG_P, PARROT_ARG_KC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 764 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_s_p_k",
+ "Parrot_set_s_p_k",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_K },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 765 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_s_p_kc",
+ "Parrot_set_s_p_kc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_KC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 766 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_p_k",
+ "Parrot_set_p_p_k",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_K },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 767 */
+ /* type PARROT_INLINE_OP, */
+ "set",
+ "set_p_p_kc",
+ "Parrot_set_p_p_kc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_KC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 768 */
+ /* type PARROT_INLINE_OP, */
+ "clone",
+ "clone_p_p",
+ "Parrot_clone_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 769 */
+ /* type PARROT_INLINE_OP, */
+ "clone",
+ "clone_p_p_p",
+ "Parrot_clone_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 770 */
+ /* type PARROT_INLINE_OP, */
+ "clone",
+ "clone_p_p_pc",
+ "Parrot_clone_p_p_pc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 771 */
+ /* type PARROT_INLINE_OP, */
+ "copy",
+ "copy_p_p",
+ "Parrot_copy_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 772 */
+ /* type PARROT_INLINE_OP, */
+ "null",
+ "null_s",
+ "Parrot_null_s",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 773 */
+ /* type PARROT_INLINE_OP, */
+ "null",
+ "null_i",
+ "Parrot_null_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 774 */
+ /* type PARROT_INLINE_OP, */
+ "null",
+ "null_p",
+ "Parrot_null_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 775 */
+ /* type PARROT_INLINE_OP, */
+ "null",
+ "null_n",
+ "Parrot_null_n",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 776 */
+ /* type PARROT_INLINE_OP, */
+ "ord",
+ "ord_i_s",
+ "Parrot_ord_i_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 777 */
+ /* type PARROT_INLINE_OP, */
+ "ord",
+ "ord_i_sc",
+ "Parrot_ord_i_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 778 */
+ /* type PARROT_INLINE_OP, */
+ "ord",
+ "ord_i_s_i",
+ "Parrot_ord_i_s_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 779 */
+ /* type PARROT_INLINE_OP, */
+ "ord",
+ "ord_i_sc_i",
+ "Parrot_ord_i_sc_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 780 */
+ /* type PARROT_INLINE_OP, */
+ "ord",
+ "ord_i_s_ic",
+ "Parrot_ord_i_s_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 781 */
+ /* type PARROT_INLINE_OP, */
+ "ord",
+ "ord_i_sc_ic",
+ "Parrot_ord_i_sc_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 782 */
+ /* type PARROT_INLINE_OP, */
+ "chr",
+ "chr_s_i",
+ "Parrot_chr_s_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 783 */
+ /* type PARROT_INLINE_OP, */
+ "chr",
+ "chr_s_ic",
+ "Parrot_chr_s_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 784 */
+ /* type PARROT_INLINE_OP, */
+ "chopn",
+ "chopn_s_s_i",
+ "Parrot_chopn_s_s_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 785 */
+ /* type PARROT_INLINE_OP, */
+ "chopn",
+ "chopn_s_sc_i",
+ "Parrot_chopn_s_sc_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 786 */
+ /* type PARROT_INLINE_OP, */
+ "chopn",
+ "chopn_s_s_ic",
+ "Parrot_chopn_s_s_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 787 */
+ /* type PARROT_INLINE_OP, */
+ "chopn",
+ "chopn_s_sc_ic",
+ "Parrot_chopn_s_sc_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 788 */
+ /* type PARROT_INLINE_OP, */
+ "concat",
+ "concat_s_s",
+ "Parrot_concat_s_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 789 */
+ /* type PARROT_INLINE_OP, */
+ "concat",
+ "concat_s_sc",
+ "Parrot_concat_s_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_INOUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 790 */
+ /* type PARROT_INLINE_OP, */
+ "concat",
+ "concat_p_p",
+ "Parrot_concat_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 791 */
+ /* type PARROT_INLINE_OP, */
+ "concat",
+ "concat_p_s",
+ "Parrot_concat_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 792 */
+ /* type PARROT_INLINE_OP, */
+ "concat",
+ "concat_p_sc",
+ "Parrot_concat_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 793 */
+ /* type PARROT_INLINE_OP, */
+ "concat",
+ "concat_s_s_s",
+ "Parrot_concat_s_s_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 794 */
+ /* type PARROT_INLINE_OP, */
+ "concat",
+ "concat_s_sc_s",
+ "Parrot_concat_s_sc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 795 */
+ /* type PARROT_INLINE_OP, */
+ "concat",
+ "concat_s_s_sc",
+ "Parrot_concat_s_s_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 796 */
+ /* type PARROT_INLINE_OP, */
+ "concat",
+ "concat_p_p_s",
+ "Parrot_concat_p_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 797 */
+ /* type PARROT_INLINE_OP, */
+ "concat",
+ "concat_p_p_sc",
+ "Parrot_concat_p_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 798 */
+ /* type PARROT_INLINE_OP, */
+ "concat",
+ "concat_p_p_p",
+ "Parrot_concat_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 799 */
+ /* type PARROT_INLINE_OP, */
+ "repeat",
+ "repeat_s_s_i",
+ "Parrot_repeat_s_s_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 800 */
+ /* type PARROT_INLINE_OP, */
+ "repeat",
+ "repeat_s_sc_i",
+ "Parrot_repeat_s_sc_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 801 */
+ /* type PARROT_INLINE_OP, */
+ "repeat",
+ "repeat_s_s_ic",
+ "Parrot_repeat_s_s_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 802 */
+ /* type PARROT_INLINE_OP, */
+ "repeat",
+ "repeat_s_sc_ic",
+ "Parrot_repeat_s_sc_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 803 */
+ /* type PARROT_INLINE_OP, */
+ "repeat",
+ "repeat_p_p_i",
+ "Parrot_repeat_p_p_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 804 */
+ /* type PARROT_INLINE_OP, */
+ "repeat",
+ "repeat_p_p_ic",
+ "Parrot_repeat_p_p_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 805 */
+ /* type PARROT_INLINE_OP, */
+ "repeat",
+ "repeat_p_p_p",
+ "Parrot_repeat_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 806 */
+ /* type PARROT_INLINE_OP, */
+ "repeat",
+ "repeat_p_i",
+ "Parrot_repeat_p_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 807 */
+ /* type PARROT_INLINE_OP, */
+ "repeat",
+ "repeat_p_ic",
+ "Parrot_repeat_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 808 */
+ /* type PARROT_INLINE_OP, */
+ "repeat",
+ "repeat_p_p",
+ "Parrot_repeat_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 809 */
+ /* type PARROT_INLINE_OP, */
+ "length",
+ "length_i_s",
+ "Parrot_length_i_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 810 */
+ /* type PARROT_INLINE_OP, */
+ "length",
+ "length_i_sc",
+ "Parrot_length_i_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 811 */
+ /* type PARROT_INLINE_OP, */
+ "bytelength",
+ "bytelength_i_s",
+ "Parrot_bytelength_i_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 812 */
+ /* type PARROT_INLINE_OP, */
+ "bytelength",
+ "bytelength_i_sc",
+ "Parrot_bytelength_i_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 813 */
+ /* type PARROT_FUNCTION_OP, */
+ "pin",
+ "pin_s",
+ "Parrot_pin_s",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_S },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 814 */
+ /* type PARROT_FUNCTION_OP, */
+ "unpin",
+ "unpin_s",
+ "Parrot_unpin_s",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_S },
+ { PARROT_ARGDIR_INOUT },
+ { 0 }
+ },
+ { /* 815 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_s_i",
+ "Parrot_substr_s_s_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 816 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_sc_i",
+ "Parrot_substr_s_sc_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 817 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_s_ic",
+ "Parrot_substr_s_s_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 818 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_sc_ic",
+ "Parrot_substr_s_sc_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 819 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_s_i_i",
+ "Parrot_substr_s_s_i_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 820 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_sc_i_i",
+ "Parrot_substr_s_sc_i_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 821 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_s_ic_i",
+ "Parrot_substr_s_s_ic_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 822 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_sc_ic_i",
+ "Parrot_substr_s_sc_ic_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 823 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_s_i_ic",
+ "Parrot_substr_s_s_i_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 824 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_sc_i_ic",
+ "Parrot_substr_s_sc_i_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 825 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_s_ic_ic",
+ "Parrot_substr_s_s_ic_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 826 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_sc_ic_ic",
+ "Parrot_substr_s_sc_ic_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 827 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_p_i_i",
+ "Parrot_substr_s_p_i_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 828 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_p_ic_i",
+ "Parrot_substr_s_p_ic_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 829 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_p_i_ic",
+ "Parrot_substr_s_p_i_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 830 */
+ /* type PARROT_INLINE_OP, */
+ "substr",
+ "substr_s_p_ic_ic",
+ "Parrot_substr_s_p_ic_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_S, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 831 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_s_i_i_s",
+ "Parrot_replace_s_s_i_i_s",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 832 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_sc_i_i_s",
+ "Parrot_replace_s_sc_i_i_s",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 833 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_s_ic_i_s",
+ "Parrot_replace_s_s_ic_i_s",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 834 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_sc_ic_i_s",
+ "Parrot_replace_s_sc_ic_i_s",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 835 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_s_i_ic_s",
+ "Parrot_replace_s_s_i_ic_s",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 836 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_sc_i_ic_s",
+ "Parrot_replace_s_sc_i_ic_s",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 837 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_s_ic_ic_s",
+ "Parrot_replace_s_s_ic_ic_s",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 838 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_sc_ic_ic_s",
+ "Parrot_replace_s_sc_ic_ic_s",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 839 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_s_i_i_sc",
+ "Parrot_replace_s_s_i_i_sc",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 840 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_sc_i_i_sc",
+ "Parrot_replace_s_sc_i_i_sc",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 841 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_s_ic_i_sc",
+ "Parrot_replace_s_s_ic_i_sc",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 842 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_sc_ic_i_sc",
+ "Parrot_replace_s_sc_ic_i_sc",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 843 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_s_i_ic_sc",
+ "Parrot_replace_s_s_i_ic_sc",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 844 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_sc_i_ic_sc",
+ "Parrot_replace_s_sc_i_ic_sc",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 845 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_s_ic_ic_sc",
+ "Parrot_replace_s_s_ic_ic_sc",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 846 */
+ /* type PARROT_INLINE_OP, */
+ "replace",
+ "replace_s_sc_ic_ic_sc",
+ "Parrot_replace_s_sc_ic_ic_sc",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 847 */
+ /* type PARROT_INLINE_OP, */
+ "index",
+ "index_i_s_s",
+ "Parrot_index_i_s_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 848 */
+ /* type PARROT_INLINE_OP, */
+ "index",
+ "index_i_sc_s",
+ "Parrot_index_i_sc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 849 */
+ /* type PARROT_INLINE_OP, */
+ "index",
+ "index_i_s_sc",
+ "Parrot_index_i_s_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 850 */
+ /* type PARROT_INLINE_OP, */
+ "index",
+ "index_i_sc_sc",
+ "Parrot_index_i_sc_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 851 */
+ /* type PARROT_INLINE_OP, */
+ "index",
+ "index_i_s_s_i",
+ "Parrot_index_i_s_s_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 852 */
+ /* type PARROT_INLINE_OP, */
+ "index",
+ "index_i_sc_s_i",
+ "Parrot_index_i_sc_s_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 853 */
+ /* type PARROT_INLINE_OP, */
+ "index",
+ "index_i_s_sc_i",
+ "Parrot_index_i_s_sc_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 854 */
+ /* type PARROT_INLINE_OP, */
+ "index",
+ "index_i_sc_sc_i",
+ "Parrot_index_i_sc_sc_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 855 */
+ /* type PARROT_INLINE_OP, */
+ "index",
+ "index_i_s_s_ic",
+ "Parrot_index_i_s_s_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 856 */
+ /* type PARROT_INLINE_OP, */
+ "index",
+ "index_i_sc_s_ic",
+ "Parrot_index_i_sc_s_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 857 */
+ /* type PARROT_INLINE_OP, */
+ "index",
+ "index_i_s_sc_ic",
+ "Parrot_index_i_s_sc_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 858 */
+ /* type PARROT_INLINE_OP, */
+ "index",
+ "index_i_sc_sc_ic",
+ "Parrot_index_i_sc_sc_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 859 */
+ /* type PARROT_INLINE_OP, */
+ "sprintf",
+ "sprintf_s_s_p",
+ "Parrot_sprintf_s_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 860 */
+ /* type PARROT_INLINE_OP, */
+ "sprintf",
+ "sprintf_s_sc_p",
+ "Parrot_sprintf_s_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 861 */
+ /* type PARROT_INLINE_OP, */
+ "sprintf",
+ "sprintf_p_p_p",
+ "Parrot_sprintf_p_p_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 862 */
+ /* type PARROT_INLINE_OP, */
+ "new",
+ "new_s",
+ "Parrot_new_s",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 863 */
+ /* type PARROT_INLINE_OP, */
+ "new",
+ "new_s_i",
+ "Parrot_new_s_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 864 */
+ /* type PARROT_INLINE_OP, */
+ "new",
+ "new_s_ic",
+ "Parrot_new_s_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 865 */
+ /* type PARROT_INLINE_OP, */
+ "stringinfo",
+ "stringinfo_i_s_i",
+ "Parrot_stringinfo_i_s_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 866 */
+ /* type PARROT_INLINE_OP, */
+ "stringinfo",
+ "stringinfo_i_sc_i",
+ "Parrot_stringinfo_i_sc_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 867 */
+ /* type PARROT_INLINE_OP, */
+ "stringinfo",
+ "stringinfo_i_s_ic",
+ "Parrot_stringinfo_i_s_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 868 */
+ /* type PARROT_INLINE_OP, */
+ "stringinfo",
+ "stringinfo_i_sc_ic",
+ "Parrot_stringinfo_i_sc_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 869 */
+ /* type PARROT_INLINE_OP, */
+ "upcase",
+ "upcase_s_s",
+ "Parrot_upcase_s_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 870 */
+ /* type PARROT_INLINE_OP, */
+ "upcase",
+ "upcase_s_sc",
+ "Parrot_upcase_s_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 871 */
+ /* type PARROT_INLINE_OP, */
+ "downcase",
+ "downcase_s_s",
+ "Parrot_downcase_s_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 872 */
+ /* type PARROT_INLINE_OP, */
+ "downcase",
+ "downcase_s_sc",
+ "Parrot_downcase_s_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 873 */
+ /* type PARROT_INLINE_OP, */
+ "titlecase",
+ "titlecase_s_s",
+ "Parrot_titlecase_s_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 874 */
+ /* type PARROT_INLINE_OP, */
+ "titlecase",
+ "titlecase_s_sc",
+ "Parrot_titlecase_s_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 875 */
+ /* type PARROT_FUNCTION_OP, */
+ "join",
+ "join_s_s_p",
+ "Parrot_join_s_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 876 */
+ /* type PARROT_FUNCTION_OP, */
+ "join",
+ "join_s_sc_p",
+ "Parrot_join_s_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 877 */
+ /* type PARROT_FUNCTION_OP, */
+ "split",
+ "split_p_s_s",
+ "Parrot_split_p_s_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 878 */
+ /* type PARROT_FUNCTION_OP, */
+ "split",
+ "split_p_sc_s",
+ "Parrot_split_p_sc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 879 */
+ /* type PARROT_FUNCTION_OP, */
+ "split",
+ "split_p_s_sc",
+ "Parrot_split_p_s_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 880 */
+ /* type PARROT_FUNCTION_OP, */
+ "split",
+ "split_p_sc_sc",
+ "Parrot_split_p_sc_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 881 */
+ /* type PARROT_FUNCTION_OP, */
+ "charset",
+ "charset_i_s",
+ "Parrot_charset_i_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 882 */
+ /* type PARROT_FUNCTION_OP, */
+ "charset",
+ "charset_i_sc",
+ "Parrot_charset_i_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 883 */
+ /* type PARROT_FUNCTION_OP, */
+ "charsetname",
+ "charsetname_s_i",
+ "Parrot_charsetname_s_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 884 */
+ /* type PARROT_FUNCTION_OP, */
+ "charsetname",
+ "charsetname_s_ic",
+ "Parrot_charsetname_s_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 885 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_charset",
+ "find_charset_i_s",
+ "Parrot_find_charset_i_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 886 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_charset",
+ "find_charset_i_sc",
+ "Parrot_find_charset_i_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 887 */
+ /* type PARROT_FUNCTION_OP, */
+ "trans_charset",
+ "trans_charset_s_s_i",
+ "Parrot_trans_charset_s_s_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 888 */
+ /* type PARROT_FUNCTION_OP, */
+ "trans_charset",
+ "trans_charset_s_sc_i",
+ "Parrot_trans_charset_s_sc_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 889 */
+ /* type PARROT_FUNCTION_OP, */
+ "trans_charset",
+ "trans_charset_s_s_ic",
+ "Parrot_trans_charset_s_s_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 890 */
+ /* type PARROT_FUNCTION_OP, */
+ "trans_charset",
+ "trans_charset_s_sc_ic",
+ "Parrot_trans_charset_s_sc_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 891 */
+ /* type PARROT_FUNCTION_OP, */
+ "encoding",
+ "encoding_i_s",
+ "Parrot_encoding_i_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 892 */
+ /* type PARROT_FUNCTION_OP, */
+ "encoding",
+ "encoding_i_sc",
+ "Parrot_encoding_i_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 893 */
+ /* type PARROT_FUNCTION_OP, */
+ "encodingname",
+ "encodingname_s_i",
+ "Parrot_encodingname_s_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 894 */
+ /* type PARROT_FUNCTION_OP, */
+ "encodingname",
+ "encodingname_s_ic",
+ "Parrot_encodingname_s_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 895 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_encoding",
+ "find_encoding_i_s",
+ "Parrot_find_encoding_i_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 896 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_encoding",
+ "find_encoding_i_sc",
+ "Parrot_find_encoding_i_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 897 */
+ /* type PARROT_FUNCTION_OP, */
+ "trans_encoding",
+ "trans_encoding_s_s_i",
+ "Parrot_trans_encoding_s_s_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 898 */
+ /* type PARROT_FUNCTION_OP, */
+ "trans_encoding",
+ "trans_encoding_s_sc_i",
+ "Parrot_trans_encoding_s_sc_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 899 */
+ /* type PARROT_FUNCTION_OP, */
+ "trans_encoding",
+ "trans_encoding_s_s_ic",
+ "Parrot_trans_encoding_s_s_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 900 */
+ /* type PARROT_FUNCTION_OP, */
+ "trans_encoding",
+ "trans_encoding_s_sc_ic",
+ "Parrot_trans_encoding_s_sc_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_S, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 901 */
+ /* type PARROT_INLINE_OP, */
+ "is_cclass",
+ "is_cclass_i_i_s_i",
+ "Parrot_is_cclass_i_i_s_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 902 */
+ /* type PARROT_INLINE_OP, */
+ "is_cclass",
+ "is_cclass_i_ic_s_i",
+ "Parrot_is_cclass_i_ic_s_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 903 */
+ /* type PARROT_INLINE_OP, */
+ "is_cclass",
+ "is_cclass_i_i_sc_i",
+ "Parrot_is_cclass_i_i_sc_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 904 */
+ /* type PARROT_INLINE_OP, */
+ "is_cclass",
+ "is_cclass_i_ic_sc_i",
+ "Parrot_is_cclass_i_ic_sc_i",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 905 */
+ /* type PARROT_INLINE_OP, */
+ "is_cclass",
+ "is_cclass_i_i_s_ic",
+ "Parrot_is_cclass_i_i_s_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 906 */
+ /* type PARROT_INLINE_OP, */
+ "is_cclass",
+ "is_cclass_i_ic_s_ic",
+ "Parrot_is_cclass_i_ic_s_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 907 */
+ /* type PARROT_INLINE_OP, */
+ "is_cclass",
+ "is_cclass_i_i_sc_ic",
+ "Parrot_is_cclass_i_i_sc_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 908 */
+ /* type PARROT_INLINE_OP, */
+ "is_cclass",
+ "is_cclass_i_ic_sc_ic",
+ "Parrot_is_cclass_i_ic_sc_ic",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 909 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_i_s_i_i",
+ "Parrot_find_cclass_i_i_s_i_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 910 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_ic_s_i_i",
+ "Parrot_find_cclass_i_ic_s_i_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 911 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_i_sc_i_i",
+ "Parrot_find_cclass_i_i_sc_i_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 912 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_ic_sc_i_i",
+ "Parrot_find_cclass_i_ic_sc_i_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 913 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_i_s_ic_i",
+ "Parrot_find_cclass_i_i_s_ic_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 914 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_ic_s_ic_i",
+ "Parrot_find_cclass_i_ic_s_ic_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 915 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_i_sc_ic_i",
+ "Parrot_find_cclass_i_i_sc_ic_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 916 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_ic_sc_ic_i",
+ "Parrot_find_cclass_i_ic_sc_ic_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 917 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_i_s_i_ic",
+ "Parrot_find_cclass_i_i_s_i_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 918 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_ic_s_i_ic",
+ "Parrot_find_cclass_i_ic_s_i_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 919 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_i_sc_i_ic",
+ "Parrot_find_cclass_i_i_sc_i_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 920 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_ic_sc_i_ic",
+ "Parrot_find_cclass_i_ic_sc_i_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 921 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_i_s_ic_ic",
+ "Parrot_find_cclass_i_i_s_ic_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 922 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_ic_s_ic_ic",
+ "Parrot_find_cclass_i_ic_s_ic_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 923 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_i_sc_ic_ic",
+ "Parrot_find_cclass_i_i_sc_ic_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 924 */
+ /* type PARROT_INLINE_OP, */
+ "find_cclass",
+ "find_cclass_i_ic_sc_ic_ic",
+ "Parrot_find_cclass_i_ic_sc_ic_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 925 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_i_s_i_i",
+ "Parrot_find_not_cclass_i_i_s_i_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 926 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_ic_s_i_i",
+ "Parrot_find_not_cclass_i_ic_s_i_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 927 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_i_sc_i_i",
+ "Parrot_find_not_cclass_i_i_sc_i_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 928 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_ic_sc_i_i",
+ "Parrot_find_not_cclass_i_ic_sc_i_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 929 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_i_s_ic_i",
+ "Parrot_find_not_cclass_i_i_s_ic_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 930 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_ic_s_ic_i",
+ "Parrot_find_not_cclass_i_ic_s_ic_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 931 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_i_sc_ic_i",
+ "Parrot_find_not_cclass_i_i_sc_ic_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 932 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_ic_sc_ic_i",
+ "Parrot_find_not_cclass_i_ic_sc_ic_i",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 933 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_i_s_i_ic",
+ "Parrot_find_not_cclass_i_i_s_i_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 934 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_ic_s_i_ic",
+ "Parrot_find_not_cclass_i_ic_s_i_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 935 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_i_sc_i_ic",
+ "Parrot_find_not_cclass_i_i_sc_i_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 936 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_ic_sc_i_ic",
+ "Parrot_find_not_cclass_i_ic_sc_i_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_I, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 937 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_i_s_ic_ic",
+ "Parrot_find_not_cclass_i_i_s_ic_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 938 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_ic_s_ic_ic",
+ "Parrot_find_not_cclass_i_ic_s_ic_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_S, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 939 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_i_sc_ic_ic",
+ "Parrot_find_not_cclass_i_i_sc_ic_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_I, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 940 */
+ /* type PARROT_INLINE_OP, */
+ "find_not_cclass",
+ "find_not_cclass_i_ic_sc_ic_ic",
+ "Parrot_find_not_cclass_i_ic_sc_ic_ic",
+ /* "", body */
+ 0,
+ 6,
+ { PARROT_ARG_I, PARROT_ARG_IC, PARROT_ARG_SC, PARROT_ARG_IC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0, 0 }
+ },
+ { /* 941 */
+ /* type PARROT_FUNCTION_OP, */
+ "escape",
+ "escape_s_s",
+ "Parrot_escape_s_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 942 */
+ /* type PARROT_FUNCTION_OP, */
+ "compose",
+ "compose_s_s",
+ "Parrot_compose_s_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 943 */
+ /* type PARROT_FUNCTION_OP, */
+ "compose",
+ "compose_s_sc",
+ "Parrot_compose_s_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 944 */
+ /* type PARROT_INLINE_OP, */
+ "spawnw",
+ "spawnw_i_s",
+ "Parrot_spawnw_i_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 945 */
+ /* type PARROT_INLINE_OP, */
+ "spawnw",
+ "spawnw_i_sc",
+ "Parrot_spawnw_i_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 946 */
+ /* type PARROT_INLINE_OP, */
+ "spawnw",
+ "spawnw_i_p",
+ "Parrot_spawnw_i_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 947 */
+ /* type PARROT_INLINE_OP, */
+ "err",
+ "err_i",
+ "Parrot_err_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 948 */
+ /* type PARROT_FUNCTION_OP, */
+ "err",
+ "err_s",
+ "Parrot_err_s",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 949 */
+ /* type PARROT_FUNCTION_OP, */
+ "err",
+ "err_s_i",
+ "Parrot_err_s_i",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 950 */
+ /* type PARROT_FUNCTION_OP, */
+ "err",
+ "err_s_ic",
+ "Parrot_err_s_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 951 */
+ /* type PARROT_INLINE_OP, */
+ "time",
+ "time_i",
+ "Parrot_time_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 952 */
+ /* type PARROT_INLINE_OP, */
+ "time",
+ "time_n",
+ "Parrot_time_n",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_N },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 953 */
+ /* type PARROT_INLINE_OP, */
+ "sleep",
+ "sleep_i",
+ "Parrot_sleep_i",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_I },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 954 */
+ /* type PARROT_INLINE_OP, */
+ "sleep",
+ "sleep_ic",
+ "Parrot_sleep_ic",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 955 */
+ /* type PARROT_INLINE_OP, */
+ "sleep",
+ "sleep_n",
+ "Parrot_sleep_n",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_N },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 956 */
+ /* type PARROT_INLINE_OP, */
+ "sleep",
+ "sleep_nc",
+ "Parrot_sleep_nc",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_NC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 957 */
+ /* type PARROT_FUNCTION_OP, */
+ "store_lex",
+ "store_lex_s_p",
+ "Parrot_store_lex_s_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 958 */
+ /* type PARROT_FUNCTION_OP, */
+ "store_lex",
+ "store_lex_sc_p",
+ "Parrot_store_lex_sc_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 959 */
+ /* type PARROT_FUNCTION_OP, */
+ "store_dynamic_lex",
+ "store_dynamic_lex_s_p",
+ "Parrot_store_dynamic_lex_s_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 960 */
+ /* type PARROT_FUNCTION_OP, */
+ "store_dynamic_lex",
+ "store_dynamic_lex_sc_p",
+ "Parrot_store_dynamic_lex_sc_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 961 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_lex",
+ "find_lex_p_s",
+ "Parrot_find_lex_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 962 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_lex",
+ "find_lex_p_sc",
+ "Parrot_find_lex_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 963 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_dynamic_lex",
+ "find_dynamic_lex_p_s",
+ "Parrot_find_dynamic_lex_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 964 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_dynamic_lex",
+ "find_dynamic_lex_p_sc",
+ "Parrot_find_dynamic_lex_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 965 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_caller_lex",
+ "find_caller_lex_p_s",
+ "Parrot_find_caller_lex_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 966 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_caller_lex",
+ "find_caller_lex_p_sc",
+ "Parrot_find_caller_lex_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 967 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_namespace",
+ "get_namespace_p",
+ "Parrot_get_namespace_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 968 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_namespace",
+ "get_namespace_p_p",
+ "Parrot_get_namespace_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 969 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_namespace",
+ "get_namespace_p_pc",
+ "Parrot_get_namespace_p_pc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 970 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_hll_namespace",
+ "get_hll_namespace_p",
+ "Parrot_get_hll_namespace_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 971 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_hll_namespace",
+ "get_hll_namespace_p_p",
+ "Parrot_get_hll_namespace_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 972 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_hll_namespace",
+ "get_hll_namespace_p_pc",
+ "Parrot_get_hll_namespace_p_pc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 973 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_root_namespace",
+ "get_root_namespace_p",
+ "Parrot_get_root_namespace_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT },
+ { 0 }
+ },
+ { /* 974 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_root_namespace",
+ "get_root_namespace_p_p",
+ "Parrot_get_root_namespace_p_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 975 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_root_namespace",
+ "get_root_namespace_p_pc",
+ "Parrot_get_root_namespace_p_pc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 976 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_global",
+ "get_global_p_s",
+ "Parrot_get_global_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 977 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_global",
+ "get_global_p_sc",
+ "Parrot_get_global_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 978 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_global",
+ "get_global_p_p_s",
+ "Parrot_get_global_p_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 979 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_global",
+ "get_global_p_pc_s",
+ "Parrot_get_global_p_pc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 980 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_global",
+ "get_global_p_p_sc",
+ "Parrot_get_global_p_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 981 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_global",
+ "get_global_p_pc_sc",
+ "Parrot_get_global_p_pc_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 982 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_hll_global",
+ "get_hll_global_p_s",
+ "Parrot_get_hll_global_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 983 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_hll_global",
+ "get_hll_global_p_sc",
+ "Parrot_get_hll_global_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 984 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_hll_global",
+ "get_hll_global_p_p_s",
+ "Parrot_get_hll_global_p_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 985 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_hll_global",
+ "get_hll_global_p_pc_s",
+ "Parrot_get_hll_global_p_pc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 986 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_hll_global",
+ "get_hll_global_p_p_sc",
+ "Parrot_get_hll_global_p_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 987 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_hll_global",
+ "get_hll_global_p_pc_sc",
+ "Parrot_get_hll_global_p_pc_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 988 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_root_global",
+ "get_root_global_p_s",
+ "Parrot_get_root_global_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 989 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_root_global",
+ "get_root_global_p_sc",
+ "Parrot_get_root_global_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 990 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_root_global",
+ "get_root_global_p_p_s",
+ "Parrot_get_root_global_p_p_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 991 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_root_global",
+ "get_root_global_p_pc_s",
+ "Parrot_get_root_global_p_pc_s",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 992 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_root_global",
+ "get_root_global_p_p_sc",
+ "Parrot_get_root_global_p_p_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 993 */
+ /* type PARROT_FUNCTION_OP, */
+ "get_root_global",
+ "get_root_global_p_pc_sc",
+ "Parrot_get_root_global_p_pc_sc",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 994 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_global",
+ "set_global_s_p",
+ "Parrot_set_global_s_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 995 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_global",
+ "set_global_sc_p",
+ "Parrot_set_global_sc_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 996 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_global",
+ "set_global_p_s_p",
+ "Parrot_set_global_p_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 997 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_global",
+ "set_global_pc_s_p",
+ "Parrot_set_global_pc_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 998 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_global",
+ "set_global_p_sc_p",
+ "Parrot_set_global_p_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 999 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_global",
+ "set_global_pc_sc_p",
+ "Parrot_set_global_pc_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1000 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_hll_global",
+ "set_hll_global_s_p",
+ "Parrot_set_hll_global_s_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 1001 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_hll_global",
+ "set_hll_global_sc_p",
+ "Parrot_set_hll_global_sc_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 1002 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_hll_global",
+ "set_hll_global_p_s_p",
+ "Parrot_set_hll_global_p_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1003 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_hll_global",
+ "set_hll_global_pc_s_p",
+ "Parrot_set_hll_global_pc_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1004 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_hll_global",
+ "set_hll_global_p_sc_p",
+ "Parrot_set_hll_global_p_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1005 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_hll_global",
+ "set_hll_global_pc_sc_p",
+ "Parrot_set_hll_global_pc_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1006 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_root_global",
+ "set_root_global_s_p",
+ "Parrot_set_root_global_s_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 1007 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_root_global",
+ "set_root_global_sc_p",
+ "Parrot_set_root_global_sc_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 1008 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_root_global",
+ "set_root_global_p_s_p",
+ "Parrot_set_root_global_p_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1009 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_root_global",
+ "set_root_global_pc_s_p",
+ "Parrot_set_root_global_pc_s_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1010 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_root_global",
+ "set_root_global_p_sc_p",
+ "Parrot_set_root_global_p_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1011 */
+ /* type PARROT_FUNCTION_OP, */
+ "set_root_global",
+ "set_root_global_pc_sc_p",
+ "Parrot_set_root_global_pc_sc_p",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1012 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_name",
+ "find_name_p_s",
+ "Parrot_find_name_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 1013 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_name",
+ "find_name_p_sc",
+ "Parrot_find_name_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 1014 */
+ /* type PARROT_INLINE_OP, */
+ "find_sub_not_null",
+ "find_sub_not_null_p_s",
+ "Parrot_find_sub_not_null_p_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 1015 */
+ /* type PARROT_INLINE_OP, */
+ "find_sub_not_null",
+ "find_sub_not_null_p_sc",
+ "Parrot_find_sub_not_null_p_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 1016 */
+ /* type PARROT_FUNCTION_OP, */
+ "trap",
+ "trap",
+ "Parrot_trap",
+ /* "", body */
+ 0,
+ 1,
+ { (arg_type_t) 0 },
+ { (arg_dir_t) 0 },
+ { 0 }
+ },
+ { /* 1017 */
+ /* type PARROT_INLINE_OP, */
+ "set_label",
+ "set_label_p_ic",
+ "Parrot_set_label_p_ic",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 1 }
+ },
+ { /* 1018 */
+ /* type PARROT_INLINE_OP, */
+ "get_label",
+ "get_label_i_p",
+ "Parrot_get_label_i_p",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 1019 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_p_p_p",
+ "Parrot_fetch_p_p_p_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1020 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_pc_p_p",
+ "Parrot_fetch_p_pc_p_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1021 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_p_pc_p",
+ "Parrot_fetch_p_p_pc_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1022 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_pc_pc_p",
+ "Parrot_fetch_p_pc_pc_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1023 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_p_p_pc",
+ "Parrot_fetch_p_p_p_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1024 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_pc_p_pc",
+ "Parrot_fetch_p_pc_p_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1025 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_p_pc_pc",
+ "Parrot_fetch_p_p_pc_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1026 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_pc_pc_pc",
+ "Parrot_fetch_p_pc_pc_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1027 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_p_i_p",
+ "Parrot_fetch_p_p_i_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1028 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_pc_i_p",
+ "Parrot_fetch_p_pc_i_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1029 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_p_ic_p",
+ "Parrot_fetch_p_p_ic_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1030 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_pc_ic_p",
+ "Parrot_fetch_p_pc_ic_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1031 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_p_i_pc",
+ "Parrot_fetch_p_p_i_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1032 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_pc_i_pc",
+ "Parrot_fetch_p_pc_i_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1033 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_p_ic_pc",
+ "Parrot_fetch_p_p_ic_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1034 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_pc_ic_pc",
+ "Parrot_fetch_p_pc_ic_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1035 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_p_s_p",
+ "Parrot_fetch_p_p_s_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1036 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_pc_s_p",
+ "Parrot_fetch_p_pc_s_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1037 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_p_sc_p",
+ "Parrot_fetch_p_p_sc_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1038 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_pc_sc_p",
+ "Parrot_fetch_p_pc_sc_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1039 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_p_s_pc",
+ "Parrot_fetch_p_p_s_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1040 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_pc_s_pc",
+ "Parrot_fetch_p_pc_s_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1041 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_p_sc_pc",
+ "Parrot_fetch_p_p_sc_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1042 */
+ /* type PARROT_INLINE_OP, */
+ "fetch",
+ "fetch_p_pc_sc_pc",
+ "Parrot_fetch_p_pc_sc_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1043 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_p_p_p",
+ "Parrot_vivify_p_p_p_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1044 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_pc_p_p",
+ "Parrot_vivify_p_pc_p_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1045 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_p_pc_p",
+ "Parrot_vivify_p_p_pc_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1046 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_pc_pc_p",
+ "Parrot_vivify_p_pc_pc_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1047 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_p_p_pc",
+ "Parrot_vivify_p_p_p_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1048 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_pc_p_pc",
+ "Parrot_vivify_p_pc_p_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_P, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1049 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_p_pc_pc",
+ "Parrot_vivify_p_p_pc_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1050 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_pc_pc_pc",
+ "Parrot_vivify_p_pc_pc_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_PC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1051 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_p_i_p",
+ "Parrot_vivify_p_p_i_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1052 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_pc_i_p",
+ "Parrot_vivify_p_pc_i_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1053 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_p_ic_p",
+ "Parrot_vivify_p_p_ic_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1054 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_pc_ic_p",
+ "Parrot_vivify_p_pc_ic_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1055 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_p_i_pc",
+ "Parrot_vivify_p_p_i_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1056 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_pc_i_pc",
+ "Parrot_vivify_p_pc_i_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1057 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_p_ic_pc",
+ "Parrot_vivify_p_p_ic_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1058 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_pc_ic_pc",
+ "Parrot_vivify_p_pc_ic_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1059 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_p_s_p",
+ "Parrot_vivify_p_p_s_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1060 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_pc_s_p",
+ "Parrot_vivify_p_pc_s_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1061 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_p_sc_p",
+ "Parrot_vivify_p_p_sc_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1062 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_pc_sc_p",
+ "Parrot_vivify_p_pc_sc_p",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_P },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1063 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_p_s_pc",
+ "Parrot_vivify_p_p_s_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1064 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_pc_s_pc",
+ "Parrot_vivify_p_pc_s_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_S, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1065 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_p_sc_pc",
+ "Parrot_vivify_p_p_sc_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1066 */
+ /* type PARROT_INLINE_OP, */
+ "vivify",
+ "vivify_p_pc_sc_pc",
+ "Parrot_vivify_p_pc_sc_pc",
+ /* "", body */
+ 0,
+ 5,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_SC, PARROT_ARG_PC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0, 0 }
+ },
+ { /* 1067 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_s_i",
+ "Parrot_new_p_s_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1068 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_sc_i",
+ "Parrot_new_p_sc_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1069 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_s_ic",
+ "Parrot_new_p_s_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_S, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1070 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_sc_ic",
+ "Parrot_new_p_sc_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_SC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1071 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_p_i",
+ "Parrot_new_p_p_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1072 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_pc_i",
+ "Parrot_new_p_pc_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1073 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_p_ic",
+ "Parrot_new_p_p_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1074 */
+ /* type PARROT_FUNCTION_OP, */
+ "new",
+ "new_p_pc_ic",
+ "Parrot_new_p_pc_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1075 */
+ /* type PARROT_FUNCTION_OP, */
+ "root_new",
+ "root_new_p_p_i",
+ "Parrot_root_new_p_p_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1076 */
+ /* type PARROT_FUNCTION_OP, */
+ "root_new",
+ "root_new_p_pc_i",
+ "Parrot_root_new_p_pc_i",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_I },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1077 */
+ /* type PARROT_FUNCTION_OP, */
+ "root_new",
+ "root_new_p_p_ic",
+ "Parrot_root_new_p_p_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_P, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1078 */
+ /* type PARROT_FUNCTION_OP, */
+ "root_new",
+ "root_new_p_pc_ic",
+ "Parrot_root_new_p_pc_ic",
+ /* "", body */
+ 0,
+ 4,
+ { PARROT_ARG_P, PARROT_ARG_PC, PARROT_ARG_IC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
+ { 0, 0, 0 }
+ },
+ { /* 1079 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_codepoint",
+ "find_codepoint_i_s",
+ "Parrot_find_codepoint_i_s",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_S },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 1080 */
+ /* type PARROT_FUNCTION_OP, */
+ "find_codepoint",
+ "find_codepoint_i_sc",
+ "Parrot_find_codepoint_i_sc",
+ /* "", body */
+ 0,
+ 3,
+ { PARROT_ARG_I, PARROT_ARG_SC },
+ { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
+ { 0, 0 }
+ },
+ { /* 1081 */
+ /* type PARROT_FUNCTION_OP, */
+ "finalize",
+ "finalize_p",
+ "Parrot_finalize_p",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_P },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+ { /* 1082 */
+ /* type PARROT_FUNCTION_OP, */
+ "finalize",
+ "finalize_pc",
+ "Parrot_finalize_pc",
+ /* "", body */
+ 0,
+ 2,
+ { PARROT_ARG_PC },
+ { PARROT_ARGDIR_IN },
+ { 0 }
+ },
+
+};
+
+
+/*
+** Op Function Definitions:
+*/
+
+opcode_t *
+Parrot_end(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_noop(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_check_events(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const next =cur_opcode + 1;
+ Parrot_cx_check_tasks(interp, interp->scheduler);return (opcode_t *)next; /* force this being a branch op */
+}
+
+opcode_t *
+Parrot_check_events__(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const _this = CUR_OPCODE;
+ /* Restore op_func_table. */
+ disable_event_checking(interp);
+ Parrot_cx_handle_tasks(interp, interp->scheduler);return (opcode_t *)_this; /* force this being a branch op */
+}
+
+opcode_t *
+Parrot_wrapper__(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *pc = CUR_OPCODE;
+ DO_OP(pc, interp);return (opcode_t *)pc;
+}
+
+opcode_t *
+Parrot_load_bytecode_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_load_bytecode(interp, SREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_load_bytecode_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_load_bytecode(interp, CONST(1)->u.string);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_load_language_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_load_language(interp, SREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_load_language_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_load_language(interp, CONST(1)->u.string);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_branch_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);return (opcode_t *)cur_opcode + IREG(1);
+}
+
+opcode_t *
+Parrot_branch_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);return (opcode_t *)cur_opcode + cur_opcode[1];
+}
+
+opcode_t *
+Parrot_local_branch_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL return_addr;
+ opcode_t * const dest =cur_opcode + 3;
+
+ if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+ EXCEPTION_INVALID_OPERATION,
+ "Must pass a valid integer array to 'local_branch'");return (opcode_t *)handler;
+ }
+
+ return_addr = PTR2INTVAL(dest);
+ VTABLE_push_integer(interp, PREG(1), return_addr);return (opcode_t *)cur_opcode + IREG(2);
+}
+
+opcode_t *
+Parrot_local_branch_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL return_addr;
+ opcode_t * const dest =cur_opcode + 3;
+
+ if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+ EXCEPTION_INVALID_OPERATION,
+ "Must pass a valid integer array to 'local_branch'");return (opcode_t *)handler;
+ }
+
+ return_addr = PTR2INTVAL(dest);
+ VTABLE_push_integer(interp, PREG(1), return_addr);return (opcode_t *)cur_opcode + cur_opcode[2];
+}
+
+opcode_t *
+Parrot_local_return_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL return_addr;
+ opcode_t *next;
+ opcode_t * const dest =cur_opcode + 2;
+
+ if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_ResizableIntegerArray) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+ EXCEPTION_INVALID_OPERATION,
+ "Must pass a valid integer array to 'local_return'");return (opcode_t *)handler;
+ }
+
+ return_addr = VTABLE_pop_integer(interp, PREG(1));
+ next = INTVAL2PTR(opcode_t *, return_addr);
+
+ /* The return address must be within the current code segment. */
+ if (! (next >= interp->code->base.data
+ && next < (interp->code->base.data + interp->code->base.size))) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+ EXCEPTION_INVALID_OPERATION,
+ "Address for 'local_return' must be within the current code segment");return (opcode_t *)handler;
+ }return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_jump_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const loc = INTVAL2PTR(opcode_t *, IREG(1));return (opcode_t *)loc;
+}
+
+opcode_t *
+Parrot_jump_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const loc = INTVAL2PTR(opcode_t *, cur_opcode[1]);return (opcode_t *)loc;
+}
+
+opcode_t *
+Parrot_enternative(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const addr = run_native(interp, CUR_OPCODE,
+ interp->code->base.data);return (opcode_t *)addr;
+}
+
+opcode_t *
+Parrot_if_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) != 0)return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_if_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (!FLOAT_IS_ZERO(NREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_if_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_boolean(interp, SREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_if_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_get_bool(interp, PREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unless_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) == 0)return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unless_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (FLOAT_IS_ZERO(NREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unless_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (!Parrot_str_boolean(interp, SREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unless_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (!VTABLE_get_bool(interp, PREG(1)))return (opcode_t *)cur_opcode + cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_invokecc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const p = PREG(1);
+ opcode_t *dest =cur_opcode + 2;
+ PMC * const signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, NULL);
+ interp->current_cont = NEED_CONTINUATION;
+ dest = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_invoke_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *dest =cur_opcode + 3;
+ PMC * const p = PREG(1);
+ PMC * const signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, NULL);
+ interp->current_cont = PREG(2);
+
+ dest = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_yield(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *dest =cur_opcode + 1;
+ PMC * const p = Parrot_pcc_get_sub(interp, CURRENT_CONTEXT(interp));
+
+ VTABLE_increment(interp, p);
+ dest = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_tailcall_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const p = PREG(1);
+ opcode_t *dest =cur_opcode + 2;
+ PMC * const ctx = CURRENT_CONTEXT(interp);
+ PMC * const parent_ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
+ PMC * const this_call_sig = Parrot_pcc_get_signature(interp, ctx);
+ PMC * const parent_call_sig = Parrot_pcc_get_signature(interp, parent_ctx);
+ interp->current_cont = Parrot_pcc_get_continuation(interp, ctx);
+
+ Parrot_pcc_merge_signature_for_tailcall(interp, parent_call_sig, this_call_sig);
+
+ SUB_FLAG_TAILCALL_SET(interp->current_cont);
+ dest = VTABLE_invoke(interp, p, dest);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_returncc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const p = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
+ opcode_t * const dest = VTABLE_invoke(interp, p,cur_opcode + 1);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_capture_lex_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_capture_lex(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_newclosure_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = parrot_new_closure(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_args_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const raw_args = CUR_OPCODE;
+ PMC * const signature = CONST(1)->u.key;
+ PMC * const call_sig = Parrot_pcc_build_sig_object_from_op(interp,
+ PMCNULL, signature, raw_args);
+ const INTVAL argc = VTABLE_elements(interp, signature);
+ Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), call_sig);return (opcode_t *)cur_opcode + argc + 2;
+}
+
+opcode_t *
+Parrot_get_params_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const raw_params = CUR_OPCODE;
+ PMC * const signature = CONST(1)->u.key;
+ PMC * const ctx = CURRENT_CONTEXT(interp);
+ PMC * const ccont = Parrot_pcc_get_continuation(interp, ctx);
+ PMC * const caller_ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
+ PMC * const call_object = Parrot_pcc_get_signature(interp, caller_ctx);
+ INTVAL argc;
+
+ Parrot_pcc_fill_params_from_op(interp, call_object, signature, raw_params,
+ PARROT_ERRORS_PARAM_COUNT_FLAG);
+
+ /* TODO Factor out with Sub.invoke */
+ if (PObj_get_FLAGS(ccont) & SUB_FLAG_TAILCALL) {
+ PObj_get_FLAGS(ccont) &= ~SUB_FLAG_TAILCALL;
+ Parrot_pcc_dec_recursion_depth(interp, ctx);
+ Parrot_pcc_set_caller_ctx(interp, ctx, Parrot_pcc_get_caller_ctx(interp, caller_ctx));
+ }
+ argc = VTABLE_elements(interp, signature);return (opcode_t *)cur_opcode + argc + 2;
+}
+
+opcode_t *
+Parrot_set_returns_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const raw_args = CUR_OPCODE;
+ PMC * const signature = CONST(1)->u.key;
+ PMC * const call_sig = Parrot_pcc_build_sig_object_from_op(interp,
+ Parrot_pcc_get_signature(interp,
+ Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp))),
+ signature, raw_args);
+ INTVAL argc;
+
+ Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), call_sig);
+
+ argc = VTABLE_elements(interp, signature);return (opcode_t *)cur_opcode + argc + 2;
+}
+
+opcode_t *
+Parrot_get_results_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const raw_params = CUR_OPCODE;
+ PMC * const signature = CONST(1)->u.key;
+ PMC *ctx = CURRENT_CONTEXT(interp);
+ PMC *ccont = Parrot_pcc_get_continuation(interp, ctx);
+ PMC *call_object = Parrot_pcc_get_signature(interp, ctx);
+
+ INTVAL argc;
+
+ Parrot_pcc_fill_params_from_op(interp, call_object, signature, raw_params,
+ PARROT_ERRORS_RESULT_COUNT_FLAG);
+
+ argc = VTABLE_elements(interp, signature);
+ Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), PMCNULL);return (opcode_t *)cur_opcode + argc + 2;
+}
+
+opcode_t *
+Parrot_set_result_info_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
+
+ VTABLE_set_attr_str(interp, ctx,
+ Parrot_str_new_constant(interp, "return_flags"),
+ PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_set_result_info_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
+
+ VTABLE_set_attr_str(interp, ctx,
+ Parrot_str_new_constant(interp, "return_flags"),
+ CONST(1)->u.key);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_result_info_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const caller_ctx = Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
+ PMC * const sig = VTABLE_get_attr_str(interp, caller_ctx,
+ Parrot_str_new_constant(interp, "return_flags"));
+
+ /* If no elements, hand back empty array; otherwise PMC. */
+ if (!sig)
+ PREG(1) = Parrot_pmc_new(interp, enum_class_FixedIntegerArray);
+ else
+ PREG(1) = sig;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_set_addr_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PTR2INTVAL(CUR_OPCODE + cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_addr_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_pointer(interp, PREG(1), (CUR_OPCODE + cur_opcode[2]));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_addr_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_pointer(interp, PREG(1), (void*)IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_addr_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ void *ptr = VTABLE_get_pointer(interp, PREG(2));
+ IREG(1) = (INTVAL)ptr;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_schedule_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_cx_schedule_task(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_addhandler_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_cx_add_handler(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_push_eh_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const eh = Parrot_pmc_new(interp, enum_class_ExceptionHandler);
+ VTABLE_set_pointer(interp, eh, CUR_OPCODE + cur_opcode[1]);
+ Parrot_cx_add_handler_local(interp, eh);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_push_eh_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_cx_add_handler_local(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_pop_eh(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_cx_delete_handler_local(interp,
+ Parrot_str_new_constant(interp, "exception"));
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_throw_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * except = PREG(1);
+ opcode_t *dest;
+ opcode_t * const ret =cur_opcode + 2;
+ PMC * const resume = pmc_new(interp, enum_class_Continuation);
+
+ VTABLE_set_pointer(interp, resume, ret);
+
+ if (PMC_IS_NULL(except) || except->vtable->base_type != enum_class_Exception)
+ except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
+ EXCEPTION_UNIMPLEMENTED,
+ Parrot_str_new_constant(interp, "Not a throwable object"));
+
+ VTABLE_set_attr_str(interp, except, Parrot_str_new_constant(interp, "resume"), resume);
+ dest = Parrot_ex_throw_from_op(interp, except, ret);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_throw_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * dest;
+ PMC * except = PREG(1);
+ if (PMC_IS_NULL(except) || except->vtable->base_type != enum_class_Exception)
+ except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
+ EXCEPTION_UNIMPLEMENTED,
+ Parrot_str_new_constant(interp, "Not a throwable object"));
+ dest = Parrot_ex_throw_from_op(interp, PREG(1),
+ VTABLE_get_pointer(interp, PREG(2)));return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_rethrow_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * dest;
+ if (PMC_IS_NULL(PREG(1)) || PREG(1)->vtable->base_type != enum_class_Exception) {
+ opcode_t * const ret =cur_opcode + 2;
+ PMC * const except = Parrot_ex_build_exception(interp, EXCEPT_fatal,
+ EXCEPTION_UNIMPLEMENTED,
+ Parrot_str_new_constant(interp, "Not a throwable object"));
+ dest = Parrot_ex_throw_from_op(interp, except, ret);return (opcode_t *)dest;
+ }
+ dest = Parrot_ex_rethrow_from_op(interp, PREG(1));return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_count_eh_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_cx_count_handlers_local(interp,
+ Parrot_str_new_constant(interp, "exception"));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_die_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *dest;
+ opcode_t * const ret =cur_opcode + 2;
+ PMC * const resume = pmc_new(interp, enum_class_Continuation);
+ PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
+ CONTROL_ERROR, SREG(1));
+
+ VTABLE_set_pointer(interp, resume, ret);
+
+ VTABLE_set_attr_str(interp, exception,
+ Parrot_str_new_constant(interp, "resume"), resume);
+ dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_die_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *dest;
+ opcode_t * const ret =cur_opcode + 2;
+ PMC * const resume = pmc_new(interp, enum_class_Continuation);
+ PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_error,
+ CONTROL_ERROR, CONST(1)->u.string);
+
+ VTABLE_set_pointer(interp, resume, ret);
+
+ VTABLE_set_attr_str(interp, exception,
+ Parrot_str_new_constant(interp, "resume"), resume);
+ dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_die_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *dest;
+ opcode_t * const ret =cur_opcode + 2;
+ PMC * const resume = pmc_new(interp, enum_class_Continuation);
+ STRING * const msg = PMC_IS_NULL(PREG(1)) ? NULL : VTABLE_get_string(interp, PREG(1));
+ PMC * const exception =
+ Parrot_ex_build_exception(interp, EXCEPT_error, CONTROL_ERROR, msg);
+
+ VTABLE_set_pointer(interp, resume, ret);
+
+ VTABLE_set_attr_str(interp, exception,
+ Parrot_str_new_constant(interp, "resume"), resume);
+ dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_die_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *dest;
+ opcode_t * const ret =cur_opcode + 2;
+ PMC * const resume = pmc_new(interp, enum_class_Continuation);
+ STRING * const msg = PMC_IS_NULL(CONST(1)->u.key) ? NULL : VTABLE_get_string(interp, CONST(1)->u.key);
+ PMC * const exception =
+ Parrot_ex_build_exception(interp, EXCEPT_error, CONTROL_ERROR, msg);
+
+ VTABLE_set_pointer(interp, resume, ret);
+
+ VTABLE_set_attr_str(interp, exception,
+ Parrot_str_new_constant(interp, "resume"), resume);
+ dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_die_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) == EXCEPT_doomed)
+ _exit(IREG(2));
+ else {
+ opcode_t * const ret =cur_opcode + 3;
+ PMC * const exception = Parrot_ex_build_exception(interp, IREG(1), IREG(2), NULL);
+ opcode_t * const dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+ }
+}
+
+opcode_t *
+Parrot_die_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[1] == EXCEPT_doomed)
+ _exit(IREG(2));
+ else {
+ opcode_t * const ret =cur_opcode + 3;
+ PMC * const exception = Parrot_ex_build_exception(interp, cur_opcode[1], IREG(2), NULL);
+ opcode_t * const dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+ }
+}
+
+opcode_t *
+Parrot_die_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) == EXCEPT_doomed)
+ _exit(cur_opcode[2]);
+ else {
+ opcode_t * const ret =cur_opcode + 3;
+ PMC * const exception = Parrot_ex_build_exception(interp, IREG(1), cur_opcode[2], NULL);
+ opcode_t * const dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+ }
+}
+
+opcode_t *
+Parrot_die_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[1] == EXCEPT_doomed)
+ _exit(cur_opcode[2]);
+ else {
+ opcode_t * const ret =cur_opcode + 3;
+ PMC * const exception = Parrot_ex_build_exception(interp, cur_opcode[1], cur_opcode[2], NULL);
+ opcode_t * const dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+ }
+}
+
+opcode_t *
+Parrot_exit_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *dest;
+ opcode_t * const ret =cur_opcode + 2;
+ PMC * const resume = pmc_new(interp, enum_class_Continuation);
+ PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit,
+ CONTROL_EXIT, NULL);
+
+ VTABLE_set_pointer(interp, resume, ret);
+
+ VTABLE_set_attr_str(interp, exception,
+ Parrot_str_new_constant(interp, "resume"), resume);
+ VTABLE_set_integer_keyed_str(interp, exception,
+ Parrot_str_new_constant(interp, "exit_code"), IREG(1));
+ dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_exit_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *dest;
+ opcode_t * const ret =cur_opcode + 2;
+ PMC * const resume = pmc_new(interp, enum_class_Continuation);
+ PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit,
+ CONTROL_EXIT, NULL);
+
+ VTABLE_set_pointer(interp, resume, ret);
+
+ VTABLE_set_attr_str(interp, exception,
+ Parrot_str_new_constant(interp, "resume"), resume);
+ VTABLE_set_integer_keyed_str(interp, exception,
+ Parrot_str_new_constant(interp, "exit_code"), cur_opcode[1]);
+ dest = Parrot_ex_throw_from_op(interp, exception, ret);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_debug_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) != 0) { Interp_debug_SET(interp, IREG(1)); }
+ else { Interp_debug_CLEAR(interp, PARROT_ALL_DEBUG_FLAGS); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_debug_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[1] != 0) { Interp_debug_SET(interp, cur_opcode[1]); }
+ else { Interp_debug_CLEAR(interp, PARROT_ALL_DEBUG_FLAGS); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_bounds_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) != 0) { Parrot_set_flag(interp, PARROT_BOUNDS_FLAG); }
+ else { Interp_flags_CLEAR(interp, PARROT_BOUNDS_FLAG); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_bounds_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[1] != 0) { Parrot_set_flag(interp, PARROT_BOUNDS_FLAG); }
+ else { Interp_flags_CLEAR(interp, PARROT_BOUNDS_FLAG); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_profile_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) != 0) { Parrot_set_flag(interp, PARROT_PROFILE_FLAG); }
+ else { Interp_flags_CLEAR(interp, PARROT_PROFILE_FLAG); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_profile_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[1] != 0) { Parrot_set_flag(interp, PARROT_PROFILE_FLAG); }
+ else { Interp_flags_CLEAR(interp, PARROT_PROFILE_FLAG); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_trace_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) != 0) { Parrot_set_trace(interp, IREG(1)); }
+ else { Parrot_clear_trace(interp, PARROT_ALL_TRACE_FLAGS); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_trace_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[1] != 0) { Parrot_set_trace(interp, cur_opcode[1]); }
+ else { Parrot_clear_trace(interp, PARROT_ALL_TRACE_FLAGS); }interp->resume_offset = REL_PC + 2; interp->resume_flag = 1;return (opcode_t *)0;
+}
+
+opcode_t *
+Parrot_gc_debug_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) != 0) { Interp_flags_SET(interp, PARROT_GC_DEBUG_FLAG); }
+ else { Interp_flags_CLEAR(interp, PARROT_GC_DEBUG_FLAG); }
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_gc_debug_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[1] != 0) { Interp_flags_SET(interp, PARROT_GC_DEBUG_FLAG); }
+ else { Interp_flags_CLEAR(interp, PARROT_GC_DEBUG_FLAG); }
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_interpinfo_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = interpinfo(interp, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_interpinfo_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = interpinfo(interp, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_interpinfo_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = interpinfo_p(interp, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_interpinfo_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = interpinfo_p(interp, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_interpinfo_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const s = interpinfo_s(interp, IREG(2));
+ SREG(1) = s;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_interpinfo_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const s = interpinfo_s(interp, cur_opcode[2]);
+ SREG(1) = s;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_warningson_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PARROT_WARNINGS_on(interp, IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_warningson_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PARROT_WARNINGS_on(interp, cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_warningsoff_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PARROT_WARNINGS_off(interp, IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_warningsoff_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PARROT_WARNINGS_off(interp, cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_errorson_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PARROT_ERRORS_on(interp, IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_errorson_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PARROT_ERRORS_on(interp, cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_errorsoff_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PARROT_ERRORS_off(interp, IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_errorsoff_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PARROT_ERRORS_off(interp, cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_runinterp_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Interp * const new_interp = (Interp *)VTABLE_get_pointer(interp, PREG(1));
+ Interp_flags_SET(new_interp, PARROT_EXTERN_CODE_FLAG);
+ Parrot_switch_to_cs(new_interp, interp->code, 1);
+ runops(new_interp, REL_PC + IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_runinterp_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Interp * const new_interp = (Interp *)VTABLE_get_pointer(interp, PREG(1));
+ Interp_flags_SET(new_interp, PARROT_EXTERN_CODE_FLAG);
+ Parrot_switch_to_cs(new_interp, interp->code, 1);
+ runops(new_interp, REL_PC + cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_getinterp_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
+ IGLOBALS_INTERPRETER);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_sweep_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[1])
+ Parrot_gc_mark_and_sweep(interp, GC_trace_normal_FLAG);
+ else
+ if (Parrot_gc_impatient_pmcs(interp))
+ Parrot_gc_mark_and_sweep(interp, GC_lazy_FLAG);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_collect(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_gc_compact_memory_pool(interp);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_sweepoff(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_block_GC_mark(interp);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_sweepon(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_unblock_GC_mark(interp);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_collectoff(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_block_GC_sweep(interp);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_collecton(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_unblock_GC_sweep(interp);
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_needs_destroy_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_gc_pmc_needs_early_collection(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_loadlib_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_load_lib(interp, SREG(2), NULL);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_loadlib_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, NULL);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_loadlib_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_load_lib(interp, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_loadlib_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_loadlib_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_load_lib(interp, SREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_loadlib_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_load_lib(interp, CONST(2)->u.string, CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_dlfunc_p_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ char * const name = Parrot_str_to_cstring(interp, (SREG(3)));
+ void *dl_handle = NULL;
+ void *ptr = NULL;
+ funcptr_t p;
+
+ if (!PMC_IS_NULL(PREG(2))
+ && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+ && VTABLE_defined(interp, PREG(2))) {
+ dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
+ }
+
+ ptr = Parrot_dlsym(dl_handle, name);
+ p = D2FPTR(ptr);
+
+ if (p == NULLfunc) {
+ const char * err = Parrot_dlerror();
+ Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+ "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+ }
+ else {
+ PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
+ VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
+ }
+ Parrot_str_free_cstring(name);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_dlfunc_p_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ char * const name = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
+ void *dl_handle = NULL;
+ void *ptr = NULL;
+ funcptr_t p;
+
+ if (!PMC_IS_NULL(PREG(2))
+ && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+ && VTABLE_defined(interp, PREG(2))) {
+ dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
+ }
+
+ ptr = Parrot_dlsym(dl_handle, name);
+ p = D2FPTR(ptr);
+
+ if (p == NULLfunc) {
+ const char * err = Parrot_dlerror();
+ Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+ "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+ }
+ else {
+ PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
+ VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
+ }
+ Parrot_str_free_cstring(name);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_dlfunc_p_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ char * const name = Parrot_str_to_cstring(interp, (SREG(3)));
+ void *dl_handle = NULL;
+ void *ptr = NULL;
+ funcptr_t p;
+
+ if (!PMC_IS_NULL(PREG(2))
+ && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+ && VTABLE_defined(interp, PREG(2))) {
+ dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
+ }
+
+ ptr = Parrot_dlsym(dl_handle, name);
+ p = D2FPTR(ptr);
+
+ if (p == NULLfunc) {
+ const char * err = Parrot_dlerror();
+ Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+ "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+ }
+ else {
+ PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
+ VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
+ }
+ Parrot_str_free_cstring(name);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_dlfunc_p_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ char * const name = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
+ void *dl_handle = NULL;
+ void *ptr = NULL;
+ funcptr_t p;
+
+ if (!PMC_IS_NULL(PREG(2))
+ && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+ && VTABLE_defined(interp, PREG(2))) {
+ dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
+ }
+
+ ptr = Parrot_dlsym(dl_handle, name);
+ p = D2FPTR(ptr);
+
+ if (p == NULLfunc) {
+ const char * err = Parrot_dlerror();
+ Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+ "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+ }
+ else {
+ PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
+ VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
+ }
+ Parrot_str_free_cstring(name);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_dlvar_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ char * const name = Parrot_str_to_cstring(interp, (SREG(3)));
+ void * dl_handle = NULL;
+ void * p = NULL;
+
+ if (!PMC_IS_NULL(PREG(2))
+ && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+ && VTABLE_defined(interp, PREG(2))) {
+ dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
+ }
+
+ p = Parrot_dlsym(dl_handle, name);
+
+ if (p == NULL) {
+ const char * const err = Parrot_dlerror();
+ Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+ "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+ }
+ else {
+ /* At this point we have the symbol's address. We just need to build
+ a PMC with it so we can get and set the value */
+ PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, PREG(1), p);
+ }
+ Parrot_str_free_cstring(name);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_dlvar_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ char * const name = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
+ void * dl_handle = NULL;
+ void * p = NULL;
+
+ if (!PMC_IS_NULL(PREG(2))
+ && PREG(2)->vtable->base_type == enum_class_ParrotLibrary
+ && VTABLE_defined(interp, PREG(2))) {
+ dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
+ }
+
+ p = Parrot_dlsym(dl_handle, name);
+
+ if (p == NULL) {
+ const char * const err = Parrot_dlerror();
+ Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
+ "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
+ }
+ else {
+ /* At this point we have the symbol's address. We just need to build
+ a PMC with it so we can get and set the value */
+ PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+ VTABLE_set_pointer(interp, PREG(1), p);
+ }
+ Parrot_str_free_cstring(name);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_compreg_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
+ interp->iglobals, IGLOBALS_COMPREG_HASH);
+ VTABLE_set_pmc_keyed_str(interp, compreg_hash, SREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_compreg_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
+ interp->iglobals, IGLOBALS_COMPREG_HASH);
+ VTABLE_set_pmc_keyed_str(interp, compreg_hash, CONST(1)->u.string, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_compreg_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
+ interp->iglobals, IGLOBALS_COMPREG_HASH);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_compreg_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
+ interp->iglobals, IGLOBALS_COMPREG_HASH);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, compreg_hash, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_new_callback_p_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), SREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_new_callback_p_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_make_cb(interp, PREG(2), PREG(3), CONST(4)->u.string);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_annotations_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (interp->code->annotations) {
+ const opcode_t cur_pos = (cur_opcode + 2) - interp->code->base.data;
+ PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
+ cur_pos, NULL);
+ }
+ else {
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Hash);
+ }
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_annotations_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (interp->code->annotations) {
+ const opcode_t cur_pos = (cur_opcode + 3) - interp->code->base.data;
+ PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
+ cur_pos, SREG(2));
+ }
+ else {
+ PREG(1) = PMCNULL;
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_annotations_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (interp->code->annotations) {
+ const opcode_t cur_pos = (cur_opcode + 3) - interp->code->base.data;
+ PREG(1) = PackFile_Annotations_lookup(interp, interp->code->annotations,
+ cur_pos, CONST(2)->u.string);
+ }
+ else {
+ PREG(1) = PMCNULL;
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_band_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) &= IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_band_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) &= cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_band_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) & IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_band_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = cur_opcode[2] & IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_band_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) & cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bor_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) |= IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bor_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) |= cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) | IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = cur_opcode[2] | IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) | cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shl_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = bit_shift_left(IREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shl_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = bit_shift_left(IREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shl_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = bit_shift_left(IREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shl_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = bit_shift_left(cur_opcode[2], IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shl_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = bit_shift_left(IREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shr_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL signed_shift = -IREG(2);
+ IREG(1) = bit_shift_left(IREG(1), signed_shift);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shr_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL signed_shift = -cur_opcode[2];
+ IREG(1) = bit_shift_left(IREG(1), signed_shift);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shr_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL signed_shift = -IREG(3);
+ IREG(1) = bit_shift_left(IREG(2), signed_shift);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shr_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL signed_shift = -IREG(3);
+ IREG(1) = bit_shift_left(cur_opcode[2], signed_shift);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_shr_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL signed_shift = -cur_opcode[3];
+ IREG(1) = bit_shift_left(IREG(2), signed_shift);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lsr_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const UINTVAL a = (UINTVAL)IREG(1);
+ const UINTVAL b = a >> IREG(2);
+ IREG(1) = (INTVAL)b;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_lsr_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const UINTVAL a = (UINTVAL)IREG(1);
+ const UINTVAL b = a >> cur_opcode[2];
+ IREG(1) = (INTVAL)b;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_lsr_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (INTVAL)((UINTVAL)IREG(2) >> IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lsr_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (INTVAL)((UINTVAL)cur_opcode[2] >> IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lsr_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (INTVAL)((UINTVAL)IREG(2) >> cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxor_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) ^= IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bxor_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) ^= cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bxor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) ^ IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = cur_opcode[2] ^ IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_bxor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) ^ cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) == IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[1] == IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) == cur_opcode[2]) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (NREG(1) == NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (CONST(1)->u.number == NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (NREG(1) == CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_equal(interp, SREG(1), SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_equal(interp, CONST(1)->u.string, SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_equal(interp, SREG(1), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_is_equal(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+ VTABLE_set_integer_native(interp, temp, IREG(2));
+
+ if (VTABLE_is_equal(interp, PREG(1), temp)) {
+ Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+ Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+ VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+ if (VTABLE_is_equal(interp, PREG(1), temp)) {
+ Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+ Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ /*
+ * the get_number and get_string should probably
+ * be also replaced with code like above, as
+ * overriding the compare multi subs wouldn't
+ * have any effect with the current code
+ */
+ if (VTABLE_get_number(interp, PREG(1)) == NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ /*
+ * the get_number and get_string should probably
+ * be also replaced with code like above, as
+ * overriding the compare multi subs wouldn't
+ * have any effect with the current code
+ */
+ if (VTABLE_get_number(interp, PREG(1)) == CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_equal(interp, VTABLE_get_string(interp, PREG(1)), SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_equal(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_is_equal_string(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_is_equal_num(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_addr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (SREG(1) == SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (CONST(1)->u.string == SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (SREG(1) == CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (CONST(1)->u.string == CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_eq_addr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (PREG(1) == PREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) != IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[1] != IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) != cur_opcode[2]) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (NREG(1) != NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (CONST(1)->u.number != NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (NREG(1) != CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_not_equal(interp, SREG(1), SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_not_equal(interp, CONST(1)->u.string, SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_not_equal(interp, SREG(1), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (!VTABLE_is_equal(interp, PREG(1), PREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+ VTABLE_set_integer_native(interp, temp, IREG(2));
+
+ if (!VTABLE_is_equal(interp, PREG(1), temp)) {
+ Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+ Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+ VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+ if (!VTABLE_is_equal(interp, PREG(1), temp)) {
+ Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+ Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_get_number(interp, PREG(1)) != NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_get_number(interp, PREG(1)) != CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_not_equal(interp, VTABLE_get_string(interp, PREG(1)), SREG(2))) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_not_equal(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) != 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) != 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_addr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (SREG(1) != SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_addr_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (CONST(1)->u.string != SREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_addr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (SREG(1) != CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_addr_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (CONST(1)->u.string != CONST(2)->u.string) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ne_addr_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (PREG(1) != PREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) < IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[1] < IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) < cur_opcode[2]) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (NREG(1) < NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (CONST(1)->u.number < NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (NREG(1) < CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, SREG(1), SREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, CONST(1)->u.string, SREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, SREG(1), CONST(2)->u.string) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp(interp, PREG(1), PREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+ VTABLE_set_integer_native(interp, temp, IREG(2));
+
+ if (VTABLE_cmp(interp, PREG(1), temp) < 0) {
+ Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+ Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+ VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+ if (VTABLE_cmp(interp, PREG(1), temp) < 0) {
+ Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+ Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_get_number(interp, PREG(1)) < NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_get_number(interp, PREG(1)) < CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_lt_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) < 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) <= IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_ic_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[1] <= IREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(1) <= cur_opcode[2]) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_n_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (NREG(1) <= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_nc_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (CONST(1)->u.number <= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_n_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (NREG(1) <= CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, SREG(1), SREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, CONST(1)->u.string, SREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, SREG(1), CONST(2)->u.string) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp(interp, PREG(1), PREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+ VTABLE_set_integer_native(interp, temp, IREG(2));
+
+ if (VTABLE_cmp(interp, PREG(1), temp) <= 0) {
+ Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+ Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+ VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+ if (VTABLE_cmp(interp, PREG(1), temp) <= 0) {
+ Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+ Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_get_number(interp, PREG(1)) <= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_get_number(interp, PREG(1)) <= CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_le_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) <= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp(interp, PREG(1), PREG(2)) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+ VTABLE_set_integer_native(interp, temp, IREG(2));
+
+ if (VTABLE_cmp(interp, PREG(1), temp) > 0) {
+ Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+ Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+ VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+ if (VTABLE_cmp(interp, PREG(1), temp) > 0) {
+ Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+ Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_get_number(interp, PREG(1)) > NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_get_number(interp, PREG(1)) > CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_gt_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) > 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp(interp, PREG(1), PREG(2)) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+ VTABLE_set_integer_native(interp, temp, IREG(2));
+
+ if (VTABLE_cmp(interp, PREG(1), temp) >= 0) {
+ Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+ Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const temp = Parrot_pmc_new_temporary(interp, enum_class_Integer);
+ VTABLE_set_integer_native(interp, temp, cur_opcode[2]);
+
+ if (VTABLE_cmp(interp, PREG(1), temp) >= 0) {
+ Parrot_pmc_free_temporary(interp, temp);return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+ Parrot_pmc_free_temporary(interp, temp);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_get_number(interp, PREG(1)) >= NREG(2)) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_nc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_get_number(interp, PREG(1)) >= CONST(2)->u.number) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), SREG(2)) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (Parrot_str_compare(interp, VTABLE_get_string(interp, PREG(1)), CONST(2)->u.string) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_str_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp_string(interp, PREG(1), PREG(2)) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ge_num_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_cmp_num(interp, PREG(1), PREG(2)) >= 0) {return (opcode_t *)cur_opcode + cur_opcode[3];
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_if_null_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (PMC_IS_NULL(PREG(1))) {return (opcode_t *)cur_opcode + cur_opcode[2];
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_if_null_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (STRING_IS_NULL(SREG(1))) {return (opcode_t *)cur_opcode + cur_opcode[2];
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unless_null_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (!PMC_IS_NULL(PREG(1))) {return (opcode_t *)cur_opcode + cur_opcode[2];
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unless_null_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (!STRING_IS_NULL(SREG(1))) {return (opcode_t *)cur_opcode + cur_opcode[2];
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_cmp_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) < IREG(3) ? -1 :
+ IREG(2) > IREG(3) ? +1 :
+ 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = cur_opcode[2] < IREG(3) ? -1 :
+ cur_opcode[2] > IREG(3) ? +1 :
+ 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) < cur_opcode[3] ? -1 :
+ IREG(2) > cur_opcode[3] ? +1 :
+ 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = NREG(2) < NREG(3) ? -1 :
+ NREG(2) > NREG(3) ? +1 :
+ 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(2)->u.number < NREG(3) ? -1 :
+ CONST(2)->u.number > NREG(3) ? +1 :
+ 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = NREG(2) < CONST(3)->u.number ? -1 :
+ NREG(2) > CONST(3)->u.number ? +1 :
+ 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_compare(interp, SREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_cmp(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL l = VTABLE_get_integer(interp, PREG(2));
+ IREG(1) = l < IREG(3) ? -1 :
+ l > IREG(3) ? +1 :
+ 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL l = VTABLE_get_integer(interp, PREG(2));
+ IREG(1) = l < cur_opcode[3] ? -1 :
+ l > cur_opcode[3] ? +1 :
+ 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const FLOATVAL l = VTABLE_get_number(interp, PREG(2));
+ IREG(1) = l < NREG(3) ? -1 :
+ l > NREG(3) ? +1 :
+ 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const FLOATVAL l = VTABLE_get_number(interp, PREG(2));
+ IREG(1) = l < CONST(3)->u.number ? -1 :
+ l > CONST(3)->u.number ? +1 :
+ 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING* const l = VTABLE_get_string(interp, PREG(2));
+ IREG(1) = Parrot_str_compare(interp, l, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING* const l = VTABLE_get_string(interp, PREG(2));
+ IREG(1) = Parrot_str_compare(interp, l, CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_str_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_cmp_string(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_num_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_cmp_num(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_cmp_pmc_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_cmp_pmc(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_issame_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (PREG(2) == PREG(3))
+ IREG(1) = 1;
+ else
+ IREG(1) = VTABLE_is_same(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_issame_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = SREG(2) == SREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_issame_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(2)->u.string == SREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_issame_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = SREG(2) == CONST(3)->u.string;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_issame_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(2)->u.string == CONST(3)->u.string;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isntsame_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (PREG(2) == PREG(3))
+ IREG(1) = 0;
+ else
+ IREG(1) = !VTABLE_is_same(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isntsame_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = SREG(2) != SREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isntsame_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(2)->u.string != SREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isntsame_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = SREG(2) != CONST(3)->u.string;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isntsame_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(2)->u.string != CONST(3)->u.string;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_istrue_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_get_bool(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_isfalse_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = !VTABLE_get_bool(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_isnull_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PMC_IS_NULL(PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_isnull_i_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PMC_IS_NULL(CONST(2)->u.key);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_isnull_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = STRING_IS_NULL(SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_isnull_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = STRING_IS_NULL(CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_isgt_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) > 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isge_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) >= 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) <= IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = cur_opcode[2] <= IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) <= cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = NREG(2) <= NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(2)->u.number <= NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = NREG(2) <= CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_compare(interp, SREG(2), SREG(3)) <= 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3)) <= 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string) <= 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isle_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) <= 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (IREG(2) < IREG(3)) ? 1 : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (cur_opcode[2] < IREG(3)) ? 1 : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (IREG(2) < cur_opcode[3]) ? 1 : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = NREG(2) < NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(2)->u.number < NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = NREG(2) < CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_compare(interp, SREG(2), SREG(3)) < 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_compare(interp, CONST(2)->u.string, SREG(3)) < 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_compare(interp, SREG(2), CONST(3)->u.string) < 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_islt_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (VTABLE_cmp(interp, PREG(2), PREG(3)) < 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (IREG(2) == IREG(3)) ? 1 : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (cur_opcode[2] == IREG(3)) ? 1 : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (IREG(2) == cur_opcode[3]) ? 1 : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = NREG(2) == NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(2)->u.number == NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = NREG(2) == CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (Parrot_str_equal(interp, SREG(2), SREG(3)) ? 1 : 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (Parrot_str_equal(interp, CONST(2)->u.string, SREG(3)) ? 1 : 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (Parrot_str_equal(interp, SREG(2), CONST(3)->u.string) ? 1 : 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_iseq_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (&PREG(2) == &PREG(3))
+ IREG(1) = 1;
+ else
+ IREG(1) = VTABLE_is_equal(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (IREG(2) == IREG(3)) ? 0 : 1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (cur_opcode[2] == IREG(3)) ? 0 : 1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (IREG(2) == cur_opcode[3]) ? 0 : 1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = NREG(2) != NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(2)->u.number != NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = NREG(2) != CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (Parrot_str_not_equal(interp, SREG(2), SREG(3)) ? 1 : 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (Parrot_str_not_equal(interp, CONST(2)->u.string, SREG(3)) ? 1 : 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (Parrot_str_not_equal(interp, SREG(2), CONST(3)->u.string) ? 1 : 0);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isne_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (&PREG(2) == &PREG(3))
+ IREG(1) = 0;
+ else
+ IREG(1) = !VTABLE_is_equal(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_and_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) ? IREG(3) : IREG(2);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_and_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = cur_opcode[2] ? IREG(3) : cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_and_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) ? cur_opcode[3] : IREG(2);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_and_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_logical_and(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_not_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = ! IREG(1);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_not_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = ! IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_not_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_logical_not(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_not_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_logical_not(interp, PREG(2), PREG(1));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_or_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) ? IREG(2) : IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_or_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = cur_opcode[2] ? cur_opcode[2] : IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_or_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) ? IREG(2) : cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_or_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_logical_or(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_xor_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (IREG(2) && ! IREG(3)) ? IREG(2) : (IREG(3) && ! IREG(2)) ? IREG(3) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_xor_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (cur_opcode[2] && ! IREG(3)) ? cur_opcode[2] : (IREG(3) && ! cur_opcode[2]) ? IREG(3) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_xor_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (IREG(2) && ! cur_opcode[3]) ? IREG(2) : (cur_opcode[3] && ! IREG(2)) ? cur_opcode[3] : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_xor_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_logical_xor(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_print_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_io_printf(interp, INTVAL_FMT, (INTVAL)IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_io_printf(interp, INTVAL_FMT, (INTVAL)cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#ifdef PARROT_HAS_NEGATIVE_ZERO
+ Parrot_io_printf(interp, FLOATVAL_FMT, NREG(1));
+#else
+ /* Workaround for older msvcrt and openbsd. TT #313 */
+ if (Parrot_is_nzero(NREG(1))) {
+ Parrot_io_printf(interp, "-0");
+ }
+ else {
+ Parrot_io_printf(interp, FLOATVAL_FMT, NREG(1));
+ }
+#endif
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#ifdef PARROT_HAS_NEGATIVE_ZERO
+ Parrot_io_printf(interp, FLOATVAL_FMT, CONST(1)->u.number);
+#else
+ /* Workaround for older msvcrt and openbsd. TT #313 */
+ if (Parrot_is_nzero(CONST(1)->u.number)) {
+ Parrot_io_printf(interp, "-0");
+ }
+ else {
+ Parrot_io_printf(interp, FLOATVAL_FMT, CONST(1)->u.number);
+ }
+#endif
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const s = SREG(1);
+ if (s && Parrot_str_byte_length(interp, s))
+ Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const s = CONST(1)->u.string;
+ if (s && Parrot_str_byte_length(interp, s))
+ Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const p = PREG(1);
+ STRING * const s = (VTABLE_get_string(interp, p));
+ if (s)
+ Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_io_printf(interp, INTVAL_FMT "\n", (INTVAL)IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_io_printf(interp, INTVAL_FMT "\n", (INTVAL)cur_opcode[1]);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#ifdef PARROT_HAS_NEGATIVE_ZERO
+ Parrot_io_printf(interp, FLOATVAL_FMT "\n", NREG(1));
+#else
+ /* Workaround for older msvcrt and openbsd. TT #313 */
+ if (Parrot_is_nzero(NREG(1))) {
+ Parrot_io_printf(interp, "-0\n");
+ }
+ else {
+ Parrot_io_printf(interp, FLOATVAL_FMT "\n", NREG(1));
+ }
+#endif
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#ifdef PARROT_HAS_NEGATIVE_ZERO
+ Parrot_io_printf(interp, FLOATVAL_FMT "\n", CONST(1)->u.number);
+#else
+ /* Workaround for older msvcrt and openbsd. TT #313 */
+ if (Parrot_is_nzero(CONST(1)->u.number)) {
+ Parrot_io_printf(interp, "-0\n");
+ }
+ else {
+ Parrot_io_printf(interp, FLOATVAL_FMT "\n", CONST(1)->u.number);
+ }
+#endif
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const s = SREG(1);
+ if (s && Parrot_str_byte_length(interp, s))
+ Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+ Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const s = CONST(1)->u.string;
+ if (s && Parrot_str_byte_length(interp, s))
+ Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+ Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_say_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const p = PREG(1);
+
+ if (PMC_IS_NULL(p)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 2,
+ EXCEPTION_UNEXPECTED_NULL,
+ "Null PMC in say");return (opcode_t *)handler;
+ }
+ else {
+ STRING * const s = VTABLE_get_string(interp, p);
+ if (s)
+ Parrot_io_putps(interp, _PIO_STDOUT(interp), s);
+ Parrot_io_putps(interp, _PIO_STDOUT(interp), Parrot_str_new_constant(interp, "\n"));
+ }
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_print_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (PREG(1)) {
+ STRING * const s = Parrot_str_from_int(interp, IREG(2));
+ Parrot_io_putps(interp, PREG(1), s);
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (PREG(1)) {
+ STRING * const s = Parrot_str_from_int(interp, cur_opcode[2]);
+ Parrot_io_putps(interp, PREG(1), s);
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (PREG(1)) {
+ STRING * const s = Parrot_sprintf_c(interp, FLOATVAL_FMT, NREG(2));
+ Parrot_io_putps(interp, PREG(1), s);
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (PREG(1)) {
+ STRING * const s = Parrot_sprintf_c(interp, FLOATVAL_FMT, CONST(2)->u.number);
+ Parrot_io_putps(interp, PREG(1), s);
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (SREG(2) && PREG(1)) {
+ Parrot_io_putps(interp, PREG(1), SREG(2));
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (CONST(2)->u.string && PREG(1)) {
+ Parrot_io_putps(interp, PREG(1), CONST(2)->u.string);
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_print_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (PREG(2) && PREG(1)) {
+ STRING * const s = VTABLE_get_string(interp, PREG(2));
+ Parrot_io_putps(interp, PREG(1), s);
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_getstdin_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = _PIO_STDIN(interp);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_getstdout_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = _PIO_STDOUT(interp);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_getstderr_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = _PIO_STDERR(interp);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_abs_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = abs(IREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_abs_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = fabs(NREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_abs_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = abs(IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_abs_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = fabs(NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_abs_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_absolute(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_abs_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_absolute(interp, PREG(2), PREG(1));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) += IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) += cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) += NREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) += CONST(2)->u.number;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_add(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_add_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_add_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_add_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_add_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) + IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = cur_opcode[2] + IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) + cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = NREG(2) + NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = CONST(2)->u.number + NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = NREG(2) + CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_add(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_add_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_add_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_p_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_add_float(interp, PREG(2), NREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_add_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_dec_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1)--;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_dec_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1)--;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_dec_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_decrement(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_div_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL den = IREG(2);
+ if (den == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ IREG(1) /= den;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL den = cur_opcode[2];
+ if (den == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ IREG(1) /= den;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL den = NREG(2);
+ if (FLOAT_IS_ZERO(den)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ NREG(1) /= den;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL den = CONST(2)->u.number;
+ if (FLOAT_IS_ZERO(den)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ NREG(1) /= den;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_divide(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_divide_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_divide_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_divide_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_divide_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_div_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL den = IREG(3);
+ if (den == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ IREG(1) = IREG(2) / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL den = IREG(3);
+ if (den == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ IREG(1) = cur_opcode[2] / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL den = cur_opcode[3];
+ if (den == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ IREG(1) = IREG(2) / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_i_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL den = cur_opcode[3];
+ if (den == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ IREG(1) = cur_opcode[2] / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL den = NREG(3);
+ if (FLOAT_IS_ZERO(den)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ NREG(1) = NREG(2) / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL den = NREG(3);
+ if (FLOAT_IS_ZERO(den)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ NREG(1) = CONST(2)->u.number / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL den = CONST(3)->u.number;
+ if (FLOAT_IS_ZERO(den)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ NREG(1) = NREG(2) / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_n_nc_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL den = CONST(3)->u.number;
+ if (FLOAT_IS_ZERO(den)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ NREG(1) = CONST(2)->u.number / den;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_divide(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_divide_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_divide_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_p_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_divide_float(interp, PREG(2), NREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_div_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_divide_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL den = IREG(2);
+ FLOATVAL f;
+
+ if (den == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+
+ f = floor(IREG(1) / den);
+ IREG(1) = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL den = cur_opcode[2];
+ FLOATVAL f;
+
+ if (den == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+
+ f = floor(IREG(1) / den);
+ IREG(1) = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL den = NREG(2);
+ if (FLOAT_IS_ZERO(den)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ NREG(1) = floor(NREG(1) / den);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL den = CONST(2)->u.number;
+ if (FLOAT_IS_ZERO(den)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ NREG(1) = floor(NREG(1) / den);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_floor_divide(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_floor_divide_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_floor_divide_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_floor_divide_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_floor_divide_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fdiv_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL den = IREG(3);
+ FLOATVAL f;
+
+ if (den == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+
+ f = floor(IREG(2) / den);
+ IREG(1) = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL den = IREG(3);
+ FLOATVAL f;
+
+ if (den == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+
+ f = floor(cur_opcode[2] / den);
+ IREG(1) = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ INTVAL den = cur_opcode[3];
+ FLOATVAL f;
+
+ if (den == 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+
+ f = floor(IREG(2) / den);
+ IREG(1) = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL den = NREG(3);
+ if (FLOAT_IS_ZERO(den)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ NREG(1) = floor(NREG(2) / den);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL den = NREG(3);
+ if (FLOAT_IS_ZERO(den)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ NREG(1) = floor(CONST(2)->u.number / den);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL den = CONST(3)->u.number;
+ if (FLOAT_IS_ZERO(den)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_DIV_BY_ZERO,
+ "Divide by zero");return (opcode_t *)handler;
+ }
+ NREG(1) = floor(NREG(2) / den);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_floor_divide(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_floor_divide_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_floor_divide_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_p_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_floor_divide_float(interp, PREG(2), NREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_fdiv_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_floor_divide_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ceil_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = ceil(NREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_ceil_i_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL f = ceil(NREG(2));
+ IREG(1) = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_ceil_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = ceil(NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_floor_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = floor(NREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_floor_i_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ FLOATVAL f = floor(NREG(2));
+ IREG(1) = (INTVAL)f;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_floor_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = floor(NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_inc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1)++;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_inc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1)++;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_inc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_increment(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_mod_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = intval_mod(IREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = intval_mod(IREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = floatval_mod(NREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = floatval_mod(NREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_modulus(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_modulus_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_modulus_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_modulus_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_modulus_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mod_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = intval_mod(IREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = intval_mod(cur_opcode[2], IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = intval_mod(IREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = floatval_mod(NREG(2), NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = floatval_mod(CONST(2)->u.number, NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = floatval_mod(NREG(2), CONST(3)->u.number);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_modulus(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_modulus_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_modulus_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_p_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_modulus_float(interp, PREG(2), NREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mod_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_modulus_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) *= IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) *= cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) *= NREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) *= CONST(2)->u.number;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_multiply(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_multiply_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_multiply_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_multiply_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_multiply_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_mul_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) * IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = cur_opcode[2] * IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) * cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = NREG(2) * NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = CONST(2)->u.number * NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = NREG(2) * CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_multiply(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_multiply_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_multiply_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_p_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_multiply_float(interp, PREG(2), NREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_mul_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_multiply_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_neg_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = - IREG(1);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_neg_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = - NREG(1);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_neg_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_neg(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_neg_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = - IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_neg_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = - NREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_neg_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_neg(interp, PREG(2), PREG(1));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) -= IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) -= cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) -= NREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) -= CONST(2)->u.number;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_subtract(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_subtract_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_subtract_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_subtract_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_subtract_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_sub_i_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) - IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_i_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = cur_opcode[2] - IREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_i_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2) - cur_opcode[3];
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_n_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = NREG(2) - NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_n_nc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = CONST(2)->u.number - NREG(3);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_n_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = NREG(2) - CONST(3)->u.number;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_subtract(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_subtract_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_subtract_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_p_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_subtract_float(interp, PREG(2), NREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sub_p_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_subtract_float(interp, PREG(2), CONST(3)->u.number, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sqrt_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = sqrt((FLOATVAL)NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_callmethodcc_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const object = PREG(1);
+ STRING * const meth = SREG(2);
+ opcode_t * const next =cur_opcode + 3;
+
+ PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
+ opcode_t *dest = NULL;
+ PMC * const signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
+ if (PMC_IS_NULL(method_pmc)) {
+ PMC * const _class = VTABLE_get_class(interp, object);
+ if (PMC_IS_NULL(_class)) {
+ dest = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_METHOD_NOT_FOUND,
+ "Method '%Ss' not found for non-object", meth);
+ }
+ else {
+ dest = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_METHOD_NOT_FOUND,
+ "Method '%Ss' not found for invocant of class '%Ss'", meth,
+ VTABLE_get_string(interp, _class));
+ }
+ }
+ else {
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, object);
+ interp->current_cont = NEED_CONTINUATION;
+ dest = VTABLE_invoke(interp, method_pmc, next);
+ }return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_callmethodcc_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const object = PREG(1);
+ STRING * const meth = CONST(2)->u.string;
+ opcode_t * const next =cur_opcode + 3;
+
+ PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
+ opcode_t *dest = NULL;
+ PMC * const signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
+ if (PMC_IS_NULL(method_pmc)) {
+ PMC * const _class = VTABLE_get_class(interp, object);
+ if (PMC_IS_NULL(_class)) {
+ dest = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_METHOD_NOT_FOUND,
+ "Method '%Ss' not found for non-object", meth);
+ }
+ else {
+ dest = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_METHOD_NOT_FOUND,
+ "Method '%Ss' not found for invocant of class '%Ss'", meth,
+ VTABLE_get_string(interp, _class));
+ }
+ }
+ else {
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, object);
+ interp->current_cont = NEED_CONTINUATION;
+ dest = VTABLE_invoke(interp, method_pmc, next);
+ }return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_callmethodcc_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *dest;
+ opcode_t * const next =cur_opcode + 3;
+ PMC * signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, PREG(1));
+ interp->current_cont = NEED_CONTINUATION;
+ dest = VTABLE_invoke(interp, PREG(2), next);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_callmethod_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const object = PREG(1);
+ STRING * const meth = SREG(2);
+ opcode_t * const next =cur_opcode + 4;
+
+ PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
+ opcode_t *dest = NULL;
+ PMC * signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
+ if (PMC_IS_NULL(method_pmc)) {
+ dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
+ "Method '%Ss' not found for invocant of class '%Ss'", meth,
+ VTABLE_get_string(interp, VTABLE_get_class(interp, object)));
+ }
+ else {
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, object);
+ interp->current_cont = PREG(3);
+ dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
+ }return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_callmethod_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const object = PREG(1);
+ STRING * const meth = CONST(2)->u.string;
+ opcode_t * const next =cur_opcode + 4;
+
+ PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
+ opcode_t *dest = NULL;
+ PMC * signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
+ if (PMC_IS_NULL(method_pmc)) {
+ dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
+ "Method '%Ss' not found for invocant of class '%Ss'", meth,
+ VTABLE_get_string(interp, VTABLE_get_class(interp, object)));
+ }
+ else {
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, object);
+ interp->current_cont = PREG(3);
+ dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
+ }return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_callmethod_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const object = PREG(1);
+ PMC * const method_pmc = PREG(2);
+ opcode_t * const next =cur_opcode + 4;
+
+ opcode_t *dest;
+ PMC * signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, object);
+ interp->current_cont = PREG(3);
+ dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_tailcallmethod_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const next =cur_opcode + 3;
+ PMC * const object = PREG(1);
+ STRING * const meth = SREG(2);
+ PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
+
+ opcode_t *dest;
+ PMC * signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+
+ if (PMC_IS_NULL(method_pmc)) {
+ dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
+ "Method '%Ss' not found for invocant of class '%Ss'", meth,
+ VTABLE_get_string(interp, VTABLE_get_class(interp, object)));
+ }
+ else {
+ interp->current_cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
+ PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, object);
+ dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
+ }return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_tailcallmethod_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const next =cur_opcode + 3;
+ PMC * const object = PREG(1);
+ STRING * const meth = CONST(2)->u.string;
+ PMC * const method_pmc = VTABLE_find_method(interp, object, meth);
+
+ opcode_t *dest;
+ PMC * signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+
+ if (PMC_IS_NULL(method_pmc)) {
+ dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
+ "Method '%Ss' not found for invocant of class '%Ss'", meth,
+ VTABLE_get_string(interp, VTABLE_get_class(interp, object)));
+ }
+ else {
+ interp->current_cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
+ PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, object);
+ dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
+ }return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_tailcallmethod_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const next =cur_opcode + 3;
+ PMC * const object = PREG(1);
+ PMC * const method_pmc = PREG(2);
+
+ opcode_t *dest;
+ PMC * signature = Parrot_pcc_get_signature(interp,
+ CURRENT_CONTEXT(interp));
+
+ interp->current_cont = Parrot_pcc_get_continuation(interp, CURRENT_CONTEXT(interp));
+ PObj_get_FLAGS(interp->current_cont) |= SUB_FLAG_TAILCALL;
+
+ if (!PMC_IS_NULL(signature))
+ Parrot_pcc_set_object(interp, signature, object);
+ dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);return (opcode_t *)dest;
+}
+
+opcode_t *
+Parrot_addmethod_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_add_method(interp, PREG(1), SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_addmethod_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_add_method(interp, PREG(1), CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_can_i_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_can(interp, PREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_can_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_can(interp, PREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_does_i_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = SREG(3) ? VTABLE_does(interp, PREG(2), SREG(3)) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_does_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(3)->u.string ? VTABLE_does(interp, PREG(2), CONST(3)->u.string) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_does_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PREG(3) ? VTABLE_does_pmc(interp, PREG(2), PREG(3)) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_does_i_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(3)->u.key ? VTABLE_does_pmc(interp, PREG(2), CONST(3)->u.key) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isa_i_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = SREG(3) ? VTABLE_isa(interp, PREG(2), SREG(3)) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isa_i_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(3)->u.string ? VTABLE_isa(interp, PREG(2), CONST(3)->u.string) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isa_i_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PREG(3) ? VTABLE_isa_pmc(interp, PREG(2), PREG(3)) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_isa_i_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = CONST(3)->u.key ? VTABLE_isa_pmc(interp, PREG(2), CONST(3)->u.key) : 0;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_newclass_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name = Parrot_pmc_new(interp, enum_class_String);
+ VTABLE_set_string_native(interp, name, SREG(2));
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, name);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_newclass_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name = Parrot_pmc_new(interp, enum_class_String);
+ VTABLE_set_string_native(interp, name, CONST(2)->u.string);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, name);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_newclass_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_newclass_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(2)->u.key);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_subclass_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
+ opcode_t * const next =cur_opcode + 3;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));return (opcode_t *)handler;
+ }
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
+ opcode_t * const next =cur_opcode + 3;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));return (opcode_t *)handler;
+ }
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));return (opcode_t *)handler;
+ }
+ PREG(1) = Parrot_oo_newclass_from_str(interp, SREG(3));
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));return (opcode_t *)handler;
+ }
+ PREG(1) = Parrot_oo_newclass_from_str(interp, SREG(3));
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));return (opcode_t *)handler;
+ }
+ PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3)->u.string);
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t * handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));return (opcode_t *)handler;
+ }
+ PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3)->u.string);
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));return (opcode_t *)handler;
+ }
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));return (opcode_t *)handler;
+ }
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class(interp, PREG(2));
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, PREG(2)));return (opcode_t *)handler;
+ }
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class(interp, CONST(2)->u.key);
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", VTABLE_get_string(interp, CONST(2)->u.key));return (opcode_t *)handler;
+ }
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
+ opcode_t * const next =cur_opcode + 3;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", SREG(2));return (opcode_t *)handler;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+ opcode_t * const next =cur_opcode + 3;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", CONST(2)->u.string);return (opcode_t *)handler;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, enum_class_Class);
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", SREG(2));return (opcode_t *)handler;
+ }
+
+ PREG(1) = Parrot_oo_newclass_from_str(interp, SREG(3));
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", CONST(2)->u.string);return (opcode_t *)handler;
+ }
+
+ PREG(1) = Parrot_oo_newclass_from_str(interp, SREG(3));
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", SREG(2));return (opcode_t *)handler;
+ }
+
+ PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3)->u.string);
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", CONST(2)->u.string);return (opcode_t *)handler;
+ }
+
+ PREG(1) = Parrot_oo_newclass_from_str(interp, CONST(3)->u.string);
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", SREG(2));return (opcode_t *)handler;
+ }
+
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", CONST(2)->u.string);return (opcode_t *)handler;
+ }
+
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, PREG(3));
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, SREG(2));
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", SREG(2));return (opcode_t *)handler;
+ }
+
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_subclass_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const parent_class = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+ opcode_t * const next =cur_opcode + 4;
+
+ if (PMC_IS_NULL(parent_class)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' doesn't exist", CONST(2)->u.string);return (opcode_t *)handler;
+ }
+
+ PREG(1) = Parrot_pmc_new_init(interp, enum_class_Class, CONST(3)->u.key);
+ VTABLE_add_parent(interp, PREG(1), parent_class);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_get_class_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_oo_get_class_str(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_class_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_oo_get_class_str(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_class_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_oo_get_class(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_class_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_oo_get_class(interp, CONST(2)->u.key);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_class_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_class(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_addparent_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_add_parent(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_removeparent_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_remove_parent(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_addrole_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_add_role(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_addattribute_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const class_name = string_from_literal(interp, "Class");
+ STRING * const role_name = string_from_literal(interp, "Role");
+
+ if (VTABLE_isa(interp, PREG(1), class_name) || VTABLE_isa(interp, PREG(1), role_name))
+ VTABLE_add_attribute(interp, PREG(1), SREG(2), PMCNULL);
+ else {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "Cannot add attribute to non-class");return (opcode_t *)handler;
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_addattribute_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const class_name = string_from_literal(interp, "Class");
+ STRING * const role_name = string_from_literal(interp, "Role");
+
+ if (VTABLE_isa(interp, PREG(1), class_name) || VTABLE_isa(interp, PREG(1), role_name))
+ VTABLE_add_attribute(interp, PREG(1), CONST(2)->u.string, PMCNULL);
+ else {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "Cannot add attribute to non-class");return (opcode_t *)handler;
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_removeattribute_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_remove_attribute(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_removeattribute_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_remove_attribute(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_getattribute_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_attr_str(interp, PREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_getattribute_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_attr_str(interp, PREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_getattribute_p_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PREG(3), SREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_getattribute_p_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), CONST(3)->u.key, SREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_getattribute_p_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), PREG(3), CONST(4)->u.string);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_getattribute_p_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_attr_keyed(interp, PREG(2), CONST(3)->u.key, CONST(4)->u.string);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_setattribute_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_attr_str(interp, PREG(1), SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_setattribute_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_attr_str(interp, PREG(1), CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_setattribute_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_attr_keyed(interp, PREG(1), PREG(2), SREG(3), PREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_setattribute_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_attr_keyed(interp, PREG(1), CONST(2)->u.key, SREG(3), PREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_setattribute_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_attr_keyed(interp, PREG(1), PREG(2), CONST(3)->u.string, PREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_setattribute_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_attr_keyed(interp, PREG(1), CONST(2)->u.key, CONST(3)->u.string, PREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_inspect_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_inspect(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_inspect_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_inspect(interp, CONST(2)->u.key);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_inspect_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_inspect_str(interp, PREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_inspect_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_inspect_str(interp, CONST(2)->u.key, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_inspect_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_inspect_str(interp, PREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_inspect_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_inspect_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const name = SREG(2);
+ PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+ ? Parrot_oo_get_class_str(interp, name)
+ : PMCNULL;
+
+ if (!PMC_IS_NULL(_class))
+ PREG(1) = VTABLE_instantiate(interp, _class, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+ if (type <= 0) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", name);return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_new_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const name = CONST(2)->u.string;
+ PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+ ? Parrot_oo_get_class_str(interp, name)
+ : PMCNULL;
+
+ if (!PMC_IS_NULL(_class))
+ PREG(1) = VTABLE_instantiate(interp, _class, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+ if (type <= 0) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", name);return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_new_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const name = SREG(2);
+ PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+ ? Parrot_oo_get_class_str(interp, name)
+ : PMCNULL;
+
+ if (!PMC_IS_NULL(_class))
+ PREG(1) = VTABLE_instantiate(interp, _class, PREG(3));
+ else {
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+ if (type <= 0) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", name);return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3));
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const name = CONST(2)->u.string;
+ PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+ ? Parrot_oo_get_class_str(interp, name)
+ : PMCNULL;
+
+ if (!PMC_IS_NULL(_class))
+ PREG(1) = VTABLE_instantiate(interp, _class, PREG(3));
+ else {
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+ if (type <= 0) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", name);return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3));
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const name = SREG(2);
+ PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+ ? Parrot_oo_get_class_str(interp, name)
+ : PMCNULL;
+
+ if (!PMC_IS_NULL(_class))
+ PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
+ else {
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+ if (type <= 0) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", name);return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const name = CONST(2)->u.string;
+ PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+ ? Parrot_oo_get_class_str(interp, name)
+ : PMCNULL;
+
+ if (!PMC_IS_NULL(_class))
+ PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
+ else {
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+ if (type <= 0) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", name);return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = PREG(2);
+ PMC * const _class = Parrot_oo_get_class(interp, name_key);
+
+ if (!PMC_IS_NULL(_class))
+ PREG(1) = VTABLE_instantiate(interp, _class, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+ if (type <= 0) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = CONST(2)->u.key;
+ PMC * const _class = Parrot_oo_get_class(interp, name_key);
+
+ if (!PMC_IS_NULL(_class))
+ PREG(1) = VTABLE_instantiate(interp, _class, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+ if (type <= 0) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_new_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = PREG(2);
+ PMC * const _class = Parrot_oo_get_class(interp, name_key);
+
+ if (!PMC_IS_NULL(_class))
+ PREG(1) = VTABLE_instantiate(interp, _class, PREG(3));
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+ if (type <= 0) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3));
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = CONST(2)->u.key;
+ PMC * const _class = Parrot_oo_get_class(interp, name_key);
+
+ if (!PMC_IS_NULL(_class))
+ PREG(1) = VTABLE_instantiate(interp, _class, PREG(3));
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+ if (type <= 0) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new_init(interp, type, PREG(3));
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = PREG(2);
+ PMC * const _class = Parrot_oo_get_class(interp, name_key);
+
+ if (!PMC_IS_NULL(_class))
+ PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+ if (type <= 0) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = CONST(2)->u.key;
+ PMC * const _class = Parrot_oo_get_class(interp, name_key);
+
+ if (!PMC_IS_NULL(_class))
+ PREG(1) = VTABLE_instantiate(interp, _class, CONST(3)->u.key);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+ if (type <= 0) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new_init(interp, type, CONST(3)->u.key);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const key = PREG(2);
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * classobj = PMCNULL;
+
+ if (!PMC_IS_NULL(ns))
+ classobj = Parrot_oo_get_class(interp, ns);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_root_new_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const key = CONST(2)->u.key;
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * classobj = PMCNULL;
+
+ if (!PMC_IS_NULL(ns))
+ classobj = Parrot_oo_get_class(interp, ns);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 3,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_root_new_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const key = PREG(2);
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * classobj = PMCNULL;
+
+ if (!PMC_IS_NULL(ns))
+ classobj = Parrot_oo_get_class(interp, ns);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PREG(3));
+ else {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const key = CONST(2)->u.key;
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * classobj = PMCNULL;
+
+ if (!PMC_IS_NULL(ns))
+ classobj = Parrot_oo_get_class(interp, ns);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PREG(3));
+ else {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const key = PREG(2);
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * classobj = PMCNULL;
+
+ if (!PMC_IS_NULL(ns))
+ classobj = Parrot_oo_get_class(interp, ns);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, CONST(3)->u.key);
+ else {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const key = CONST(2)->u.key;
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, key);
+ PMC * classobj = PMCNULL;
+
+ if (!PMC_IS_NULL(ns))
+ classobj = Parrot_oo_get_class(interp, ns);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, CONST(3)->u.key);
+ else {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_typeof_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_name(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_typeof_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_class(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_repr_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_get_repr(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_method_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const resume =cur_opcode + 4;
+ PREG(1) = VTABLE_find_method(interp, PREG(2), SREG(3));
+ if (PMC_IS_NULL(PREG(1)) || !VTABLE_defined(interp, PREG(1))) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, resume,
+ EXCEPTION_METHOD_NOT_FOUND,
+ "Method '%Ss' not found for invocant of class '%Ss'", SREG(3),
+ VTABLE_get_string(interp, VTABLE_get_class(interp, PREG(2))));return (opcode_t *)dest;
+ }return (opcode_t *)resume;
+}
+
+opcode_t *
+Parrot_find_method_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t * const resume =cur_opcode + 4;
+ PREG(1) = VTABLE_find_method(interp, PREG(2), CONST(3)->u.string);
+ if (PMC_IS_NULL(PREG(1)) || !VTABLE_defined(interp, PREG(1))) {
+ opcode_t * const dest = Parrot_ex_throw_from_op_args(interp, resume,
+ EXCEPTION_METHOD_NOT_FOUND,
+ "Method '%Ss' not found for invocant of class '%Ss'", CONST(3)->u.string,
+ VTABLE_get_string(interp, VTABLE_get_class(interp, PREG(2))));return (opcode_t *)dest;
+ }return (opcode_t *)resume;
+}
+
+opcode_t *
+Parrot_defined_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_defined_i_p_ki(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed_int(interp, PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_defined_i_p_kic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_defined_i_p_k(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_defined_i_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_defined_keyed(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_exists_i_p_ki(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_exists_keyed_int(interp, PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_exists_i_p_kic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PMC_IS_NULL(PREG(2)) ? 0 : VTABLE_exists_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_exists_i_p_k(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PMC_IS_NULL(PREG(2)) ? 0: VTABLE_exists_keyed(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_exists_i_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = PMC_IS_NULL(PREG(2)) ? 0: VTABLE_exists_keyed(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_delete_p_k(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_delete_keyed(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_delete_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_delete_keyed(interp, PREG(1), CONST(2)->u.key);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_delete_p_ki(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_delete_keyed_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_delete_p_kic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_delete_keyed_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_elements_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_elements(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_push_integer(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_push_integer(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_push_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_push_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_push_string(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_push_string(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_push_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_push_pmc(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_pop_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_pop_integer(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_pop_n_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = VTABLE_pop_float(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_pop_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_pop_string(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_pop_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_pop_pmc(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_unshift_integer(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_unshift_integer(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_unshift_float(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_unshift_float(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_unshift_string(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_unshift_string(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_unshift_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_unshift_pmc(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shift_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_shift_integer(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shift_n_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = VTABLE_shift_float(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shift_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_shift_string(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_shift_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_shift_pmc(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_splice_p_p_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_splice(interp, PREG(1), PREG(2), IREG(3), IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_splice_p_p_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_splice(interp, PREG(1), PREG(2), cur_opcode[3], IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_splice_p_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_splice(interp, PREG(1), PREG(2), IREG(3), cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_splice_p_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_splice(interp, PREG(1), PREG(2), cur_opcode[3], cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_setprop_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_setprop(interp, PREG(1), SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_setprop_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_setprop(interp, PREG(1), CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_getprop_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_getprop(interp, PREG(3), SREG(2));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_getprop_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_getprop(interp, PREG(3), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_delprop_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_delprop(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_delprop_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_delprop(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_prophash_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_getprops(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_freeze_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_freeze(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_thaw_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_thaw(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_thaw_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_thaw(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_add_multi_s_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_mmd_add_multi_from_long_sig(interp, SREG(1), SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_multi_sc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_mmd_add_multi_from_long_sig(interp, CONST(1)->u.string, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_multi_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_mmd_add_multi_from_long_sig(interp, SREG(1), CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_add_multi_sc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_mmd_add_multi_from_long_sig(interp, CONST(1)->u.string, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_find_multi_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_find_multi_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, CONST(2)->u.string, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_find_multi_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, SREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_find_multi_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_mmd_find_multi_from_long_sig(interp, CONST(2)->u.string, CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_register_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_pmc_gc_register(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_unregister_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_pmc_gc_unregister(interp, PREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_box_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_box_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_box_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ VTABLE_set_number_native(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_box_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
+ VTABLE_set_number_native(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_box_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
+ VTABLE_set_string_native(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_box_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_String));
+ VTABLE_set_string_native(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_iter_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_iter(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_morph_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_morph(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_morph_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_morph(interp, PREG(1), CONST(2)->u.key);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_clone_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ /* cloning a NULL STRING produces an empty STRING; TT #964 */
+ SREG(1) = STRING_IS_NULL(SREG(2))
+ ? Parrot_str_new(interp, NULL, 0)
+ : SREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_clone_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ /* cloning a NULL STRING produces an empty STRING; TT #964 */
+ SREG(1) = STRING_IS_NULL(CONST(2)->u.string)
+ ? Parrot_str_new(interp, NULL, 0)
+ : CONST(2)->u.string;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (INTVAL)(NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (INTVAL)(CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_to_int(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_to_int(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = NREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = CONST(2)->u.number;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = (FLOATVAL)IREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = (FLOATVAL)cur_opcode[2];
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = Parrot_str_to_num(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = Parrot_str_to_num(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_n_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = VTABLE_get_number(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_get_string(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = SREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = CONST(2)->u.string;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_from_int(interp, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_from_int(interp, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_from_num(interp, NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_s_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_from_num(interp, CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = CONST(2)->u.key;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = PREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_integer_native(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_integer_native(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_number_native(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_number_native(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_string_native(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_string_native(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_get_integer(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_assign_pmc(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_integer_native(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_integer_native(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_number_native(interp, PREG(1), NREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_number_native(interp, PREG(1), CONST(2)->u.number);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_assign_string_native(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_assign_string_native(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = SREG(2);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_assign_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = CONST(2)->u.string;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_setref_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_pmc(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_deref_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_p_ki_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_integer_keyed_int(interp, PREG(1), IREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_integer_keyed_int(interp, PREG(1), cur_opcode[2], IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_ki_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_integer_keyed_int(interp, PREG(1), IREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_integer_keyed_int(interp, PREG(1), cur_opcode[2], cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_ki_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_number_keyed_int(interp, PREG(1), IREG(2), NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_number_keyed_int(interp, PREG(1), cur_opcode[2], NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_ki_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_number_keyed_int(interp, PREG(1), IREG(2), CONST(3)->u.number);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_number_keyed_int(interp, PREG(1), cur_opcode[2], CONST(3)->u.number);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_ki_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_string_keyed_int(interp, PREG(1), IREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_string_keyed_int(interp, PREG(1), cur_opcode[2], SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_ki_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_string_keyed_int(interp, PREG(1), IREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_string_keyed_int(interp, PREG(1), cur_opcode[2], CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_ki_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_pmc_keyed_int(interp, PREG(1), IREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kic_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_pmc_keyed_int(interp, PREG(1), cur_opcode[2], PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_i_p_ki(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_get_integer_keyed_int(interp, PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_i_p_kic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_get_integer_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_n_p_ki(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = VTABLE_get_number_keyed_int(interp, PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_n_p_kic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = VTABLE_get_number_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_s_p_ki(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_get_string_keyed_int(interp, PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_s_p_kic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_get_string_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_p_ki(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_p_kic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_integer_keyed(interp, PREG(1), PREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_integer_keyed(interp, PREG(1), CONST(2)->u.key, IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_integer_keyed(interp, PREG(1), PREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_integer_keyed(interp, PREG(1), CONST(2)->u.key, cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_number_keyed(interp, PREG(1), PREG(2), NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_number_keyed(interp, PREG(1), CONST(2)->u.key, NREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_number_keyed(interp, PREG(1), PREG(2), CONST(3)->u.number);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_number_keyed(interp, PREG(1), CONST(2)->u.key, CONST(3)->u.number);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_string_keyed(interp, PREG(1), PREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_string_keyed(interp, PREG(1), CONST(2)->u.key, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_string_keyed(interp, PREG(1), PREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_string_keyed(interp, PREG(1), CONST(2)->u.key, CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_k_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_pmc_keyed(interp, PREG(1), PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_kc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_pmc_keyed(interp, PREG(1), CONST(2)->u.key, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_i_p_k(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_get_integer_keyed(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_i_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = VTABLE_get_integer_keyed(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_n_p_k(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = VTABLE_get_number_keyed(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_n_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = VTABLE_get_number_keyed(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_s_p_k(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_get_string_keyed(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_s_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_get_string_keyed(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_p_k(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_p_p_kc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_clone_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_clone(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_clone_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_clone_pmc(interp, PREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_clone_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_clone_pmc(interp, PREG(2), CONST(3)->u.key);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_copy_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (PMC_IS_NULL(PREG(1))) {
+ opcode_t * const dest =cur_opcode + 3;
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, dest,
+ EXCEPTION_NULL_REG_ACCESS, "Null PMC in copy");return (opcode_t *)handler;
+ }
+ else {
+ PMC * const clone = VTABLE_clone(interp, PREG(2));
+ /* Preserve the metadata on the destination. */
+ PMC * const meta = VTABLE_getprops(interp, PREG(1));
+
+ /* avoid leaks and unreachable memory by destroying the destination PMC */
+ Parrot_pmc_destroy(interp, PREG(1));
+
+ /* the source PMC knows how to clone itself, but we must reuse the
+ * destination header */
+ memmove(PREG(1), clone, sizeof (PMC));
+
+ /* don't let the clone's destruction destroy the destination's data */
+ PObj_custom_destroy_CLEAR(clone);
+ PMC_data(clone) = NULL;
+ PMC_metadata(clone) = NULL;
+
+ /* Restore metadata. */
+ if (!PMC_IS_NULL(meta)) {
+ PMC * const iter = VTABLE_get_iter(interp, meta);
+ while (VTABLE_get_bool(interp, iter)) {
+ STRING * const key = VTABLE_shift_string(interp, iter);
+ PMC * const value = VTABLE_get_pmc_keyed_str(interp, meta, key);
+ VTABLE_setprop(interp, PREG(1), key, value);
+ }
+ }
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_null_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = STRINGNULL;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_null_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = 0;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_null_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = PMCNULL;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_null_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = 0;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_ord_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = string_ord(interp, SREG(2), 0);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_ord_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = string_ord(interp, CONST(2)->u.string, 0);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_ord_i_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = string_ord(interp, SREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ord_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = string_ord(interp, CONST(2)->u.string, IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ord_i_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = string_ord(interp, SREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_ord_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = string_ord(interp, CONST(2)->u.string, cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_chr_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const s = string_chr(interp, (UINTVAL)IREG(2));
+ SREG(1) = s;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_chr_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const s = string_chr(interp, (UINTVAL)cur_opcode[2]);
+ SREG(1) = s;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_chopn_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_chopn(interp, SREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_chopn_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_chopn(interp, CONST(2)->u.string, IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_chopn_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_chopn(interp, SREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_chopn_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_chopn(interp, CONST(2)->u.string, cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_concat_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_concat(interp, SREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_concat_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_concat(interp, SREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_concat_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_concatenate(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_concat_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_concatenate_str(interp, PREG(1), SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_concat_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_concatenate_str(interp, PREG(1), CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_concat_s_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_concat(interp, SREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_concat_s_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_concat(interp, CONST(2)->u.string, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_concat_s_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_concat(interp, SREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_concat_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_concatenate_str(interp, PREG(2), SREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_concat_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_concatenate_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_concat_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_concatenate(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(3) < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_NEG_REPEAT,
+ "Cannot repeat with negative arg");return (opcode_t *)handler;
+ }
+ SREG(1) = Parrot_str_repeat(interp, SREG(2), (UINTVAL)IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(3) < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_NEG_REPEAT,
+ "Cannot repeat with negative arg");return (opcode_t *)handler;
+ }
+ SREG(1) = Parrot_str_repeat(interp, CONST(2)->u.string, (UINTVAL)IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[3] < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_NEG_REPEAT,
+ "Cannot repeat with negative arg");return (opcode_t *)handler;
+ }
+ SREG(1) = Parrot_str_repeat(interp, SREG(2), (UINTVAL)cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[3] < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_NEG_REPEAT,
+ "Cannot repeat with negative arg");return (opcode_t *)handler;
+ }
+ SREG(1) = Parrot_str_repeat(interp, CONST(2)->u.string, (UINTVAL)cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (IREG(3) < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_NEG_REPEAT,
+ "Cannot repeat with negative arg");return (opcode_t *)handler;
+ }
+ PREG(1) = VTABLE_repeat_int(interp, PREG(2), IREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (cur_opcode[3] < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_NEG_REPEAT,
+ "Cannot repeat with negative arg");return (opcode_t *)handler;
+ }
+ PREG(1) = VTABLE_repeat_int(interp, PREG(2), cur_opcode[3], PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (VTABLE_get_integer(interp, PREG(3)) < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_NEG_REPEAT,
+ "Cannot repeat with negative arg");return (opcode_t *)handler;
+ }
+ PREG(1) = VTABLE_repeat(interp, PREG(2), PREG(3), PREG(1));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_repeat_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_repeat_int(interp, PREG(1), IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_repeat_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_repeat_int(interp, PREG(1), cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_repeat_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_i_repeat(interp, PREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_length_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_length(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_length_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_length(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bytelength_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_byte_length(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_bytelength_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_byte_length(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_pin_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_str_pin(interp, SREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_unpin_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ Parrot_str_unpin(interp, SREG(1));
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_substr_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL len = Parrot_str_byte_length(interp, SREG(2));
+ SREG(1) = Parrot_str_substr(interp, SREG(2), IREG(3), len);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_substr_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL len = Parrot_str_byte_length(interp, CONST(2)->u.string);
+ SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, IREG(3), len);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_substr_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL len = Parrot_str_byte_length(interp, SREG(2));
+ SREG(1) = Parrot_str_substr(interp, SREG(2), cur_opcode[3], len);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_substr_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL len = Parrot_str_byte_length(interp, CONST(2)->u.string);
+ SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, cur_opcode[3], len);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_substr_s_s_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_substr(interp, SREG(2), IREG(3), IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, IREG(3), IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_substr(interp, SREG(2), cur_opcode[3], IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, cur_opcode[3], IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_substr(interp, SREG(2), IREG(3), cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, IREG(3), cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_substr(interp, SREG(2), cur_opcode[3], cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_substr(interp, CONST(2)->u.string, cur_opcode[3], cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_p_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_substr_str(interp, PREG(2), IREG(3), IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_p_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_substr_str(interp, PREG(2), cur_opcode[3], IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_p_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_substr_str(interp, PREG(2), IREG(3), cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_substr_s_p_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = VTABLE_substr_str(interp, PREG(2), cur_opcode[3], cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_replace_s_s_i_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), IREG(4), SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_i_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, IREG(3), IREG(4), SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_ic_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, SREG(2), cur_opcode[3], IREG(4), SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_ic_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, cur_opcode[3], IREG(4), SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_i_ic_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), cur_opcode[4], SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_i_ic_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, IREG(3), cur_opcode[4], SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_ic_ic_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, SREG(2), cur_opcode[3], cur_opcode[4], SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_ic_ic_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, cur_opcode[3], cur_opcode[4], SREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_i_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), IREG(4), CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_i_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, IREG(3), IREG(4), CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_ic_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, SREG(2), cur_opcode[3], IREG(4), CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_ic_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, cur_opcode[3], IREG(4), CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_i_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, SREG(2), IREG(3), cur_opcode[4], CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_i_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, IREG(3), cur_opcode[4], CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_s_ic_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, SREG(2), cur_opcode[3], cur_opcode[4], CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_replace_s_sc_ic_ic_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_replace(interp, CONST(2)->u.string, cur_opcode[3], cur_opcode[4], CONST(5)->u.string);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_index_i_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (SREG(2) && SREG(3)) ? Parrot_str_find_index(interp, SREG(2), SREG(3), 0) : -1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_index_i_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (CONST(2)->u.string && SREG(3)) ? Parrot_str_find_index(interp, CONST(2)->u.string, SREG(3), 0) : -1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_index_i_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (SREG(2) && CONST(3)->u.string) ? Parrot_str_find_index(interp, SREG(2), CONST(3)->u.string, 0) : -1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_index_i_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (CONST(2)->u.string && CONST(3)->u.string) ? Parrot_str_find_index(interp, CONST(2)->u.string, CONST(3)->u.string, 0) : -1;
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_index_i_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (SREG(2) && SREG(3)) ? Parrot_str_find_index(interp, SREG(2), SREG(3), IREG(4)) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_sc_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (CONST(2)->u.string && SREG(3)) ? Parrot_str_find_index(interp, CONST(2)->u.string, SREG(3), IREG(4)) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (SREG(2) && CONST(3)->u.string) ? Parrot_str_find_index(interp, SREG(2), CONST(3)->u.string, IREG(4)) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_sc_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (CONST(2)->u.string && CONST(3)->u.string) ? Parrot_str_find_index(interp, CONST(2)->u.string, CONST(3)->u.string, IREG(4)) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (SREG(2) && SREG(3)) ? Parrot_str_find_index(interp, SREG(2), SREG(3), cur_opcode[4]) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_sc_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (CONST(2)->u.string && SREG(3)) ? Parrot_str_find_index(interp, CONST(2)->u.string, SREG(3), cur_opcode[4]) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (SREG(2) && CONST(3)->u.string) ? Parrot_str_find_index(interp, SREG(2), CONST(3)->u.string, cur_opcode[4]) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_index_i_sc_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = (CONST(2)->u.string && CONST(3)->u.string) ? Parrot_str_find_index(interp, CONST(2)->u.string, CONST(3)->u.string, cur_opcode[4]) : -1;
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_sprintf_s_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1)=Parrot_psprintf(interp, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sprintf_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1)=Parrot_psprintf(interp, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_sprintf_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_string_native(interp, PREG(1),
+ Parrot_psprintf(interp, VTABLE_get_string(interp, PREG(2)), PREG(3)));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_new_noinit(interp, enum_stringrep_one, 0);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_new_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_new_noinit(interp, enum_stringrep_one, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_new_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_new_noinit(interp, enum_stringrep_one, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_stringinfo_i_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (SREG(2) == NULL)
+ IREG(1) = 0;
+ else {
+ switch (IREG(3)) {
+ case STRINGINFO_HEADER:
+ IREG(1) = PTR2UINTVAL(SREG(2));
+ break;
+ case STRINGINFO_STRSTART:
+ IREG(1) = PTR2UINTVAL(SREG(2)->strstart);
+ break;
+ case STRINGINFO_BUFLEN:
+ IREG(1) = Buffer_buflen(SREG(2));
+ break;
+ case STRINGINFO_FLAGS:
+ IREG(1) = PObj_get_FLAGS(SREG(2));
+ break;
+ case STRINGINFO_BUFUSED:
+ IREG(1) = SREG(2)->bufused;
+ break;
+ case STRINGINFO_STRLEN:
+ IREG(1) = SREG(2)->strlen;
+ break;
+ default:
+ {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "stringinfo: unknown info type: %d", IREG(3));return (opcode_t *)handler;
+ }
+ }
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stringinfo_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (CONST(2)->u.string == NULL)
+ IREG(1) = 0;
+ else {
+ switch (IREG(3)) {
+ case STRINGINFO_HEADER:
+ IREG(1) = PTR2UINTVAL(CONST(2)->u.string);
+ break;
+ case STRINGINFO_STRSTART:
+ IREG(1) = PTR2UINTVAL(CONST(2)->u.string->strstart);
+ break;
+ case STRINGINFO_BUFLEN:
+ IREG(1) = Buffer_buflen(CONST(2)->u.string);
+ break;
+ case STRINGINFO_FLAGS:
+ IREG(1) = PObj_get_FLAGS(CONST(2)->u.string);
+ break;
+ case STRINGINFO_BUFUSED:
+ IREG(1) = CONST(2)->u.string->bufused;
+ break;
+ case STRINGINFO_STRLEN:
+ IREG(1) = CONST(2)->u.string->strlen;
+ break;
+ default:
+ {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "stringinfo: unknown info type: %d", IREG(3));return (opcode_t *)handler;
+ }
+ }
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stringinfo_i_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (SREG(2) == NULL)
+ IREG(1) = 0;
+ else {
+ switch (cur_opcode[3]) {
+ case STRINGINFO_HEADER:
+ IREG(1) = PTR2UINTVAL(SREG(2));
+ break;
+ case STRINGINFO_STRSTART:
+ IREG(1) = PTR2UINTVAL(SREG(2)->strstart);
+ break;
+ case STRINGINFO_BUFLEN:
+ IREG(1) = Buffer_buflen(SREG(2));
+ break;
+ case STRINGINFO_FLAGS:
+ IREG(1) = PObj_get_FLAGS(SREG(2));
+ break;
+ case STRINGINFO_BUFUSED:
+ IREG(1) = SREG(2)->bufused;
+ break;
+ case STRINGINFO_STRLEN:
+ IREG(1) = SREG(2)->strlen;
+ break;
+ default:
+ {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "stringinfo: unknown info type: %d", cur_opcode[3]);return (opcode_t *)handler;
+ }
+ }
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_stringinfo_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (CONST(2)->u.string == NULL)
+ IREG(1) = 0;
+ else {
+ switch (cur_opcode[3]) {
+ case STRINGINFO_HEADER:
+ IREG(1) = PTR2UINTVAL(CONST(2)->u.string);
+ break;
+ case STRINGINFO_STRSTART:
+ IREG(1) = PTR2UINTVAL(CONST(2)->u.string->strstart);
+ break;
+ case STRINGINFO_BUFLEN:
+ IREG(1) = Buffer_buflen(CONST(2)->u.string);
+ break;
+ case STRINGINFO_FLAGS:
+ IREG(1) = PObj_get_FLAGS(CONST(2)->u.string);
+ break;
+ case STRINGINFO_BUFUSED:
+ IREG(1) = CONST(2)->u.string->bufused;
+ break;
+ case STRINGINFO_STRLEN:
+ IREG(1) = CONST(2)->u.string->strlen;
+ break;
+ default:
+ {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "stringinfo: unknown info type: %d", cur_opcode[3]);return (opcode_t *)handler;
+ }
+ }
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_upcase_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_upcase(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_upcase_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_upcase(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_downcase_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_downcase(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_downcase_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_downcase(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_titlecase_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_titlecase(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_titlecase_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_titlecase(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_join_s_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_join(interp, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_join_s_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_join(interp, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_split_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_str_split(interp, SREG(2), SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_split_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_str_split(interp, CONST(2)->u.string, SREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_split_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_str_split(interp, SREG(2), CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_split_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = Parrot_str_split(interp, CONST(2)->u.string, CONST(3)->u.string);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_charset_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_charset_number_of_str(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_charset_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_charset_number_of_str(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_charsetname_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_charset_name(interp, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_charsetname_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_charset_name(interp, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_charset_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL n = Parrot_charset_number(interp, SREG(2));
+ if (n < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_INVALID_CHARTYPE,
+ "charset '%Ss' not found", SREG(2));return (opcode_t *)handler;
+ }
+ IREG(1) = n;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_charset_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL n = Parrot_charset_number(interp, CONST(2)->u.string);
+ if (n < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_INVALID_CHARTYPE,
+ "charset '%Ss' not found", CONST(2)->u.string);return (opcode_t *)handler;
+ }
+ IREG(1) = n;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_trans_charset_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_change_charset(interp, SREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_trans_charset_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_change_charset(interp, CONST(2)->u.string, IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_trans_charset_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_change_charset(interp, SREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_trans_charset_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_change_charset(interp, CONST(2)->u.string, cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_encoding_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_encoding_number_of_str(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_encoding_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_encoding_number_of_str(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_encodingname_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_encoding_name(interp, IREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_encodingname_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_encoding_name(interp, cur_opcode[2]);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_encoding_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL n = Parrot_encoding_number(interp, SREG(2));
+ if (n < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_INVALID_ENCODING,
+ "encoding '%Ss' not found", SREG(2));return (opcode_t *)handler;
+ }
+ IREG(1) = n;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_encoding_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const INTVAL n = Parrot_encoding_number(interp, CONST(2)->u.string);
+ if (n < 0) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_INVALID_ENCODING,
+ "encoding '%Ss' not found", CONST(2)->u.string);return (opcode_t *)handler;
+ }
+ IREG(1) = n;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_trans_encoding_s_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_change_encoding(interp, SREG(2), IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_trans_encoding_s_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_change_encoding(interp, CONST(2)->u.string, IREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_trans_encoding_s_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_change_encoding(interp, SREG(2), cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_trans_encoding_s_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_change_encoding(interp, CONST(2)->u.string, cur_opcode[3]);
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_is_cclass_i_i_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_is_cclass(interp, IREG(2), SREG(3), IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_ic_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_is_cclass(interp, cur_opcode[2], SREG(3), IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_i_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_is_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_ic_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_is_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4));
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_i_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_is_cclass(interp, IREG(2), SREG(3), cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_ic_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_is_cclass(interp, cur_opcode[2], SREG(3), cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_i_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_is_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_is_cclass_i_ic_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_is_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4]);
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_find_cclass_i_i_s_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SREG(3), IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_s_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], SREG(3), IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SREG(3), cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], SREG(3), cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SREG(3), IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], SREG(3), IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, IREG(2), SREG(3), cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], SREG(3), cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_i_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_cclass_i_ic_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_s_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SREG(3), IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_s_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], SREG(3), IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_sc_i_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4), IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SREG(3), cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_s_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], SREG(3), cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_sc_ic_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4], IREG(5));
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SREG(3), IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_s_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], SREG(3), IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3)->u.string, IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_sc_i_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3)->u.string, IREG(4), cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), SREG(3), cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_s_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], SREG(3), cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_i_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, IREG(2), CONST(3)->u.string, cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_find_not_cclass_i_ic_sc_ic_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_str_find_not_cclass(interp, cur_opcode[2], CONST(3)->u.string, cur_opcode[4], cur_opcode[5]);
+
+return (opcode_t *)cur_opcode + 6;}
+
+opcode_t *
+Parrot_escape_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_escape(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_compose_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_compose(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_compose_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ SREG(1) = Parrot_str_compose(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_spawnw_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_Run_OS_Command(interp, SREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_spawnw_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_Run_OS_Command(interp, CONST(2)->u.string);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_spawnw_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_Run_OS_Command_Argv(interp, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_err_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = errno;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_err_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const char * const tmp = strerror(errno);
+ SREG(1) = string_make(interp, tmp, strlen(tmp), "ascii", 0);
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_err_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const char * const tmp = strerror(IREG(2));
+ SREG(1) = string_make(interp, tmp, strlen(tmp), "ascii", 0);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_err_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ const char * const tmp = strerror(cur_opcode[2]);
+ SREG(1) = string_make(interp, tmp, strlen(tmp), "ascii", 0);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_time_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ IREG(1) = Parrot_intval_time();
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_time_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ NREG(1) = Parrot_floatval_time();
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_sleep_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *next =cur_opcode + 2;
+ if (IREG(1) < 0) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NEG_SLEEP,
+ "Cannot go back in time");return (opcode_t *)handler;
+ }
+ next = (opcode_t *)Parrot_cx_schedule_sleep(interp, (FLOATVAL) IREG(1), next);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_sleep_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *next =cur_opcode + 2;
+ if (cur_opcode[1] < 0) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NEG_SLEEP,
+ "Cannot go back in time");return (opcode_t *)handler;
+ }
+ next = (opcode_t *)Parrot_cx_schedule_sleep(interp, (FLOATVAL) cur_opcode[1], next);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_sleep_n(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *next =cur_opcode + 2;
+ if (NREG(1) < 0.0) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NEG_SLEEP,
+ "Cannot go back in time");return (opcode_t *)handler;
+ }
+ next = (opcode_t *)Parrot_cx_schedule_sleep(interp, NREG(1), next);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_sleep_nc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *next =cur_opcode + 2;
+ if (CONST(1)->u.number < 0.0) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
+ EXCEPTION_NEG_SLEEP,
+ "Cannot go back in time");return (opcode_t *)handler;
+ }
+ next = (opcode_t *)Parrot_cx_schedule_sleep(interp, CONST(1)->u.number, next);return (opcode_t *)next;
+}
+
+opcode_t *
+Parrot_store_lex_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
+ STRING * const lex_name = SREG(1);
+ PMC * const lex_pad = Parrot_find_pad(interp, lex_name, ctx);
+
+ if (PMC_IS_NULL(lex_pad)) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_LEX_NOT_FOUND,
+ "Lexical '%Ss' not found", lex_name);return (opcode_t *)handler;
+ }
+ VTABLE_set_pmc_keyed_str(interp, lex_pad, lex_name, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_store_lex_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
+ STRING * const lex_name = CONST(1)->u.string;
+ PMC * const lex_pad = Parrot_find_pad(interp, lex_name, ctx);
+
+ if (PMC_IS_NULL(lex_pad)) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_LEX_NOT_FOUND,
+ "Lexical '%Ss' not found", lex_name);return (opcode_t *)handler;
+ }
+ VTABLE_set_pmc_keyed_str(interp, lex_pad, lex_name, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_store_dynamic_lex_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const lex_name = SREG(1);
+ PMC * const ctx =
+ Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
+ PMC * const lex_pad =
+ PMC_IS_NULL(ctx)
+ ? PMCNULL
+ : Parrot_find_dynamic_pad(interp, lex_name, ctx);
+
+ if (PMC_IS_NULL(lex_pad)) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_LEX_NOT_FOUND,
+ "Lexical '%Ss' not found in dynamic scope", lex_name);return (opcode_t *)handler;
+ }
+ VTABLE_set_pmc_keyed_str(interp, lex_pad, lex_name, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_store_dynamic_lex_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const lex_name = CONST(1)->u.string;
+ PMC * const ctx =
+ Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
+ PMC * const lex_pad =
+ PMC_IS_NULL(ctx)
+ ? PMCNULL
+ : Parrot_find_dynamic_pad(interp, lex_name, ctx);
+
+ if (PMC_IS_NULL(lex_pad)) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_LEX_NOT_FOUND,
+ "Lexical '%Ss' not found in dynamic scope", lex_name);return (opcode_t *)handler;
+ }
+ VTABLE_set_pmc_keyed_str(interp, lex_pad, lex_name, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
+ STRING * const lex_name = SREG(2);
+ PMC * const lex_pad = Parrot_find_pad(interp, lex_name, ctx);
+
+ PMC * const result =
+ PMC_IS_NULL(lex_pad)
+ ? NULL
+ : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name);
+ if (!result) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_LEX_NOT_FOUND,
+ "Lexical '%Ss' not found", lex_name);return (opcode_t *)handler;
+ }
+ PREG(1) = result;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const ctx = CURRENT_CONTEXT(interp);
+ STRING * const lex_name = CONST(2)->u.string;
+ PMC * const lex_pad = Parrot_find_pad(interp, lex_name, ctx);
+
+ PMC * const result =
+ PMC_IS_NULL(lex_pad)
+ ? NULL
+ : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name);
+ if (!result) {
+ opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_LEX_NOT_FOUND,
+ "Lexical '%Ss' not found", lex_name);return (opcode_t *)handler;
+ }
+ PREG(1) = result;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_dynamic_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const lex_name = SREG(2);
+ PMC * const ctx =
+ Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
+ PMC * const lex_pad =
+ PMC_IS_NULL(ctx)
+ ? PMCNULL
+ : Parrot_find_dynamic_pad(interp, lex_name, ctx);
+ PMC * const result =
+ PMC_IS_NULL(lex_pad)
+ ? PMCNULL
+ : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name);
+ PREG(1) = result;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_dynamic_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const lex_name = CONST(2)->u.string;
+ PMC * const ctx =
+ Parrot_pcc_get_caller_ctx(interp, CURRENT_CONTEXT(interp));
+ PMC * const lex_pad =
+ PMC_IS_NULL(ctx)
+ ? PMCNULL
+ : Parrot_find_dynamic_pad(interp, lex_name, ctx);
+ PMC * const result =
+ PMC_IS_NULL(lex_pad)
+ ? PMCNULL
+ : VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name);
+ PREG(1) = result;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_caller_lex_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const lex_name = SREG(2);
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * result = PMCNULL;
+
+ for (ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
+ !PMC_IS_NULL(ctx) && PMC_IS_NULL(result);
+ ctx = Parrot_pcc_get_caller_ctx(interp, ctx))
+ {
+ PMC * const lex_pad = Parrot_find_pad(interp, lex_name, ctx);
+ if (!PMC_IS_NULL(lex_pad)) {
+ result = VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name);
+ }
+ if (!result) result = PMCNULL;
+ }
+ PREG(1) = result;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_caller_lex_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const lex_name = CONST(2)->u.string;
+ PMC * ctx = CURRENT_CONTEXT(interp);
+ PMC * result = PMCNULL;
+
+ for (ctx = Parrot_pcc_get_caller_ctx(interp, ctx);
+ !PMC_IS_NULL(ctx) && PMC_IS_NULL(result);
+ ctx = Parrot_pcc_get_caller_ctx(interp, ctx))
+ {
+ PMC * const lex_pad = Parrot_find_pad(interp, lex_name, ctx);
+ if (!PMC_IS_NULL(lex_pad)) {
+ result = VTABLE_get_pmc_keyed_str(interp, lex_pad, lex_name);
+ }
+ if (!result) result = PMCNULL;
+ }
+ PREG(1) = result;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_namespace_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ PREG(1) = cur_ns;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_get_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, PREG(2));
+
+ PREG(1) = PMC_IS_NULL(ns) ? PMCNULL : ns;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
+
+ PREG(1) = PMC_IS_NULL(ns) ? PMCNULL : ns;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_hll_namespace_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ PREG(1) = hll_ns;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_get_hll_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ if (PMC_IS_NULL(hll_ns))
+ PREG(1) = PMCNULL;
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, PREG(2));
+ PREG(1) = ns;
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_hll_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ if (PMC_IS_NULL(hll_ns))
+ PREG(1) = PMCNULL;
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
+ PREG(1) = ns;
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_root_namespace_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ PREG(1) = root_ns;
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_get_root_namespace_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ if (PMC_IS_NULL(root_ns))
+ PREG(1) = PMCNULL;
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, PREG(2));
+ PREG(1) = ns;
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_root_namespace_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ if (PMC_IS_NULL(root_ns))
+ PREG(1) = PMCNULL;
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
+ PREG(1) = ns;
+ }
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ PREG(1) = Parrot_find_global_op(interp, cur_ns, SREG(2),cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ PREG(1) = Parrot_find_global_op(interp, cur_ns, CONST(2)->u.string,cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ if (PMC_IS_NULL(cur_ns)) {
+ PREG(1) = PMCNULL;
+ }
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, PREG(2));
+ if (PMC_IS_NULL(ns))
+ PREG(1) = PMCNULL;
+ else
+ PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ if (PMC_IS_NULL(cur_ns)) {
+ PREG(1) = PMCNULL;
+ }
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
+ if (PMC_IS_NULL(ns))
+ PREG(1) = PMCNULL;
+ else
+ PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ if (PMC_IS_NULL(cur_ns)) {
+ PREG(1) = PMCNULL;
+ }
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, PREG(2));
+ if (PMC_IS_NULL(ns))
+ PREG(1) = PMCNULL;
+ else
+ PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ if (PMC_IS_NULL(cur_ns)) {
+ PREG(1) = PMCNULL;
+ }
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, cur_ns, CONST(2)->u.key);
+ if (PMC_IS_NULL(ns))
+ PREG(1) = PMCNULL;
+ else
+ PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_hll_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ PREG(1) = Parrot_find_global_op(interp, hll_ns, SREG(2),cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_hll_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ PREG(1) = Parrot_find_global_op(interp, hll_ns, CONST(2)->u.string,cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_hll_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ if (PMC_IS_NULL(hll_ns)) {
+ PREG(1) = hll_ns;
+ }
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, PREG(2));
+ if (PMC_IS_NULL(ns))
+ PREG(1) = PMCNULL;
+ else
+ PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_hll_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ if (PMC_IS_NULL(hll_ns)) {
+ PREG(1) = hll_ns;
+ }
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
+ if (PMC_IS_NULL(ns))
+ PREG(1) = PMCNULL;
+ else
+ PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_hll_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ if (PMC_IS_NULL(hll_ns)) {
+ PREG(1) = hll_ns;
+ }
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, PREG(2));
+ if (PMC_IS_NULL(ns))
+ PREG(1) = PMCNULL;
+ else
+ PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_hll_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ if (PMC_IS_NULL(hll_ns)) {
+ PREG(1) = hll_ns;
+ }
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, hll_ns, CONST(2)->u.key);
+ if (PMC_IS_NULL(ns))
+ PREG(1) = PMCNULL;
+ else
+ PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_root_global_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ PREG(1) = Parrot_find_global_op(interp, root_ns, SREG(2),cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_root_global_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ PREG(1) = Parrot_find_global_op(interp, root_ns, CONST(2)->u.string,cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_root_global_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ if (PMC_IS_NULL(root_ns))
+ PREG(1) = PMCNULL;
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, PREG(2));
+ if (PMC_IS_NULL(ns))
+ PREG(1) = PMCNULL;
+ else
+ PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_root_global_p_pc_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ if (PMC_IS_NULL(root_ns))
+ PREG(1) = PMCNULL;
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
+ if (PMC_IS_NULL(ns))
+ PREG(1) = PMCNULL;
+ else
+ PREG(1) = Parrot_find_global_op(interp, ns, SREG(3),cur_opcode + 4);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_root_global_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ if (PMC_IS_NULL(root_ns))
+ PREG(1) = PMCNULL;
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, PREG(2));
+ if (PMC_IS_NULL(ns))
+ PREG(1) = PMCNULL;
+ else
+ PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_get_root_global_p_pc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ if (PMC_IS_NULL(root_ns))
+ PREG(1) = PMCNULL;
+ else {
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, CONST(2)->u.key);
+ if (PMC_IS_NULL(ns))
+ PREG(1) = PMCNULL;
+ else
+ PREG(1) = Parrot_find_global_op(interp, ns, CONST(3)->u.string,cur_opcode + 4);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ Parrot_set_global(interp, cur_ns, SREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ Parrot_set_global(interp, cur_ns, CONST(1)->u.string, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ PMC * const ns = Parrot_make_namespace_keyed(interp, cur_ns, PREG(1));
+
+ Parrot_set_global(interp, ns, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ PMC * const ns = Parrot_make_namespace_keyed(interp, cur_ns, CONST(1)->u.key);
+
+ Parrot_set_global(interp, ns, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ PMC * const ns = Parrot_make_namespace_keyed(interp, cur_ns, PREG(1));
+
+ Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const cur_ns = Parrot_pcc_get_namespace(interp, CURRENT_CONTEXT(interp));
+ PMC * const ns = Parrot_make_namespace_keyed(interp, cur_ns, CONST(1)->u.key);
+
+ Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_hll_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ Parrot_set_global(interp, hll_ns, SREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_hll_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ Parrot_set_global(interp, hll_ns, CONST(1)->u.string, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_hll_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ PMC * const ns = Parrot_make_namespace_keyed(interp, hll_ns, PREG(1));
+
+ Parrot_set_global(interp, ns, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_hll_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ PMC * const ns = Parrot_make_namespace_keyed(interp, hll_ns, CONST(1)->u.key);
+
+ Parrot_set_global(interp, ns, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_hll_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ PMC * const ns = Parrot_make_namespace_keyed(interp, hll_ns, PREG(1));
+
+ Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_hll_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const hll_ns = Parrot_get_ctx_HLL_namespace(interp);
+ PMC * const ns = Parrot_make_namespace_keyed(interp, hll_ns, CONST(1)->u.key);
+
+ Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_root_global_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ Parrot_set_global(interp, root_ns, SREG(1), PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_root_global_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ Parrot_set_global(interp, root_ns, CONST(1)->u.string, PREG(2));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_set_root_global_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_make_namespace_keyed(interp, root_ns, PREG(1));
+
+ Parrot_set_global(interp, ns, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_root_global_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_make_namespace_keyed(interp, root_ns, CONST(1)->u.key);
+
+ Parrot_set_global(interp, ns, SREG(2), PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_root_global_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_make_namespace_keyed(interp, root_ns, PREG(1));
+
+ Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_set_root_global_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_make_namespace_keyed(interp, root_ns, CONST(1)->u.key);
+
+ Parrot_set_global(interp, ns, CONST(2)->u.string, PREG(3));
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_find_name_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (!SREG(2)) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "Tried to find null name");return (opcode_t *)handler;
+ }
+
+ PREG(1) = Parrot_find_name_op(interp, SREG(2),cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_name_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ if (!CONST(2)->u.string) {
+ opcode_t *handler = Parrot_ex_throw_from_op_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION,
+ "Tried to find null name");return (opcode_t *)handler;
+ }
+
+ PREG(1) = Parrot_find_name_op(interp, CONST(2)->u.string,cur_opcode + 3);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_sub_not_null_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *dest =cur_opcode + 3;
+ PMC *sub = Parrot_find_name_op(interp, SREG(2), dest);
+
+ if (PMC_IS_NULL(sub)) {
+ opcode_t *handler;
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+ handler = Parrot_ex_throw_from_op_args(interp, dest,
+ EXCEPTION_GLOBAL_NOT_FOUND,
+ "Could not find sub %Ss", SREG(2));return (opcode_t *)handler;
+ }
+
+ PREG(1) = sub;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_sub_not_null_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ opcode_t *dest =cur_opcode + 3;
+ PMC *sub = Parrot_find_name_op(interp, CONST(2)->u.string, dest);
+
+ if (PMC_IS_NULL(sub)) {
+ opcode_t *handler;
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+ handler = Parrot_ex_throw_from_op_args(interp, dest,
+ EXCEPTION_GLOBAL_NOT_FOUND,
+ "Could not find sub %Ss", CONST(2)->u.string);return (opcode_t *)handler;
+ }
+
+ PREG(1) = sub;
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_trap(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#if defined(__GNUC__) && defined(i386)
+ __asm__("int3"); /* opcode 0xcc */
+#endif
+#if defined(__GNUC__) && defined(PPC)
+ __asm__("trap"); /* opcode tr 31, 0, 0 */
+#endif
+
+return (opcode_t *)cur_opcode + 1;}
+
+opcode_t *
+Parrot_set_label_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ VTABLE_set_pointer(interp, PREG(1), (CUR_OPCODE + cur_opcode[2]));
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_get_label_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ void * const ptr = VTABLE_get_pointer(interp, PREG(2));
+ IREG(1) = PTR2INTVAL(ptr);
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_fetch_p_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3));
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, PREG(3));
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key);
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3));
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, PREG(3));
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key);
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3));
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3));
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_ic_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), cur_opcode[3]);
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3]);
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_i_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3));
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3));
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), cur_opcode[3]);
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3]);
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), SREG(3));
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3));
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string);
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), SREG(3));
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3));
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string);
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_fetch_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3));
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ VTABLE_set_pmc_keyed(interp, PREG(2), PREG(3), PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_p_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, PREG(3));
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, PREG(3), PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ VTABLE_set_pmc_keyed(interp, PREG(2), CONST(3)->u.key, PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_pc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key);
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key, PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), PREG(3));
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ VTABLE_set_pmc_keyed(interp, PREG(2), PREG(3), PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_p_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, PREG(3));
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, PREG(3), PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, PREG(2), CONST(3)->u.key);
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ VTABLE_set_pmc_keyed(interp, PREG(2), CONST(3)->u.key, PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_pc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key);
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+ VTABLE_set_pmc_keyed(interp, CONST(2)->u.key, CONST(3)->u.key, PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3));
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_int(interp, PREG(2), IREG(3), PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_i_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3));
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3), PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_ic_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_int(interp, PREG(2), cur_opcode[3], PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_ic_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3]);
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3], PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_i_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), IREG(3));
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_int(interp, PREG(2), IREG(3), PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_i_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3));
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, IREG(3), PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, PREG(2), cur_opcode[3]);
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_int(interp, PREG(2), cur_opcode[3], PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_ic_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3]);
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_int(interp, CONST(2)->u.key, cur_opcode[3], PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), SREG(3));
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_str(interp, PREG(2), SREG(3), PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_s_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3));
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3), PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string);
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_sc_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, PREG(4));
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, PREG(4));
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, PREG(4)));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string, PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_s_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), SREG(3));
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_str(interp, PREG(2), SREG(3), PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_s_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3));
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, SREG(3), PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_p_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string);
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_str(interp, PREG(2), CONST(3)->u.string, PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_vivify_p_pc_sc_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PREG(1) = VTABLE_get_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string);
+
+ if (PMC_IS_NULL(PREG(1))) {
+ PMC * const classobj = Parrot_oo_get_class(interp, CONST(4)->u.key);
+ if (!PMC_IS_NULL(classobj))
+ PREG(1) = VTABLE_instantiate(interp, classobj, PMCNULL);
+ else {
+ const INTVAL type = Parrot_pmc_get_type(interp, CONST(4)->u.key);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(
+ interp,cur_opcode + 5, EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, CONST(4)->u.key));return (opcode_t *)dest;
+ }
+
+ PREG(1) = Parrot_pmc_new(interp, type);
+ }
+
+ VTABLE_set_pmc_keyed_str(interp, CONST(2)->u.key, CONST(3)->u.string, PREG(1));
+ }
+
+return (opcode_t *)cur_opcode + 5;}
+
+opcode_t *
+Parrot_new_p_s_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const name = SREG(2);
+ PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+ ? Parrot_oo_get_class_str(interp, name)
+ : PMCNULL;
+
+ if (!PMC_IS_NULL(_class)) {
+ PMC *initial = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, initial, IREG(3));
+ PREG(1) = VTABLE_instantiate(interp, _class, initial);
+ }
+ else {
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", name);return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3));
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_sc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const name = CONST(2)->u.string;
+ PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+ ? Parrot_oo_get_class_str(interp, name)
+ : PMCNULL;
+
+ if (!PMC_IS_NULL(_class)) {
+ PMC *initial = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, initial, IREG(3));
+ PREG(1) = VTABLE_instantiate(interp, _class, initial);
+ }
+ else {
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", name);return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3));
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_s_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const name = SREG(2);
+ PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+ ? Parrot_oo_get_class_str(interp, name)
+ : PMCNULL;
+
+ if (!PMC_IS_NULL(_class)) {
+ PMC *initial = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, initial, cur_opcode[3]);
+ PREG(1) = VTABLE_instantiate(interp, _class, initial);
+ }
+ else {
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", name);return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new_init_int(interp, type, cur_opcode[3]);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_sc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ STRING * const name = CONST(2)->u.string;
+ PMC * const _class = Parrot_pcc_get_HLL(interp, CURRENT_CONTEXT(interp))
+ ? Parrot_oo_get_class_str(interp, name)
+ : PMCNULL;
+
+ if (!PMC_IS_NULL(_class)) {
+ PMC *initial = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, initial, cur_opcode[3]);
+ PREG(1) = VTABLE_instantiate(interp, _class, initial);
+ }
+ else {
+ const INTVAL type = Parrot_pmc_get_type_str(interp, name);
+ if (type <= 0) {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", name);return (opcode_t *)dest;
+ }
+ PREG(1) = Parrot_pmc_new_init_int(interp, type, cur_opcode[3]);
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = PREG(2);
+
+ /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+ /* if it's clearly a PIR-level PMC */
+ if (type > enum_class_core_max) {
+ PMC * const _class = Parrot_oo_get_class(interp, name_key);
+ if (!PMC_IS_NULL(_class)) {
+ PMC *initial = Parrot_pmc_new(interp,
+ Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, initial, IREG(3));
+ PREG(1) = VTABLE_instantiate(interp, _class, initial);
+ }
+ }
+
+ /* if it's a core PMC */
+ else if (type > enum_class_default)
+ PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3));
+
+ /* it's a typo */
+ else {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = CONST(2)->u.key;
+
+ /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+ /* if it's clearly a PIR-level PMC */
+ if (type > enum_class_core_max) {
+ PMC * const _class = Parrot_oo_get_class(interp, name_key);
+ if (!PMC_IS_NULL(_class)) {
+ PMC *initial = Parrot_pmc_new(interp,
+ Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, initial, IREG(3));
+ PREG(1) = VTABLE_instantiate(interp, _class, initial);
+ }
+ }
+
+ /* if it's a core PMC */
+ else if (type > enum_class_default)
+ PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3));
+
+ /* it's a typo */
+ else {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = PREG(2);
+
+ /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+ /* if it's clearly a PIR-level PMC */
+ if (type > enum_class_core_max) {
+ PMC * const _class = Parrot_oo_get_class(interp, name_key);
+ if (!PMC_IS_NULL(_class)) {
+ PMC *initial = Parrot_pmc_new(interp,
+ Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, initial, cur_opcode[3]);
+ PREG(1) = VTABLE_instantiate(interp, _class, initial);
+ }
+ }
+
+ /* if it's a core PMC */
+ else if (type > enum_class_default)
+ PREG(1) = Parrot_pmc_new_init_int(interp, type, cur_opcode[3]);
+
+ /* it's a typo */
+ else {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = CONST(2)->u.key;
+
+ /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+ /* if it's clearly a PIR-level PMC */
+ if (type > enum_class_core_max) {
+ PMC * const _class = Parrot_oo_get_class(interp, name_key);
+ if (!PMC_IS_NULL(_class)) {
+ PMC *initial = Parrot_pmc_new(interp,
+ Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, initial, cur_opcode[3]);
+ PREG(1) = VTABLE_instantiate(interp, _class, initial);
+ }
+ }
+
+ /* if it's a core PMC */
+ else if (type > enum_class_default)
+ PREG(1) = Parrot_pmc_new_init_int(interp, type, cur_opcode[3]);
+
+ /* it's a typo */
+ else {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_p_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = PREG(2);
+
+ /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+ /* if it's clearly a PIR-level PMC */
+ if (type > enum_class_core_max) {
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+ PMC * const _class = Parrot_oo_get_class(interp, ns);
+ if (!PMC_IS_NULL(_class)) {
+ PMC *initial = Parrot_pmc_new(interp,
+ Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, initial, IREG(3));
+ PREG(1) = VTABLE_instantiate(interp, _class, initial);
+ }
+ }
+
+ /* if it's a core PMC */
+ else if (type > enum_class_default)
+ PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3));
+
+ /* it's a typo */
+ else {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_pc_i(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = CONST(2)->u.key;
+
+ /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+ /* if it's clearly a PIR-level PMC */
+ if (type > enum_class_core_max) {
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+ PMC * const _class = Parrot_oo_get_class(interp, ns);
+ if (!PMC_IS_NULL(_class)) {
+ PMC *initial = Parrot_pmc_new(interp,
+ Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, initial, IREG(3));
+ PREG(1) = VTABLE_instantiate(interp, _class, initial);
+ }
+ }
+
+ /* if it's a core PMC */
+ else if (type > enum_class_default)
+ PREG(1) = Parrot_pmc_new_init_int(interp, type, IREG(3));
+
+ /* it's a typo */
+ else {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_p_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = PREG(2);
+
+ /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+ /* if it's clearly a PIR-level PMC */
+ if (type > enum_class_core_max) {
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+ PMC * const _class = Parrot_oo_get_class(interp, ns);
+ if (!PMC_IS_NULL(_class)) {
+ PMC *initial = Parrot_pmc_new(interp,
+ Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, initial, cur_opcode[3]);
+ PREG(1) = VTABLE_instantiate(interp, _class, initial);
+ }
+ }
+
+ /* if it's a core PMC */
+ else if (type > enum_class_default)
+ PREG(1) = Parrot_pmc_new_init_int(interp, type, cur_opcode[3]);
+
+ /* it's a typo */
+ else {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_root_new_p_pc_ic(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ PMC * const name_key = CONST(2)->u.key;
+
+ /* get_class() returns a PMCProxy for core types, so check for core PMCs */
+ const INTVAL type = Parrot_pmc_get_type(interp, name_key);
+
+ /* if it's clearly a PIR-level PMC */
+ if (type > enum_class_core_max) {
+ PMC * const root_ns = interp->root_namespace;
+ PMC * const ns = Parrot_get_namespace_keyed(interp, root_ns, name_key);
+ PMC * const _class = Parrot_oo_get_class(interp, ns);
+ if (!PMC_IS_NULL(_class)) {
+ PMC *initial = Parrot_pmc_new(interp,
+ Parrot_get_ctx_HLL_type(interp, enum_class_Integer));
+ VTABLE_set_integer_native(interp, initial, cur_opcode[3]);
+ PREG(1) = VTABLE_instantiate(interp, _class, initial);
+ }
+ }
+
+ /* if it's a core PMC */
+ else if (type > enum_class_default)
+ PREG(1) = Parrot_pmc_new_init_int(interp, type, cur_opcode[3]);
+
+ /* it's a typo */
+ else {
+ opcode_t *dest = Parrot_ex_throw_from_op_args(interp,cur_opcode + 4,
+ EXCEPTION_NO_CLASS,
+ "Class '%Ss' not found", VTABLE_get_repr(interp, name_key));return (opcode_t *)dest;
+ }
+
+return (opcode_t *)cur_opcode + 4;}
+
+opcode_t *
+Parrot_find_codepoint_i_s(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#if PARROT_HAS_ICU
+ UErrorCode err = U_ZERO_ERROR;
+ char * const cstr = Parrot_str_to_cstring(interp, SREG(2));
+ UChar32 codepoint = u_charFromName(U_EXTENDED_CHAR_NAME, cstr, &err);
+ Parrot_str_free_cstring(cstr);
+ IREG(1) = U_SUCCESS(err) ? (INTVAL) codepoint : -1;
+#else
+ opcode_t * const dest =cur_opcode + 3;
+ Parrot_ex_throw_from_op_args(interp, dest, EXCEPTION_LIBRARY_ERROR,
+ "no ICU lib loaded");
+#endif
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_find_codepoint_i_sc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+#if PARROT_HAS_ICU
+ UErrorCode err = U_ZERO_ERROR;
+ char * const cstr = Parrot_str_to_cstring(interp, CONST(2)->u.string);
+ UChar32 codepoint = u_charFromName(U_EXTENDED_CHAR_NAME, cstr, &err);
+ Parrot_str_free_cstring(cstr);
+ IREG(1) = U_SUCCESS(err) ? (INTVAL) codepoint : -1;
+#else
+ opcode_t * const dest =cur_opcode + 3;
+ Parrot_ex_throw_from_op_args(interp, dest, EXCEPTION_LIBRARY_ERROR,
+ "no ICU lib loaded");
+#endif
+
+return (opcode_t *)cur_opcode + 3;}
+
+opcode_t *
+Parrot_finalize_p(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ /* Go to the next op after loop unrolling */
+ opcode_t * const dest =cur_opcode + 2;
+ PMC *eh = PMCNULL;
+ if (!PMC_IS_NULL(PREG(1))) {
+ /* If isa ExceptionHandler, use it. If isa Exception, get its active handler */
+ if (VTABLE_isa(interp, PREG(1), Parrot_str_new_constant(interp, "ExceptionHandler")))
+ eh = PREG(1);
+ else if (VTABLE_isa(interp, PREG(1), Parrot_str_new_constant(interp, "Exception"))) {
+ PMC *iter = VTABLE_get_attr_str(interp,
+ PREG(1), Parrot_str_new_constant(interp, "handler_iter"));
+ if (!PMC_IS_NULL(iter))
+ eh = VTABLE_get_pmc_keyed_int(interp, iter, -1);
+ }
+ }
+ if (!PMC_IS_NULL(eh)) {
+ /* Get the runloop_id from the continuation and jump to it. */
+ Parrot_runloop *rl = interp->current_runloop;
+ INTVAL rid;
+ Parrot_pcc_invoke_method_from_c_args(interp,
+ eh, Parrot_str_new_constant(interp, "rid"),
+ "->I", &rid);
+ while (rl && rl->id != rid)
+ rl = rl->prev;
+ if (rl) {
+ if (rl != interp->current_runloop) {
+ rl->handler_start = dest;
+ longjmp(rl->resume, 3);
+ }
+ }
+ else
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION, "missing runloop");
+ }
+
+return (opcode_t *)cur_opcode + 2;}
+
+opcode_t *
+Parrot_finalize_pc(opcode_t *cur_opcode, PARROT_INTERP) {
+ const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
+ /* Go to the next op after loop unrolling */
+ opcode_t * const dest =cur_opcode + 2;
+ PMC *eh = PMCNULL;
+ if (!PMC_IS_NULL(CONST(1)->u.key)) {
+ /* If isa ExceptionHandler, use it. If isa Exception, get its active handler */
+ if (VTABLE_isa(interp, CONST(1)->u.key, Parrot_str_new_constant(interp, "ExceptionHandler")))
+ eh = CONST(1)->u.key;
+ else if (VTABLE_isa(interp, CONST(1)->u.key, Parrot_str_new_constant(interp, "Exception"))) {
+ PMC *iter = VTABLE_get_attr_str(interp,
+ CONST(1)->u.key, Parrot_str_new_constant(interp, "handler_iter"));
+ if (!PMC_IS_NULL(iter))
+ eh = VTABLE_get_pmc_keyed_int(interp, iter, -1);
+ }
+ }
+ if (!PMC_IS_NULL(eh)) {
+ /* Get the runloop_id from the continuation and jump to it. */
+ Parrot_runloop *rl = interp->current_runloop;
+ INTVAL rid;
+ Parrot_pcc_invoke_method_from_c_args(interp,
+ eh, Parrot_str_new_constant(interp, "rid"),
+ "->I", &rid);
+ while (rl && rl->id != rid)
+ rl = rl->prev;
+ if (rl) {
+ if (rl != interp->current_runloop) {
+ rl->handler_start = dest;
+ longjmp(rl->resume, 3);
+ }
+ }
+ else
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_OPERATION, "missing runloop");
+ }
+
+return (opcode_t *)cur_opcode + 2;}
+
+
+/*
+** op lib descriptor:
+*/
+
+static op_lib_t core_op_lib = {
+ "core", /* name */
+ "", /* suffix */
+ PARROT_FUNCTION_CORE, /* core_type = PARROT_XX_CORE */
+ 0, /* flags */
+ 2, /* major_version */
+ 4, /* minor_version */
+ 0, /* patch_version */
+ 1083, /* op_count */
+ core_op_info_table, /* op_info_table */
+ core_op_func_table, /* op_func_table */
+ get_op /* op_code() */
+};
+
+/*
+** Op lookup function:
+*/
+
+#define OP_HASH_SIZE 3041
+
+/* we could calculate a prime somewhat bigger than
+ * n of fullnames + n of names
+ * for now this should be ok
+ *
+ * look up an op_code: at first call to op_code() a hash
+ * of short and full opcode names is created
+ * hash functions are from imcc, thanks to Melvin.
+ */
+
+
+typedef struct hop {
+ op_info_t * info;
+ struct hop *next;
+} HOP;
+static HOP **hop;
+
+static void hop_init(PARROT_INTERP);
+static size_t hash_str(const char *str);
+static void store_op(PARROT_INTERP, op_info_t *info, int full);
+
+/* XXX on changing interpreters, this should be called,
+ through a hook */
+
+static void hop_deinit(PARROT_INTERP);
+
+/*
+ * find a short or full opcode
+ * usage:
+ *
+ * interp->op_lib->op_code("set", 0)
+ * interp->op_lib->op_code("set_i_i", 1)
+ *
+ * returns >= 0 (found idx into info_table), -1 if not
+ */
+
+static size_t hash_str(const char *str) {
+ size_t key = 0;
+ const char *s = str;
+
+ while (*s) {
+ key *= 65599;
+ key += *s++;
+ }
+
+ return key;
+}
+
+static void store_op(PARROT_INTERP, op_info_t *info, int full) {
+ HOP * const p = mem_gc_allocate_zeroed_typed(interp, HOP);
+ const size_t hidx =
+ hash_str(full ? info->full_name : info->name) % OP_HASH_SIZE;
+
+ p->info = info;
+ p->next = hop[hidx];
+ hop[hidx] = p;
+}
+static int get_op(PARROT_INTERP, const char * name, int full) {
+ const HOP * p;
+ const size_t hidx = hash_str(name) % OP_HASH_SIZE;
+ if (!hop) {
+ hop = mem_gc_allocate_n_zeroed_typed(interp, OP_HASH_SIZE,HOP *);
+ hop_init(interp);
+ }
+ for (p = hop[hidx]; p; p = p->next) {
+ if(STREQ(name, full ? p->info->full_name : p->info->name))
+ return p->info - core_op_lib.op_info_table;
+ }
+ return -1;
+}
+static void hop_init(PARROT_INTERP) {
+ size_t i;
+ op_info_t * const info = core_op_lib.op_info_table;
+ /* store full names */
+ for (i = 0; i < core_op_lib.op_count; i++)
+ store_op(interp, info + i, 1);
+ /* plus one short name */
+ for (i = 0; i < core_op_lib.op_count; i++)
+ if (get_op(interp, info[i].name, 0) == -1)
+ store_op(interp, info + i, 0);
+}
+static void hop_deinit(PARROT_INTERP)
+{
+ if (hop) {
+ size_t i;
+ for (i = 0; i < OP_HASH_SIZE; i++) {
+ HOP *p = hop[i];
+ while (p) {
+ HOP * const next = p->next;
+ mem_gc_free(interp, p);
+ p = next;
+ }
+ }
+ mem_sys_free(hop);
+ hop = NULL;
+ }
+}
+op_lib_t *
+Parrot_DynOp_core_2_4_0(PARROT_INTERP, long init) {
+ /* initialize and return op_lib ptr */
+ if (init == 1) {
+
+ return &core_op_lib;
+ }
+ /* set op_lib to the passed ptr (in init) */
+ else if (init) {
+
+ }
+ /* deinit - free resources */
+ else {
+ hop_deinit(interp);
+ }
+ return NULL;
+}
+
+
+/*
+ * dynamic lib load function - called once
+ */
+ PMC*
+Parrot_lib_core_ops_load(PARROT_INTERP);
+
+ PMC*
+Parrot_lib_core_ops_load(PARROT_INTERP)
+
+{
+ PMC *const lib = Parrot_pmc_new(interp, enum_class_ParrotLibrary);
+ ((Parrot_ParrotLibrary_attributes*)PMC_data(lib))->oplib_init = (void *) Parrot_DynOp_core_2_4_0;
+ dynop_register(interp, lib);
+ return lib;
+}
+
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * buffer-read-only: t
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Deleted: branches/gsoc_threads/src/ops/debug.ops
==============================================================================
--- branches/gsoc_threads/src/ops/debug.ops Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,146 +0,0 @@
-/*
- * $Id$
- * Copyright (C) 2002-2008, Parrot Foundation.
- */
-
-/*
-** debug.ops
-*/
-
-=head1 NAME
-
-debug.ops - Debugging Opcodes
-
-=cut
-
-=head1 DESCRIPTION
-
-Parrot debugger
-
-=cut
-
-=head1 HISTORY
-
-Initial version by Daniel Grunblatt on 2002.5.19
-
-=cut
-
-###############################################################################
-
-=head2 Parrot debug operations
-
-=over 4
-
-=cut
-
-########################################
-
-=item B<debug_init>()
-
-Init the Parrot debugger, must be called before any other debug op.
-
-=cut
-
-op debug_init() :base_debug {
- Parrot_debugger_init(interp);
-}
-
-########################################
-
-=item B<debug_load>(inconst STR)
-
-Load a Parrot source file for the current program.
-
-=cut
-
-op debug_load(inconst STR) :base_debug {
- Parrot_debugger_load(interp, $1);
-}
-
-########################################
-
-=item B<debug_break>()
-
-Break execution and drop into the debugger.
-If we are already into the debugger and is the first time we are
-called set a breakpoint.
-
-When you re run/continue the program begin debugged it will pay
-no attention to the debug ops.
-
-=cut
-
-op debug_break() :base_debug {
- Parrot_debugger_break(interp, cur_opcode);
-}
-
-########################################
-
-=item B<debug_print>()
-
-Print all the Parrot registers at once.
-
-=cut
-
-op debug_print() :base_debug {
- if (!interp->pdb) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_INVALID_OPERATION,
- "Initialize debugger with debug_init before using debug_print");
- goto ADDRESS(handler);
- }
-
- if (!(interp->pdb->state & PDB_BREAK)) {
- PDB_print(interp, "I");
- PDB_print(interp, "N");
- PDB_print(interp, "S");
- PDB_print(interp, "P");
- }
-}
-
-=item B<backtrace>()
-
-Print a backtrace.
-
-=cut
-
-op backtrace() :base_debug {
- PDB_backtrace(interp);
-}
-
-#######################################
-
-=item B<getline>(out INT)
-
-Get the current line number.
-
-=cut
-
-inline op getline(out INT) {
- Parrot_Context_info info;
- Parrot_Context_get_info(interp, CURRENT_CONTEXT(interp), &info);
- $1 = info.line;
-}
-
-=item B<getfile>(out STR)
-
-Get the name of the current file.
-
-=cut
-
-inline op getfile(out STR) {
- Parrot_Context_info info;
- Parrot_Context_get_info(interp, CURRENT_CONTEXT(interp), &info);
- $1 = info.file;
-}
-
-=back
-
-=cut
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Modified: branches/gsoc_threads/src/ops/experimental.ops
==============================================================================
--- branches/gsoc_threads/src/ops/experimental.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/ops/experimental.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -27,6 +27,8 @@
If you rely on any of these opcodes, please open a
Trac ticket at L<https://trac.parrot.org/>.
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
=cut
@@ -367,15 +369,16 @@
#endif
}
-=item B<unroll>(in PMC)
+=item B<finalize>(in PMC)
-Exception handling done, unroll possible inner runloops left. $1 is the
-Exception handled or the ExceptionHandler that is handling it.
+Finalize exception handling, freeing any information needed to resume
+the handled exception, like inner runloops.
+$1 is the Exception handled or the ExceptionHandler that is handling it.
EXPERIMENTAL. Handle with care.
=cut
-op unroll(in PMC) {
+op finalize(in PMC) {
/* Go to the next op after loop unrolling */
opcode_t * const dest = expr NEXT();
PMC *eh = PMCNULL;
Modified: branches/gsoc_threads/src/ops/io.ops
==============================================================================
--- branches/gsoc_threads/src/ops/io.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/ops/io.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -19,149 +19,19 @@
Parrot's IO API
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
=cut
###############################################################################
=head2 Parrot IO API Operations
-
=over 4
=cut
-
-########################################
-
-=item B<close>(invar PMC)
-
-Close IO object $1
-
-=cut
-
-inline op close(invar PMC) :base_io {
- Parrot_io_close(interp, $1);
-}
-
-########################################
-
-=item B<fdopen>(out PMC, in INT, in STR)
-
-Create ParrotIO object in $1 as a copy of file descriptor $2.
-
-=cut
-
-inline op fdopen(out PMC, in INT, in STR) :filesys_open {
- $1 = Parrot_io_fdopen(interp, PMCNULL, (PIOHANDLE)$2, $3);
- if (!$1)
- $1 = Parrot_pmc_new(interp, enum_class_Undef);
-}
-
-=item B<getstdin>(out PMC)
-
-Create a new ParrotIO object for the stdin file descriptor and
-store it in $1
-
-=item B<getstdout>(out PMC)
-
-Create a new ParrotIO object for the stdout file descriptor and
-store it in $1
-
-=item B<getstderr>(out PMC)
-
-Create a new ParrotIO object for the stderr file descriptor and
-store it in $1
-
-=cut
-
-inline op getstdin(out PMC) :base_io {
- $1 = _PIO_STDIN(interp);
-}
-
-inline op getstdout(out PMC) :base_io {
- $1 = _PIO_STDOUT(interp);
-}
-
-inline op getstderr(out PMC) :base_io {
- $1 = _PIO_STDERR(interp);
-}
-
-#########################################
-
-=item B<setstdin>(invar PMC)
-
-Sets the standard input for a bare C<read> op to go to the supplied PMC.
-Call C<getstdin> first if you care about retaining the previous PMC.
-
-=item B<setstdout>(invar PMC)
-
-Sets the standard output for a bare C<print> op to go to the supplied PMC.
-Call C<getstdout> first if you care about retaining the previous PMC.
-
-=item B<setstderr>(invar PMC)
-
-Sets the standard error for a bare C<printerr> op to go to the supplied PMC.
-Call C<getstderr> first if you care about retaining the previous PMC.
-
-=cut
-
-inline op setstdin(invar PMC) :base_io {
- _PIO_STDIN(interp) = $1;
-}
-
-inline op setstdout(invar PMC) :base_io {
- _PIO_STDOUT(interp) = $1;
-}
-
-inline op setstderr(invar PMC) :base_io {
- _PIO_STDERR(interp) = $1;
-}
-
-#########################################
-
-=item B<open>(out PMC, in STR, in STR)
-
-Open URL (file, address, database, in core image) named $2 with
-a mode string in $3 and create an IO object in $1.
-
-The mode consists of a string of characters specified in any order:
-
- r : read
- w : write
- a : append (Note: you must specify "wa", not just "a")
- p : pipe
-
-=item B<open>(out PMC, in STR)
-
-Open URL (file, address, database, in core image) named $2 with
-read mode and create an IO object in $1.
-
-=cut
-
-inline op open(out PMC, in STR, in STR) :filesys_open {
- if (STRING_IS_NULL($2) || STRING_IS_NULL($3)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_UNEXPECTED_NULL, "Invalid open");
- goto ADDRESS(handler);
- }
- else {
- $1 = Parrot_io_open(interp, PMCNULL, $2, $3);
- PARROT_ASSERT(! PMC_IS_NULL($1));
- }
-}
-
-inline op open(out PMC, in STR) :filesys_open {
- if (STRING_IS_NULL($2)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_UNEXPECTED_NULL, "Invalid open");
- goto ADDRESS(handler);
- }
- else {
- $1 = Parrot_io_open(interp, PMCNULL, $2, NULL);
- PARROT_ASSERT(! PMC_IS_NULL($1));
- }
-}
-
########################################
=item B<print>(in INT)
@@ -266,41 +136,6 @@
##########################################
-=item B<printerr>(in INT)
-
-=item B<printerr>(in NUM)
-
-=item B<printerr>(in STR)
-
-=item B<printerr>(invar PMC)
-
-Print $1 to standard error.
-
-=cut
-
-op printerr(in INT) :base_io {
- Parrot_io_eprintf(interp, INTVAL_FMT, $1);
-}
-
-op printerr(in NUM) :base_io {
- Parrot_io_eprintf(interp, FLOATVAL_FMT, $1);
-}
-
-op printerr(in STR) :base_io {
- STRING * const s = $1;
- if (s && Parrot_str_byte_length(interp, s))
- Parrot_io_putps(interp, _PIO_STDERR(interp), s);
-}
-
-op printerr(invar PMC) :base_io {
- PMC * const p = $1;
- STRING * const s = (VTABLE_get_string(interp, p));
- if (s)
- Parrot_io_putps(interp, _PIO_STDERR(interp), s);
-}
-
-##########################################
-
=item B<print>(invar PMC, in INT)
=item B<print>(invar PMC, in NUM)
@@ -340,183 +175,35 @@
}
}
-##########################################
-
-=item B<read>(out STR, in INT)
-
-Read up to N bytes from standard input stream
-
-=item B<read>(out STR, invar PMC, in INT)
-
-Read up to N bytes from IO PMC stream.
-
-=cut
-
-op read(out STR, in INT) :base_io {
- $1 = Parrot_io_reads(interp, _PIO_STDIN(interp), (size_t)$2);
-}
-
-op read(out STR, invar PMC, in INT) :base_io {
- $1 = Parrot_io_reads(interp, $2, (size_t)$3);
-}
-
-=item B<readline>(out STR, invar PMC)
-
-Read a line up to EOL from filehandle $2.
-This switches the filehandle to linebuffer-mode.
-
-=cut
-
-inline op readline(out STR, invar PMC) :base_io {
- $1 = Parrot_io_readline(interp, $2);
-}
-
-##########################################
-
-=item B<peek>(out STR)
-
-Returns the next byte from standard input, but does not
-remove it from the stream.
-
-=item B<peek>(out STR, invar PMC)
-
-Reads the next byte from an IO PMC, but does not
-remove it from the stream.
-
-=cut
-
-op peek(out STR) :base_io {
- STRING ** const s = &$1;
-
- *s = NULL;
- if (Parrot_io_peek(interp, _PIO_STDIN(interp), s) < 0) {
- $1 = STRINGNULL;
- }
-}
-
-op peek(out STR, invar PMC) :base_io {
- STRING ** const s = &$1;
-
- *s = NULL;
- if (Parrot_io_peek(interp, $2, s) < 0) {
- $1 = STRINGNULL;
- }
-}
-
-##########################################
-
-=item B<stat>(out INT, in STR, in INT)
-
-=item B<stat>(out INT, in INT, in INT)
-
-Stat the file. Return stat element $3 for file $2 into $1. The queryable
-items currently are:
-
- EXISTS 0
- FILESIZE 1
- ISDIR 2
- ISDEV 3
- CREATETIME 4 (Time file was created)
- ACCESSTIME 5 (Time file was last accessed)
- MODIFYTIME 6 (Time file data was changed)
- CHANGETIME 7 (Time file metadata was changed)
- BACKUPTIME 8 (Time of last backup)
- UID 9
- GID 10
-
-
-=cut
-
-op stat(out INT, in STR, in INT) {
- $1 = Parrot_stat_info_intval(interp, $2, $3);
-}
+=item B<getstdin>(out PMC)
-op stat(out INT, in INT, in INT) {
- $1 = Parrot_fstat_info_intval(interp, $2, $3);
-}
+Create a new ParrotIO object for the stdin file descriptor and
+store it in $1
+=item B<getstdout>(out PMC)
-##########################################
+Create a new ParrotIO object for the stdout file descriptor and
+store it in $1
-=item B<seek>(invar PMC, in INT, in INT)
+=item B<getstderr>(out PMC)
-seek:
-Set file position to offset $2 on IO stream $1. 'whence' is
-indicated by the value in $3. The valid values for 'whence' are:
-
- Value Meaning
- 0 Seek from the beginning of the file
- 1 Seek from the current position
- 2 Seek from the end of the file
-
-[ Note: the above values for 'whence' is just an educated guess
-at this point ]
-
-=item B<seek>(invar PMC, in INT, in INT, in INT)
-
-64bit seek:
-Set file position to offset ($2 << 32 | $3) on IO stream $1. 'whence' is
-indicated by the value in $4. This allows 64-bit seeks with only 32-bit
-INTVALS.
+Create a new ParrotIO object for the stderr file descriptor and
+store it in $1
=cut
-op seek(invar PMC, in INT, in INT) :base_io {
- if ($1) {
- if (Parrot_io_seek(interp, $1, Parrot_io_make_offset($2), $3) < 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_PIO_ERROR,
- "seek failed (32bit)");
- goto ADDRESS(handler);
- }
- }
-}
-
-op seek(invar PMC, in INT, in INT, in INT) :base_io {
- if ($1) {
- if (Parrot_io_seek(interp, $1, Parrot_io_make_offset32($2, $3), $4) < 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_PIO_ERROR,
- "seek failed (64bit)");
- goto ADDRESS(handler);
- }
- }
+inline op getstdin(out PMC) :base_io {
+ $1 = _PIO_STDIN(interp);
}
-=item B<tell>(out INT, invar PMC)
-
-tell:
-Get the current file position of stream $2 and store it in $1.
-On systems where INTVAL is 32bit the result will be truncated if the
-position is beyond 2 GiB
-
-=item B<tell>(out INT, out INT, invar PMC)
-
-64bit tell:
-Get the current file positon of stream $3 in two parts of 32-bit each
-($1 = pos >> 32, $2 = pos & 0xffffffff).
-
-=cut
-
-op tell(out INT, invar PMC) :base_io {
- if ($2)
- $1 = (INTVAL)Parrot_io_tell(interp, $2);
+inline op getstdout(out PMC) :base_io {
+ $1 = _PIO_STDOUT(interp);
}
-op tell(out INT, out INT, invar PMC) :base_io {
- if ($3) {
- PIOOFF_T pos;
- pos = Parrot_io_tell(interp, $3);
- $1 = (INTVAL)(pos >> 31);
- $2 = (INTVAL)(pos & 0xffffffff);
- }
+inline op getstderr(out PMC) :base_io {
+ $1 = _PIO_STDERR(interp);
}
-=back
-
-=cut
-
-
###############################################################################
/*
Modified: branches/gsoc_threads/src/ops/math.ops
==============================================================================
--- branches/gsoc_threads/src/ops/math.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/ops/math.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -11,8 +11,11 @@
=head1 DESCRIPTION
-Operations that perform some sort of mathematics, including both basic
-math and transcendental functions.
+Operations that perform basic mathematics. See F<src/dynoplibs/> for more
+advanced operations.
+
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
=head2 Arithmetic operations
@@ -137,152 +140,6 @@
########################################
-=item B<cmod>(out INT, in INT, in INT)
-
-=item B<cmod>(invar PMC, invar PMC, in INT)
-
-=item B<cmod>(invar PMC, invar PMC, invar PMC)
-
-NOTE: This "uncorrected mod" algorithm uses the C language's built-in
-mod operator (x % y), which is
-
- ... the remainder when x is divided by y, and thus is zero
- when y divides x exactly.
- ...
- The direction of truncation for / and the sign of the result
- for % are machine-dependent for negative operands, as is the
- action taken on overflow or underflow.
- -- [1], page 41
-
-Also:
-
- ... if the second operand is 0, the result is undefined.
- Otherwise, it is always true that (a/b)*b + a%b is equal to z. If
- both operands are non-negative, then the remainder is non-
- negative and smaller than the divisor; if not, it is guaranteed
- only that the absolute value of the remainder is smaller than
- the absolute value of the divisor.
- -- [1], page 205
-
-This op is provided for those who need it (such as speed-sensitive
-applications with heavy use of mod, but using it only with positive
-arguments), but a more mathematically useful mod based on ** floor(x/y)
-and defined with y == 0 is provided by the mod op.
-
- [1] Brian W. Kernighan and Dennis M. Ritchie, *The C Programming
- Language*, Second Edition. Prentice Hall, 1988.
-
-If the denominator is zero, a 'Divide by zero' exception is thrown.
-
-=cut
-
-inline op cmod(out INT, in INT, in INT) :base_core {
- INTVAL den = $3;
- if ($3 == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_DIV_BY_ZERO,
- "Divide by zero");
- goto ADDRESS(handler);
- }
- $1 = $2 % den;
-}
-
-inline op cmod(invar PMC, invar PMC, in INT) :base_core {
- INTVAL result;
-
- if ($3 == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_DIV_BY_ZERO,
- "Divide by zero");
- goto ADDRESS(handler);
- }
-
- result = VTABLE_get_integer(interp, $2) % $3;
-
- $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
- VTABLE_set_integer_native(interp, $1, result);
-}
-
-inline op cmod(invar PMC, invar PMC, invar PMC) :base_core {
- INTVAL result;
- INTVAL value = VTABLE_get_integer(interp, $3);
-
- if (value == 0) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_DIV_BY_ZERO,
- "Divide by zero");
- goto ADDRESS(handler);
- }
-
- result = VTABLE_get_integer(interp, $2) % value;
-
- $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
- VTABLE_set_integer_native(interp, $1, result);
-}
-
-########################################
-
-=item B<cmod>(out NUM, in NUM, in NUM)
-
-=item B<cmod>(invar PMC, invar PMC, in NUM)
-
-NOTE: This "uncorrected mod" algorithm uses the built-in C math library's
-fmod() function, which computes
-
- ... the remainder of dividing x by y. The return value is
- x - n * y, where n is the quotient of x / y, rounded towards
- zero to an integer.
- -- fmod() manpage on RedHat Linux 7.0
-
-In addition, fmod() returns
-
- the remainder, unless y is zero, when the function fails and
- errno is set.
-
-According to page 251 of [1], the result when y is zero is implementation-
-defined.
-
-This op is provided for those who need it, but a more mathematically
-useful numeric mod based on floor(x/y) instead of truncate(x/y) and
-defined with y == 0 is provided by the mod op.
-
- [1] Brian W. Kernighan and Dennis M. Ritchie, *The C Programming
- Language*, Second Edition. Prentice Hall, 1988.
-
-If the denominator is zero, a 'Divide by zero' exception is thrown.
-
-=cut
-
-inline op cmod(out NUM, in NUM, in NUM) :base_core {
- FLOATVAL den = $3;
- if (FLOAT_IS_ZERO($3)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_DIV_BY_ZERO,
- "Divide by zero");
- goto ADDRESS(handler);
- }
- $1 = fmod($2, den);
-}
-
-inline op cmod(invar PMC, invar PMC, in NUM) :base_core {
- FLOATVAL result;
- FLOATVAL value = $3;
-
- if (FLOAT_IS_ZERO(value)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, expr NEXT(),
- EXCEPTION_DIV_BY_ZERO,
- "Divide by zero");
- goto ADDRESS(handler);
- }
-
- result = fmod(VTABLE_get_integer(interp, $2), value);
-
- $1 = Parrot_pmc_new(interp, VTABLE_type(interp, $2));
- VTABLE_set_integer_native(interp, $1, (INTVAL) result);
-}
-
-########################################
-
=item B<dec>(inout INT)
=item B<dec>(inout NUM)
@@ -787,82 +644,6 @@
########################################
-=item B<pow>(out NUM, in NUM, in NUM)
-
-=item B<pow>(out NUM, in NUM, in INT)
-
-=item B<pow>(invar PMC, invar PMC, invar PMC)
-
-=item B<pow>(invar PMC, invar PMC, in INT)
-
-=item B<pow>(invar PMC, invar PMC, in NUM)
-
-Set $1 to $2 raised to the power $3.
-
-=cut
-
-inline op pow(out NUM, in NUM, in NUM) :base_core {
- $1 = pow((FLOATVAL)$2, (FLOATVAL)$3);
-}
-
-inline op pow(invar PMC, invar PMC, invar PMC) :base_core {
- const FLOATVAL a = VTABLE_get_number(interp, $2);
- const FLOATVAL b = VTABLE_get_number(interp, $3);
- const FLOATVAL c = pow(a, b);
- if (PMC_IS_NULL($1))
- $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
- else
- $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
- VTABLE_set_number_native(interp, $1, c);
-}
-
-inline op pow(invar PMC, invar PMC, in INT) :base_core {
- const FLOATVAL a = VTABLE_get_number(interp, $2);
- const FLOATVAL b = (FLOATVAL)$3;
- const FLOATVAL c = pow(a, b);
- if (PMC_IS_NULL($1))
- $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
- else
- $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
- VTABLE_set_number_native(interp, $1, c);
-}
-
-inline op pow(invar PMC, invar PMC, in NUM) :base_core {
- const FLOATVAL a = VTABLE_get_number(interp, $2);
- const FLOATVAL c = pow(a, $3);
- if (PMC_IS_NULL($1))
- $1 = Parrot_pmc_new(interp, Parrot_get_ctx_HLL_type(interp, enum_class_Float));
- else
- $1 = Parrot_pmc_new(interp, $1->vtable->base_type);
- VTABLE_set_number_native(interp, $1, c);
-}
-
-inline op pow(out NUM, in NUM, in INT) :base_core {
- FLOATVAL n2 = $2;
- FLOATVAL res = 1.0;
- INTVAL e = $3;
- int s = 1;
- if (e != 0) {
- if (e < 0) {
- s = -1;
- e = -e;
- }
- }
- while (e) {
- if (e & 1) {
- res *= n2;
- }
- n2 *= n2;
- e >>= 1;
- }
- if (s < 0) {
- res = 1.0/res;
- }
- $1 = res;
-}
-
-########################################
-
=item B<sub>(inout INT, in INT)
=item B<sub>(inout NUM, in NUM)
@@ -945,228 +726,6 @@
=cut
-
-
-###############################################################################
-
-=head2 Transcendental mathematical operations
-
-These operations perform various transcendental operations such as logarithmics
-and trigonometrics.
-
-=over 4
-
-=cut
-
-########################################
-
-=item B<acos>(out NUM, in NUM)
-
-Set $1 to the arc cosine (in radians) of $2.
-
-=cut
-
-inline op acos(out NUM, in NUM) :base_math {
- $1 = acos((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<asec>(out NUM, in NUM)
-
-Set $1 to the arc secant (in radians) of $2.
-
-=cut
-
-inline op asec(out NUM, in NUM) :base_math {
- $1 = acos(((FLOATVAL)1) / ((FLOATVAL)$2));
-}
-
-########################################
-
-
-=item B<asin>(out NUM, in NUM)
-
-Set $1 to the arc sine (in radians) of $2.
-
-=cut
-
-inline op asin(out NUM, in NUM) :base_math {
- $1 = asin((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<atan>(out NUM, in NUM)
-
-=item B<atan>(out NUM, in NUM, in NUM)
-
-The two-argument versions set $1 to the arc tangent (in radians) of $2.
-
-The three-argument versions set $1 to the arc tangent (in radians) of
-$2 / $3, taking account of the signs of the arguments in determining the
-quadrant of the result.
-
-=cut
-
-inline op atan(out NUM, in NUM) :base_math {
- $1 = atan((FLOATVAL)$2);
-}
-
-inline op atan(out NUM, in NUM, in NUM) :base_math {
- $1 = atan2((FLOATVAL)$2, (FLOATVAL)$3);
-}
-
-########################################
-
-=item B<cos>(out NUM, in NUM)
-
-Set $1 to the cosine of $2 (given in radians).
-
-=cut
-
-inline op cos(out NUM, in NUM) :base_math {
- $1 = cos((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<cosh>(out NUM, in NUM)
-
-Set $1 to the hyperbolic cosine of $2 (given in radians).
-
-=cut
-
-inline op cosh(out NUM, in NUM) :base_math {
- $1 = cosh((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<exp>(out NUM, in NUM)
-
-Set $1 to I<e> raised to the power $2. I<e> is the base of the natural
-logarithm.
-
-=cut
-
-inline op exp(out NUM, in NUM) :base_math {
- $1 = exp((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<ln>(out NUM, in NUM)
-
-Set $1 to the natural (base I<e>) logarithm of $2.
-
-=cut
-
-inline op ln(out NUM, in NUM) :base_math {
- $1 = log((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<log10>(out NUM, in NUM)
-
-Set $1 to the base 10 logarithm of $2.
-
-=cut
-
-inline op log10(out NUM, in NUM) :base_math {
- $1 = log10((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<log2>(out NUM, in NUM)
-
-Set $1 to the base 2 logarithm of $2.
-
-=cut
-
-op log2(out NUM, in NUM) :base_math {
- FLOATVAL temp = log((FLOATVAL)2.0);
- $1 = log((FLOATVAL)$2) / temp;
-}
-
-########################################
-
-=item B<sec>(out NUM, in NUM)
-
-Set $1 to the secant of $2 (given in radians).
-
-=cut
-
-inline op sec(out NUM, in NUM) :base_math {
- $1 = ((FLOATVAL)1) / cos((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<sech>(out NUM, in NUM)
-
-Set $1 to the hyperbolic secant of $2 (given in radians).
-
-=cut
-
-inline op sech(out NUM, in NUM) :base_math {
- $1 = ((FLOATVAL)1) / cosh((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<sin>(out NUM, in NUM)
-
-Set $1 to the sine of $2 (given in radians).
-
-=cut
-
-inline op sin(out NUM, in NUM) :base_math {
- $1 = sin((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<sinh>(out NUM, in NUM)
-
-Set $1 to the hyperbolic sine of $2 (given in radians).
-
-=cut
-
-inline op sinh(out NUM, in NUM) :base_math {
- $1 = sinh((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<tan>(out NUM, in NUM)
-
-Set $1 to the tangent of $2 (given in radians).
-
-=cut
-
-inline op tan(out NUM, in NUM) :base_math {
- $1 = tan((FLOATVAL)$2);
-}
-
-########################################
-
-=item B<tanh>(out NUM, in NUM)
-
-Set $1 to the hyperbolic tangent of $2 (given in radians).
-
-=cut
-
-inline op tanh(out NUM, in NUM) :base_math {
- $1 = tanh((FLOATVAL)$2);
-}
-
-=back
-
-=cut
-
###############################################################################
=head1 COPYRIGHT
Modified: branches/gsoc_threads/src/ops/object.ops
==============================================================================
--- branches/gsoc_threads/src/ops/object.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/ops/object.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -14,6 +14,9 @@
Parrot's library of object ops
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
=over 4
=cut
@@ -56,6 +59,8 @@
PMC * const signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
if (PMC_IS_NULL(method_pmc)) {
PMC * const _class = VTABLE_get_class(interp, object);
if (PMC_IS_NULL(_class)) {
@@ -85,6 +90,8 @@
PMC * signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
if (!PMC_IS_NULL(signature))
Parrot_pcc_set_object(interp, signature, $1);
interp->current_cont = NEED_CONTINUATION;
@@ -103,6 +110,7 @@
PMC * signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
if (PMC_IS_NULL(method_pmc)) {
dest = Parrot_ex_throw_from_op_args(interp, next, EXCEPTION_METHOD_NOT_FOUND,
@@ -127,6 +135,8 @@
PMC * signature = Parrot_pcc_get_signature(interp,
CURRENT_CONTEXT(interp));
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), next);
+
if (!PMC_IS_NULL(signature))
Parrot_pcc_set_object(interp, signature, object);
interp->current_cont = $3;
Deleted: branches/gsoc_threads/src/ops/ops.num
==============================================================================
--- branches/gsoc_threads/src/ops/ops.num Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,1224 +0,0 @@
-# This file provides opcode name->number mapping, so we can nail down
-# the op numbers for the core opcodes in a particular version of the
-# bytecode and provide backward-compatibility for bytecode.
-#
-# The format of this file is simple:
-#
-# opcode_name (whitespace) opcode_number
-#
-# The opcode name is the full and complete name of the
-# opcode--i.e. for the "add N1, N2, N3" op the name is add_n_n_n, not
-# add.
-#
-# The numbering of opcodes whose names are *not* in this file begins
-# immediately after the highest-numbered opcode in this file,
-# regardless of what order it is found in. There should be *no* holes
-# in the numbering!
-
-# Please note that only opcodes from experimental.ops are included
-# in the core.pm, if they are missing here.
-
-# Note that end must always be op 0.
-end 0
-# the following ops are enums in oplib.h
-noop 1
-check_events 2
-check_events__ 3
-wrapper__ 4
-###DYNAMIC### other ops
-load_bytecode_s 5
-load_bytecode_sc 6
-load_language_s 7
-load_language_sc 8
-branch_i 9
-branch_ic 10
-local_branch_p_i 11
-local_branch_p_ic 12
-local_return_p 13
-jump_i 14
-jump_ic 15
-enternative 16
-if_i_ic 17
-if_n_ic 18
-if_s_ic 19
-if_p_ic 20
-unless_i_ic 21
-unless_n_ic 22
-unless_s_ic 23
-unless_p_ic 24
-invokecc_p 25
-invoke_p_p 26
-yield 27
-tailcall_p 28
-returncc 29
-capture_lex_p 30
-newclosure_p_p 31
-set_args_pc 32
-get_params_pc 33
-set_returns_pc 34
-get_results_pc 35
-set_result_info_p 36
-set_result_info_pc 37
-result_info_p 38
-set_addr_i_ic 39
-set_addr_p_ic 40
-set_addr_p_i 41
-get_addr_i_p 42
-schedule_p 43
-addhandler_p 44
-push_eh_ic 45
-push_eh_p 46
-pop_eh 47
-throw_p 48
-throw_p_p 49
-rethrow_p 50
-count_eh_i 51
-die_s 52
-die_sc 53
-die_p 54
-die_pc 55
-die_i_i 56
-die_ic_i 57
-die_i_ic 58
-die_ic_ic 59
-exit_i 60
-exit_ic 61
-debug_i 62
-debug_ic 63
-bounds_i 64
-bounds_ic 65
-profile_i 66
-profile_ic 67
-trace_i 68
-trace_ic 69
-gc_debug_i 70
-gc_debug_ic 71
-interpinfo_i_i 72
-interpinfo_i_ic 73
-interpinfo_p_i 74
-interpinfo_p_ic 75
-interpinfo_s_i 76
-interpinfo_s_ic 77
-warningson_i 78
-warningson_ic 79
-warningsoff_i 80
-warningsoff_ic 81
-errorson_i 82
-errorson_ic 83
-errorsoff_i 84
-errorsoff_ic 85
-runinterp_p_i 86
-runinterp_p_ic 87
-getinterp_p 88
-sweep_ic 89
-collect 90
-sweepoff 91
-sweepon 92
-collectoff 93
-collecton 94
-needs_destroy_p 95
-loadlib_p_s 96
-loadlib_p_sc 97
-loadlib_p_s_p 98
-loadlib_p_sc_p 99
-loadlib_p_s_pc 100
-loadlib_p_sc_pc 101
-dlfunc_p_p_s_s 102
-dlfunc_p_p_sc_s 103
-dlfunc_p_p_s_sc 104
-dlfunc_p_p_sc_sc 105
-dlvar_p_p_s 106
-dlvar_p_p_sc 107
-compreg_s_p 108
-compreg_sc_p 109
-compreg_p_s 110
-compreg_p_sc 111
-new_callback_p_p_p_s 112
-new_callback_p_p_p_sc 113
-annotations_p 114
-annotations_p_s 115
-annotations_p_sc 116
-band_i_i 117
-band_i_ic 118
-band_p_i 119
-band_p_ic 120
-band_p_p 121
-band_i_i_i 122
-band_i_ic_i 123
-band_i_i_ic 124
-band_p_p_i 125
-band_p_p_ic 126
-band_p_p_p 127
-bands_p_s 128
-bands_p_sc 129
-bands_p_p 130
-bands_s_s_s 131
-bands_s_sc_s 132
-bands_s_s_sc 133
-bands_p_p_s 134
-bands_p_p_sc 135
-bands_p_p_p 136
-bnot_i 137
-bnot_i_i 138
-bnot_p 139
-bnot_p_p 140
-bnots_s_s 141
-bnots_s_sc 142
-bnots_p 143
-bnots_p_p 144
-bor_i_i 145
-bor_i_ic 146
-bor_p_i 147
-bor_p_ic 148
-bor_p_p 149
-bor_i_i_i 150
-bor_i_ic_i 151
-bor_i_i_ic 152
-bor_p_p_i 153
-bor_p_p_ic 154
-bor_p_p_p 155
-bors_p_s 156
-bors_p_sc 157
-bors_p_p 158
-bors_s_s_s 159
-bors_s_sc_s 160
-bors_s_s_sc 161
-bors_p_p_s 162
-bors_p_p_sc 163
-bors_p_p_p 164
-shl_i_i 165
-shl_i_ic 166
-shl_p_i 167
-shl_p_ic 168
-shl_p_p 169
-shl_i_i_i 170
-shl_i_ic_i 171
-shl_i_i_ic 172
-shl_p_p_i 173
-shl_p_p_ic 174
-shl_p_p_p 175
-shr_i_i 176
-shr_i_ic 177
-shr_p_i 178
-shr_p_ic 179
-shr_p_p 180
-shr_i_i_i 181
-shr_i_ic_i 182
-shr_i_i_ic 183
-shr_p_p_i 184
-shr_p_p_ic 185
-shr_p_p_p 186
-lsr_i_i 187
-lsr_i_ic 188
-lsr_p_i 189
-lsr_p_ic 190
-lsr_p_p 191
-lsr_i_i_i 192
-lsr_i_ic_i 193
-lsr_i_i_ic 194
-lsr_p_p_i 195
-lsr_p_p_ic 196
-lsr_p_p_p 197
-rot_i_i_i_ic 198
-rot_i_ic_i_ic 199
-rot_i_i_ic_ic 200
-bxor_i_i 201
-bxor_i_ic 202
-bxor_p_i 203
-bxor_p_ic 204
-bxor_p_p 205
-bxor_i_i_i 206
-bxor_i_ic_i 207
-bxor_i_i_ic 208
-bxor_p_p_i 209
-bxor_p_p_ic 210
-bxor_p_p_p 211
-bxors_p_s 212
-bxors_p_sc 213
-bxors_p_p 214
-bxors_s_s_s 215
-bxors_s_sc_s 216
-bxors_s_s_sc 217
-bxors_p_p_s 218
-bxors_p_p_sc 219
-bxors_p_p_p 220
-eq_i_i_ic 221
-eq_ic_i_ic 222
-eq_i_ic_ic 223
-eq_n_n_ic 224
-eq_nc_n_ic 225
-eq_n_nc_ic 226
-eq_s_s_ic 227
-eq_sc_s_ic 228
-eq_s_sc_ic 229
-eq_p_p_ic 230
-eq_p_i_ic 231
-eq_p_ic_ic 232
-eq_p_n_ic 233
-eq_p_nc_ic 234
-eq_p_s_ic 235
-eq_p_sc_ic 236
-eq_str_p_p_ic 237
-eq_num_p_p_ic 238
-eq_addr_s_s_ic 239
-eq_addr_sc_s_ic 240
-eq_addr_s_sc_ic 241
-eq_addr_sc_sc_ic 242
-eq_addr_p_p_ic 243
-ne_i_i_ic 244
-ne_ic_i_ic 245
-ne_i_ic_ic 246
-ne_n_n_ic 247
-ne_nc_n_ic 248
-ne_n_nc_ic 249
-ne_s_s_ic 250
-ne_sc_s_ic 251
-ne_s_sc_ic 252
-ne_p_p_ic 253
-ne_p_i_ic 254
-ne_p_ic_ic 255
-ne_p_n_ic 256
-ne_p_nc_ic 257
-ne_p_s_ic 258
-ne_p_sc_ic 259
-ne_str_p_p_ic 260
-ne_num_p_p_ic 261
-ne_addr_s_s_ic 262
-ne_addr_sc_s_ic 263
-ne_addr_s_sc_ic 264
-ne_addr_sc_sc_ic 265
-ne_addr_p_p_ic 266
-lt_i_i_ic 267
-lt_ic_i_ic 268
-lt_i_ic_ic 269
-lt_n_n_ic 270
-lt_nc_n_ic 271
-lt_n_nc_ic 272
-lt_s_s_ic 273
-lt_sc_s_ic 274
-lt_s_sc_ic 275
-lt_p_p_ic 276
-lt_p_i_ic 277
-lt_p_ic_ic 278
-lt_p_n_ic 279
-lt_p_nc_ic 280
-lt_p_s_ic 281
-lt_p_sc_ic 282
-lt_str_p_p_ic 283
-lt_num_p_p_ic 284
-le_i_i_ic 285
-le_ic_i_ic 286
-le_i_ic_ic 287
-le_n_n_ic 288
-le_nc_n_ic 289
-le_n_nc_ic 290
-le_s_s_ic 291
-le_sc_s_ic 292
-le_s_sc_ic 293
-le_p_p_ic 294
-le_p_i_ic 295
-le_p_ic_ic 296
-le_p_n_ic 297
-le_p_nc_ic 298
-le_p_s_ic 299
-le_p_sc_ic 300
-le_str_p_p_ic 301
-le_num_p_p_ic 302
-gt_p_p_ic 303
-gt_p_i_ic 304
-gt_p_ic_ic 305
-gt_p_n_ic 306
-gt_p_nc_ic 307
-gt_p_s_ic 308
-gt_p_sc_ic 309
-gt_str_p_p_ic 310
-gt_num_p_p_ic 311
-ge_p_p_ic 312
-ge_p_i_ic 313
-ge_p_ic_ic 314
-ge_p_n_ic 315
-ge_p_nc_ic 316
-ge_p_s_ic 317
-ge_p_sc_ic 318
-ge_str_p_p_ic 319
-ge_num_p_p_ic 320
-if_null_p_ic 321
-if_null_s_ic 322
-unless_null_p_ic 323
-unless_null_s_ic 324
-cmp_i_i_i 325
-cmp_i_ic_i 326
-cmp_i_i_ic 327
-cmp_i_n_n 328
-cmp_i_nc_n 329
-cmp_i_n_nc 330
-cmp_i_s_s 331
-cmp_i_sc_s 332
-cmp_i_s_sc 333
-cmp_i_p_p 334
-cmp_i_p_i 335
-cmp_i_p_ic 336
-cmp_i_p_n 337
-cmp_i_p_nc 338
-cmp_i_p_s 339
-cmp_i_p_sc 340
-cmp_str_i_p_p 341
-cmp_num_i_p_p 342
-cmp_pmc_p_p_p 343
-issame_i_p_p 344
-issame_i_s_s 345
-issame_i_sc_s 346
-issame_i_s_sc 347
-issame_i_sc_sc 348
-isntsame_i_p_p 349
-isntsame_i_s_s 350
-isntsame_i_sc_s 351
-isntsame_i_s_sc 352
-isntsame_i_sc_sc 353
-istrue_i_p 354
-isfalse_i_p 355
-isnull_i_p 356
-isnull_i_pc 357
-isnull_i_s 358
-isnull_i_sc 359
-isgt_i_p_p 360
-isge_i_p_p 361
-isle_i_i_i 362
-isle_i_ic_i 363
-isle_i_i_ic 364
-isle_i_n_n 365
-isle_i_nc_n 366
-isle_i_n_nc 367
-isle_i_s_s 368
-isle_i_sc_s 369
-isle_i_s_sc 370
-isle_i_p_p 371
-islt_i_i_i 372
-islt_i_ic_i 373
-islt_i_i_ic 374
-islt_i_n_n 375
-islt_i_nc_n 376
-islt_i_n_nc 377
-islt_i_s_s 378
-islt_i_sc_s 379
-islt_i_s_sc 380
-islt_i_p_p 381
-iseq_i_i_i 382
-iseq_i_ic_i 383
-iseq_i_i_ic 384
-iseq_i_n_n 385
-iseq_i_nc_n 386
-iseq_i_n_nc 387
-iseq_i_s_s 388
-iseq_i_sc_s 389
-iseq_i_s_sc 390
-iseq_i_p_p 391
-isne_i_i_i 392
-isne_i_ic_i 393
-isne_i_i_ic 394
-isne_i_n_n 395
-isne_i_nc_n 396
-isne_i_n_nc 397
-isne_i_s_s 398
-isne_i_sc_s 399
-isne_i_s_sc 400
-isne_i_p_p 401
-and_i_i_i 402
-and_i_ic_i 403
-and_i_i_ic 404
-and_p_p_p 405
-not_i 406
-not_i_i 407
-not_p 408
-not_p_p 409
-or_i_i_i 410
-or_i_ic_i 411
-or_i_i_ic 412
-or_p_p_p 413
-xor_i_i_i 414
-xor_i_ic_i 415
-xor_i_i_ic 416
-xor_p_p_p 417
-debug_init 418
-debug_load_sc 419
-debug_break 420
-debug_print 421
-backtrace 422
-getline_i 423
-getfile_s 424
-close_p 425
-fdopen_p_i_s 426
-fdopen_p_ic_s 427
-fdopen_p_i_sc 428
-fdopen_p_ic_sc 429
-getstdin_p 430
-getstdout_p 431
-getstderr_p 432
-setstdin_p 433
-setstdout_p 434
-setstderr_p 435
-open_p_s_s 436
-open_p_sc_s 437
-open_p_s_sc 438
-open_p_sc_sc 439
-open_p_s 440
-open_p_sc 441
-print_i 442
-print_ic 443
-print_n 444
-print_nc 445
-print_s 446
-print_sc 447
-print_p 448
-say_i 449
-say_ic 450
-say_n 451
-say_nc 452
-say_s 453
-say_sc 454
-say_p 455
-printerr_i 456
-printerr_ic 457
-printerr_n 458
-printerr_nc 459
-printerr_s 460
-printerr_sc 461
-printerr_p 462
-print_p_i 463
-print_p_ic 464
-print_p_n 465
-print_p_nc 466
-print_p_s 467
-print_p_sc 468
-print_p_p 469
-read_s_i 470
-read_s_ic 471
-read_s_p_i 472
-read_s_p_ic 473
-readline_s_p 474
-peek_s 475
-peek_s_p 476
-stat_i_s_i 477
-stat_i_sc_i 478
-stat_i_s_ic 479
-stat_i_sc_ic 480
-stat_i_i_i 481
-stat_i_ic_i 482
-stat_i_i_ic 483
-stat_i_ic_ic 484
-seek_p_i_i 485
-seek_p_ic_i 486
-seek_p_i_ic 487
-seek_p_ic_ic 488
-seek_p_i_i_i 489
-seek_p_ic_i_i 490
-seek_p_i_ic_i 491
-seek_p_ic_ic_i 492
-seek_p_i_i_ic 493
-seek_p_ic_i_ic 494
-seek_p_i_ic_ic 495
-seek_p_ic_ic_ic 496
-tell_i_p 497
-tell_i_i_p 498
-abs_i 499
-abs_n 500
-abs_i_i 501
-abs_n_n 502
-abs_p 503
-abs_p_p 504
-add_i_i 505
-add_i_ic 506
-add_n_n 507
-add_n_nc 508
-add_p_p 509
-add_p_i 510
-add_p_ic 511
-add_p_n 512
-add_p_nc 513
-add_i_i_i 514
-add_i_ic_i 515
-add_i_i_ic 516
-add_n_n_n 517
-add_n_nc_n 518
-add_n_n_nc 519
-add_p_p_p 520
-add_p_p_i 521
-add_p_p_ic 522
-add_p_p_n 523
-add_p_p_nc 524
-cmod_i_i_i 525
-cmod_i_ic_i 526
-cmod_i_i_ic 527
-cmod_p_p_i 528
-cmod_p_p_ic 529
-cmod_p_p_p 530
-cmod_n_n_n 531
-cmod_n_nc_n 532
-cmod_n_n_nc 533
-cmod_p_p_n 534
-cmod_p_p_nc 535
-dec_i 536
-dec_n 537
-dec_p 538
-div_i_i 539
-div_i_ic 540
-div_n_n 541
-div_n_nc 542
-div_p_p 543
-div_p_i 544
-div_p_ic 545
-div_p_n 546
-div_p_nc 547
-div_i_i_i 548
-div_i_ic_i 549
-div_i_i_ic 550
-div_i_ic_ic 551
-div_n_n_n 552
-div_n_nc_n 553
-div_n_n_nc 554
-div_n_nc_nc 555
-div_p_p_p 556
-div_p_p_i 557
-div_p_p_ic 558
-div_p_p_n 559
-div_p_p_nc 560
-fdiv_i_i 561
-fdiv_i_ic 562
-fdiv_n_n 563
-fdiv_n_nc 564
-fdiv_p_p 565
-fdiv_p_i 566
-fdiv_p_ic 567
-fdiv_p_n 568
-fdiv_p_nc 569
-fdiv_i_i_i 570
-fdiv_i_ic_i 571
-fdiv_i_i_ic 572
-fdiv_n_n_n 573
-fdiv_n_nc_n 574
-fdiv_n_n_nc 575
-fdiv_p_p_p 576
-fdiv_p_p_i 577
-fdiv_p_p_ic 578
-fdiv_p_p_n 579
-fdiv_p_p_nc 580
-ceil_n 581
-ceil_i_n 582
-ceil_n_n 583
-floor_n 584
-floor_i_n 585
-floor_n_n 586
-inc_i 587
-inc_n 588
-inc_p 589
-mod_i_i 590
-mod_i_ic 591
-mod_n_n 592
-mod_n_nc 593
-mod_p_p 594
-mod_p_i 595
-mod_p_ic 596
-mod_p_n 597
-mod_p_nc 598
-mod_i_i_i 599
-mod_i_ic_i 600
-mod_i_i_ic 601
-mod_n_n_n 602
-mod_n_nc_n 603
-mod_n_n_nc 604
-mod_p_p_p 605
-mod_p_p_i 606
-mod_p_p_ic 607
-mod_p_p_n 608
-mod_p_p_nc 609
-mul_i_i 610
-mul_i_ic 611
-mul_n_n 612
-mul_n_nc 613
-mul_p_p 614
-mul_p_i 615
-mul_p_ic 616
-mul_p_n 617
-mul_p_nc 618
-mul_i_i_i 619
-mul_i_ic_i 620
-mul_i_i_ic 621
-mul_n_n_n 622
-mul_n_nc_n 623
-mul_n_n_nc 624
-mul_p_p_p 625
-mul_p_p_i 626
-mul_p_p_ic 627
-mul_p_p_n 628
-mul_p_p_nc 629
-neg_i 630
-neg_n 631
-neg_p 632
-neg_i_i 633
-neg_n_n 634
-neg_p_p 635
-pow_n_n_n 636
-pow_n_nc_n 637
-pow_n_n_nc 638
-pow_p_p_p 639
-pow_p_p_i 640
-pow_p_p_ic 641
-pow_p_p_n 642
-pow_p_p_nc 643
-pow_n_n_i 644
-pow_n_nc_i 645
-pow_n_n_ic 646
-pow_n_nc_ic 647
-sub_i_i 648
-sub_i_ic 649
-sub_n_n 650
-sub_n_nc 651
-sub_p_p 652
-sub_p_i 653
-sub_p_ic 654
-sub_p_n 655
-sub_p_nc 656
-sub_i_i_i 657
-sub_i_ic_i 658
-sub_i_i_ic 659
-sub_n_n_n 660
-sub_n_nc_n 661
-sub_n_n_nc 662
-sub_p_p_p 663
-sub_p_p_i 664
-sub_p_p_ic 665
-sub_p_p_n 666
-sub_p_p_nc 667
-sqrt_n_n 668
-acos_n_n 669
-asec_n_n 670
-asin_n_n 671
-atan_n_n 672
-atan_n_n_n 673
-atan_n_nc_n 674
-atan_n_n_nc 675
-cos_n_n 676
-cosh_n_n 677
-exp_n_n 678
-ln_n_n 679
-log10_n_n 680
-log2_n_n 681
-sec_n_n 682
-sech_n_n 683
-sin_n_n 684
-sinh_n_n 685
-tan_n_n 686
-tanh_n_n 687
-callmethodcc_p_s 688
-callmethodcc_p_sc 689
-callmethodcc_p_p 690
-callmethod_p_s_p 691
-callmethod_p_sc_p 692
-callmethod_p_p_p 693
-tailcallmethod_p_s 694
-tailcallmethod_p_sc 695
-tailcallmethod_p_p 696
-addmethod_p_s_p 697
-addmethod_p_sc_p 698
-can_i_p_s 699
-can_i_p_sc 700
-does_i_p_s 701
-does_i_p_sc 702
-does_i_p_p 703
-does_i_p_pc 704
-isa_i_p_s 705
-isa_i_p_sc 706
-isa_i_p_p 707
-isa_i_p_pc 708
-newclass_p_s 709
-newclass_p_sc 710
-newclass_p_p 711
-newclass_p_pc 712
-subclass_p_p 713
-subclass_p_pc 714
-subclass_p_p_s 715
-subclass_p_pc_s 716
-subclass_p_p_sc 717
-subclass_p_pc_sc 718
-subclass_p_p_p 719
-subclass_p_pc_p 720
-subclass_p_p_pc 721
-subclass_p_pc_pc 722
-subclass_p_s 723
-subclass_p_sc 724
-subclass_p_s_s 725
-subclass_p_sc_s 726
-subclass_p_s_sc 727
-subclass_p_sc_sc 728
-subclass_p_s_p 729
-subclass_p_sc_p 730
-subclass_p_s_pc 731
-subclass_p_sc_pc 732
-get_class_p_s 733
-get_class_p_sc 734
-get_class_p_p 735
-get_class_p_pc 736
-class_p_p 737
-addparent_p_p 738
-removeparent_p_p 739
-addrole_p_p 740
-addattribute_p_s 741
-addattribute_p_sc 742
-removeattribute_p_s 743
-removeattribute_p_sc 744
-getattribute_p_p_s 745
-getattribute_p_p_sc 746
-getattribute_p_p_p_s 747
-getattribute_p_p_pc_s 748
-getattribute_p_p_p_sc 749
-getattribute_p_p_pc_sc 750
-setattribute_p_s_p 751
-setattribute_p_sc_p 752
-setattribute_p_p_s_p 753
-setattribute_p_pc_s_p 754
-setattribute_p_p_sc_p 755
-setattribute_p_pc_sc_p 756
-inspect_p_p 757
-inspect_p_pc 758
-inspect_p_p_s 759
-inspect_p_pc_s 760
-inspect_p_p_sc 761
-inspect_p_pc_sc 762
-new_p_s 763
-new_p_sc 764
-new_p_s_p 765
-new_p_sc_p 766
-new_p_s_pc 767
-new_p_sc_pc 768
-new_p_p 769
-new_p_pc 770
-new_p_p_p 771
-new_p_pc_p 772
-new_p_p_pc 773
-new_p_pc_pc 774
-root_new_p_p 775
-root_new_p_pc 776
-root_new_p_p_p 777
-root_new_p_pc_p 778
-root_new_p_p_pc 779
-root_new_p_pc_pc 780
-typeof_s_p 781
-typeof_p_p 782
-get_repr_s_p 783
-find_method_p_p_s 784
-find_method_p_p_sc 785
-defined_i_p 786
-defined_i_p_ki 787
-defined_i_p_kic 788
-defined_i_p_k 789
-defined_i_p_kc 790
-exists_i_p_ki 791
-exists_i_p_kic 792
-exists_i_p_k 793
-exists_i_p_kc 794
-delete_p_k 795
-delete_p_kc 796
-delete_p_ki 797
-delete_p_kic 798
-elements_i_p 799
-push_p_i 800
-push_p_ic 801
-push_p_n 802
-push_p_nc 803
-push_p_s 804
-push_p_sc 805
-push_p_p 806
-pop_i_p 807
-pop_n_p 808
-pop_s_p 809
-pop_p_p 810
-unshift_p_i 811
-unshift_p_ic 812
-unshift_p_n 813
-unshift_p_nc 814
-unshift_p_s 815
-unshift_p_sc 816
-unshift_p_p 817
-shift_i_p 818
-shift_n_p 819
-shift_s_p 820
-shift_p_p 821
-splice_p_p_i_i 822
-splice_p_p_ic_i 823
-splice_p_p_i_ic 824
-splice_p_p_ic_ic 825
-setprop_p_s_p 826
-setprop_p_sc_p 827
-getprop_p_s_p 828
-getprop_p_sc_p 829
-delprop_p_s 830
-delprop_p_sc 831
-prophash_p_p 832
-freeze_s_p 833
-thaw_p_s 834
-thaw_p_sc 835
-add_multi_s_s_p 836
-add_multi_sc_s_p 837
-add_multi_s_sc_p 838
-add_multi_sc_sc_p 839
-find_multi_p_s_s 840
-find_multi_p_sc_s 841
-find_multi_p_s_sc 842
-find_multi_p_sc_sc 843
-register_p 844
-unregister_p 845
-box_p_i 846
-box_p_ic 847
-box_p_n 848
-box_p_nc 849
-box_p_s 850
-box_p_sc 851
-iter_p_p 852
-morph_p_p 853
-morph_p_pc 854
-clone_s_s 855
-clone_s_sc 856
-set_i_i 857
-set_i_ic 858
-set_i_n 859
-set_i_nc 860
-set_i_s 861
-set_i_sc 862
-set_n_n 863
-set_n_nc 864
-set_n_i 865
-set_n_ic 866
-set_n_s 867
-set_n_sc 868
-set_n_p 869
-set_s_p 870
-set_s_s 871
-set_s_sc 872
-set_s_i 873
-set_s_ic 874
-set_s_n 875
-set_s_nc 876
-set_p_pc 877
-set_p_p 878
-set_p_i 879
-set_p_ic 880
-set_p_n 881
-set_p_nc 882
-set_p_s 883
-set_p_sc 884
-set_i_p 885
-assign_p_p 886
-assign_p_i 887
-assign_p_ic 888
-assign_p_n 889
-assign_p_nc 890
-assign_p_s 891
-assign_p_sc 892
-assign_s_s 893
-assign_s_sc 894
-setref_p_p 895
-deref_p_p 896
-set_p_ki_i 897
-set_p_kic_i 898
-set_p_ki_ic 899
-set_p_kic_ic 900
-set_p_ki_n 901
-set_p_kic_n 902
-set_p_ki_nc 903
-set_p_kic_nc 904
-set_p_ki_s 905
-set_p_kic_s 906
-set_p_ki_sc 907
-set_p_kic_sc 908
-set_p_ki_p 909
-set_p_kic_p 910
-set_i_p_ki 911
-set_i_p_kic 912
-set_n_p_ki 913
-set_n_p_kic 914
-set_s_p_ki 915
-set_s_p_kic 916
-set_p_p_ki 917
-set_p_p_kic 918
-set_p_k_i 919
-set_p_kc_i 920
-set_p_k_ic 921
-set_p_kc_ic 922
-set_p_k_n 923
-set_p_kc_n 924
-set_p_k_nc 925
-set_p_kc_nc 926
-set_p_k_s 927
-set_p_kc_s 928
-set_p_k_sc 929
-set_p_kc_sc 930
-set_p_k_p 931
-set_p_kc_p 932
-set_i_p_k 933
-set_i_p_kc 934
-set_n_p_k 935
-set_n_p_kc 936
-set_s_p_k 937
-set_s_p_kc 938
-set_p_p_k 939
-set_p_p_kc 940
-clone_p_p 941
-clone_p_p_p 942
-clone_p_p_pc 943
-copy_p_p 944
-null_s 945
-null_i 946
-null_p 947
-null_n 948
-ord_i_s 949
-ord_i_sc 950
-ord_i_s_i 951
-ord_i_sc_i 952
-ord_i_s_ic 953
-ord_i_sc_ic 954
-chr_s_i 955
-chr_s_ic 956
-chopn_s_s_i 957
-chopn_s_sc_i 958
-chopn_s_s_ic 959
-chopn_s_sc_ic 960
-concat_s_s 961
-concat_s_sc 962
-concat_p_p 963
-concat_p_s 964
-concat_p_sc 965
-concat_s_s_s 966
-concat_s_sc_s 967
-concat_s_s_sc 968
-concat_p_p_s 969
-concat_p_p_sc 970
-concat_p_p_p 971
-repeat_s_s_i 972
-repeat_s_sc_i 973
-repeat_s_s_ic 974
-repeat_s_sc_ic 975
-repeat_p_p_i 976
-repeat_p_p_ic 977
-repeat_p_p_p 978
-repeat_p_i 979
-repeat_p_ic 980
-repeat_p_p 981
-length_i_s 982
-length_i_sc 983
-bytelength_i_s 984
-bytelength_i_sc 985
-pin_s 986
-unpin_s 987
-substr_s_s_i 988
-substr_s_sc_i 989
-substr_s_s_ic 990
-substr_s_sc_ic 991
-substr_s_s_i_i 992
-substr_s_sc_i_i 993
-substr_s_s_ic_i 994
-substr_s_sc_ic_i 995
-substr_s_s_i_ic 996
-substr_s_sc_i_ic 997
-substr_s_s_ic_ic 998
-substr_s_sc_ic_ic 999
-substr_s_p_i_i 1000
-substr_s_p_ic_i 1001
-substr_s_p_i_ic 1002
-substr_s_p_ic_ic 1003
-replace_s_s_i_i_s 1004
-replace_s_sc_i_i_s 1005
-replace_s_s_ic_i_s 1006
-replace_s_sc_ic_i_s 1007
-replace_s_s_i_ic_s 1008
-replace_s_sc_i_ic_s 1009
-replace_s_s_ic_ic_s 1010
-replace_s_sc_ic_ic_s 1011
-replace_s_s_i_i_sc 1012
-replace_s_sc_i_i_sc 1013
-replace_s_s_ic_i_sc 1014
-replace_s_sc_ic_i_sc 1015
-replace_s_s_i_ic_sc 1016
-replace_s_sc_i_ic_sc 1017
-replace_s_s_ic_ic_sc 1018
-replace_s_sc_ic_ic_sc 1019
-index_i_s_s 1020
-index_i_sc_s 1021
-index_i_s_sc 1022
-index_i_sc_sc 1023
-index_i_s_s_i 1024
-index_i_sc_s_i 1025
-index_i_s_sc_i 1026
-index_i_sc_sc_i 1027
-index_i_s_s_ic 1028
-index_i_sc_s_ic 1029
-index_i_s_sc_ic 1030
-index_i_sc_sc_ic 1031
-sprintf_s_s_p 1032
-sprintf_s_sc_p 1033
-sprintf_p_p_p 1034
-new_s 1035
-new_s_i 1036
-new_s_ic 1037
-stringinfo_i_s_i 1038
-stringinfo_i_sc_i 1039
-stringinfo_i_s_ic 1040
-stringinfo_i_sc_ic 1041
-upcase_s_s 1042
-upcase_s_sc 1043
-downcase_s_s 1044
-downcase_s_sc 1045
-titlecase_s_s 1046
-titlecase_s_sc 1047
-join_s_s_p 1048
-join_s_sc_p 1049
-split_p_s_s 1050
-split_p_sc_s 1051
-split_p_s_sc 1052
-split_p_sc_sc 1053
-charset_i_s 1054
-charset_i_sc 1055
-charsetname_s_i 1056
-charsetname_s_ic 1057
-find_charset_i_s 1058
-find_charset_i_sc 1059
-trans_charset_s_s_i 1060
-trans_charset_s_sc_i 1061
-trans_charset_s_s_ic 1062
-trans_charset_s_sc_ic 1063
-encoding_i_s 1064
-encoding_i_sc 1065
-encodingname_s_i 1066
-encodingname_s_ic 1067
-find_encoding_i_s 1068
-find_encoding_i_sc 1069
-trans_encoding_s_s_i 1070
-trans_encoding_s_sc_i 1071
-trans_encoding_s_s_ic 1072
-trans_encoding_s_sc_ic 1073
-is_cclass_i_i_s_i 1074
-is_cclass_i_ic_s_i 1075
-is_cclass_i_i_sc_i 1076
-is_cclass_i_ic_sc_i 1077
-is_cclass_i_i_s_ic 1078
-is_cclass_i_ic_s_ic 1079
-is_cclass_i_i_sc_ic 1080
-is_cclass_i_ic_sc_ic 1081
-find_cclass_i_i_s_i_i 1082
-find_cclass_i_ic_s_i_i 1083
-find_cclass_i_i_sc_i_i 1084
-find_cclass_i_ic_sc_i_i 1085
-find_cclass_i_i_s_ic_i 1086
-find_cclass_i_ic_s_ic_i 1087
-find_cclass_i_i_sc_ic_i 1088
-find_cclass_i_ic_sc_ic_i 1089
-find_cclass_i_i_s_i_ic 1090
-find_cclass_i_ic_s_i_ic 1091
-find_cclass_i_i_sc_i_ic 1092
-find_cclass_i_ic_sc_i_ic 1093
-find_cclass_i_i_s_ic_ic 1094
-find_cclass_i_ic_s_ic_ic 1095
-find_cclass_i_i_sc_ic_ic 1096
-find_cclass_i_ic_sc_ic_ic 1097
-find_not_cclass_i_i_s_i_i 1098
-find_not_cclass_i_ic_s_i_i 1099
-find_not_cclass_i_i_sc_i_i 1100
-find_not_cclass_i_ic_sc_i_i 1101
-find_not_cclass_i_i_s_ic_i 1102
-find_not_cclass_i_ic_s_ic_i 1103
-find_not_cclass_i_i_sc_ic_i 1104
-find_not_cclass_i_ic_sc_ic_i 1105
-find_not_cclass_i_i_s_i_ic 1106
-find_not_cclass_i_ic_s_i_ic 1107
-find_not_cclass_i_i_sc_i_ic 1108
-find_not_cclass_i_ic_sc_i_ic 1109
-find_not_cclass_i_i_s_ic_ic 1110
-find_not_cclass_i_ic_s_ic_ic 1111
-find_not_cclass_i_i_sc_ic_ic 1112
-find_not_cclass_i_ic_sc_ic_ic 1113
-escape_s_s 1114
-compose_s_s 1115
-compose_s_sc 1116
-spawnw_i_s 1117
-spawnw_i_sc 1118
-spawnw_i_p 1119
-err_i 1120
-err_s 1121
-err_s_i 1122
-err_s_ic 1123
-time_i 1124
-time_n 1125
-gmtime_s_i 1126
-gmtime_s_ic 1127
-localtime_s_i 1128
-localtime_s_ic 1129
-decodetime_p_i 1130
-decodetime_p_ic 1131
-decodelocaltime_p_i 1132
-decodelocaltime_p_ic 1133
-sysinfo_s_i 1134
-sysinfo_s_ic 1135
-sysinfo_i_i 1136
-sysinfo_i_ic 1137
-sleep_i 1138
-sleep_ic 1139
-sleep_n 1140
-sleep_nc 1141
-store_lex_s_p 1142
-store_lex_sc_p 1143
-store_dynamic_lex_s_p 1144
-store_dynamic_lex_sc_p 1145
-find_lex_p_s 1146
-find_lex_p_sc 1147
-find_dynamic_lex_p_s 1148
-find_dynamic_lex_p_sc 1149
-find_caller_lex_p_s 1150
-find_caller_lex_p_sc 1151
-get_namespace_p 1152
-get_namespace_p_p 1153
-get_namespace_p_pc 1154
-get_hll_namespace_p 1155
-get_hll_namespace_p_p 1156
-get_hll_namespace_p_pc 1157
-get_root_namespace_p 1158
-get_root_namespace_p_p 1159
-get_root_namespace_p_pc 1160
-get_global_p_s 1161
-get_global_p_sc 1162
-get_global_p_p_s 1163
-get_global_p_pc_s 1164
-get_global_p_p_sc 1165
-get_global_p_pc_sc 1166
-get_hll_global_p_s 1167
-get_hll_global_p_sc 1168
-get_hll_global_p_p_s 1169
-get_hll_global_p_pc_s 1170
-get_hll_global_p_p_sc 1171
-get_hll_global_p_pc_sc 1172
-get_root_global_p_s 1173
-get_root_global_p_sc 1174
-get_root_global_p_p_s 1175
-get_root_global_p_pc_s 1176
-get_root_global_p_p_sc 1177
-get_root_global_p_pc_sc 1178
-set_global_s_p 1179
-set_global_sc_p 1180
-set_global_p_s_p 1181
-set_global_pc_s_p 1182
-set_global_p_sc_p 1183
-set_global_pc_sc_p 1184
-set_hll_global_s_p 1185
-set_hll_global_sc_p 1186
-set_hll_global_p_s_p 1187
-set_hll_global_pc_s_p 1188
-set_hll_global_p_sc_p 1189
-set_hll_global_pc_sc_p 1190
-set_root_global_s_p 1191
-set_root_global_sc_p 1192
-set_root_global_p_s_p 1193
-set_root_global_pc_s_p 1194
-set_root_global_p_sc_p 1195
-set_root_global_pc_sc_p 1196
-find_name_p_s 1197
-find_name_p_sc 1198
-find_sub_not_null_p_s 1199
-find_sub_not_null_p_sc 1200
Modified: branches/gsoc_threads/src/ops/pmc.ops
==============================================================================
--- branches/gsoc_threads/src/ops/pmc.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/ops/pmc.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -15,6 +15,9 @@
Operations that deal with PMCs, including creation and
destruction, manipulation, and introspection.
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
=cut
###############################################################################
Modified: branches/gsoc_threads/src/ops/set.ops
==============================================================================
--- branches/gsoc_threads/src/ops/set.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/ops/set.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -11,6 +11,9 @@
These operations all set registers to various values.
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
=over 4
=cut
Modified: branches/gsoc_threads/src/ops/string.ops
==============================================================================
--- branches/gsoc_threads/src/ops/string.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/ops/string.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -12,6 +12,9 @@
Operations that work on strings, whether constructing, modifying
or examining them.
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
=over 4
=cut
Modified: branches/gsoc_threads/src/ops/sys.ops
==============================================================================
--- branches/gsoc_threads/src/ops/sys.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/ops/sys.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -11,6 +11,9 @@
Operations that allow the user to interact with the system.
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
=over 4
=cut
@@ -107,172 +110,6 @@
########################################
-=item B<gmtime>(out STR, in INT)
-
-Take the integer, which represents GMT epoch-seconds, and turn it into a
-formatted string.
-
-=item B<localtime>(out STR, in INT)
-
-Take the integer, which represents GMT epoch-seconds, and turn it into a
-formatted string. The time is adjusted to localtime before formatting.
-
-=item B<decodetime>(out PMC, in INT)
-
-Take the integer, which represents GMT epoch-seconds, and return an Array
-PMC which represents the decoded time. The array elements are
-(include "tm.pasm" for the constants):
-
-=over 4
-
-=item 0, .TM_SEC
-
-Seconds (0-60)
-
-=item 1, .TM_MIN
-
-Minutes (0-59)
-
-=item 2, .TM_HOUR
-
-Hours (0-23)
-
-=item 3, .TM_MDAY
-
-Day of month (1-31)
-
-=item 4, .TM_MON
-
-Month of year (1-12) (Note, B<actual> month, not month - 1)
-
-=item 5, .TM_YEAR
-
-Year (note, B<actual> year. The year 2004 comes back as 2004, not 104)
-
-=item 6, .TM_WDAY
-
-Day of week. Sunday is day 0
-
-=item 7, .TM_YDAY
-
-Day of year (0-365)
-
-=item 8, .TM_ISDST
-
-Daylight savings/summer time in effect
-
-=back
-
-Timezone name will be GMT and offset will be 0, since the time is taken and
-decoded as GMT.
-
-=item B<decodelocaltime>(out PMC, in INT)
-
-Take the passed in integer, which represents GMT epoch-seconds, and return
-an array as in decodetime. The time is first shifted to localtime before
-decoding.
-
-=cut
-
-op gmtime(out STR, in INT) {
- struct tm tm;
- const time_t t = (time_t) $2;
- char resultbuffer[26];
- Parrot_gmtime_r(&t, &tm);
- Parrot_asctime_r(&tm, resultbuffer);
- $1 = Parrot_str_new(interp, resultbuffer, 25);
-}
-
-op localtime(out STR, in INT) {
- struct tm tm;
- const time_t t = (time_t) $2;
- char resultbuffer[26];
- Parrot_localtime_r(&t, &tm);
- Parrot_asctime_r(&tm, resultbuffer);
- $1 = Parrot_str_new(interp, resultbuffer, 25);
-}
-
-op decodetime(out PMC, in INT) {
- struct tm tm;
- const time_t t = (time_t) $2;
- Parrot_gmtime_r(&t, &tm);
- $1 = tm_to_array(interp, &tm);
-}
-
-op decodelocaltime(out PMC, in INT) {
- struct tm tm;
- const time_t t = (time_t) $2;
- Parrot_localtime_r(&t, &tm);
- $1 = tm_to_array(interp, &tm);
-}
-
-########################################
-
-=item B<sysinfo>(out STR, in INT)
-
-=item B<sysinfo>(out INT, in INT)
-
-Return system information. The values it returns depends on what you
-ask. They are:
-
-=over 4
-
-=item 1 The size of a platform integer
-
-=item 2 The size of a platform float
-
-=item 3 The size of a platform pointer. (Largest possible data pointer)
-
-=item 4 The OS name
-
-This is something like "OS X", "MacOS", "Windows", or "VMS".
-
-=item 5 The OS version string
-
-This is the current (hopefully) OS Version. For OSes that have plain
-version numbers it will be the version number. For OSes that name
-their versions, it will be the version name.
-
-On HP/UX, this may be something like 11.2, while on Windows it may be
-"95", "98", "2000", "NT", "ME", or "XP".
-
-=item 6 The OS version number string
-
-On OSes that don't name themselves, this will be the same as what's
-returned in the OS version string. On OSes that I<do> name themselves,
-this will be a more specific version number. In all cases it is OS
-dependent.
-
-=item 7 The CPU architecture
-
-The name of the CPU family, such as "VAX", "Alpha", "PPC", or "x86".
-
-=item 8 The CPU model
-
-The model name of the current system's CPU. This is something like
-"EV68", "Athlon", or "Pentium III".
-
-=back
-
-Note that some of these values may be set at Parrot compile time,
-rather than at runtime, if the system has no reliable way to fetch the
-data dynamically, or if there is no way the value can change. Also,
-the value returned may be somewhat misleading--Parrot running under a
-VirtualPC window will report "Windows" as its OS and "x86" as its CPU,
-even if it's really running on an OS X system.
-
-=cut
-
-inline op sysinfo(out STR, in INT) {
- $1 = sysinfo_s(interp, $2);
-}
-
-inline op sysinfo(out INT, in INT) {
- $1 = sysinfo_i(interp, $2);
-}
-
-########################################
-
=item B<sleep>(in INT)
=item B<sleep>(in NUM)
Modified: branches/gsoc_threads/src/ops/var.ops
==============================================================================
--- branches/gsoc_threads/src/ops/var.ops Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/ops/var.ops Thu Jun 10 21:09:12 2010 (r47545)
@@ -12,6 +12,9 @@
These operations deal with both lexical and global variables,
as well as the symbol tables that contain them.
+When making changes to any ops file, run C<make bootstrap-ops> to regenerate
+all generated ops files.
+
=cut
###############################################################################
@@ -482,7 +485,9 @@
PMC *sub = Parrot_find_name_op(interp, $2, dest);
if (PMC_IS_NULL(sub)) {
- opcode_t *handler = Parrot_ex_throw_from_op_args(interp, dest,
+ opcode_t *handler;
+ Parrot_pcc_set_pc_func(interp, CURRENT_CONTEXT(interp), dest);
+ handler = Parrot_ex_throw_from_op_args(interp, dest,
EXCEPTION_GLOBAL_NOT_FOUND,
"Could not find sub %Ss", $2);
goto ADDRESS(handler);
@@ -496,7 +501,7 @@
=head1 COPYRIGHT
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
=head1 LICENSE
Modified: branches/gsoc_threads/src/packdump.c
==============================================================================
--- branches/gsoc_threads/src/packdump.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/packdump.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -379,7 +379,6 @@
for (i = 0; i < ft->fixup_count; ++i) {
Parrot_io_printf(interp, "\t#%d\n", (int) i);
switch (ft->fixups[i].type) {
- case enum_fixup_label:
case enum_fixup_sub:
Parrot_io_printf(interp,
"\ttype => %d offs => %8d name => '%s',\n",
Modified: branches/gsoc_threads/src/packfile.c
==============================================================================
--- branches/gsoc_threads/src/packfile.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/packfile.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -3331,7 +3331,6 @@
/* fixup_entry type */
++size;
switch (ft->fixups[i].type) {
- case enum_fixup_label:
case enum_fixup_sub:
size += PF_size_cstring(ft->fixups[i].name);
++size; /* offset */
@@ -3373,7 +3372,6 @@
for (i = 0; i < ft->fixup_count; ++i) {
*cursor++ = (opcode_t) ft->fixups[i].type;
switch (ft->fixups[i].type) {
- case enum_fixup_label:
case enum_fixup_sub:
cursor = PF_store_cstring(cursor, ft->fixups[i].name);
*cursor++ = ft->fixups[i].offset;
@@ -3470,7 +3468,6 @@
entry->type = PF_fetch_opcode(pf, &cursor);
switch (entry->type) {
- case enum_fixup_label:
case enum_fixup_sub:
entry->name = PF_fetch_cstring(interp, pf, &cursor);
entry->offset = PF_fetch_opcode(pf, &cursor);
@@ -4671,7 +4668,7 @@
else {
STRING *err;
PackFile_ByteCode * const cs =
- (PackFile_ByteCode *)IMCC_compile_file_s(interp,
+ (PackFile_ByteCode *)Parrot_compile_file(interp,
filename, &err);
Parrot_str_free_cstring(filename);
Modified: branches/gsoc_threads/src/packfile/pf_items.c
==============================================================================
--- branches/gsoc_threads/src/packfile/pf_items.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/packfile/pf_items.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -1216,7 +1216,10 @@
ASSERT_ARGS(PF_fetch_string)
STRING *s;
UINTVAL flags;
+ UINTVAL encoding_nr;
UINTVAL charset_nr;
+ const ENCODING *encoding;
+ const CHARSET *charset;
size_t size;
const int wordsize = pf ? pf->header->wordsize : sizeof (opcode_t);
opcode_t flag_charset_word = PF_fetch_opcode(pf, cursor);
@@ -1224,20 +1227,31 @@
if (flag_charset_word == -1)
return STRINGNULL;
- /* decode flags and charset */
+ /* decode flags, charset and encoding */
flags = (flag_charset_word & 0x1 ? PObj_constant_FLAG : 0) |
(flag_charset_word & 0x2 ? PObj_private7_FLAG : 0) ;
- charset_nr = flag_charset_word >> 8;
+ encoding_nr = (flag_charset_word >> 16);
+ charset_nr = (flag_charset_word >> 8) & 0xFF;
size = (size_t)PF_fetch_opcode(pf, cursor);
TRACE_PRINTF(("PF_fetch_string(): flags=0x%04x, ", flags));
+ TRACE_PRINTF(("encoding_nr=%ld, ", encoding_nr));
TRACE_PRINTF(("charset_nr=%ld, ", charset_nr));
TRACE_PRINTF(("size=%ld.\n", size));
- s = string_make_from_charset(interp, (const char *)*cursor,
- size, charset_nr, flags);
+ encoding = Parrot_get_encoding(interp, encoding_nr);
+ charset = Parrot_get_charset(interp, charset_nr);
+ if (!encoding)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
+ "Invalid encoding number '%d' specified", encoding_nr);
+ if (!charset)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
+ "Invalid charset number '%d' specified", charset_nr);
+
+ s = Parrot_str_new_init(interp, (const char *)*cursor, size,
+ encoding, charset, flags);
/* print only printable characters */
TRACE_PRINTF_VAL(("PF_fetch_string(): string is '%s' at 0x%x\n",
@@ -1298,8 +1312,9 @@
* see also PF_fetch_string
*/
- /* encode charset_nr and flags into the same word for a 33% savings on constant overhead */
- *cursor++ = (Parrot_charset_number_of_str(NULL, s) << 8) |
+ /* encode charset_nr, encoding_nr and flags into the same word */
+ *cursor++ = (Parrot_encoding_number_of_str(NULL, s) << 16) |
+ (Parrot_charset_number_of_str(NULL, s) << 8) |
(PObj_get_FLAGS(s) & PObj_constant_FLAG ? 0x1 : 0x0) |
(PObj_get_FLAGS(s) & PObj_private7_FLAG ? 0x2 : 0x0) ;
*cursor++ = s->bufused;
@@ -1355,7 +1370,8 @@
*/
-PARROT_PURE_FUNCTION
+PARROT_CONST_FUNCTION
+PARROT_WARN_UNUSED_RESULT
size_t
PF_size_strlen(const UINTVAL len)
{
Modified: branches/gsoc_threads/src/parrot_debugger.c
==============================================================================
--- branches/gsoc_threads/src/parrot_debugger.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/parrot_debugger.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -140,8 +140,7 @@
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
-#include "../compilers/imcc/imc.h"
-#include "../compilers/imcc/parser.h"
+#include "parrot/parrot.h"
#include "parrot/embed.h"
#include "parrot/debugger.h"
#include "parrot/runcore_api.h"
@@ -206,34 +205,13 @@
PackFile_fixup_subs(interp, PBC_MAIN, NULL);
}
else {
- void *yyscanner;
- Parrot_PackFile pf = PackFile_new(interp, 0);
- int pasm_file = 0;
-
- do_yylex_init(interp, &yyscanner);
+ STRING *errmsg = NULL;
+ Parrot_PackFile pf = PackFile_new(interp, 0);
Parrot_pbc_load(interp, pf);
-
- IMCC_push_parser_state(interp);
- IMCC_INFO(interp)->state->file = mem_sys_strdup(filename);
-
- if (!(imc_yyin_set(fopen(filename, "r"), yyscanner))) {
- IMCC_fatal_standalone(interp, EXCEPTION_PIO_ERROR,
- "Error reading source file %s.\n",
- filename);
- }
-
- if (ext && STREQ(ext, ".pasm"))
- pasm_file = 1;
-
- emit_open(interp, 1, NULL);
- IMCC_INFO(interp)->state->pasm_file = pasm_file;
- yyparse(yyscanner, interp);
- imc_compile_all_units(interp);
-
- imc_cleanup(interp, yyscanner);
-
- fclose(imc_yyin_get(yyscanner));
+ Parrot_compile_file(interp, filename, &errmsg);
+ if (errmsg)
+ Parrot_ex_throw_from_c_args(interp, NULL, 1, "%S", errmsg);
PackFile_fixup_subs(interp, PBC_POSTCOMP, NULL);
/* load the source for debugger list */
Modified: branches/gsoc_threads/src/pbc_merge.c
==============================================================================
--- branches/gsoc_threads/src/pbc_merge.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pbc_merge.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -523,9 +523,6 @@
/* Set new offset and bytecode pointer. */
switch (copy->type) {
- case enum_fixup_label:
- copy->offset = cur_entry->offset + inputs[i]->code_start;
- break;
case enum_fixup_sub:
copy->offset = cur_entry->offset + inputs[i]->const_start;
break;
Modified: branches/gsoc_threads/src/pmc.c
==============================================================================
--- branches/gsoc_threads/src/pmc.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -80,6 +80,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_HOT
INTVAL
@@ -187,8 +188,7 @@
PARROT_CANNOT_RETURN_NULL
PARROT_IGNORABLE_RESULT
PMC *
-Parrot_pmc_reuse(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type,
- SHIM(UINTVAL flags))
+Parrot_pmc_reuse(PARROT_INTERP, ARGIN(PMC *pmc), INTVAL new_type, SHIM(UINTVAL flags))
{
ASSERT_ARGS(Parrot_pmc_reuse)
pmc = Parrot_pmc_reuse_noinit(interp, pmc, new_type);
@@ -292,8 +292,7 @@
PARROT_CANNOT_RETURN_NULL
PARROT_IGNORABLE_RESULT
PMC *
-Parrot_pmc_reuse_by_class(PARROT_INTERP, ARGMOD(PMC *pmc), ARGIN(PMC *class_),
- UINTVAL flags)
+Parrot_pmc_reuse_by_class(PARROT_INTERP, ARGMOD(PMC *pmc), ARGIN(PMC *class_), UINTVAL flags)
{
ASSERT_ARGS(Parrot_pmc_reuse_by_class)
const INTVAL new_type = PARROT_CLASS(class_)->id;
@@ -495,6 +494,7 @@
PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
PMC *
Parrot_pmc_new_constant_noinit(PARROT_INTERP, INTVAL base_type)
{
@@ -771,7 +771,7 @@
Parrot_pmc_get_type_str(PARROT_INTERP, ARGIN_NULLOK(STRING *name))
{
ASSERT_ARGS(Parrot_pmc_get_type_str)
- if (!name)
+ if (STRING_IS_NULL(name))
return enum_type_undef;
else {
PMC * const classname_hash = interp->class_hash;
@@ -780,7 +780,7 @@
if (!PMC_IS_NULL(item)) {
/* nested namespace with same name */
- if (item->vtable->base_type == enum_class_NameSpace)
+ if (PMC_IS_TYPE(item, NameSpace))
return enum_type_undef;
else
return VTABLE_get_integer(interp, item);
Modified: branches/gsoc_threads/src/pmc/boolean.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/boolean.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/boolean.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2007, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -35,12 +35,8 @@
*/
VTABLE void init_pmc(PMC *value) {
- if (!PMC_IS_NULL(value)) {
- SELF.set_bool(VTABLE_get_bool(INTERP, value));
- }
- else {
- SELF.set_bool(0);
- }
+ INTVAL v = PMC_IS_NULL(value) ? (INTVAL) 0 : VTABLE_get_bool(INTERP, value);
+ SELF.set_bool(v);
}
/*
Copied: branches/gsoc_threads/src/pmc/bytebuffer.pmc (from r47544, trunk/src/pmc/bytebuffer.pmc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/src/pmc/bytebuffer.pmc Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/src/pmc/bytebuffer.pmc)
@@ -0,0 +1,353 @@
+/*
+Copyright (C) 2010, Parrot Foundation.
+$Id$
+
+=head1 NAME
+
+src/pmc/bytebuffer.pmc - A byte buffer
+
+=head1 DESCRIPTION
+
+C<ByteBuffer> provides a resizable byte buffer with random access to
+individual bytes and conversions from and to parrot strings.
+
+=cut
+
+*/
+
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_CANNOT_RETURN_NULL
+static STRING * build_string(PARROT_INTERP,
+ ARGIN(const unsigned char *content),
+ INTVAL size,
+ ARGIN_NULLOK(const CHARSET *charset),
+ ARGIN_NULLOK(const ENCODING *encoding))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static INTVAL grow_to(INTVAL position);
+#define ASSERT_ARGS_build_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(content))
+#define ASSERT_ARGS_grow_to __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
+pmclass ByteBuffer auto_attrs {
+ ATTR INTVAL allocated_size;
+ ATTR INTVAL size;
+ ATTR STRING *source;
+ ATTR unsigned char *content;
+
+/*
+
+=head2 Vtable functions
+
+=over 4
+
+=item C<void init()>
+
+Create an empty buffer
+
+=item C<void init_int()>
+
+Create a buffer of initial_size capacity.
+
+=item C<void mark()>
+
+Mark the source string if any.
+
+=item C<void destroy()>
+
+Free the buffer when destroying.
+
+=cut
+
+*/
+
+ VTABLE void init() {
+ PObj_custom_mark_destroy_SETALL(SELF);
+ }
+
+ VTABLE void init_int(INTVAL initial_size) {
+ unsigned char *content;
+ STATICSELF.init();
+ SET_ATTR_size(INTERP, SELF, initial_size);
+ SET_ATTR_allocated_size(INTERP, SELF, initial_size);
+ content = (unsigned char *)Parrot_gc_allocate_memory_chunk(INTERP, initial_size);
+ SET_ATTR_content(INTERP, SELF, content);
+ }
+
+ VTABLE void mark() {
+ STRING * source;
+ GET_ATTR_source(INTERP, SELF, source);
+ if (!STRING_IS_NULL(source))
+ Parrot_gc_mark_STRING_alive(INTERP, source);
+ }
+
+ VTABLE void destroy() {
+ INTVAL allocated_size;
+ GET_ATTR_allocated_size(INTERP, SELF, allocated_size);
+ if (allocated_size) {
+ unsigned char *content;
+ GET_ATTR_content(INTERP, SELF, content);
+ Parrot_gc_free_memory_chunk(INTERP, content);
+ }
+ }
+
+/*
+
+=item C<INTVAL elements()>
+
+Get current size.
+
+=cut
+
+*/
+
+ VTABLE INTVAL elements() {
+ INTVAL size;
+ GET_ATTR_size(INTERP, SELF, size);
+ return size;
+ }
+
+/*
+
+=item C<void set_string_native()>
+
+Reset the buffer with the content of the string.
+
+=cut
+
+*/
+
+ VTABLE void set_string_native(STRING *new_string) {
+ INTVAL allocated_size;
+ GET_ATTR_allocated_size(INTERP, SELF, allocated_size);
+ if (allocated_size) {
+ unsigned char *content;
+ GET_ATTR_content(INTERP, SELF, content);
+ Parrot_gc_free_memory_chunk(INTERP, content);
+ SET_ATTR_allocated_size(INTERP, SELF, 0);
+ }
+ SET_ATTR_source(INTERP, SELF, new_string);
+ SET_ATTR_size(INTERP, SELF, Parrot_str_byte_length(INTERP, new_string));
+ SET_ATTR_content(INTERP, SELF, (unsigned char *)new_string->strstart);
+ }
+
+/*
+
+=item C<INTVAL get_integer_keyed_int()>
+
+Get the value of the byte at position or 0 if out of bounds.
+
+=cut
+
+*/
+
+ VTABLE INTVAL get_integer_keyed_int(INTVAL position) {
+ INTVAL size;
+ unsigned char *content;
+ GET_ATTR_size(INTERP, SELF, size);
+ GET_ATTR_content(INTERP, SELF, content);
+ return (position >= 0 && position < size) ? content[position] : (INTVAL) 0;
+ }
+
+/*
+
+=item C<void set_integer_keyed_int()>
+
+Set the value of the byte at position.
+
+=cut
+
+*/
+
+ VTABLE void set_integer_keyed_int(INTVAL position, INTVAL value) {
+ unsigned char *content;
+ INTVAL size, allocated_size;
+ if (position < 0)
+ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
+ "Negative position not allowed");
+
+ GET_ATTR_allocated_size(INTERP, SELF, allocated_size);
+ if (position >= allocated_size) {
+ INTVAL newsize = grow_to(position);
+ if (allocated_size == 0) {
+ INTVAL copysize = newsize;
+ STRING * source;
+ content = (unsigned char *)Parrot_gc_allocate_memory_chunk(INTERP, newsize);
+ GET_ATTR_source(INTERP, SELF, source);
+ if (!STRING_IS_NULL(source)) {
+ INTVAL srclen = Parrot_str_byte_length(INTERP, source);
+ if (srclen < copysize)
+ copysize = srclen;
+ memcpy(content, source->strstart, copysize);
+ SET_ATTR_source(INTERP, SELF, STRINGNULL);
+ }
+ }
+ else {
+ GET_ATTR_content(INTERP, SELF, content);
+ content = (unsigned char *)
+ Parrot_gc_reallocate_memory_chunk(INTERP, content, newsize);
+ }
+
+ SET_ATTR_content(INTERP, SELF, content);
+ SET_ATTR_allocated_size(INTERP, SELF, newsize);
+ }
+ else
+ GET_ATTR_content(INTERP, SELF, content);
+
+ GET_ATTR_size(INTERP, SELF, size);
+ if (position >= size) {
+ size = position + 1;
+ SET_ATTR_size(INTERP, SELF, size);
+ }
+ content[position] = value;
+ }
+
+/*
+
+=item C<PMC *get_iter()>
+
+Return a new Iterator for this PMC.
+
+=cut
+
+*/
+
+ VTABLE PMC *get_iter() {
+ return Parrot_pmc_new_init(INTERP, enum_class_ArrayIterator, SELF);
+ }
+
+/*
+
+=back
+
+=head2 Methods
+
+=over 4
+
+=item C<get_string(string charset, string encoding)>
+
+Create a string with the buffer content and the charset and encoding
+specified.
+
+=cut
+
+*/
+
+ METHOD get_string(STRING *charsetname, STRING *encodingname) {
+ STRING *result;
+ unsigned char *content;
+ INTVAL size;
+ const CHARSET *charset = Parrot_get_charset(INTERP,
+ Parrot_charset_number(INTERP, charsetname));
+ const ENCODING *encoding = Parrot_get_encoding(INTERP,
+ Parrot_encoding_number(INTERP, encodingname));
+ GET_ATTR_content(INTERP, SELF, content);
+ GET_ATTR_size(INTERP, SELF, size);
+ result = build_string(INTERP, content, size, charset, encoding);
+ RETURN(STRING *result);
+ }
+
+/*
+
+=item C<get_string_as(string as)>
+
+Create a string with the buffer content and the same charset and encoding
+as the string argument.
+
+=cut
+
+*/
+
+ METHOD get_string_as(STRING *as :optional) {
+ STRING *result;
+ unsigned char *content;
+ INTVAL size;
+ const CHARSET* charset = STRING_IS_NULL(as) ? PARROT_DEFAULT_CHARSET : as->charset;
+ const ENCODING *encoding = STRING_IS_NULL(as) ? PARROT_DEFAULT_ENCODING : as->encoding;
+ GET_ATTR_content(INTERP, SELF, content);
+ GET_ATTR_size(INTERP, SELF, size);
+ result = build_string(INTERP, content, size, charset, encoding);
+ RETURN(STRING *result);
+ }
+
+} /* pmclass end */
+
+/*
+
+=back
+
+=head2 Auxiliar functions
+
+=over 4
+
+=item C<static INTVAL grow_to(INTVAL position)>
+
+Calculate new size enough for using position and with some margin to
+decrease the number of reallocations.
+
+=item C<static STRING * build_string(PARROT_INTERP, const unsigned char
+*content, INTVAL size, const CHARSET *charset, const ENCODING *encoding)>
+
+Build a string fro the buffer content with the charset and encoding specified.
+
+=cut
+
+*/
+
+static INTVAL
+grow_to(INTVAL position)
+{
+ ASSERT_ARGS(grow_to)
+
+ const UINTVAL blocksize = 2048;
+ UINTVAL minsize = position + 1;
+ return (INTVAL) (minsize < 64 ? 64 :
+ minsize < 256 ? 256 :
+ minsize < 1024 ? 1024 :
+ ((minsize + blocksize - 1) / blocksize) * blocksize);
+}
+
+PARROT_CANNOT_RETURN_NULL
+static STRING *
+build_string(PARROT_INTERP, ARGIN(const unsigned char *content),
+ INTVAL size,
+ ARGIN_NULLOK(const CHARSET *charset),
+ ARGIN_NULLOK(const ENCODING *encoding))
+{
+ ASSERT_ARGS(build_string)
+ STRING *result;
+ if (charset == NULL)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_ENCODING,
+ "Invalid charset");
+ if (encoding == NULL)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_INVALID_ENCODING,
+ "Invalid encoding");
+ result = Parrot_str_new_init(interp, (const char *)content, size, encoding, charset, 0);
+ if (!CHARSET_VALIDATE(interp, result))
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_INVALID_STRING_REPRESENTATION,
+ "Invalid buffer content");
+ return result;
+}
+
+/*
+
+=back
+
+=cut
+
+*/
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Modified: branches/gsoc_threads/src/pmc/callcontext.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/callcontext.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/callcontext.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -79,6 +79,13 @@
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+static void ensure_positionals_storage_ap(PARROT_INTERP,
+ ARGIN(PMC *self),
+ INTVAL size,
+ INTVAL allocated_positionals)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
PARROT_CANNOT_RETURN_NULL
static Pcc_cell* get_cell_at(PARROT_INTERP, ARGIN(PMC *self), INTVAL key)
__attribute__nonnull__(1)
@@ -121,6 +128,9 @@
#define ASSERT_ARGS_ensure_positionals_storage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
+#define ASSERT_ARGS_ensure_positionals_storage_ap __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(self))
#define ASSERT_ARGS_get_cell_at __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(self))
@@ -146,14 +156,24 @@
ensure_positionals_storage(PARROT_INTERP, ARGIN(PMC *self), INTVAL size)
{
ASSERT_ARGS(ensure_positionals_storage)
- INTVAL num_positionals, allocated_positionals;
- Pcc_cell *array, *new_array;
+ INTVAL allocated_positionals;
GETATTR_CallContext_allocated_positionals(interp, self, allocated_positionals);
if (size <= allocated_positionals)
return;
+ ensure_positionals_storage_ap(interp, self, size, allocated_positionals);
+}
+
+static void
+ensure_positionals_storage_ap(PARROT_INTERP,
+ ARGIN(PMC *self), INTVAL size, INTVAL allocated_positionals)
+{
+ ASSERT_ARGS(ensure_positionals_storage_ap)
+ INTVAL num_positionals;
+ Pcc_cell *array, *new_array;
+
if (size < 8)
size = 8;
@@ -934,7 +954,7 @@
GET_ATTR_allocated_positionals(INTERP, SELF, allocated_positionals);
if (num_pos + 1 > allocated_positionals)
- ensure_positionals_storage(INTERP, SELF, num_pos + 1);
+ ensure_positionals_storage_ap(INTERP, SELF, num_pos + 1, allocated_positionals);
GET_ATTR_positionals(INTERP, SELF, cells);
cells[num_pos].u.i = value;
@@ -976,7 +996,7 @@
GET_ATTR_allocated_positionals(INTERP, SELF, allocated_positionals);
if (num_pos + 1 > allocated_positionals)
- ensure_positionals_storage(INTERP, SELF, num_pos + 1);
+ ensure_positionals_storage_ap(INTERP, SELF, num_pos + 1, allocated_positionals);
GET_ATTR_positionals(INTERP, SELF, cells);
cells[num_pos].u.p = value;
Modified: branches/gsoc_threads/src/pmc/coroutine.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/coroutine.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/coroutine.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -111,7 +111,6 @@
*/
VTABLE PMC *clone() {
- STRING *name;
PMC * const ret = Parrot_pmc_new(INTERP, SELF->vtable->base_type);
PObj_custom_mark_destroy_SETALL(ret);
Modified: branches/gsoc_threads/src/pmc/exception.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/exception.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/exception.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -52,10 +52,38 @@
#include "parrot/exceptions.h"
#include "pmc/pmc_sub.h"
+typedef enum {
+ attr_id,
+ attr_birthtime,
+ attr_message,
+ attr_payload,
+ attr_resume,
+ attr_severity,
+ attr_type,
+ attr_exit_code,
+ attr_backtrace,
+ attr_handled,
+ attr_handler_iter,
+ attr_handler_ctx,
+ attr_thrower,
+ attr_NONE = -1
+} AttrEnum;
+
/* HEADERIZER HFILE: none */
/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static AttrEnum getAttrEnum(PARROT_INTERP, ARGIN(const STRING *name))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_getAttrEnum __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(name))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
+
pmclass Exception auto_attrs {
ATTR INTVAL id; /* The task ID in the scheduler. */
@@ -87,16 +115,18 @@
*/
VTABLE void init() {
- /* Set flags for custom GC mark and destroy. */
+ /* Use custom mark */
PObj_custom_mark_SET(SELF);
- SET_ATTR_severity(INTERP, SELF, EXCEPT_error);
- SET_ATTR_handled(INTERP, SELF, 0);
- SET_ATTR_message(INTERP, SELF, NULL);
+ /* Set default values */
+ SET_ATTR_message(INTERP, SELF, STRINGNULL);
SET_ATTR_payload(INTERP, SELF, PMCNULL);
SET_ATTR_resume(INTERP, SELF, PMCNULL);
+ SET_ATTR_severity(INTERP, SELF, EXCEPT_error);
SET_ATTR_backtrace(INTERP, SELF, PMCNULL);
SET_ATTR_handler_iter(INTERP, SELF, PMCNULL);
+ SET_ATTR_handler_ctx(INTERP, SELF, PMCNULL);
+ SET_ATTR_thrower(INTERP, SELF, PMCNULL);
}
/*
@@ -110,34 +140,27 @@
*/
VTABLE void init_pmc(PMC *values) {
- INTVAL severity_val;
- STRING *message_val;
+ INTVAL severity_val = EXCEPT_error;
+ STRING *message_val = NULL;
const INTVAL ishash = VTABLE_isa(INTERP, values, CONST_STRING(INTERP, 'Hash'));
+ STATICSELF.init();
+
if (ishash) {
STRING * const severity = CONST_STRING(INTERP, "severity");
STRING * const message = CONST_STRING(INTERP, "message");
severity_val = VTABLE_get_integer_keyed_str(INTERP, values, severity);
message_val = VTABLE_get_string_keyed_str(INTERP, values, message);
}
- else {
- severity_val = EXCEPT_error;
+ else
message_val = VTABLE_get_string(INTERP, values);
- }
- /* Set flags for custom GC mark. */
- PObj_custom_mark_SET(SELF);
-
- /* Set up the core struct and default values for the exception object. */
+ /* Set up the values for the exception object. */
SET_ATTR_severity(INTERP, SELF, severity_val);
- SET_ATTR_handled(INTERP, SELF, 0);
- SET_ATTR_message(INTERP, SELF, message_val);
- SET_ATTR_payload(INTERP, SELF, PMCNULL);
- SET_ATTR_resume(INTERP, SELF, PMCNULL);
- SET_ATTR_backtrace(INTERP, SELF, PMCNULL);
- SET_ATTR_handler_iter(INTERP, SELF, PMCNULL);
+ if (! STRING_IS_NULL(message_val))
+ SET_ATTR_message(INTERP, SELF, message_val);
}
@@ -250,19 +273,20 @@
STRING * const name = VTABLE_get_string(INTERP, key);
INTVAL result = 0;
- if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "type"))) {
+ switch (getAttrEnum(INTERP, name)) {
+ case attr_type:
GET_ATTR_type(INTERP, SELF, result);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "severity"))) {
+ break;
+ case attr_severity:
GET_ATTR_severity(INTERP, SELF, result);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "exit_code"))) {
+ break;
+ case attr_exit_code:
GET_ATTR_exit_code(INTERP, SELF, result);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "handled"))) {
+ break;
+ case attr_handled:
GET_ATTR_handled(INTERP, SELF, result);
- }
- else {
+ break;
+ default:
/* If unknown attribute name, throw an exception. */
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
"No such integer attribute '%S'", name);
@@ -283,20 +307,20 @@
VTABLE INTVAL get_integer_keyed_str(STRING *key) {
INTVAL result = 0;
-
- if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "type"))) {
+ switch (getAttrEnum(INTERP, key)) {
+ case attr_type:
GET_ATTR_type(INTERP, SELF, result);
- }
- else if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "severity"))) {
+ break;
+ case attr_severity:
GET_ATTR_severity(INTERP, SELF, result);
- }
- else if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "exit_code"))) {
+ break;
+ case attr_exit_code:
GET_ATTR_exit_code(INTERP, SELF, result);
- }
- else if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "handled"))) {
+ break;
+ case attr_handled:
GET_ATTR_handled(INTERP, SELF, result);
- }
- else {
+ break;
+ default:
/* If unknown attribute name, throw an exception. */
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
"No such integer attribute '%S'", key);
@@ -400,20 +424,20 @@
VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
STRING * const name = VTABLE_get_string(INTERP, key);
-
- if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "type"))) {
+ switch (getAttrEnum(INTERP, name)) {
+ case attr_type:
SET_ATTR_type(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "severity"))) {
+ break;
+ case attr_severity:
SET_ATTR_severity(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "exit_code"))) {
+ break;
+ case attr_exit_code:
SET_ATTR_exit_code(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "handled"))) {
+ break;
+ case attr_handled:
SET_ATTR_handled(INTERP, SELF, value);
- }
- else {
+ break;
+ default:
/* If unknown attribute name, throw an exception. */
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
"No such integer attribute '%S'", name);
@@ -431,19 +455,20 @@
*/
VTABLE void set_integer_keyed_str(STRING *key, INTVAL value) {
- if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "type"))) {
+ switch (getAttrEnum(INTERP, key)) {
+ case attr_type:
SET_ATTR_type(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "severity"))) {
+ break;
+ case attr_severity:
SET_ATTR_severity(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "exit_code"))) {
+ break;
+ case attr_exit_code:
SET_ATTR_exit_code(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, key, CONST_STRING(INTERP, "handled"))) {
+ break;
+ case attr_handled:
SET_ATTR_handled(INTERP, SELF, value);
- }
- else {
+ break;
+ default:
/* If unknown attribute name, throw an exception. */
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
"No such integer attribute '%S'", key);
@@ -542,47 +567,68 @@
VTABLE PMC *get_attr_str(STRING *name) {
PMC *value = PMCNULL;
- if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "type"))) {
- INTVAL type;
- GET_ATTR_type(INTERP, SELF, type);
- value = Parrot_pmc_new_init_int(INTERP, enum_class_Integer, type);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "severity"))) {
- INTVAL severity;
- GET_ATTR_severity(INTERP, SELF, severity);
- value = Parrot_pmc_new_init_int(INTERP, enum_class_Integer, severity);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "exit_code"))) {
- INTVAL exit_code;
- GET_ATTR_exit_code(INTERP, SELF, exit_code);
- value = Parrot_pmc_new_init_int(INTERP, enum_class_Integer, exit_code);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "handled"))) {
- INTVAL handled;
- GET_ATTR_handled(INTERP, SELF, handled);
- value = Parrot_pmc_new_init_int(INTERP, enum_class_Integer, handled);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "message"))) {
- STRING *message = SELF.get_string();
- value = Parrot_pmc_new(INTERP, enum_class_String);
- VTABLE_set_string_native(INTERP, value, message);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "payload"))) {
- GET_ATTR_payload(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "resume"))) {
- GET_ATTR_resume(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "backtrace"))) {
- GET_ATTR_backtrace(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "handler_iter"))) {
- GET_ATTR_handler_iter(INTERP, SELF, value);
- }
- else {
+ switch (getAttrEnum(INTERP, name)) {
+ case attr_type:
+ {
+ INTVAL type;
+ GET_ATTR_type(INTERP, SELF, type);
+ value = Parrot_pmc_new_init_int(INTERP, enum_class_Integer, type);
+ }
+ break;
+ case attr_severity:
+ {
+ INTVAL severity;
+ GET_ATTR_severity(INTERP, SELF, severity);
+ value = Parrot_pmc_new_init_int(INTERP, enum_class_Integer, severity);
+ }
+ break;
+ case attr_exit_code:
+ {
+ INTVAL exit_code;
+ GET_ATTR_exit_code(INTERP, SELF, exit_code);
+ value = Parrot_pmc_new_init_int(INTERP, enum_class_Integer, exit_code);
+ }
+ case attr_handled:
+ {
+ INTVAL handled;
+ GET_ATTR_handled(INTERP, SELF, handled);
+ value = Parrot_pmc_new_init_int(INTERP, enum_class_Integer, handled);
+ }
+ break;
+ case attr_message:
+ {
+ STRING *message = SELF.get_string();
+ value = Parrot_pmc_new(INTERP, enum_class_String);
+ VTABLE_set_string_native(INTERP, value, message);
+ }
+ break;
+ case attr_birthtime:
+ {
+ FLOATVAL birthtime;
+ GET_ATTR_birthtime(INTERP, SELF, birthtime);
+ value = Parrot_pmc_new(INTERP, enum_class_Float);
+ VTABLE_set_number_native(INTERP, value, birthtime);
+ }
+ break;
+ case attr_payload:
+ GET_ATTR_payload(INTERP, SELF, value);
+ break;
+ case attr_resume:
+ GET_ATTR_resume(INTERP, SELF, value);
+ break;
+ case attr_backtrace:
+ GET_ATTR_backtrace(INTERP, SELF, value);
+ break;
+ case attr_handler_iter:
+ GET_ATTR_handler_iter(INTERP, SELF, value);
+ break;
+ case attr_NONE:
/* If unknown attribute name, throw an exception. */
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
"No such attribute '%S'", name);
+ default:
+ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
+ "Can't get attribute '%S'", name);
}
return value;
@@ -599,53 +645,60 @@
*/
VTABLE void set_attr_str(STRING *name, PMC *value) {
- if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "type"))) {
+ switch (getAttrEnum(INTERP, name)) {
+ case attr_type:
+ {
const INTVAL type = VTABLE_get_integer(INTERP, value);
SET_ATTR_type(INTERP, SELF, type);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "severity"))) {
+ }
+ break;
+ case attr_severity:
+ {
const INTVAL severity = VTABLE_get_integer(INTERP, value);
SET_ATTR_severity(INTERP, SELF, severity);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "exit_code"))) {
+ }
+ break;
+ case attr_exit_code:
+ {
const INTVAL exit_code = VTABLE_get_integer(INTERP, value);
SET_ATTR_exit_code(INTERP, SELF, exit_code);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "handled"))) {
+ }
+ break;
+ case attr_handled:
+ {
const INTVAL handled = VTABLE_get_integer(INTERP, value);
SET_ATTR_handled(INTERP, SELF, handled);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "message"))) {
+ }
+ break;
+ case attr_message:
+ {
STRING * const message = VTABLE_get_string(INTERP, value);
SELF.set_string_native(message);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "payload"))) {
+ }
+ break;
+ case attr_payload:
SET_ATTR_payload(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "resume"))) {
+ break;
+ case attr_resume:
SET_ATTR_resume(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "backtrace"))) {
+ break;
+ case attr_backtrace:
SET_ATTR_backtrace(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "handler_iter"))) {
+ break;
+ case attr_handler_iter:
SET_ATTR_handler_iter(INTERP, SELF, value);
- }
- else if (Parrot_str_equal(INTERP, name, CONST_STRING(INTERP, "thrower"))) {
- /* Ensure it's a ret cont, and extract the from_ctx.
- * XXX TT #596 - when we have Context PMCs, just take and set that. */
- if (!PMC_IS_NULL(value) && VTABLE_isa(INTERP, value, CONST_STRING(INTERP, "Continuation"))) {
- PMC * const ctx = PMC_cont(value)->from_ctx;
- if (!PMC_IS_NULL(ctx))
- SET_ATTR_thrower(INTERP, SELF, ctx);
- }
- }
- else {
+ break;
+ case attr_thrower:
+ SET_ATTR_thrower(INTERP, SELF, value);
+ break;
+ case attr_NONE:
/* If unknown attribute name, throw an exception. */
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ATTRIB_NOT_FOUND,
"No such attribute '%S'", name);
+ default:
+ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
+ "Can't set attribute '%S'", name);
}
-
}
/*
@@ -742,10 +795,13 @@
Parrot_pcc_invoke_method_from_c_args(INTERP, cont->to_ctx, CONST_STRING(INTERP, "backtrace"), "P->P", resume, &result);
}
else {
+ /* Hopefully we have a thrower set - our most epic fail fallback is
+ * to just assume the thrower is the current context. */
PMC *cur_ctx;
- /* No return continuation. Assuming we're being called */
GET_ATTR_thrower(INTERP, SELF, cur_ctx);
- Parrot_pcc_invoke_method_from_c_args(INTERP, CURRENT_CONTEXT(INTERP), CONST_STRING(INTERP, "backtrace"), "->P", &result);
+ if (PMC_IS_NULL(cur_ctx))
+ cur_ctx = CURRENT_CONTEXT(INTERP);
+ Parrot_pcc_invoke_method_from_c_args(INTERP, cur_ctx, CONST_STRING(INTERP, "backtrace"), "->P", &result);
}
RETURN(PMC *result);
@@ -763,6 +819,63 @@
}
/*
+
+=head2 Auxliary functions
+
+=over 4
+
+=item C<static AttrEnum getAttrEnum(PARROT_INTERP, const STRING *name)>
+
+Gets an enumerated value corresponding to the attribute with that name.
+
+=cut
+
+*/
+
+static AttrEnum
+getAttrEnum(PARROT_INTERP, ARGIN(const STRING *name))
+{
+ ASSERT_ARGS(getAttrEnum)
+
+ AttrEnum r;
+ if (Parrot_str_equal(interp, name, CONST_STRING(interp, "birthtime")))
+ r = attr_birthtime;
+ else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "message")))
+ r = attr_message;
+ else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "payload")))
+ r = attr_payload;
+ else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "resume")))
+ r = attr_resume;
+ else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "severity")))
+ r = attr_severity;
+ else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "type")))
+ r = attr_type;
+ else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "exit_code")))
+ r = attr_exit_code;
+ else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "backtrace")))
+ r = attr_backtrace;
+ else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "handled")))
+ r = attr_handled;
+ else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "handler_iter")))
+ r = attr_handler_iter;
+ else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "handler_ctx")))
+ r = attr_handler_ctx;
+ else if (Parrot_str_equal(interp, name, CONST_STRING(interp, "thrower")))
+ r = attr_thrower;
+ else
+ r = attr_NONE;
+ return r;
+}
+
+/*
+
+=back
+
+=cut
+
+*/
+
+/*
* Local variables:
* c-file-style: "parrot"
* End:
Modified: branches/gsoc_threads/src/pmc/filehandle.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/filehandle.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/filehandle.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -698,6 +698,70 @@
RETURN(INTVAL -1);
}
+/*
+
+=item C<METHOD tell()>
+
+Get the file position of the stream. 2 C<INTVAL>s are returned. The first is
+the position. The second is the position shifted down by 32 bits to handle
+overflows on 32-bit systems.
+
+=cut
+
+*/
+
+ METHOD tell() {
+ PIOOFF_T pos;
+ GET_ATTR_file_pos(INTERP, SELF, pos);
+ RETURN(INTVAL pos, INTVAL pos >> 32);
+ }
+
+/*
+
+=item C<METHOD seek(INTVAL whence, INTVAL offs, INTVAL offs_overflow)>
+
+Set the file position to an offset specified by C<offs> (and optionally
+C<offs_overflow>). C<whence> determines from where in the file the offset is
+taken.
+
+ Whence Value Meaning
+ 0 Seek from the beginning of the file
+ 1 Seek from the current position
+ 2 Seek from the end of the file
+
+C<offs_overflow> is optional and is used to handle offsets higher than 2Gb on
+32bit systems.
+
+=cut
+
+*/
+
+ METHOD seek(INTVAL whence, INTVAL offs, INTVAL offs_overflow :optional,
+ int has_overflow :opt_flag) {
+ const PIOOFF_T pio_offs = has_overflow ?
+ Parrot_io_make_offset32(offs_overflow, offs) :
+ offs;
+ if (0 > Parrot_io_seek(INTERP, SELF, pio_offs, whence))
+ Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_PIO_ERROR, "seek failed");
+ }
+
+/*
+
+=item C<METHOD peek()>
+
+Returns the next byte from the stream, but does not remove it.
+
+=cut
+
+*/
+
+ METHOD peek() {
+ STRING *s = NULL;
+ if (Parrot_io_peek(INTERP, SELF, &s) < 0)
+ RETURN(STRING* STRINGNULL);
+ else
+ RETURN(STRING* s);
+ }
/*
Modified: branches/gsoc_threads/src/pmc/fixedintegerarray.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/fixedintegerarray.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/fixedintegerarray.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -21,8 +21,20 @@
/* HEADERIZER HFILE: none */
/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+static int auxcmpfunc(const INTVAL *i, const INTVAL *j);
+#define ASSERT_ARGS_auxcmpfunc __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
+static int
+auxcmpfunc(const INTVAL *i, const INTVAL *j)
+{
+ ASSERT_ARGS(auxcmpfunc)
+ return *i - *j;
+}
+
pmclass FixedIntegerArray auto_attrs provides array {
ATTR INTVAL size; /* number of INTVALs stored in this array */
ATTR INTVAL * int_array; /* INTVALs are stored here */
@@ -492,19 +504,23 @@
SELF.set_pmc_keyed_int(k, value);
}
- METHOD sort(PMC *cmp_func) {
- INTVAL *int_array;
+ METHOD sort(PMC *cmp_func :optional) {
UINTVAL n;
INTVAL size;
GET_ATTR_size(INTERP, SELF, size);
-
n = (UINTVAL)size;
if (n > 1) {
+ INTVAL *int_array;
GET_ATTR_int_array(INTERP, SELF, int_array);
- Parrot_quicksort(INTERP, (void**)int_array, n, cmp_func);
+ if (PMC_IS_NULL(cmp_func))
+ qsort(int_array, n, sizeof (INTVAL),
+ (int (*)(const void *, const void*))auxcmpfunc);
+ else
+ Parrot_quicksort(INTERP, (void**)int_array, n, cmp_func);
}
+ RETURN(PMC *SELF);
}
/*
Modified: branches/gsoc_threads/src/pmc/fixedstringarray.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/fixedstringarray.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/fixedstringarray.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -579,7 +579,7 @@
if (item1 == item2)
continue;
- if (item1 == NULL || item2 == NULL)
+ if (STRING_IS_NULL(item1) || STRING_IS_NULL(item2))
return 0;
if (!Parrot_str_equal(INTERP, item1, item2))
Modified: branches/gsoc_threads/src/pmc/imageio.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/imageio.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/imageio.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -423,7 +423,7 @@
VTABLE void mark() {
PObj * const buffer = (PObj *)(PARROT_IMAGEIO(SELF)->buffer);
if (buffer)
- Parrot_gc_mark_PObj_alive(INTERP, (PObj *)(PARROT_IMAGEIO(SELF)->buffer));
+ Parrot_gc_mark_PObj_alive(INTERP, buffer);
Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->todo);
Parrot_gc_mark_PMC_alive(INTERP, PARROT_IMAGEIO(SELF)->seen);
}
Modified: branches/gsoc_threads/src/pmc/nci.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/nci.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/nci.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -169,6 +169,7 @@
pmclass NCI auto_attrs provides invokable {
/* NCI thunk handling attributes */
+ /* NCI thunk handling attributes */
ATTR STRING *signature; /* The signature. */
ATTR void *func; /* Function pointer to call. */
ATTR PMC *fb_info; /* Frame-builder info */
Modified: branches/gsoc_threads/src/pmc/orderedhash.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/orderedhash.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/orderedhash.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -263,7 +263,7 @@
PARROT_ORDEREDHASH(SELF);
if (attrs->hash)
- Parrot_gc_mark_PObj_alive(INTERP, (PObj *)attrs->hash);
+ Parrot_gc_mark_PMC_alive(INTERP, attrs->hash);
/* Don't mark C<first> and C<last>. They are in lookup hash anyway */
}
Modified: branches/gsoc_threads/src/pmc/parrotinterpreter.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/parrotinterpreter.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/parrotinterpreter.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -844,6 +844,7 @@
METHOD stdhandle(INTVAL fileno, PMC *newhandle :optional) {
PMC * const handle = Parrot_io_stdhandle(INTERP, fileno, newhandle);
+ Parrot_warn_deprecated(INTERP, "stdhandle method is experimental");
RETURN(PMC *handle);
}
Modified: branches/gsoc_threads/src/pmc/resizableintegerarray.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/resizableintegerarray.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/resizableintegerarray.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -313,8 +313,12 @@
}
VTABLE void thaw(PMC *info) {
- const INTVAL n = VTABLE_shift_integer(INTERP, info);
- const INTVAL rt = VTABLE_shift_integer(INTERP, info);
+ INTVAL n, rt;
+
+ SUPER(info);
+
+ n = VTABLE_shift_integer(INTERP, info);
+ rt = VTABLE_shift_integer(INTERP, info);
SET_ATTR_size(INTERP, SELF, 0);
SET_ATTR_resize_threshold(INTERP, SELF, rt);
Modified: branches/gsoc_threads/src/pmc/resizablepmcarray.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/resizablepmcarray.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/resizablepmcarray.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -11,7 +11,7 @@
This class, ResizablePMCArray, implements an resizable array which stores PMCs.
It puts things into Integer, Float, or String PMCs as appropriate.
-=head2 Functions
+=head2 Vtable Functions
=over 4
@@ -25,6 +25,21 @@
/* HEADERIZER HFILE: none */
/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_DOES_NOT_RETURN
+static void throw_pop_empty(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+PARROT_DOES_NOT_RETURN
+static void throw_shift_empty(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_throw_pop_empty __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_throw_shift_empty __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
pmclass ResizablePMCArray extends FixedPMCArray auto_attrs provides array {
@@ -134,8 +149,7 @@
FLOATVAL value;
if (0 == size)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "ResizablePMCArray: Can't shift from an empty array!");
+ throw_shift_empty(INTERP);
item = PMC_array(SELF);
data = item[0];
@@ -156,8 +170,7 @@
INTVAL value;
if (0 == size)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "ResizablePMCArray: Can't shift from an empty array!");
+ throw_shift_empty(INTERP);
item = PMC_array(SELF);
data = item[0];
@@ -176,8 +189,7 @@
PMC **item;
if (0 == size)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "ResizablePMCArray: Can't shift from an empty array!");
+ throw_shift_empty(INTERP);
item = PMC_array(SELF);
data = item[0];
@@ -196,8 +208,7 @@
STRING *value;
if (0 == size)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "ResizablePMCArray: Can't shift from an empty array!");
+ throw_shift_empty(INTERP);
item = PMC_array(SELF);
data = item[0];
@@ -435,8 +446,7 @@
PMC *data;
if (0 == size)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "ResizablePMCArray: Can't pop from an empty array!");
+ throw_pop_empty(INTERP);
data = PMC_array(SELF)[--size];
PMC_size(SELF) = size;
@@ -450,8 +460,7 @@
PMC *data;
if (0 == size)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "ResizablePMCArray: Can't pop from an empty array!");
+ throw_pop_empty(INTERP);
data = PMC_array(SELF)[--size];
PMC_size(SELF) = size;
@@ -465,8 +474,7 @@
PMC *data;
if (0 == size)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "ResizablePMCArray: Can't pop from an empty array!");
+ throw_pop_empty(INTERP);
data = PMC_array(SELF)[--size];
PMC_size(SELF) = size;
@@ -480,8 +488,7 @@
PMC *data;
if (0 == size)
- Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
- "ResizablePMCArray: Can't pop from an empty array!");
+ throw_pop_empty(INTERP);
data = PMC_array(SELF)[--size];
PMC_size(SELF) = size;
@@ -604,43 +611,6 @@
/*
-=item METHOD append(PMC *other)
-
-Append the other array to this array.
-
-=cut
-
-*/
-
- METHOD append(PMC *other) {
-
- const INTVAL n = VTABLE_elements(INTERP, SELF);
- const INTVAL m = VTABLE_elements(INTERP, other);
-
- if (!m)
- RETURN(void);
-
- /* pre-size it */
- VTABLE_set_integer_native(INTERP, SELF, n + m);
-
- if (other->vtable->base_type == SELF->vtable->base_type
- || other->vtable->base_type == enum_class_FixedPMCArray) {
- PMC ** const other_data = PMC_array(other);
- PMC ** const this_data = PMC_array(SELF);
-
- /* libc is faster at copying data than a manual loop here */
- memmove(this_data + n, other_data, m * sizeof (PMC *));
- }
- else {
- PMC ** const this_data = PMC_array(SELF);
- INTVAL i;
-
- for (i = 0; i < m; ++i)
- this_data[n + i] = VTABLE_get_pmc_keyed_int(INTERP, other, i);
- }
- }
-/*
-
=item C<STRING *get_repr()>
Returns the Parrot string representation C<ResizablePMCArray>.
@@ -725,6 +695,50 @@
/*
+=back
+
+=head2 Methdos
+
+=over 4
+
+=item METHOD append(PMC *other)
+
+Append the other array to this array.
+
+=cut
+
+*/
+
+ METHOD append(PMC *other) {
+
+ const INTVAL n = VTABLE_elements(INTERP, SELF);
+ const INTVAL m = VTABLE_elements(INTERP, other);
+
+ if (!m)
+ RETURN(void);
+
+ /* pre-size it */
+ VTABLE_set_integer_native(INTERP, SELF, n + m);
+
+ if (other->vtable->base_type == SELF->vtable->base_type
+ || other->vtable->base_type == enum_class_FixedPMCArray) {
+ PMC ** const other_data = PMC_array(other);
+ PMC ** const this_data = PMC_array(SELF);
+
+ /* libc is faster at copying data than a manual loop here */
+ memmove(this_data + n, other_data, m * sizeof (PMC *));
+ }
+ else {
+ PMC ** const this_data = PMC_array(SELF);
+ INTVAL i;
+
+ for (i = 0; i < m; ++i)
+ this_data[n + i] = VTABLE_get_pmc_keyed_int(INTERP, other, i);
+ }
+ }
+
+/*
+
=item METHOD PMC* shift()
=item METHOD PMC* pop()
@@ -772,6 +786,42 @@
=back
+=head2 Auxiliar functions
+
+=over 4
+
+=item C<static void throw_shift_empty(PARROT_INTERP)>
+
+=item C<static void throw_pop_empty(PARROT_INTERP)>
+
+Throws with the appropiate message.
+
+=cut
+
+*/
+
+PARROT_DOES_NOT_RETURN
+static void
+throw_shift_empty(PARROT_INTERP)
+{
+ ASSERT_ARGS(throw_shift_empty)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_OUT_OF_BOUNDS,
+ "ResizablePMCArray: Can't shift from an empty array!");
+}
+
+PARROT_DOES_NOT_RETURN
+static void
+throw_pop_empty(PARROT_INTERP)
+{
+ ASSERT_ARGS(throw_pop_empty)
+ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_OUT_OF_BOUNDS,
+ "ResizablePMCArray: Can't pop from an empty array!");
+}
+
+/*
+
+=back
+
=head1 See also
F<docs/pdds/pdd17_basic_types.pod>.
Modified: branches/gsoc_threads/src/pmc/string.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/string.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/string.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -406,7 +406,7 @@
const INTVAL k = VTABLE_get_integer(INTERP, key);
GET_ATTR_str_val(INTERP, SELF, str_val);
- n = Parrot_str_byte_length(INTERP, str_val);
+ n = Parrot_str_length(INTERP, str_val);
return (INTVAL)((k >= 0 && k <= n) || (k < 0 && -k <= n));
}
@@ -470,7 +470,7 @@
VTABLE void set_string_keyed_int(INTVAL pos, STRING * const value) {
STRING *str_val;
- const INTVAL len = Parrot_str_byte_length(INTERP, value);
+ const INTVAL len = Parrot_str_length(INTERP, value);
GET_ATTR_str_val(INTERP, SELF, str_val);
str_val = Parrot_str_replace(INTERP, str_val, pos, len, value);
SET_ATTR_str_val(INTERP, SELF, str_val);
@@ -506,8 +506,8 @@
*/
METHOD replace(STRING *orig, STRING *_new) {
- const INTVAL old_len = Parrot_str_byte_length(INTERP, orig);
- const INTVAL new_len = Parrot_str_byte_length(INTERP, _new);
+ const INTVAL old_len = Parrot_str_length(INTERP, orig);
+ const INTVAL new_len = Parrot_str_length(INTERP, _new);
STRING * s = VTABLE_get_string(INTERP, SELF);
INTVAL i = 0;
@@ -607,7 +607,7 @@
VTABLE INTVAL elements() {
STRING *str_val;
GET_ATTR_str_val(INTERP, SELF, str_val);
- return Parrot_str_byte_length(INTERP, str_val);
+ return Parrot_str_length(INTERP, str_val);
}
VTABLE PMC *get_iter() {
@@ -691,7 +691,7 @@
INTVAL i;
STRING *dest;
- const INTVAL len = Parrot_str_byte_length(INTERP, src);
+ const INTVAL len = Parrot_str_length(INTERP, src);
if (!len)
RETURN(STRING src);
@@ -729,7 +729,7 @@
METHOD is_integer(STRING *src) {
INTVAL i;
unsigned char *p;
- const INTVAL len = Parrot_str_byte_length(INTERP, src);
+ const INTVAL len = Parrot_str_length(INTERP, src);
if (!len)
RETURN(INTVAL 0);
@@ -787,7 +787,7 @@
if (start < 0)
RETURN(INTVAL res);
- len = Parrot_str_byte_length(INTERP, src);
+ len = Parrot_str_length(INTERP, src);
if (!len)
RETURN(INTVAL res);
@@ -795,7 +795,7 @@
if (start >= (INTVAL)len)
RETURN(INTVAL res);
- if (!Parrot_str_byte_length(INTERP, substring))
+ if (!Parrot_str_length(INTERP, substring))
RETURN(INTVAL res);
res = CHARSET_RINDEX(INTERP, src, substring, (UINTVAL)start);
@@ -820,7 +820,7 @@
Parrot_encoding_number(INTERP, encodingname));
STRING * const src = VTABLE_get_string(INTERP, SELF);
STRING * const dest = Parrot_str_unescape_string(INTERP, src,
- charset, encoding);
+ charset, encoding, 0);
RETURN(STRING *dest);
}
Modified: branches/gsoc_threads/src/pmc/stringbuilder.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/stringbuilder.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/stringbuilder.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -73,32 +73,27 @@
SET_ATTR_buffer(INTERP, SELF, buffer);
- PObj_custom_mark_destroy_SETALL(SELF);
+ PObj_custom_destroy_SET(SELF);
}
/*
-=item C<void mark()>
+=item C<void destroy()>
-Marks the StringBuilder as live.
+Free the buffer on destruction.
=cut
*/
- VTABLE void mark() {
- }
-
VTABLE void destroy() {
- STRING *buffer;
-
- if (!PMC_data(SELF))
- return;
-
- GET_ATTR_buffer(INTERP, SELF, buffer);
- if (buffer->_bufstart)
- mem_gc_free(INTERP, buffer->_bufstart);
- mem_gc_free(INTERP, buffer);
+ if (PMC_data(SELF)) {
+ STRING *buffer;
+ GET_ATTR_buffer(INTERP, SELF, buffer);
+ if (buffer->_bufstart)
+ mem_gc_free(INTERP, buffer->_bufstart);
+ mem_gc_free(INTERP, buffer);
+ }
}
/*
@@ -145,18 +140,20 @@
/* TODO Ask chromatic why in Parrot_str_join he ignored charset */
cs = Parrot_str_rep_compatible(interp, buffer, s, &enc);
if (!cs) {
- cs = Parrot_unicode_charset_ptr;
- enc = (buffer->encoding == Parrot_utf16_encoding_ptr
- || s->encoding == Parrot_utf16_encoding_ptr
- || buffer->encoding == Parrot_ucs2_encoding_ptr
- || s->encoding == Parrot_ucs2_encoding_ptr)
- ? Parrot_utf16_encoding_ptr
- : Parrot_utf8_encoding_ptr;
- buffer = Parrot_unicode_charset_ptr->to_charset(interp, buffer);
- s = Parrot_unicode_charset_ptr->to_charset(interp, s);
+ /* Create new temporary string */
+ STRING * const new_buffer = Parrot_unicode_charset_ptr->to_charset(interp, buffer);
+ mem_gc_free(INTERP, buffer->_bufstart);
+ STRUCT_COPY(buffer, new_buffer);
+ buffer->flags = PObj_is_string_FLAG | PObj_live_FLAG | PObj_external_FLAG;
+
+ buffer->_bufstart = buffer->strstart = mem_gc_allocate_n_typed(INTERP,
+ new_buffer->_buflen, char);
+ mem_sys_memcopy(buffer->_bufstart, new_buffer->_bufstart, new_buffer->_buflen);
SET_ATTR_buffer(INTERP, SELF, buffer);
+
+ s = Parrot_unicode_charset_ptr->to_charset(interp, s);
}
/* Calculate (possibly new) total size */
@@ -164,8 +161,9 @@
/* Reallocate if necessary */
if (total_size > Buffer_buflen(buffer)) {
+ /* Parrot_unicode_charset_ptr can produce NULL buffer */
buffer->_bufstart = buffer->strstart = mem_gc_realloc_n_typed(INTERP,
- buffer->_bufstart, total_size, char);
+ buffer->_bufstart, total_size, char);
buffer->_buflen = total_size;
}
Modified: branches/gsoc_threads/src/pmc/sub.pmc
==============================================================================
--- branches/gsoc_threads/src/pmc/sub.pmc Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/pmc/sub.pmc Thu Jun 10 21:09:12 2010 (r47545)
@@ -954,6 +954,10 @@
Sets the sub that is the outer of this one.
+=item C<void set_outer_ctx(PMC *outer_ctx)>
+
+Set the outer context to be used on the next invocation of this sub.
+
=item C<INTVAL arity()>
Returns the arity of the Sub (the number of arguments, excluding optional and
@@ -1091,6 +1095,13 @@
}
+ METHOD set_outer_ctx(PMC *outer_ctx) {
+ Parrot_Sub_attributes *sub;
+ PMC_get_sub(INTERP, SELF, sub);
+ sub->outer_ctx = outer_ctx;
+ }
+
+
METHOD get_multisig() {
PMC *multisig;
Parrot_Sub_attributes *sub;
Modified: branches/gsoc_threads/src/runcore/trace.c
==============================================================================
--- branches/gsoc_threads/src/runcore/trace.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/runcore/trace.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -34,12 +34,18 @@
/* HEADERIZER BEGIN: static */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+PARROT_CANNOT_RETURN_NULL
+static Interp * debugger_or_interp(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
static STRING* trace_class_name(PARROT_INTERP, ARGIN(const PMC* pmc))
__attribute__nonnull__(1)
__attribute__nonnull__(2);
+#define ASSERT_ARGS_debugger_or_interp __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_trace_class_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp) \
, PARROT_ASSERT_ARG(pmc))
@@ -48,15 +54,17 @@
/*
-=item C<Interp * debugger_or_interp(PARROT_INTERP)>
+=item C<static Interp * debugger_or_interp(PARROT_INTERP)>
Get debugger if available
=cut
*/
+
PARROT_CANNOT_RETURN_NULL
-Interp *
-debugger_or_interp(PARROT_INTERP) {
+static Interp *
+debugger_or_interp(PARROT_INTERP)
+{
ASSERT_ARGS(debugger_or_interp)
return interp->pdb && interp->pdb->debugger
@@ -231,15 +239,18 @@
break;
case KEY_string_FLAG|KEY_register_FLAG:
{
- const STRING * const s = REG_STR(interp,
- VTABLE_get_integer(interp, key));
- STRING * const escaped = Parrot_str_escape_truncate(interp, s, 20);
- if (escaped)
- len += Parrot_io_eprintf(debugger, "S%vd=\"%Ss\"",
- VTABLE_get_integer(interp, key), escaped);
+ const INTVAL keynum = VTABLE_get_integer(interp, key);
+ if (keynum < Parrot_pcc_get_regs_used(interp, CURRENT_CONTEXT(interp), REGNO_STR)) {
+ const STRING * const s = REG_STR(interp, keynum);
+ STRING * const escaped = Parrot_str_escape_truncate(interp, s, 20);
+ if (escaped)
+ len += Parrot_io_eprintf(debugger, "S%vd=\"%Ss\"",
+ keynum, escaped);
+ else
+ len += Parrot_io_eprintf(debugger, "S%vd=\"(null)\"", keynum);
+ }
else
- len += Parrot_io_eprintf(debugger, "S%vd=\"(null)\"",
- VTABLE_get_integer(interp, key));
+ len += Parrot_io_eprintf(debugger, "**WRONG KEY STRING REG %d**", keynum);
}
break;
case KEY_pmc_FLAG|KEY_register_FLAG:
Modified: branches/gsoc_threads/src/string/api.c
==============================================================================
--- branches/gsoc_threads/src/string/api.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/string/api.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -450,12 +450,16 @@
if (!cs) {
/* upgrade strings for concatenation */
cs = Parrot_unicode_charset_ptr;
- enc = (a->encoding == Parrot_utf16_encoding_ptr
- || b->encoding == Parrot_utf16_encoding_ptr
- || a->encoding == Parrot_ucs2_encoding_ptr
- || b->encoding == Parrot_ucs2_encoding_ptr)
- ? Parrot_utf16_encoding_ptr
- : Parrot_utf8_encoding_ptr;
+ if (a->encoding == Parrot_ucs4_encoding_ptr
+ || b->encoding == Parrot_ucs4_encoding_ptr)
+ enc = Parrot_ucs4_encoding_ptr;
+ else if (a->encoding == Parrot_utf16_encoding_ptr
+ || b->encoding == Parrot_utf16_encoding_ptr
+ || a->encoding == Parrot_ucs2_encoding_ptr
+ || b->encoding == Parrot_ucs2_encoding_ptr)
+ enc = Parrot_utf16_encoding_ptr;
+ else
+ enc = Parrot_utf8_encoding_ptr;
a = Parrot_unicode_charset_ptr->to_charset(interp, a);
b = Parrot_unicode_charset_ptr->to_charset(interp, b);
@@ -977,6 +981,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
INTVAL
Parrot_str_length(SHIM_INTERP, ARGIN_NULLOK(const STRING *s))
@@ -2076,8 +2081,6 @@
else if (Parrot_str_equal(interp, t, CONST_STRING(interp, "-INF"))
|| Parrot_str_equal(interp, t, CONST_STRING(interp, "-INFINITY")))
return PARROT_FLOATVAL_INF_NEGATIVE;
- else
- return 0.0;
}
/* powl() could be used here, but it is an optional POSIX extension that
@@ -2528,7 +2531,7 @@
/*
=item C<STRING * Parrot_str_unescape_string(PARROT_INTERP, const STRING *src,
-const CHARSET *charset, const ENCODING *encoding)>
+const CHARSET *charset, const ENCODING *encoding, UINTVAL flags)>
EXPERIMENTAL, see TT #1628
@@ -2545,12 +2548,13 @@
STRING *
Parrot_str_unescape_string(PARROT_INTERP, ARGIN(const STRING *src),
ARGIN(const CHARSET *charset),
- ARGIN(const ENCODING *encoding))
+ ARGIN(const ENCODING *encoding),
+ UINTVAL flags)
{
ASSERT_ARGS(Parrot_str_unescape_string)
UINTVAL srclen = Parrot_str_byte_length(interp, src);
- STRING *result = Parrot_gc_new_string_header(interp, 0);
+ STRING *result = Parrot_gc_new_string_header(interp, flags);
String_iter itersrc;
String_iter iterdest;
UINTVAL reserved;
@@ -2613,13 +2617,18 @@
}
else {
/* \xhh 1..2 hex digits */
- for (digcount = 0; digcount < 2; ++digcount) {
+ pending = 1;
+ for (digcount = 0; digcount < 2;) {
if (!isxdigit(c))
break;
digbuf[digcount] = c;
+ ++digcount;
+ if (itersrc.bytepos >= srclen) {
+ pending = 0;
+ break;
+ }
c = itersrc.get_and_advance(interp, &itersrc);
}
- pending = 1;
}
if (digcount == 0)
throw_illegal_escape(interp);
@@ -3235,7 +3244,8 @@
mem_sys_memcopy(pos, next->strstart, next->bufused);
pos += next->bufused;
- PARROT_ASSERT(pos <= res->strstart + Buffer_buflen(res));
+ /* We can consume all buffer and pos will be next-after-end of buffer */
+ PARROT_ASSERT(pos <= res->strstart + Buffer_buflen(res) + 1);
}
res->bufused = pos - res->strstart;
Modified: branches/gsoc_threads/src/string/charset.c
==============================================================================
--- branches/gsoc_threads/src/string/charset.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/string/charset.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -23,6 +23,7 @@
#include "encoding/utf8.h"
#include "encoding/utf16.h"
#include "encoding/ucs2.h"
+#include "encoding/ucs4.h"
#include "charset/ascii.h"
#include "charset/binary.h"
@@ -149,6 +150,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
const CHARSET *
@@ -227,6 +229,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
INTVAL
Parrot_charset_number_of_str(SHIM_INTERP, ARGIN(const STRING *src))
@@ -254,6 +257,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
STRING *
@@ -277,6 +281,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
const CHARSET *
@@ -301,6 +306,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_CAN_RETURN_NULL
PARROT_WARN_UNUSED_RESULT
const char *
@@ -492,6 +498,7 @@
Parrot_encoding_utf8_init(interp);
Parrot_encoding_ucs2_init(interp);
Parrot_encoding_utf16_init(interp);
+ Parrot_encoding_ucs4_init(interp);
Parrot_charset_ascii_init(interp);
Parrot_charset_iso_8859_1_init(interp);
@@ -539,6 +546,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
const CHARSET *
@@ -560,6 +568,7 @@
*/
PARROT_EXPORT
+PARROT_PURE_FUNCTION
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
charset_converter_t
@@ -572,7 +581,7 @@
for (i = 0; i < n; ++i) {
if (lhs == all_charsets->set[i].charset) {
- One_charset * const left = all_charsets->set + i;
+ const One_charset * const left = all_charsets->set + i;
const int nc = left->n_converters;
int j;
Modified: branches/gsoc_threads/src/string/encoding.c
==============================================================================
--- branches/gsoc_threads/src/string/encoding.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/string/encoding.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -43,6 +43,7 @@
ENCODING *Parrot_utf8_encoding_ptr = NULL;
ENCODING *Parrot_ucs2_encoding_ptr = NULL;
ENCODING *Parrot_utf16_encoding_ptr = NULL;
+ENCODING *Parrot_ucs4_encoding_ptr = NULL;
typedef struct One_encoding {
NOTNULL(ENCODING *encoding);
@@ -362,7 +363,7 @@
ENCODING *encoding)>
Registers a character encoding C<encoding> with name C<encodingname>.
-Only allows one of 4 possibilities: fixed_8, utf8, utf16, and ucs2.
+Only allows one of 5 possibilities: fixed_8, utf8, utf16, ucs2 and ucs4.
=cut
@@ -399,6 +400,10 @@
Parrot_ucs2_encoding_ptr = encoding;
return register_encoding(interp, encodingname, encoding);
}
+ if (STREQ("ucs4", encodingname)) {
+ Parrot_ucs4_encoding_ptr = encoding;
+ return register_encoding(interp, encodingname, encoding);
+ }
return 0;
}
Copied: branches/gsoc_threads/src/string/encoding/ucs4.c (from r47544, trunk/src/string/encoding/ucs4.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/src/string/encoding/ucs4.c Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/src/string/encoding/ucs4.c)
@@ -0,0 +1,618 @@
+/*
+Copyright (C) 2010, Parrot Foundation.
+$Id$
+
+=head1 NAME
+
+src/string/encoding/ucs4.c - UCS-4 encoding
+
+=head1 DESCRIPTION
+
+UCS-4 encoding with the help of the ICU library.
+
+=head2 Functions
+
+=over 4
+
+=cut
+
+*/
+
+#include "parrot/parrot.h"
+#include "../unicode.h"
+
+#if !PARROT_HAS_ICU
+PARROT_DOES_NOT_RETURN
+static void no_ICU_lib(PARROT_INTERP) /* HEADERIZER SKIP */
+{
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_LIBRARY_ERROR,
+ "no ICU lib loaded");
+}
+#endif
+
+/* HEADERIZER HFILE: src/string/encoding/ucs4.h */
+
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_WARN_UNUSED_RESULT
+static UINTVAL bytes(SHIM_INTERP, ARGIN(const STRING *src))
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+static UINTVAL codepoints(PARROT_INTERP, ARGIN(const STRING *src))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+static UINTVAL find_cclass(PARROT_INTERP,
+ ARGIN(const STRING *s),
+ ARGIN(const INTVAL *typetable),
+ INTVAL flags,
+ UINTVAL pos,
+ UINTVAL end)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
+
+static UINTVAL get_byte(PARROT_INTERP,
+ SHIM(const STRING *src),
+ SHIM(UINTVAL offset))
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static STRING * get_bytes(PARROT_INTERP,
+ SHIM(const STRING *src),
+ SHIM(UINTVAL offset),
+ SHIM(UINTVAL count))
+ __attribute__nonnull__(1);
+
+static UINTVAL get_codepoint(PARROT_INTERP,
+ ARGIN(const STRING *src),
+ UINTVAL offset)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static STRING * get_codepoints(PARROT_INTERP,
+ ARGIN(const STRING *src),
+ UINTVAL offset,
+ UINTVAL count)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void iter_init(PARROT_INTERP,
+ ARGIN(const STRING *src),
+ ARGOUT(String_iter *iter))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*iter);
+
+static void set_byte(PARROT_INTERP,
+ SHIM(const STRING *src),
+ SHIM(UINTVAL offset),
+ SHIM(UINTVAL byte))
+ __attribute__nonnull__(1);
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static STRING * to_encoding(PARROT_INTERP, ARGIN(const STRING *src))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static UINTVAL ucs4_decode_and_advance(PARROT_INTERP,
+ ARGMOD(String_iter *i))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*i);
+
+static void ucs4_encode_and_advance(PARROT_INTERP,
+ ARGMOD(String_iter *i),
+ UINTVAL c)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*i);
+
+static size_t ucs4_hash(PARROT_INTERP,
+ ARGIN(const STRING *s),
+ size_t hashval)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+static void ucs4_set_position(PARROT_INTERP,
+ ARGMOD(String_iter *i),
+ UINTVAL n)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2)
+ FUNC_MODIFIES(*i);
+
+#define ASSERT_ARGS_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(src))
+#define ASSERT_ARGS_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(src))
+#define ASSERT_ARGS_find_cclass __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(s) \
+ , PARROT_ASSERT_ARG(typetable))
+#define ASSERT_ARGS_get_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_get_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_get_codepoint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(src))
+#define ASSERT_ARGS_get_codepoints __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(src))
+#define ASSERT_ARGS_iter_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(src) \
+ , PARROT_ASSERT_ARG(iter))
+#define ASSERT_ARGS_set_byte __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_to_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(src))
+#define ASSERT_ARGS_ucs4_decode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_ucs4_encode_and_advance __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(i))
+#define ASSERT_ARGS_ucs4_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(s))
+#define ASSERT_ARGS_ucs4_set_position __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp) \
+ , PARROT_ASSERT_ARG(i))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: static */
+
+#include "ucs4.h"
+
+#if PARROT_HAS_ICU
+# include <unicode/ustring.h>
+#endif
+
+/*
+
+=item C<static STRING * to_encoding(PARROT_INTERP, const STRING *src)>
+
+Converts the string C<src> to this particular encoding.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static STRING *
+to_encoding(PARROT_INTERP, ARGIN(const STRING *src))
+{
+ ASSERT_ARGS(to_encoding)
+#if PARROT_HAS_ICU
+ if (src->encoding == Parrot_ucs4_encoding_ptr) {
+ return Parrot_str_clone(interp, src);
+ }
+ else {
+ UINTVAL len = Parrot_str_length(interp, src);
+ STRING *res = Parrot_str_new_init(interp, NULL, len * sizeof (UChar32),
+ Parrot_ucs4_encoding_ptr, Parrot_unicode_charset_ptr, 0);
+ UChar32 *buf = (UChar32 *) res->strstart;
+ UINTVAL offs;
+ for (offs = 0; offs < len; offs++){
+ buf[offs] = src->encoding->get_codepoint(interp, src, offs);
+ };
+ res->strlen = len;
+ res->bufused = len * sizeof (UChar32);
+
+ return res;
+ }
+#else
+ UNUSED(src);
+ no_ICU_lib(interp);
+#endif
+
+}
+
+/*
+
+=item C<static UINTVAL get_codepoint(PARROT_INTERP, const STRING *src, UINTVAL
+offset)>
+
+Returns the codepoint in string C<src> at position C<offset>.
+
+=cut
+
+*/
+
+static UINTVAL
+get_codepoint(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset)
+{
+ ASSERT_ARGS(get_codepoint)
+#if PARROT_HAS_ICU
+ const UChar32 * const s = (const UChar32*) src->strstart;
+ UNUSED(interp);
+ return s[offset];
+#else
+ UNUSED(offset);
+ UNUSED(src);
+ no_ICU_lib(interp);
+#endif
+}
+
+
+/*
+
+=item C<static UINTVAL find_cclass(PARROT_INTERP, const STRING *s, const INTVAL
+*typetable, INTVAL flags, UINTVAL pos, UINTVAL end)>
+
+Stub, the charset level handles this for unicode strings.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+static UINTVAL
+find_cclass(PARROT_INTERP, ARGIN(const STRING *s), ARGIN(const INTVAL *typetable),
+INTVAL flags, UINTVAL pos, UINTVAL end)
+{
+ ASSERT_ARGS(find_cclass)
+
+ UNUSED(s);
+ UNUSED(typetable);
+ UNUSED(flags);
+ UNUSED(pos);
+ UNUSED(end);
+
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_UNIMPLEMENTED,
+ "No find_cclass support in unicode encoding plugins");
+}
+
+/*
+
+=item C<static UINTVAL get_byte(PARROT_INTERP, const STRING *src, UINTVAL
+offset)>
+
+Returns the byte in string C<src> at position C<offset>.
+
+=cut
+
+*/
+
+static UINTVAL
+get_byte(PARROT_INTERP, SHIM(const STRING *src), SHIM(UINTVAL offset))
+{
+ ASSERT_ARGS(get_byte)
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_UNIMPLEMENTED,
+ "No get_byte for UCS-4");
+}
+
+/*
+
+=item C<static void set_byte(PARROT_INTERP, const STRING *src, UINTVAL offset,
+UINTVAL byte)>
+
+Sets, in string C<src> at position C<offset>, the byte C<byte>.
+
+=cut
+
+*/
+
+static void
+set_byte(PARROT_INTERP, SHIM(const STRING *src), SHIM(UINTVAL offset),
+ SHIM(UINTVAL byte))
+{
+ ASSERT_ARGS(set_byte)
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_UNIMPLEMENTED,
+ "No set_byte for UCS-4");
+}
+
+/*
+
+=item C<static STRING * get_codepoints(PARROT_INTERP, const STRING *src, UINTVAL
+offset, UINTVAL count)>
+
+Returns the C<count> codepoints stored at position C<offset> in string
+C<src> as a new string.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static STRING *
+get_codepoints(PARROT_INTERP, ARGIN(const STRING *src), UINTVAL offset, UINTVAL count)
+{
+ ASSERT_ARGS(get_codepoints)
+#if PARROT_HAS_ICU
+ return Parrot_str_new_init(interp, (char*)src->strstart + offset * sizeof (UChar32),
+ count * sizeof (UChar32), src->encoding, src->charset, 0);
+#else
+ UNUSED(src);
+ UNUSED(offset);
+ UNUSED(count);
+ no_ICU_lib(interp);
+#endif
+}
+
+/*
+
+=item C<static STRING * get_bytes(PARROT_INTERP, const STRING *src, UINTVAL
+offset, UINTVAL count)>
+
+Returns the bytes in string C<src> at position C<offset> and length C<count>.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+static STRING *
+get_bytes(PARROT_INTERP, SHIM(const STRING *src), SHIM(UINTVAL offset),
+ SHIM(UINTVAL count))
+{
+ ASSERT_ARGS(get_bytes)
+ Parrot_ex_throw_from_c_args(interp, NULL,
+ EXCEPTION_UNIMPLEMENTED,
+ "No get_bytes for UCS-4");
+}
+
+
+/*
+
+=item C<static UINTVAL codepoints(PARROT_INTERP, const STRING *src)>
+
+Returns the number of codepoints in string C<src>.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+static UINTVAL
+codepoints(PARROT_INTERP, ARGIN(const STRING *src))
+{
+ ASSERT_ARGS(codepoints)
+#if PARROT_HAS_ICU
+ UNUSED(interp);
+ return src->bufused / sizeof (UChar32);
+#else
+ UNUSED(src);
+ no_ICU_lib(interp);
+#endif
+}
+
+/*
+
+=item C<static UINTVAL bytes(PARROT_INTERP, const STRING *src)>
+
+Returns the number of bytes in string C<src>.
+
+=cut
+
+*/
+
+PARROT_WARN_UNUSED_RESULT
+static UINTVAL
+bytes(SHIM_INTERP, ARGIN(const STRING *src))
+{
+ ASSERT_ARGS(bytes)
+ return src->bufused;
+}
+
+/*
+
+=item C<static UINTVAL ucs4_decode_and_advance(PARROT_INTERP, String_iter *i)>
+
+Moves the string iterator C<i> to the next UCS-4 codepoint.
+
+=cut
+
+*/
+
+static UINTVAL
+ucs4_decode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i))
+{
+ ASSERT_ARGS(ucs4_decode_and_advance)
+#if PARROT_HAS_ICU
+ const UChar32 * const s = (const UChar32 *) i->str->strstart;
+ size_t pos = i->bytepos / sizeof (UChar32);
+ const UChar32 c = s[pos++];
+ ++i->charpos;
+ i->bytepos = pos * sizeof (UChar32);
+ return c;
+#else
+ UNUSED(i);
+ no_ICU_lib(interp);
+#endif
+}
+
+/*
+
+=item C<static void ucs4_encode_and_advance(PARROT_INTERP, String_iter *i,
+UINTVAL c)>
+
+With the string iterator C<i>, appends the codepoint C<c> and advances to the
+next position in the string.
+
+=cut
+
+*/
+
+static void
+ucs4_encode_and_advance(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL c)
+{
+ ASSERT_ARGS(ucs4_encode_and_advance)
+#if PARROT_HAS_ICU
+ UChar32 *s = (UChar32 *) i->str->strstart;
+ size_t pos = i->bytepos / sizeof (UChar32);
+ s[pos++] = (UChar32) c;
+ ++i->charpos;
+ i->bytepos = pos * sizeof (UChar32);
+#else
+ UNUSED(i);
+ no_ICU_lib(interp);
+#endif
+}
+
+#if PARROT_HAS_ICU
+/*
+
+=item C<static size_t ucs4_hash(PARROT_INTERP, const STRING *s, size_t hashval)>
+
+Returns the hashed value of the string, given a seed in hashval.
+
+=cut
+
+*/
+
+static size_t
+ucs4_hash(PARROT_INTERP, ARGIN(const STRING *s), size_t hashval)
+{
+ ASSERT_ARGS(ucs4_hash)
+ const UChar32 *pos = (const UChar32*) s->strstart;
+ UINTVAL len = s->strlen;
+ UNUSED(interp);
+
+ while (len--) {
+ hashval += hashval << 5;
+ hashval += *(pos++);
+ }
+
+ return hashval;
+}
+#endif
+
+/*
+
+=item C<static void ucs4_set_position(PARROT_INTERP, String_iter *i, UINTVAL n)>
+
+Moves the string iterator C<i> to the position C<n> in the string.
+
+=cut
+
+*/
+
+static void
+ucs4_set_position(PARROT_INTERP, ARGMOD(String_iter *i), UINTVAL n)
+{
+ ASSERT_ARGS(ucs4_set_position)
+#if PARROT_HAS_ICU
+ i->charpos = n;
+ i->bytepos = n * sizeof (UChar32);
+#else
+ UNUSED(i);
+ UNUSED(n);
+ no_ICU_lib(interp);
+#endif
+}
+
+
+/*
+
+=item C<static void iter_init(PARROT_INTERP, const STRING *src, String_iter
+*iter)>
+
+Initializes for string C<src> the string iterator C<iter>.
+
+=cut
+
+*/
+
+static void
+iter_init(PARROT_INTERP, ARGIN(const STRING *src), ARGOUT(String_iter *iter))
+{
+ ASSERT_ARGS(iter_init)
+#if PARROT_HAS_ICU
+ UNUSED(interp);
+ iter->str = src;
+ iter->bytepos = 0;
+ iter->charpos = 0;
+ iter->get_and_advance = ucs4_decode_and_advance;
+ iter->set_and_advance = ucs4_encode_and_advance;
+ iter->set_position = ucs4_set_position;
+#else
+ UNUSED(src);
+ UNUSED(iter);
+ no_ICU_lib(interp);
+#endif
+}
+
+/*
+
+=item C<void Parrot_encoding_ucs4_init(PARROT_INTERP)>
+
+Initializes the UCS-4 encoding.
+
+=cut
+
+*/
+
+void
+Parrot_encoding_ucs4_init(PARROT_INTERP)
+{
+ ASSERT_ARGS(Parrot_encoding_ucs4_init)
+ ENCODING * const return_encoding = Parrot_new_encoding(interp);
+
+ static const ENCODING base_encoding = {
+ "ucs4",
+ 4, /* Max bytes per codepoint */
+ to_encoding,
+ get_codepoint,
+ get_byte,
+ set_byte,
+ get_codepoints,
+ get_bytes,
+ codepoints,
+ bytes,
+ iter_init,
+ find_cclass,
+#if PARROT_HAS_ICU
+ ucs4_hash
+#else
+ NULL
+#endif
+ };
+ STRUCT_COPY_FROM_STRUCT(return_encoding, base_encoding);
+ Parrot_register_encoding(interp, "ucs4", return_encoding);
+
+ return;
+}
+
+/*
+
+=back
+
+=head1 SEE ALSO
+
+F<src/string/encoding/fixed_8.c>,
+F<src/string/encoding/utf8.c>,
+F<src/string/encoding/utf16.c>,
+F<src/string/encoding/ucs2.c>,
+F<src/string.c>,
+F<include/parrot/string.h>,
+F<docs/string.pod>.
+
+=cut
+
+*/
+
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Copied: branches/gsoc_threads/src/string/encoding/ucs4.h (from r47544, trunk/src/string/encoding/ucs4.h)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/src/string/encoding/ucs4.h Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/src/string/encoding/ucs4.h)
@@ -0,0 +1,27 @@
+/*
+Copyright (C) 2010, Parrot Foundation.
+$Id$
+*/
+
+#ifndef PARROT_ENCODING_UCS4_H_GUARD
+#define PARROT_ENCODING_UCS4_H_GUARD
+
+/* HEADERIZER BEGIN: src/string/encoding/ucs4.c */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+void Parrot_encoding_ucs4_init(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_Parrot_encoding_ucs4_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: src/string/encoding/ucs4.c */
+
+#endif /* PARROT_ENCODING_UCS4_H_GUARD */
+
+/*
+ * Local variables:
+ * c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */
Modified: branches/gsoc_threads/src/utils.c
==============================================================================
--- branches/gsoc_threads/src/utils.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/utils.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -62,12 +62,12 @@
static void next_rand(_rand_buf X);
static void process_cycle_without_exit(
int node_index,
- ARGIN(parrot_prm_context* c))
+ ARGIN(const parrot_prm_context *c))
__attribute__nonnull__(2);
static void rec_climb_back_and_mark(
int node_index,
- ARGIN(parrot_prm_context* c))
+ ARGIN(const parrot_prm_context *c))
__attribute__nonnull__(2);
#define ASSERT_ARGS__drand48 __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
@@ -540,7 +540,7 @@
/*
-=item C<PMC* tm_to_array(PARROT_INTERP, const struct tm *tm)>
+=item C<PMC* Parrot_tm_to_array(PARROT_INTERP, const struct tm *tm)>
Helper to convert a B<struct tm *> to an Array
@@ -548,12 +548,13 @@
*/
+PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
PARROT_CANNOT_RETURN_NULL
PMC*
-tm_to_array(PARROT_INTERP, ARGIN(const struct tm *tm))
+Parrot_tm_to_array(PARROT_INTERP, ARGIN(const struct tm *tm))
{
- ASSERT_ARGS(tm_to_array)
+ ASSERT_ARGS(Parrot_tm_to_array)
PMC * const Array = Parrot_pmc_new(interp,
Parrot_get_ctx_HLL_type(interp, enum_class_FixedIntegerArray));
@@ -664,8 +665,8 @@
/*
-=item C<static void rec_climb_back_and_mark(int node_index, parrot_prm_context*
-c)>
+=item C<static void rec_climb_back_and_mark(int node_index, const
+parrot_prm_context *c)>
Recursive function, used by Parrot_register_move to
climb back the graph of register moves operations.
@@ -689,7 +690,7 @@
*/
static void
-rec_climb_back_and_mark(int node_index, ARGIN(parrot_prm_context* c))
+rec_climb_back_and_mark(int node_index, ARGIN(const parrot_prm_context *c))
{
ASSERT_ARGS(rec_climb_back_and_mark)
const int node = c->dest_regs[node_index];
@@ -715,8 +716,8 @@
/*
-=item C<static void process_cycle_without_exit(int node_index,
-parrot_prm_context* c)>
+=item C<static void process_cycle_without_exit(int node_index, const
+parrot_prm_context *c)>
Recursive function, used by Parrot_register_move to handle the case
of cycles without exits, that are cycles of move ops between registers
@@ -732,7 +733,7 @@
*/
static void
-process_cycle_without_exit(int node_index, ARGIN(parrot_prm_context* c))
+process_cycle_without_exit(int node_index, ARGIN(const parrot_prm_context *c))
{
ASSERT_ARGS(process_cycle_without_exit)
const int pred = c->src_regs[node_index];
@@ -915,6 +916,7 @@
/* TODO: Macroize COMPARE */
/* This is an awfully expensive function to call, what with all the */
/* comparisons that never change. We ought to precompute everything. */
+/* XXX We should be able to guarantee that *a and *b never change via const parameters. */
static INTVAL
COMPARE(PARROT_INTERP, ARGIN(void *a), ARGIN(void *b), ARGIN(PMC *cmp))
{
Modified: branches/gsoc_threads/src/warnings.c
==============================================================================
--- branches/gsoc_threads/src/warnings.c Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/src/warnings.c Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2001-2009, Parrot Foundation.
+Copyright (C) 2001-2010, Parrot Foundation.
$Id$
=head1 NAME
@@ -124,6 +124,30 @@
/*
+=item C<void Parrot_warn_deprecated(PARROT_INTERP, const char *message)>
+
+Warn about use of a deprecated feature
+
+C<message> is a C string.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+void
+Parrot_warn_deprecated(PARROT_INTERP, ARGIN(const char *message))
+{
+ ASSERT_ARGS(Parrot_warn_deprecated)
+
+ if (PARROT_WARNINGS_test(interp, PARROT_WARNINGS_DEPRECATED_FLAG)) {
+ STRING *msg = Parrot_sprintf_c(interp, "WARNING: %s\n", message);
+ print_warning(interp, msg);
+ }
+}
+
+/*
+
=back
=head1 SEE ALSO
Modified: branches/gsoc_threads/t/codingstd/c_function_docs.t
==============================================================================
--- branches/gsoc_threads/t/codingstd/c_function_docs.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/codingstd/c_function_docs.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -91,16 +91,10 @@
}
__DATA__
-compilers/imcc/parser_util.c
-compilers/imcc/pbc.c
-compilers/imcc/pcc.c
-compilers/imcc/reg_alloc.c
-compilers/imcc/symreg.c
compilers/pirc/src/pircapi.c
config/gen/platform/ansi/dl.c
config/gen/platform/ansi/exec.c
config/gen/platform/ansi/time.c
-config/gen/platform/darwin/dl.c
config/gen/platform/darwin/memalign.c
config/gen/platform/generic/dl.c
config/gen/platform/generic/exec.c
Modified: branches/gsoc_threads/t/codingstd/linelength.t
==============================================================================
--- branches/gsoc_threads/t/codingstd/linelength.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/codingstd/linelength.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -125,6 +125,8 @@
compilers/pirc/macro/macroparser.h
compilers/pirc/src/hdocprep.l
compilers/pirc/src/hdocprep.c
+# generated files
+src/ops/core_ops.c
# generated by tools/dev/nci_thunk_gen.pir
src/nci/core_thunks.c
src/nci/extra_thunks.c
Modified: branches/gsoc_threads/t/codingstd/perlcritic.t
==============================================================================
--- branches/gsoc_threads/t/codingstd/perlcritic.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/codingstd/perlcritic.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,5 +1,5 @@
#! perl
-# Copyright (C) 2008-2009, Parrot Foundation.
+# Copyright (C) 2008-2010, Parrot Foundation.
# $Id$
=head1 NAME
@@ -85,6 +85,7 @@
@files = grep {! m/$filter_languages/}
map { $_->path }
grep { $_->read !~ m/use v6;/ }
+ grep { $_->read !~ m/#! nqp/ }
$dist->get_perl_language_files();
}
else {
Modified: branches/gsoc_threads/t/compilers/imcc/imcpasm/opt1.t
==============================================================================
--- branches/gsoc_threads/t/compilers/imcc/imcpasm/opt1.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/compilers/imcc/imcpasm/opt1.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -5,7 +5,7 @@
use strict;
use warnings;
use lib qw( . lib ../lib ../../lib );
-use Parrot::Test tests => 78;
+use Parrot::Test tests => 77;
use Parrot::Config;
my $output;
@@ -312,22 +312,6 @@
OUT
##############################
-pir_2_pasm_is( <<'CODE', <<'OUT', "constant cmod" );
-.sub _main
- cmod $I0, 33, 10
- cmod $N0, 33.0, 10.0
- end
-.end
-CODE
-# IMCC does produce b0rken PASM files
-# see http://guest@rt.perl.org/rt3/Ticket/Display.html?id=32392
-_main:
- set I0, 3
- set N0, 3
- end
-OUT
-
-##############################
pir_2_pasm_is( <<'CODE', <<'OUT', "constant mod" );
.sub _main
mod $I0, 33, 10
Modified: branches/gsoc_threads/t/compilers/imcc/syn/clash.t
==============================================================================
--- branches/gsoc_threads/t/compilers/imcc/syn/clash.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/compilers/imcc/syn/clash.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -8,7 +8,7 @@
use Test::More;
use Parrot::Config;
-use Parrot::Test tests => 17;
+use Parrot::Test tests => 15;
pir_output_is( <<'CODE', <<'OUT', "if/unless" );
.sub test :main
@@ -210,38 +210,6 @@
ok
OUTPUT
-pir_output_is( <<'CODE', <<'OUTPUT', "eq_num => eq" );
-.sub test :main
- .local int i
- .local int j
- i = 1
- j = 1
- eq_num i, j, ok1
- print "not "
-ok1:
- print "ok 1\n"
- end
-.end
-CODE
-ok 1
-OUTPUT
-
-pir_output_is( <<'CODE', <<'OUTPUT', "eq_num => eq mixed => eq_n_n" );
-.sub test :main
- .local int i
- .local num j
- i = 1
- j = 1.0
- eq_num j, i, ok1
- print "not "
-ok1:
- print "ok 1\n"
- end
-.end
-CODE
-ok 1
-OUTPUT
-
pir_error_output_like( <<'CODE', <<'OUT', "undefined ident" );
.sub test :main
print no_such
Modified: branches/gsoc_threads/t/compilers/imcc/syn/const.t
==============================================================================
--- branches/gsoc_threads/t/compilers/imcc/syn/const.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/compilers/imcc/syn/const.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -198,7 +198,7 @@
$S0 = ""
$I0 = 0
LOOP:
- $S0 = concat <<"end"
+ concat $S0, <<"end"
ending
end
inc $I0
Modified: branches/gsoc_threads/t/compilers/imcc/syn/errors.t
==============================================================================
--- branches/gsoc_threads/t/compilers/imcc/syn/errors.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/compilers/imcc/syn/errors.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -13,7 +13,7 @@
plan skip_all => 'No reason to compile invalid PBC here'
if $ENV{TEST_PROG_ARGS} && $ENV{TEST_PROG_ARGS} =~ m/--run-pbc/;
-plan tests => 6;
+plan tests => 7;
## tests for imcc error messages
@@ -87,6 +87,15 @@
/^error:imcc:syntax error, duplicated IDENTIFIER/
END_EXPECTED
+pir_error_output_like( <<'END_PIR', <<'END_EXPECTED', 'warn about failing .loadlib (TT #437)' );
+.loadlib 'nosuch'
+.sub main :main
+ say "WTF"
+.end
+END_PIR
+/^error:imcc:loadlib.*nosuch/
+END_EXPECTED
+
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
Modified: branches/gsoc_threads/t/compilers/imcc/syn/op.t
==============================================================================
--- branches/gsoc_threads/t/compilers/imcc/syn/op.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/compilers/imcc/syn/op.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -4,7 +4,7 @@
.sub test :main
.include 'test_more.pir'
- plan(59)
+ plan(58)
test_plus_equal()
test_minus_equal()
@@ -21,7 +21,6 @@
test_x_defined()
test_x_clone()
test_x_length()
- test_x_sin()
test_x_can()
test_x_isa()
test_x_add()
@@ -174,11 +173,6 @@
is($I0, 0, 'x = length')
.end
-.sub test_x_sin
- $N0 = sin 0
- is($N0, 0, 'x = sin')
-.end
-
.sub test_x_can
$P0 = new 'FileHandle'
$I0 = can $P0, "puts"
Modified: branches/gsoc_threads/t/compilers/imcc/syn/regressions.t
==============================================================================
--- branches/gsoc_threads/t/compilers/imcc/syn/regressions.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/compilers/imcc/syn/regressions.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -6,7 +6,7 @@
use warnings;
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 21;
+use Parrot::Test tests => 22;
pir_error_output_like( <<'CODE', <<'OUT', 'invalid get_results syntax');
.sub main :main
@@ -37,6 +37,33 @@
ok 2 - caught div_n_nc_nc exception
OUT
+pir_output_is( <<'CODE', <<'OUT', 'fold symbolic constants (TT #1652)');
+.sub main :main
+ .const int SECONDS_PER_MINUTE = 60
+ $I0 = 30 * SECONDS_PER_MINUTE
+ say $I0
+
+ .const num DAYS_PER_YEAR = 365.24e0
+ $N0 = DAYS_PER_YEAR * 2.96460137564761618e-03
+ 'printf'("%f\n", $N0)
+
+ .const string HI = "Hello "
+ $S0 = concat HI, "World!"
+ say $S0
+.end
+
+.sub 'printf'
+ .param string fmt
+ .param pmc data :slurpy
+ $S0 = sprintf fmt, data
+ print $S0
+.end
+CODE
+1800
+1.082791
+Hello World!
+OUT
+
pir_output_is( <<'CODE', <<'OUT', 'comments before .param(TT #1035)');
.sub main :main
comments(1,2)
Modified: branches/gsoc_threads/t/compilers/imcc/syn/tail.t
==============================================================================
--- branches/gsoc_threads/t/compilers/imcc/syn/tail.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/compilers/imcc/syn/tail.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -15,6 +15,7 @@
$ENV{TEST_PROG_ARGS} = '-Oc';
pir_output_is( <<'CODE', <<'OUT', "tail call optimization, final position" );
+
.sub _main :main
$P1 = new 'Integer'
$P1 = 20
@@ -55,7 +56,7 @@
$I33 = defined function
if $I33 goto doit
bad_func:
- printerr "_funcall: Bad function.\n"
+ print "_funcall: Bad function.\n"
exit 0
doit:
set_args "0x20", argv
@@ -134,7 +135,7 @@
doit:
.tailcall function(argv :flat)
bad_func:
- printerr "_funcall: Bad function.\n"
+ print "_funcall: Bad function.\n"
exit 0
.end
@@ -207,7 +208,7 @@
$I33 = defined function
if $I33 goto doit
bad_func:
- printerr "_funcall: Bad function.\n"
+ print "_funcall: Bad function.\n"
exit 0
doit:
.tailcall function(argv :flat)
@@ -283,7 +284,7 @@
print " results]\n"
.return ($P35 :flat)
bad_func:
- printerr "_funcall: Bad function.\n"
+ print "_funcall: Bad function.\n"
exit 0
.end
Copied: branches/gsoc_threads/t/compilers/opsc/01-parse.t (from r47544, trunk/t/compilers/opsc/01-parse.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/compilers/opsc/01-parse.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/compilers/opsc/01-parse.t)
@@ -0,0 +1,205 @@
+#! parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+.include 't/compilers/opsc/common.pir'
+
+.sub 'main' :main
+
+ .include 'test_more.pir'
+ load_bytecode 'opsc.pbc'
+
+ plan(12)
+
+ test_parse_basic_op()
+ test_parse_many_ops()
+ test_parse_header()
+ test_parse_params()
+ test_parse_flags()
+.end
+
+.sub "test_parse_basic_op"
+ .local string buf
+ .local pmc res
+
+ buf = <<"END"
+inline op noop() {
+}
+END
+
+ "_parse_buffer"(buf)
+ is(1, 1, "Simple noop parsed")
+
+ buf = <<"END"
+inline op noop() {
+ foo
+}
+END
+
+ "_parse_buffer"(buf)
+ is(1, 1, "noop body parsed")
+
+ buf = <<"END"
+inline op noop() {
+ foo {
+ bar{};
+ }
+}
+END
+
+ "_parse_buffer"(buf)
+ is(1, 1, "noop nested body parsed")
+
+
+.end
+
+.sub "test_parse_many_ops"
+ .local string buf
+ .local pmc res
+
+ buf = <<"END"
+
+
+=item noop
+
+asdfs
+
+=cut
+
+inline op noop() {
+}
+
+=item halt
+
+asdsad
+
+=cut
+
+inline op halt() {
+}
+
+=head2
+
+ads
+
+=cut
+
+inline op rule_the_world() {
+}
+
+
+END
+
+ res = "_parse_buffer"(buf)
+ is(1, 1, "Multiple ops parsed")
+
+ $I0 = res['body';'op']
+ is($I0, 3, "...and we have 3 ops")
+
+.end
+
+# test parsing ops file header.
+.sub "test_parse_header"
+ .local string buf
+ .local pmc res
+
+ buf = <<"END"
+/*
+ * $Id$
+** core.ops
+*/
+
+BEGIN_OPS_PREAMBLE
+
+#include "parrot/dynext.h"
+#include "parrot/embed.h"
+#include "parrot/runcore_api.h"
+#include "../pmc/pmc_continuation.h"
+#include "../pmc/pmc_parrotlibrary.h"
+
+END_OPS_PREAMBLE
+
+=head1 NAME
+
+core.ops - Core Opcodes
+
+=cut
+
+=head1 DESCRIPTION
+
+Parrot's core library of ops.
+
+Core operations are primarily flow control and interpreter
+introspection.
+
+=cut
+
+inline op noop() {
+}
+
+END
+
+ res = "_parse_buffer"(buf)
+ is(1, 1, "Header parsed")
+
+ $I0 = res['body';'op']
+ is($I0, 1, "...and we have our op")
+
+.end
+
+.sub "test_parse_params"
+ .local string buf
+ .local pmc res
+
+ buf = <<"END"
+
+inline op reserved(inconst INT) {
+ /* reserve 1 entries */
+}
+
+END
+
+ "_parse_buffer"(buf)
+ is(1, 1, "Op with single param parsed")
+
+ buf = <<"END"
+
+inline op add(out INT, inconst INT, inconst INT) {
+}
+
+END
+
+ "_parse_buffer"(buf)
+ is(1, 1, "Op with multiple param parsed")
+
+.end
+
+.sub "test_parse_flags"
+ .local string buf
+ .local pmc res
+
+ buf = <<"END"
+
+inline op hcf() :flow :deprecated {
+}
+
+END
+
+ res = "_parse_buffer"(buf)
+ is(1, 1, "Op with flags parsed")
+
+ .local pmc op
+ op = res['body';'op';0;'op_flag']
+ $S0 = op[0]
+ is($S0, ":flow ", "First flag parsed")
+ $S0 = op[1]
+ is($S0, ":deprecated ", "Second flag parsed")
+.end
+
+# Don't forget to update plan!
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/gsoc_threads/t/compilers/opsc/02-parse-all-ops.t (from r47544, trunk/t/compilers/opsc/02-parse-all-ops.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/compilers/opsc/02-parse-all-ops.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/compilers/opsc/02-parse-all-ops.t)
@@ -0,0 +1,90 @@
+#! parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+.include 't/compilers/opsc/common.pir'
+
+.sub 'main' :main
+ .include 'test_more.pir'
+ load_bytecode 'opsc.pbc'
+
+ .local int total
+ .local pmc os, all_files, ops_files, dynops_files
+
+ all_files = new ['ResizablePMCArray']
+ ops_files = get_ops_from_dir('./src/ops/')
+ dynops_files = get_ops_from_dir('./src/dynoplibs/')
+
+ #prepend the arrays to all_files
+ splice all_files, ops_files, 0, 0
+ splice all_files, dynops_files, 0, 0
+
+ total = elements all_files
+ all_files.'sort'()
+
+ plan(total)
+ test_parse(all_files)
+.end
+
+.sub get_ops_from_dir
+ .param string dir
+ .local pmc files, filtered_files, os, it
+
+ $P0 = loadlib 'os'
+ os = new ['OS']
+ files = os.'readdir'(dir)
+ filtered_files = new ['ResizablePMCArray']
+
+ .local int len, is_pmc, total
+ .local string filename, filename_end
+
+ #filter out anything that doesn't end in .ops
+ it = iter files
+ iter_start:
+ unless it goto iter_done
+ filename = shift it
+
+ len = length filename
+ unless len > 4 goto iter_start
+
+ filename_end = substr filename, -4
+ is_pmc = iseq filename_end, ".ops"
+ unless is_pmc goto iter_start
+
+ filename = dir . filename
+ push filtered_files, filename
+ goto iter_start
+
+ iter_done:
+ .return (filtered_files)
+.end
+
+.sub 'test_parse'
+ .param pmc list
+ .local int i
+ .local pmc it
+
+ it = iter list
+ iter_start:
+ unless it goto iter_done
+ $S0 = shift it
+ push_eh fail
+ _parse_one_file($S0)
+ pop_eh
+ ok(1, $S0)
+ goto iter_start
+ fail:
+ ok(0, $S0)
+ goto iter_start
+
+ iter_done:
+
+.end
+
+# Don't forget to update plan!
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/gsoc_threads/t/compilers/opsc/03-past.t (from r47544, trunk/t/compilers/opsc/03-past.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/compilers/opsc/03-past.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/compilers/opsc/03-past.t)
@@ -0,0 +1,110 @@
+#! ./parrot-nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+
+# "Comprehensive" test for creating PAST for op.
+# Parse single op and check various aspects of created PAST.
+
+pir::load_bytecode('opsc.pbc');
+pir::load_bytecode('dumper.pbc');
+
+plan(26);
+
+my $buf := q|
+BEGIN_OPS_PREAMBLE
+/*
+THE HEADER
+*/
+END_OPS_PREAMBLE
+
+op bar() {
+ # Nothing here
+}
+
+inline op foo(out INT, in PMC, inconst NUM) :flow :deprecated {
+ foo # We don't handle anything in C<body> during parse/past.
+}
+
+|;
+my $compiler := pir::compreg__Ps('Ops');
+
+my $past := $compiler.compile($buf, target => 'past');
+
+ok(1, "PAST::Node created");
+
+my $preambles := $past<preamble>;
+
+ok(~$preambles[0] ~~ /HEADER/, 'Header parsed');
+
+my @ops := @($past<ops>);
+# One "bar" and two "foo"
+ok(+ at ops == 3, 'We have 3 ops');
+
+my $op := @ops[1];
+ok($op.name == 'foo', "Name parsed");
+
+my %flags := $op<flags>;
+ok(%flags<flow>, ':flow flag parsed');
+ok(%flags<deprecated>, ':deprecated flag parsed');
+ok(%flags == 2, "And there are only 2 flags");
+
+# Check op params
+my @args := $op<args>;
+ok(+ at args == 3, "Got 3 parameters");
+
+my $arg;
+
+$arg := @args[0];
+ok($arg<direction> eq 'out', 'First direction is correct');
+ok($arg<type> eq 'INT', 'First type is correct');
+
+$arg := @args[1];
+ok($arg<direction> eq 'in', 'Second direction is correct');
+ok($arg<type> eq 'PMC', 'Second type is correct');
+
+$arg := @args[2];
+ok($arg<direction> eq 'inconst', 'Third direction is correct');
+ok($arg<type> eq 'NUM', 'Third type is correct');
+
+# Check normalization
+ at args := $op<normalized_args>;
+$arg := @args[0];
+ok($arg<direction> eq 'o', 'First direction is correct');
+ok($arg<type> eq 'i', 'First type is correct');
+ok(!($arg<variant>), 'First arg without variant');
+
+$arg := @args[1];
+ok($arg<direction> eq 'i', 'Second direction is correct');
+ok($arg<type> eq 'p', 'Second type is correct');
+ok($arg<variant> eq 'pc', 'Second variant is correct');
+
+$arg := @args[2];
+ok($arg<direction> eq 'i', 'Third direction is correct');
+ok($arg<type> eq 'nc', 'Third type is correct');
+ok(!($arg<variant>), 'Third arg without variant');
+
+ok( ($op.arg_types).join('_') eq 'i_p_nc', "First variant correct");
+
+
+# Second created op should have _pc_
+$op := @ops[2];
+ok( $op.arg_types.join('_') eq 'i_pc_nc', "Second variant correct");
+
+# Check body munching.
+$op := @ops[0];
+my $goto_offset := 0;
+for @($op) {
+ $goto_offset := $goto_offset || $_<name> eq 'goto_offset';
+}
+ok( $goto_offset, "goto NEXT appended for non :flow ops");
+
+
+# Don't forget to update plan!
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=perl6:
Copied: branches/gsoc_threads/t/compilers/opsc/04-op.t (from r47544, trunk/t/compilers/opsc/04-op.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/compilers/opsc/04-op.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/compilers/opsc/04-op.t)
@@ -0,0 +1,36 @@
+#!./parrot-nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+# Checking Ops::Op
+
+pir::load_bytecode("opsc.pbc");
+
+plan(7);
+
+my $op := Ops::Op.new(
+ code => 42,
+ name => 'set',
+ type => 'inline',
+ args => <foo bar baz>,
+ flags => hash(),
+ arg_types => <i i ic>,
+);
+
+ok( 1, "Op created");
+
+ok( $op.code == 42, "... with proper code");
+ok( $op.name eq 'set', "... with proper name");
+ok( $op.type eq 'inline', "... with proper type");
+ok( +$op.arg_types == 3, "... with proper arg_types");
+say('# ' ~ $op.arg_types);
+
+ok( $op.full_name eq 'set_i_i_ic', "full_name is correct");
+
+$op := Ops::Op.new(
+ name => 'set',
+ type => 'inline',
+);
+ok( $op.full_name eq 'set', "Argless op's full_name is correct");
+
+# vim: expandtab shiftwidth=4 ft=perl6:
Copied: branches/gsoc_threads/t/compilers/opsc/05-oplib.t (from r47544, trunk/t/compilers/opsc/05-oplib.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/compilers/opsc/05-oplib.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/compilers/opsc/05-oplib.t)
@@ -0,0 +1,19 @@
+#!./parrot-nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+# Checking for OpLib num and skip files parsing.
+
+pir::load_bytecode("opsc.pbc");
+
+plan(2);
+
+my $lib := Ops::OpLib.new(
+ :skip_file('src/ops/ops.skip'),
+);
+
+ok( $lib.op_skip_table<abs_i_ic>, "'abs_i_ic' in skiptable");
+ok( $lib.op_skip_table<ne_nc_nc_ic>, "'ne_nc_nc_ic' in skiptable");
+#_dumper($lib.skiptable);
+
+# vim: expandtab shiftwidth=4 ft=perl6:
Copied: branches/gsoc_threads/t/compilers/opsc/06-opsfile.t (from r47544, trunk/t/compilers/opsc/06-opsfile.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/compilers/opsc/06-opsfile.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/compilers/opsc/06-opsfile.t)
@@ -0,0 +1,45 @@
+#!./parrot-nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+pir::load_bytecode("opsc.pbc");
+pir::load_bytecode("nqp-setting.pbc");
+
+plan(7);
+
+my $oplib := Ops::OpLib.new;
+my @files := <
+ src/ops/core.ops
+ src/ops/math.ops
+>;
+
+my $f := Ops::File.new(:oplib($oplib), |@files, :core(1));
+
+my @ops := $f.ops;
+# 84 core
+# 116 math
+# We can generate more than 1 Ops::Op per op due args expansion.
+say( "# Parsed " ~ + at ops);
+# There is more than 200 ops in this 2 files.
+# Feel free to update number if you change them.
+ok(+ at ops == 264, "Ops parsed correctly");
+say('# ' ~ + at ops);
+
+my $op := @ops[0];
+#_dumper($op);
+# First op should be C<end> and has code 0.
+ok($op.name eq 'end', "First op is end");
+ok($op<code> == 0, "... with code 0");
+
+$op := @ops[(+ at ops)-1];
+ok($op.name eq 'sqrt', "Last op is tanh");
+say('# ' ~ $op.name);
+ok($op<code> > 84 + 116, "... with non zero code");
+
+my $version := join(' ', |$f.version);
+ok( $version ~~ /^\d+ \s \d+ \s \d+$/, "Version parsed");
+say("# $version");
+
+ok( $f.preamble ~~ /pmc_parrotlibrary.h/, "Preamble preserved");
+
+# vim: expandtab shiftwidth=4 ft=perl6:
Copied: branches/gsoc_threads/t/compilers/opsc/07-emitter.t (from r47544, trunk/t/compilers/opsc/07-emitter.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/compilers/opsc/07-emitter.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/compilers/opsc/07-emitter.t)
@@ -0,0 +1,130 @@
+#! ./parrot-nqp
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+pir::load_bytecode("opsc.pbc");
+
+plan(22);
+
+my $trans := Ops::Trans::C.new();
+
+my @files := <
+ src/ops/io.ops
+ src/ops/sys.ops
+ src/ops/cmp.ops
+>;
+
+my $lib := Ops::OpLib.new();
+my $emitter := Ops::Emitter.new(
+ :ops_file(Ops::File.new(
+ :oplib($lib),
+ :core(1),
+ |@files)
+ ),
+ :trans($trans),
+ :script('ops2c'),
+ :flags(
+ hash( dir => 'tmp/', core => 1 )
+ ),
+);
+
+ok( $emitter, "Emitter created");
+ok( $emitter<include> eq 'parrot/oplib/core_ops.h', 'Include is correct');
+say('# ' ~ $emitter<include>);
+ok( $emitter<func_header> ~~ /^tmp/, 'header file in tmp');
+say('# ' ~ $emitter<func_header>);
+
+#$emitter.print_c_header_file();
+
+my $fh := pir::new__Ps('StringHandle');
+$fh.open('header.h', 'w');
+$emitter.emit_c_op_func_header($fh);
+
+$fh.close();
+my $header := $fh.readall();
+#say($header);
+
+ok($header ~~ /define \s PARROT_OPLIB_CORE_OPS_H_GUARD/, 'Guard generated');
+ok($header ~~ /endif/, 'Close guard generated');
+ok($header ~~ /DO \s NOT \s EDIT \s THIS \s FILE/, 'Preamble generated');
+ok($header ~~ /Parrot_DynOp_core_ \d+ _ \d+ _ \d+/, '... and contains init_func');
+ok($header ~~ /Parrot_err_s_ic/, 'We have proper names of ops functions');
+
+# Testing C emitting.
+#$emitter.print_c_source_file();
+
+$fh := pir::new__Ps('StringHandle');
+$fh.open('core.c', 'w');
+$emitter.emit_c_source_file($fh);
+
+$fh.close();
+my $source := $fh.readall();
+
+ok($source ~~ /DO \s NOT \s EDIT \s THIS \s FILE/, 'Preamble generated');
+ok($source ~~ /Parrot_pcc_get_constants/, 'defines from Trans::C generated');
+ok($source ~~ /io_private.h/, 'Preamble from io.ops preserved');
+
+ok($source ~~ /static \s int \s get_op/, 'Trans::C preamble generated');
+
+ok($source ~~ /PARROT_FUNCTION_CORE/, 'Trans::C core_type preserved');
+ok($source ~~ /static \s size_t \s hash_str/, 'Trans::C op_lookup preserved');
+
+ok($source ~~ /'PREG(1)'/, 'Trans::C arg translation works');
+ok($source ~! /'OP_SIZE'/, 'Trans::C translates OP_SIZE');
+
+# "eq"
+ok($source ~~ /'0,' \s '0,' \s '1'/, "Labels handled correctly");
+
+my $op_body := '
+inline op do_stuff(invar PMC)
+{
+ restart ADDRESS(234);
+}';
+my $new_body := translate_op_body($trans, $op_body);
+my $restart_addr_ok := $new_body ~~ /'return' \s '(' 'opcode_t' \s '*' ')' \s? '234'/;
+ok($restart_addr_ok, "restart ADDRESS() translated ok");
+
+$op_body := '
+inline op branch(in LABEL) :base_loop :flow {
+ goto OFFSET($1);
+}';
+$new_body := translate_op_body($trans, $op_body);
+$restart_addr_ok := $new_body ~~ /'return (opcode_t *)cur_opcode + IREG(1);'/;
+ok($restart_addr_ok, "goto OFFSET() and \$1 translated ok");
+ok($new_body ~~ /'PARROT_JUMP_RELATIVE'/, "jump flags generated");
+
+$op_body := '
+inline op thingy(in PMC) {
+ opcode * next = expr NEXT();
+}';
+$new_body := translate_op_body($trans, $op_body);
+$restart_addr_ok := $new_body ~~ /'cur_opcode + 2;'/;
+ok($restart_addr_ok, "expr NEXT() translated ok");
+
+$op_body := '
+inline op runinterp(in PMC) {
+}';
+$new_body := translate_op_body($trans, $op_body);
+$restart_addr_ok := $new_body ~~ /'PARROT_JUMP_RELATIVE'/;
+ok($restart_addr_ok, "runinterp has PARROT_JUMP_RELATIVE");
+
+#say($source);
+
+sub translate_op_body($trans, $body) {
+ my $file := Ops::File.new_str(
+ :oplib($lib), $body);
+ my $emitter := Ops::Emitter.new(
+ :ops_file($file),
+ :trans($trans),
+ :script("opsc"),
+ :flags( hash(core => '1') )
+ );
+
+ my $sh := pir::new__Ps('StringHandle');
+ $sh.open('your_bank_account_information.txt', 'w');
+ $emitter.emit_c_source_file($sh);
+ $sh.close();
+ $sh.readall();
+}
+
+# vim: expandtab shiftwidth=4 ft=perl6:
Copied: branches/gsoc_threads/t/compilers/opsc/common.pir (from r47544, trunk/t/compilers/opsc/common.pir)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/compilers/opsc/common.pir Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/compilers/opsc/common.pir)
@@ -0,0 +1,41 @@
+#! parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 COMMON FUNCTIONS FOR TESTING
+
+=cut
+
+.loadlib 'io_ops'
+
+.sub '_parse_buffer'
+ .param string buffer
+
+ .local pmc compiler
+ compiler = compreg 'Ops'
+ .tailcall compiler.'parse'(buffer, 'target'=>'parse')
+.end
+
+.sub '_parse_one_file'
+ .param string filename
+ .local string buf
+
+ buf = '_slurp'(filename)
+ .tailcall '_parse_buffer'(buf)
+.end
+
+
+.sub '_slurp'
+ .param string file
+ .local pmc pio
+ pio = open file
+ $S0 = pio.'readall'()
+ close pio
+ .return ($S0)
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gsoc_threads/t/compilers/pct/past.t
==============================================================================
--- branches/gsoc_threads/t/compilers/pct/past.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/compilers/pct/past.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -7,7 +7,7 @@
use warnings;
use lib qw(t . lib ../lib ../../lib ../../../lib);
-use Parrot::Test tests => 10;
+use Parrot::Test tests => 11;
foreach my $name (qw(Node Val Var Op Block Stmts)) {
my $module = "'PAST';'$name'";
@@ -133,6 +133,36 @@
}
OUT
+pir_output_is( <<'CODE', <<'OUT', 'PAST::Val constant nodes' );
+.sub 'main' :main
+ load_bytecode 'PCT.pbc'
+
+ .local pmc block
+ $P0 = get_hll_global ['PAST'], 'Block'
+ block = $P0.'new'('name'=>'xyz', 'subid'=>'xyz')
+
+ .local pmc node
+ $P0 = get_hll_global ['PAST'], 'Val'
+ node = $P0.'new'('value'=> 'CONTROL_NEXT', 'returns'=>'!except_types')
+ block.'push'(node)
+
+ .local pmc compiler
+ compiler = get_hll_global ['PAST'], 'Compiler'
+ $S0 = compiler.'compile'(block, 'target'=>'pir')
+ say $S0
+.end
+CODE
+
+.namespace []
+.include "except_types.pasm"
+.sub "xyz" :subid("xyz")
+.annotate 'line', 0
+ .return (.CONTROL_NEXT)
+.end
+
+
+OUT
+
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
Modified: branches/gsoc_threads/t/compilers/pct/post.t
==============================================================================
--- branches/gsoc_threads/t/compilers/pct/post.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/compilers/pct/post.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -6,7 +6,7 @@
use strict;
use warnings;
use lib qw(t . lib ../lib ../../lib ../../../lib);
-use Parrot::Test tests => 7;
+use Parrot::Test tests => 8;
foreach my $name (qw(Op Ops Sub Label)) {
my $module = "'POST';'$name'";
@@ -114,6 +114,35 @@
OUT
+
+pir_output_is( <<'CODE', <<'OUT', 'Generate directives' );
+.sub _main
+ load_bytecode 'PCT.pbc'
+ load_bytecode 'dumper.pbc'
+ .local pmc node
+ node = new ['POST';'Sub']
+ node.'name'('foo')
+ node.'add_directive'('.include "cclass.pasm"')
+ node.'add_directive'('.include "exception_types.pasm"')
+
+ .local pmc compiler
+ compiler = new ['POST';'Compiler']
+ $S0 = compiler.'to_pir'(node)
+ say $S0
+ .return ()
+.end
+CODE
+
+.namespace []
+.include "cclass.pasm"
+.include "exception_types.pasm"
+.sub "foo" :subid("post10")
+.end
+
+
+OUT
+
+
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
Modified: branches/gsoc_threads/t/compilers/pge/p5regex/p5rx.t
==============================================================================
--- branches/gsoc_threads/t/compilers/pge/p5regex/p5rx.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/compilers/pge/p5regex/p5rx.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -55,6 +55,8 @@
.const int TESTS = 960
+.loadlib 'io_ops'
+
.sub main :main
load_bytecode 'Test/Builder.pbc'
load_bytecode 'PGE.pbc'
Modified: branches/gsoc_threads/t/compilers/pge/perl6regex/01-regex.t
==============================================================================
--- branches/gsoc_threads/t/compilers/pge/perl6regex/01-regex.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/compilers/pge/perl6regex/01-regex.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -54,6 +54,8 @@
.const string TESTS = 'no_plan'
+.loadlib 'io_ops'
+
.sub main :main
load_bytecode 'Test/Builder.pbc'
load_bytecode 'PGE.pbc'
Copied: branches/gsoc_threads/t/dynoplibs/bit.t (from r47544, trunk/t/dynoplibs/bit.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/dynoplibs/bit.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/dynoplibs/bit.t)
@@ -0,0 +1,297 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/dynoplibs/bit.t - Bitwise Dynops
+
+=head1 SYNOPSIS
+
+ % prove t/dynoplibs/bit.t
+
+=head1 DESCRIPTION
+
+Tests basic arithmetic on various combinations of Parrot integer and
+number types.
+
+=cut
+
+.loadlib 'bit_ops'
+
+.sub main :main
+ .include 'test_more.pir'
+
+ plan(56)
+
+ bnot_p_p_creates_destination()
+ bands_null_string()
+ bands_2()
+ bands_3()
+ bands_cow()
+ bors_null_string()
+ bors_2()
+ bors_3()
+ bors_cow()
+ bxors_null_string()
+ bxors_2()
+ bxors_3()
+ bxors_cow()
+ bnots_null_string()
+ bnots_2()
+ bnots_cow()
+ # END_OF_TESTS
+
+.end
+
+.sub 'bnot_p_p_creates_destination'
+ $P0 = box 3
+ $P1 = bnot $P0
+ is( $P1, -4, 'bnot_p_p_creates_destination')
+.end
+
+.sub bands_null_string
+ null $S1
+ set $S2, "abc"
+ $S1 = bands $S1, $S2
+ null $S3
+ is( $S1, $S3, 'ok1' )
+
+ set $S1, ""
+ $S1 = bands $S1, $S2
+ nok( $S1, 'ok2' )
+
+ null $S2
+ set $S1, "abc"
+ $S1 = bands $S1, $S2
+ null $S3
+ is( $S1, $S3, 'ok3' )
+
+ set $S2, ""
+ $S1 = bands $S1, $S2
+ nok( $S1, 'ok4' )
+.end
+
+.sub bands_2
+ set $S1, "abc"
+ set $S2, "EE"
+ $S1 = bands $S1, $S2
+ is( $S1, "A@", 'bands 2' )
+ is( $S2, "EE", 'bands 2' )
+.end
+
+.sub bands_3
+ set $S1, "abc"
+ set $S2, "EE"
+ bands $S0, $S1, $S2
+ is( $S0, "A@", 'bands 3' )
+ is( $S1, "abc", 'bands 3' )
+ is( $S2, "EE", 'bands 3' )
+.end
+
+.sub bands_cow
+ set $S1, "foo"
+ substr $S2, $S1, 0, 3
+ $S1 = bands $S1, "bar"
+ is( $S2, "foo", 'bands COW' )
+.end
+
+.sub bors_null_string
+ null $S1
+ null $S2
+ $S1 = bors $S1, $S2
+ null $S3
+ is( $S1, $S3, 'bors NULL string' )
+
+ null $S1
+ set $S2, ""
+ $S1 = bors $S1, $S2
+ null $S3
+ is( $S1, $S3, 'bors NULL string' )
+
+ $S2 = bors $S2, $S1
+ is( $S2, $S3, 'bors NULL string' )
+
+ null $S1
+ set $S2, "def"
+ $S1 = bors $S1, $S2
+ is( $S1, "def", 'bors NULL string' )
+
+ null $S2
+ $S1 = bors $S1, $S2
+ is( $S1, "def", 'bors NULL string' )
+
+ null $S1
+ null $S2
+ bors $S3, $S1, $S2
+ null $S4
+ is( $S3, $S4, 'bors NULL string' )
+
+ set $S1, ""
+ bors $S3, $S1, $S2
+ is( $S3, $S4, 'bors NULL string' )
+
+ bors $S3, $S2, $S1
+ is( $S3, $S4, 'bors NULL string' )
+
+ set $S1, "def"
+ bors $S3, $S1, $S2
+ is( $S3, "def", 'bors NULL string' )
+
+ bors $S3, $S2, $S1
+ is( $S3, "def", 'bors NULL string' )
+.end
+
+.sub bors_2
+ set $S1, "abc"
+ set $S2, "EE"
+ $S1 = bors $S1, $S2
+ is( $S1, "egc", 'bors 2' )
+ is( $S2, "EE", 'bors 2' )
+.end
+
+.sub bors_3
+ set $S1, "abc"
+ set $S2, "EE"
+ bors $S0, $S1, $S2
+ is( $S0, "egc", 'bors 3' )
+ is( $S1, "abc", 'bors 3' )
+ is( $S2, "EE", 'bors 3' )
+.end
+
+.sub bors_cow
+ set $S1, "foo"
+ substr $S2, $S1, 0, 3
+ $S1 = bors $S1, "bar"
+ is( $S2, "foo", 'bors COW' )
+.end
+
+.sub bxors_null_string
+ null $S1
+ null $S2
+ $S1 = bxors $S1, $S2
+ null $S3
+ is( $S1, $S3, 'bxors NULL string' )
+
+ null $S1
+ set $S2, ""
+ $S1 = bxors $S1, $S2
+ null $S3
+ is( $S1, $S3, 'bxors NULL string' )
+
+ $S2 = bxors $S2, $S1
+ is( $S2, $S3, 'bxors NULL string' )
+
+ null $S1
+ set $S2, "abc"
+ $S1 = bxors $S1, $S2
+ is( $S1, "abc", 'bxors NULL string' )
+
+ null $S2
+ $S1 = bxors $S1, $S2
+ is( $S1, "abc", 'bxors NULL string' )
+
+ null $S1
+ null $S2
+ bxors $S3, $S1, $S2
+ null $S4
+ is( $S3, $S4, 'bxors NULL string' )
+
+ set $S1, ""
+ bxors $S3, $S1, $S2
+ is( $S3, $S4, 'bxors NULL string' )
+
+ bxors $S3, $S2, $S1
+ is( $S3, $S4, 'bxors NULL string' )
+
+ set $S1, "abc"
+ bxors $S3, $S1, $S2
+ is( $S3, "abc", 'bxors NULL string' )
+
+ bxors $S3, $S2, $S1
+ is( $S3, "abc", 'bxors NULL string' )
+.end
+
+.sub bxors_2
+ set $S1, "a2c"
+ set $S2, "Dw"
+ $S1 = bxors $S1, $S2
+ is( $S1, "%Ec", 'bxors 2' )
+ is( $S2, "Dw", 'bxors 2' )
+
+ set $S1, "abc"
+ set $S2, " X"
+ $S1 = bxors $S1, $S2
+ is( $S1, "ABCX", 'bxors 2' )
+ is( $S2, " X", 'bxors 2' )
+.end
+
+.sub bxors_3
+ set $S1, "a2c"
+ set $S2, "Dw"
+ bxors $S0, $S1, $S2
+ is( $S0, "%Ec", 'bxors 3' )
+ is( $S1, "a2c", 'bxors 3' )
+ is( $S2, "Dw", 'bxors 3' )
+
+ set $S1, "abc"
+ set $S2, " Y"
+ bxors $S0, $S1, $S2
+ is( $S0, "ABCY", 'bxors 3' )
+ is( $S1, "abc", 'bxors 3' )
+ is( $S2, " Y", 'bxors 3' )
+.end
+
+.sub bxors_cow
+ set $S1, "foo"
+ substr $S2, $S1, 0, 3
+ $S1 = bxors $S1, "bar"
+ is( $S2, "foo", 'bxors COW' )
+.end
+
+.sub bnots_null_string
+ null $S1
+ null $S2
+ bnots $S1, $S2
+ null $S3
+ is( $S1, $S3, 'bnots NULL string' )
+
+ null $S1
+ set $S2, ""
+ bnots $S1, $S2
+ null $S3
+ is( $S1, $S3, 'bnots NULL string' )
+
+ bnots $S2, $S1
+ is( $S2, $S3, 'bnots NULL string' )
+.end
+
+# This was the previous test used for t/native_pbc/string.t
+.sub bnots_2
+ skip( 4, "No unicode yet" )
+ # getstdout $P0
+ # push $P0, "utf8"
+ # set $S1, "a2c"
+ # bnots $S2, $S1
+ # is( $S1, "a2c", 'bnots 2' )
+ # is( $S2, "\xC2\x9E\xC3\x8D\xC2\x9C", 'bnots 2' )
+ #
+ # bnots $S1, $S1
+ # is( $S1, "\xC2\x9E\xC3\x8D\xC2\x9C", 'bnots 2' )
+ #
+ # bnots $S1, $S1
+ # is( $S1, "a2c", 'bnots 2' )
+.end
+
+.sub bnots_cow
+ set $S1, "foo"
+ substr $S2, $S1, 0, 3
+ bnots $S1, $S1
+ is( $S2, "foo", 'bnots COW' )
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/gsoc_threads/t/dynoplibs/debug.t (from r47544, trunk/t/dynoplibs/debug.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/dynoplibs/debug.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/dynoplibs/debug.t)
@@ -0,0 +1,202 @@
+#!perl
+# Copyright (C) 2001-2007, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+use Test::More;
+use Parrot::Test tests => 8;
+
+=head1 NAME
+
+t/op/debuginfo.t - Debugging Info
+
+=head1 SYNOPSIS
+
+ % prove t/op/debuginfo.t
+
+=head1 DESCRIPTION
+
+Tests the various set and get operations for line, package and file info,
+as well as backtrace tests.
+
+=cut
+
+$ENV{TEST_PROG_ARGS} ||= '';
+my $nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
+ ? "\\(unknown file\\)\n-1" : "debug_\\d+\\.pasm\n\\d";
+
+#SKIP: {
+#skip "disabled on fast-core",1 if $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/;
+
+pasm_output_like( <<'CODE', <<"OUTPUT", "getline, getfile" );
+.loadlib 'debug_ops'
+.pcc_sub main:
+ getfile S0
+ getline I0
+ say S0
+ say I0
+ end
+CODE
+/$nolineno/
+OUTPUT
+
+pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - Null PMC access" );
+.sub main
+ print "ok 1\n"
+ a()
+ print "not ok 10\n"
+.end
+.sub a
+ print "ok 2\n"
+ b()
+ print "not ok 9\n"
+.end
+.sub b
+ print "ok 3\n"
+ c()
+ print "not ok 8\n"
+.end
+.sub c
+ print "ok 4\n"
+ d()
+ print "not ok 7\n"
+.end
+.sub d
+ print "ok 5\n"
+ $P0 = null
+ $P0()
+ print "not ok 6\n"
+.end
+CODE
+/^ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+Null PMC access in invoke\(\)
+current instr\.: 'd' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'c' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'b' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'a' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
+OUTPUT
+
+pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - method not found" );
+.namespace ["Test1"]
+.sub main
+ print "ok 1\n"
+ foo()
+ print "not ok 5\n"
+.end
+.sub foo
+ print "ok 2\n"
+ $P0 = new 'Integer'
+ print "ok 3\n"
+ $P0."nosuchmethod"()
+ print "not ok 4\n"
+.end
+CODE
+/^ok 1
+ok 2
+ok 3
+Method 'nosuchmethod' not found for invocant of class 'Integer'
+current instr.: 'parrot;Test1;foo' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'parrot;Test1;main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
+OUTPUT
+
+pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - fetch of unknown lexical" );
+.namespace ["Test2"]
+.sub main
+ print "ok 1\n"
+ foo()
+ print "not ok 3\n"
+.end
+.sub foo :lex
+ print "ok 2\n"
+ find_lex $P0, "nosuchlex"
+ print "not ok 3\n"
+.end
+CODE
+/^ok 1
+ok 2
+Lexical 'nosuchlex' not found
+current instr.: 'parrot;Test2;foo' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'parrot;Test2;main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
+OUTPUT
+
+pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - recursion 1" );
+.sub main
+ main()
+.end
+CODE
+/^maximum recursion depth exceeded
+current instr\.: 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)
+\.\.\. call repeated \d+ times/
+OUTPUT
+
+pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - recursion 2" );
+.sub main
+ rec(91)
+.end
+.sub rec
+ .param int i
+ if i == 0 goto END
+ dec i
+ rec(i)
+ .return()
+END:
+ $P0 = null
+ $P0()
+.end
+CODE
+/^Null PMC access in invoke\(\)
+current instr\.: 'rec' pc (\d+|-1) \(.*?:(\d+|-1)\)
+called from Sub 'rec' pc (\d+|-1) \(.*?:(\d+|-1)\)
+\.\.\. call repeated 90 times
+called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
+OUTPUT
+
+$nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
+ ? '\(\(unknown file\):-1\)' : '\(xyz.pir:126\)';
+
+pir_error_output_like( <<'CODE', <<"OUTPUT", "setfile and setline" );
+.sub main :main
+ setfile "xyz.pir"
+ setline 123
+ $S0 = 'hello'
+ $I0 = 456
+ 'no_such_function'($S0, $I0)
+.end
+CODE
+/$nolineno/
+OUTPUT
+
+$nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
+ ? '\(\(unknown file\):-1\)' : '\(foo.p6:128\)';
+pir_error_output_like( <<'CODE', <<"OUTPUT", "setfile and setline" );
+.sub main :main
+ setfile "foo.p6"
+ setline 123
+ $P0 = new 'Integer'
+ assign $P0, 9876
+ set_global '$a', $P0
+
+ setline 124
+ $P0 = get_global '$a'
+ $P1 = clone $P0
+ add $P1, 1
+ 'nsf'($P1)
+.end
+CODE
+/$nolineno/
+OUTPUT
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Copied: branches/gsoc_threads/t/dynoplibs/io-old.t (from r47544, trunk/t/dynoplibs/io-old.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/dynoplibs/io-old.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/dynoplibs/io-old.t)
@@ -0,0 +1,91 @@
+#! perl
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+
+use Test::More;
+use Parrot::Test tests => 4;
+use Parrot::Test::Util 'create_tempfile';
+
+=head1 NAME
+
+t/pmc/io.t - IO Ops
+
+=head1 SYNOPSIS
+
+ % prove t/pmc/io.t
+
+=head1 DESCRIPTION
+
+Tests the Parrot IO operations.
+
+=cut
+
+my ($FOO, $temp_file) = create_tempfile( UNLINK => 1 );
+close $FOO;
+
+pasm_error_output_like( <<"CODE", <<'OUTPUT', '32bit seek: exception (ops)' );
+.loadlib 'io_ops'
+ open P0, "$temp_file", 'w'
+ seek P0, -1, 0
+ say "error!"
+ end
+CODE
+/seek failed \(32bit\)/
+OUTPUT
+
+pasm_error_output_like( <<"CODE", <<'OUTPUT', '64bit seek: exception (ops)' );
+.loadlib 'io_ops'
+ open P0, "$temp_file", 'w'
+ seek P0, -1, -1, 0
+ say "error!"
+ end
+CODE
+/seek failed \(64bit\)/
+OUTPUT
+
+pasm_output_is( <<"CODE", <<'OUTPUT', "peek (ops)" );
+.loadlib 'io_ops'
+ open P0, "$temp_file", 'w'
+ print P0, "a line\\n"
+ close P0
+ open P0, "$temp_file", 'r'
+ peek S0, P0
+ print S0
+ peek S1, P0
+ print S1
+ print "\\n"
+ read S2, P0, 2
+ peek S3, P0
+ print S3
+ print "\\n"
+ end
+CODE
+aa
+l
+OUTPUT
+
+pasm_output_is( <<"CODE", <<'OUTPUT', "peek on an empty file (ops)" );
+.loadlib 'io_ops'
+ open P0, "$temp_file", 'w'
+ close P0
+ open P0, "$temp_file", 'r'
+ peek S0, P0
+ eq S0, "", OK1
+ print "not "
+OK1:
+ say "ok 1"
+ end
+CODE
+ok 1
+OUTPUT
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Copied: branches/gsoc_threads/t/dynoplibs/io.t (from r47544, trunk/t/dynoplibs/io.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/dynoplibs/io.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/dynoplibs/io.t)
@@ -0,0 +1,285 @@
+#!./parrot
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/op/io.t - Testing io opcodes
+
+=head1 SYNOPSIS
+
+ % prove t/op/io.t
+
+=head1 DESCRIPTION
+
+Tests various io opcodes.
+
+=cut
+
+.const int TESTS = 12
+
+.loadlib 'io_ops'
+
+.sub 'main' :main
+ .include 'test_more.pir'
+
+ plan(TESTS)
+
+ read_on_null()
+ open_delegates_to_filehandle_pmc()
+ open_null_filename()
+ open_null_mode()
+ open_pipe_for_reading()
+ getfd_fdopen()
+ printerr_tests()
+ stat_tests()
+
+ # must come after (these don't use test_more)
+ open_pipe_for_writing()
+ read_invalid_fh()
+.end
+
+.sub open_delegates_to_filehandle_pmc
+ load_bytecode 'P6object.pbc'
+
+ .local pmc p6meta, interp, classes, classid
+ p6meta = get_root_global ["parrot"], "P6metaclass"
+ p6meta.'new_class'('Testing')
+
+ interp = getinterp
+ classes = interp[0]
+ classid = classes['Testing']
+ $I0 = classes['FileHandle']
+ set classes['FileHandle'], classid
+
+ $P1 = open '/foo'
+ is($P1,42,'open opcode delegates to the open method on the FileHandle PMC')
+
+ # replace the original, so we don't break other tests
+ set classes['FileHandle'], $I0
+
+.end
+
+.sub 'open_null_filename'
+ push_eh open_null_filename_failed
+ null $S0
+ $P0 = open $S0, 'r'
+ nok(1, 'open with null filename')
+ .return ()
+
+ open_null_filename_failed:
+ ok(1, 'open with null filename')
+.end
+
+.sub 'open_null_mode'
+ push_eh open_null_mode_failed
+ null $S0
+ $P0 = open 'some_name', $S0
+ nok(1, 'open with null mode')
+ .return ()
+
+ open_null_mode_failed:
+ ok(1, 'open with null mode')
+.end
+
+.loadlib 'sys_ops'
+.sub 'tt661_todo_test' :anon
+ # As of r41963, these tests need to be todo'ed at least on Win32. Add new
+ # platforms known to fail.
+ .include 'sysinfo.pasm'
+ $S0 = sysinfo .SYSINFO_PARROT_OS
+ if $S0 == 'MSWin32' goto tt661_todo
+
+ .return (0)
+
+ tt661_todo:
+ .return (1)
+.end
+
+.include 'iglobals.pasm'
+
+.sub 'open_pipe_for_reading'
+ .local pmc interp
+ interp = getinterp
+
+ .local pmc conf
+ conf = interp[.IGLOBALS_CONFIG_HASH]
+
+ .local string command
+ command = conf['build_dir']
+
+ .local string aux
+ aux = conf['slash']
+ command .= aux
+ aux = conf['test_prog']
+ command .= aux
+ aux = conf['exe']
+ command .= aux
+ command .= ' -V'
+
+ .local pmc pipe
+ pipe = open command, 'rp'
+ unless pipe goto open_pipe_for_reading_failed
+ .local string line
+ line = readline pipe
+ line = substr line, 0, 14
+ is('This is Parrot', line, 'open pipe for reading')
+ .return ()
+
+ open_pipe_for_reading_failed:
+ nok(1, 'open pipe for reading')
+ .return ()
+.end
+
+.sub 'open_pipe_for_writing'
+ $I0 = tt661_todo_test()
+ if $I0 goto open_pipe_for_writing_todoed
+ .local pmc interp
+ interp = getinterp
+
+ .local pmc conf
+ conf = interp[.IGLOBALS_CONFIG_HASH]
+
+ .local string command
+ command = conf['build_dir']
+
+ .local string aux
+ aux = conf['slash']
+ command .= aux
+ .local string filename
+ filename .= command
+ filename .= 'examples/pasm/cat.pasm'
+ aux = conf['test_prog']
+ command .= aux
+ aux = conf['exe']
+ command .= aux
+ command .= ' '
+ command .= filename
+
+ .local pmc pipe
+ pipe = open command, 'wp'
+ unless pipe goto open_pipe_for_writing_failed
+
+ pipe.'puts'("ok 9 - open pipe for writing\n")
+ close pipe
+ .return ()
+
+ open_pipe_for_writing_failed:
+ nok(1, 'open pipe for writing')
+ .return ()
+
+ open_pipe_for_writing_todoed:
+ todo(0, 'Unimplemented in this platform, TT #661')
+
+.end
+
+# TT #1178
+.sub 'getfd_fdopen'
+ getstdout $P0
+ $I0 = $P0.'get_fd'()
+ fdopen $P1, $I0, 'w'
+ $I0 = defined $P1
+ ok($I0, 'fdopen - no close')
+.end
+
+.sub 'read_on_null'
+ .const string description = "read on null PMC throws exception"
+ push_eh eh
+ null $P1
+ $S0 = read $P1, 1
+ ok(0, description)
+ goto ret
+ eh:
+ ok(1, description)
+ ret:
+ pop_eh
+ .return ()
+.end
+
+.sub 'read_invalid_fh'
+ $P0 = new ['FileHandle']
+
+ push_eh _readline_handler
+ $S0 = readline $P0
+ print "not "
+
+_readline_handler:
+ print "ok 10\n"
+ pop_eh
+
+ push_eh _read_handler
+ $S0 = read $P0, 1
+ print "not "
+
+_read_handler:
+ print "ok 11\n"
+ pop_eh
+
+ push_eh _print_handler
+ print $P0, "kill me now\n"
+ print "not "
+
+_print_handler:
+ print "ok 12\n"
+ pop_eh
+.end
+
+.sub 'printerr_tests'
+ # temporarily capture stderr
+ $P0 = getstderr
+ $P1 = new ['StringHandle']
+ $S0 = null
+ $P1.'open'($S0, 'w')
+ setstderr $P1
+
+ $P2 = new ['String']
+ $P2 = "This is a test\n"
+ printerr 10
+ printerr "\n"
+ printerr 1.0
+ printerr "\n"
+ printerr "foo"
+ printerr "\n"
+ printerr $P2
+
+ # restore stderr
+ setstderr $P0
+
+ $S0 = $P1.'readall'()
+ is($S0, <<'OUTPUT', 'printerr opcode')
+10
+1
+foo
+This is a test
+OUTPUT
+.end
+
+.sub 'stat_tests'
+ .local pmc pio
+ .local int len
+ .const string description = 'stat failed'
+ .include "stat.pasm"
+ push_eh eh
+ len = stat 'no_such_file', .STAT_FILESIZE
+ ok(0, description)
+ goto ret
+ eh:
+ ok(1, description)
+ ret:
+ pop_eh
+ .return ()
+.end
+
+.namespace ["Testing"]
+
+.sub open :method
+ .param pmc args :slurpy
+ .return(42)
+.end
+
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gsoc_threads/t/dynoplibs/math.t
==============================================================================
--- branches/gsoc_threads/t/dynoplibs/math.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/dynoplibs/math.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -16,11 +16,21 @@
=cut
+.macro exception_is ( M )
+ .local pmc exception
+ .local string message
+ .get_results (exception)
+
+ message = exception['message']
+ is( message, .M, .M )
+.endm
+
.loadlib 'math_ops'
+
.sub main :main
.include 'test_more.pir'
.include 'fp_equality.pasm'
- plan(20)
+ plan(34)
ok(1, "load math_ops")
rand $I0
test_2_arg_int()
@@ -32,6 +42,15 @@
test_local_nums()
test_local_nums_2_arg()
test_local_ints()
+ test_cmod_n()
+ test_exception_cmod_n_n_n_by_zero()
+ test_exception_cmod_n_nc_n_by_zero()
+ test_exception_cmod_n_n_nc_by_zero()
+ test_cmod()
+ test_cmod_i_i_i_by_zero()
+ test_cmod_i_ic_i_by_zero()
+ test_cmod_i_i_ic_by_zero()
+ test_cmod_float_integer_pmc_nan()
.end
.sub test_2_arg_int
@@ -178,6 +197,114 @@
finish:
.end
+.sub test_cmod_n
+ set $N0, 5.000
+ set $N1, 3.000
+ cmod $N2, $N0, $N1
+ is( $N2, "2", 'cmod_n' )
+.end
+
+.sub test_exception_cmod_n_n_n_by_zero
+ push_eh handler
+ set $N0, 0
+ set $N1, 10
+ cmod $N2, $N1, $N0
+ handler:
+ .exception_is( 'Divide by zero' )
+.end
+
+.sub test_exception_cmod_n_nc_n_by_zero
+ push_eh handler
+ set $N0, 0
+ cmod $N2, 10, $N0
+ handler:
+ .exception_is( 'Divide by zero' )
+.end
+
+.sub test_exception_cmod_n_n_nc_by_zero
+ push_eh handler
+ set $N1, 10
+ cmod $N2, $N1, 0
+ handler:
+ .exception_is( 'Divide by zero' )
+.end
+
+.sub 'test_cmod'
+ $I0 = 5
+ $I1 = 3
+ $I2 = cmod $I0, $I1
+ is($I2, 2, 'cmod_i_i_i')
+ is($I0, 5, 'cmod_i_i_i - dividend unchanged')
+ is($I1, 3, 'cmod_i_i_i - divisor unchanged')
+
+ $I0 = 12
+
+ $I1 = cmod $I0, 10
+ is($I1, 2, 'cmod_i_i_ic')
+
+ $I1 = cmod 14, $I0
+ is($I1, 2, 'cmod_i_ic_i')
+
+ $I1 = cmod 13, 11
+ is($I1, 2, 'cmod_i_ic_ic')
+.end
+
+.sub 'test_cmod_i_i_i_by_zero'
+ $I0 = 0
+ $I1 = 10
+ push_eh test_cmod_i_i_i_by_zero_catch
+ $I2 = cmod $I1, $I0
+ pop_eh
+ $I3 = 0
+ goto test_cmod_i_i_i_by_zero_end
+
+ test_cmod_i_i_i_by_zero_catch:
+ $I3 = 1
+
+ test_cmod_i_i_i_by_zero_end:
+ ok($I3, 'cmod_i_i_i by zero')
+.end
+
+.sub 'test_cmod_i_ic_i_by_zero'
+ $I0 = 0
+ push_eh test_cmod_i_ic_i_by_zero_catch
+ $I2 = cmod 10, $I0
+ pop_eh
+ $I3 = 0
+ goto test_cmod_i_ic_i_by_zero_end
+
+ test_cmod_i_ic_i_by_zero_catch:
+ $I3 = 1
+
+ test_cmod_i_ic_i_by_zero_end:
+ ok($I3, 'cmod_i_ic_i by zero')
+.end
+
+.sub 'test_cmod_i_i_ic_by_zero'
+ $I1 = 10
+ push_eh test_cmod_i_i_ic_by_zero_catch
+ $I2 = cmod $I1, 0
+ pop_eh
+ $I3 = 0
+ goto test_cmod_i_i_ic_by_zero_end
+
+ test_cmod_i_i_ic_by_zero_catch:
+ $I3 = 1
+
+ test_cmod_i_i_ic_by_zero_end:
+ ok($I3, 'cmod_i_i_ic by zero')
+.end
+
+.sub test_cmod_float_integer_pmc_nan
+ $P1 = new 'Float'
+ $P2 = new 'Integer'
+ $P2 = 1
+ $N0 = 'NaN'
+ cmod $P1, $P2, $N0
+ #is($P1, 'NaN', 'cmod with Float and Integer PMCs and NaN')
+ todo(0, 'cmod with Float and Integer PMCs and NaN', 'cmod does not play nicely with PMCs and NaN')
+.end
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/gsoc_threads/t/dynoplibs/obscure.t
==============================================================================
--- branches/gsoc_threads/t/dynoplibs/obscure.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/dynoplibs/obscure.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -17,6 +17,8 @@
=cut
.loadlib 'obscure_ops'
+.loadlib 'trans_ops' # needed for atan
+
.sub main :main
.include 'fp_equality.pasm'
.include 'test_more.pir'
Copied: branches/gsoc_threads/t/dynoplibs/pmc_pow.t (from r47544, trunk/t/dynoplibs/pmc_pow.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/dynoplibs/pmc_pow.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/dynoplibs/pmc_pow.t)
@@ -0,0 +1,84 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/dynoplibs/pmc_pow.t - Test C<pow> on PMCs
+
+=head1 SYNOPSIS
+
+ % prove t/dynoplibs/pmc_pew.t
+
+=head1 DESCRIPTION
+
+Test handling 3-arg C<pow> on PMCs.
+
+=cut
+
+.loadlib 'trans_ops'
+
+.sub main :main
+ .include 'test_more.pir'
+ .include 'iglobals.pasm'
+
+ plan (4)
+
+ # Don't check BigInt or BigNum without gmp
+ .local pmc interp # a handle to our interpreter object.
+ interp = getinterp
+ .local pmc config
+ config = interp[.IGLOBALS_CONFIG_HASH]
+ .local string gmp
+ gmp = config['gmp']
+
+ test_pow('Integer')
+ test_pow('Float')
+
+ if gmp goto do_big_ones
+ skip( 2, "will not test BigInt or BigNum without gmp" )
+ goto end
+
+ do_big_ones:
+ test_pow('BigInt')
+ test_pow('BigNum')
+
+ end:
+.end
+
+.sub test_pow
+ .param pmc type
+
+ $P0 = new type
+ $P0 = 40
+ $P1 = new type
+ $P1 = 2
+ $P2 = new type
+ $P2 = 115200
+
+ $P99 = $P2
+
+ $S0 = "original dest is untouched in pow for "
+ $S1 = type
+ concat $S0, $S1
+
+ # ignore exceptions
+ push_eh done
+ pow $P2, $P0, $P1
+
+ $I0 = cmp $P99, 115200
+
+ is( $I0, 0, $S0 )
+ goto end
+
+ done:
+ ok(1, 'ignoring exceptions')
+ end:
+.end
+
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/gsoc_threads/t/dynoplibs/string_pmc_bitwise.t (from r47544, trunk/t/dynoplibs/string_pmc_bitwise.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/dynoplibs/string_pmc_bitwise.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/dynoplibs/string_pmc_bitwise.t)
@@ -0,0 +1,304 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/dynoplibs/string_pmc_bitwise.t - Bitwise dynops on String PMC
+
+=head1 SYNOPSIS
+
+ % prove t/dynoplibs/string-pmc_bitwise.t
+
+=head1 DESCRIPTION
+
+Test C<bit_ops> dynops lib on C<String> PMC.
+
+=cut
+
+.loadlib 'bit_ops'
+
+.sub main :main
+ .include 'test_more.pir'
+
+ plan(47)
+
+ bands_null_string()
+ test_bands_2()
+ test_bands_3()
+ bors_null_string()
+ test_bors_2()
+ test_bors_3()
+ bxors_null_string()
+ bxors_2()
+ bxors_3()
+ bnots_null_string()
+.end
+
+.sub bands_null_string
+ new $P1, ['String']
+ new $P2, ['String']
+ new $P3, ['String']
+
+ null $S1
+ set $P1, $S1
+
+ set $S2, "abc"
+ set $P2, $S2
+
+ bands $P1, $P2
+
+ null $S3
+ set $P3, $S3
+
+ is( $P1, $P3, 'band null, "abc" -> null' )
+
+ set $P1, ""
+ bands $P1, $P2
+ nok( $P1, 'band "", "abc" -> false' )
+
+ null $S2
+ set $P2, $S2
+ set $P1, "abc"
+
+ bands $P1, $P2
+
+ null $S3
+ set $P3, $S3
+
+ is( $P1, $P3, 'bands "abc", null -> null' )
+
+ set $P2, ""
+ bands $P1, $P2
+ nok( $P1, 'bans "abc", "" -> false' )
+
+.end
+
+.sub test_bands_2
+ new $P1, ['String']
+ new $P2, ['String']
+ set $P1, "abc"
+ set $P2, "EE"
+ bands $P1, $P2
+ is( $P1, "A@", 'bands "abc", "EE" -> "A@"' )
+ is( $P2, "EE", '$2 is unchanged' )
+.end
+
+.sub test_bands_3
+ new $P1, ['String']
+ new $P2, ['String']
+ new $P0, ['String']
+ set $P1, "abc"
+ set $P2, "EE"
+ bands $P0, $P1, $P2
+ is( $P0, "A@", 'bands "abc", "EE" -> "A@"' )
+ is( $P1, "abc", '$2 is unchanged' )
+ is( $P2, "EE", '$3 is unchanged' )
+.end
+
+.sub bors_null_string
+ new $P1, ['String']
+ new $P2, ['String']
+ new $P3, ['String']
+
+ null $S1
+ null $S2
+ set $P1, $S1
+ set $P2, $S2
+ bors $P1, $P2
+ null $S3
+ set $P3, $S3
+ is( $P1, $P3, 'bors null, null -> null' )
+
+ null $S1
+ set $P1, $S1
+ set $P2, ""
+ bors $P1, $P2
+ null $S3
+ set $P3, $S3
+ is( $P1, $P3, 'bors null, "" -> null' )
+
+ bors $P2, $P1
+ is( $P2, $P3, 'bors "", null -> null' )
+
+ null $S1
+ set $P1, $S1
+ set $P2, "def"
+ bors $P1, $P2
+ is( $P1, "def", 'bors null, "def" -> "def" / true' )
+
+ null $S2
+ set $P2, $S2
+ bors $P1, $P2
+ is( $P1, "def", 'bors "def", null -> "def" / true' )
+
+ null $S1
+ null $S2
+ set $P1, $S1
+ set $P2, $S2
+ bors $P3, $P1, $P2
+ null $S4
+ is( $P3, $S4, 'bors null, null -> null' )
+
+ set $P1, ""
+ bors $P3, $P1, $P2
+ is( $P3, $S4, 'bors "", null -> null' )
+
+ bors $P3, $P2, $P1
+ is( $P3, $S4, 'bors null, "" -> null' )
+
+ set $P1, "def"
+ bors $P3, $P1, $P2
+ is( $P3, "def", 'bors "def", null -> "def"' )
+
+ bors $P3, $P2, $P1
+ is( $P3, "def", 'bors null, "def" -> "def"' )
+.end
+
+.sub test_bors_2
+ new $P1, ['String']
+ new $P2, ['String']
+ set $P1, "abc"
+ set $P2, "EE"
+
+ bors $P1, $P2
+ is( $P1, "egc", 'bors "abc", "EE" -> "egc"' )
+ is( $P2, "EE", '$2 is unchanged' )
+.end
+
+.sub test_bors_3
+ new $P1, ['String']
+ new $P2, ['String']
+ new $P0, ['String']
+ set $P1, "abc"
+ set $P2, "EE"
+
+ bors $P0, $P1, $P2
+ is( $P0, "egc", 'bors "abc", "EE" -> "egc"' )
+ is( $P1, "abc", '$2 unchanged' )
+ is( $P2, "EE", '$3 unchanged' )
+.end
+
+.sub bxors_null_string
+ new $P1, ['String']
+ new $P2, ['String']
+ new $P3, ['String']
+ null $S1
+ null $S2
+ set $P1, $S1
+ set $P2, $S2
+ bxors $P1, $P2
+ null $S3
+ is( $P1, $S3, 'bxors null, null -> null' )
+
+ null $S1
+ set $P1, $S1
+ set $P2, ""
+ bxors $P1, $P2
+ null $S3
+ is( $P1, $S3, 'bxors null, "" -> null' )
+
+ bxors $P2, $P1
+ is( $S2, $S3, 'bxors "", null -> null' )
+
+ null $S1
+ set $P1, $S1
+ set $P2, "abc"
+ bxors $P1, $P2
+ is( $P1, "abc", 'bxors null, "abc" -> "abc"' )
+
+ null $S2
+ set $P2, $S2
+ bxors $P1, $P2
+ is( $P1, "abc", 'bxors "abc", "null, -> "abc"' )
+
+ null $S1
+ null $S2
+ set $P1, $S1
+ set $P2, $S2
+ bxors $P3, $P1, $P2
+ null $S4
+ is( $P3, $S4, 'bxors3 null, null -> null' )
+
+ set $P1, ""
+ bxors $P3, $P1, $P2
+ is( $P3, $S4, 'bxors3 "", null -> null' )
+
+ bxors $P3, $P2, $P1
+ is( $P3, $S4, 'bxors3 null, null -> null' )
+
+ set $P1, "abc"
+ bxors $P3, $P1, $P2
+ is( $P3, "abc", 'bxors3 "abc", null -> "abc"' )
+
+ bxors $P3, $P2, $P1
+ is( $P3, "abc", 'bxors3 null, "abc" -> "abc"' )
+.end
+
+.sub bxors_2
+ new $P1, ['String']
+ new $P2, ['String']
+ new $P3, ['String']
+
+ set $P1, "a2c"
+ set $P2, "Dw"
+ bxors $P1, $P2
+ is( $P1, "%Ec", 'bxors "a2c", "Dw" -> "%Ec"' )
+ is( $P2, "Dw", '... $2 unchanged' )
+
+ set $P1, "abc"
+ set $P2, " X"
+ bxors $P1, $P2
+ is( $P1, "ABCX", 'bxors "abc", " X" -> "ABCX"' )
+ is( $P2, " X", '... $2 unchanged' )
+.end
+
+.sub bxors_3
+ new $P1, ['String']
+ new $P2, ['String']
+ new $P0, ['String']
+
+ set $P1, "a2c"
+ set $P2, "Dw"
+ bxors $P0, $P1, $P2
+ is( $P0, "%Ec", 'bxors "a2c", "Dw" -> "%Ec"' )
+ is( $P1, "a2c", '... $2 unchanged' )
+ is( $P2, "Dw", '... $3 unchanged' )
+
+ set $P1, "abc"
+ set $P2, " Y"
+ bxors $P0, $P1, $P2
+ is( $P0, "ABCY", 'bxors "abc", " Y" -> "ABCY"' )
+ is( $P1, "abc", '... $2 unchanged' )
+ is( $P2, " Y", '... $3 unchanged' )
+.end
+
+.sub bnots_null_string
+ new $P1, ['String']
+ new $P2, ['String']
+ new $P3, ['String']
+
+ null $S1
+ null $S2
+ set $P1, $S1
+ set $P2, $S2
+ bnots $P1, $P2
+ null $S3
+ is( $P1, $S3, 'bnots null, null -> null' )
+
+ null $S1
+ set $P1, $S1
+ set $P2, ""
+ bnots $P1, $P2
+ null $S3
+ is( $P1, $S3, 'bnots null, "" -> null' )
+
+ bnots $P2, $P1
+ is( $S2, $S3, 'bnots "", null -> null' )
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/gsoc_threads/t/dynoplibs/sysinfo.t (from r47544, trunk/t/dynoplibs/sysinfo.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/dynoplibs/sysinfo.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/dynoplibs/sysinfo.t)
@@ -0,0 +1,191 @@
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
+
+# initial work by Brad Gilbert b2gills <at> gmail <dot> com
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+
+use Test::More;
+use Config;
+
+use Parrot::Test tests => 14;
+use Parrot::Config;
+
+
+=head1 NAME
+
+t/op/sysinfo.t - System Info
+
+=head1 SYNOPSIS
+
+ % prove t/op/sysinfo.t
+
+=head1 DESCRIPTION
+
+Tests for basic system information.
+
+=over 4
+
+=item 1 The size of a platform integer
+
+=item 2 The size of a platform float
+
+=item 3 The size of a platform pointer. (Largest possible data pointer)
+
+=item 4 The OS name
+
+=item 5 The OS version string
+
+=item 6 The OS version number string
+
+=item 7 The CPU architecture
+
+=item 8 The CPU model
+
+=item 9, 10 The min and max INTVAL values
+
+=back
+
+=cut
+
+
+my @setup = (
+ { pconfig_key => 'intvalsize',
+ pasm_key => 1,
+ pir_key => 'SYSINFO_PARROT_INTSIZE',
+ desc => 'integer size',
+ reg_type => 'I',
+ },
+ { pconfig_key => 'doublesize',
+ pasm_key => 2,
+ pir_key => 'SYSINFO_PARROT_FLOATSIZE',
+ desc => 'float size',
+ reg_type => 'I',
+ },
+ { pconfig_key => 'ptrsize',
+ pasm_key => 3,
+ pir_key => 'SYSINFO_PARROT_POINTERSIZE',
+ desc => 'pointer size',
+ reg_type => 'I',
+ },
+ { pconfig_key => 'osname',
+ pasm_key => 4,
+ pir_key => 'SYSINFO_PARROT_OS',
+ desc => 'osname',
+ reg_type => 'S',
+ },
+ { pconfig_key => 'cpuarch',
+ pasm_key => 7,
+ pir_key => 'SYSINFO_CPU_ARCH',
+ desc => 'CPU Arch Family',
+ reg_type => 'S',
+ },
+);
+
+foreach ( @setup ) {
+ if ( $_->{reg_type} eq 'I' ) {
+ pasm_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PASM sysinfo $_->{desc}" );
+ .loadlib 'sys_ops'
+ sysinfo_i_ic I1, $_->{pasm_key}
+ print I1
+end
+CODE
+ pir_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PIR sysinfo $_->{desc}" );
+.loadlib 'sys_ops'
+.include 'sysinfo.pasm'
+.sub main :main
+ \$I0 = sysinfo .$_->{pir_key}
+ print \$I0
+.end
+CODE
+ }
+ else {
+ pasm_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "sysinfo $_->{desc}" );
+ .loadlib 'sys_ops'
+ sysinfo_s_ic S1, $_->{pasm_key}
+ print S1
+end
+CODE
+ pir_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PIR sysinfo $_->{desc}" );
+.loadlib 'sys_ops'
+.include 'sysinfo.pasm'
+.sub main :main
+ \$S0 = sysinfo .$_->{pir_key}
+ print \$S0
+.end
+CODE
+ }
+}
+
+SKIP:
+{
+ $PConfig{osname} eq 'MSWin32'
+ or skip "Tests only meaningful on Win32", 2;
+ SKIP:
+ {
+ eval { require Win32; } or
+ skip "requires package Win32 for these tests", 2;
+
+ my $osname = Win32::GetOSName();
+ $osname = 'WinXP' if $osname =~ m/^WinXP/;
+ TODO: {
+ local $TODO = "Not Currently Implemented";
+ pasm_output_is( <<'CODE', $osname, "sysinfo OS version string" );
+ .loadlib 'sys_ops'
+ sysinfo_s_ic S1, 5
+ print S1
+end
+CODE
+
+ my ( $osvername, $major, $minor, $id ) = Win32::GetOSVersion();
+
+ pasm_output_is( <<'CODE', "$major.$minor", "sysinfo OS version number string" );
+ .loadlib 'sys_ops'
+ sysinfo_s_ic S1, 6
+ print S1
+end
+CODE
+ } # END todo block
+ } # END inner SKIP block
+} # END outer SKIP block
+
+SKIP:
+{
+ skip "Requires a lot of work to find out the correct answer", 1;
+
+ pasm_output_is( <<'CODE', $PConfig{archname}, "sysinfo CPU Model" );
+ .loadlib 'sys_ops'
+ sysinfo_s_ic S1, 8
+ print S1
+end
+CODE
+}
+
+# 9, 10
+
+SKIP:
+{
+ skip 'Testing only in some known platforms', 1
+ unless $PConfig{osname} eq 'linux';
+
+ pir_output_like( <<'CODE', '/^-[1-9][0-9]*\n[1-9][0-9]*\n$/', 'INTVAL min and max values');
+.loadlib 'sys_ops'
+.include 'sysinfo.pasm'
+.sub main :main
+ $I0 = sysinfo .SYSINFO_PARROT_INTMIN
+ say $I0
+ $I0 = sysinfo .SYSINFO_PARROT_INTMAX
+ say $I0
+.end
+CODE
+}
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Copied: branches/gsoc_threads/t/dynoplibs/time.t (from r47544, trunk/t/dynoplibs/time.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/dynoplibs/time.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/dynoplibs/time.t)
@@ -0,0 +1,89 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/dynoplibs/time.t - Time Dynops
+
+=cut
+
+.loadlib 'sys_ops'
+
+.sub main :main
+ .include 'test_more.pir'
+
+ plan(10)
+
+ test_gmtime_s_i()
+ test_time_n_vs_time_i()
+ test_decodetime_p_i()
+ test_localtime_s_i()
+ test_decodelocaltime_p_i()
+.end
+
+.sub test_gmtime_s_i
+ $S0 = gmtime 0
+ $I0 = isnull $S0
+ is($I0, 0, "gmtime string is not null")
+ is($S0, "Thu Jan 1 00:00:00 1970\n", "correct epoch")
+ $I1 = length $S0
+ is($I1, 25, "string is the correct length")
+.end
+
+.sub test_time_n_vs_time_i
+ .local int time_int
+ time_int = time
+
+ .local num time_float
+ time_float = time
+
+ # check if time_float is within [time_int - 5;time_int + 5]
+ .local int time_int_lower
+ time_int_lower = time_int - 5
+ if time_float < time_int_lower goto FAIL
+ .local int time_int_upper
+ time_int_upper = time_int + 5
+ if time_float > time_int_upper goto FAIL
+
+ ok(1, "time_n value corresponds to time_i value")
+ .return()
+
+ FAIL:
+ ok(0, "time_n value does not correspond to time_t value")
+ .return()
+.end
+
+.sub test_decodetime_p_i
+ $P0 = decodetime 0
+ $I0 = $P0
+ is($I0, 9, "decodetime result has 9 values")
+ $S0 = typeof $P0
+ # TODO: Actually, this should return whatever HLL type replaces
+ # FixedIntegerArray. We should test this behavior with a new HLL
+ is($S0, "FixedIntegerArray", "decodetime returns the correct PMC type")
+.end
+
+.sub test_localtime_s_i
+ $S0 = localtime 0
+ $I0 = isnull $S0
+ is($I0, 0, "localtime string is not a null string")
+ $I0 = length $S0
+ is($I0, 25, "localtime string is the correct length")
+.end
+
+.sub test_decodelocaltime_p_i
+ $P0 = decodelocaltime 0
+ $I0 = $P0
+ is($I0, 9, "decodelocaltime result has 9 values")
+ $S0 = typeof $P0
+ # TODO: Actually, this should return whatever HLL type replaces
+ # FixedIntegerArray. We should test this behavior with a new HLL
+ is($S0, "FixedIntegerArray", "decodelocaltime returns the correct PMC type")
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/gsoc_threads/t/dynoplibs/time_old.t (from r47544, trunk/t/dynoplibs/time_old.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/dynoplibs/time_old.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/dynoplibs/time_old.t)
@@ -0,0 +1,47 @@
+#!perl
+# Copyright (C) 2001-2009, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+use Test::More;
+use Parrot::Test tests => 1;
+
+=head1 NAME
+
+t/op/time.t - Time and Sleep
+
+=head1 SYNOPSIS
+
+ % prove t/op/time.t
+
+=head1 DESCRIPTION
+
+Tests the C<time> and C<sleep> operations.
+
+=cut
+
+my $year;
+( undef, undef, undef, undef, undef, $year ) = localtime();
+$year += 1900;
+
+# don't run this test 1 tick before the year changes #'
+
+pasm_output_is( <<'CODE', $year, "decodelocaltime" );
+.loadlib 'sys_ops'
+ time I0
+ decodelocaltime P0, I0
+ .include "tm.pasm"
+ set I0, P0[.TM_YEAR]
+ print I0
+ end
+CODE
+
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Copied: branches/gsoc_threads/t/dynoplibs/trans-infnan.t (from r47544, trunk/t/dynoplibs/trans-infnan.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/dynoplibs/trans-infnan.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/dynoplibs/trans-infnan.t)
@@ -0,0 +1,332 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/dynoplibs/trans-infnan.t - Test Trans Dynops
+
+=head1 SYNOPSIS
+
+ %prove t/dynoplibs/trans-infnan.t
+
+=head1 DESCRIPTION
+
+Tests for C<Inf> and C<NaN> handling of transcendental ops in the C<trans_ops> dynlib.
+
+=cut
+
+.loadlib 'trans_ops'
+
+.sub main :main
+ .include 'test_more.pir'
+ plan(67)
+
+ test_exp()
+ test_sin()
+ test_sinh()
+ test_asin()
+ test_cos()
+ test_cosh()
+ test_acos()
+ test_tan()
+ test_tanh()
+ test_atan()
+ test_cot()
+ test_coth()
+ test_acot()
+ test_sec()
+ test_sech()
+ test_asec()
+ test_ln()
+ test_log10()
+ test_log2()
+ test_pow()
+.end
+
+.sub test_exp
+ $N0 = 'Inf'
+ $N1 = exp $N0
+ is($N1, 'Inf', 'exp: exp Inf')
+ $N0 = '-Inf'
+ $N1 = exp $N0
+ is($N1, 0, '... exp -Inf')
+ $N0 = 'NaN'
+ $N1 = exp $N0
+ is($N1, 'NaN', '... exp NaN')
+.end
+
+.sub test_sin
+ $N0 = 'Inf'
+ $N1 = sin $N0
+ is($N1, 'NaN', 'sin: sin Inf')
+ $N0 = '-Inf'
+ $N1 = sin $N0
+ is($N1, 'NaN', '... sin -Inf')
+ $N0 = 'NaN'
+ $N1 = sin $N0
+ is($N1, 'NaN', '... sin NaN')
+.end
+
+.sub test_sinh
+ $N0 = 'Inf'
+ $N1 = sinh $N0
+ is($N1, 'Inf', 'sinh: sinh Inf')
+ $N0 = '-Inf'
+ $N1 = sinh $N0
+ is($N1, '-Inf', '... sinh -Inf')
+ $N0 = 'NaN'
+ $N1 = sinh $N0
+ is($N1, 'NaN', '... sinh NaN')
+.end
+
+.sub test_asin
+ $N0 = 'Inf'
+ $N1 = asin $N0
+ is($N1, 'NaN', 'asin: asin Inf')
+ $N0 = '-Inf'
+ $N1 = asin $N0
+ is($N1, 'NaN', '... asin -Inf')
+ $N0 = 'NaN'
+ $N1 = asin $N0
+ is($N1, 'NaN', '... asin NaN')
+ $N0 = '-2'
+ $N1 = asin $N0
+ is($N1, 'NaN', '... asin -2')
+ $N0 = '2'
+ $N1 = asin $N0
+ is($N1, 'NaN', '... asin 2')
+.end
+
+.sub test_acos
+ $N0 = 'Inf'
+ $N1 = acos $N0
+ is($N1, 'NaN', 'acos: acos Inf')
+ $N0 = '-Inf'
+ $N1 = acos $N0
+ is($N1, 'NaN', '... acos -Inf')
+ $N0 = 'NaN'
+ $N1 = acos $N0
+ is($N1, 'NaN', '... acos NaN')
+ $N0 = '-2'
+ $N1 = acos $N0
+ is($N1, 'NaN', '... acos -2')
+ $N0 = '2'
+ $N1 = acos $N0
+ is($N1, 'NaN', '... acos 2')
+.end
+
+.sub test_cosh
+ $N0 = 'Inf'
+ $N1 = cosh $N0
+ is($N1, 'Inf', 'cosh: cosh Inf')
+ $N0 = '-Inf'
+ $N1 = cosh $N0
+ is($N1, 'Inf', '... cosh -Inf')
+ $N0 = 'NaN'
+ $N1 = cosh $N0
+ is($N1, 'NaN', '... cosh NaN')
+.end
+
+.sub test_cos
+ $N0 = 'Inf'
+ $N1 = cos $N0
+ is($N1, 'NaN', 'cos: cos Inf')
+ $N0 = '-Inf'
+ $N1 = cos $N0
+ is($N1, 'NaN', '... cos -Inf')
+ $N0 = 'NaN'
+ $N1 = cos $N0
+ is($N1, 'NaN', '... cos NaN')
+.end
+
+.sub test_tan
+ $N0 = 'Inf'
+ $N1 = tan $N0
+ is($N1, 'NaN', 'tan: tan Inf')
+ $N0 = '-Inf'
+ $N1 = tan $N0
+ is($N1, 'NaN', '... tan -Inf')
+ $N0 = 'NaN'
+ $N1 = tan $N0
+ is($N1, 'NaN', '... tan NaN')
+.end
+
+.sub test_tanh
+ $N0 = 'Inf'
+ $N1 = tanh $N0
+ is($N1, 1, 'tanh: tanh Inf')
+ $N0 = '-Inf'
+ $N1 = tanh $N0
+ is($N1, -1, '... tanh -Inf')
+ $N0 = 'NaN'
+ $N1 = tanh $N0
+ is($N1, 'NaN', '... tanh NaN')
+.end
+
+.sub test_atan
+ $N0 = 'Inf'
+ $N1 = atan $N0
+ $P1 = new 'Float'
+ $P1 = $N1
+ is($P1, 1.5707963, 'atan: atan Inf',1e-6)
+
+ $N0 = '-Inf'
+ $N1 = atan $N0
+ $P1 = new 'Float'
+ $P1 = $N1
+ is($P1, -1.5707963, '... atan -Inf',1e-6)
+
+ $N0 = 'NaN'
+ $N1 = atan $N0
+ is($N1, 'NaN', '... atan NaN')
+.end
+
+.sub test_coth
+ $N0 = 'Inf'
+ #$N1 = coth $N0
+ #is($N1, 1, 'coth: coth Inf')
+ todo(0, 'coth Inf', 'cot/coth/acot not implemented for real numbers')
+ $N0 = '-Inf'
+ #$N1 = coth $N0
+ #is($N1, -1, '... coth -Inf')
+ todo(0, 'coth -Inf', 'cot/coth/acot not implemented for real numbers')
+ $N0 = 'NaN'
+ #$N1 = coth $N0
+ #is($N1, 'NaN', '... coth NaN')
+ todo(0, 'coth NaN', 'cot/coth/acot not implemented for real numbers')
+.end
+
+.sub test_acot
+ $N0 = 'Inf'
+ #$N1 = acot $N0
+ #is($N1, 'NaN', 'acot: acot Inf')
+ todo(0, 'acot Inf', 'cot/coth/acot not implemented for real numbers')
+ $N0 = '-Inf'
+ #$N1 = acot $N0
+ #is($N1, 'NaN', '... acot -Inf')
+ todo(0, 'acot -Inf', 'cot/coth/acot not implemented for real numbers')
+ $N0 = 'NaN'
+ #$N1 = acot $N0
+ #is($N1, 'NaN', '... acot NaN')
+ todo(0, 'acot NaN', 'cot/coth/acot not implemented for real numbers')
+ $N0 = '-2'
+ #$N1 = acot $N0
+ #is($N1, 'NaN', '... acot -2')
+ todo(0, 'acot -2', 'cot/coth/acot not implemented for real numbers')
+ $N0 = '2'
+ #$N1 = acot $N0
+ #is($N1, 'NaN', '... acot 2')
+ todo(0, 'acot 2', 'cot/coth/acot not implemented for real numbers')
+.end
+
+.sub test_sec
+ $N0 = 'Inf'
+ $N1 = sec $N0
+ is($N1, 'NaN', 'sec: sec Inf')
+ $N0 = '-Inf'
+ $N1 = sec $N0
+ is($N1, 'NaN', '... sec -Inf')
+ $N0 = 'NaN'
+ $N1 = sec $N0
+ is($N1, 'NaN', '... sec NaN')
+.end
+
+.sub test_sech
+ $N0 = 'Inf'
+ $N1 = sech $N0
+ is($N1, 0, 'sech: sech Inf')
+ $N0 = '-Inf'
+ $N1 = sech $N0
+ is($N1, 0, '... sech -Inf')
+ $N0 = 'NaN'
+ $N1 = sech $N0
+ is($N1, 'NaN', '... sech NaN')
+.end
+
+.sub test_asec
+ $N0 = 'Inf'
+ $N1 = asec $N0
+ $P1 = new 'Float'
+ $P1 = $N1
+ is($P1, 1.5707963, 'asec: asec Inf',1e-6)
+ $N0 = '-Inf'
+ $N1 = asec $N0
+ $P1 = $N1
+ is($P1, 1.5707963, '... asec -Inf',1e-6)
+ $N0 = 'NaN'
+ $N1 = asec $N0
+ is($N1, 'NaN', 'asec NaN')
+.end
+
+.sub test_ln
+ $N0 = 'Inf'
+ $N1 = ln $N0
+ is($N1, 'Inf', 'ln: ln Inf')
+ $N0 = '-Inf'
+ $N1 = ln $N0
+ is($N1, 'NaN', '... ln Inf')
+ $N0 = 'NaN'
+ $N1 = ln $N0
+ is($N1, 'NaN', '... ln NaN')
+.end
+
+.sub test_log10
+ $N0 = 'Inf'
+ $N1 = log10 $N0
+ is($N1, 'Inf', 'log10: log10 Inf')
+ $N0 = '-Inf'
+ $N1 = log10 $N0
+ is($N1, 'NaN', '... log10 -Inf')
+ $N0 = 'NaN'
+ $N1 = log10 $N0
+ is($N1, 'NaN', '... log10 NaN')
+.end
+
+.sub test_log2
+ $N0 = 'Inf'
+ $N1 = log2 $N0
+ is($N1, 'Inf', 'log2: log2 Inf')
+ $N0 = '-Inf'
+ $N1 = log2 $N0
+ is($N1, 'NaN', '... log2 -Inf')
+ $N0 = 'NaN'
+ $N1 = log2 $N0
+ is($N1, 'NaN', '... log2 -Inf')
+.end
+
+
+.sub test_cot
+ $N0 = 'Inf'
+ #$N1 = cot $N0
+ #is($N1, 'NaN', 'cot: cot Inf')
+ todo(0, 'cot Inf', 'cot/coth/acot not implemented for real numbers')
+ $N0 = '-Inf'
+ #$N1 = cot $N0
+ #is($N1, 'NaN', '... cot -Inf')
+ todo(0, 'cot -Inf', 'cot/coth/acot not implemented for real numbers')
+ $N0 = 'NaN'
+ #$N1 = cot $N0
+ #is($N1, 'NaN', '... cot NaN')
+ todo(0, 'cot NaN', 'cot/coth/acot not implemented for real numbers')
+.end
+
+.sub test_pow
+ $N0 = 'Inf'
+ pow $N1, $N0, 2
+ is($N1, 'Inf', 'pow: Inf ^ 2')
+ pow $N1, 2, $N0
+ is($N1, 'Inf', '...: 2 ^ Inf')
+ $N0 = 'NaN'
+ pow $N1, $N0, 2
+ is($N1, 'NaN', '...: NaN ^ 2')
+ pow $N1, 2, $N0
+ is($N1, 'NaN', '...: 2 ^ NaN')
+.end
+
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Copied: branches/gsoc_threads/t/dynoplibs/trans-old.t (from r47544, trunk/t/dynoplibs/trans-old.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/dynoplibs/trans-old.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/dynoplibs/trans-old.t)
@@ -0,0 +1,565 @@
+#!perl
+# Copyright (C) 2001-2008, Parrot Foundation.
+# $Id$
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+use Test::More;
+use Parrot::Test tests => 13;
+use Math::Trig qw( tan sec atan asin acos asec cosh sinh tanh sech );
+
+=head1 NAME
+
+t/op/trans.t - Transcendental Mathematical Ops
+
+=head1 SYNOPSIS
+
+ % prove t/op/trans.t
+
+=head1 DESCRIPTION
+
+Tests the transcendental mathematical operations.
+
+=cut
+
+# This defines two macros:
+# fp_eq N, N, LABEL
+# fp_ne N, N, LABEL
+# which will conditionally branch
+# to LABEL if abs(n,n) < epsilon
+
+pasm_output_is( <<"CODE", <<OUTPUT, "sinh" );
+ .loadlib 'trans_ops'
+ .include 'fp_equality.pasm'
+ set N1, 1.0
+ sinh N2, N1
+ .fp_eq_pasm (N2, 1.175201, EQ1)
+ print "not "
+EQ1: print "ok 1\\n"
+
+ set I1, 1
+ sinh N2, I1
+ .fp_eq_pasm (N2, 1.175201, EQ2)
+ print "not "
+EQ2: print "ok 2\\n"
+
+ end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "tanh" );
+ .loadlib 'trans_ops'
+ .include 'fp_equality.pasm'
+ set N1, 1.0
+ tanh N2, N1
+ .fp_eq_pasm (N2, 0.761594, EQ1)
+ print "not "
+EQ1: print "ok 1\\n"
+
+ set I1, 1
+ tanh N2, I1
+ .fp_eq_pasm (N2, 0.761594, EQ2)
+ print "not "
+EQ2: print "ok 2\\n"
+
+ end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "sech" );
+ .loadlib 'trans_ops'
+ .include 'fp_equality.pasm'
+ set N1, 1.0
+ sech N2, N1
+ .fp_eq_pasm (N2, 0.648054, EQ1)
+ print "not "
+EQ1: print "ok 1\\n"
+
+ set I1, 1
+ sech N2, I1
+ .fp_eq_pasm (N2, 0.648054, EQ2)
+ print "not "
+EQ2: print "ok 2\\n"
+
+ end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, 'atan2' );
+ .loadlib 'trans_ops'
+ .include 'fp_equality.pasm'
+ set N0, 0.0
+ set I0, 0
+ set N1, 1.0
+ set I1, 1
+ set N2, 1.0
+ set I2, 1
+ set I3, -1
+ set N3, -1.0
+
+ atan N4, N1, N2
+ .fp_eq_pasm (N4, 0.785398, EQ1)
+ print "not "
+EQ1: print "ok 1\\n"
+
+ atan N4, N1, I2
+ .fp_eq_pasm (N4, 0.785398, EQ2)
+ print "not "
+EQ2: print "ok 2\\n"
+
+ atan N4, I1, N2
+ .fp_eq_pasm (N4, 0.785398, EQ3)
+ print "not "
+EQ3: print "ok 3\\n"
+
+ atan N4, I1, I2
+ .fp_eq_pasm (N4, 0.785398, EQ4)
+ print "not "
+EQ4: print "ok 4\\n"
+
+ atan N4, N3, 1.0
+ .fp_eq_pasm (N4, -0.785398, EQ5)
+ print "not "
+EQ5: print "ok 5\\n"
+
+ atan N4, N1, 0
+ .fp_eq_pasm (N4, 1.570796, EQ6)
+ print "not "
+EQ6: print "ok 6\\n"
+
+ atan N4, I3, 0.0
+ .fp_eq_pasm (N4, -1.570796, EQ7)
+ print "not "
+EQ7: print "ok 7\\n"
+
+ atan N4, I3, -1
+ .fp_eq_pasm (N4, -2.356194, EQ8)
+ print "not "
+EQ8: print "ok 8\\n"
+
+ atan N4, 1.0, N3
+ .fp_eq_pasm (N4, 2.356194, EQ9)
+ print "not "
+EQ9: print "ok 9\\n"
+
+ atan N4, 1.0, I0
+ .fp_eq_pasm (N4, 1.570796, EQ10)
+ print "not "
+EQ10: print "ok 10\\n"
+
+ atan N4, 1, N1
+ .fp_eq_pasm (N4, 0.785398, EQ11)
+ print "not "
+EQ11: print "ok 11\\n"
+
+ atan N4, 1, I1
+ .fp_eq_pasm (N4, 0.785398, EQ12)
+ print "not "
+EQ12: print "ok 12\\n"
+
+ atan N4, 0.0, 1.0
+ .fp_eq_pasm (N4, 0.000000, EQ13)
+ print "not "
+EQ13: print "ok 13\\n"
+
+ atan N4, -1.0, 0
+ .fp_eq_pasm (N4, -1.570796, EQ14)
+ print "not "
+EQ14: print "ok 14\\n"
+
+ atan N4, 1, -1.0
+ .fp_eq_pasm (N4, 2.356194, EQ15)
+ print "not "
+EQ15: print "ok 15\\n"
+
+ atan N4, 0, 1
+ .fp_eq_pasm (N4, 0.000000, EQ16)
+ print "not "
+EQ16: print "ok 16\\n"
+ end
+CODE
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+ok 6
+ok 7
+ok 8
+ok 9
+ok 10
+ok 11
+ok 12
+ok 13
+ok 14
+ok 15
+ok 16
+OUTPUT
+
+pasm_output_is( <<"CODE", <<'OUTPUT', 'atan, part 2' );
+ .loadlib 'trans_ops'
+ .include 'fp_equality.pasm'
+ atan N4, -0.0, -0.0
+ .fp_eq_pasm (N4, -3.1415926, EQ1)
+ print "not "
+EQ1: print "ok 1\\n"
+ end
+CODE
+ok 1
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "log2" );
+ .loadlib 'trans_ops'
+ .include 'fp_equality.pasm'
+ set N1, 10.0
+ log2 N2, N1
+ .fp_eq_pasm (N2, 3.321928, EQ1)
+ print "not "
+EQ1: print "ok 1\\n"
+
+ set I1, 10
+ log2 N2, I1
+ .fp_eq_pasm (N2, 3.321928, EQ2)
+ print "not "
+EQ2: print "ok 2\\n"
+
+ end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "log10" );
+ .loadlib 'trans_ops'
+ .include 'fp_equality.pasm'
+ set N1, 15.0
+ log10 N2, N1
+ .fp_eq_pasm (N2, 1.176091, EQ1)
+ print "not "
+EQ1: print "ok 1\\n"
+
+ set I1, 15
+ log10 N2, I1
+ .fp_eq_pasm (N2, 1.176091, EQ2)
+ print "not "
+EQ2: print "ok 2\\n"
+
+ end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "ln" );
+ .loadlib 'trans_ops'
+ .include 'fp_equality.pasm'
+ set N1, 10.0
+ ln N2, N1
+ .fp_eq_pasm (N2, 2.302585, EQ1)
+ print "not "
+EQ1: print "ok 1\\n"
+
+ set I1, 10
+ ln N2, I1
+ .fp_eq_pasm (N2, 2.302585, EQ2)
+ print "not "
+EQ2: print "ok 2\\n"
+ end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "exp" );
+ .loadlib 'trans_ops'
+ .include 'fp_equality.pasm'
+ set N1, 10.0
+ exp N2, N1
+ .fp_eq_pasm (N2, 22026.465795, EQ1)
+ print "not "
+EQ1: print "ok 1\\n"
+
+ set I1, 10
+ exp N2, I1
+ .fp_eq_pasm (N2, 22026.465795, EQ2)
+ print "not "
+EQ2: print "ok 2\\n"
+ end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "pow" );
+ .loadlib 'trans_ops'
+ .include 'fp_equality.pasm'
+ set N1, 3.0
+ set I1, 3
+ set N2, 5.0
+ set I2, 5
+ pow N3, N1, N2
+ .fp_eq_pasm (N3, 243.0, EQ1)
+ print "not "
+EQ1: print "ok 1\\n"
+
+ pow N3, N1, I2
+ .fp_eq_pasm (N3, 243.0, EQ2)
+ print "not "
+EQ2: print "ok 2\\n"
+
+ pow N3, I1, N2
+ .fp_eq_pasm (N3, 243.0, EQ3)
+ print "not "
+EQ3: print "ok 3\\n"
+
+ pow N3, I1, I2
+ .fp_eq_pasm (N3, 243.0, EQ4)
+ print "not "
+EQ4: print "ok 4\\n"
+
+ set N0, 0.0
+ set I0, 0
+ set N1, 1.0
+ set I1, 1
+ set N2, 4.0
+ set I2, 4
+ pow N3, N2, 2.5
+ .fp_eq_pasm (N3, 32.0, EQ5)
+ print "not "
+EQ5: print "ok 5\\n"
+
+ pow N3, N2, -2
+ .fp_eq_pasm (N3, 0.0625, EQ6)
+ print "not "
+EQ6: print "ok 6\\n"
+
+ pow N3, I2, 0.5
+ .fp_eq_pasm (N3, 2.0, EQ7)
+ print "not "
+EQ7: print "ok 7\\n"
+
+ pow N3, I2, 0
+ .fp_eq_pasm (N3, 1.0, EQ8)
+ print "not "
+EQ8: print "ok 8\\n"
+
+ pow N3, 0.0, N2
+ .fp_eq_pasm (N3, 0.0, EQ9)
+ print "not "
+EQ9: print "ok 9\\n"
+
+ pow N3, 2.5, 0.0
+ .fp_eq_pasm (N3, 1.0, EQ10)
+ print "not "
+EQ10: print "ok 10\\n"
+
+ pow N3, 2.5, I2
+ .fp_eq_pasm (N3, 39.0625, EQ11)
+ print "not "
+EQ11: print "ok 11\\n"
+
+ pow N3, 2.0, -4
+ .fp_eq_pasm (N3, 0.0625, EQ12)
+ print "not "
+EQ12: print "ok 12\\n"
+
+ pow N3, 0, N2
+ .fp_eq_pasm (N3, 0.0, EQ13)
+ print "not "
+EQ13: print "ok 13\\n"
+
+ pow N3, 4, -0.5
+ .fp_eq_pasm (N3, 0.5, EQ14)
+ print "not "
+EQ14: print "ok 14\\n"
+
+ pow N3, 4, I2
+ .fp_eq_pasm (N3, 256.0, EQ15)
+ print "not "
+EQ15: print "ok 15\\n"
+
+ pow N3, 4, -1
+ .fp_eq_pasm (N3, 0.25, EQ16)
+ print "not "
+EQ16: print "ok 16\\n"
+ end
+CODE
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+ok 6
+ok 7
+ok 8
+ok 9
+ok 10
+ok 11
+ok 12
+ok 13
+ok 14
+ok 15
+ok 16
+OUTPUT
+
+pasm_output_is( <<"CODE", <<OUTPUT, "sqrt" );
+ .include 'fp_equality.pasm'
+ set N1, 9.0
+ sqrt N2, N1
+ .fp_eq_pasm (N2, 3.0, EQ1)
+ print "not "
+EQ1: print "ok 1\\n"
+
+ set I1, 9
+ sqrt N2, I1
+ .fp_eq_pasm (N2, 3.0, EQ2)
+ print "not "
+EQ2: print "ok 2\\n"
+
+ end
+CODE
+ok 1
+ok 2
+OUTPUT
+
+pasm_output_is( <<'CODE', <<OUTPUT, "pow_n_n_ic" );
+ .loadlib 'trans_ops'
+ set N0, 2.0
+ pow N1, N0, 0
+ print N1
+ print "\n"
+ pow N1, N0, 1
+ print N1
+ print "\n"
+ pow N1, N0, 2
+ print N1
+ print "\n"
+ pow N1, N0, 3
+ print N1
+ print "\n"
+ pow N1, N0, 4
+ print N1
+ print "\n"
+ pow N1, N0, 5
+ print N1
+ print "\n"
+ pow N1, N0, 6
+ print N1
+ print "\n"
+ pow N1, N0, 7
+ print N1
+ print "\n"
+ pow N1, N0, -1
+ print N1
+ print "\n"
+ pow N1, N0, -2
+ print N1
+ print "\n"
+ pow N1, N0, -3
+ print N1
+ print "\n"
+ pow N1, N0, -4
+ print N1
+ print "\n"
+ pow N1, N0, -5
+ end
+CODE
+1
+2
+4
+8
+16
+32
+64
+128
+0.5
+0.25
+0.125
+0.0625
+OUTPUT
+
+pasm_output_is( <<'CODE', <<OUTPUT, "pow_n_n_i" );
+ .loadlib 'trans_ops'
+ set N0, 2.0
+ set I0, 0
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ inc I0
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ inc I0
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ inc I0
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ inc I0
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ inc I0
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ inc I0
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ set I0, -1
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ dec I0
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ dec I0
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ dec I0
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ dec I0
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ dec I0
+ pow N1, N0, I0
+ print N1
+ print "\n"
+ end
+CODE
+1
+2
+4
+8
+16
+32
+64
+0.5
+0.25
+0.125
+0.0625
+0.03125
+0.015625
+OUTPUT
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
Copied: branches/gsoc_threads/t/dynoplibs/trans.t (from r47544, trunk/t/dynoplibs/trans.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/dynoplibs/trans.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/dynoplibs/trans.t)
@@ -0,0 +1,314 @@
+#!./parrot
+# Copyright (C) 2001-2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/op/trans.t - Trancendental Mathematical Ops
+
+=head1 SYNOPSIS
+
+ % prove t/op/trans.t
+
+=head1 DESCRIPTION
+
+Tests various transcendental operations
+
+=cut
+
+.loadlib 'trans_ops'
+
+.sub main :main
+ .include 'test_more.pir'
+ .local num epsilon
+ epsilon = _epsilon()
+
+ plan(69)
+
+ test_sin_n(epsilon)
+ test_sin_i(epsilon)
+ test_cos_n(epsilon)
+ test_cos_i(epsilon)
+ test_tan_n(epsilon)
+ test_tan_i(epsilon)
+ test_sec_n(epsilon)
+ test_sec_i(epsilon)
+ test_atan_n(epsilon)
+ test_atan_i(epsilon)
+ test_asin_n(epsilon)
+ test_asin_i(epsilon)
+ test_acos_n(epsilon)
+ test_acos_i(epsilon)
+ test_asec_n(epsilon)
+ test_asec_i(epsilon)
+ test_cosh_n(epsilon)
+ test_cosh_i(epsilon)
+ integer_overflow_with_pow()
+ e_raised_pi_time_i__plus_1_equal_0()
+.end
+
+.sub _pi
+ .return (3.1415926535897)
+.end
+
+.sub _e
+ .return (2.7182818459045)
+.end
+
+.sub _epsilon
+ .return (0.0001)
+.end
+
+.sub test_sin_n
+ .param num epsilon
+
+ $N0 = sin 0.0
+ is($N0, 0.0, "sin(0.0)", epsilon)
+
+ $N0 = sin 1.0
+ is($N0, 0.841471, "sin(1.0)", epsilon)
+
+ $N1 = _pi()
+ $N0 = sin $N1
+ is($N0, 0.0, "sin(pi)", epsilon)
+
+ $N1 = _pi()
+ $N1 = $N1 / 2
+ $N0 = sin $N1
+ is($N0, 1.0, "sin(pi/2)", epsilon)
+.end
+
+.sub test_sin_i
+ .param num epsilon
+
+ $N0 = sin 0
+ is($N0, 0.0, "sin(0)", epsilon)
+
+ $N0 = sin 1
+ is($N0, 0.841471, "sin(1)", epsilon)
+.end
+
+.sub test_cos_n
+ .param num epsilon
+
+ $N0 = cos 0.0
+ is($N0, 1.0, "cos(0.0)", epsilon)
+
+ $N0 = cos 1.0
+ is($N0, 0.540302, "cos(1.0)", epsilon)
+
+ $N1 = _pi()
+ $N0 = cos $N1
+ is($N0, -1.0, "cos(pi)", epsilon)
+
+ $N1 = _pi()
+ $N1 = $N1 / 2
+ $N0 = cos $N1
+ is($N0, 0.0, "cos(pi/2)", epsilon)
+.end
+
+.sub test_cos_i
+ .param num epsilon
+
+ $N0 = cos 0
+ is($N0, 1.0, "cos(0)", epsilon)
+
+ $N0 = cos 1
+ is($N0, 0.540302, "cos(1)", epsilon)
+.end
+
+.sub test_tan_n
+ .param num epsilon
+
+ $N0 = tan 0.0
+ is($N0, 0.0, "tan(0.0)", epsilon)
+
+ $N0 = tan 1.0
+ is($N0, 1.557408, "tan(1.0)", epsilon)
+.end
+
+.sub test_tan_i
+ .param num epsilon
+
+ $N0 = tan 0
+ is($N0, 0.0, "tan(0)", epsilon)
+
+ $N0 = tan 1
+ is($N0, 1.557408, "tan(1)", epsilon)
+.end
+
+.sub test_sec_n
+ .param num epsilon
+
+ $N1 = 1.0
+ $N2 = sec $N1
+ is($N2, 1.850816, "sec(1.0)", epsilon)
+.end
+
+.sub test_sec_i
+ .param num epsilon
+
+ $I1 = 1
+ $N1 = sec $I1
+ is($N1, 1.850816, "sec(1)", epsilon)
+.end
+
+.sub test_atan_n
+ .param num epsilon
+
+ $N1 = 1.0
+ $N2 = atan $N1
+ is($N2, 0.785398, "atan(1.0)", epsilon)
+.end
+
+.sub test_atan_i
+ .param num epsilon
+
+ $I1 = 1
+ $N1 = atan $I1
+ is($N1, 0.785398, "atan(1)", epsilon)
+.end
+
+.sub test_asin_n
+ .param num epsilon
+ .local num pi2
+ pi2 = _pi()
+ pi2 /= 2
+
+ $N1 = 1.0
+ $N2 = asin $N1
+ is($N2, pi2, "asin(1.0)", epsilon)
+.end
+
+.sub test_asin_i
+ .param num epsilon
+ .local num pi2
+ pi2 = _pi()
+ pi2 /= 2
+
+ $I1 = 1
+ $N1 = asin $I1
+ is($N1, pi2, "asin(1)", epsilon)
+.end
+
+.sub test_acos_n
+ .param num epsilon
+
+ $N1 = 1.0
+ $N2 = acos $N1
+ is($N2, 0.0, "acos(1.0)", epsilon)
+.end
+
+.sub test_acos_i
+ .param num epsilon
+
+ $I1 = 1
+ $N1 = acos $I1
+ is($N1, 0.0, "acos(1)", epsilon)
+.end
+
+.sub test_asec_n
+ .param num epsilon
+
+ $N1 = 1.0
+ $N2 = asec $N1
+ is($N2, 0.0, "asec(1.0)", epsilon)
+.end
+
+.sub test_asec_i
+ .param num epsilon
+
+ $I1 = 1
+ $N1 = asec $I1
+ is($N1, 0.0, "asec(1)", epsilon)
+.end
+
+.sub test_cosh_n
+ .param num epsilon
+ .local num result
+
+ $N1 = 1.0
+ $N2 = cosh $N1
+ is($N2, 1.543081, "cosh(1.0)", epsilon)
+.end
+
+.sub test_cosh_i
+ .param num epsilon
+
+ $I1 = 1
+ $N1 = cosh $I1
+ is($N1, 1.543081, "cosh(1)", epsilon)
+.end
+
+.sub integer_overflow_with_pow
+ .include "iglobals.pasm"
+
+ # Check that we aren't 32-bit INTVALs without GMP
+ .local pmc interp # a handle to our interpreter object.
+ interp = getinterp
+ .local pmc config
+ config = interp[.IGLOBALS_CONFIG_HASH]
+ .local int intvalsize
+ intvalsize = config['intvalsize']
+ .local int gmp
+ gmp = config['gmp']
+
+ if intvalsize != 4 goto can_test
+ if gmp goto can_test
+ skip(40,'No integer overflow for 32-bit INTVALs without GMP installed')
+ goto end
+
+ can_test:
+
+ .local pmc i1, i2, r
+ i1 = new 'Integer'
+ i2 = new 'Integer'
+ i1 = 2
+ i2 = 1
+ $I1 = 1
+ next:
+ null r
+ r = pow i1, i2
+ $S0 = r
+
+ $I1 = $I1 * 2
+ is( $S0, $I1, 'integer_overflow_with_pow' )
+
+ inc i2
+# XXX: this must be extended to at least 64 bit range
+# when sure that the result is not floating point.
+# In the meantime, make sure it overflows nicely
+# on 32 bit.
+ unless i2 > 40 goto next
+
+ end:
+.end
+
+.macro sprintf_is(fmt, number, message)
+ c = .number
+ $S0 = sprintf .fmt, c
+ $S1 = .message
+ is( $S0, $S1, $S1 )
+.endm
+
+.sub e_raised_pi_time_i__plus_1_equal_0
+ .local pmc c, c2, c3
+ c = new ['Complex']
+ c2 = new ['Complex']
+ c3 = new ['Complex']
+ # e^(pi * i) + 1 = 0
+ $N0 = atan 1
+ $N0 *= 4
+ c[0] = 0.0
+ c[1] = $N0
+ c2 = c.'exp'()
+ c2 += 1.0
+ .sprintf_is( "%.3f%+.3fi", c2, "0.000+0.000i" )
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
+
Modified: branches/gsoc_threads/t/dynpmc/gziphandle.t
==============================================================================
--- branches/gsoc_threads/t/dynpmc/gziphandle.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/dynpmc/gziphandle.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -16,6 +16,8 @@
=cut
+.loadlib 'io_ops'
+
.sub 'main' :main
.include 'test_more.pir'
.include 'iglobals.pasm'
Modified: branches/gsoc_threads/t/dynpmc/os.t
==============================================================================
--- branches/gsoc_threads/t/dynpmc/os.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/dynpmc/os.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -295,6 +295,7 @@
open my $FILE, ">", "____some_test_file";
close $FILE;
pir_output_is( <<'CODE', <<"OUT", 'Test OS.rename' );
+.loadlib 'io_ops'
.sub main :main
$P0 = loadlib 'os'
$P1 = new ['OS']
Modified: branches/gsoc_threads/t/examples/pir.t
==============================================================================
--- branches/gsoc_threads/t/examples/pir.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/examples/pir.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -7,7 +7,7 @@
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 18;
+use Parrot::Test tests => 17;
use Parrot::Config;
=head1 NAME
@@ -184,7 +184,8 @@
);
# expected output of a quine is the quine itself
-$expected{'quine_ord.pir'} = Parrot::Test::slurp_file("examples/pir/quine_ord.pir");
+# TODO currently broken
+# $expected{'quine_ord.pir'} = Parrot::Test::slurp_file("examples/pir/quine_ord.pir");
my %skips;
Modified: branches/gsoc_threads/t/harness.pir
==============================================================================
--- branches/gsoc_threads/t/harness.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/harness.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -297,7 +297,7 @@
$I1 = index $S0, '/branches/'
unless $I1 >= 0 goto L2
$I1 += 10
- $I2 = find_not_cclass .CCLASS_WHITESPACE, $S0, $I1, $I0
+ $I2 = find_cclass .CCLASS_WHITESPACE, $S0, $I1, $I0
$I3 = $I2 - $I1
$S1 = substr $S0, $I1, $I3
L2:
@@ -305,7 +305,7 @@
$P0.'open'('svn status', 'pr')
$P1 = new 'ResizableStringArray'
L3:
- $S0 = readline $P0
+ $S0 = $P0.'readline'()
if $S0 == '' goto L4
$I0 = index $S0, 'M'
unless $I0 == 0 goto L3
@@ -361,10 +361,11 @@
set $P0, 1
$P0[0] = 'parrot_test_run.tar.gz'
push contents, $P0
- load_bytecode 'LWP.pir'
+ load_bytecode 'LWP/UserAgent.pir'
.const string url = 'http://smolder.plusthree.com/app/projects/process_add_report/8'
.local pmc ua, response
ua = new ['LWP';'UserAgent']
+ ua.'env_proxy'()
ua.'show_progress'(1)
response = ua.'post'(url, contents :flat, 'form-data' :named('Content-Type'), 'close' :named('Connection'))
$I0 = response.'code'()
Modified: branches/gsoc_threads/t/library/coroutine.t
==============================================================================
--- branches/gsoc_threads/t/library/coroutine.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/library/coroutine.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -28,6 +28,8 @@
.const int N_TESTS = 6
+.loadlib 'io_ops'
+
## Build an N-ary tree (where N is passed as node_width) of the specified depth,
## with the leaves being consecutive integer PMCs from start but less than N.
## The tree will be complete iff end-start+1 == node_width^depth.
Copied: branches/gsoc_threads/t/library/distutils.t (from r47544, trunk/t/library/distutils.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/library/distutils.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/library/distutils.t)
@@ -0,0 +1,56 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/library/distutils.t
+
+=head1 DESCRIPTION
+
+Test the distutils library
+
+=head1 SYNOPSIS
+
+ % prove t/library/distutils.t
+
+=cut
+
+.sub 'main' :main
+ load_bytecode 'distutils.pir'
+
+ .const 'Sub' prebuild = 'prebuild'
+ register_step_before('build', prebuild)
+ .const 'Sub' postbuild = 'postbuild'
+ register_step_after('build', postbuild)
+
+ $P0 = split ' ', 'build'
+ $P1 = new 'Hash'
+ .const 'Sub' build_hll = 'build_hll'
+ $P1['hll_hook'] = build_hll
+
+ say "1..4"
+ setup($P0 :flat, $P1 :flat :named)
+ say "ok 4 - end"
+.end
+
+.sub 'prebuild' :anon
+ .param pmc kv :slurpy :named
+ say "ok 1 - prebuild"
+.end
+
+.sub 'build_hll' :anon
+ .param pmc kv :slurpy :named
+ say "ok 2 - build_hll"
+.end
+
+.sub 'postbuild' :anon
+ .param pmc kv :slurpy :named
+ say "ok 3 - postbuild"
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gsoc_threads/t/library/lwp.t
==============================================================================
--- branches/gsoc_threads/t/library/lwp.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/library/lwp.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -19,16 +19,18 @@
.sub 'main' :main
.include 'test_more.pir'
- load_bytecode 'LWP.pir'
+ load_bytecode 'LWP/UserAgent.pir'
load_bytecode 'osutils.pbc'
- plan(38)
+ plan(48)
test_new()
test_unknown_protocol()
test_bad_request()
test_file_not_found()
test_file()
+ test_file_head()
test_file_post_delete()
+ test_file_proxy()
.end
.sub 'test_new'
@@ -127,6 +129,28 @@
ok($I0, "Last-Modified contains GMT")
.end
+.sub 'test_file_head'
+ .local pmc ua, response
+ ua = new ['LWP';'UserAgent']
+ response = ua.'head'('file:t/library/lwp.t')
+ $I0 = isa response, ['HTTP';'Response']
+ ok($I0, "HEAD file:t/library/lwp.t")
+ $I0 = response.'code'()
+ is($I0, 200, "code")
+ $I0 = response.'is_success'()
+ ok($I0, "is success")
+ $S0 = response.'content'()
+ is($S0, '', "no content")
+ $I0 = response.'get_header'('Content-Length')
+ $I0 = $I0 > 2000
+ ok($I0, "Content-Length")
+ $S0 = response.'get_header'('Last-Modified')
+ diag($S0)
+ $I0 = index $S0, 'GMT'
+ $I0 = $I0 > 0
+ ok($I0, "Last-Modified contains GMT")
+.end
+
.sub 'test_file_post_delete'
.const string data = "the file contains some text"
.const string filename = 't/library/file.txt'
@@ -138,7 +162,7 @@
response = ua.'put'(url, data)
$I0 = isa response, ['HTTP';'Response']
- ok($I0, "POST file:t/library/file.txt")
+ ok($I0, "PUT file:t/library/file.txt")
$I0 = response.'code'()
is($I0, 200, "code")
$I0 = response.'is_success'()
@@ -165,6 +189,21 @@
ok($I0, "is error")
.end
+.sub 'test_file_proxy'
+ .local pmc ua, response
+ ua = new ['LWP';'UserAgent']
+ ua.'proxy'('file', 'file://proxy.net')
+ response = ua.'get'('file:t/library/lwp.t')
+ $I0 = isa response, ['HTTP';'Response']
+ ok($I0, "GET file:t/library/lwp.t via a proxy")
+ $I0 = response.'code'()
+ is($I0, 400, "code")
+ $S0 = response.'message'()
+ is($S0, "You can not proxy through the filesystem", "message")
+ $I0 = response.'is_error'()
+ ok($I0, "is error")
+.end
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/gsoc_threads/t/library/osutils.t
==============================================================================
--- branches/gsoc_threads/t/library/osutils.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/library/osutils.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -21,11 +21,12 @@
load_bytecode 'osutils.pir'
- plan(11)
+ plan(17)
test_basename()
test_dirname()
test_catfile()
test_splitpath()
+ test_newer()
.end
.sub 'test_basename'
@@ -62,6 +63,24 @@
is(file, 'ghi.txt', "splitpath file")
.end
+.sub 'test_newer'
+ $I0 = newer('runtime/parrot/library/osutils.pbc', 'runtime/parrot/library/osutils.pir')
+ ok($I0, "newer('osutils.pbc', 'osutils.pir')")
+ $I0 = newer('runtime/parrot/library/osutils.no_file', 'runtime/parrot/library/osutils.pir')
+ nok($I0, "newer('osutils.no_file', 'osutils.pir')")
+ $I0 = newer('runtime/parrot/library/osutils.pir', 'runtime/parrot/library/osutils.pir')
+ nok($I0, "newer('osutils.pir', 'osutils.pir')")
+
+ $P0 = split ' ', 'runtime/parrot/library/osutils.pir runtime/parrot/include/stat.pasm'
+ $I0 = newer('runtime/parrot/library/osutils.pbc', $P0)
+ ok($I0, "newer('osutils.pbc', ['osutils.pir', 'stat.pasm'])")
+ $I0 = newer('runtime/parrot/library/osutils.no_file', $P0)
+ nok($I0, "newer('osutils.no_file', ['osutils.pir', 'stat.pasm'])")
+ $I0 = newer('runtime/parrot/library/osutils.pir', $P0)
+ nok($I0, "newer('osutils.pir', ['osutils.pir', 'stat.pasm'])")
+.end
+
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/gsoc_threads/t/library/uri.t
==============================================================================
--- branches/gsoc_threads/t/library/uri.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/library/uri.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -21,7 +21,7 @@
load_bytecode 'URI.pir'
- plan(53)
+ plan(60)
test_new()
test_uri()
test_file()
@@ -158,6 +158,21 @@
is($S0, '127.0.0.1', 'host')
$S0 = $P0.'port'()
is($S0, '8080', 'port')
+
+ $P0 = factory('http://user:passwd@proxy.net:8000/path')
+ ok($P0, "http://user:passwd@proxy.net:8000/path")
+ $I0 = isa $P0, ['URI';'http']
+ ok($I0, "isa ['URI';'http']")
+ $S0 = $P0.'scheme'()
+ is($S0, 'http', "scheme")
+ $S0 = $P0.'authority'()
+ is($S0, 'user:passwd at proxy.net:8000', 'authority')
+ $S0 = $P0.'userinfo'()
+ is($S0, 'user:passwd', 'userinfo')
+ $S0 = $P0.'host'()
+ is($S0, 'proxy.net', 'host')
+ $S0 = $P0.'port'()
+ is($S0, '8000', 'port')
.end
.sub 'test_https'
Modified: branches/gsoc_threads/t/native_pbc/annotations.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Copied: branches/gsoc_threads/t/native_pbc/integer.pbc (from r47544, trunk/t/native_pbc/integer.pbc)
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gsoc_threads/t/native_pbc/integer_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gsoc_threads/t/native_pbc/integer_2.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Copied: branches/gsoc_threads/t/native_pbc/number.pbc (from r47544, trunk/t/native_pbc/number.pbc)
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gsoc_threads/t/native_pbc/number_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gsoc_threads/t/native_pbc/number_2.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Copied: branches/gsoc_threads/t/native_pbc/string.pbc (from r47544, trunk/t/native_pbc/string.pbc)
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gsoc_threads/t/native_pbc/string_1.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gsoc_threads/t/native_pbc/string_2.pbc
==============================================================================
Binary file (source and/or target). No diff available.
Modified: branches/gsoc_threads/t/native_pbc/testdata/string.pasm
==============================================================================
--- branches/gsoc_threads/t/native_pbc/testdata/string.pasm Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/native_pbc/testdata/string.pasm Thu Jun 10 21:09:12 2010 (r47545)
@@ -3,7 +3,7 @@
set S1, "abc"
set S2, "EE"
- bors S0, S1, S2
+ concat S0, S1, S2
print S0
print "\n"
print S1
Modified: branches/gsoc_threads/t/oo/methods.t
==============================================================================
--- branches/gsoc_threads/t/oo/methods.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/oo/methods.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -16,6 +16,8 @@
=cut
+.const string library_file = "method_library.pir"
+
.sub main :main
.include 'test_more.pir'
@@ -29,16 +31,15 @@
overridden_core_pmc()
- delete_library()
+ try_delete_library()
.end
.sub create_library
.local pmc file
- .local string filename
- filename = "method_library.pir"
- file = open filename, 'w'
+ file = new ['FileHandle']
+ file.'open'(library_file, 'w')
$S0 = <<'END'
.namespace['Foo']
@@ -48,16 +49,22 @@
END
print file, $S0
- close file
+ file.'close'()
.end
-.sub delete_library
+.sub try_delete_library
.local pmc os
$P0 = loadlib 'os'
+ unless $P0 goto no_os
os = new 'OS'
- $S0 = "method_library.pir"
- os.'rm'($S0)
+ os.'rm'(library_file)
+ .return ()
+
+ no_os:
+ $S1 = concat "WARNING: could not delete test file `", library_file
+ $S1 = concat $S1, "' because the OS PMC is unavailable"
+ diag($S1)
.end
.sub loading_methods_from_file
@@ -66,7 +73,7 @@
$I0 = $P1.'foo_method'()
ok ($I0, 'calling foo_method')
- load_bytecode 'method_library.pir'
+ load_bytecode library_file
$P1 = new 'Foo'
$I0 = $P1.'bar_method'()
ok ($I0, 'calling bar_method')
Deleted: branches/gsoc_threads/t/op/01-parse_ops.t
==============================================================================
--- branches/gsoc_threads/t/op/01-parse_ops.t Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,105 +0,0 @@
-#! perl
-# Copyright (C) 2006-2008, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-use Parrot::Test;
-use Parrot::Op;
-use Parrot::OpLib::core;
-
-=head1 NAME
-
-t/op/01-parse_ops.t - Parse core opcodes
-
-=head1 SYNOPSIS
-
- % prove t/op/01-parse_ops.t
-
-=head1 DESCRIPTION
-
-Tests that all parrot opcodes are parsed properly.
-
-=cut
-
-my $object_map = {
- i => q<I0>,
- ic => q<42>,
- k => q<P0>,
- kc => q<[ 'foo' ; 'bar' ]>,
- kic => q<[ 1 ]>,
- ks => q<P0>,
- ksc => q<[ 'foo' ; 'bar' ]>,
- n => q<N0>,
- nc => q<13.013>,
- p => q<P0>,
- pc => undef, ## TT #1158 figure out how to test this type
- s => q<S0>,
- sc => q<'foo'>,
-};
-
-my %parse_errors = map { $_ => 1 } qw(
- defined
- delete
- eq
- exists
- le
- lt
- ne
- set
- slice
- yield
-);
-
-my %cmds;
-
-## extract the register types from each opcode
-for my $op (@$Parrot::OpLib::core::ops) {
- my @regtypes = $op->arg_types;
-
- ## for now, avoid opcodes with regtypes i do not know how to represent
- next unless @regtypes == grep { defined $$object_map{$_} } @regtypes;
-
- ## extract the basename of the opcode
- my $basename = $op->name;
-
- ## create the argument list
- my $args = join ', ' => map $$object_map{$_}, @regtypes;
-
- ## store the test commands
- $cmds{$basename}{ $basename . ' ' . $args }++;
-}
-
-$ENV{TEST_PROG_ARGS} ||= '';
-
-plan skip_all => 'IMCC cannot do parse-only with JIT enabled'
- if $ENV{TEST_PROG_ARGS} =~ /--runcore=jit/;
-
-plan skip_all => 'IMCC cannot do parse-only with switched core'
- if $ENV{TEST_PROG_ARGS} =~ /--runcore=switch/;
-
-plan tests => scalar keys %cmds;
-
-for my $cmd ( sort keys %cmds ) {
- my @args = (
- ## retrieve the test commands, and trick IMCC to parse only
- join( $/ => 'end', sort( keys %{ $cmds{$cmd} } ), '' ),
- qr/^(?!error:imcc:syntax error,)/,
- "parsing: $cmd"
- );
-
- if ( $parse_errors{$cmd} ) {
- pasm_error_output_like(@args);
- }
- else {
- pasm_output_like(@args);
- }
-}
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/gsoc_threads/t/op/annotate-old.t
==============================================================================
--- branches/gsoc_threads/t/op/annotate-old.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/annotate-old.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
# $Id$
use strict;
@@ -23,10 +23,6 @@
=cut
-TODO: {
- local $TODO = q|fails in fast runcore - TT #1135|
- if ($ENV{TEST_PROG_ARGS} || '') =~ /--runcore=fast/;
-
pir_error_output_like( <<CODE, <<OUTPUT, 'unhandled exception from loaded function');
.sub main :main
# Not using test more, just a quick way to pick a function
@@ -40,7 +36,6 @@
/\(foobar:42\)/
OUTPUT
-}
# Local Variables:
# mode: cperl
Modified: branches/gsoc_threads/t/op/arithmetics.t
==============================================================================
--- branches/gsoc_threads/t/op/arithmetics.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/arithmetics.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -21,7 +21,7 @@
.include 'test_more.pir'
.include 'iglobals.pasm'
- plan(121)
+ plan(80)
take_the_negative_of_a_native_integer()
take_the_absolute_of_a_native_integer()
@@ -42,8 +42,6 @@
subtract_native_number_from_native_number()
multiply_native_number_with_native_number()
divide_native_number_by_native_number()
- integer_overflow_with_pow()
- bnot_p_p_creates_destination()
# END_OF_TESTS
.end
@@ -470,56 +468,6 @@
.end
-.sub integer_overflow_with_pow
- .include "iglobals.pasm"
-
- # Check that we aren't 32-bit INTVALs without GMP
- .local pmc interp # a handle to our interpreter object.
- interp = getinterp
- .local pmc config
- config = interp[.IGLOBALS_CONFIG_HASH]
- .local int intvalsize
- intvalsize = config['intvalsize']
- .local int gmp
- gmp = config['gmp']
-
- if intvalsize != 4 goto can_test
- if gmp goto can_test
- skip(40,'No integer overflow for 32-bit INTVALs without GMP installed')
- goto end
-
- can_test:
-
- .local pmc i1, i2, r
- i1 = new 'Integer'
- i2 = new 'Integer'
- i1 = 2
- i2 = 1
- $I1 = 1
- next:
- null r
- r = pow i1, i2
- $S0 = r
-
- $I1 = $I1 * 2
- is( $S0, $I1, 'integer_overflow_with_pow' )
-
- inc i2
-# XXX: this must be extended to at least 64 bit range
-# when sure that the result is not floating point.
-# In the meantime, make sure it overflows nicely
-# on 32 bit.
- unless i2 > 40 goto next
-
- end:
-.end
-
-.sub 'bnot_p_p_creates_destination'
- $P0 = box 3
- $P1 = bnot $P0
- is( $P1, -4, 'bnot_p_p_creates_destination')
-.end
-
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/gsoc_threads/t/op/arithmetics_pmc.t
==============================================================================
--- branches/gsoc_threads/t/op/arithmetics_pmc.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/arithmetics_pmc.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -20,7 +20,7 @@
.include 'test_more.pir'
.include "iglobals.pasm"
- plan(44)
+ plan(40)
# Don't check BigInt or BigNum without gmp
.local pmc interp # a handle to our interpreter object.
@@ -34,7 +34,7 @@
run_tests_for('Float')
if gmp goto do_big_ones
- skip( 22, "will not test BigInt or BigNum without gmp" )
+ skip( 20, "will not test BigInt or BigNum without gmp" )
goto end
do_big_ones:
@@ -55,7 +55,6 @@
test_logical_xor(type)
test_logical_or(type)
test_modulus(type)
- test_pow(type)
test_subtract(type)
.end
@@ -329,36 +328,6 @@
end:
.end
-.sub test_pow
- .param pmc type
-
- $P0 = new type
- $P0 = 40
- $P1 = new type
- $P1 = 2
- $P2 = new type
- $P2 = 115200
-
- $P99 = $P2
-
- $S0 = "original dest is untouched in pow for "
- $S1 = type
- concat $S0, $S1
-
- # ignore exceptions
- push_eh done
- pow $P2, $P0, $P1
-
- $I0 = cmp $P99, 115200
-
- is( $I0, 0, $S0 )
- goto end
-
- done:
- ok(1, 'ignoring exceptions')
- end:
-.end
-
.sub test_subtract
.param pmc type
Modified: branches/gsoc_threads/t/op/calling.t
==============================================================================
--- branches/gsoc_threads/t/op/calling.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/calling.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -1852,9 +1852,9 @@
pasm_output_is( <<'CODE', <<'OUTPUT', "named - 5 slurpy array -> named" );
.pcc_sub main:
set_args "0, 0, 0, 0x200, 0, 0x200, 0", 10, 20, 30, 'a', 40, 'b', 50
- get_results ""
find_name P1, "foo"
invokecc P1
+ get_results ""
print "ok\n"
end
.pcc_sub foo:
Deleted: branches/gsoc_threads/t/op/debuginfo.t
==============================================================================
--- branches/gsoc_threads/t/op/debuginfo.t Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,201 +0,0 @@
-#!perl
-# Copyright (C) 2001-2007, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-use Test::More;
-use Parrot::Test tests => 8;
-
-=head1 NAME
-
-t/op/debuginfo.t - Debugging Info
-
-=head1 SYNOPSIS
-
- % prove t/op/debuginfo.t
-
-=head1 DESCRIPTION
-
-Tests the various set and get operations for line, package and file info,
-as well as backtrace tests.
-
-=cut
-
-$ENV{TEST_PROG_ARGS} ||= '';
-my $nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
- ? "\\(unknown file\\)\n-1" : "debuginfo_\\d+\\.pasm\n\\d";
-
-#SKIP: {
-#skip "disabled on fast-core",1 if $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/;
-
-pasm_output_like( <<'CODE', <<"OUTPUT", "getline, getfile" );
-.pcc_sub main:
- getfile S0
- getline I0
- say S0
- say I0
- end
-CODE
-/$nolineno/
-OUTPUT
-
-pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - Null PMC access" );
-.sub main
- print "ok 1\n"
- a()
- print "not ok 10\n"
-.end
-.sub a
- print "ok 2\n"
- b()
- print "not ok 9\n"
-.end
-.sub b
- print "ok 3\n"
- c()
- print "not ok 8\n"
-.end
-.sub c
- print "ok 4\n"
- d()
- print "not ok 7\n"
-.end
-.sub d
- print "ok 5\n"
- $P0 = null
- $P0()
- print "not ok 6\n"
-.end
-CODE
-/^ok 1
-ok 2
-ok 3
-ok 4
-ok 5
-Null PMC access in invoke\(\)
-current instr\.: 'd' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'c' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'b' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'a' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
-OUTPUT
-
-pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - method not found" );
-.namespace ["Test1"]
-.sub main
- print "ok 1\n"
- foo()
- print "not ok 5\n"
-.end
-.sub foo
- print "ok 2\n"
- $P0 = new 'Integer'
- print "ok 3\n"
- $P0."nosuchmethod"()
- print "not ok 4\n"
-.end
-CODE
-/^ok 1
-ok 2
-ok 3
-Method 'nosuchmethod' not found for invocant of class 'Integer'
-current instr.: 'parrot;Test1;foo' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'parrot;Test1;main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
-OUTPUT
-
-pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - fetch of unknown lexical" );
-.namespace ["Test2"]
-.sub main
- print "ok 1\n"
- foo()
- print "not ok 3\n"
-.end
-.sub foo :lex
- print "ok 2\n"
- find_lex $P0, "nosuchlex"
- print "not ok 3\n"
-.end
-CODE
-/^ok 1
-ok 2
-Lexical 'nosuchlex' not found
-current instr.: 'parrot;Test2;foo' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'parrot;Test2;main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
-OUTPUT
-
-pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - recursion 1" );
-.sub main
- main()
-.end
-CODE
-/^maximum recursion depth exceeded
-current instr\.: 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)
-\.\.\. call repeated \d+ times/
-OUTPUT
-
-pir_error_output_like( <<'CODE', <<'OUTPUT', "debug backtrace - recursion 2" );
-.sub main
- rec(91)
-.end
-.sub rec
- .param int i
- if i == 0 goto END
- dec i
- rec(i)
- .return()
-END:
- $P0 = null
- $P0()
-.end
-CODE
-/^Null PMC access in invoke\(\)
-current instr\.: 'rec' pc (\d+|-1) \(.*?:(\d+|-1)\)
-called from Sub 'rec' pc (\d+|-1) \(.*?:(\d+|-1)\)
-\.\.\. call repeated 90 times
-called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)$/
-OUTPUT
-
-$nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
- ? '\(\(unknown file\):-1\)' : '\(xyz.pir:126\)';
-
-pir_error_output_like( <<'CODE', <<"OUTPUT", "setfile and setline" );
-.sub main :main
- setfile "xyz.pir"
- setline 123
- $S0 = 'hello'
- $I0 = 456
- 'no_such_function'($S0, $I0)
-.end
-CODE
-/$nolineno/
-OUTPUT
-
-$nolineno = $ENV{TEST_PROG_ARGS} =~ /--runcore=fast/
- ? '\(\(unknown file\):-1\)' : '\(foo.p6:128\)';
-pir_error_output_like( <<'CODE', <<"OUTPUT", "setfile and setline" );
-.sub main :main
- setfile "foo.p6"
- setline 123
- $P0 = new 'Integer'
- assign $P0, 9876
- set_global '$a', $P0
-
- setline 124
- $P0 = get_global '$a'
- $P1 = clone $P0
- add $P1, 1
- 'nsf'($P1)
-.end
-CODE
-/$nolineno/
-OUTPUT
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/gsoc_threads/t/op/exit.t
==============================================================================
--- branches/gsoc_threads/t/op/exit.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/exit.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -7,7 +7,7 @@
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 7;
+use Parrot::Test tests => 8;
=head1 NAME
@@ -65,6 +65,20 @@
pbc_exit_code_is($pbc, 0, 'pbc exits with 0 by default');
}
+pir_exit_code_is( <<'CODE', 2, "pir exit code isn't exception type" );
+.sub main
+ $P0 = new ['ExceptionHandler']
+ set_addr $P0, catcher
+ $P0.'handle_types'(2)
+ push_eh $P0
+ exit 2
+ catcher:
+ # we shouldn't arrive here
+ pop_eh
+ exit 10
+.end
+CODE
+
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
Modified: branches/gsoc_threads/t/op/inf_nan.t
==============================================================================
--- branches/gsoc_threads/t/op/inf_nan.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/inf_nan.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -18,31 +18,11 @@
.sub main :main
.include 'test_more.pir'
- plan(105)
+ plan(37)
test_basic_arith()
- test_exp()
test_sqrt()
- test_sin()
- test_sinh()
- test_asin()
- test_cos()
- test_cosh()
- test_acos()
- test_tan()
- test_tanh()
- test_atan()
- test_cot()
- test_coth()
- test_acot()
- test_sec()
- test_sech()
- test_asec()
- test_ln()
- test_log10()
- test_log2()
test_neg()
- test_pow()
test_mix_nan_inf()
test_rounding_n()
test_rounding_i()
@@ -50,7 +30,6 @@
test_fdiv_integer_pmc_nan()
test_fdiv_float_pmc_nan()
test_fdiv_float_integer_pmc_nan()
- test_cmod_float_integer_pmc_nan()
test_mod_float_integer_pmc_nan()
.end
@@ -82,19 +61,6 @@
is($N3, 'Inf', '... abs -Inf')
.end
-
-.sub test_exp
- $N0 = 'Inf'
- $N1 = exp $N0
- is($N1, 'Inf', 'exp: exp Inf')
- $N0 = '-Inf'
- $N1 = exp $N0
- is($N1, 0, '... exp -Inf')
- $N0 = 'NaN'
- $N1 = exp $N0
- is($N1, 'NaN', '... exp NaN')
-.end
-
.sub test_sqrt
$N0 = 'Inf'
$N1 = $N0
@@ -110,260 +76,6 @@
is($N1, 'NaN', '... sqrt -1')
.end
-.sub test_sin
- $N0 = 'Inf'
- $N1 = sin $N0
- is($N1, 'NaN', 'sin: sin Inf')
- $N0 = '-Inf'
- $N1 = sin $N0
- is($N1, 'NaN', '... sin -Inf')
- $N0 = 'NaN'
- $N1 = sin $N0
- is($N1, 'NaN', '... sin NaN')
-.end
-
-.sub test_sinh
- $N0 = 'Inf'
- $N1 = sinh $N0
- is($N1, 'Inf', 'sinh: sinh Inf')
- $N0 = '-Inf'
- $N1 = sinh $N0
- is($N1, '-Inf', '... sinh -Inf')
- $N0 = 'NaN'
- $N1 = sinh $N0
- is($N1, 'NaN', '... sinh NaN')
-.end
-
-.sub test_asin
- $N0 = 'Inf'
- $N1 = asin $N0
- is($N1, 'NaN', 'asin: asin Inf')
- $N0 = '-Inf'
- $N1 = asin $N0
- is($N1, 'NaN', '... asin -Inf')
- $N0 = 'NaN'
- $N1 = asin $N0
- is($N1, 'NaN', '... asin NaN')
- $N0 = '-2'
- $N1 = asin $N0
- is($N1, 'NaN', '... asin -2')
- $N0 = '2'
- $N1 = asin $N0
- is($N1, 'NaN', '... asin 2')
-.end
-
-.sub test_cos
- $N0 = 'Inf'
- $N1 = cos $N0
- is($N1, 'NaN', 'cos: cos Inf')
- $N0 = '-Inf'
- $N1 = cos $N0
- is($N1, 'NaN', '... cos -Inf')
- $N0 = 'NaN'
- $N1 = cos $N0
- is($N1, 'NaN', '... cos NaN')
-.end
-
-.sub test_cosh
- $N0 = 'Inf'
- $N1 = cosh $N0
- is($N1, 'Inf', 'cosh: cosh Inf')
- $N0 = '-Inf'
- $N1 = cosh $N0
- is($N1, 'Inf', '... cosh -Inf')
- $N0 = 'NaN'
- $N1 = cosh $N0
- is($N1, 'NaN', '... cosh NaN')
-.end
-
-.sub test_acos
- $N0 = 'Inf'
- $N1 = acos $N0
- is($N1, 'NaN', 'acos: acos Inf')
- $N0 = '-Inf'
- $N1 = acos $N0
- is($N1, 'NaN', '... acos -Inf')
- $N0 = 'NaN'
- $N1 = acos $N0
- is($N1, 'NaN', '... acos NaN')
- $N0 = '-2'
- $N1 = acos $N0
- is($N1, 'NaN', '... acos -2')
- $N0 = '2'
- $N1 = acos $N0
- is($N1, 'NaN', '... acos 2')
-.end
-
-.sub test_tan
- $N0 = 'Inf'
- $N1 = tan $N0
- is($N1, 'NaN', 'tan: tan Inf')
- $N0 = '-Inf'
- $N1 = tan $N0
- is($N1, 'NaN', '... tan -Inf')
- $N0 = 'NaN'
- $N1 = tan $N0
- is($N1, 'NaN', '... tan NaN')
-.end
-
-.sub test_tanh
- $N0 = 'Inf'
- $N1 = tanh $N0
- is($N1, 1, 'tanh: tanh Inf')
- $N0 = '-Inf'
- $N1 = tanh $N0
- is($N1, -1, '... tanh -Inf')
- $N0 = 'NaN'
- $N1 = tanh $N0
- is($N1, 'NaN', '... tanh NaN')
-.end
-
-.sub test_atan
- $N0 = 'Inf'
- $N1 = atan $N0
- $P1 = new 'Float'
- $P1 = $N1
- is($P1, 1.5707963, 'atan: atan Inf',1e-6)
-
- $N0 = '-Inf'
- $N1 = atan $N0
- $P1 = new 'Float'
- $P1 = $N1
- is($P1, -1.5707963, '... atan -Inf',1e-6)
-
- $N0 = 'NaN'
- $N1 = atan $N0
- is($N1, 'NaN', '... atan NaN')
-.end
-
-.sub test_cot
- $N0 = 'Inf'
- #$N1 = cot $N0
- #is($N1, 'NaN', 'cot: cot Inf')
- todo(0, 'cot Inf', 'cot/coth/acot not implemented for real numbers')
- $N0 = '-Inf'
- #$N1 = cot $N0
- #is($N1, 'NaN', '... cot -Inf')
- todo(0, 'cot -Inf', 'cot/coth/acot not implemented for real numbers')
- $N0 = 'NaN'
- #$N1 = cot $N0
- #is($N1, 'NaN', '... cot NaN')
- todo(0, 'cot NaN', 'cot/coth/acot not implemented for real numbers')
-.end
-
-.sub test_coth
- $N0 = 'Inf'
- #$N1 = coth $N0
- #is($N1, 1, 'coth: coth Inf')
- todo(0, 'coth Inf', 'cot/coth/acot not implemented for real numbers')
- $N0 = '-Inf'
- #$N1 = coth $N0
- #is($N1, -1, '... coth -Inf')
- todo(0, 'coth -Inf', 'cot/coth/acot not implemented for real numbers')
- $N0 = 'NaN'
- #$N1 = coth $N0
- #is($N1, 'NaN', '... coth NaN')
- todo(0, 'coth NaN', 'cot/coth/acot not implemented for real numbers')
-.end
-
-.sub test_acot
- $N0 = 'Inf'
- #$N1 = acot $N0
- #is($N1, 'NaN', 'acot: acot Inf')
- todo(0, 'acot Inf', 'cot/coth/acot not implemented for real numbers')
- $N0 = '-Inf'
- #$N1 = acot $N0
- #is($N1, 'NaN', '... acot -Inf')
- todo(0, 'acot -Inf', 'cot/coth/acot not implemented for real numbers')
- $N0 = 'NaN'
- #$N1 = acot $N0
- #is($N1, 'NaN', '... acot NaN')
- todo(0, 'acot NaN', 'cot/coth/acot not implemented for real numbers')
- $N0 = '-2'
- #$N1 = acot $N0
- #is($N1, 'NaN', '... acot -2')
- todo(0, 'acot -2', 'cot/coth/acot not implemented for real numbers')
- $N0 = '2'
- #$N1 = acot $N0
- #is($N1, 'NaN', '... acot 2')
- todo(0, 'acot 2', 'cot/coth/acot not implemented for real numbers')
-.end
-
-.sub test_sec
- $N0 = 'Inf'
- $N1 = sec $N0
- is($N1, 'NaN', 'sec: sec Inf')
- $N0 = '-Inf'
- $N1 = sec $N0
- is($N1, 'NaN', '... sec -Inf')
- $N0 = 'NaN'
- $N1 = sec $N0
- is($N1, 'NaN', '... sec NaN')
-.end
-
-.sub test_sech
- $N0 = 'Inf'
- $N1 = sech $N0
- is($N1, 0, 'sech: sech Inf')
- $N0 = '-Inf'
- $N1 = sech $N0
- is($N1, 0, '... sech -Inf')
- $N0 = 'NaN'
- $N1 = sech $N0
- is($N1, 'NaN', '... sech NaN')
-.end
-
-.sub test_asec
- $N0 = 'Inf'
- $N1 = asec $N0
- $P1 = new 'Float'
- $P1 = $N1
- is($P1, 1.5707963, 'asec: asec Inf',1e-6)
- $N0 = '-Inf'
- $N1 = asec $N0
- $P1 = $N1
- is($P1, 1.5707963, '... asec -Inf',1e-6)
- $N0 = 'NaN'
- $N1 = asec $N0
- is($N1, 'NaN', 'asec NaN')
-.end
-
-.sub test_ln
- $N0 = 'Inf'
- $N1 = ln $N0
- is($N1, 'Inf', 'ln: ln Inf')
- $N0 = '-Inf'
- $N1 = ln $N0
- is($N1, 'NaN', '... ln Inf')
- $N0 = 'NaN'
- $N1 = ln $N0
- is($N1, 'NaN', '... ln NaN')
-.end
-
-.sub test_log10
- $N0 = 'Inf'
- $N1 = log10 $N0
- is($N1, 'Inf', 'log10: log10 Inf')
- $N0 = '-Inf'
- $N1 = log10 $N0
- is($N1, 'NaN', '... log10 -Inf')
- $N0 = 'NaN'
- $N1 = log10 $N0
- is($N1, 'NaN', '... log10 NaN')
-.end
-
-.sub test_log2
- $N0 = 'Inf'
- $N1 = log2 $N0
- is($N1, 'Inf', 'log2: log2 Inf')
- $N0 = '-Inf'
- $N1 = log2 $N0
- is($N1, 'NaN', '... log2 -Inf')
- $N0 = 'NaN'
- $N1 = log2 $N0
- is($N1, 'NaN', '... log2 -Inf')
-.end
-
.sub test_neg
$N0 = 'Inf'
$N1 = neg $N0
@@ -376,19 +88,6 @@
is($N1, 'NaN', '... neg NaN')
.end
-.sub test_pow
- $N0 = 'Inf'
- pow $N1, $N0, 2
- is($N1, 'Inf', 'pow: Inf ^ 2')
- pow $N1, 2, $N0
- is($N1, 'Inf', '...: 2 ^ Inf')
- $N0 = 'NaN'
- pow $N1, $N0, 2
- is($N1, 'NaN', '...: NaN ^ 2')
- pow $N1, 2, $N0
- is($N1, 'NaN', '...: 2 ^ NaN')
-.end
-
.sub test_mix_nan_inf
$N0 = 'NaN'
$N1 = 'Inf'
@@ -425,19 +124,19 @@
$N0 = 'Inf'
$I0 = floor $N0
#is($I0, 'Inf', 'floor Inf')
- todo(0, 'floor Inf', 'rounding nan/inf gives something like -2147483648')
+ skip(1, 'rounding nan/inf gives something like -2147483648')
$N0 = 'NaN'
$I0 = floor $N0
#is($I0, 'NaN', 'floor Inf')
- todo(0, 'floor NaN', 'rounding nan/inf gives something like -2147483648')
+ skip(1, 'rounding nan/inf gives something like -2147483648')
$N0 = 'Inf'
$I0 = ceil $N0
#is($I0, 'Inf', 'floor Inf')
- todo(0, 'ceil Inf', 'rounding nan/inf gives something like -2147483648')
+ skip(1, 'rounding nan/inf gives something like -2147483648')
$N0 = 'NaN'
$I0 = ceil $N0
#is($I0, 'NaN', 'floor Inf')
- todo(0, 'ceil NaN', 'rounding nan/inf gives something like -2147483648')
+ skip(1, 'rounding nan/inf gives something like -2147483648')
.end
.sub test_nan_complex
@@ -446,7 +145,7 @@
set $P1, "1 + i"
$P1 += $N0
#is($P1, 'NaN', '1+i + NaN')
- todo(0, '1+i + NaN should be NaN')
+ skip(1, '1+i + NaN should be NaN')
.end
.sub test_fdiv_integer_pmc_nan
@@ -456,7 +155,7 @@
$N0 = 'NaN'
fdiv $P1, $P2, $N0
#is($P1, 'NaN', 'fdiv with Integer PMCs and NaN')
- todo(0, 'fdiv with Integer PMCs and NaN', 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
+ skip(1, 'fdiv/mod do not play nicely with PMCs and NaN')
.end
.sub test_fdiv_float_pmc_nan
@@ -466,7 +165,7 @@
$N0 = 'NaN'
fdiv $P1, $P2, $N0
#is($P1, 'NaN','fdiv with Float PMCs and NaN')
- todo(0,'fdiv with Float PMCs and NaN', 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
+ skip(1, 'fdiv/mod do not play nicely with PMCs and NaN')
.end
.sub test_fdiv_float_integer_pmc_nan
@@ -476,17 +175,7 @@
$N0 = 'NaN'
fdiv $P1, $P2, $N0
#is($P1, 'NaN', 'fdiv with Float and Integer PMCs and NaN')
- todo(0, 'fdiv with Float and Integer PMCs and NaN', 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
-.end
-
-.sub test_cmod_float_integer_pmc_nan
- $P1 = new 'Float'
- $P2 = new 'Integer'
- $P2 = 1
- $N0 = 'NaN'
- cmod $P1, $P2, $N0
- #is($P1, 'NaN', 'cmod with Float and Integer PMCs and NaN')
- todo(0, 'cmod with Float and Integer PMCs and NaN', 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
+ skip(1, 'fdiv/mod do not play nicely with PMCs and NaN')
.end
.sub test_mod_float_integer_pmc_nan
@@ -496,7 +185,7 @@
$N0 = 'NaN'
mod $P1, $P2, $N0
#is($P1, 'NaN', 'mod with Float and Integer PMCs and NaN')
- todo(0, 'mod with Float and Integer PMCs and NaN', 'fdiv/mod/cmod do not play nicely with PMCs and NaN')
+ skip(1, 'fdiv/mod do not play nicely with PMCs and NaN')
.end
# Local Variables:
Modified: branches/gsoc_threads/t/op/integer.t
==============================================================================
--- branches/gsoc_threads/t/op/integer.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/integer.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -16,7 +16,7 @@
=cut
-.const int TESTS = 159
+.const int TESTS = 150
.sub 'test' :main
.include 'test_more.pir'
@@ -32,7 +32,6 @@
test_div()
test_mod()
mod_negative_zero_rest()
- test_cmod()
test_eq()
test_ne()
test_lt()
@@ -60,9 +59,6 @@
test_fdiv_i_i_i_by_zero()
test_fdiv_i_ic_i_by_zero()
test_fdiv_i_i_ic_by_zero()
- test_cmod_i_i_i_by_zero()
- test_cmod_i_ic_i_by_zero()
- test_cmod_i_i_ic_by_zero()
test_mod_i_i_i_by_zero()
test_mod_i_ic_i_by_zero()
test_mod_i_i_ic_by_zero()
@@ -337,26 +333,6 @@
is($I1, 0, 'mod - negative, zero rest (#36003), -3 mod -3 = 0')
.end
-.sub 'test_cmod'
- $I0 = 5
- $I1 = 3
- $I2 = cmod $I0, $I1
- is($I2, 2, 'cmod_i_i_i')
- is($I0, 5, 'cmod_i_i_i - dividend unchanged')
- is($I1, 3, 'cmod_i_i_i - divisor unchanged')
-
- $I0 = 12
-
- $I1 = cmod $I0, 10
- is($I1, 2, 'cmod_i_i_ic')
-
- $I1 = cmod 14, $I0
- is($I1, 2, 'cmod_i_ic_i')
-
- $I1 = cmod 13, 11
- is($I1, 2, 'cmod_i_ic_ic')
-.end
-
.sub 'test_eq'
$I0 = 0x12345678
$I1 = 0x12345678
@@ -925,52 +901,6 @@
ok($I3, 'fdiv_i_i_ic by zero')
.end
-.sub 'test_cmod_i_i_i_by_zero'
- $I0 = 0
- $I1 = 10
- push_eh test_cmod_i_i_i_by_zero_catch
- $I2 = cmod $I1, $I0
- pop_eh
- $I3 = 0
- goto test_cmod_i_i_i_by_zero_end
-
- test_cmod_i_i_i_by_zero_catch:
- $I3 = 1
-
- test_cmod_i_i_i_by_zero_end:
- ok($I3, 'cmod_i_i_i by zero')
-.end
-
-.sub 'test_cmod_i_ic_i_by_zero'
- $I0 = 0
- push_eh test_cmod_i_ic_i_by_zero_catch
- $I2 = cmod 10, $I0
- pop_eh
- $I3 = 0
- goto test_cmod_i_ic_i_by_zero_end
-
- test_cmod_i_ic_i_by_zero_catch:
- $I3 = 1
-
- test_cmod_i_ic_i_by_zero_end:
- ok($I3, 'cmod_i_ic_i by zero')
-.end
-
-.sub 'test_cmod_i_i_ic_by_zero'
- $I1 = 10
- push_eh test_cmod_i_i_ic_by_zero_catch
- $I2 = cmod $I1, 0
- pop_eh
- $I3 = 0
- goto test_cmod_i_i_ic_by_zero_end
-
- test_cmod_i_i_ic_by_zero_catch:
- $I3 = 1
-
- test_cmod_i_i_ic_by_zero_end:
- ok($I3, 'cmod_i_i_ic by zero')
-.end
-
.sub 'test_mod_i_i_i_by_zero'
$I0 = 0
$I1 = 10
Modified: branches/gsoc_threads/t/op/interp.t
==============================================================================
--- branches/gsoc_threads/t/op/interp.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/interp.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -47,8 +47,6 @@
.local string actual
.local pmc test_interp
test_interp = new 'ParrotInterpreter'
- .local pmc stdout
- stdout = getstdout
print "uno\n"
runinterp test_interp, pasm
@@ -70,14 +68,14 @@
# the test fail.
pasm_output_like(
<<'CODE', <<'OUTPUT', "restart trace" );
- printerr "ok 1\n"
+ print "ok 1\n"
sweepoff
set I0, 1
trace I0
dec I0
trace I0
sweepon
- printerr "ok 2\n"
+ print "ok 2\n"
end
CODE
/^ok\s1\n
@@ -89,7 +87,7 @@
pasm_output_is( <<'CODE', 'nada:', 'interp - warnings' );
new P0, 'Undef'
set I0, P0
- printerr "nada:"
+ print "nada:"
warningson 1
new P1, 'Undef'
set I0, P1
Deleted: branches/gsoc_threads/t/op/io.t
==============================================================================
--- branches/gsoc_threads/t/op/io.t Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,178 +0,0 @@
-#!./parrot
-# Copyright (C) 2008, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/op/io.t - Testing io opcodes
-
-=head1 SYNOPSIS
-
- % prove t/op/io.t
-
-=head1 DESCRIPTION
-
-Tests various io opcodes.
-
-=cut
-
-.const int TESTS = 5
-
-.sub 'main' :main
- .include 'test_more.pir'
-
- plan(TESTS)
-
- open_delegates_to_filehandle_pmc()
- open_null_filename()
- open_null_mode()
- open_pipe_for_reading()
- open_pipe_for_writing()
-.end
-
-.sub open_delegates_to_filehandle_pmc
- load_bytecode 'P6object.pbc'
-
- .local pmc p6meta, interp, classes, classid
- p6meta = get_root_global ["parrot"], "P6metaclass"
- p6meta.'new_class'('Testing')
-
- interp = getinterp
- classes = interp[0]
- classid = classes['Testing']
- $I0 = classes['FileHandle']
- set classes['FileHandle'], classid
-
- $P1 = open '/foo'
- is($P1,42,'open opcode delegates to the open method on the FileHandle PMC')
-
- # replace the original, so we don't break other tests
- set classes['FileHandle'], $I0
-
-.end
-
-.sub 'open_null_filename'
- push_eh open_null_filename_failed
- null $S0
- $P0 = open $S0, 'r'
- nok(1, 'open with null filename')
- .return ()
-
- open_null_filename_failed:
- ok(1, 'open with null filename')
-.end
-
-.sub 'open_null_mode'
- push_eh open_null_mode_failed
- null $S0
- $P0 = open 'some_name', $S0
- nok(1, 'open with null mode')
- .return ()
-
- open_null_mode_failed:
- ok(1, 'open with null mode')
-.end
-
-.sub 'tt661_todo_test' :anon
- # As of r41963, these tests need to be todo'ed at least on Win32. Add new
- # platforms known to fail.
- .include 'sysinfo.pasm'
- $S0 = sysinfo .SYSINFO_PARROT_OS
- if $S0 == 'MSWin32' goto tt661_todo
-
- .return (0)
-
- tt661_todo:
- .return (1)
-.end
-
-.include 'iglobals.pasm'
-
-.sub 'open_pipe_for_reading'
- .local pmc interp
- interp = getinterp
-
- .local pmc conf
- conf = interp[.IGLOBALS_CONFIG_HASH]
-
- .local string command
- command = conf['build_dir']
-
- .local string aux
- aux = conf['slash']
- command .= aux
- aux = conf['test_prog']
- command .= aux
- aux = conf['exe']
- command .= aux
- command .= ' -V'
-
- .local pmc pipe
- pipe = open command, 'rp'
- unless pipe goto open_pipe_for_reading_failed
- .local string line
- line = readline pipe
- line = substr line, 0, 14
- is('This is Parrot', line, 'open pipe for reading')
- .return ()
-
- open_pipe_for_reading_failed:
- nok(1, 'open pipe for reading')
- .return ()
-.end
-
-.sub 'open_pipe_for_writing'
- $I0 = tt661_todo_test()
- if $I0 goto open_pipe_for_writing_todoed
- .local pmc interp
- interp = getinterp
-
- .local pmc conf
- conf = interp[.IGLOBALS_CONFIG_HASH]
-
- .local string command
- command = conf['build_dir']
-
- .local string aux
- aux = conf['slash']
- command .= aux
- .local string filename
- filename .= command
- filename .= 'examples/pasm/cat.pasm'
- aux = conf['test_prog']
- command .= aux
- aux = conf['exe']
- command .= aux
- command .= ' '
- command .= filename
-
- .local pmc pipe
- pipe = open command, 'wp'
- unless pipe goto open_pipe_for_writing_failed
-
- pipe.'puts'("ok 5 - open pipe for writing\n")
- close pipe
- .return ()
-
- open_pipe_for_writing_failed:
- nok(1, 'open pipe for writing')
- .return ()
-
- open_pipe_for_writing_todoed:
- todo(0, 'Unimplemented in this platform, TT #661')
-
-.end
-
-.namespace ["Testing"]
-
-.sub open :method
- .param pmc args :slurpy
- .return(42)
-.end
-
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gsoc_threads/t/op/number.t
==============================================================================
--- branches/gsoc_threads/t/op/number.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/number.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -19,7 +19,7 @@
.sub main :main
.include 'test_more.pir'
- plan(130)
+ plan(126)
test_set_n_nc()
test_set_n()
test_add_n_n_n()
@@ -30,7 +30,6 @@
test_mul_i()
test_div_i()
test_mod_n()
- test_cmod_n()
test_eq_n_ic()
test_eq_nc_ic()
test_ne_n_ic()
@@ -66,9 +65,6 @@
test_exception_fdiv_n_n_n_by_zero()
test_exception_fdiv_n_nc_n_by_zero()
test_exception_fdiv_n_n_nc_by_zero()
- test_exception_cmod_n_n_n_by_zero()
- test_exception_cmod_n_nc_n_by_zero()
- test_exception_cmod_n_n_nc_by_zero()
test_mod_n_n_n_by_zero()
test_mod_n_nc_n_by_zero()
test_mod_n_n_nc_by_zero()
@@ -259,13 +255,6 @@
is( $N2, "-2", 'mod_n' )
.end
-.sub test_cmod_n
- set $N0, 5.000
- set $N1, 3.000
- cmod $N2, $N0, $N1
- is( $N2, "2", 'cmod_n' )
-.end
-
.sub test_eq_n_ic
set $N0, 5.000001
set $N1, 5.000001
@@ -780,31 +769,6 @@
.exception_is( 'Divide by zero' )
.end
-.sub test_exception_cmod_n_n_n_by_zero
- push_eh handler
- set $N0, 0
- set $N1, 10
- cmod $N2, $N1, $N0
- handler:
- .exception_is( 'Divide by zero' )
-.end
-
-.sub test_exception_cmod_n_nc_n_by_zero
- push_eh handler
- set $N0, 0
- cmod $N2, 10, $N0
- handler:
- .exception_is( 'Divide by zero' )
-.end
-
-.sub test_exception_cmod_n_n_nc_by_zero
- push_eh handler
- set $N1, 10
- cmod $N2, $N1, 0
- handler:
- .exception_is( 'Divide by zero' )
-.end
-
.sub test_mod_n_n_n_by_zero
set $N0, 0
set $N1, 10
Modified: branches/gsoc_threads/t/op/sprintf.t
==============================================================================
--- branches/gsoc_threads/t/op/sprintf.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/sprintf.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -59,6 +59,9 @@
.const int TESTS = 308
+#.loadlib 'sys_ops'
+#.loadlib 'io_ops'
+
.sub main :main
load_bytecode 'Test/Builder.pbc'
.include "iglobals.pasm"
@@ -121,7 +124,8 @@
# Open the test file
.local pmc file_handle # currently open file
- file_handle = open test_file, 'r'
+ file_handle = new ['FileHandle']
+ file_handle.'open'(test_file, 'r')
unless file_handle goto bad_file
@@ -132,7 +136,7 @@
$I0 = file_handle.'eof'()
if $I0 goto end_loop
- test_line = readline file_handle
+ test_line = file_handle.'readline'()
# skip lines without tabs, and comment lines
$I0 = index test_line, "\t"
@@ -154,7 +158,8 @@
data_hash = new 'Hash'
data_hash["''"] = ''
data_hash['2**32-1'] = 0xffffffff
- $N0 = pow 2, 38
+ $N0 = data_hash['2**32-1']
+ inc $N0
data_hash['2**38'] = $N0
data_hash["'string'"] = 'string'
@@ -228,7 +233,7 @@
goto loop
end_loop:
- close file_handle
+ file_handle.'close'()
goto outer_loop
end_outer_loop:
@@ -481,8 +486,10 @@
.local pmc it
it = iter skip_os
+ load_bytecode 'config.pbc'
+ $P1 = _config()
.local string osname
- osname = sysinfo .SYSINFO_PARROT_OS
+ osname = $P1['osname']
iter_loop:
unless it goto iter_end
Modified: branches/gsoc_threads/t/op/string.t
==============================================================================
--- branches/gsoc_threads/t/op/string.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/string.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -19,8 +19,6 @@
.sub main :main
.include 'test_more.pir'
- plan(339)
-
set_s_s_sc()
test_clone()
clone_null()
@@ -108,6 +106,7 @@
index_multibyte_matching_two()
num_to_string()
string_to_int()
+ string_to_num()
concat_or_substr_cow()
constant_to_cstring()
cow_with_chopn_leaving_original_untouched()
@@ -122,21 +121,6 @@
test_find_encoding()
test_assign()
assign_and_globber()
- bands_null_string()
- bands_2()
- bands_3()
- bands_cow()
- bors_null_string()
- bors_2()
- bors_3()
- bors_cow()
- bxors_null_string()
- bxors_2()
- bxors_3()
- bxors_cow()
- bnots_null_string()
- bnots_2()
- bnots_cow()
split_on_empty_string()
split_on_non_empty_string()
test_join()
@@ -163,6 +147,7 @@
# END_OF_TESTS
join_get_string_returns_a_null_string()
+ done_testing()
.end
.macro exception_is ( M )
@@ -1084,6 +1069,16 @@
is( $I0, "0", 'string to int' )
.end
+.sub string_to_num
+ set $S0, "6foo"
+ set $N0, $S0
+ is( $N0, "6", '6foo to num' )
+
+ set $S0, "16foo"
+ set $N0, $S0
+ is( $N0, "16", '16foo to num' )
+.end
+
.sub concat_or_substr_cow
set $S0, "<JA"
set $S1, "PH>"
@@ -1393,246 +1388,6 @@
is( $S5, "JAPH", 'assign & globber' )
.end
-.sub bands_null_string
- null $S1
- set $S2, "abc"
- $S1 = bands $S1, $S2
- null $S3
- is( $S1, $S3, 'ok1' )
-
- set $S1, ""
- $S1 = bands $S1, $S2
- nok( $S1, 'ok2' )
-
- null $S2
- set $S1, "abc"
- $S1 = bands $S1, $S2
- null $S3
- is( $S1, $S3, 'ok3' )
-
- set $S2, ""
- $S1 = bands $S1, $S2
- nok( $S1, 'ok4' )
-.end
-
-.sub bands_2
- set $S1, "abc"
- set $S2, "EE"
- $S1 = bands $S1, $S2
- is( $S1, "A@", 'bands 2' )
- is( $S2, "EE", 'bands 2' )
-.end
-
-.sub bands_3
- set $S1, "abc"
- set $S2, "EE"
- bands $S0, $S1, $S2
- is( $S0, "A@", 'bands 3' )
- is( $S1, "abc", 'bands 3' )
- is( $S2, "EE", 'bands 3' )
-.end
-
-.sub bands_cow
- set $S1, "foo"
- substr $S2, $S1, 0, 3
- $S1 = bands $S1, "bar"
- is( $S2, "foo", 'bands COW' )
-.end
-
-.sub bors_null_string
- null $S1
- null $S2
- $S1 = bors $S1, $S2
- null $S3
- is( $S1, $S3, 'bors NULL string' )
-
- null $S1
- set $S2, ""
- $S1 = bors $S1, $S2
- null $S3
- is( $S1, $S3, 'bors NULL string' )
-
- $S2 = bors $S2, $S1
- is( $S2, $S3, 'bors NULL string' )
-
- null $S1
- set $S2, "def"
- $S1 = bors $S1, $S2
- is( $S1, "def", 'bors NULL string' )
-
- null $S2
- $S1 = bors $S1, $S2
- is( $S1, "def", 'bors NULL string' )
-
- null $S1
- null $S2
- bors $S3, $S1, $S2
- null $S4
- is( $S3, $S4, 'bors NULL string' )
-
- set $S1, ""
- bors $S3, $S1, $S2
- is( $S3, $S4, 'bors NULL string' )
-
- bors $S3, $S2, $S1
- is( $S3, $S4, 'bors NULL string' )
-
- set $S1, "def"
- bors $S3, $S1, $S2
- is( $S3, "def", 'bors NULL string' )
-
- bors $S3, $S2, $S1
- is( $S3, "def", 'bors NULL string' )
-.end
-
-.sub bors_2
- set $S1, "abc"
- set $S2, "EE"
- $S1 = bors $S1, $S2
- is( $S1, "egc", 'bors 2' )
- is( $S2, "EE", 'bors 2' )
-.end
-
-.sub bors_3
- set $S1, "abc"
- set $S2, "EE"
- bors $S0, $S1, $S2
- is( $S0, "egc", 'bors 3' )
- is( $S1, "abc", 'bors 3' )
- is( $S2, "EE", 'bors 3' )
-.end
-
-.sub bors_cow
- set $S1, "foo"
- substr $S2, $S1, 0, 3
- $S1 = bors $S1, "bar"
- is( $S2, "foo", 'bors COW' )
-.end
-
-.sub bxors_null_string
- null $S1
- null $S2
- $S1 = bxors $S1, $S2
- null $S3
- is( $S1, $S3, 'bxors NULL string' )
-
- null $S1
- set $S2, ""
- $S1 = bxors $S1, $S2
- null $S3
- is( $S1, $S3, 'bxors NULL string' )
-
- $S2 = bxors $S2, $S1
- is( $S2, $S3, 'bxors NULL string' )
-
- null $S1
- set $S2, "abc"
- $S1 = bxors $S1, $S2
- is( $S1, "abc", 'bxors NULL string' )
-
- null $S2
- $S1 = bxors $S1, $S2
- is( $S1, "abc", 'bxors NULL string' )
-
- null $S1
- null $S2
- bxors $S3, $S1, $S2
- null $S4
- is( $S3, $S4, 'bxors NULL string' )
-
- set $S1, ""
- bxors $S3, $S1, $S2
- is( $S3, $S4, 'bxors NULL string' )
-
- bxors $S3, $S2, $S1
- is( $S3, $S4, 'bxors NULL string' )
-
- set $S1, "abc"
- bxors $S3, $S1, $S2
- is( $S3, "abc", 'bxors NULL string' )
-
- bxors $S3, $S2, $S1
- is( $S3, "abc", 'bxors NULL string' )
-.end
-
-.sub bxors_2
- set $S1, "a2c"
- set $S2, "Dw"
- $S1 = bxors $S1, $S2
- is( $S1, "%Ec", 'bxors 2' )
- is( $S2, "Dw", 'bxors 2' )
-
- set $S1, "abc"
- set $S2, " X"
- $S1 = bxors $S1, $S2
- is( $S1, "ABCX", 'bxors 2' )
- is( $S2, " X", 'bxors 2' )
-.end
-
-.sub bxors_3
- set $S1, "a2c"
- set $S2, "Dw"
- bxors $S0, $S1, $S2
- is( $S0, "%Ec", 'bxors 3' )
- is( $S1, "a2c", 'bxors 3' )
- is( $S2, "Dw", 'bxors 3' )
-
- set $S1, "abc"
- set $S2, " Y"
- bxors $S0, $S1, $S2
- is( $S0, "ABCY", 'bxors 3' )
- is( $S1, "abc", 'bxors 3' )
- is( $S2, " Y", 'bxors 3' )
-.end
-
-.sub bxors_cow
- set $S1, "foo"
- substr $S2, $S1, 0, 3
- $S1 = bxors $S1, "bar"
- is( $S2, "foo", 'bxors COW' )
-.end
-
-.sub bnots_null_string
- null $S1
- null $S2
- bnots $S1, $S2
- null $S3
- is( $S1, $S3, 'bnots NULL string' )
-
- null $S1
- set $S2, ""
- bnots $S1, $S2
- null $S3
- is( $S1, $S3, 'bnots NULL string' )
-
- bnots $S2, $S1
- is( $S2, $S3, 'bnots NULL string' )
-.end
-
-# This was the previous test used for t/native_pbc/string.t
-.sub bnots_2
- skip( 4, "No unicode yet" )
- # getstdout $P0
- # push $P0, "utf8"
- # set $S1, "a2c"
- # bnots $S2, $S1
- # is( $S1, "a2c", 'bnots 2' )
- # is( $S2, "\xC2\x9E\xC3\x8D\xC2\x9C", 'bnots 2' )
- #
- # bnots $S1, $S1
- # is( $S1, "\xC2\x9E\xC3\x8D\xC2\x9C", 'bnots 2' )
- #
- # bnots $S1, $S1
- # is( $S1, "a2c", 'bnots 2' )
-.end
-
-.sub bnots_cow
- set $S1, "foo"
- substr $S2, $S1, 0, 3
- bnots $S1, $S1
- is( $S2, "foo", 'bnots COW' )
-.end
-
.sub split_on_empty_string
split $P1, "", ""
set $I1, $P1
Modified: branches/gsoc_threads/t/op/stringu.t
==============================================================================
--- branches/gsoc_threads/t/op/stringu.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/stringu.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -6,7 +6,7 @@
use warnings;
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 33;
+use Parrot::Test tests => 34;
use Parrot::Config;
=head1 NAME
@@ -24,12 +24,14 @@
=cut
pir_output_is( <<'CODE', <<OUTPUT, "angstrom" );
+.include 'stdio.pasm'
.sub main :main
- getstdout $P0
- $P0.'encoding'("utf8")
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+ $P1.'encoding'("utf8")
chr $S0, 0x212B
- print $P0, $S0
- print $P0, "\n"
+ print $S0
+ print "\n"
end
.end
CODE
@@ -37,9 +39,11 @@
OUTPUT
pir_output_is( <<'CODE', <<OUTPUT, "escaped angstrom" );
+.include 'stdio.pasm'
.sub main :main
- getstdout $P0
- $P0.'encoding'("utf8")
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+ $P1.'encoding'("utf8")
set $S0, unicode:"\x{212b}"
print $S0
print "\n"
@@ -50,9 +54,11 @@
OUTPUT
pir_output_is( <<'CODE', <<OUTPUT, "escaped angstrom 2" );
+.include 'stdio.pasm'
.sub main :main
- getstdout $P0
- $P0.'encoding'("utf8")
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+ $P1.'encoding'("utf8")
set $S0, unicode:"aaaaaa\x{212b}"
print $S0
print "\n"
@@ -63,9 +69,11 @@
OUTPUT
pir_output_is( <<'CODE', <<OUTPUT, "escaped angstrom 3" );
+.include 'stdio.pasm'
.sub main :main
- getstdout $P0
- $P0.'encoding'("utf8")
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+ $P1.'encoding'("utf8")
set $S0, unicode:"aaaaaa\x{212b}-aaaaaa"
print $S0
print "\n"
@@ -76,9 +84,11 @@
OUTPUT
pir_output_is( <<'CODE', <<OUTPUT, 'escaped angstrom 3 \uhhhh' );
+.include 'stdio.pasm'
.sub main :main
- getstdout $P0
- $P0.'encoding'("utf8")
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+ $P1.'encoding'("utf8")
set $S0, unicode:"aaaaaa\u212b-aaaaaa"
print $S0
print "\n"
@@ -89,9 +99,11 @@
OUTPUT
pir_output_is( <<'CODE', <<OUTPUT, "MATHEMATICAL BOLD CAPITAL A" );
+.include 'stdio.pasm'
.sub main :main
- getstdout $P0
- $P0.'encoding'("utf8")
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+ $P1.'encoding'("utf8")
set $S0, unicode:"aaaaaa\x{1d400}-aaaaaa"
print $S0
print "\n"
@@ -102,9 +114,11 @@
OUTPUT
pir_output_is( <<'CODE', <<OUTPUT, 'MATHEMATICAL BOLD CAPITAL A \U' );
+.include 'stdio.pasm'
.sub main :main
- getstdout $P0
- $P0.'encoding'("utf8")
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+ $P1.'encoding'("utf8")
set $S0, unicode:"aaaaaa\U0001d400-aaaaaa"
print $S0
print "\n"
@@ -115,9 +129,11 @@
OUTPUT
pir_output_is( <<'CODE', <<OUTPUT, "two upscales" );
+.include 'stdio.pasm'
.sub main :main
- getstdout $P0
- $P0.'encoding'("utf8")
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+ $P1.'encoding'("utf8")
set $S0, unicode:"aaaaaa\x{212b}-bbbbbb\x{1d400}-cccccc"
print $S0
print "\n"
@@ -132,9 +148,11 @@
OUTPUT
pir_output_is( <<'CODE', <<OUTPUT, "two upscales - don't downscale" );
+.include 'stdio.pasm'
.sub main :main
- getstdout $P0
- $P0.'encoding'("utf8")
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+ $P1.'encoding'("utf8")
set $S0, unicode:"aaaaaa\x{1d400}-bbbbbb\x{212b}-cccccc"
print $S0
print "\n"
@@ -149,9 +167,11 @@
OUTPUT
pir_output_is( <<'CODE', <<OUTPUT, '\cX, \ooo' );
+.include 'stdio.pasm'
.sub main :main
- getstdout $P0
- $P0.'encoding'("utf8")
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+ $P1.'encoding'("utf8")
set $S0, "ok 1\cJ"
print $S0
set $S0, "ok 2\012"
@@ -574,8 +594,23 @@
equal
OUT
+pir_output_is( <<'CODE', <<'OUT', 'join mixed encodings' );
+.sub 'main'
+ new $P0, 'ResizablePMCArray'
+ push $P0, ascii:"a"
+ push $P0, unicode:"\x{e1}" # a acute
+ push $P0, iso-8859-1:"\x{e1}" # a acute
+ join $S0, "", $P0
+ $I0 = length $S0
+ say $I0
+.end
+CODE
+3
+OUT
+
SKIP: {
skip( 'no ICU lib', 1 ) unless $PConfig{has_icu};
+
pir_output_is( <<'CODE', <<'OUT', 'find_codepoint opcode (experimental)');
.sub 'main'
$I1 = find_codepoint 'THISISNOTTHENAMEOFNOTHING'
Deleted: branches/gsoc_threads/t/op/sysinfo.t
==============================================================================
--- branches/gsoc_threads/t/op/sysinfo.t Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,183 +0,0 @@
-#!perl
-# Copyright (C) 2008-2010, Parrot Foundation.
-# $Id$
-
-# initial work by Brad Gilbert b2gills <at> gmail <dot> com
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-
-use Test::More;
-use Config;
-
-use Parrot::Test tests => 14;
-use Parrot::Config;
-
-
-=head1 NAME
-
-t/op/sysinfo.t - System Info
-
-=head1 SYNOPSIS
-
- % prove t/op/sysinfo.t
-
-=head1 DESCRIPTION
-
-Tests for basic system information.
-
-=over 4
-
-=item 1 The size of a platform integer
-
-=item 2 The size of a platform float
-
-=item 3 The size of a platform pointer. (Largest possible data pointer)
-
-=item 4 The OS name
-
-=item 5 The OS version string
-
-=item 6 The OS version number string
-
-=item 7 The CPU architecture
-
-=item 8 The CPU model
-
-=item 9, 10 The min and max INTVAL values
-
-=back
-
-=cut
-
-
-my @setup = (
- { pconfig_key => 'intvalsize',
- pasm_key => 1,
- pir_key => 'SYSINFO_PARROT_INTSIZE',
- desc => 'integer size',
- reg_type => 'I',
- },
- { pconfig_key => 'doublesize',
- pasm_key => 2,
- pir_key => 'SYSINFO_PARROT_FLOATSIZE',
- desc => 'float size',
- reg_type => 'I',
- },
- { pconfig_key => 'ptrsize',
- pasm_key => 3,
- pir_key => 'SYSINFO_PARROT_POINTERSIZE',
- desc => 'pointer size',
- reg_type => 'I',
- },
- { pconfig_key => 'osname',
- pasm_key => 4,
- pir_key => 'SYSINFO_PARROT_OS',
- desc => 'osname',
- reg_type => 'S',
- },
- { pconfig_key => 'cpuarch',
- pasm_key => 7,
- pir_key => 'SYSINFO_CPU_ARCH',
- desc => 'CPU Arch Family',
- reg_type => 'S',
- },
-);
-
-foreach ( @setup ) {
- if ( $_->{reg_type} eq 'I' ) {
- pasm_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PASM sysinfo $_->{desc}" );
- sysinfo_i_ic I1, $_->{pasm_key}
- print I1
-end
-CODE
- pir_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PIR sysinfo $_->{desc}" );
-.include 'sysinfo.pasm'
-.sub main :main
- \$I0 = sysinfo .$_->{pir_key}
- print \$I0
-.end
-CODE
- }
- else {
- pasm_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "sysinfo $_->{desc}" );
- sysinfo_s_ic S1, $_->{pasm_key}
- print S1
-end
-CODE
- pir_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PIR sysinfo $_->{desc}" );
-.include 'sysinfo.pasm'
-.sub main :main
- \$S0 = sysinfo .$_->{pir_key}
- print \$S0
-.end
-CODE
- }
-}
-
-SKIP:
-{
- $PConfig{osname} eq 'MSWin32'
- or skip "Tests only meaningful on Win32", 2;
- SKIP:
- {
- eval { require Win32; } or
- skip "requires package Win32 for these tests", 2;
-
- my $osname = Win32::GetOSName();
- $osname = 'WinXP' if $osname =~ m/^WinXP/;
- TODO: {
- local $TODO = "Not Currently Implemented";
- pasm_output_is( <<'CODE', $osname, "sysinfo OS version string" );
- sysinfo_s_ic S1, 5
- print S1
-end
-CODE
-
- my ( $osvername, $major, $minor, $id ) = Win32::GetOSVersion();
-
- pasm_output_is( <<'CODE', "$major.$minor", "sysinfo OS version number string" );
- sysinfo_s_ic S1, 6
- print S1
-end
-CODE
- } # END todo block
- } # END inner SKIP block
-} # END outer SKIP block
-
-SKIP:
-{
- skip "Requires a lot of work to find out the correct answer", 1;
-
- pasm_output_is( <<'CODE', $PConfig{archname}, "sysinfo CPU Model" );
- sysinfo_s_ic S1, 8
- print S1
-end
-CODE
-}
-
-# 9, 10
-
-SKIP:
-{
- skip 'Testing only in some known platforms', 1
- unless $PConfig{osname} eq 'linux';
-
- pir_output_like( <<'CODE', '/^-[1-9][0-9]*\n[1-9][0-9]*\n$/', 'INTVAL min and max values');
-.include 'sysinfo.pasm'
-.sub main :main
- $I0 = sysinfo .SYSINFO_PARROT_INTMIN
- say $I0
- $I0 = sysinfo .SYSINFO_PARROT_INTMAX
- say $I0
-.end
-CODE
-}
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/gsoc_threads/t/op/time.t
==============================================================================
--- branches/gsoc_threads/t/op/time.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/op/time.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -11,7 +11,7 @@
.sub main :main
.include 'test_more.pir'
- plan(29)
+ plan(19)
test_time_i()
test_time_n()
test_sleep_i()
@@ -19,11 +19,6 @@
test_sleep_n()
test_sleep_n_negative()
test_tm_pasm()
- test_gmtime_s_i()
- test_time_n_vs_time_i()
- test_decodetime_p_i()
- test_localtime_s_i()
- test_decodelocaltime_p_i()
.end
.sub test_time_i
@@ -103,67 +98,6 @@
is(.TM_ISDST, 8, "TM_ISDST ok")
.end
-.sub test_gmtime_s_i
- $S0 = gmtime 0
- $I0 = isnull $S0
- is($I0, 0, "gmtime string is not null")
- is($S0, "Thu Jan 1 00:00:00 1970\n", "correct epoch")
- $I1 = length $S0
- is($I1, 25, "string is the correct length")
-.end
-
-.sub test_time_n_vs_time_i
- .local int time_int
- time_int = time
-
- .local num time_float
- time_float = time
-
- # check if time_float is within [time_int - 5;time_int + 5]
- .local int time_int_lower
- time_int_lower = time_int - 5
- if time_float < time_int_lower goto FAIL
- .local int time_int_upper
- time_int_upper = time_int + 5
- if time_float > time_int_upper goto FAIL
-
- ok(1, "time_n value corresponds to time_i value")
- .return()
-
- FAIL:
- ok(0, "time_n value does not correspond to time_t value")
- .return()
-.end
-
-.sub test_decodetime_p_i
- $P0 = decodetime 0
- $I0 = $P0
- is($I0, 9, "decodetime result has 9 values")
- $S0 = typeof $P0
- # TODO: Actually, this should return whatever HLL type replaces
- # FixedIntegerArray. We should test this behavior with a new HLL
- is($S0, "FixedIntegerArray", "decodetime returns the correct PMC type")
-.end
-
-.sub test_localtime_s_i
- $S0 = localtime 0
- $I0 = isnull $S0
- is($I0, 0, "localtime string is not a null string")
- $I0 = length $S0
- is($I0, 25, "localtime string is the correct length")
-.end
-
-.sub test_decodelocaltime_p_i
- $P0 = decodelocaltime 0
- $I0 = $P0
- is($I0, 9, "decodelocaltime result has 9 values")
- $S0 = typeof $P0
- # TODO: Actually, this should return whatever HLL type replaces
- # FixedIntegerArray. We should test this behavior with a new HLL
- is($S0, "FixedIntegerArray", "decodelocaltime returns the correct PMC type")
-.end
-
-
# Local Variables:
# mode: pir
# fill-column: 100
Deleted: branches/gsoc_threads/t/op/time_old.t
==============================================================================
--- branches/gsoc_threads/t/op/time_old.t Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,46 +0,0 @@
-#!perl
-# Copyright (C) 2001-2009, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-use Test::More;
-use Parrot::Test tests => 1;
-
-=head1 NAME
-
-t/op/time.t - Time and Sleep
-
-=head1 SYNOPSIS
-
- % prove t/op/time.t
-
-=head1 DESCRIPTION
-
-Tests the C<time> and C<sleep> operations.
-
-=cut
-
-my $year;
-( undef, undef, undef, undef, undef, $year ) = localtime();
-$year += 1900;
-
-# don't run this test 1 tick before the year changes #'
-
-pasm_output_is( <<'CODE', $year, "decodelocaltime" );
- time I0
- decodelocaltime P0, I0
- .include "tm.pasm"
- set I0, P0[.TM_YEAR]
- print I0
- end
-CODE
-
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Deleted: branches/gsoc_threads/t/op/trans.t
==============================================================================
--- branches/gsoc_threads/t/op/trans.t Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,244 +0,0 @@
-#!./parrot
-# Copyright (C) 2001-2010, Parrot Foundation.
-# $Id$
-
-=head1 NAME
-
-t/op/trans.t - Trancendental Mathematical Ops
-
-=head1 SYNOPSIS
-
- % prove t/op/trans.t
-
-=head1 DESCRIPTION
-
-Tests various transcendental operations
-
-=cut
-
-.sub main :main
- .include 'test_more.pir'
- .local num epsilon
- epsilon = _epsilon()
-
- plan(28)
-
- test_sin_n(epsilon)
- test_sin_i(epsilon)
- test_cos_n(epsilon)
- test_cos_i(epsilon)
- test_tan_n(epsilon)
- test_tan_i(epsilon)
- test_sec_n(epsilon)
- test_sec_i(epsilon)
- test_atan_n(epsilon)
- test_atan_i(epsilon)
- test_asin_n(epsilon)
- test_asin_i(epsilon)
- test_acos_n(epsilon)
- test_acos_i(epsilon)
- test_asec_n(epsilon)
- test_asec_i(epsilon)
- test_cosh_n(epsilon)
- test_cosh_i(epsilon)
-.end
-
-.sub _pi
- .return (3.1415926535897)
-.end
-
-.sub _e
- .return (2.7182818459045)
-.end
-
-.sub _epsilon
- .return (0.0001)
-.end
-
-.sub test_sin_n
- .param num epsilon
-
- $N0 = sin 0.0
- is($N0, 0.0, "sin(0.0)", epsilon)
-
- $N0 = sin 1.0
- is($N0, 0.841471, "sin(1.0)", epsilon)
-
- $N1 = _pi()
- $N0 = sin $N1
- is($N0, 0.0, "sin(pi)", epsilon)
-
- $N1 = _pi()
- $N1 = $N1 / 2
- $N0 = sin $N1
- is($N0, 1.0, "sin(pi/2)", epsilon)
-.end
-
-.sub test_sin_i
- .param num epsilon
-
- $N0 = sin 0
- is($N0, 0.0, "sin(0)", epsilon)
-
- $N0 = sin 1
- is($N0, 0.841471, "sin(1)", epsilon)
-.end
-
-.sub test_cos_n
- .param num epsilon
-
- $N0 = cos 0.0
- is($N0, 1.0, "cos(0.0)", epsilon)
-
- $N0 = cos 1.0
- is($N0, 0.540302, "cos(1.0)", epsilon)
-
- $N1 = _pi()
- $N0 = cos $N1
- is($N0, -1.0, "cos(pi)", epsilon)
-
- $N1 = _pi()
- $N1 = $N1 / 2
- $N0 = cos $N1
- is($N0, 0.0, "cos(pi/2)", epsilon)
-.end
-
-.sub test_cos_i
- .param num epsilon
-
- $N0 = cos 0
- is($N0, 1.0, "cos(0)", epsilon)
-
- $N0 = cos 1
- is($N0, 0.540302, "cos(1)", epsilon)
-.end
-
-.sub test_tan_n
- .param num epsilon
-
- $N0 = tan 0.0
- is($N0, 0.0, "tan(0.0)", epsilon)
-
- $N0 = tan 1.0
- is($N0, 1.557408, "tan(1.0)", epsilon)
-.end
-
-.sub test_tan_i
- .param num epsilon
-
- $N0 = tan 0
- is($N0, 0.0, "tan(0)", epsilon)
-
- $N0 = tan 1
- is($N0, 1.557408, "tan(1)", epsilon)
-.end
-
-.sub test_sec_n
- .param num epsilon
-
- $N1 = 1.0
- $N2 = sec $N1
- is($N2, 1.850816, "sec(1.0)", epsilon)
-.end
-
-.sub test_sec_i
- .param num epsilon
-
- $I1 = 1
- $N1 = sec $I1
- is($N1, 1.850816, "sec(1)", epsilon)
-.end
-
-.sub test_atan_n
- .param num epsilon
-
- $N1 = 1.0
- $N2 = atan $N1
- is($N2, 0.785398, "atan(1.0)", epsilon)
-.end
-
-.sub test_atan_i
- .param num epsilon
-
- $I1 = 1
- $N1 = atan $I1
- is($N1, 0.785398, "atan(1)", epsilon)
-.end
-
-.sub test_asin_n
- .param num epsilon
- .local num pi2
- pi2 = _pi()
- pi2 /= 2
-
- $N1 = 1.0
- $N2 = asin $N1
- is($N2, pi2, "asin(1.0)", epsilon)
-.end
-
-.sub test_asin_i
- .param num epsilon
- .local num pi2
- pi2 = _pi()
- pi2 /= 2
-
- $I1 = 1
- $N1 = asin $I1
- is($N1, pi2, "asin(1)", epsilon)
-.end
-
-.sub test_acos_n
- .param num epsilon
-
- $N1 = 1.0
- $N2 = acos $N1
- is($N2, 0.0, "acos(1.0)", epsilon)
-.end
-
-.sub test_acos_i
- .param num epsilon
-
- $I1 = 1
- $N1 = acos $I1
- is($N1, 0.0, "acos(1)", epsilon)
-.end
-
-.sub test_asec_n
- .param num epsilon
-
- $N1 = 1.0
- $N2 = asec $N1
- is($N2, 0.0, "asec(1.0)", epsilon)
-.end
-
-.sub test_asec_i
- .param num epsilon
-
- $I1 = 1
- $N1 = asec $I1
- is($N1, 0.0, "asec(1)", epsilon)
-.end
-
-.sub test_cosh_n
- .param num epsilon
- .local num result
-
- $N1 = 1.0
- $N2 = cosh $N1
- is($N2, 1.543081, "cosh(1.0)", epsilon)
-.end
-
-.sub test_cosh_i
- .param num epsilon
-
- $I1 = 1
- $N1 = cosh $I1
- is($N1, 1.543081, "cosh(1)", epsilon)
-.end
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
-
Deleted: branches/gsoc_threads/t/op/trans_old.t
==============================================================================
--- branches/gsoc_threads/t/op/trans_old.t Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,565 +0,0 @@
-#!perl
-# Copyright (C) 2001-2008, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-use Test::More;
-use Parrot::Test tests => 13;
-use Math::Trig qw( tan sec atan asin acos asec cosh sinh tanh sech );
-
-=head1 NAME
-
-t/op/trans.t - Transcendental Mathematical Ops
-
-=head1 SYNOPSIS
-
- % prove t/op/trans.t
-
-=head1 DESCRIPTION
-
-Tests the transcendental mathematical operations.
-
-=cut
-
-# This defines two macros:
-# fp_eq N, N, LABEL
-# fp_ne N, N, LABEL
-# which will conditionally branch
-# to LABEL if abs(n,n) < epsilon
-
-my $runcore = $ENV{TEST_PROG_ARGS} || '';
-my @bsdtodo = (
- $runcore =~ /--runcore=jit/ && $^O =~ m/bsd/i
- ? ( todo => 'broken under JIT TT #501' )
- : ()
-);
-
-pasm_output_is( <<"CODE", <<OUTPUT, "sinh", @bsdtodo );
- .include 'fp_equality.pasm'
- set N1, 1.0
- sinh N2, N1
- .fp_eq_pasm (N2, 1.175201, EQ1)
- print "not "
-EQ1: print "ok 1\\n"
-
- set I1, 1
- sinh N2, I1
- .fp_eq_pasm (N2, 1.175201, EQ2)
- print "not "
-EQ2: print "ok 2\\n"
-
- end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "tanh", @bsdtodo );
- .include 'fp_equality.pasm'
- set N1, 1.0
- tanh N2, N1
- .fp_eq_pasm (N2, 0.761594, EQ1)
- print "not "
-EQ1: print "ok 1\\n"
-
- set I1, 1
- tanh N2, I1
- .fp_eq_pasm (N2, 0.761594, EQ2)
- print "not "
-EQ2: print "ok 2\\n"
-
- end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "sech" );
- .include 'fp_equality.pasm'
- set N1, 1.0
- sech N2, N1
- .fp_eq_pasm (N2, 0.648054, EQ1)
- print "not "
-EQ1: print "ok 1\\n"
-
- set I1, 1
- sech N2, I1
- .fp_eq_pasm (N2, 0.648054, EQ2)
- print "not "
-EQ2: print "ok 2\\n"
-
- end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-my @jittodo = (
- $runcore =~ /--runcore=jit/
- ? ( todo => 'broken under JIT TT #530' )
- : ()
-);
-pasm_output_is( <<"CODE", <<OUTPUT, 'atan2', @jittodo );
- .include 'fp_equality.pasm'
- set N0, 0.0
- set I0, 0
- set N1, 1.0
- set I1, 1
- set N2, 1.0
- set I2, 1
- set I3, -1
- set N3, -1.0
-
- atan N4, N1, N2
- .fp_eq_pasm (N4, 0.785398, EQ1)
- print "not "
-EQ1: print "ok 1\\n"
-
- atan N4, N1, I2
- .fp_eq_pasm (N4, 0.785398, EQ2)
- print "not "
-EQ2: print "ok 2\\n"
-
- atan N4, I1, N2
- .fp_eq_pasm (N4, 0.785398, EQ3)
- print "not "
-EQ3: print "ok 3\\n"
-
- atan N4, I1, I2
- .fp_eq_pasm (N4, 0.785398, EQ4)
- print "not "
-EQ4: print "ok 4\\n"
-
- atan N4, N3, 1.0
- .fp_eq_pasm (N4, -0.785398, EQ5)
- print "not "
-EQ5: print "ok 5\\n"
-
- atan N4, N1, 0
- .fp_eq_pasm (N4, 1.570796, EQ6)
- print "not "
-EQ6: print "ok 6\\n"
-
- atan N4, I3, 0.0
- .fp_eq_pasm (N4, -1.570796, EQ7)
- print "not "
-EQ7: print "ok 7\\n"
-
- atan N4, I3, -1
- .fp_eq_pasm (N4, -2.356194, EQ8)
- print "not "
-EQ8: print "ok 8\\n"
-
- atan N4, 1.0, N3
- .fp_eq_pasm (N4, 2.356194, EQ9)
- print "not "
-EQ9: print "ok 9\\n"
-
- atan N4, 1.0, I0
- .fp_eq_pasm (N4, 1.570796, EQ10)
- print "not "
-EQ10: print "ok 10\\n"
-
- atan N4, 1, N1
- .fp_eq_pasm (N4, 0.785398, EQ11)
- print "not "
-EQ11: print "ok 11\\n"
-
- atan N4, 1, I1
- .fp_eq_pasm (N4, 0.785398, EQ12)
- print "not "
-EQ12: print "ok 12\\n"
-
- atan N4, 0.0, 1.0
- .fp_eq_pasm (N4, 0.000000, EQ13)
- print "not "
-EQ13: print "ok 13\\n"
-
- atan N4, -1.0, 0
- .fp_eq_pasm (N4, -1.570796, EQ14)
- print "not "
-EQ14: print "ok 14\\n"
-
- atan N4, 1, -1.0
- .fp_eq_pasm (N4, 2.356194, EQ15)
- print "not "
-EQ15: print "ok 15\\n"
-
- atan N4, 0, 1
- .fp_eq_pasm (N4, 0.000000, EQ16)
- print "not "
-EQ16: print "ok 16\\n"
- end
-CODE
-ok 1
-ok 2
-ok 3
-ok 4
-ok 5
-ok 6
-ok 7
-ok 8
-ok 9
-ok 10
-ok 11
-ok 12
-ok 13
-ok 14
-ok 15
-ok 16
-OUTPUT
-
-pasm_output_is( <<"CODE", <<'OUTPUT', 'atan, part 2' );
- .include 'fp_equality.pasm'
- atan N4, -0.0, -0.0
- .fp_eq_pasm (N4, -3.1415926, EQ1)
- print "not "
-EQ1: print "ok 1\\n"
- end
-CODE
-ok 1
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "log2" );
- .include 'fp_equality.pasm'
- set N1, 10.0
- log2 N2, N1
- .fp_eq_pasm (N2, 3.321928, EQ1)
- print "not "
-EQ1: print "ok 1\\n"
-
- set I1, 10
- log2 N2, I1
- .fp_eq_pasm (N2, 3.321928, EQ2)
- print "not "
-EQ2: print "ok 2\\n"
-
- end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "log10" );
- .include 'fp_equality.pasm'
- set N1, 15.0
- log10 N2, N1
- .fp_eq_pasm (N2, 1.176091, EQ1)
- print "not "
-EQ1: print "ok 1\\n"
-
- set I1, 15
- log10 N2, I1
- .fp_eq_pasm (N2, 1.176091, EQ2)
- print "not "
-EQ2: print "ok 2\\n"
-
- end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "ln" );
- .include 'fp_equality.pasm'
- set N1, 10.0
- ln N2, N1
- .fp_eq_pasm (N2, 2.302585, EQ1)
- print "not "
-EQ1: print "ok 1\\n"
-
- set I1, 10
- ln N2, I1
- .fp_eq_pasm (N2, 2.302585, EQ2)
- print "not "
-EQ2: print "ok 2\\n"
- end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "exp" );
- .include 'fp_equality.pasm'
- set N1, 10.0
- exp N2, N1
- .fp_eq_pasm (N2, 22026.465795, EQ1)
- print "not "
-EQ1: print "ok 1\\n"
-
- set I1, 10
- exp N2, I1
- .fp_eq_pasm (N2, 22026.465795, EQ2)
- print "not "
-EQ2: print "ok 2\\n"
- end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "pow", @bsdtodo );
- .include 'fp_equality.pasm'
- set N1, 3.0
- set I1, 3
- set N2, 5.0
- set I2, 5
- pow N3, N1, N2
- .fp_eq_pasm (N3, 243.0, EQ1)
- print "not "
-EQ1: print "ok 1\\n"
-
- pow N3, N1, I2
- .fp_eq_pasm (N3, 243.0, EQ2)
- print "not "
-EQ2: print "ok 2\\n"
-
- pow N3, I1, N2
- .fp_eq_pasm (N3, 243.0, EQ3)
- print "not "
-EQ3: print "ok 3\\n"
-
- pow N3, I1, I2
- .fp_eq_pasm (N3, 243.0, EQ4)
- print "not "
-EQ4: print "ok 4\\n"
-
- set N0, 0.0
- set I0, 0
- set N1, 1.0
- set I1, 1
- set N2, 4.0
- set I2, 4
- pow N3, N2, 2.5
- .fp_eq_pasm (N3, 32.0, EQ5)
- print "not "
-EQ5: print "ok 5\\n"
-
- pow N3, N2, -2
- .fp_eq_pasm (N3, 0.0625, EQ6)
- print "not "
-EQ6: print "ok 6\\n"
-
- pow N3, I2, 0.5
- .fp_eq_pasm (N3, 2.0, EQ7)
- print "not "
-EQ7: print "ok 7\\n"
-
- pow N3, I2, 0
- .fp_eq_pasm (N3, 1.0, EQ8)
- print "not "
-EQ8: print "ok 8\\n"
-
- pow N3, 0.0, N2
- .fp_eq_pasm (N3, 0.0, EQ9)
- print "not "
-EQ9: print "ok 9\\n"
-
- pow N3, 2.5, 0.0
- .fp_eq_pasm (N3, 1.0, EQ10)
- print "not "
-EQ10: print "ok 10\\n"
-
- pow N3, 2.5, I2
- .fp_eq_pasm (N3, 39.0625, EQ11)
- print "not "
-EQ11: print "ok 11\\n"
-
- pow N3, 2.0, -4
- .fp_eq_pasm (N3, 0.0625, EQ12)
- print "not "
-EQ12: print "ok 12\\n"
-
- pow N3, 0, N2
- .fp_eq_pasm (N3, 0.0, EQ13)
- print "not "
-EQ13: print "ok 13\\n"
-
- pow N3, 4, -0.5
- .fp_eq_pasm (N3, 0.5, EQ14)
- print "not "
-EQ14: print "ok 14\\n"
-
- pow N3, 4, I2
- .fp_eq_pasm (N3, 256.0, EQ15)
- print "not "
-EQ15: print "ok 15\\n"
-
- pow N3, 4, -1
- .fp_eq_pasm (N3, 0.25, EQ16)
- print "not "
-EQ16: print "ok 16\\n"
- end
-CODE
-ok 1
-ok 2
-ok 3
-ok 4
-ok 5
-ok 6
-ok 7
-ok 8
-ok 9
-ok 10
-ok 11
-ok 12
-ok 13
-ok 14
-ok 15
-ok 16
-OUTPUT
-
-pasm_output_is( <<"CODE", <<OUTPUT, "sqrt" );
- .include 'fp_equality.pasm'
- set N1, 9.0
- sqrt N2, N1
- .fp_eq_pasm (N2, 3.0, EQ1)
- print "not "
-EQ1: print "ok 1\\n"
-
- set I1, 9
- sqrt N2, I1
- .fp_eq_pasm (N2, 3.0, EQ2)
- print "not "
-EQ2: print "ok 2\\n"
-
- end
-CODE
-ok 1
-ok 2
-OUTPUT
-
-pasm_output_is( <<'CODE', <<OUTPUT, "pow_n_n_ic" );
- set N0, 2.0
- pow N1, N0, 0
- print N1
- print "\n"
- pow N1, N0, 1
- print N1
- print "\n"
- pow N1, N0, 2
- print N1
- print "\n"
- pow N1, N0, 3
- print N1
- print "\n"
- pow N1, N0, 4
- print N1
- print "\n"
- pow N1, N0, 5
- print N1
- print "\n"
- pow N1, N0, 6
- print N1
- print "\n"
- pow N1, N0, 7
- print N1
- print "\n"
- pow N1, N0, -1
- print N1
- print "\n"
- pow N1, N0, -2
- print N1
- print "\n"
- pow N1, N0, -3
- print N1
- print "\n"
- pow N1, N0, -4
- print N1
- print "\n"
- pow N1, N0, -5
- end
-CODE
-1
-2
-4
-8
-16
-32
-64
-128
-0.5
-0.25
-0.125
-0.0625
-OUTPUT
-
-pasm_output_is( <<'CODE', <<OUTPUT, "pow_n_n_i" );
- set N0, 2.0
- set I0, 0
- pow N1, N0, I0
- print N1
- print "\n"
- inc I0
- pow N1, N0, I0
- print N1
- print "\n"
- inc I0
- pow N1, N0, I0
- print N1
- print "\n"
- inc I0
- pow N1, N0, I0
- print N1
- print "\n"
- inc I0
- pow N1, N0, I0
- print N1
- print "\n"
- inc I0
- pow N1, N0, I0
- print N1
- print "\n"
- inc I0
- pow N1, N0, I0
- print N1
- print "\n"
- set I0, -1
- pow N1, N0, I0
- print N1
- print "\n"
- dec I0
- pow N1, N0, I0
- print N1
- print "\n"
- dec I0
- pow N1, N0, I0
- print N1
- print "\n"
- dec I0
- pow N1, N0, I0
- print N1
- print "\n"
- dec I0
- pow N1, N0, I0
- print N1
- print "\n"
- dec I0
- pow N1, N0, I0
- print N1
- print "\n"
- end
-CODE
-1
-2
-4
-8
-16
-32
-64
-0.5
-0.25
-0.125
-0.0625
-0.03125
-0.015625
-OUTPUT
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/gsoc_threads/t/pmc/addrregistry.t
==============================================================================
--- branches/gsoc_threads/t/pmc/addrregistry.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/addrregistry.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -19,10 +19,24 @@
.sub main :main
.include 'test_more.pir'
- plan(1)
+ plan(3)
$P0 = new ['AddrRegistry']
ok(1, 'Instantiated .AddrRegistry')
+
+ $I0 = 0
+ if $P0 goto isnotempty
+ inc $I0
+isnotempty:
+ ok($I0, 'vtable get_bool gives false when empty')
+
+ $P1 = new [ 'Integer' ]
+ $P0[0] = $P1
+ $I0 = 0
+ unless $P0 goto isempty
+ inc $I0
+isempty:
+ ok($I0, 'vtable get_bool gives true when non empty')
.end
# Local Variables:
Copied: branches/gsoc_threads/t/pmc/bytebuffer.t (from r47544, trunk/t/pmc/bytebuffer.t)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/t/pmc/bytebuffer.t Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/t/pmc/bytebuffer.t)
@@ -0,0 +1,307 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/pmc/bytebuffer.t - ByteBuffer PMC
+
+=head1 SYNOPSIS
+
+ % prove t/pmc/bytebuffer.t
+
+=head1 DESCRIPTION
+
+Tests C<ByteBuffer> PMC..
+
+=cut
+
+.include 'iglobals.pasm'
+.include 'iterator.pasm'
+
+.sub 'main' :main
+ .include 'test_more.pir'
+ plan(24)
+
+ test_init()
+ test_set_string()
+ test_set_byte()
+ test_get_string()
+ test_alloc()
+ test_iterate()
+ test_invalid()
+.end
+
+################################################################
+# Helper subs
+
+.sub hasicu
+ $P0 = getinterp
+ $P1 = $P0[.IGLOBALS_CONFIG_HASH]
+ $I0 = $P1['has_icu']
+ .return($I0)
+.end
+
+.sub isbigendian
+ $P0 = getinterp
+ $P1 = $P0[.IGLOBALS_CONFIG_HASH]
+ $I0 = $P1['bigendian']
+ .return($I0)
+.end
+
+################################################################
+
+.sub test_init
+ .local pmc bb
+ .local int n
+ bb = new ['ByteBuffer']
+ n = elements bb
+ is(n, 0, "size of a new buffer is 0")
+
+ bb = new ['ByteBuffer'], 42
+ n = elements bb
+ is(n, 42, "size of a new buffer with initial size is correct")
+
+.end
+
+.sub test_set_string
+ .local pmc bb
+ .local string s
+ .local int n, c
+ bb = new ['ByteBuffer']
+ s = 'Hi'
+ bb = s
+
+ # Exercise mark vtable
+ sweep 1
+
+ n = elements bb
+ is(n, 2, "size is the same as the source string bytelength")
+ n = bb[0]
+ c = ord 'H'
+ is(n, c, "first byte is the same as the source string")
+ n = bb[1]
+ c = ord 'i'
+ is(n, c, "second byte is the same as the source string")
+ n = bb[2]
+ is(n, 0, "byte out of size is 0")
+ n = bb[-1]
+ is(n, 0, "byte at negative index is 0")
+.end
+
+.sub test_set_byte
+ .local pmc bb
+ .local int n
+ bb = new ['ByteBuffer']
+ bb[255] = 42
+ n = elements bb
+ is(n, 256, "setting a byte resize empty buffer")
+
+ .local string s
+ s = 'Hi'
+ bb = s
+ bb[2] = 42
+ n = elements bb
+ is(n, 3, "setting a byte resize buffer initialized from string")
+
+ bb = new ['ByteBuffer'], 42
+ bb[41] = 9
+ n = elements bb
+ is(n, 42, "setting a byte within range does not resize")
+ bb[42] = 7
+ n = elements bb
+ is(n, 43, "setting a byte resize buffer with initial size")
+ n = bb[41]
+ is(n, 9, "resized buffer preserve old value")
+
+ push_eh catch
+ bb[-1] = 0
+ ok(0, "setting a byte with negative index should throw")
+ goto end
+catch:
+ pop_eh
+ ok(1, "setting a byte with negative index throws")
+end:
+.end
+
+.sub test_get_string
+ .local pmc bb
+ .local string s
+ .local int n
+ .local int big
+
+ bb = new ['ByteBuffer']
+ bb = binary:"abcd"
+ s = bb.'get_string'('ascii', 'fixed_8')
+ n = length s
+ is(n, 4, "getting ascii from buffer gives correct length")
+ is(s, "abcd", "getting ascii from buffer gives correct content")
+
+ $I0 = hasicu()
+ unless $I0 goto skip_it
+
+ bb = new ['ByteBuffer']
+
+ # Upper case n tilde: codepoint 0xD1, utf8 encoding 0xC3, 0x91
+ #bb = utf16:unicode:"\x{D1}"
+ # Can't do that, or the program can't be compiled without ICU.
+ # Fill the buffer with bytes instead.
+
+ # Get endianess to set the bytes in the appropiate order.
+ # *** XXX *** Need report from big endian platforms.
+ big = isbigendian()
+ if big goto isbig
+ bb[0] = 0xD1
+ bb[1] = 0x00
+ goto doit
+isbig:
+ bb[0] = 0x00
+ bb[1] = 0xD1
+doit:
+ s = bb.'get_string'('unicode', 'utf16')
+ n = length s
+ is(n, 1, "getting utf16 from buffer gives correct length")
+ n = ord s
+ is(n, 0xD1, "getting utf16 from buffer gives correct codepoint")
+ bb = new ['ByteBuffer']
+ bb[0] = 0xC3
+ bb[1] = 0x91
+ s = bb.'get_string_as'(utf8:unicode:"")
+ n = length s
+ is(n, 1, "getting utf8 from buffer gives correct length")
+ n = ord s
+ is(n, 0xD1, "getting utf8 from buffer gives correct codepoint")
+ goto end
+skip_it:
+ skip(4, "this test needs ICU")
+end:
+.end
+
+.sub test_alloc
+ # Exercise buffer reallocation building a utf16 string with the
+ # codepoints 32-8192
+ .local pmc bb
+ .local int i, big, pos, b0, b1, c
+
+ $I0 = hasicu()
+ unless $I0 goto skip_it
+
+ # Get endianess to set the bytes in the appropiate order.
+ # *** XXX *** Need report from big endian platforms.
+ big = isbigendian()
+
+ bb = new ['ByteBuffer']
+ pos = 0
+ i = 32
+loopset:
+ b0 = div i, 256
+ b1 = mod i, 256
+ if big goto setbig
+ bb[pos] = b1
+ inc pos
+ bb[pos] = b0
+ inc pos
+ goto setdone
+setbig:
+ bb[pos] = b0
+ inc pos
+ bb[pos] = b1
+ inc pos
+setdone:
+ inc i
+ if i < 8192 goto loopset
+
+ .local string s
+ s = bb.'get_string'('unicode', 'utf16')
+
+ # Check string size
+ i = length s
+ if i != 8160 goto failed
+
+ # Check string content
+ i = 32
+ pos = 0
+loopcheck:
+ c = ord s, pos
+ if c != i goto failed
+ inc pos
+ inc i
+ if i < 8192 goto loopcheck
+ ok(1, "reallocation")
+ goto end
+failed:
+ say i
+ ok(0, "reallocation")
+ goto end
+skip_it:
+ skip(1, "this test needs ICU")
+end:
+.end
+
+.sub test_iterate
+ .local pmc bb, it, arr
+ .local string s
+ s = 'abcd'
+ bb = new ['ByteBuffer']
+ bb = s
+ it = iter bb
+ it = .ITERATE_FROM_START
+ arr = new ['ResizableStringArray']
+loop:
+ unless it goto donearray
+ $I0 = shift it
+ $S0 = chr $I0
+ push arr, $S0
+ goto loop
+donearray:
+ .local string r
+ r = join '', arr
+ is(r, s, 'iterate buffer content')
+.end
+
+.sub test_invalid
+ .local pmc bb, ex
+ .local string s
+ bb = new ['ByteBuffer']
+ bb = 'something'
+ push_eh catch_charset
+ s = bb.'get_string'('***INVALID cHARsET%%%%', 'fixed_8')
+ pop_eh
+ ok(0, "get_string with invalid charset should throw")
+ goto check_encoding
+catch_charset:
+ .get_results(ex)
+ finalize ex
+ pop_eh
+ ok(1, "get_string with invalid charset throws")
+check_encoding:
+ push_eh catch_encoding
+ s = bb.'get_string'('ascii', '???INVALID eNCODING===')
+ pop_eh
+ ok(0, "get_string with invalid encoding should throw")
+ goto check_content
+catch_encoding:
+ .get_results(ex)
+ finalize ex
+ pop_eh
+ ok(1, "get_string with invalid encoding throws")
+check_content:
+ bb[0] = 128 # Out of ascii range
+ push_eh catch_content
+ s = bb.'get_string'('ascii', 'fixed_8')
+ pop_eh
+ ok(0, "get_string with invalid content should throw")
+ goto end
+catch_content:
+ .get_results(ex)
+ finalize ex
+ pop_eh
+ ok(1, "get_string with invalid content throws")
+end:
+.end
+
+# Local Variables:
+# mode: pir
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/gsoc_threads/t/pmc/complex.t
==============================================================================
--- branches/gsoc_threads/t/pmc/complex.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/complex.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -21,7 +21,7 @@
.include 'fp_equality.pasm'
.include "iglobals.pasm"
- plan(459)
+ plan(458)
string_parsing()
exception_malformed_string__real_part()
@@ -54,7 +54,6 @@
test_sub()
test_i_sub()
sprintf_with_a_complex()
- e_raised_pi_time_i__plus_1_equal_0()
ln_of_complex_numbers()
exp_of_complex_numbers()
sqrt_of_complex_numbers()
@@ -649,21 +648,6 @@
.sprintf_is( "%.3f%+.3fi", "0+i", "0.000+1.000i" )
.end
-.sub e_raised_pi_time_i__plus_1_equal_0
- .local pmc c, c2, c3
- c = new ['Complex']
- c2 = new ['Complex']
- c3 = new ['Complex']
- # e^(pi * i) + 1 = 0
- $N0 = atan 1
- $N0 *= 4
- c[0] = 0.0
- c[1] = $N0
- c2 = c.'exp'()
- c2 += 1.0
- .sprintf_is( "%.3f%+.3fi", c2, "0.000+0.000i" )
-.end
-
# # The inverse hyperbolic functions are broken wrt -0.0
# # Need to find some formal spec for when to return -0.0.
@@ -703,9 +687,7 @@
concat $S5, $S2, " of "
concat $S5, $S5, $S4
- $I0 = cmp_str $S1, $S3
- $I0 = not $I0
-
+ $I0 = iseq $S1, $S3
todo( $I0, $S4 )
.endm
Modified: branches/gsoc_threads/t/pmc/eval.t
==============================================================================
--- branches/gsoc_threads/t/pmc/eval.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/eval.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -66,8 +66,8 @@
concat S5, "returncc\n"
compreg P1, "PASM"
set_args "0", S5
- get_results "0", P6
invokecc P1
+ get_results "0", P6
get_global P2, "_foo"
invokecc P2
print "back\n"
@@ -251,14 +251,15 @@
.local pmc io
f1 = compi("foo_1", "hello from foo_1")
\$S0 = f1
- io = open "$temp_pbc", 'w'
+ io = new ['FileHandle']
+ io.'open'("$temp_pbc", 'w')
print io, \$S0
- close io
+ io.'close'()
load_bytecode "$temp_pbc"
f2 = compi("foo_2", "hello from foo_2")
- io = open "$temp2_pbc", 'w'
+ io.'open'("$temp2_pbc", 'w')
print io, f2
- close io
+ io.'close'()
load_bytecode "$temp2_pbc"
.end
@@ -325,17 +326,15 @@
.local pmc io, os
f1 = compi("foo_1", "hello from foo_1")
\$S0 = f1
- io = open "$temp_pbc", 'w'
+ io = new ['FileHandle']
+ io.'open'("$temp_pbc", 'w')
print io, \$S0
- close io
+ io.'close'()
load_bytecode "$temp_pbc"
- \$P0 = loadlib 'os'
- os = new ['OS']
- os.'rm'("$temp_pbc")
f2 = compi("foo_2", "hello from foo_2")
- io = open "$temp_pbc", 'w'
+ io.'open'("$temp_pbc", 'w')
print io, f2
- close io
+ io.'close'()
load_bytecode "$temp_pbc"
.end
@@ -368,9 +367,10 @@
.local pmc io
f = compi("foo_1", "hello from foo_1")
\$S0 = freeze f
- io = open "$temp_file", 'w'
+ io = new ['FileHandle']
+ io.'open'("$temp_file", 'w')
print io, \$S0
- close io
+ io.'close'()
say "written"
.end
@@ -401,11 +401,10 @@
.local string file
.local int size
file = "$temp_file"
- .include "stat.pasm"
- size = stat file, .STAT_FILESIZE
- io = open file, 'r'
- \$S0 = read io, size
- close io
+ io = new ['FileHandle']
+ io.'open'(file, 'rb')
+ \$S0 = io.'readall'()
+ io.'close'()
e = thaw \$S0
sweep 1 # ensure all of the object survives GC
e()
@@ -423,9 +422,10 @@
.local pmc io
f = compi("foo_1", "hello from foo_1")
\$S0 = freeze f
- io = open "$temp_file", 'w'
+ io = new ['FileHandle']
+ io.'open'("$temp_file", 'wb')
print io, \$S0
- close io
+ io.'close'()
say "written"
"read"()
.end
@@ -459,11 +459,10 @@
.local string file
.local int size
file = "$temp_file"
- .include "stat.pasm"
- size = stat file, .STAT_FILESIZE
- io = open file, 'r'
- \$S0 = read io, size
- close io
+ io = new ['FileHandle']
+ io.'open'(file, 'rb')
+ \$S0 = io.'readall'()
+ io.'close'()
e = thaw \$S0
e()
e = get_global "foo_1"
Modified: branches/gsoc_threads/t/pmc/exception-old.t
==============================================================================
--- branches/gsoc_threads/t/pmc/exception-old.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/exception-old.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -342,7 +342,7 @@
catch:
.get_results($P1)
say "caught"
- unroll $P1
+ finalize $P1
.return()
.end
Modified: branches/gsoc_threads/t/pmc/exporter.t
==============================================================================
--- branches/gsoc_threads/t/pmc/exporter.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/exporter.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -172,8 +172,8 @@
ok_2:
say 'ok 2 - globals() with empty array arg sets PMCNULL'
- $P99 = push 'Alex'
- $P99 = push 'Prince'
+ push $P99, 'Alex'
+ push $P99, 'Prince'
$P0.'globals'($P99)
$P1 = $P0.'globals'()
@@ -323,8 +323,8 @@
src = get_namespace [ 'Test'; 'More' ]
globals = new ['ResizableStringArray']
- globals = push 'ok'
- globals = push 'plan'
+ push globals, 'ok'
+ push globals, 'plan'
exporter = new ['Exporter']
exporter.'import'( src :named('source'), globals :named('globals') )
@@ -385,8 +385,8 @@
src = get_namespace [ 'Test'; 'More' ]
dest = get_namespace ['foo']
globals = new ['ResizableStringArray']
- globals = push 'ok'
- globals = push 'plan'
+ push globals, 'ok'
+ push globals, 'plan'
exporter = new ['Exporter']
exporter.'import'( src :named('source'), dest :named('destination'), globals :named('globals') )
Modified: branches/gsoc_threads/t/pmc/filehandle.t
==============================================================================
--- branches/gsoc_threads/t/pmc/filehandle.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/filehandle.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -7,7 +7,7 @@
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 18;
+use Parrot::Test tests => 20;
use Parrot::Test::Util 'create_tempfile';
use Parrot::Test::Util 'create_tempfile';
@@ -263,7 +263,7 @@
\$I0 = filehandle.'eof'()
if \$I0 goto end_read_loop
- test_line = readline filehandle
+ test_line = filehandle.'readline'()
if test_line == "" goto end_read_loop
test_line = chomp( test_line )
\$I1 = test_line
@@ -453,26 +453,46 @@
\$P1.'open'('$temp_file')
- \$S1 = \$P1.'readline'()
- if \$S1 == "1234567890\\n" goto ok_1
-print \$S1
+ .local string line
+ line = \$P1.'readline'()
+ if line == "1234567890\\n" goto ok_1
+print line
print 'not '
ok_1:
say 'ok 1 - \$S1 = \$P1.readline() # read with utf8 encoding on'
- \$S2 = \$P1.'readline'()
- if \$S2 == \$S0 goto ok_2
-print \$S2
+ line = \$P1.'readline'()
+ if line == \$S0 goto ok_2
+print line
print 'not '
ok_2:
say 'ok 2 - \$S2 = \$P1.readline() # read iso-8859-1 string'
\$P1.'close'()
+ \$I1 = charset line
+ \$S2 = charsetname \$I1
+ if \$S2 == 'unicode' goto ok_3
+ print \$S2
+ print 'not '
+ ok_3:
+ say 'ok 3 # unicode charset'
+
+
+ \$I1 = encoding line
+ \$S2 = encodingname \$I1
+ if \$S2 == 'utf8' goto ok_4
+ print \$S2
+ print 'not '
+ ok_4:
+ say 'ok 4 # utf8 encoding'
+
.end
CODE
ok 1 - $S1 = $P1.readline() # read with utf8 encoding on
ok 2 - $S2 = $P1.readline() # read iso-8859-1 string
+ok 3 # unicode charset
+ok 4 # utf8 encoding
OUT
@@ -586,7 +606,6 @@
.sub 'main'
.local pmc pipe, conf, interp
.local string cmd
- pipe = new ['FileHandle']
interp = getinterp
conf = interp[.IGLOBALS_CONFIG_HASH]
@@ -601,7 +620,8 @@
aux = conf['exe']
cmd .= aux
- pipe = open cmd, "rp"
+ pipe = new ['FileHandle']
+ pipe.'open'(cmd, "rp")
pipe.'readall'()
pipe.'close'()
print "expect 0 exit status: "
@@ -609,7 +629,8 @@
say $I0
cmd .= ' --this_is_not_a_valid_option'
- pipe = open cmd, "rp"
+ pipe = new ['FileHandle']
+ pipe.'open'(cmd, "rp")
pipe.'readall'()
pipe.'close'()
print "expect 1 exit status: "
@@ -623,6 +644,84 @@
expect 1 exit status: 1
OUTPUT
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "timely destruction" );
+.const string temp_file = '%s'
+.sub main :main
+ interpinfo $I0, 2 # GC mark runs
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'w')
+ needs_destroy $P0
+ print $P0, "a line\n"
+ null $P0 # kill it
+ sweep 0 # a lazy GC has to close the PIO
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'r')
+ $S0 = $P0.'read'(20)
+ print $S0
+.end
+CODE
+a line
+OUTPUT
+
+my (undef, $no_such_file) = create_tempfile( UNLINK => 1, OPEN => 0 );
+
+pir_output_is( sprintf( <<'CODE', $no_such_file, $temp_file ), <<'OUTPUT', "get_bool" );
+.const string no_such_file = '%s'
+.const string temp_file = '%s'
+
+.sub main :main
+ push_eh read_non_existent_file
+ $P0 = new ['FileHandle']
+ $P0.'open'(no_such_file, 'r')
+
+ print "Huh: '"
+ print no_such_file
+ print "' exists? - not "
+ok1:
+ say "ok 1"
+
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'w')
+ $P0.'print'("a line\n")
+ $P0.'print'("a line\n")
+ $P0.'close'()
+
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'r')
+ if $P0, ok2
+ print "not "
+ok2: say "ok 2"
+ $S0 = $P0.'read'(1024)
+ $S0 = $P0.'read'(1024)
+ unless $P0, ok3
+ print "not "
+ok3: say "ok 3"
+ defined $I0, $P0
+ if $I0, ok4
+ print "not "
+ok4: say "ok 4"
+ $P0.'close'()
+ defined $I0, $P0 # closed file is still defined
+ if $I0, ok5
+ print "not "
+ok5: say "ok 5"
+ unless $P0, ok6 # but false
+ print "not "
+ok6: say "ok 6"
+ .return ()
+read_non_existent_file:
+ pop_eh
+ branch ok1
+.end
+CODE
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+ok 6
+OUTPUT
+
# TT #1178
# L<PDD22/I\/O PMC API/=item get_fd>
# NOTES: this is going to be platform dependent
Modified: branches/gsoc_threads/t/pmc/fixedintegerarray.t
==============================================================================
--- branches/gsoc_threads/t/pmc/fixedintegerarray.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/fixedintegerarray.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -19,7 +19,7 @@
.sub 'main' :main
.include 'test_more.pir'
- plan(33)
+ plan(36)
test_set_size()
test_reset_size()
@@ -31,6 +31,8 @@
test_interface_done()
test_get_iter()
test_equality()
+ test_repr()
+ test_sort()
test_new_style_init()
test_invalid_init_tt1509()
.end
@@ -227,7 +229,7 @@
.end
.sub 'test_equality'
- .local pmc a1, a2
+ .local pmc a1, a2, a3
a1 = new ['FixedIntegerArray']
a2 = new ['FixedIntegerArray']
@@ -247,6 +249,20 @@
a2[1] = 84
is(a1, a2, "Equal when second element same")
+
+ a3 = new ['Complex']
+ isnt(a1, a3, "Different PMC type is not equal")
+.end
+
+.sub 'test_repr'
+ .local pmc a1
+ .local string r
+ a1 = new ['FixedIntegerArray']
+ a1 = 2
+ a1[0] = 7
+ a1[1] = 1
+ r = get_repr a1
+ is(r, '[ 7, 1 ]', 'get_repr')
.end
.sub 'test_new_style_init'
@@ -256,6 +272,23 @@
is($I0, 10, "New style init creates the correct # of elements")
.end
+.sub 'test_sort'
+ .local pmc a1, a2
+ a1 = new ['FixedIntegerArray'], 3
+ a1[0] = 7
+ a1[1] = 1
+ a1[2] = 5
+
+ a2 = new ['FixedIntegerArray'], 3
+ a2[0] = 1
+ a2[1] = 5
+ a2[2] = 7
+
+ a1.'sort'()
+ $I0 = iseq a1, a2
+ is($I0, 1, 'default sort')
+.end
+
.sub test_invalid_init_tt1509
throws_substring(<<'CODE', 'FixedIntegerArray: Cannot set array size to a negative number (-10)', 'New style init does not dump core for negative array lengths')
.sub main
@@ -270,6 +303,8 @@
CODE
.end
+
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/gsoc_threads/t/pmc/freeze.t
==============================================================================
--- branches/gsoc_threads/t/pmc/freeze.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/freeze.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -352,42 +352,51 @@
ok same
OUTPUT
-pasm_output_is( <<'CODE', <<'OUTPUT', "freeze class" );
- newclass P10, "Foo"
- set S10, P10
- print S10
+pir_output_is( <<'CODE', <<'OUTPUT', "freeze class" );
+.const string fpmc = 'temp.fpmc'
+.sub 'main' :main
+ $P10 = newclass "Foo"
+ $S10 = $P10
+ print $S10
print "\n"
- freeze S11, P10
+ freeze $S11, $P10
print "ok 1\n"
- open P3, "temp.fpmc", 'w'
- print P3, S11
- close P3
+
+ $P0 = new ['FileHandle']
+ $P0.'open'(fpmc, 'w')
+ $P0.'print'($S11)
+ $P0.'close'()
print "ok 2\n"
- end
+.end
CODE
Foo
ok 1
ok 2
OUTPUT
-pasm_output_is( <<'CODE', <<'OUTPUT', "thaw class into new interpreter" );
- set S3, "temp.fpmc"
- .include "stat.pasm"
- stat I0, S3, .STAT_FILESIZE
- gt I0, 1, ok1
- print "stat failed\n"
+pir_output_is( <<'CODE', <<'OUTPUT', "thaw class into new interpreter" );
+.const string fpmc = "temp.fpmc"
+.sub 'main' :main
+ $P0 = new ['FileHandle']
+ $P0.'open'(fpmc, 'r')
+ if $P0 goto ok1
+
+ .include 'stdio.pasm'
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'("couldn't open fpmc for reading")
exit 1
+
ok1:
- open P3, S3, 'r'
- read S3, P3, I0
- close P3
+ $S3 = $P0.'readall'()
+ $P0.'close'()
print "ok 1\n"
- thaw P4, S3
+ $P4 = thaw $S3
print "ok 2\n"
- set S10, P4
- print S10
+ $S10 = $P4
+ print $S10
print "\n"
- end
+.end
CODE
ok 1
ok 2
@@ -413,54 +422,66 @@
Foo
OUTPUT
-pasm_output_is( <<'CODE', <<'OUTPUT', "freeze class w attr" );
- newclass P10, "Foo"
- addattribute P10, ".aa"
- set S10, P10
- print S10
+pir_output_is( <<'CODE', <<'OUTPUT', "freeze class w attr" );
+.const string fpmc = 'temp.fpmc'
+.sub 'main' :main
+ $P10 = newclass "Foo"
+ addattribute $P10, ".aa"
+ $S10 = $P10
+ print $S10
print "\n"
- freeze S11, P10
+ $S11 = freeze $P10
print "ok 1\n"
- open P3, "temp.fpmc", 'w'
- print P3, S11
- close P3
+
+ $P0 = new ['FileHandle']
+ $P0.'open'(fpmc, 'w')
+ $P0.'print'($S11)
+ $P0.'close'()
print "ok 2\n"
- end
+.end
CODE
Foo
ok 1
ok 2
OUTPUT
-pasm_output_is( <<'CODE', <<'OUTPUT', "thaw class w attr into new interpreter" );
- set S3, "temp.fpmc"
- .include "stat.pasm"
- stat I0, S3, .STAT_FILESIZE
- gt I0, 1, ok1
- print "stat failed\n"
+pir_output_is( <<'CODE', <<'OUTPUT', "thaw class w attr into new interpreter" );
+.const string fpmc = "temp.fpmc"
+.sub 'main' :main
+ $P0 = new ['FileHandle']
+ $P0.'open'(fpmc, 'r')
+ if $P0 goto ok1
+
+ .include 'stdio.pasm'
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'("couldn't open fpmc for reading\n")
exit 1
+
ok1:
- open P3, S3, 'r'
- read S3, P3, I0
- close P3
- # print S3
- # print "\n"
+ $S3 = $P0.'readall'()
+ $P0.'close'()
print "ok 1\n"
- thaw P4, S3
+
+ $P4 = thaw $S3
print "ok 2\n"
- set S10, P4
- print S10
+
+ $S10 = $P4
+ print $S10
print "\n"
- new P5, S10
+ $P5 = new $S10
print "ok 3\n"
- new P6, ['String']
- set P6, "ok 5\n"
- setattribute P5, '.aa', P6
+
+ $P6 = new ['String']
+ $P6 = "ok 5\n"
+
+ setattribute $P5, '.aa', $P6
print "ok 4\n"
- getattribute P7, P5, '.aa'
- print P7
- end
+
+ $P7 = getattribute $P5, '.aa'
+ print $P7
+.end
CODE
ok 1
ok 2
@@ -470,43 +491,47 @@
ok 5
OUTPUT
-pasm_output_is( <<'CODE', <<'OUTPUT', "thaw class w attr same interp" );
- newclass P10, "Foo"
- addattribute P10, ".aa"
- addattribute P10, ".bb"
- set S10, P10
- print S10
+pir_output_is( <<'CODE', <<'OUTPUT', "thaw class w attr same interp" );
+.const string fpmc = 'temp.fpmc'
+.sub 'main' :main
+ $P10 = newclass "Foo"
+ addattribute $P10, ".aa"
+ addattribute $P10, ".bb"
+ $S10 = $P10
+ print $S10
print "\n"
- freeze S3, P10
- open P3, "temp.fpmc", 'w'
- print P3, S3
- close P3
- # print S3
- # print "\n"
+ $S3 = freeze $P10
+ $P0 = new ['FileHandle']
+ $P0.'open'(fpmc, 'w')
+ $P0.'print'($S3)
+ $P0.'close'()
print "ok 1\n"
- thaw P4, S3
+
+ $P4 = thaw $S3
print "ok 2\n"
- set S10, P4
- print S10
+
+ $S10 = $P4
+ print $S10
print "\n"
- new P5, S10
+ $P5 = new $S10
print "ok 3\n"
- new P6, ['String']
- set P6, "ok 5\n"
- setattribute P5, ["Foo"], ".aa", P6
- new P6, ['String']
- set P6, "ok 6\n"
- setattribute P5, ["Foo"], ".bb", P6
- print "ok 4\n"
- getattribute P7, P5, ".aa"
- print P7
- getattribute P7, P5, ".bb"
- print P7
- end
+ $P6 = new ['String']
+ $P6 = "ok 5\n"
+ setattribute $P5, ["Foo"], ".aa", $P6
+
+ $P6 = new ['String']
+ $P6 = "ok 6\n"
+ setattribute $P5, ["Foo"], ".bb", $P6
+ print "ok 4\n"
+ $P7 = getattribute $P5, ".aa"
+ print $P7
+ $P7 = getattribute $P5, ".bb"
+ print $P7
+.end
CODE
Foo
ok 1
@@ -518,37 +543,42 @@
ok 6
OUTPUT
-pasm_output_is( <<'CODE', <<'OUTPUT', "thaw object w attr into same interpreter" );
- newclass P10, "Foo"
- addattribute P10, ".aa"
- addattribute P10, ".bb"
- new P10, ['Foo']
- print S10
- freeze S3, P10
- open P3, "temp.fpmc", 'w'
- print P3, S3
- close P3
+pir_output_is( <<'CODE', <<'OUTPUT', "thaw object w attr into same interpreter" );
+.const string fpmc = 'temp.fpmc'
+.sub 'main' :main
+ $P10 = newclass "Foo"
+ addattribute $P10, ".aa"
+ addattribute $P10, ".bb"
+
+ $P10 = new ['Foo']
+ $S3 = freeze $P10
print "ok 1\n"
+ $P0 = new ['FileHandle']
+ $P0.'open'(fpmc, 'w')
+ $P0.'print'($S3)
+ $P0.'close'()
- thaw P5, S3
+ $P5 = thaw $S3
print "ok 2\n"
- typeof S10, P5
- print S10
+
+ $S10 = typeof $P5
+ print $S10
print "\n"
print "ok 3\n"
- new P6, ['String']
- set P6, "ok 5\n"
- setattribute P5, ["Foo"], ".aa", P6
- new P6, ['String']
- set P6, "ok 6\n"
- setattribute P5, ["Foo"], ".bb", P6
+ $P6 = new ['String']
+ $P6 = "ok 5\n"
+ setattribute $P5, ["Foo"], ".aa", $P6
+ $P6 = new ['String']
+ $P6 = "ok 6\n"
+ setattribute $P5, ["Foo"], ".bb", $P6
print "ok 4\n"
- getattribute P7, P5, ".aa"
- print P7
- getattribute P7, P5, ".bb"
- print P7
- end
+
+ $P7 = getattribute $P5, ".aa"
+ print $P7
+ $P7 = getattribute $P5, ".bb"
+ print $P7
+.end
CODE
ok 1
ok 2
@@ -559,37 +589,44 @@
ok 6
OUTPUT
-pasm_output_is( <<'CODE', <<'OUTPUT', "thaw object w attr into new interpreter" );
- set S3, "temp.fpmc"
- .include "stat.pasm"
- stat I0, S3, .STAT_FILESIZE
- gt I0, 1, ok1
- print "stat failed\n"
- exit 1
+pir_output_is( <<'CODE', <<'OUTPUT', "thaw object w attr into new interpreter" );
+.const string fpmc = 'temp.fpmc'
+.sub 'main' :main
+ $P0 = new ['FileHandle']
+ $P0.'open'(fpmc, 'r')
+ if $P0 goto ok1
+
+ .include 'stdio.pasm'
+ $P0 = getinterp
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'("open failed\n")
+
ok1:
- open P3, S3, 'r'
- read S3, P3, I0
- close P3
+ $S3 = $P0.'readall'()
+ $P0.'close'()
- thaw P5, S3
+ $P5 = thaw $S3
print "ok 2\n"
- typeof S10, P5
- print S10
+ $S10 = typeof $P5
+ print $S10
print "\n"
print "ok 3\n"
- new P6, ['String']
- set P6, "ok 5\n"
- setattribute P5, ["Foo"], ".aa", P6
- new P6, ['String']
- set P6, "ok 6\n"
- setattribute P5, ["Foo"], ".bb", P6
+ $P6 = new ['String']
+ $P6 = "ok 5\n"
+ setattribute $P5, ["Foo"], ".aa", $P6
+
+ $P6 = new ['String']
+ $P6 = "ok 6\n"
+ setattribute $P5, ["Foo"], ".bb", $P6
+
print "ok 4\n"
- getattribute P7, P5, ".aa"
- print P7
- getattribute P7, P5, ".bb"
- print P7
- end
+ $P7 = getattribute $P5, ".aa"
+ print $P7
+
+ $P7 = getattribute $P5, ".bb"
+ print $P7
+.end
CODE
ok 2
Foo
Modified: branches/gsoc_threads/t/pmc/integer.t
==============================================================================
--- branches/gsoc_threads/t/pmc/integer.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/integer.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -19,7 +19,7 @@
.sub 'test' :main
.include 'test_more.pir'
- plan(62)
+ plan(61)
test_init()
test_basic_math()
test_truthiness_and_definedness()
@@ -321,8 +321,6 @@
is($P2,3)
mod $P2, $P0, $P1
is($P2,0)
- pow $P2, $P0, $P1
- is($P2,36)
.end
Modified: branches/gsoc_threads/t/pmc/io.t
==============================================================================
--- branches/gsoc_threads/t/pmc/io.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/io.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -7,8 +7,7 @@
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 41;
-use Parrot::Test::Util 'create_tempfile';
+use Parrot::Test tests => 32;
use Parrot::Test::Util 'create_tempfile';
=head1 NAME
@@ -41,145 +40,54 @@
my (undef, $temp_file) = create_tempfile( UNLINK => 1 );
-pasm_output_is( <<"CODE", <<'OUTPUT', "open/close" );
- open P0, "$temp_file", 'w'
- print P0, "a line\\n"
- close P0
- open P0, "$temp_file", 'r'
- read S0, P0, 20
- print S0
- end
-CODE
-a line
-OUTPUT
-
-pasm_output_is( <<"CODE", <<'OUTPUT', "timely destruction" );
- interpinfo I0, 2 # GC mark runs
- open P0, "$temp_file", 'w'
- needs_destroy P0
- print P0, "a line\\n"
- null P0 # kill it
- sweep 0 # a lazy GC has to close the PIO
- open P0, "$temp_file", 'r'
- read S0, P0, 20
- print S0
- end
-CODE
-a line
-OUTPUT
-
-# TT #1178
-pir_output_is( <<'CODE', <<'OUTPUT', "get_fd()/fdopen" );
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "timely destruction" );
+.const string temp_file = '%s'
.sub main :main
- getstdout $P0
- $I0 = $P0.'get_fd'()
- fdopen $P1, $I0, 'w'
- defined $I0, $P1
- unless $I0, nok
- print $P1, "ok\n"
- close $P1
- end
-nok:
- print "fdopen failed\n"
+ interpinfo $I0, 2 # GC mark runs
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'w')
+ needs_destroy $P0
+ print $P0, "a line\n"
+ null $P0 # kill it
+ sweep 0 # a lazy GC has to close the PIO
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'r')
+ $S0 = $P0.'read'(20)
+ print $S0
.end
CODE
-ok
+a line
OUTPUT
-# TT #1178
-pir_output_is( <<'CODE', <<'OUTPUT', 'fdopen - no close' );
+pir_output_is( <<'CODE', <<'OUTPUT', "read on invalid fh should throw exception" );
.sub main :main
- getstdout $P0
- $I0 = $P0.'get_fd'()
- fdopen $P1, $I0, 'w'
- defined $I0, $P1
- unless $I0, nok
- print $P1, "ok\n"
- end
-nok:
- print "fdopen failed\n"
-.end
-CODE
-ok
-OUTPUT
-
-my (undef, $no_such_file) = create_tempfile( UNLINK => 1, OPEN => 0 );
-
-pasm_output_is( <<"CODE", <<'OUTPUT', "get_bool" );
- push_eh read_non_existent_file
- open P0, "$no_such_file", 'r'
-
- print "Huh: '$no_such_file' exists? - not "
-ok1:
- say "ok 1"
-
- open P0, "$temp_file", 'w'
- print P0, "a line\\n"
- print P0, "a line\\n"
- close P0
-
- open P0, "$temp_file", 'r'
- if P0, ok2
- print "not "
-ok2: say "ok 2"
- read S0, P0, 1024
- read S0, P0, 1024
- unless P0, ok3
- print "not "
-ok3: say "ok 3"
- defined I0, P0
- if I0, ok4
- print "not "
-ok4: say "ok 4"
- close P0
- defined I0, P0 # closed file is still defined
- if I0, ok5
- print "not "
-ok5: say "ok 5"
- unless P0, ok6 # but false
- print "not "
-ok6: say "ok 6"
- end
-read_non_existent_file:
- pop_eh
- branch ok1
-CODE
-ok 1
-ok 2
-ok 3
-ok 4
-ok 5
-ok 6
-OUTPUT
-
-pasm_output_is( <<"CODE", <<'OUTPUT', "read on invalid fh should throw exception" );
- new P0, ['FileHandle']
+ new $P0, ['FileHandle']
push_eh _readline_handler
- readline S0, P0
+ $S0 = $P0.'readline'()
print "not "
_readline_handler:
- print "ok 1\\n"
+ print "ok 1\n"
pop_eh
push_eh _read_handler
- read S0, P0, 1
+ $S0 = $P0.'read'(1)
print "not "
_read_handler:
- print "ok 2\\n"
+ print "ok 2\n"
pop_eh
push_eh _print_handler
- print P0, "kill me now\\n"
+ print $P0, "kill me now\n"
print "not "
_print_handler:
- print "ok 3\\n"
+ print "ok 3\n"
pop_eh
- end
+.end
CODE
ok 1
ok 2
@@ -205,15 +113,21 @@
print $FOO "2\n1\n";
close $FOO;
-pasm_output_is( <<"CODE", <<'OUTPUT', "open and readline" );
- open P0, "$temp_file"
- set S0, ""
- set S1, ""
- readline S0, P0
- readline S1, P0
- print S1
- print S0
- end
+pir_output_is( sprintf( <<'CODE', $temp_file ), <<'OUTPUT', "open and readline" );
+.const string temp_file = '%s'
+.sub 'main' :main
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file)
+
+ $S0 = ''
+ $S1 = ''
+
+ $S0 = $P0.'readline'()
+ $S1 = $P0.'readline'()
+
+ print $S1
+ print $S0
+.end
CODE
1
2
@@ -223,15 +137,21 @@
print $FOO "12\n34";
close $FOO;
-pasm_output_is( <<"CODE", <<'OUTPUT', "open and readline, no final newline" );
- open P0, "$temp_file"
- set S0, ""
- set S1, ""
- readline S0, P0
- readline S1, P0
- print S1
- print S0
- end
+pir_output_is( sprintf( <<'CODE', $temp_file ), <<'OUTPUT', "open and readline, no final newline" );
+.const string temp_file = '%s'
+.sub 'main' :main
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file)
+
+ $S0 = ''
+ $S1 = ''
+
+ $S0 = $P0.'readline'()
+ $S1 = $P0.'readline'()
+
+ print $S1
+ print $S0
+.end
CODE
3412
OUTPUT
@@ -239,26 +159,30 @@
($FOO, $temp_file) = create_tempfile( UNLINK => 1 );
close $FOO;
-pasm_output_is( <<"CODE", <<'OUTPUT', "open & print" );
- set I0, -12
- set N0, 2.2
- set S0, "Foo"
- new P0, ['String']
- set P0, "Bar\\n"
-
- open P1, "$temp_file", "w"
- print P1, I0
- print P1, N0
- print P1, S0
- print P1, P0
- close P1
-
- open P2, "$temp_file"
- readline S1, P2
- close P2
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "open & print" );
+.const string temp_file = '%s'
+.sub 'main' :main
+ $I0 = -12
+ $N0 = 2.2
+ $S0 = "Foo"
+ $P0 = new ['String']
+ $P0 = "Bar\n"
+
+ $P1 = new ['FileHandle']
+ $P1.'open'(temp_file, 'w')
+ $P1.'print'($I0)
+ $P1.'print'($N0)
+ $P1.'print'($S0)
+ $P1.'print'($P0)
+ $P1.'close'()
+
+ $P2 = new ['FileHandle']
+ $P2.'open'(temp_file)
+ $S1 = $P2.'readline'()
+ $P2.'close'()
- print S1
- end
+ print $S1
+.end
CODE
-122.2FooBar
OUTPUT
@@ -267,41 +191,47 @@
close $FOO;
# write to file opened for reading
-pasm_output_is( <<"CODE", <<'OUTPUT', "3-arg open" );
- open P1, "$temp_file", 'w'
- print P1, "Foobar\\n"
- close P1
-
- push_eh _print_to_read_only
-
- open P2, "$temp_file", 'r'
- print P2, "baz\\n"
- say "skipped"
-
-_print_to_read_only:
- say "caught writing to file opened for reading"
- pop_eh
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "3-arg open" );
+.const string temp_file = '%s'
+.sub 'main' :main
+ $P1 = new ['FileHandle']
+ $P1.'open'(temp_file, 'w')
+ $P1.'print'("Foobar\n")
+ $P1.'close'()
+
+ push_eh _print_to_read_only
+
+ $P2 = new ['FileHandle']
+ $P2.'open'(temp_file, 'r')
+ $P2.'print'("baz\n")
+ say "skipped"
- close P2
-
- open P3, "$temp_file", 'r'
- readline S1, P3
- close P3
- print S1
+ _print_to_read_only:
+ say "caught writing to file opened for reading"
+ pop_eh
+ $P2.'close'()
- end
+ $P3 = new ['FileHandle']
+ $P3.'open'(temp_file, 'r')
+ $S1 = $P3.'readline'()
+ $P3.'close'()
+ print $S1
+.end
CODE
caught writing to file opened for reading
Foobar
OUTPUT
-pasm_output_is( <<"CODE", <<'OUTPUT', 'open and close' );
- open P1, "$temp_file", "w"
- print P1, "Hello, World!\\n"
- close P1
- say "done"
- end
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', 'open and close' );
+.const string temp_file = '%s'
+.sub 'main' :main
+ $P1 = new ['FileHandle']
+ $P1.'open'(temp_file, "w")
+ $P1.'print'("Hello, World!\n")
+ $P1.'close'()
+ say "done"
+.end
CODE
done
OUTPUT
@@ -310,11 +240,14 @@
Hello, World!
OUTPUT
-pasm_output_is( <<"CODE", '', 'append' );
- open P1, "$temp_file", 'wa'
- print P1, "Parrot flies\\n"
- close P1
- end
+pir_output_is( sprintf(<<'CODE', $temp_file), '', 'append' );
+.const string temp_file = '%s'
+.sub 'main' :main
+ $P1 = new ['FileHandle']
+ $P1.'open'(temp_file, 'wa')
+ $P1.'print'("Parrot flies\n")
+ $P1.'close'()
+.end
CODE
file_content_is( $temp_file, <<'OUTPUT', 'append file contents' );
@@ -322,54 +255,62 @@
Parrot flies
OUTPUT
-pasm_output_is( <<"CODE", '', 'write to file' );
- open P1, "$temp_file", 'w'
- print P1, "Parrot overwrites\\n"
- close P1
- end
+pir_output_is( sprintf(<<'CODE', $temp_file), '', 'write to file' );
+.const string temp_file = '%s'
+.sub 'main' :main
+ $P1 = new ['FileHandle']
+ $P1.'open'(temp_file, 'w')
+ $P1.'print'("Parrot overwrites\n")
+ $P1.'close'()
+.end
CODE
file_content_is( $temp_file, <<'OUTPUT', 'file contents' );
Parrot overwrites
OUTPUT
-pasm_output_is( <<"CODE", '', "Parrot_io_flush on buffer full" );
- set I0, 0
- set I1, 10000
+pir_output_is( <<"CODE", '', "Parrot_io_flush on buffer full" );
+.sub "main"
+ set \$I0, 0
+ set \$I1, 10000
- open P0, "$temp_file", 'w'
+ new \$P0, ['FileHandle']
+ \$P0.'open'("$temp_file", 'w')
PRINT:
- ge I0, I1, END
- print P0, "words\\n"
- inc I0
+ ge \$I0, \$I1, END
+ print \$P0, "words\\n"
+ inc \$I0
branch PRINT
END:
- close P0
- end
+ \$P0.'close'()
+.end
CODE
file_content_is( $temp_file, <<'OUTPUT' x 10000, 'buffered file contents' );
words
OUTPUT
-pir_output_is( <<"CODE", <<'OUTPUT', "turn off buffering" );
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "turn off buffering" );
+.const string temp_file = '%s'
+
.sub main :main
- open \$P0, "$temp_file", 'w'
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'w')
-# set buffer type
- \$P0.'buffer_type'('unbuffered')
+# set buffer type
+ $P0.'buffer_type'('unbuffered')
-# get buffer type
- \$S0 = \$P0.'buffer_type'()
- print \$S0
- print "\\n"
+# get buffer type
+ $S0 = $P0.'buffer_type'()
+ print $S0
+ print "\n"
- print \$P0, "Howdy World\\n"
+ print $P0, "Howdy World\n"
- close \$P0
- end
+ $P0.'close'()
+ end
.end
CODE
unbuffered
@@ -379,50 +320,54 @@
Howdy World
OUTPUT
-pir_output_is( <<"CODE", <<'OUTPUT', 'I/O buffering' );
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', 'I/O buffering' );
+.const string temp_file = '%s'
+
.sub main
.local string filename
- filename = "$temp_file"
- \$P1 = open filename, 'w'
+ filename = temp_file
+ $P1 = new ['FileHandle']
+ $P1.'open'(filename, 'w')
.local int count, max, nltest
count = 0
max = 10000
LOOP:
if count > max goto DONE
- \$S1 = count
- \$S1 = concat \$S1, " "
- print \$P1, \$S1
+ $S1 = count
+ $S1 = concat $S1, " "
+ print $P1, $S1
inc count
nltest = mod count, 20
if nltest goto LOOP
- print \$P1, "\\n"
+ print $P1, "\n"
goto LOOP
DONE:
- print \$P1, "\\n"
- close \$P1
+ print $P1, "\n"
+ $P1.'close'()
PART_2:
- \$P1 = open filename
- \$I0 = 0
+ $P1 = new ['FileHandle']
+ $P1.'open'(filename)
+ $I0 = 0
LINE:
- \$S1 = readline \$P1
- unless \$S1 goto SUCCESS
- \$S1 = chopn \$S1, 1
+ $S1 = $P1.'readline'()
+ unless $S1 goto SUCCESS
+ $S1 = chopn $S1, 1
NEXT_NR:
- \$I1 = length \$S1
- if \$I1 <= 1 goto LINE
- \$S2 = ""
+ $I1 = length $S1
+ if $I1 <= 1 goto LINE
+ $S2 = ""
SPLIT:
- \$S3 = substr \$S1, 0, 1
- \$S1 = replace \$S1, 0, 1, ""
- if \$S3 == " " goto GOT_NR
- \$S2 = concat \$S2, \$S3
+ $S3 = substr $S1, 0, 1
+ $S1 = replace $S1, 0, 1, ""
+ if $S3 == " " goto GOT_NR
+ $S2 = concat $S2, $S3
goto SPLIT
GOT_NR:
- \$I1 = \$S2
- if \$I0 != \$I1 goto FAILED
- inc \$I0
+ $I1 = $S2
+ if $I0 != $I1 goto FAILED
+ inc $I0
goto NEXT_NR
FAILED:
@@ -439,18 +384,21 @@
# TT #1178
pir_output_is( <<'CODE', <<'OUT', 'standard file descriptors' );
+.include 'stdio.pasm'
.sub main :main
- getstdin $P0
- $I0 = $P0.'get_fd'()
+ $P99 = getinterp
+ $P0 = $P99.'stdhandle'(.PIO_STDIN_FILENO)
+ $I0 = $P0.'get_fd'()
# I0 is 0 on Unix and non-Null on stdio and win32
print "ok 1\n"
- getstdout $P1
+
+ $P1 = $P99.'stdhandle'(.PIO_STDOUT_FILENO)
$I1 = $P1.'get_fd'()
if $I1, OK_2
print "not "
OK_2:
say "ok 2"
- getstderr $P2
+ $P2 = $P99.'stdhandle'(.PIO_STDERR_FILENO)
$I2 = $P2.'get_fd'()
if $I2, OK_3
print "not "
@@ -463,45 +411,31 @@
ok 3
OUT
-pasm_output_is( <<'CODE', <<'OUTPUT', 'printerr' );
- new P0, ['String']
- set P0, "This is a test\n"
- printerr 10
- printerr "\n"
- printerr 1.0
- printerr "\n"
- printerr "foo"
- printerr "\n"
- printerr P0
- end
-CODE
-10
-1
-foo
-This is a test
-OUTPUT
-
-pasm_output_is( <<'CODE', <<'OUTPUT', 'puts method' );
- getstdout P2
- can I0, P2, "puts"
- if I0, ok1
- print "not "
+pir_output_is( <<'CODE', <<'OUTPUT', 'puts method' );
+.include 'stdio.pasm'
+.sub main :main
+ $P0 = getinterp
+ $P2 = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
+ can $I0, $P2, "puts"
+ if $I0, ok1
+ print "not "
ok1: print "ok 1\n"
- set_args "0,0", P2, "ok 2\n"
- callmethodcc P2, "puts"
- end
+ set_args "0,0", $P2, "ok 2\n"
+ callmethodcc $P2, "puts"
+.end
CODE
ok 1
ok 2
OUTPUT
pir_output_is( <<'CODE', <<'OUTPUT', 'puts method - PIR' );
-
+.include 'stdio.pasm'
.sub main :main
.local string s
s = "ok 2\n"
.local pmc io
- io = getstdout
+ $P0 = getinterp
+ io = $P0.'stdhandle'(.PIO_STDOUT_FILENO)
$I0 = can io, "puts"
if $I0 goto ok1
print "not "
@@ -515,86 +449,115 @@
OUTPUT
pasm_output_is( <<'CODE', <<'OUTPUT', 'callmethod puts' );
- getstderr P2 # the object
- set S0, "puts" # method
- set S5, "ok 1\n" # 2nd param
- set_args "0,0", P2, S5
- callmethodcc P2, S0
- set S5, "ok 2\n"
- set_args "0,0", P2, S5
- callmethodcc P2, S0
- end
+.include 'stdio.pasm'
+ getinterp P0 # invocant
+ set I0, .PIO_STDERR_FILENO # 1st argument
+ set_args "0,0", P0, I0
+ callmethodcc P0, "stdhandle"
+ get_results "0", P2 # STDERR
+
+ set S0, "puts" # method
+ set S5, "ok 1\n" # 2nd param
+ set_args "0,0", P2, S5
+ callmethodcc P2, S0
+
+ set S5, "ok 2\n"
+ set_args "0,0", P2, S5
+ callmethodcc P2, S0
+
+ end
CODE
ok 1
ok 2
OUTPUT
-pasm_output_is( <<"CODE", <<'OUTPUT', 'seek/tell' );
- open P0, "$temp_file", 'w'
- print P0, "Hello "
- tell I0, P0
- print P0, "World!"
- seek P0, I0, 0
- print P0, "Parrot!\\n"
- close P0
- say "ok 1"
- open P0, "$temp_file", 'r'
- read S0, P0, 65635
- print S0
- end
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', 'seek/tell' );
+.const string temp_file = '%s'
+.sub 'main' :main
+ $P0 = new ['FileHandle']
+
+ $P0.'open'(temp_file, 'w')
+ $P0.'print'("Hello ")
+ $I0 = $P0.'tell'()
+ $P0.'print'("World!")
+ $P0.'seek'(0, $I0)
+ $P0.'print'("Parrot!\n")
+ $P0.'close'()
+ say "ok 1"
+
+ $P0.'open'(temp_file, 'r')
+ $S0 = $P0.'read'(65635)
+ print $S0
+.end
CODE
ok 1
Hello Parrot!
OUTPUT
-pasm_error_output_like( <<"CODE", <<'OUTPUT', '32bit seek: exception' );
- open P0, "$temp_file", 'w'
- seek P0, -1, 0
- say "error!"
- end
+pir_error_output_like( sprintf(<<'CODE', $temp_file), <<'OUTPUT', '32bit seek: exception' );
+.const string temp_file = '%s'
+.sub main :main
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'w')
+ $P0.'seek'(-1, 0)
+ say "error!"
+.end
CODE
-/seek failed \(32bit\)/
+/seek failed/
OUTPUT
-pasm_error_output_like( <<"CODE", <<'OUTPUT', '64bit seek: exception' );
- open P0, "$temp_file", 'w'
- seek P0, -1, -1, 0
- say "error!"
- end
+pir_error_output_like( sprintf(<<'CODE', $temp_file), <<'OUTPUT', '64bit seek: exception' );
+.const string temp_file = '%s'
+.sub main :main
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'w')
+ $P0.'seek'(-1, -1, 0)
+ say "error!"
+.end
CODE
-/seek failed \(64bit\)/
+/seek failed/
OUTPUT
-pasm_output_is( <<"CODE", <<'OUTPUT', "peek" );
- open P0, "$temp_file", 'w'
- print P0, "a line\\n"
- close P0
- open P0, "$temp_file", 'r'
- peek S0, P0
- print S0
- peek S1, P0
- print S1
- print "\\n"
- read S2, P0, 2
- peek S3, P0
- print S3
- print "\\n"
- end
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "peek" );
+.const string temp_file = '%s'
+.sub main :main
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'w')
+ print $P0, "a line\n"
+ $P0.'close'()
+
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'r')
+ $S0 = $P0.'peek'()
+ print $S0
+ $S1 = $P0.'peek'()
+ print $S1
+ print "\n"
+ $S2 = $P0.'read'(2)
+ $S3 = $P0.'peek'()
+ print $S3
+ print "\n"
+.end
CODE
aa
l
OUTPUT
-pasm_output_is( <<"CODE", <<'OUTPUT', "peek on an empty file" );
- open P0, "$temp_file", 'w'
- close P0
- open P0, "$temp_file", 'r'
- peek S0, P0
- eq S0, "", OK1
+pir_output_is( sprintf(<<'CODE', $temp_file), <<'OUTPUT', "peek on an empty file" );
+.const string temp_file = '%s'
+.sub main :main
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'w')
+ $P0.'close'()
+
+ $P0 = new ['FileHandle']
+ $P0.'open'(temp_file, 'r')
+ $S0 = $P0.'peek'()
+ eq $S0, "", OK1
print "not "
OK1:
say "ok 1"
- end
+.end
CODE
ok 1
OUTPUT
@@ -603,15 +566,17 @@
.sub _main
# Write something into a file
.local pmc out
- out = open "$temp_file", 'w'
+ out = new ['FileHandle']
+ out.'open'("$temp_file", 'w')
print out, "0123456789\\n"
- close out
+ out.'close'()
# read file contents back in
.local pmc in
- in = open "$temp_file", 'r'
+ in = new ['FileHandle']
+ in.'open'("$temp_file", 'r')
.local string from_file
- from_file = read in, 20
+ from_file = in.'read'(20)
# Extract part of the read in file
.local string head_from_file
@@ -629,15 +594,17 @@
.sub _main
# Write something into a file
.local pmc out
- out = open "$temp_file", 'w'
+ out = new ['FileHandle']
+ out.'open'("$temp_file", 'w')
print out, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\\n"
- close out
+ out.'close'()
.local pmc in
.local string line
- in = open '$temp_file', 'r'
- line = read in, 50000
- close in
+ in = new ['FileHandle']
+ in.'open'('$temp_file', 'r')
+ line = in.'read'(50000)
+ in.'close'()
.local string sub_1
sub_1 = ''
@@ -662,104 +629,33 @@
sub_2: 345
OUTPUT
-pir_error_output_like( <<'CODE', <<'OUT', 'read on null PMC throws exception');
-.sub main :main
- null $P1
- $S0 = read $P1, 1
- end
-.end
-CODE
-/read from null/
-OUT
-
($FOO, $temp_file) = create_tempfile( UNLINK => 1 );
print $FOO "T\xc3\xb6tsch\n";
close $FOO;
-pir_output_is( <<"CODE", <<"OUTPUT", "utf8 read enabled" );
-.sub main :main
- .local pmc pio
- .local int len
- .include "stat.pasm"
- .local string f
- f = '$temp_file'
- len = stat f, .STAT_FILESIZE
- pio = open f, 'r'
- pio.'encoding'("utf8")
- \$S0 = read pio, len
- close pio
- \$I1 = charset \$S0
- \$S2 = charsetname \$I1
- say \$S2
-
- \$I1 = encoding \$S0
- \$S2 = encodingname \$I1
- say \$S2
-
- \$I1 = find_charset 'iso-8859-1'
- trans_charset \$S1, \$S0, \$I1
- print \$S1
-.end
-CODE
-unicode
-utf8
-T\xf6tsch
-OUTPUT
-
-pir_output_is( <<"CODE", <<"OUTPUT", "utf8 read enabled - readline" );
+pir_output_is( sprintf(<<'CODE', $temp_file), <<"OUTPUT", "utf8 read enabled, read parts" );
+.const string temp_file = '%s'
.sub main :main
.local pmc pio
- .local string f
- f = '$temp_file'
- pio = open f, 'r'
+ pio = new ['FileHandle']
+ pio.'open'(temp_file, 'r')
pio.'encoding'("utf8")
- \$S0 = readline pio
- close pio
- \$I1 = charset \$S0
- \$S2 = charsetname \$I1
- say \$S2
-
- \$I1 = encoding \$S0
- \$S2 = encodingname \$I1
- say \$S2
-
- \$I1 = find_charset 'iso-8859-1'
- trans_charset \$S1, \$S0, \$I1
- print \$S1
-.end
-CODE
-unicode
-utf8
-T\xf6tsch
-OUTPUT
-
-pir_output_is( <<"CODE", <<"OUTPUT", "utf8 read enabled, read parts" );
-.sub main :main
- .local pmc pio
- .local int len
- .include "stat.pasm"
- .local string f
- f = '$temp_file'
- len = stat f, .STAT_FILESIZE
- pio = open f, 'r'
- pio.'encoding'("utf8")
- \$S0 = read pio, 2
- len -= 2
- \$S1 = read pio, len
- \$S0 .= \$S1
- close pio
- \$I1 = charset \$S0
- \$S2 = charsetname \$I1
- say \$S2
-
- \$I1 = encoding \$S0
- \$S2 = encodingname \$I1
- say \$S2
-
- \$I1 = find_charset 'iso-8859-1'
- trans_charset \$S1, \$S0, \$I1
- print \$S1
+ $S0 = pio.'read'(2)
+ $S1 = pio.'read'(1024) # read the rest of the file (much shorter than 1K)
+ $S0 .= $S1
+ pio.'close'()
+ $I1 = charset $S0
+ $S2 = charsetname $I1
+ say $S2
+
+ $I1 = encoding $S0
+ $S2 = encodingname $I1
+ say $S2
+
+ $I1 = find_charset 'iso-8859-1'
+ trans_charset $S1, $S0, $I1
+ print $S1
.end
CODE
unicode
@@ -775,9 +671,10 @@
line 3
EOS
.local pmc pio, cl
- pio = open "$temp_file", 'w'
+ pio = new ['FileHandle']
+ pio.'open'("$temp_file", 'w')
print pio, \$S0
- close pio
+ pio.'close'()
cl = new ['FileHandle']
\$S1 = cl.'readall'('$temp_file')
if \$S0 == \$S1 goto ok
@@ -797,10 +694,13 @@
line 3
EOS
.local pmc pio, pio2
- pio = open "$temp_file", 'w'
+ pio = new ['FileHandle']
+ pio.'open'("$temp_file", 'w')
print pio, \$S0
- close pio
- pio2 = open "$temp_file", 'r'
+ pio.'close'()
+
+ pio2 = new ['FileHandle']
+ pio2.'open'("$temp_file", 'r')
\$S1 = pio2.'readall'()
if \$S0 == \$S1 goto ok
print "not "
@@ -811,20 +711,6 @@
ok
OUTPUT
-pir_error_output_like( <<'CODE', <<"OUTPUT", "stat failed" );
-.sub main :main
- .local pmc pio
- .local int len
- .include "stat.pasm"
- .local string f
- f = 'no_such_file'
- len = stat f, .STAT_FILESIZE
- print "never\n"
-.end
-CODE
-/stat failed:/
-OUTPUT
-
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
Modified: branches/gsoc_threads/t/pmc/lexpad.t
==============================================================================
--- branches/gsoc_threads/t/pmc/lexpad.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/lexpad.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -19,9 +19,10 @@
.sub main :main
.include 'test_more.pir'
- plan(4)
+ plan(8)
new_test()
+ test_keyed()
test_iter()
.end
@@ -36,7 +37,31 @@
end:
.end
+.sub test_keyed
+ .local pmc p1
+ .lex 'p1', p1
+
+ $P0 = getinterp
+ $P0 = $P0['lexpad']
+ $I0 = elements $P0
+ is($I0, 1, "get LexPad elements")
+ $I0 = exists $P0['p1']
+ is($I0, 1, ".lex exists_keyed true")
+
+ $I0 = exists $P0['nosuchlex']
+ is($I0, 0, ".lex exists_keyed false")
+
+ $P1 = new 'Integer'
+ push_eh eh
+ $P0['nosuchlex'] = $P1
+ ok(0, "setting a non existent .lex should throw")
+ goto end
+eh:
+ pop_eh
+ ok(1, "setting a non existent .lex throws")
+end:
+.end
.sub 'test_iter'
Modified: branches/gsoc_threads/t/pmc/nci.t
==============================================================================
--- branches/gsoc_threads/t/pmc/nci.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/nci.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -608,24 +608,26 @@
ok 1
OUTPUT
- pasm_output_is( <<'CODE', <<'OUTPUT', "nci_it" );
- loadlib P1, "libnci_test"
+ pir_output_is( <<'CODE', <<'OUTPUT', "nci_it" );
+.loadlib 'io_ops'
+.sub 'main' :main
+ loadlib $P1, "libnci_test"
printerr "loaded\n"
- dlfunc P0, P1, "nci_it", "it"
+ dlfunc $P0, $P1, "nci_it", "it"
printerr "dlfunced\n"
- set S5, "ko\n"
- set_args "0", S5
- invokecc P0
- get_results "0", I5
- ne I5, 2, nok_1
+ set $S5, "ko\n"
+ set_args "0", $S5
+ invokecc $P0
+ get_results "0", $I5
+ ne $I5, 2, nok_1
printerr "ok 2\n"
end
nok_1: printerr "nok 1\n"
- printerr I5
+ printerr $I5
printerr "\n"
end
nok_2: printerr "nok 2\n"
- end
+.end
CODE
loaded
dlfunced
@@ -636,6 +638,7 @@
pir_output_is( <<'CODE', <<'OUTPUT', "nci_it" );
.include "datatypes.pasm"
+.loadlib 'io_ops'
.sub test :main
loadlib $P1, "libnci_test"
Modified: branches/gsoc_threads/t/pmc/objects.t
==============================================================================
--- branches/gsoc_threads/t/pmc/objects.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/objects.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -1603,46 +1603,46 @@
new $P5, ['String'] # set attribute values
set $P5, "i" # attribute slots have reference semantics
set_args "0,0", $P5, "i"
- get_results ""
callmethodcc $P13, "Foo54__set"
+ get_results ""
new $P5, ['String']
set $P5, "j"
set_args "0,0", $P5, "j"
- get_results ""
callmethodcc $P13,"Foo54__set"
+ get_results ""
new $P5, ['String']
set $P5, "k"
set_args "0,0", $P5, "k"
- get_results ""
callmethodcc $P13,"Bar54__set"
+ get_results ""
new $P5, ['String']
set $P5, "l"
set_args "0,0", $P5, "l"
- get_results ""
callmethodcc $P13,"Bar54__set"
+ get_results ""
# now retrieve attributes
set_args "0", "i"
- get_results "0", $P5
callmethodcc $P13,"Foo54__get"
+ get_results "0", $P5
is( $P5, "i", 'got attrib i from Bar54->Foo54__get' )
set_args "0", "j"
- get_results "0", $P5
callmethodcc $P13,"Foo54__get"
+ get_results "0", $P5
is( $P5, "j", 'got attrib j from Bar54->Foo54__get' )
set_args "0", "k"
- get_results "0", $P5
callmethodcc $P13,"Bar54__get"
+ get_results "0", $P5
is( $P5, "k", 'got attrib k from Bar54->Bar54__get' )
set_args "0", "l"
- get_results "0", $P5
callmethodcc $P13,"Bar54__get"
+ get_results "0", $P5
is( $P5, "l", 'got attrib l from Bar54->Bar54__get' )
.end
Modified: branches/gsoc_threads/t/pmc/packfile.t
==============================================================================
--- branches/gsoc_threads/t/pmc/packfile.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/packfile.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -15,6 +15,8 @@
Tests the Packfile PMC.
+If you see this tests failing after bumping PBC_COMPAT rerun tools/dev/mk_packfile_pbc.
+
=cut
.include 't/pmc/testlib/packfile_common.pir'
@@ -295,26 +297,30 @@
# Packfile.pack.
# Check that unpack-pack produce correct result.
.sub 'test_pack'
- .local string filename, first
+ .local string filename, orig
push_eh load_error
$S0 = '_filename'()
- $P0 = open $S0, 'r'
+ $P0 = new ['FileHandle']
+ $P0.'open'($S0, 'r')
- first = $P0.'readall'()
+ orig = $P0.'readall'()
.local pmc packfile
packfile = new 'Packfile'
- packfile = first
+ packfile = orig
pop_eh
- # Packed file should be exactly the same as loaded
- .local string second
+ # Loaded packfile can be from different platform/config,
+ # packing and unpacking again to avoid that differences.
+ .local string first, second
# Pack
- second = packfile
+ first = packfile
+ .local pmc packfilesecond
+ packfilesecond = new 'Packfile'
+ packfilesecond = first
+ second = packfilesecond
- $I0 = cmp first, second
- $I0 = not $I0
- todo($I0, 'pack produced same result twice: TT #1614')
+ is(first, second, 'pack produced same result twice: TT #1614')
.return()
load_error:
.get_results($P0)
@@ -324,6 +330,7 @@
.end
# Test pack/set_string unpack/get_string equivalency
+
.sub 'test_synonyms'
.local pmc pf
push_eh load_error
Modified: branches/gsoc_threads/t/pmc/packfileannotations.t
==============================================================================
--- branches/gsoc_threads/t/pmc/packfileannotations.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/packfileannotations.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -41,7 +41,8 @@
.local pmc pf
push_eh load_error
- $P0 = open 't/native_pbc/annotations.pbc'
+ $P0 = new ['FileHandle']
+ $P0.'open'('t/native_pbc/annotations.pbc', 'r')
$P0.'encoding'('binary')
$S0 = $P0.'readall'()
pf = new 'Packfile'
Modified: branches/gsoc_threads/t/pmc/resizablebooleanarray.t
==============================================================================
--- branches/gsoc_threads/t/pmc/resizablebooleanarray.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/resizablebooleanarray.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -24,7 +24,7 @@
.include 'test_more.pir'
- plan(65)
+ plan(68)
setting_array_size()
setting_first_element()
@@ -46,6 +46,7 @@
sparse_access()
check_for_zeroedness()
pop_into_sparse()
+ clone_empty()
clone_tests()
alternate_clone_tests()
get_iter_test()
@@ -70,6 +71,16 @@
$P0 = 7
is($P0, 7, "shrinking via int assignment to RBA works")
+
+ new $P1, ['ExceptionHandler']
+ set_addr $P1, caught
+ $P1.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+ push_eh $P1
+ $P0 = -1
+ ok(0, "no exception caught for setting negative size")
+ .return()
+caught:
+ ok(1, "caught exception on setting negative size")
.end
@@ -138,6 +149,17 @@
set $I0, $P0[-1]
is($I0, 0, "negative index retrieval is 0")
+
+ new $P1, ['ExceptionHandler']
+ set_addr $P1, caught
+ $P1.'handle_types'(.EXCEPTION_OUT_OF_BOUNDS)
+ push_eh $P1
+ set $I0, $P0[-2]
+ ok(0, "no exception caught for negative index out of range access")
+ .return()
+caught:
+ pop_eh
+ ok(1, "caught exception on negative index out of range access")
.end
@@ -729,6 +751,15 @@
print $I5
.end
+.sub clone_empty
+ .local pmc rba1, rba2
+ .local int i
+ rba1 = new ['ResizableBooleanArray']
+ rba2 = clone rba1
+ i = elements rba2
+ is(i, 0, "clone empty passed")
+.end
+
.sub clone_tests
.local pmc rba1, rba2
.local int i, failed
Modified: branches/gsoc_threads/t/pmc/resizableintegerarray.t
==============================================================================
--- branches/gsoc_threads/t/pmc/resizableintegerarray.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/resizableintegerarray.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -28,6 +28,7 @@
* Type of index (int, pmc)
* index negative/in-range/beyond-end
* Set doesn't clobber other elements
+ * Delete
* Push/Unshift, Pop/Shift
* Correct values
@@ -42,7 +43,7 @@
.sub main :main
.include 'test_more.pir'
- plan(41)
+ plan(47)
test_does_interfaces()
@@ -54,6 +55,7 @@
test_cant_get_negative()
test_set_beyond_end()
test_get_beyond_end()
+ test_delete()
test_conversion()
test_conversion_overflow()
@@ -69,7 +71,10 @@
test_cant_pop_empty()
test_shift()
test_unshift()
+ test_cant_shift_empty()
test_iterator()
+ test_clone()
+ test_freeze()
.end
.sub test_does_interfaces
@@ -143,7 +148,11 @@
.sub test_distinct_storage
# Walk the array in pseudo-random order
# Pick a sample size $I4 and another number $I2, such that
- # ∀n: n > 0 ∧ $I2 ⁿ % $I4 = 1 ⇒ n % $I4 = 0
+ ############################################################
+ ##### Plase rewrite this with ascii chars, it got unreadable
+ ##### by editing with mixed charsets.
+ # n: n > 0 $I2 % $I4 = 1 n % $I4 = 0
+ ############################################################
$I4 = 17
$I2 = 3
# Create and fill array in random order
@@ -225,6 +234,27 @@
is( $I0, 1, '... and should not extend array' )
.end
+.sub test_delete
+ $P0 = new ['ResizableIntegerArray'], 3
+ $P0[0] = 9
+ $P0[1] = 8
+ $P0[2] = 7
+ delete $P0[1]
+ $I0 = elements $P0
+ is( $I0, 2, 'delete one element dec size')
+ $I0 = $P0[1]
+ is( $I0, 7, 'deleted move back the remaining part')
+ push_eh caught
+ delete $P0[2]
+ pop_eh
+ ok(0, 'delete ouf of bound should throw')
+ goto end
+caught:
+ pop_eh
+ ok(1, 'delete ouf of bound throws')
+end:
+.end
+
.sub test_conversion
$P0 = new ['ResizableIntegerArray']
$P0 = 6
@@ -511,6 +541,17 @@
is( $I1, 2, '... and stores values in correct order' )
.end
+.sub test_cant_shift_empty
+ $P0 = new ['ResizableIntegerArray']
+ $I0 = 1
+ push_eh eh
+ $I0 = shift $P0
+ $I0 = 0
+eh:
+ pop_eh
+ ok( $I0, 'Shift from empty array should throw an exception' )
+.end
+
.sub test_iterator
$P0 = new ['ResizableIntegerArray']
push_eh k0
@@ -548,6 +589,25 @@
is( $I0, 4, 'get_iter: iterator returns all values in correct sequence' )
.end
+.sub test_clone
+ $P0 = new ['ResizableIntegerArray']
+ push $P0, 1
+ $P1 = clone $P0
+ $I0 = iseq $P0, $P1
+ is( $I0, 1, 'cloned is equal to original')
+.end
+
+.sub test_freeze
+ .local pmc ria, th
+ .local string s
+ ria = new ['ResizableIntegerArray']
+ push ria, 1
+ push ria, 0x1FFFF
+ s = freeze ria
+ th = thaw s
+ is( ria, th, 'freeze/thaw copy is equal to original' )
+.end
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: branches/gsoc_threads/t/pmc/resizablepmcarray.t
==============================================================================
--- branches/gsoc_threads/t/pmc/resizablepmcarray.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/resizablepmcarray.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -21,7 +21,7 @@
.include 'fp_equality.pasm'
.include 'test_more.pir'
- plan(129)
+ plan(142)
resize_tests()
negative_array_size()
@@ -39,8 +39,12 @@
get_mro_tests()
push_and_pop()
unshift_and_shift()
+ shift_empty()
+ pop_empty()
multikey_access()
exists_and_defined()
+ delete_keyed()
+ get_rep()
append_tests()
splice_tests()
splice_replace1()
@@ -356,7 +360,7 @@
.sub compare_reverse
.param string a
.param string b
- $I0 = cmp_str b, a
+ $I0 = cmp b, a
.return($I0)
.end
@@ -579,6 +583,74 @@
is(elements, 0, "expectedly empty RPA has 0 elements")
.end
+.sub shift_empty
+ .local pmc pmc_arr
+ pmc_arr = new ['ResizablePMCArray']
+ $I1 = 0
+ push_eh handle_i
+ $I0 = shift pmc_arr
+ inc $I1
+handle_i:
+ pop_eh
+ is($I1, 0, 'shift int from empty RPA throws')
+
+ push_eh handle_n
+ $N0 = shift pmc_arr
+ inc $I1
+handle_n:
+ pop_eh
+ is($I1, 0, 'shift num from empty RPA throws')
+
+ push_eh handle_s
+ $S0 = shift pmc_arr
+ inc $I1
+handle_s:
+ pop_eh
+ is($I1, 0, 'shift string from empty RPA throws')
+
+ push_eh handle_p
+ $P0 = shift pmc_arr
+ inc $I1
+handle_p:
+ pop_eh
+ is($I1, 0, 'shift pmc from empty RPA throws')
+
+.end
+
+.sub pop_empty
+ .local pmc pmc_arr
+ pmc_arr = new ['ResizablePMCArray']
+ $I1 = 0
+ push_eh handle_i
+ $I0 = pop pmc_arr
+ inc $I1
+handle_i:
+ pop_eh
+ is($I1, 0, 'pop int from empty RPA throws')
+
+ push_eh handle_n
+ $N0 = pop pmc_arr
+ inc $I1
+handle_n:
+ pop_eh
+ is($I1, 0, 'pop num from empty RPA throws')
+
+ push_eh handle_s
+ $S0 = pop pmc_arr
+ inc $I1
+handle_s:
+ pop_eh
+ is($I1, 0, 'pop string from empty RPA throws')
+
+ push_eh handle_p
+ $P0 = pop pmc_arr
+ inc $I1
+handle_p:
+ pop_eh
+ is($I1, 0, 'pop pmc from empty RPA throws')
+
+.end
+
## an Integer Matrix, as used by befunge as a playing field
.sub multikey_access
.local pmc matrix, row_in, row_out
@@ -618,6 +690,9 @@
is(ex, 1, "element at idx 0 exists")
def = defined array[0]
is(def, 1, "element at idx 0 is defined")
+ $P0 = new 'Integer', 0
+ ex = exists array[$P0]
+ is(ex, 1, "element at PMC idx 0 exists")
## bounds checking: upper (7)
ex = exists array[7]
@@ -662,6 +737,26 @@
is(def, 0, "element at idx 5 is not defined")
.end
+.sub delete_keyed
+ .local pmc array
+ array = new ['ResizablePMCArray']
+ push array, 'a'
+ push array, 'b'
+ push array, 'c'
+ $P0 = new 'Integer', 1
+ delete array[$P0]
+ $S0 = array[1]
+ is($S0, 'c', 'delete_keyed with PMC key')
+.end
+
+.sub get_rep
+ .local pmc array
+ array = new ['ResizablePMCArray']
+ push array, 'a'
+ push array, 'b'
+ $S0 = get_repr array
+ is($S0, '[ a, b ]', 'get_repr')
+.end
.sub append_tests
@@ -831,6 +926,24 @@
$S0 = get_array_string($P1)
is($S0, "12A45", "splice with empty replacement")
+ $P1 = clone ar1
+ $P2 = clone ar2
+ splice $P1, $P2, -3, 2
+ $S0 = get_array_string($P1)
+ is($S0, "12ABCDE5", "splice with negative offset")
+
+ $P1 = clone ar1
+ $P2 = clone ar2
+ $I0 = 1
+ push_eh too_low
+ splice $P1, $P2, -10, 2
+ dec $I0
+ goto too_low_end
+too_low:
+ .get_results($P9)
+ finalize $P9
+too_low_end:
+ ok($I0, "splice with negative offset too low")
.end
Modified: branches/gsoc_threads/t/pmc/resizablestringarray.t
==============================================================================
--- branches/gsoc_threads/t/pmc/resizablestringarray.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/resizablestringarray.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -23,7 +23,7 @@
.include 'test_more.pir'
# set a test plan
- plan(261)
+ plan(263)
'size/resize'()
'clone'()
@@ -1343,6 +1343,7 @@
.SpliceMadeEasy({ splice $P1, $P2, 0, 2 }, "ABCDE345", "splice, replace at beginning")
.SpliceMadeEasy({ splice $P1, $P2, 2, 2 }, "12ABCDE5", "splice, replace in middle")
.SpliceMadeEasy({ splice $P1, $P2, 3, 2 }, "123ABCDE", "splice, replace at end")
+ .SpliceMadeEasy({ splice $P1, $P2, -3, 2 }, "12ABCDE5", "splice, replace in middle start from end")
.SpliceMadeEasy({
$P2 = new ['ResizableStringArray']
splice $P1, $P2, 2, 2
@@ -1355,6 +1356,20 @@
$P1 = new ['ResizableStringArray']
$P1[0] = "1"
+ $P2 = new ['ResizableStringArray']
+ $P2[0] = 'A'
+ $I0 = 0
+ push_eh handle_negtoobig
+ splice $P1, $P2, -10, 1
+ goto after_negtoobig
+handle_negtoobig:
+ inc $I0
+after_negtoobig:
+ pop_eh
+ is($I0, 1, 'splice, negative offset too long throws')
+
+ $P1 = new ['ResizableStringArray']
+ $P1[0] = "1"
$P1[1] = "2"
$P1[2] = "3"
$P1[3] = "4"
Modified: branches/gsoc_threads/t/pmc/string.t
==============================================================================
--- branches/gsoc_threads/t/pmc/string.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/string.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -16,11 +16,10 @@
=cut
-
.sub main :main
.include 'test_more.pir'
- plan(167)
+ plan(120)
set_or_get_strings()
setting_integers()
@@ -37,16 +36,6 @@
test_cmp()
cmp_with_integer()
test_substr()
- bands_null_string()
- test_bands_2()
- test_bands_3()
- bors_null_string()
- test_bors_2()
- test_bors_3()
- bxors_null_string()
- bxors_2()
- bxors_3()
- bnots_null_string()
test_eq_str()
test_ne_str()
check_whether_interface_is_done()
@@ -69,7 +58,6 @@
assign_null_string()
access_keyed()
# END_OF_TESTS
-
.end
.sub set_or_get_strings
@@ -424,268 +412,6 @@
is( $P0, "This is a test\n", 'original is unmodified' )
.end
-.sub bands_null_string
- new $P1, ['String']
- new $P2, ['String']
- new $P3, ['String']
-
- null $S1
- set $P1, $S1
-
- set $S2, "abc"
- set $P2, $S2
-
- bands $P1, $P2
-
- null $S3
- set $P3, $S3
-
- is( $P1, $P3, 'band null, "abc" -> null' )
-
- set $P1, ""
- bands $P1, $P2
- nok( $P1, 'band "", "abc" -> false' )
-
- null $S2
- set $P2, $S2
- set $P1, "abc"
-
- bands $P1, $P2
-
- null $S3
- set $P3, $S3
-
- is( $P1, $P3, 'bands "abc", null -> null' )
-
- set $P2, ""
- bands $P1, $P2
- nok( $P1, 'bans "abc", "" -> false' )
-
-.end
-
-.sub test_bands_2
- new $P1, ['String']
- new $P2, ['String']
- set $P1, "abc"
- set $P2, "EE"
- bands $P1, $P2
- is( $P1, "A@", 'bands "abc", "EE" -> "A@"' )
- is( $P2, "EE", '$2 is unchanged' )
-.end
-
-.sub test_bands_3
- new $P1, ['String']
- new $P2, ['String']
- new $P0, ['String']
- set $P1, "abc"
- set $P2, "EE"
- bands $P0, $P1, $P2
- is( $P0, "A@", 'bands "abc", "EE" -> "A@"' )
- is( $P1, "abc", '$2 is unchanged' )
- is( $P2, "EE", '$3 is unchanged' )
-.end
-
-.sub bors_null_string
- new $P1, ['String']
- new $P2, ['String']
- new $P3, ['String']
-
- null $S1
- null $S2
- set $P1, $S1
- set $P2, $S2
- bors $P1, $P2
- null $S3
- set $P3, $S3
- is( $P1, $P3, 'bors null, null -> null' )
-
- null $S1
- set $P1, $S1
- set $P2, ""
- bors $P1, $P2
- null $S3
- set $P3, $S3
- is( $P1, $P3, 'bors null, "" -> null' )
-
- bors $P2, $P1
- is( $P2, $P3, 'bors "", null -> null' )
-
- null $S1
- set $P1, $S1
- set $P2, "def"
- bors $P1, $P2
- is( $P1, "def", 'bors null, "def" -> "def" / true' )
-
- null $S2
- set $P2, $S2
- bors $P1, $P2
- is( $P1, "def", 'bors "def", null -> "def" / true' )
-
- null $S1
- null $S2
- set $P1, $S1
- set $P2, $S2
- bors $P3, $P1, $P2
- null $S4
- is( $P3, $S4, 'bors null, null -> null' )
-
- set $P1, ""
- bors $P3, $P1, $P2
- is( $P3, $S4, 'bors "", null -> null' )
-
- bors $P3, $P2, $P1
- is( $P3, $S4, 'bors null, "" -> null' )
-
- set $P1, "def"
- bors $P3, $P1, $P2
- is( $P3, "def", 'bors "def", null -> "def"' )
-
- bors $P3, $P2, $P1
- is( $P3, "def", 'bors null, "def" -> "def"' )
-.end
-
-.sub test_bors_2
- new $P1, ['String']
- new $P2, ['String']
- set $P1, "abc"
- set $P2, "EE"
-
- bors $P1, $P2
- is( $P1, "egc", 'bors "abc", "EE" -> "egc"' )
- is( $P2, "EE", '$2 is unchanged' )
-.end
-
-.sub test_bors_3
- new $P1, ['String']
- new $P2, ['String']
- new $P0, ['String']
- set $P1, "abc"
- set $P2, "EE"
-
- bors $P0, $P1, $P2
- is( $P0, "egc", 'bors "abc", "EE" -> "egc"' )
- is( $P1, "abc", '$2 unchanged' )
- is( $P2, "EE", '$3 unchanged' )
-.end
-
-.sub bxors_null_string
- new $P1, ['String']
- new $P2, ['String']
- new $P3, ['String']
- null $S1
- null $S2
- set $P1, $S1
- set $P2, $S2
- bxors $P1, $P2
- null $S3
- is( $P1, $S3, 'bxors null, null -> null' )
-
- null $S1
- set $P1, $S1
- set $P2, ""
- bxors $P1, $P2
- null $S3
- is( $P1, $S3, 'bxors null, "" -> null' )
-
- bxors $P2, $P1
- is( $S2, $S3, 'bxors "", null -> null' )
-
- null $S1
- set $P1, $S1
- set $P2, "abc"
- bxors $P1, $P2
- is( $P1, "abc", 'bxors null, "abc" -> "abc"' )
-
- null $S2
- set $P2, $S2
- bxors $P1, $P2
- is( $P1, "abc", 'bxors "abc", "null, -> "abc"' )
-
- null $S1
- null $S2
- set $P1, $S1
- set $P2, $S2
- bxors $P3, $P1, $P2
- null $S4
- is( $P3, $S4, 'bxors3 null, null -> null' )
-
- set $P1, ""
- bxors $P3, $P1, $P2
- is( $P3, $S4, 'bxors3 "", null -> null' )
-
- bxors $P3, $P2, $P1
- is( $P3, $S4, 'bxors3 null, null -> null' )
-
- set $P1, "abc"
- bxors $P3, $P1, $P2
- is( $P3, "abc", 'bxors3 "abc", null -> "abc"' )
-
- bxors $P3, $P2, $P1
- is( $P3, "abc", 'bxors3 null, "abc" -> "abc"' )
-.end
-
-.sub bxors_2
- new $P1, ['String']
- new $P2, ['String']
- new $P3, ['String']
-
- set $P1, "a2c"
- set $P2, "Dw"
- bxors $P1, $P2
- is( $P1, "%Ec", 'bxors "a2c", "Dw" -> "%Ec"' )
- is( $P2, "Dw", '... $2 unchanged' )
-
- set $P1, "abc"
- set $P2, " X"
- bxors $P1, $P2
- is( $P1, "ABCX", 'bxors "abc", " X" -> "ABCX"' )
- is( $P2, " X", '... $2 unchanged' )
-.end
-
-.sub bxors_3
- new $P1, ['String']
- new $P2, ['String']
- new $P0, ['String']
-
- set $P1, "a2c"
- set $P2, "Dw"
- bxors $P0, $P1, $P2
- is( $P0, "%Ec", 'bxors "a2c", "Dw" -> "%Ec"' )
- is( $P1, "a2c", '... $2 unchanged' )
- is( $P2, "Dw", '... $3 unchanged' )
-
- set $P1, "abc"
- set $P2, " Y"
- bxors $P0, $P1, $P2
- is( $P0, "ABCY", 'bxors "abc", " Y" -> "ABCY"' )
- is( $P1, "abc", '... $2 unchanged' )
- is( $P2, " Y", '... $3 unchanged' )
-.end
-
-.sub bnots_null_string
- new $P1, ['String']
- new $P2, ['String']
- new $P3, ['String']
-
- null $S1
- null $S2
- set $P1, $S1
- set $P2, $S2
- bnots $P1, $P2
- null $S3
- is( $P1, $S3, 'bnots null, null -> null' )
-
- null $S1
- set $P1, $S1
- set $P2, ""
- bnots $P1, $P2
- null $S3
- is( $P1, $S3, 'bnots null, "" -> null' )
-
- bnots $P2, $P1
- is( $S2, $S3, 'bnots "", null -> null' )
-.end
-
.sub test_eq_str
new $P1, ['String']
new $P2, ['String']
Modified: branches/gsoc_threads/t/pmc/stringbuilder.t
==============================================================================
--- branches/gsoc_threads/t/pmc/stringbuilder.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/stringbuilder.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -21,18 +21,22 @@
.include 'test_more.pir'
test_create() # 2 tests
- test_push_string() # 9 tests
+ test_push_string()
test_push_pmc() # 4 tests
test_push_string_unicode() # 1 test
test_i_concatenate() # 1 test
test_set_string_native() # 3 tests
test_set_string_native_with_hash() # 2 tests
+ test_set_pmc()
+ test_substr()
emit_with_pos_args()
emit_with_percent_args()
emit_with_named_args()
emit_with_pos_and_named_args()
+ test_unicode_conversion_tt1665()
+
done_testing()
# END_OF_TESTS
@@ -102,6 +106,11 @@
$I0 = sb
is( $I0, 16384, "... and capacity increased" )
+ null $S0
+ push sb, $S0
+ $I0 = sb
+ is( $I0, 16384, "push a null string does nothing" )
+
.end
.sub 'test_push_pmc'
@@ -150,7 +159,6 @@
$S0 = sb
is( $S0, "foobarbaz", "StringBuilder handles concat properly")
-
.end
.sub 'test_set_string_native'
@@ -193,6 +201,24 @@
.end
+.sub 'test_set_pmc'
+ .local pmc sb, i
+ sb = new ["StringBuilder"]
+ i = new ["Integer"], 17
+ assign sb, i
+ $S0 = sb
+ $I0 = iseq $S0, '17'
+ is( $I0, 1, "set_pmc gives the pmc string value")
+.end
+
+.sub test_substr
+ .local pmc sb
+ sb = new ["StringBuilder"]
+ sb = 'foobar'
+ $S0 = substr sb, 2, 3
+ is( $S0, 'oba', "substr result is correct")
+.end
+
.sub emit_with_pos_args
.local pmc code
code = new ["StringBuilder"]
@@ -247,6 +273,29 @@
CODE
.end
+.sub "test_unicode_conversion_tt1665"
+ .local pmc list
+ list = new 'ResizablePMCArray'
+ push list, 195
+ push list, 182
+
+ .local pmc iterator
+ iterator = iter list
+ .local pmc sb
+ sb = new 'StringBuilder'
+ sb = unicode:""
+ loop:
+ unless iterator goto done
+ $P1 = shift iterator
+ $I1 = $P1
+ $S1 = chr $I1
+ sb .= $S1
+ goto loop
+ done:
+ $S0 = sb
+
+ ok( $S0, "Pushing unicode strings doesn't kill StringBuilder")
+.end
# Local Variables:
# mode: pir
Modified: branches/gsoc_threads/t/pmc/stringhandle.t
==============================================================================
--- branches/gsoc_threads/t/pmc/stringhandle.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/stringhandle.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -138,25 +138,25 @@
$P0.'open'('README', 'w')
print $P0, "This is Parrot, version"
- close $P0
+ $P0.'close'()
$P0.'open'('README')
- $S0 = read $P0, 14 # bytes
+ $S0 = $P0.'read'(14) # bytes
if $S0 == 'This is Parrot' goto ok_1
print 'not '
ok_1:
- say 'ok 1 - $S0 = read $P1, $I2'
+ say 'ok 1 - $S0 = $P1.read($I2)'
- $S0 = read $P0, 9 # bytes
+ $S0 = $P0.'read'(9) # bytes
if $S0 == ', version' goto ok_2
print 'not '
ok_2:
- say 'ok 2 - $S0 = read $P1, $I2 # again on same stream'
+ say 'ok 2 - $S0 = $P1.read($I2) # again on same stream'
.end
CODE
-ok 1 - $S0 = read $P1, $I2
-ok 2 - $S0 = read $P1, $I2 # again on same stream
+ok 1 - $S0 = $P1.read($I2)
+ok 2 - $S0 = $P1.read($I2) # again on same stream
OUT
# L<PDD22/I\/O PMC API/=item print>
@@ -273,7 +273,7 @@
$I0 = stringhandle.'eof'()
if $I0 goto end_read_loop
- test_line = readline stringhandle
+ test_line = stringhandle.'readline'()
if test_line == "" goto end_read_loop
test_line = chomp( test_line )
$I1 = test_line
Modified: branches/gsoc_threads/t/pmc/sub.t
==============================================================================
--- branches/gsoc_threads/t/pmc/sub.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/sub.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -991,21 +991,22 @@
unlink( $l1_pbc, $l2_pbc );
pir_output_is( <<'CODE', <<'OUTPUT', "immediate code as const" );
-.sub make_pi :immediate :anon
- $N0 = atan 1.0, 1.0
- $N0 *= 4
+.sub make_phi :immediate :anon
+ $N0 = sqrt 5
+ $N0 += 1
+ $N0 /= 2
$P0 = new ['Float']
$P0 = $N0
.return ($P0)
.end
.sub main :main
- .const 'Sub' pi = "make_pi"
- print pi
+ .const 'Sub' phi = "make_phi"
+ print phi
print "\n"
.end
CODE
-3.14159265358979
+1.61803398874989
OUTPUT
pir_output_is( <<'CODE', <<'OUTPUT', "immediate code as const - obj" );
Modified: branches/gsoc_threads/t/pmc/sys.t
==============================================================================
--- branches/gsoc_threads/t/pmc/sys.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/sys.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -31,11 +31,12 @@
.sub _test :main
.local pmc O
- open O, "$temp_pir", 'w'
+ O = new ['FileHandle']
+ O.'open'("$temp_pir", 'w')
print O, ".sub _main :main\\n"
print O, "\tsay \\"Hello, World!\\"\\n"
print O, ".end\\n"
- close O
+ O.'close'()
load_bytecode 'config.pbc'
.local pmc conf_hash
conf_hash = _config()
Modified: branches/gsoc_threads/t/pmc/testlib/packfile_common.pir
==============================================================================
--- branches/gsoc_threads/t/pmc/testlib/packfile_common.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/testlib/packfile_common.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -9,7 +9,7 @@
.sub '_filename'
.local string filename
- filename = 't/native_pbc/number_1.pbc'
+ filename = 't/native_pbc/number.pbc'
.return (filename)
.end
@@ -20,9 +20,10 @@
.local pmc pf, pio
pf = new ['Packfile']
$S0 = '_filename'()
- pio = open $S0, 'r'
+ pio = new ['FileHandle']
+ pio.'open'($S0, 'r')
$S0 = pio.'readall'()
- close pio
+ pio.'close'()
pf = $S0
.return(pf)
.end
Modified: branches/gsoc_threads/t/pmc/threads.t
==============================================================================
--- branches/gsoc_threads/t/pmc/threads.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/pmc/threads.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -833,7 +833,6 @@
.include 'interpinfo.pasm'
.loadlib 'foo_group'
-.loadlib 'myops_ops'
.sub test
.param pmc passed_value
Modified: branches/gsoc_threads/t/src/embed.t
==============================================================================
--- branches/gsoc_threads/t/src/embed.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/src/embed.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -8,7 +8,7 @@
use Test::More;
use Parrot::Test;
-plan tests => 9;
+plan tests => 10;
=head1 NAME
@@ -62,21 +62,30 @@
Done
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when an opcode is given improper arguments');
-
+my $common = linedirective(__LINE__) . <<'CODE';
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "parrot/embed.h"
#include "parrot/extend.h"
-void fail(const char *msg);
+static void fail(const char *msg);
+static Parrot_String createstring(Parrot_Interp interp, const char * value);
-void fail(const char *msg)
+static void fail(const char *msg)
{
fprintf(stderr, "failed: %s\n", msg);
exit(EXIT_FAILURE);
}
+static Parrot_String createstring(Parrot_Interp interp, const char * value)
+{
+ return Parrot_new_string(interp, value, strlen(value), (const char*)NULL, 0);
+}
+
+CODE
+
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when an opcode is given improper arguments');
int main(int argc, const char **argv)
{
@@ -88,7 +97,7 @@
interp = Parrot_new(NULL);
if (! interp)
fail("Cannot create parrot interpreter");
- lang = Parrot_new_string(interp, "PIR", 3, (const char*)NULL, 0);
+ lang = createstring(interp, "PIR");
func_pmc = Parrot_compile_string(interp, lang, ".sub foo\n copy\n.end", &err);
Parrot_printf(interp, "%Ss\n", err);
@@ -99,21 +108,7 @@
The opcode 'copy' (copy<0>) was not found. Check the type and number of the arguments
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when given invalid language string');
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "parrot/embed.h"
-#include "parrot/extend.h"
-
-void fail(const char *msg);
-
-void fail(const char *msg)
-{
- fprintf(stderr, "failed: %s\n", msg);
- exit(EXIT_FAILURE);
-}
-
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when given invalid language string');
int main(int argc, const char **argv)
{
@@ -125,7 +120,7 @@
interp = Parrot_new(NULL);
if (! interp)
fail("Cannot create parrot interpreter");
- lang = Parrot_new_string(interp, "Foo", 3, (const char*)NULL, 0);
+ lang = createstring(interp, "Foo");
func_pmc = Parrot_compile_string(interp, lang, "This doesn't matter", &err);
Parrot_printf(interp, "%Ss\n", err);
@@ -137,21 +132,7 @@
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when there is an IMCC syntax error', 'todo' => 'TT #1610 : does not properly catch IMCC errors');
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "parrot/embed.h"
-#include "parrot/extend.h"
-
-void fail(const char *msg);
-
-void fail(const char *msg)
-{
- fprintf(stderr, "failed: %s\n", msg);
- exit(EXIT_FAILURE);
-}
-
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', 'Parrot_compile_string populates the error string when there is an IMCC syntax error', 'todo' => 'TT #1610 : does not properly catch IMCC errors');
int main(int argc, const char **argv)
{
@@ -163,7 +144,7 @@
interp = Parrot_new(NULL);
if (! interp)
fail("Cannot create parrot interpreter");
- lang = Parrot_new_string(interp, "PIR", 3, (const char*)NULL, 0);
+ lang = createstring(interp, "PIR");
func_pmc = Parrot_compile_string(interp, lang, "The sleeper must awake", &err);
Parrot_printf(interp,"Caught exception\n");
@@ -177,21 +158,7 @@
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Hello world from main" );
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "parrot/embed.h"
-#include "parrot/extend.h"
-
-void fail(const char *msg);
-
-void fail(const char *msg)
-{
- fprintf(stderr, "failed: %s\n", msg);
- exit(EXIT_FAILURE);
-}
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Hello world from main" );
int main(void)
{
@@ -207,7 +174,7 @@
Parrot_printf(interp, "Hello, parrot\n");
/* Compile and execute a pir sub */
- compiler = Parrot_new_string(interp, "PIR", 3, (const char *)NULL, 0);
+ compiler = createstring(interp, "PIR");
code = Parrot_compile_string(interp, compiler,
".sub main :main\n"
" say 'Hello, pir'\n"
@@ -226,21 +193,7 @@
Hello, pir
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Hello world from a sub" );
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "parrot/embed.h"
-#include "parrot/extend.h"
-
-void fail(const char *msg);
-
-void fail(const char *msg)
-{
- fprintf(stderr, "failed: %s\n", msg);
- exit(EXIT_FAILURE);
-}
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Hello world from a sub" );
int main(void)
{
@@ -260,7 +213,7 @@
fail("Cannot create parrot interpreter");
/* Compile pir code */
- compiler = Parrot_new_string(interp, "PIR", 3, (const char *)NULL, 0);
+ compiler = createstring(interp, "PIR");
code = Parrot_compile_string(interp, compiler,
".sub main :main\n"
" say 'Must not be seen!'\n"
@@ -277,10 +230,10 @@
/* Get parrot namespace */
rootns = Parrot_get_root_namespace(interp);
- parrotname = Parrot_new_string(interp, "parrot", 6, (const char *)NULL, 0);
+ parrotname = createstring(interp, "parrot");
parrotns = Parrot_PMC_get_pmc_keyed_str(interp, rootns, parrotname);
/* Get the sub */
- subname = Parrot_new_string(interp, "hello", 5, (const char *)NULL, 0);
+ subname = createstring(interp, "hello");
sub = Parrot_PMC_get_pmc_keyed_str(interp, parrotns, subname);
/* Execute it */
Parrot_ext_call(interp, sub, "->");
@@ -292,22 +245,68 @@
Hello, sub
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "External sub" );
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "calling a sub with argument and return" );
-#include <stdio.h>
-#include <stdlib.h>
+int main(void)
+{
+ Parrot_Interp interp;
+ Parrot_String compiler;
+ Parrot_String errstr;
+ Parrot_PMC code;
+ Parrot_PMC rootns;
+ Parrot_String parrotname;
+ Parrot_PMC parrotns;
+ Parrot_String subname;
+ Parrot_PMC sub;
+ Parrot_String msg;
+ Parrot_String retstr;
-#include "parrot/embed.h"
-#include "parrot/extend.h"
+ /* Create the interpreter */
+ interp = Parrot_new(NULL);
+ if (! interp)
+ fail("Cannot create parrot interpreter");
-void fail(const char *msg);
-void hello(Parrot_Interp interp);
+ /* Compile pir code */
+ compiler = createstring(interp, "PIR");
+ code = Parrot_compile_string(interp, compiler,
+".sub main :main\n"
+" say 'Must not be seen!'\n"
+"\n"
+".end\n"
+"\n"
+".sub hello\n"
+" .param string s\n"
+" print s\n"
+" .return('world!')\n"
+"\n"
+".end\n"
+"\n",
+ &errstr
+ );
-void fail(const char *msg)
-{
- fprintf(stderr, "failed: %s\n", msg);
- exit(EXIT_FAILURE);
+ /* Get parrot namespace */
+ rootns = Parrot_get_root_namespace(interp);
+ parrotname = createstring(interp, "parrot");
+ parrotns = Parrot_PMC_get_pmc_keyed_str(interp, rootns, parrotname);
+ /* Get the sub */
+ subname = createstring(interp, "hello");
+ sub = Parrot_PMC_get_pmc_keyed_str(interp, parrotns, subname);
+
+ /* Execute it */
+ msg = createstring(interp, "Hello, ");
+ Parrot_ext_call(interp, sub, "S->S", msg, &retstr);
+ Parrot_printf(interp, "%Ss\n", retstr);
+
+ Parrot_destroy(interp);
+ return 0;
}
+CODE
+Hello, world!
+OUTPUT
+
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "External sub" );
+
+void hello(Parrot_Interp interp);
void hello(Parrot_Interp interp)
{
@@ -328,7 +327,7 @@
fail("Cannot create parrot interpreter");
/* Compile pir */
- compiler = Parrot_new_string(interp, "PIR", 3, (const char *)NULL, 0);
+ compiler = createstring(interp, "PIR");
code = Parrot_compile_string(interp, compiler,
".sub externcall\n"
" .param pmc ec\n"
@@ -348,23 +347,10 @@
Hello from C
OUTPUT
-c_output_is(linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Insert external sub in namespace" );
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "parrot/embed.h"
-#include "parrot/extend.h"
+c_output_is($common . linedirective(__LINE__) . <<'CODE', <<'OUTPUT', "Insert external sub in namespace" );
-void fail(const char *msg);
void hello(Parrot_Interp interp);
-void fail(const char *msg)
-{
- fprintf(stderr, "failed: %s\n", msg);
- exit(EXIT_FAILURE);
-}
-
void hello(Parrot_Interp interp)
{
Parrot_printf(interp, "Hello from C\n");
@@ -389,7 +375,7 @@
fail("Cannot create parrot interpreter");
/* Compile pir */
- compiler = Parrot_new_string(interp, "PIR", 3, (const char *)NULL, 0);
+ compiler = createstring(interp, "PIR");
code = Parrot_compile_string(interp, compiler,
".sub externcall\n"
" hello()\n"
@@ -401,10 +387,10 @@
/* Create extern sub and insert in parrot namespace */
rootns = Parrot_get_root_namespace(interp);
- parrotname = Parrot_new_string(interp, "parrot", 6, (const char *)NULL, 0);
+ parrotname = createstring(interp, "parrot");
parrotns = Parrot_PMC_get_pmc_keyed_str(interp, rootns, parrotname);
hellosub = Parrot_sub_new_from_c_func(interp, (void (*)())& hello, "vJ");
- helloname = Parrot_new_string(interp, "hello", 5, (const char *)NULL, 0);
+ helloname = createstring(interp, "hello");
Parrot_PMC_set_pmc_keyed_str(interp, parrotns, helloname, hellosub);
/* Call it */
Modified: branches/gsoc_threads/t/src/extend.t
==============================================================================
--- branches/gsoc_threads/t/src/extend.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/src/extend.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -334,13 +334,13 @@
print $TEMP <<'EOF';
.pcc_sub _sub1:
get_params ""
- printerr "in sub1\n"
+ print "in sub1\n"
set_returns ""
returncc
.pcc_sub _sub2:
get_params "0", P5
- printerr P5
- printerr "in sub2\n"
+ print P5
+ print "in sub2\n"
set_returns ""
returncc
EOF
@@ -471,8 +471,8 @@
print $TEMP <<'EOF';
.sub foo
.param pmc input
- printerr input
- printerr "in sub2\n"
+ print input
+ print "in sub2\n"
$P0 = new "Integer"
$P0 = 42
.return($P0)
@@ -540,9 +540,9 @@
print $TEMP <<'EOF';
.pcc_sub _sub1:
get_params ""
- printerr "in sub1\n"
+ print "in sub1\n"
find_lex P2, "no_such_var"
- printerr "never\n"
+ print "never\n"
returncc
EOF
close $TEMP;
Modified: branches/gsoc_threads/t/steps/auto/ctags-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/auto/ctags-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/auto/ctags-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -100,14 +100,14 @@
} );
$conf->options->set( %{$args} );
$step = test_step_constructor_and_description($conf);
-ok(auto::ctags::_probe_for_ctags_output('Exuberant Ctags', 0),
+ok(auto::ctags::_probe_for_ctags_output($conf, 'Exuberant Ctags'),
"Probe returned true when output matched");
-ok(! auto::ctags::_probe_for_ctags_output('alpha', 0),
+ok(! auto::ctags::_probe_for_ctags_output($conf, 'alpha'),
"Probe returned false when output matched");
{
my $stdout;
my $rv = capture(
- sub { auto::ctags::_probe_for_ctags_output('Exuberant Ctags', 1) },
+ sub { auto::ctags::_probe_for_ctags_output($conf, 'Exuberant Ctags') },
\$stdout
);
ok($rv, "Probe returned true when output matched");
@@ -115,7 +115,7 @@
{
my $stdout;
my $rv = capture(
- sub { auto::ctags::_probe_for_ctags_output('alpha', 1) },
+ sub { auto::ctags::_probe_for_ctags_output($conf, 'alpha') },
\$stdout
);
ok(! $rv, "Probe returned false when output matched");
Deleted: branches/gsoc_threads/t/steps/auto/extra_nci_thunks-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/auto/extra_nci_thunks-01.t Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,87 +0,0 @@
-#! perl
-# Copyright (C) 2010, Parrot Foundation.
-# $Id$
-# auto/extra_nci_thunks-01.t
-
-=head1 NAME
-
-auto/extra_nci_thunks-01.t - test auto::extra_nci_thunks
-
-=head1 SYNOPSIS
-
- % prove t/steps/auto/extra_nci_thunks-01.t
-
-=head1 DESCRIPTION
-
-The files in this directory test functionality used by F<Configure.pl>.
-
-The tests in this file test auto::extra_nci_thunks.
-
-=head1 SEE ALSO
-
-config::auto::libjit, F<Configure.pl>.
-
-=cut
-
-use strict;
-use warnings;
-
-use Test::More tests => 21;
-
-use lib qw( lib t/configure/testlib );
-use Parrot::Configure;
-use Parrot::Configure::Options 'process_options';
-use Parrot::Configure::Test qw(
- test_step_thru_runstep
- rerun_defaults_for_testing
- test_step_constructor_and_description
-);
-
-use_ok('config::init::defaults');
-use_ok('config::auto::extra_nci_thunks');
-
-my ($args, $step_list_ref) = process_options( {
- argv => [ q{--without-extra-nci-thunks} ],
- mode => 'configure',
-} );
-
-my $conf = Parrot::Configure->new;
-my $serialized = $conf->pcfreeze();
-
-test_step_thru_runstep( $conf, 'init::defaults', $args );
-
-my $pkg = 'auto::extra_nci_thunks';
-my ($step, $ret);
-
-$conf->add_steps($pkg);
-$conf->options->set(%$args);
-$step = test_step_constructor_and_description($conf);
-$ret = $step->runstep($conf);
-ok( $ret, "runstep() returned true value" );
-is( $step->result(), 'no', "Result is 'no', as expected" );
-is( $conf->data->get( 'HAS_EXTRA_NCI_THUNKS' ), 0,
- "Got the expected result with '--without-extra-nci-thunks' option" );
-
-$conf->replenish($serialized);
-
-($args, $step_list_ref) = process_options( {
- argv => [ ],
- mode => 'configure',
-} );
-rerun_defaults_for_testing($conf, $args);
-$conf->add_steps($pkg);
-$conf->options->set( %{$args} );
-$step = test_step_constructor_and_description($conf);
-$ret = $step->runstep($conf);
-ok( $ret, "runstep() returned a true value" );
-is( $step->result(), 'yes', "Default result is 'yes' as expected" );
-is( $conf->data->get( 'has_extra_nci_thunks' ), 1,
- "Get the expected result without '--without-extra-nci-thunks' option" );
-
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/gsoc_threads/t/steps/auto/gettext-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/auto/gettext-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/auto/gettext-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -112,12 +112,12 @@
########## _evaluate_cc_run() ##########
-my ($test, $verbose);
+my $test;
my $has_gettext;
$test = "Hello, world!\n";
-$verbose = undef;
-$has_gettext = $step->_evaluate_cc_run($test, $verbose);
+$conf->options->set(verbose => undef);
+$has_gettext = $step->_evaluate_cc_run($conf, $test);
is($has_gettext, 1, "Got expected value for has_gettext");
is($step->result(), 'yes', "Expected result was set");
# Prepare for next test
@@ -126,10 +126,10 @@
{
my $stdout;
$test = "Hello, world!\n";
- $verbose = 1;
+ $conf->options->set(verbose => 1);
capture(
sub {
- $has_gettext = $step->_evaluate_cc_run($test, $verbose);
+ $has_gettext = $step->_evaluate_cc_run($conf, $test);
},
\$stdout,
);
@@ -141,8 +141,8 @@
}
$test = "Foobar\n";
-$verbose = undef;
-$has_gettext = $step->_evaluate_cc_run($test, $verbose);
+$conf->options->set(verbose => undef);
+$has_gettext = $step->_evaluate_cc_run($conf, $test);
is($has_gettext, 0, "Got expected value for has_gettext");
ok(! defined $step->result(), "As expected, result is not yet defined");
@@ -157,11 +157,11 @@
$conf->options->set( %{$args} );
$step = test_step_constructor_and_description($conf);
-$verbose = undef;
+$conf->options->set(verbose => undef);
$conf->data->set( ccflags => q{} );
$conf->data->set( libs => q{} );
my $libs = q{foo bar baz};
-ok(auto::gettext::_handle_gettext($conf, $verbose, $libs),
+ok(auto::gettext::_handle_gettext($conf, $libs),
"_handle_gettext() returned true value");
like($conf->data->get( 'ccflags' ), qr/-DHAS_GETTEXT/,
"HAS_GETTEXT was added to 'ccflags'");
@@ -172,9 +172,9 @@
$conf->data->set( libs => q{} );
{
my ($stdout, $rv);
- $verbose = 1;
+ $conf->options->set(verbose => 1);
capture(
- sub { $rv = auto::gettext::_handle_gettext($conf, $verbose, $libs); },
+ sub { $rv = auto::gettext::_handle_gettext($conf, $libs); },
\$stdout,
);
ok($rv, "_handle_gettext() returned true value");
@@ -186,6 +186,7 @@
qr/ccflags:\s.*-DHAS_GETTEXT/,
"Got expected verbose output"
);
+ $conf->options->set(verbose => undef);
}
pass("Completed all tests in $0");
Modified: branches/gsoc_threads/t/steps/auto/gmp-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/auto/gmp-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/auto/gmp-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -110,12 +110,12 @@
$conf->options->set( %{$args} );
$step = test_step_constructor_and_description($conf);
-my ($test, $has_gmp, $verbose);
+my ($test, $has_gmp);
$test = $step->{cc_run_expected};
$has_gmp = 0;
-$verbose = undef;
-$has_gmp = $step->_evaluate_cc_run($conf, $test, $has_gmp, $verbose);
+$conf->options->set(verbose => undef);
+$has_gmp = $step->_evaluate_cc_run($conf, $test, $has_gmp);
is($step->result, 'yes', "Got expected result");
is($conf->data->get('gmp'), 'define', "Expected value set for 'gmp'");
is($conf->data->get('HAS_GMP'), 1, "Expected value set for 'HAS_GMP'");
@@ -126,8 +126,8 @@
$test = '12345';
$has_gmp = 0;
-$verbose = undef;
-$has_gmp = $step->_evaluate_cc_run($conf, $test, $has_gmp, $verbose);
+$conf->options->set(verbose => undef);
+$has_gmp = $step->_evaluate_cc_run($conf, $test, $has_gmp);
ok(! defined($step->result), "Result undefined as expected");
is($has_gmp, 0, "gmp status unchanged");
@@ -135,10 +135,10 @@
my $stdout;
$test = $step->{cc_run_expected};
$has_gmp = 0;
- $verbose = 1;
+ $conf->options->set(verbose => 1);
capture(
sub { $has_gmp =
- $step->_evaluate_cc_run($conf, $test, $has_gmp, $verbose); },
+ $step->_evaluate_cc_run($conf, $test, $has_gmp); },
\$stdout,
);
is($step->result, 'yes', "Got expected result");
Modified: branches/gsoc_threads/t/steps/auto/icu-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/auto/icu-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/auto/icu-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -72,53 +72,59 @@
my ($autodetect, $without);
-($icuconfig, $autodetect, $without) =
- $step->_handle_search_for_icu_config( {
+($icuconfig, $autodetect, $without) = $step->_handle_search_for_icu_config(
+ $conf,
+ {
icuconfig => q{},
autodetect => 1,
without => 0,
- verbose => 0,
ret => -1,
-} );
+ }
+);
ok(! defined $icuconfig, "icu-config not found, as expected");
is($autodetect, 0, "Autodetection cancelled, as expected");
is($without, 1, "Continuing to configure without ICU");
-($icuconfig, $autodetect, $without) =
- $step->_handle_search_for_icu_config( {
+($icuconfig, $autodetect, $without) = $step->_handle_search_for_icu_config(
+ $conf,
+ {
icuconfig => q{},
autodetect => 1,
without => 0,
- verbose => 0,
ret => 256,
-} );
+ }
+);
ok(! defined $icuconfig, "icu-config not found, as expected");
is($autodetect, 0, "Autodetection cancelled, as expected");
is($without, 1, "Continuing to configure without ICU");
-($icuconfig, $autodetect, $without) =
- $step->_handle_search_for_icu_config( {
+($icuconfig, $autodetect, $without) = $step->_handle_search_for_icu_config(
+ $conf,
+ {
icuconfig => q{},
autodetect => 1,
without => 0,
- verbose => 0,
ret => 0,
-} );
+ }
+);
is($icuconfig, q{icu-config}, "icu-config found, as expected");
is($autodetect, 1, "Autodetection continues, as expected");
is($without, 0, "Continuing to try to configure with ICU");
{
+ $conf->options->set( verbose => 1 );
my ($stdout, $stderr);
capture( sub {
($icuconfig, $autodetect, $without) =
- $step->_handle_search_for_icu_config( {
+ $step->_handle_search_for_icu_config(
+ $conf,
+ {
icuconfig => q{},
autodetect => 1,
without => 0,
- verbose => 1,
ret => 0,
- } );
+ }
+ );
},
\$stdout,
\$stderr,
@@ -128,30 +134,33 @@
is($without, 0, "Continuing to try to configure with ICU");
like($stdout, qr/icu-config found/,
"Got expected verbose output");
+ $conf->options->set( verbose => undef );
}
########## _handle_autodetect() ##########
-($icuconfig, $autodetect, $without) =
- $step->_handle_autodetect( {
+($icuconfig, $autodetect, $without) = $step->_handle_autodetect(
+ $conf,
+ {
icuconfig => $phony,
autodetect => 1,
without => 0,
- verbose => 0,
-} );
+ }
+);
is($icuconfig, $phony, "icu-config unchanged, as expected");
is($autodetect, 1, "Autodetection still active, as expected");
is($without, 0, "Continuing to try to configure with ICU");
{
+ $conf->options->set( verbose => 1 );
my ($stdout, $stderr);
capture( sub {
- ($icuconfig, $autodetect, $without) =
- $step->_handle_autodetect( {
+ ($icuconfig, $autodetect, $without) = $step->_handle_autodetect(
+ $conf,
+ {
icuconfig => $phony,
autodetect => 0,
without => 0,
- verbose => 1,
} );
},
\$stdout,
@@ -162,6 +171,7 @@
is($without, 0, "Continuing to try to configure with ICU");
like($stdout, qr/ICU autodetection disabled/s,
"Got expected verbose output");
+ $conf->options->set( verbose => undef );
}
########## _handle_icushared() ##########
@@ -247,7 +257,6 @@
without => 1,
autodetect => 1,
icuconfig => 1,
- verbose => 0,
}
);
is($without, 1, "Not trying to configure with ICU");
@@ -262,7 +271,6 @@
without => 0,
autodetect => 0,
icuconfig => 1,
- verbose => 0,
}
);
is($without, 0, "Still trying to configure with ICU");
@@ -277,7 +285,6 @@
without => 0,
autodetect => 1,
icuconfig => q{},
- verbose => 0,
}
);
is($without, 0, "Still trying to configure with ICU");
@@ -292,48 +299,54 @@
"Got expected die message");
{
+ $conf->options->set( verbose => 1 );
my $phony = q{/path/to/icu-config};
my ($stdout, $stderr);
capture(
- sub { auto::icu::_verbose_report(1, $phony, undef, undef); },
+ sub { auto::icu::_verbose_report($conf, $phony, undef, undef); },
\$stdout,
\$stderr,
);
like( $stdout, qr/icuconfig:\s+$phony/s,
"Got expected verbose output"
);
+ $conf->options->set( verbose => undef );
}
{
+ $conf->options->set( verbose => 1 );
my $phony = q{-lalpha};
my ($stdout, $stderr);
capture(
- sub { auto::icu::_verbose_report(1, undef, $phony, undef); },
+ sub { auto::icu::_verbose_report($conf, undef, $phony, undef); },
\$stdout,
\$stderr,
);
like( $stdout, qr/icushared='$phony'/s,
"Got expected verbose output"
);
+ $conf->options->set( verbose => undef );
}
{
+ $conf->options->set( verbose => 1 );
my $phony = q{alpha/include};
my ($stdout, $stderr);
capture(
- sub { auto::icu::_verbose_report(1, undef, undef, $phony); },
+ sub { auto::icu::_verbose_report($conf, undef, undef, $phony); },
\$stdout,
\$stderr,
);
like( $stdout, qr/headers='$phony'/s,
"Got expected verbose output"
);
+ $conf->options->set( verbose => undef );
}
{
my ($stdout, $stderr);
capture(
- sub { auto::icu::_verbose_report(0, 'alpha', 'beta', 'gamma'); },
+ sub { auto::icu::_verbose_report($conf, 'alpha', 'beta', 'gamma'); },
\$stdout,
\$stderr,
);
@@ -343,6 +356,7 @@
########## _handle_icuconfig_errors() ##########
{
+ $conf->options->set( verbose => undef );
my ($stdout, $stderr);
capture(
sub {
@@ -368,13 +382,14 @@
my $status = $conf->data->get( 'ccflags' );
{
+ $conf->options->set(verbose => 1);
my ($stdout, $stderr);
capture(
sub {
- auto::icu::_handle_ccflags_status($conf,
+ auto::icu::_handle_ccflags_status(
+ $conf,
{
ccflags_status => 1,
- verbose => 1,
icuheaders => $icuheaders,
},
);
@@ -388,13 +403,14 @@
$conf->data->set( ccflags => $status ); # re-set for next test
{
+ $conf->options->set(verbose => 1);
my ($stdout, $stderr);
capture(
sub {
- auto::icu::_handle_ccflags_status($conf,
+ auto::icu::_handle_ccflags_status(
+ $conf,
{
ccflags_status => 0,
- verbose => 1,
icuheaders => $icuheaders,
},
);
@@ -427,13 +443,14 @@
$conf->data->set( ccflags => $status ); # re-set for next test
{
+ $conf->options->set( verbose => undef );
my ($stdout, $stderr);
capture(
sub {
- auto::icu::_handle_ccflags_status($conf,
+ auto::icu::_handle_ccflags_status(
+ $conf,
{
ccflags_status => 0,
- verbose => 0,
icuheaders => $icuheaders,
},
);
@@ -652,6 +669,7 @@
$conf->options->set( %{$args} );
$step = test_step_constructor_and_description($conf);
{
+ $conf->options->set( verbose => 1 );
my ($stdout, $stderr, $ret);
my $icuconfig;
my ($without, $icushared, $icuheaders);
@@ -664,7 +682,6 @@
without => 0,
autodetect => 1,
icuconfig => $icuconfig,
- verbose => 1,
}
);
},
Modified: branches/gsoc_threads/t/steps/auto/msvc-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/auto/msvc-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/auto/msvc-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -93,15 +93,13 @@
$major = 13;
$minor = 99;
-$verbose = undef;
-$status = $step->_handle_not_msvc($conf, $major, $minor, $verbose);
+$status = $step->_handle_not_msvc($conf, $major, $minor);
ok(! defined $status, 'sub return value, as expected, not yet set');
ok(! $step->result(), 'result, as expected, not yet set');
$major = 13;
$minor = undef;
-$verbose = undef;
-$status = $step->_handle_not_msvc($conf, $major, $minor, $verbose);
+$status = $step->_handle_not_msvc($conf, $major, $minor);
ok($status, 'sub return value, as expected, set to true value');
is($step->result(), q{no}, 'Got expected result');
ok(! defined ($conf->data->get( 'msvcversion' )),
@@ -109,13 +107,21 @@
$major = undef;
$minor = 99;
-$verbose = undef;
-$status = $step->_handle_not_msvc($conf, $major, $minor, $verbose);
+$status = $step->_handle_not_msvc($conf, $major, $minor);
ok($status, 'sub return value, as expected, set to true value');
is($step->result(), q{no}, 'Got expected result');
ok(! defined ($conf->data->get( 'msvcversion' )),
'msvcversion is undef, as expected');
+$conf->replenish($serialized);
+
+########## _handle_not_msvc() ##########
+
+($args, $step_list_ref) = process_options( {
+ argv => [ q{--verbose=1} ],
+ mode => q{configure},
+} );
+$conf->options->set(%{$args});
{
my $stdout;
$major = undef;
@@ -123,7 +129,7 @@
$verbose = 1;
capture(
sub { $status =
- $step->_handle_not_msvc($conf, $major, $minor, $verbose); },
+ $step->_handle_not_msvc($conf, $major, $minor); },
\$stdout,
);
ok($status, 'sub return value, as expected, set to true value');
@@ -141,8 +147,7 @@
$major = 13;
$minor = 99;
-$verbose = undef;
-$msvcversion = $step->_compose_msvcversion($major, $minor, $verbose);
+$msvcversion = $step->_compose_msvcversion($major, $minor);
is($msvcversion, '13.99', "Got expected MSVC version");
is($step->result(), 'yes, 13.99', "Got expected result");
$step->set_result(undef);
@@ -151,10 +156,9 @@
my $stdout;
$major = 13;
$minor = 99;
- $verbose = 1;
capture(
sub { $msvcversion =
- $step->_compose_msvcversion($major, $minor, $verbose); },
+ $step->_compose_msvcversion($major, $minor); },
\$stdout,
);
is($msvcversion, '13.99', "Got expected MSVC version");
Modified: branches/gsoc_threads/t/steps/auto/neg_0-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/auto/neg_0-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/auto/neg_0-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -55,11 +55,10 @@
my $d_neg_0;
my $orig_has_neg_0 = 0;
-my $verbose = $conf->data->get('verbose');
$d_neg_0 = '-0';
-is( $step->_evaluate_cc_run($conf, $d_neg_0, $orig_has_neg_0, $verbose),
+is( $step->_evaluate_cc_run($conf, $d_neg_0, $orig_has_neg_0),
1,
'_evaluate_cc_run() completed satisfactorily' );
@@ -67,7 +66,7 @@
$d_neg_0 = '0';
-is( $step->_evaluate_cc_run($conf, $d_neg_0, $orig_has_neg_0, $verbose),
+is( $step->_evaluate_cc_run($conf, $d_neg_0, $orig_has_neg_0),
0,
'_evaluate_cc_run() completed satisfactorily' );
is( $step->result(), 'no', 'Got expected result' );
@@ -85,7 +84,6 @@
$conf->options->set( %{$args} );
$step = test_step_constructor_and_description($conf);
-$verbose = $conf->options->get('verbose');
my $has_neg_0;
$d_neg_0 = '-0';
@@ -94,7 +92,7 @@
capture(
sub {
$has_neg_0 = $step->_evaluate_cc_run(
- $conf, $d_neg_0, $orig_has_neg_0, $verbose
+ $conf, $d_neg_0, $orig_has_neg_0
),
},
\$stdout,
@@ -111,7 +109,7 @@
capture(
sub {
$has_neg_0 = $step->_evaluate_cc_run(
- $conf, $d_neg_0, $orig_has_neg_0, $verbose
+ $conf, $d_neg_0, $orig_has_neg_0
),
},
\$stdout,
Modified: branches/gsoc_threads/t/steps/auto/opengl-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/auto/opengl-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/auto/opengl-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -5,7 +5,7 @@
use strict;
use warnings;
-use Test::More tests => 32;
+use Test::More tests => 29;
use Carp;
use lib qw( lib );
use_ok('config::auto::opengl');
@@ -138,26 +138,8 @@
my ($glut_api_version, $glut_brand);
capture(
sub { ($glut_api_version, $glut_brand) = $step->_evaluate_cc_run(
+ $conf,
$test,
- 0,
- ); },
- \$stdout,
- \$stderr,
- );
- is( $glut_api_version, $try[0],
- "Got first expected return value for _evaluate_cc_run()." );
- is( $glut_brand, $try[1],
- "Got first expected return value for _evaluate_cc_run()." );
- ok(! $stdout, "Nothing captured on STDOUT, as expected");
-}
-
-{
- my ($stdout, $stderr);
- my ($glut_api_version, $glut_brand);
- capture(
- sub { ($glut_api_version, $glut_brand) = $step->_evaluate_cc_run(
- $test,
- $conf->options->get( 'verbose' )
); },
\$stdout,
\$stderr,
@@ -171,6 +153,8 @@
qr/yes, $glut_brand API version $glut_api_version/,
"Got expected verbose output for _evaluate_cc_run()"
);
+ # prepare for next test
+ $conf->options->set(verbose => undef);
}
########## _handle_glut() ##########
Modified: branches/gsoc_threads/t/steps/auto/pcre-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/auto/pcre-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/auto/pcre-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -98,14 +98,13 @@
# Mock different outcomes of _evaluate_cc_run
my ($test, $has_pcre);
-my $verbose = $conf->options->get('verbose');
$test = q{pcre foobar};
-ok(! $step->_evaluate_cc_run($test, $verbose),
+ok(! $step->_evaluate_cc_run($conf, $test),
"Got expected setting for HAS_PCRE");
$test = q{pcre 4.1};
-ok($step->_evaluate_cc_run($test, $verbose),
+ok($step->_evaluate_cc_run($conf, $test),
"_evaluate_cc_run returned true value as expected");
is($step->result(), q{yes, 4.1}, "Got expected PCRE version");
@@ -122,14 +121,13 @@
$step = test_step_constructor_and_description($conf);
# Mock different outcomes of _evaluate_cc_run
-$verbose = $conf->options->get('verbose');
$test = q{pcre 4.0};
{
my ($stdout, $stderr);
capture(
sub {
- $has_pcre = $step->_evaluate_cc_run($test, $verbose);
+ $has_pcre = $step->_evaluate_cc_run($conf, $test);
},
\$stdout,
);
Modified: branches/gsoc_threads/t/steps/auto/readline-02.t
==============================================================================
--- branches/gsoc_threads/t/steps/auto/readline-02.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/auto/readline-02.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -35,10 +35,10 @@
########## _evaluate_cc_run() ##########
-my ($has_readline, $verbose);
+my ($has_readline);
-$verbose = undef;
-$has_readline = $step->_evaluate_cc_run($verbose);
+$conf->options->set(verbose => undef);
+$has_readline = $step->_evaluate_cc_run($conf);
is($has_readline, 1, "Got expected value for has_readline");
is($step->result(), 'yes', "Expected result was set");
# Prepare for next test
@@ -46,9 +46,9 @@
{
my $stdout;
- $verbose = 1;
+ $conf->options->set(verbose => 1);
capture(
- sub { $has_readline = $step->_evaluate_cc_run($verbose); },
+ sub { $has_readline = $step->_evaluate_cc_run($conf); },
\$stdout,
);
is($has_readline, 1, "Got expected value for has_readline");
@@ -56,6 +56,7 @@
like($stdout, qr/\(yes\)/, "Got expected verbose output");
# Prepare for next test
$step->set_result(undef);
+ $conf->options->set(verbose => undef);
}
########## _handle_readline() ##########
Modified: branches/gsoc_threads/t/steps/auto/zlib-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/auto/zlib-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/auto/zlib-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -90,8 +90,6 @@
'-lz',
"_select_lib() returned expected value");
-my $verbose = undef;
-
$conf->replenish($serialized);
########## --without-zlib; _evaluate_cc_run() ##########
@@ -105,8 +103,8 @@
my ($test, $has_zlib);
$test = qq{1.2.3\n};
$has_zlib = 0;
-$verbose = undef;
-$has_zlib = $step->_evaluate_cc_run($conf, $test, $has_zlib, $verbose);
+$conf->options->set(verbose => undef);
+$has_zlib = $step->_evaluate_cc_run($conf, $test, $has_zlib);
is($has_zlib, 1, "'has_zlib' set as expected");
is($step->result(), 'yes, 1.2.3', "Expected result was set");
# Prepare for next test
@@ -114,8 +112,8 @@
$test = qq{foobar};
$has_zlib = 0;
-$verbose = undef;
-$has_zlib = $step->_evaluate_cc_run($conf, $test, $has_zlib, $verbose);
+$conf->options->set(verbose => undef);
+$has_zlib = $step->_evaluate_cc_run($conf, $test, $has_zlib);
is($has_zlib, 0, "'has_zlib' set as expected");
ok(! defined $step->result(), "Result is undefined, as expected");
@@ -123,10 +121,10 @@
my $stdout;
$test = qq{1.2.3\n};
$has_zlib = 0;
- $verbose = 1;
+ $conf->options->set(verbose => 1);
capture(
sub { $has_zlib =
- $step->_evaluate_cc_run($conf, $test, $has_zlib, $verbose); },
+ $step->_evaluate_cc_run($conf, $test, $has_zlib); },
\$stdout,
);
is($has_zlib, 1, "'has_zlib' set as expected");
Modified: branches/gsoc_threads/t/steps/gen/opengl-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/gen/opengl-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/gen/opengl-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -5,7 +5,7 @@
use strict;
use warnings;
-use Test::More tests => 7;
+use Test::More tests => 20;
use Carp;
use lib qw( lib );
use_ok('config::gen::opengl');
@@ -14,6 +14,7 @@
use Parrot::Configure::Test qw(
test_step_constructor_and_description
);
+use IO::CaptureOutput qw( capture );
########## regular ##########
@@ -27,17 +28,84 @@
my $conf = Parrot::Configure::Step::Test->new;
$conf->include_config_results( $args );
-my $pkg = q{gen::opengl};
+my ($pkg, $step, $result);
+my $serialized = $conf->pcfreeze();
+
+$pkg = q{gen::opengl};
$conf->add_steps($pkg);
$conf->options->set( %{$args} );
-my $step = test_step_constructor_and_description($conf);
+$step = test_step_constructor_and_description($conf);
##### mock no OpenGL #####
$conf->data->set( has_opengl => 0 );
-my $result = $step->runstep($conf);
+$result = $step->runstep($conf);
ok($result, "runstep() returned true value");
is($step->result(), q{skipped}, "Got expected result when no 'has_opengl'" );
+$conf->replenish($serialized);
+
+########### verbose ###########
+
+($args, $step_list_ref) = process_options( {
+ argv => [ q{--verbose} ],
+ mode => q{configure},
+} );
+
+$conf->add_steps($pkg);
+$conf->options->set( %{$args} );
+$step = test_step_constructor_and_description($conf);
+{
+ my ($stdout, $stderr);
+ capture(
+ sub { $result = $step->runstep($conf); },
+ \$stdout,
+ \$stderr,
+ );
+ ok($result, "runstep() returned true value");
+ like( $stdout,
+ qr/Checking for OpenGL headers using the following globs/s,
+ "Got expected verbose output"
+ );
+ like( $stdout,
+ qr/Found the following OpenGL headers/s,
+ "Got expected verbose output"
+ );
+ like( $stdout,
+ qr/PASS\s+FAIL\s+IGNORE\s+HEADER/s,
+ "Got expected verbose output"
+ );
+ like( $stdout,
+ qr/unique signatures successfully translated/s,
+ "Got expected verbose output"
+ );
+}
+
+$conf->replenish($serialized);
+
+########### extra verbose ###########
+
+($args, $step_list_ref) = process_options( {
+ argv => [ q{--verbose=3} ],
+ mode => q{configure},
+} );
+
+$conf->add_steps($pkg);
+$conf->options->set( %{$args} );
+$step = test_step_constructor_and_description($conf);
+{
+ my ($stdout, $stderr);
+ capture(
+ sub { $result = $step->runstep($conf); },
+ \$stdout,
+ \$stderr,
+ );
+ ok($result, "runstep() returned true value");
+ like( $stdout,
+ qr/COUNT\s+NCI SIGNATURE/s,
+ "Got expected verbose output"
+ );
+}
+
pass("Completed all tests in $0");
################### DOCUMENTATION ###################
Modified: branches/gsoc_threads/t/steps/gen/platform-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/gen/platform-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/gen/platform-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -42,18 +42,17 @@
my $platform_orig = $conf->data->get('osname');
my $archname_orig = $conf->data->get('archname');
$conf->data->set( archname => 'foo-bar' );
-my $verbose = 0;
########## _get_generated() ##########
my $TEMP_generated_orig = $conf->data->get('TEMP_generated');
{
- $verbose = 1;
+ $conf->options->set(verbose => 1);
my ($stdout, $stderr, $rv);
my $expected = q{foo};
$conf->data->set( TEMP_generated => $expected );
capture(
- sub { $rv = $step->_get_generated( $conf, $verbose ) },
+ sub { $rv = $step->_get_generated( $conf ) },
\$stdout,
\$stderr,
);
@@ -61,8 +60,8 @@
like( $stdout, qr/\($expected\)/, "Got expected verbose output");
}
$conf->data->set( TEMP_generated => undef );
-$verbose = 0;
-is( $step->_get_generated( $conf, $verbose ), q{},
+$conf->options->set(verbose => 0);
+is( $step->_get_generated( $conf ), q{},
"Got expected generated");
# re-set to original values
Modified: branches/gsoc_threads/t/steps/init/defaults-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/init/defaults-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/init/defaults-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -5,7 +5,7 @@
use strict;
use warnings;
-use Test::More tests => 37;
+use Test::More tests => 49;
use Carp;
use Cwd;
use File::Copy;
@@ -143,6 +143,44 @@
is($conf->data->get( 'linkflags' ), '-bundle -L/usr/local/lib64',
"Got expected value for 'linkflags'");
+$conf->replenish($serialized);
+
+##### with extra-nci-thunks #####
+($args, $step_list_ref) = process_options(
+ {
+ argv => [ ],
+ mode => q{configure},
+ }
+);
+
+$conf->options->set( %{$args} );
+$step = test_step_constructor_and_description($conf);
+$ret = $step->runstep($conf);
+ok( defined $ret, "runstep() returned defined value" );
+ok($conf->data->get( 'has_extra_nci_thunks' ),
+ "Got expected value for has_extra_nci_thunks" );
+ok($conf->data->get( 'HAS_EXTRA_NCI_THUNKS' ),
+ "Got expected value for HAS_EXTRA_NCI_THUNKS" );
+
+$conf->replenish($serialized);
+
+##### without extra-nci-thunks #####
+($args, $step_list_ref) = process_options(
+ {
+ argv => [ q{--without-extra-nci-thunks} ],
+ mode => q{configure},
+ }
+);
+
+$conf->options->set( %{$args} );
+$step = test_step_constructor_and_description($conf);
+$ret = $step->runstep($conf);
+ok( defined $ret, "runstep() returned defined value" );
+ok(! $conf->data->get( 'has_extra_nci_thunks' ),
+ "Got expected value for has_extra_nci_thunks" );
+ok(! $conf->data->get( 'HAS_EXTRA_NCI_THUNKS' ),
+ "Got expected value for HAS_EXTRA_NCI_THUNKS" );
+
pass("Completed all tests in $0");
################### DOCUMENTATION ###################
Modified: branches/gsoc_threads/t/steps/init/hints/darwin-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/init/hints/darwin-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/init/hints/darwin-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -40,10 +40,11 @@
my $stored = $conf->data->get($problematic_flag);
{
+ $conf->options->set( verbose => undef );
my ($stdout, $stderr);
capture(
sub { init::hints::darwin::_precheck(
- $problematic_flag, $stored, 0
+ $conf, $problematic_flag, $stored
) },
\$stdout,
\$stderr,
@@ -52,10 +53,11 @@
}
{
+ $conf->options->set( verbose => 1 );
my ($stdout, $stderr);
capture(
sub { init::hints::darwin::_precheck(
- $problematic_flag, $stored, 1
+ $conf, $problematic_flag, $stored
) },
\$stdout,
\$stderr,
@@ -68,10 +70,11 @@
}
{
+ $conf->options->set( verbose => 1 );
my ($stdout, $stderr);
capture(
sub { init::hints::darwin::_precheck(
- $problematic_flag, q{}, 1
+ $conf, $problematic_flag, q{}
) },
\$stdout,
\$stderr,
@@ -81,6 +84,7 @@
"_precheck(): Got expected verbose output" );
like($stdout, qr/Pre-check:\s+\(nil\)/,
"_precheck(): Got expected verbose output" );
+ $conf->options->set( verbose => undef );
}
##### _strip_arch_flags_engine #####
@@ -107,22 +111,24 @@
##### _postcheck #####
{
+ $conf->options->set( verbose => undef );
my $flag = 'ccflags';
my $flagsref = { 'ccflags' => 'my ccflag' };
my ($stdout, $stderr);
capture(
sub { init::hints::darwin::_postcheck(
- $flagsref, $flag, 0
+ $conf, $flagsref, $flag
) },
\$stdout,
\$stderr,
);
ok( ! $stdout, "_postcheck(): Non-verbose mode produced no output" );
+ $conf->options->set( verbose => 1 );
capture(
sub { init::hints::darwin::_postcheck(
- $flagsref, $flag, 1
+ $conf, $flagsref, $flag
) },
\$stdout,
\$stderr,
@@ -131,10 +137,11 @@
like($stdout, qr/Post-check:\s+$flagsref->{$flag}/,
"_postcheck(): Got expected verbose output" );
+ $conf->options->set( verbose => 1 );
$flagsref = { 'ccflags' => undef };
capture(
sub { init::hints::darwin::_postcheck(
- $flagsref, $flag, 1
+ $conf, $flagsref, $flag
) },
\$stdout,
\$stderr,
@@ -164,10 +171,11 @@
"_strip_arch_flags(): '-arch' flags and extra whitespace removed",
);
+ $conf->options->set( verbose => 1 );
my ($stdout, $stderr);
capture(
sub {
- $flagsref = init::hints::darwin::_strip_arch_flags($conf, 1);
+ $flagsref = init::hints::darwin::_strip_arch_flags($conf);
},
\$stdout,
\$stderr,
@@ -351,17 +359,17 @@
$addl_flags_ref = undef;
$flagsref = undef;
$title = 'Fink';
- $verbose = 0;
+ $conf->options->set( 'verbose' => undef );
ok( init::hints::darwin::_add_to_flags(
- $addl_flags_ref, $flagsref, $title, $verbose
+ $conf, $addl_flags_ref, $flagsref, $title
), "_add_to_flags(): returned true value when no probes found" );
- $verbose = 1;
+ $conf->options->set( 'verbose' => 1 );
{
my ($stdout, $stderr);
capture(
sub { init::hints::darwin::_add_to_flags(
- $addl_flags_ref, $flagsref, $title, $verbose
+ $conf, $addl_flags_ref, $flagsref, $title
); },
\$stdout,
\$stderr,
@@ -381,9 +389,9 @@
$flagsref->{ccflags} = " -pipe -fno-common -Wno-long-double ";
$flagsref->{linkflags} = undef;
$title = 'Fink';
- $verbose = 0;
+ $conf->options->set( 'verbose' => undef );
my $rv = init::hints::darwin::_add_to_flags(
- $addl_flags_ref, $flagsref, $title, $verbose
+ $conf, $addl_flags_ref, $flagsref, $title
);
is( $flagsref->{linkflags}, " $addl_flags_ref->{linkflags}",
"_add_to_flags(): flag added where not previously populated" );
Modified: branches/gsoc_threads/t/steps/init/hints/linux-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/init/hints/linux-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/init/hints/linux-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -37,17 +37,16 @@
##### _handle_icc_ccflags() #####
my $ccflags = '';
-my $verbose = 0;
-$ccflags = init::hints::linux::_handle_icc_ccflags($ccflags, $verbose);
+$ccflags = init::hints::linux::_handle_icc_ccflags($conf, $ccflags);
like( $ccflags, qr/\s-we147/, "On icc, 'cc_flags' set as expected" );
$ccflags = '';
-$verbose = 1;
{
+ $conf->options->set( verbose => 1 );
my ($stdout, $stderr);
capture(
sub { $ccflags =
- init::hints::linux::_handle_icc_ccflags($ccflags, $verbose); },
+ init::hints::linux::_handle_icc_ccflags($conf, $ccflags); },
\$stdout,
\$stderr,
);
Modified: branches/gsoc_threads/t/steps/inter/libparrot-01.t
==============================================================================
--- branches/gsoc_threads/t/steps/inter/libparrot-01.t Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/t/steps/inter/libparrot-01.t Thu Jun 10 21:09:12 2010 (r47545)
@@ -5,7 +5,7 @@
use strict;
use warnings;
-use Test::More tests => 48;
+use Test::More tests => 74;
use Carp;
use lib qw( lib t/configure/testlib );
use_ok('config::inter::libparrot');
@@ -258,6 +258,101 @@
$conf->data->set('has_dynamic_linking' => $has_dynamic_linking_orig);
@prompts = ();
+##### get_libs() #####
+
+my %seen;
+{
+ local $^O = 'foobar';
+ %seen = map { $_ => 1 } inter::libparrot::get_libs();
+ is( scalar keys %seen, 1, "Got expected number of libs: generic" );
+ ok( $seen{'libparrot.so'}, "Got expected lib" );
+}
+
+{
+ local $^O = 'MSWin32';
+ %seen = map { $_ => 1 } inter::libparrot::get_libs();
+ is( scalar keys %seen, 3, "Got expected number of libs: Win32" );
+ is_deeply(
+ \%seen,
+ {
+ 'libparrot.dll' => 1,
+ 'libparrot.lib' => 1,
+ 'libparrot.dll.a' => 1,
+ },
+ "Got expected libs"
+ );
+}
+
+{
+ local $^O = 'cygwin';
+ %seen = map { $_ => 1 } inter::libparrot::get_libs();
+ is( scalar keys %seen, 1, "Got expected number of libs: cygwin" );
+ is_deeply(
+ \%seen,
+ {
+ 'libparrot.dll.a' => 1,
+ },
+ "Got expected libs"
+ );
+}
+
+{
+ local $^O = 'darwin';
+ %seen = map { $_ => 1 } inter::libparrot::get_libs();
+ is( scalar keys %seen, 2, "Got expected number of libs: darwin" );
+ is_deeply(
+ \%seen,
+ {
+ 'libparrot.dylib' => 1,
+ 'libparrot.a' => 1,
+ },
+ "Got expected libs"
+ );
+}
+
+##### get_libpaths() #####
+
+%seen = map { $_ => 1 } inter::libparrot::get_libpaths($conf);
+ok( $seen{'/usr/local/lib'}, "Got expected lib: generic" );
+ok( $seen{'/usr/lib'}, "Got expected lib: generic" );
+
+{
+ local $^O = 'MSWin32';
+ local $ENV{PATH} = 'alpha;beta';
+ %seen = map { $_ => 1 } inter::libparrot::get_libpaths($conf);
+ ok( $seen{'/usr/local/lib'}, "Got expected lib: MSWin32" );
+ ok( $seen{'/usr/lib'}, "Got expected lib: MSWin32" );
+ ok( $seen{'alpha'}, "Got expected lib: MSWin32" );
+ ok( $seen{'beta'}, "Got expected lib: MSWin32" );
+}
+
+{
+ local $ENV{LD_LIBRARY_PATH} = 'alpha:beta';
+ %seen = map { $_ => 1 } inter::libparrot::get_libpaths($conf);
+ ok( $seen{'/usr/local/lib'}, "Got expected lib: LD_LIBRARY_PATH" );
+ ok( $seen{'/usr/lib'}, "Got expected lib: LD_LIBRARY_PATH" );
+ ok( $seen{'alpha'}, "Got expected lib: LD_LIBRARY_PATH" );
+ ok( $seen{'beta'}, "Got expected lib: LD_LIBRARY_PATH" );
+}
+
+{
+ local $ENV{LD_RUN_PATH} = 'alpha:beta';
+ %seen = map { $_ => 1 } inter::libparrot::get_libpaths($conf);
+ ok( $seen{'/usr/local/lib'}, "Got expected lib: LD_RUN_PATH" );
+ ok( $seen{'/usr/lib'}, "Got expected lib: LD_RUN_PATH" );
+ ok( $seen{'alpha'}, "Got expected lib: LD_RUN_PATH" );
+ ok( $seen{'beta'}, "Got expected lib: LD_RUN_PATH" );
+}
+
+{
+ local $ENV{DYLD_LIBRARY_PATH} = 'alpha:beta';
+ %seen = map { $_ => 1 } inter::libparrot::get_libpaths($conf);
+ ok( $seen{'/usr/local/lib'}, "Got expected lib: DYLD_LIBRARY_PATH" );
+ ok( $seen{'/usr/lib'}, "Got expected lib: DYLD_LIBRARY_PATH" );
+ ok( $seen{'alpha'}, "Got expected lib: DYLD_LIBRARY_PATH" );
+ ok( $seen{'beta'}, "Got expected lib: DYLD_LIBRARY_PATH" );
+}
+
pass("Completed all tests in $0");
################### DOCUMENTATION ###################
Modified: branches/gsoc_threads/tools/build/headerizer.pl
==============================================================================
--- branches/gsoc_threads/tools/build/headerizer.pl Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/tools/build/headerizer.pl Thu Jun 10 21:09:12 2010 (r47545)
@@ -89,8 +89,9 @@
my $heading = $headerizer->generate_documentation_signature($decl);
- $text =~ s/=item C<[^>]*\b$name\b[^>]*>\n+/$heading\n\n/sm or
- warn "$cfile_name: $name has no POD\n";
+ $text =~ s/=item C<[^>]*\b$name\b[^>]*>\n+/$heading\n\n/sm or do {
+ warn "$cfile_name: $name has no POD\n" unless $name =~ /^yy/; # lexer funcs don't have to have POD
+ }
}
open( my $fhout, '>', $cfile_name ) or die "Can't create $cfile_name: $!";
print {$fhout} $text;
@@ -126,7 +127,9 @@
push( @attrs, "__attribute__nonnull__($n)" );
}
if ( ( $arg =~ m{\*} ) && ( $arg !~ /\b(SHIM|((ARGIN|ARGOUT|ARGMOD)(_NULLOK)?)|ARGFREE(_NOTNULL)?)\b/ ) ) {
- $headerizer->squawk( $file, $name, qq{"$arg" isn't protected with an ARGIN, ARGOUT or ARGMOD (or a _NULLOK variant), or ARGFREE} );
+ if ( $name !~ /^yy/ ) { # Don't complain about the lexer auto-generated funcs
+ $headerizer->squawk( $file, $name, qq{"$arg" isn't protected with an ARGIN, ARGOUT or ARGMOD (or a _NULLOK variant), or ARGFREE} );
+ }
}
if ( ($arg =~ /\bconst\b/) && ($arg =~ /\*/) && ($arg !~ /\*\*/) && ($arg =~ /\b(ARG(MOD|OUT))\b/) ) {
$headerizer->squawk( $file, $name, qq{"$arg" is const, but that $1 conflicts with const} );
Modified: branches/gsoc_threads/tools/build/ops2c.pl
==============================================================================
--- branches/gsoc_threads/tools/build/ops2c.pl Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/tools/build/ops2c.pl Thu Jun 10 21:09:12 2010 (r47545)
@@ -1,149 +1,20 @@
#! perl
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
# $Id$
-use warnings;
use strict;
+use warnings;
+
use FindBin qw($Bin);
use lib "$Bin/../lib"; # install location
-use lib "$Bin/../../lib"; # build location
-use Parrot::Ops2c::Auxiliary qw( Usage getoptions );
-use Parrot::Ops2c::Utils ();
-
-my $flagref = getoptions();
-if ( ( not defined $flagref )
- or $flagref->{help}
- or ( not @ARGV ) )
-{
- Usage();
- exit 1;
-}
-
-my $self = Parrot::Ops2c::Utils->new(
- {
- argv => [@ARGV],
- flag => $flagref,
- script => $0,
- }
-);
-if ( not defined $self ) {
- Usage();
- exit 1;
-}
-
-$self->print_c_header_file();
-
-$self->print_c_source_file();
-
-exit 0;
-
-#################### DOCUMENTATION ####################
-
-=head1 NAME
-
-tools/build/ops2c.pl - Parser for .ops files
-
-=head1 SYNOPSIS
-
- % perl tools/build/ops2c.pl trans [--help] [--no-lines] [--dynamic]
- [--core | input.ops [input2.ops ...]]
- trans := C
-
-For example:
-
- % perl tools/build/ops2c.pl C --core
-
- % perl tools/build/ops2c.pl C --dynamic myops.ops
-
-=head1 DESCRIPTION
-
-This script uses a supplied transform to create a pair of C header and
-implementation files from the operation definitions found in one or more
-F<*.ops> files.
-
-=head2 Transforms
-
-The first command-line argument is the last package name component of a
-subclass of C<Parrot::OpTrans>. These subclasses all have full names of
-the form C<Parrot::OpTrans::*>. An instance of the class is created and
-later consulted for various bits of information needed to generate the C
-code. Each creates a different type of run loop.
-
-=over
-
-=item C<C>
-
-Create the function-based (slow or fast core) run loop.
-
-=back
-
-=head2 Options
-
-=over 4
-
-=item C<--help>
-
-Print synopsis.
-
-=item C<--dynamic>
-
-Indicate that the opcode library is dynamic.
-
-=item C<--core>
-
-Build the Parrot core opcode library.
-
-=item C<--no-lines>
-
-Do not generate C<#line> directives in the generated C code.
-
-=back
-
-=head1 NOTE
-
-Most of the functionality in F<tools/build/ops2c.pl> has been extracted into
-methods and subroutines found in Parrot::Ops2c::Utils and
-Parrot::Ops2c::Auxiliary. This refactoring facilitates unit testing and
-coverage analysis of that functionality. A test suite has been provided in
-F<t/tools/ops2cutils/>. It is recommended that future refactoring of this
-functionality proceed in a test-driven manner, I<i.e.,> tests should be
-written reflecting any changes to interface or functionality; the code should
-be written which implements the revisions; the code should be tested; and
-coverage analysis should be performed with Devel::Cover to measure the extent
-to which the tests exercise the code.
-
-=head1 AUTHORS
-
-Based on the commit logs, the following members of the Parrot project have
-contributed to this program:
-
- ambs bernhard boemmels brentdax chip
- coke dan gregor grunblatt jgoff
- jkeenan jonathan josh jrieks leo
- mikescott mrjoltcola nicholas particle paultcochrane
- petdance rgrjr robert simon
-
-=head1 SEE ALSO
-
-=over 4
-
-=item F<tools/build/ops2pm.pl>
-
-=item C<Parrot::OpsFile>
-
-=item C<Parrot::Op>
-
-=item C<Parrot::OpTrans>
-
-=item C<Parrot::OpTrans::C>
-
-=item C<Parrot::Ops2c::Utils>
-
-=item C<Parrot::Ops2c::Auxiliary>
-
-=back
+use Parrot::Config;
+use File::Spec;
-=cut
+warn 'ops2c.pl is deprecated. Use ops2c$(EXE) instead';
+# Ignore "core"
+shift @ARGV;
+my $ops2c = File::Spec->catfile($PConfig{bindir}, 'ops2c');
+exec $ops2c, @ARGV;
# Local Variables:
# mode: cperl
Deleted: branches/gsoc_threads/tools/build/ops2pm.pl
==============================================================================
--- branches/gsoc_threads/tools/build/ops2pm.pl Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,164 +0,0 @@
-#! perl
-# Copyright (C) 2001-2007, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-
-use lib 'lib';
-use Parrot::Ops2pm;
-use Parrot::Ops2pm::Auxiliary qw( Usage getoptions );
-
-my $flagref = getoptions();
-
-if ( $flagref->{help} or !@ARGV ) {
- Usage();
- exit;
-}
-
-my $self = Parrot::Ops2pm->new(
- {
- argv => [@ARGV],
- nolines => $flagref->{nolines},
- renum => $flagref->{renum},
- moddir => "lib/Parrot/OpLib",
- module => "core.pm",
- inc_dir => "include/parrot/oplib",
- inc_f => "ops.h",
- script => "tools/build/ops2pm.pl",
- }
-);
-
-$self->prepare_ops();
-$self->load_op_map_files();
-$self->sort_ops();
-$self->prepare_real_ops();
-$self->print_module();
-$self->print_h();
-
-exit 0;
-
-################### DOCUMENTATION ####################
-
-=head1 NAME
-
-tools/build/ops2pm.pl - Generate Perl module from operation definitions
-
-=head1 SYNOPSIS
-
- $ perl tools/build/ops2pm.pl [--help] [--no-lines] input.ops [input2.ops ...]
- $ perl tools/build/ops2pm.pl [--renum] input.ops [input2.ops ...]
-
-=head1 DESCRIPTION
-
-Reads the ops files listed on the command line and outputs a
-F<Parrot::OpLib::core> module containing information about the ops.
-Also outputs F<include/parrot/oplib/ops.h>. This program is called by Parrot's
-F<make>.
-
-If called with the C<--renum> flag, renumbers the file F<src/ops/ops.num>.
-This is mandatory when adding or removing opcodes.
-
-=head1 OPTIONS
-
-=over 4
-
-=item C<--help>
-
-Print synopsis.
-
-=item C<--no-lines>
-
-Do not generate C<#line> directives in the generated C code.
-
-=item C<--renum>
-
-Renumber opcodes according to existing ops in ops/num and natural
-order in the given ops files. See also F<tools/dev/ops_renum.mak>.
-
-=back
-
-Most of the functionality in this program is now held in Parrot::Ops2pm::Util
-methods and a small number of Parrot::Ops2pm::Auxiliary subroutines.
-See those modules' documentation for discussion of those functions.
-Revisions to the functionality should be made in those packages and tested
-against tests found in F<t/tools/ops2pm/>.
-
-=head1 WARNING
-
-Generating a C<Parrot::OpLib::core> module for a set of ops files that
-you do not later turn into C code (see F<tools/build/ops2c.pl>) with the
-same op content and order is a recipe for disaster. But as long as you
-just run these tools in the standard build process via C<make> there
-shouldn't be a problem.
-
-=head1 TODO
-
-The original design of the ops processing code was intended to be
-a read-only representation of what was in a particular ops file. It was
-not originally intended that it was a mechanism for building a bigger
-virtual ops file from multiple physical ops files.
-
-This code does half of that job (the other half is getting them to
-compile together instead of separately in a F<*_ops.c> file).
-
-You can see evidence of this by the way this code reaches in to the
-internal C<OPS> hash key to do its concatenation, and the way it
-twiddles each op's C<CODE> hash key after that.
-
-If the op and oplib Perl modules are going to be used for modifying
-information read from ops files in addition to reading it, they should
-be changed to make the above operations explicitly supported.
-
-Otherwise, the Parrot build and interpreter start-up logic should be
-modified so that it doesn't need to concatenate separate ops files.
-
-=head1 SEE ALSO
-
-=over 4
-
-=item F<tools/build/ops2c.pl>.
-
-=item F<lib/Parrot/Ops2pm.pm>.
-
-=item F<lib/Parrot/Ops2pm/Auxiliary.pm>.
-
-=item F<tools/dev/ops_renum.mak>.
-
-=back
-
-=head1 AUTHOR
-
-Over the years, F<tools/build/ops2pm.pl> has been worked on by the following Parrot hackers:
-
- bernhard
- brentdax
- chip
- chromatic
- coke
- dan
- gregor
- jkeenan
- leo
- mikescott
- particle
- paultcochrane
- petdance
- robert
- simon
- tewk
-
-Others who provided code cited in the version control logs include:
-
- Andy Dougherty
- Jeff Gof
- Steve Fink
-
-=cut
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/gsoc_threads/tools/dev/fetch_languages.pl
==============================================================================
--- branches/gsoc_threads/tools/dev/fetch_languages.pl Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/tools/dev/fetch_languages.pl Thu Jun 10 21:09:12 2010 (r47545)
@@ -48,7 +48,7 @@
my %update_cmd = (
SVN => [qw(svn update)],
GIT => [qw(git pull)],
- HG => [qw(hg pull)],
+ HG => [qw(hg pull --update)],
);
my @hlls = (
Modified: branches/gsoc_threads/tools/dev/mk_language_shell.pl
==============================================================================
--- branches/gsoc_threads/tools/dev/mk_language_shell.pl Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/tools/dev/mk_language_shell.pl Thu Jun 10 21:09:12 2010 (r47545)
@@ -210,10 +210,11 @@
load_bytecode 'distutils.pbc'
.local int reqsvn
- $P0 = open 'PARROT_REVISION', 'r'
- $S0 = readline $P0
+ $P0 = new 'FileHandle'
+ $P0.'open'('PARROT_REVISION', 'r')
+ $S0 = $P0.'readline'()
reqsvn = $S0
- close $P0
+ $P0.'close'()
.local pmc config
config = get_config()
@@ -227,7 +228,7 @@
$S0 = $I0
$S1 .= $S0
$S1 .= ")\n"
- printerr $S1
+ print $S1
end
L1:
Copied: branches/gsoc_threads/tools/dev/mk_packfile_pbc (from r47544, trunk/tools/dev/mk_packfile_pbc)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/gsoc_threads/tools/dev/mk_packfile_pbc Thu Jun 10 21:09:12 2010 (r47545, copy of r47544, trunk/tools/dev/mk_packfile_pbc)
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# sh tools/dev/mk_packfile_pbc
+#
+# generate t/native_pbc/*.pbc for testing Packfile* PMCs.
+
+./parrot -o t/native_pbc/integer.pbc -a - <<EOF
+print 0x10203040
+end
+EOF
+[ $? -le 0 ] && echo "t/native_pbc/integer.pbc updated"
+./parrot -o t/native_pbc/number.pbc t/native_pbc/testdata/number.pasm && echo "t/native_pbc/number.pbc updated"
+./parrot -o t/native_pbc/string.pbc t/native_pbc/testdata/string.pasm && echo "t/native_pbc/string.pbc updated"
+
+./parrot -o t/native_pbc/annotations.pbc - <<EOF
+.sub 'main'
+.annotate "file", "annotations.pir"
+.annotate "creator", "Parrot Foundation"
+.annotate "line", 1
+ say "Hi"
+ say "line"
+.annotate "line", 2
+ .return ()
+.end
+EOF
+
Modified: branches/gsoc_threads/tools/dev/nci_thunk_gen.pir
==============================================================================
--- branches/gsoc_threads/tools/dev/nci_thunk_gen.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/tools/dev/nci_thunk_gen.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -45,8 +45,11 @@
sigs = 'read_sigs'()
$S0 = 'read_from_opts'('output')
- $P0 = open $S0, 'w'
- setstdout $P0
+ $P0 = new ['FileHandle']
+ $P0.'open'($S0, 'w')
+ $P1 = getinterp
+ .include 'stdio.pasm'
+ $P1.'stdhandle'(.PIO_STDOUT_FILENO, $P0)
if targ == 'head' goto get_targ
if targ == 'thunks' goto get_targ
@@ -708,7 +711,9 @@
.sub 'read_sigs'
.local pmc stdin, seen, sigs
- stdin = getstdin
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ stdin = $P0.'stdhandle'(.PIO_STDIN_FILENO)
seen = new ['Hash']
sigs = new ['ResizablePMCArray']
@@ -735,7 +740,10 @@
$S0 = 'sprintf'(<<'ERROR', full_sig, lineno, $I0)
Ignored signature '%s' on line %d (previously seen on line %d)
ERROR
- printerr $S0
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'($S0)
end_dup_warn:
goto read_loop
unseen:
@@ -758,7 +766,7 @@
.param pmc fh
.local string line
- line = readline fh
+ line = fh.'readline'()
# handle comments
$I0 = index line, '#'
Deleted: branches/gsoc_threads/tools/dev/opsrenumber.pl
==============================================================================
--- branches/gsoc_threads/tools/dev/opsrenumber.pl Thu Jun 10 21:09:12 2010 (r47544)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,77 +0,0 @@
-#! perl
-# Copyright (C) 2001-2007, Parrot Foundation.
-# $Id$
-
-use strict;
-use warnings;
-
-use lib 'lib';
-use Parrot::OpsRenumber;
-
-my $self = Parrot::OpsRenumber->new(
- {
- argv => [@ARGV],
- moddir => "lib/Parrot/OpLib",
- module => "core.pm",
- inc_dir => "include/parrot/oplib",
- inc_f => "ops.h",
- script => "tools/dev/opsrenumber.pl",
- }
-);
-
-$self->prepare_ops();
-$self->renum_op_map_file();
-
-exit 0;
-
-################### DOCUMENTATION ####################
-
-=head1 NAME
-
-tools/dev/opsrenumber.pl - Renumber F<src/ops/ops.num>.
-
-=head1 SYNOPSIS
-
- $ perl tools/dev/opsrenumber.pl input.ops [input2.ops ...]
-
-=head1 DESCRIPTION
-
-This program should be used when adding or removing opcodes.
-
-All opcodes except the first seven are potentially deletable and the opcodes'
-order may be rearranged. However, in and after Parrot 1.0.0, deletion of
-opcodes should be a rare event. The program will automatically detect which
-opcodes have been deleted and will renumber the remaining codes appropriately.
-
-The program, however, will B<not> automatically detect new opcodes. This is
-a feature, not a bug, as it is intended to require someone to think about why
-new opcodes should be added. Once a decision to add new opcodes has been
-made, those opcodes should be entered manually at the endc of
-F<src/ops/ops.num>, then F<tools/dev/opsrenumber.pl> (or F<make opsrenumber>)
-should be run.
-
-=head1 SEE ALSO
-
-=over 4
-
-=item F<lib/Parrot/Ops2pm/Base.pm>.
-
-=item F<lib/Parrot/OpsRenumber.pm>.
-
-=back
-
-=head1 AUTHOR
-
-This code was refactored out of F<tools/build/ops2pm.pl>. That file contains
-a list of the contributors to this code over the years.
-
-The refactoring of this file was done by James E Keenan.
-
-=cut
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Modified: branches/gsoc_threads/tools/dev/pbc_to_exe.pir
==============================================================================
--- branches/gsoc_threads/tools/dev/pbc_to_exe.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/tools/dev/pbc_to_exe.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -55,7 +55,8 @@
open_outfile:
.local pmc outfh
- outfh = open cfile, 'w'
+ outfh = new ['FileHandle']
+ outfh.'open'(cfile, 'w')
unless outfh goto err_outfh
print outfh, <<'HEADER'
#include "parrot/parrot.h"
@@ -215,7 +216,8 @@
.sub 'generate_code'
.param string infile
.local pmc ifh
- ifh = open infile, 'r'
+ ifh = new ['FileHandle']
+ ifh.'open'(infile, 'r')
unless ifh goto err_infile
.local pmc codestring
@@ -229,7 +231,7 @@
.local string pbcstring
.local int pbclength
- pbcstring = read ifh, 16384
+ pbcstring = ifh.'read'(16384)
pbclength = length pbcstring
unless pbclength > 0 goto read_done
@@ -251,7 +253,7 @@
goto read_loop
read_done:
- close ifh
+ ifh.'close'()
push codestring, "\n};\n\nconst int bytecode_size = "
$S0 = size
@@ -304,7 +306,8 @@
.sub 'generate_code_gcc'
.param string infile
.local pmc ifh
- ifh = open infile, 'r'
+ ifh = new ['FileHandle']
+ ifh.'open'(infile, 'r')
unless ifh goto err_infile
.local pmc encoding_table
@@ -323,7 +326,7 @@
.local string pbcstring
.local int pbclength
- pbcstring = read ifh, 16384
+ pbcstring = ifh.'read'(16384)
pbclength = length pbcstring
unless pbclength > 0 goto read_done
@@ -346,7 +349,7 @@
goto read_loop
read_done:
- close ifh
+ ifh.'close'()
push codestring, '"'
push codestring, "\n;\n\n"
@@ -430,7 +433,8 @@
rc_contents .= "\"\n"
.local pmc rc_fh
- rc_fh = open rc_path, 'w'
+ rc_fh = new ['FileHandle']
+ rc_fh.'open'(rc_path, 'w')
unless rc_fh goto err_rc_open
print rc_fh, rc_contents
$I0 = rc_fh.'close'()
Modified: branches/gsoc_threads/tools/docs/filename_and_chapter.pl
==============================================================================
--- branches/gsoc_threads/tools/docs/filename_and_chapter.pl Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/tools/docs/filename_and_chapter.pl Thu Jun 10 21:09:12 2010 (r47545)
@@ -19,6 +19,13 @@
['running.pod', 'Parrot\'s command line options'],
];
+my $PIR_chap_list_ref = [ 'ch01_introduction.pod', 'ch02_getting_started.pod',
+ 'ch03_basic_syntax.pod', 'ch04_variables.pod',
+ 'ch05_control_structures.pod', 'ch06_subroutines.pod',
+ 'ch07_objects.pod', 'ch08_io.pod',
+ 'ch09_exceptions.pod',
+ ];
+
my $lang = @$item_list_ref - 1;
my $MOD_BUILD_PATH='build/modified_pod/';
@@ -46,6 +53,9 @@
\documentclass[11pt,a4paper,oneside]{report}
\usepackage{graphics,graphicx}
\usepackage{colortbl}
+%
+%\setcounter{secnumdepth}{2}
+%\setcounter{tocdepth}{2}
\begin{document}
\tableofcontents
@@ -57,6 +67,28 @@
$parser->parse_file( "${MOD_BUILD_PATH}$item_list_ref->[$i][0]" );
}
+print $TEX_FH <<'PIR_TITEL';
+\chapter{PIR Guide}
+
+PIR_TITEL
+
+open my $PIR_TEX_FH, '>', 'build/pir_guide_tex.in';
+$lang = @$PIR_chap_list_ref - 1;
+for my $i ( 0..$lang ) {
+ my $parser = Pod::PseudoPod::LaTeX->new();
+ $parser->output_fh( $PIR_TEX_FH );
+ $parser->parse_file( 'book/pir/' . $PIR_chap_list_ref->[$i] );
+}
+close( $PIR_TEX_FH );
+
+open $PIR_TEX_FH, '<', 'build/pir_guide_tex.in';
+while( <$PIR_TEX_FH> ) {
+ s/^\\section\*/\\section/;
+ s/subsubsub/subsub/;
+ print $TEX_FH $_;
+}
+close( $PIR_TEX_FH );
+
print $TEX_FH <<'FOOTER';
\end{document}
FOOTER
Modified: branches/gsoc_threads/tools/install/smoke.pl
==============================================================================
--- branches/gsoc_threads/tools/install/smoke.pl Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/tools/install/smoke.pl Thu Jun 10 21:09:12 2010 (r47545)
@@ -108,12 +108,19 @@
$filename = 'test.pg';
open $FH, '>', $filename
or die "Can't open $filename ($!).\n";
-print $FH "token TOP { \\s* }\n";
+print $FH <<'PGE';
+grammar WSpace
+
+token TOP { \s* }
+PGE
close $FH;
-$out = `$parrot $libdir/PGE/Perl6Grammar.pir $filename`;
-ok($out =~ /^\n## <::TOP>/, "check PGE");
+$out = `$parrot $libdir/PGE/Perl6Grammar.pbc $filename`;
+ok($out =~ /## <WSpace::TOP>/, "check PGE");
unlink($filename);
+SKIP:
+{
+skip("pirc", 1) unless (-e $pirc);
$filename = 'test.pir';
open $FH, '>', $filename
or die "Can't open $filename ($!).\n";
@@ -126,6 +133,7 @@
$out = `$pirc -n $filename`;
ok($out eq "ok\n", "check pirc");
unlink($filename);
+}
$filename = 'test.nqp';
open $FH, '>', $filename
Modified: branches/gsoc_threads/tools/util/inc_ver.pir
==============================================================================
--- branches/gsoc_threads/tools/util/inc_ver.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/tools/util/inc_ver.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -5,37 +5,40 @@
.sub 'main' :main
.local string version_file_name
version_file_name = 'VERSION'
+
# read the version
- $P0 = open version_file_name, 'r'
- $S0 = readline $P0
- close $P0
+ $P0 = new 'FileHandle'
+ $P0.'open'( version_file_name, 'r' )
+ $S0 = $P0.'readline'()
+ $P0.'close'()
print 'version: '
print $S0
# split the version
- $P0 = split '.', $S0
+ $P1 = split '.', $S0
# increment version
- $I0 = $P0[1]
+ $I0 = $P1[1]
inc $I0
if $I0 != 12 goto NOT_NILL
- $I0 = $P0[0]
+ $I0 = $P1[0]
inc $I0
- $P0[0] = $I0
+ $P1[0] = $I0
$I0 = 0
NOT_NILL:
- $P0[1] = $I0
+ $P1[1] = $I0
- # join the version
- $S0 = join '.', $P0
+ # join the incremented version
+ $S0 = join '.', $P1
print 'new version: '
print $S0
- $P0 = open version_file_name, 'w'
- print $P0, $S0
- close $P0
+ # write the new version to the version_file
+ $P0.'open'( version_file_name, 'w' )
+ $P0.'print'( $S0 )
+ $P0.'close'()
.end
# Local Variables:
Modified: branches/gsoc_threads/tools/util/parrot-config.pir
==============================================================================
--- branches/gsoc_threads/tools/util/parrot-config.pir Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/tools/util/parrot-config.pir Thu Jun 10 21:09:12 2010 (r47545)
@@ -88,8 +88,11 @@
end
usage:
$S0 = argv[0]
- printerr $S0
- printerr " [ <config-key> | --dump | --help ]\n"
+ $P0 = getinterp
+ .include 'stdio.pasm'
+ $P1 = $P0.'stdhandle'(.PIO_STDERR_FILENO)
+ $P1.'print'($S0)
+ $P1.'print'(" [ <config-key> | --dump | --help ]\n")
exit 1
.end
Modified: branches/gsoc_threads/tools/util/perlcritic.conf
==============================================================================
--- branches/gsoc_threads/tools/util/perlcritic.conf Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/tools/util/perlcritic.conf Thu Jun 10 21:09:12 2010 (r47545)
@@ -69,7 +69,7 @@
add_themes = parrot
[Bangs::ProhibitFlagComments]
-add_themes = parrot
+add_themes = extra
[Bangs::ProhibitRefProtoOrProto]
add_themes = extra
Modified: branches/gsoc_threads/tools/util/pgegrep
==============================================================================
--- branches/gsoc_threads/tools/util/pgegrep Thu Jun 10 19:21:21 2010 (r47544)
+++ branches/gsoc_threads/tools/util/pgegrep Thu Jun 10 21:09:12 2010 (r47545)
@@ -81,6 +81,9 @@
# Readability improved!
.include 'hllmacros.pir'
+# for getstdin and friends
+.loadlib 'io_ops'
+
.sub main :main
.param pmc argv # the script name, then our options.
.local string progname
More information about the parrot-commits
mailing list