# New Ticket Created by  Andrew Buchanan 
# Please include the string:  [perl #129311]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=129311 >


This is a simple two-regex grammar. It is as if the ‘?’ modifier is set on the 
wildcards, and matching nothing doesn’t stop the parser.
--
Andrew Buchanan
tomentiru...@gmail.com <mailto:tomentiru...@gmail.com>





This is a simple two-regex grammar. It is as if the ‘?’ modifier is set on the wildcards, and matching nothing doesn’t stop the parser.
--
Andrew Buchanan





use v6;

# This Grammar goes into an infinite loop
grammar G {
        regex Body { <Text>+ }
        # With this, only one character is chosen at a time, except when there 
is a \v
        regex Text { \V*: % \v+ }
        # With this, the input is found, and then it goes into an infinite loop
        #regex Text { \V* }
        # This works
        # regex Text { \V+ }
}
class A {
        method FALLBACK($fn, $match) {
                say "<$fn> matched '$match'";
        }
}

my $g = G.new;
my $actions = A.new;
my $rule = 'Body';
say "Calling parse";
$g.parse("Line 1", :$rule, :$actions);

=finish
moar::dcbrule=@:
moar::ar=ar
moar::mastdir=/Users/andrewbuchanan/.rakudobrew/moar-nom/install/share/nqp/lib/MAST
moar::tomrule=$(AR) $(ARFLAGS) $@ 3rdparty/libtommath/*.o
moar::shaobjects=3rdparty/sha1/sha1.o
moar::ccshared=
moar::be=0
moar::dynasmlua=./3rdparty/dynasm/dynasm.lua
moar::ld=clang
moar::mtlib=3rdparty/tinymt/libtinymt.a
moar::mtobjects=3rdparty/tinymt/tinymt64.o
moar::noreturnspecifier=
moar::perl=perl
moar::shaclean=$(RM) 3rdparty/sha1/libsha1.a 3rdparty/sha1/*.o
moar::static_inline=static __inline__
moar::ccdebugflags=-g3
moar::auxclean=@:
moar::thirdpartylibs=3rdparty/dyncall/dyncall/libdyncall_s.a 
3rdparty/dyncall/dyncallback/libdyncallback_s.a 
3rdparty/dyncall/dynload/libdynload_s.a 
3rdparty/libatomic_ops/src/libatomic_ops.a 3rdparty/tinymt/libtinymt.a 
3rdparty/sha1/libsha1.a 3rdparty/libtommath/libtommath.a 3rdparty/libuv/libuv.a
moar::config=--optimize 
--prefix=/Users/andrewbuchanan/.rakudobrew/moar-nom/install --make-install
moar::ccinc=-I
moar::booltype=_Bool
moar::ldout=-o
moar::moarlib=libmoar.a
moar::mtrule=$(AR) $(ARFLAGS) $@ 3rdparty/tinymt/*.o
moar::dcrule=cd 3rdparty/dyncall &&  ./configure && CC='$(CC)' 
CFLAGS='$(CFLAGS)' $(MAKE) -f Makefile
moar::dcbobjects=
moar::cflags=-fno-omit-frame-pointer -fno-optimize-sibling-calls -O3 -DNDEBUG 
-Wno-logical-op-parentheses -D_DARWIN_USE_64_BIT_INODE=1
moar::laolib=3rdparty/libatomic_ops/src/libatomic_ops.a
moar::libdir=/Users/andrewbuchanan/.rakudobrew/moar-nom/install/lib
moar::nul=/dev/null
moar::osvers=15.0
moar::translate_newline_output=0
moar::dlrule=@:
moar::cat=cat
moar::can_unaligned_int32=1
moar::ldimp=
moar::pkgconfig=/usr/bin/pkg-config
moar::ccdef=-D
moar::lib=lib%s.a
moar::tomclean=$(RM) 3rdparty/libtommath/libtommath.a 3rdparty/libtommath/*.o
moar::dlllocal=__attribute__ ((visibility ("hidden")))
moar::dcbclean=$(RM) 3rdparty/dyncall/dyncallback/libdyncallback_s.a
moar::noreturnattribute=__attribute__((noreturn))
moar::ptr_size=8
moar::dllimport=__attribute__ ((visibility ("default")))
moar::ccout=-o
moar::can_unaligned_num64=1
moar::has_pthread_yield=0
moar::ldrpath=-Wl,-rpath,"//Users/andrewbuchanan/.rakudobrew/moar-nom/install/lib"
 
-Wl,-rpath,"/Users/andrewbuchanan/.rakudobrew/moar-nom/install/share/perl6/site/lib"
moar::ldusr=-l%s
moar::mainflags=-DMVM_SHARED
moar::name=moar
moar::dll=lib%s.dylib
moar::cincludes= -I3rdparty/libuv/include -I3rdparty/libuv/src 
-I3rdparty/libatomic_ops/src -I3rdparty/libtommath -I3rdparty/dynasm 
-I3rdparty/dyncall/dynload -I3rdparty/dyncall/dyncall 
-I3rdparty/dyncall/dyncallback
moar::uvrule=$(AR) $(ARFLAGS) $@ $(UV_DARWIN)
moar::tomlib=3rdparty/libtommath/libtommath.a
moar::staticlib=
moar::dlclean=$(RM) 3rdparty/dyncall/dynload/libdynload_s.a
moar::make=make
moar::ccinstflags=-fsanitize=address
moar::ldflags= -O3 -DNDEBUG 
-Wl,-rpath,"//Users/andrewbuchanan/.rakudobrew/moar-nom/install/lib" 
-Wl,-rpath,"/Users/andrewbuchanan/.rakudobrew/moar-nom/install/share/perl6/site/lib"
moar::crossconf=
moar::obj=.o
moar::usrlibs[0]=pthread
moar::dlobjects=
moar::defs[0]=_DARWIN_USE_64_BIT_INODE=1
moar::cppout=>
moar::ccoptiflags=-O3 -DNDEBUG
moar::asmswitch=-S
moar::ldoptiflags=-O3 -DNDEBUG
moar::mkflags=
moar::moar=libmoar.dylib
moar::version=2016.09
moar::dcclean=cd 3rdparty/dyncall && $(MAKE) -f Makefile clean
moar::moarshared=-install_name 
"/Users/andrewbuchanan/.rakudobrew/moar-nom/install/lib/libmoar.dylib"
moar::sharule=$(AR) $(ARFLAGS) $@ 3rdparty/sha1/*.o
moar::ccwarnflags=-Wno-logical-op-parentheses
moar::jit=$(JIT_POSIX_X64)
moar::moardll=libmoar.dylib
moar::asm=.s
moar::mknoisy=ifneq ($(NOISY), 1)MSG = @echoCMD = @NOOUT = > /dev/nullNOERR = 
2> /dev/nullendif
moar::dclib=3rdparty/dyncall/dyncall/libdyncall_s.a
moar::ccdefflags=-D_DARWIN_USE_64_BIT_INODE=1
moar::cc=clang
moar::exe=
moar::lddir=-L
moar::uvlib=3rdparty/libuv/libuv.a
moar::dllib=3rdparty/dyncall/dynload/libdynload_s.a
moar::shaincludedir=3rdparty/sha1
moar::versionmajor=2016
moar::cppswitch=-E
moar::can_unaligned_int64=1
moar::lua=./3rdparty/dynasm/minilua
moar::dcobjects=
moar::cancgoto=1
moar::ldlibs=-lpthread
moar::mainlibs=-L. -lmoar
moar::nativecall_backend=dyncall
moar::objflags=-DMVM_BUILD_SHARED
moar::versionpatch=0
moar::laoclean=cd 3rdparty/libatomic_ops/src && $(MAKE) distclean
moar::versionminor=09
moar::ccmiscflags=-fno-omit-frame-pointer -fno-optimize-sibling-calls
moar::install=  $(MKPATH) $(DESTDIR)$(PREFIX)/include/libuv     $(CP) 
3rdparty/libuv/include/*.h $(DESTDIR)$(PREFIX)/include/libuv      $(MKPATH) 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/armcc    $(MKPATH) 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/gcc      $(MKPATH) 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/hpc      $(MKPATH) 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/ibmc     $(MKPATH) 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/icc      $(MKPATH) 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/loadstore        
$(MKPATH) $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/msftc    
$(MKPATH) $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/sunc     
$(CP) 3rdparty/libatomic_ops/src/*.h $(DESTDIR)$(PREFIX)/include/libatomic_ops  
$(CP) 3rdparty/libatomic_ops/src/atomic_ops/*.h 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops    $(CP) 
3rdparty/libatomic_ops/src/atomic_ops/sysdeps/*.h 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps    $(CP) 
3rdparty/libatomic_ops/src/atomic_ops/sysdeps/armcc/*.h 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/armcc        $(CP) 
3rdparty/libatomic_ops/src/atomic_ops/sysdeps/gcc/*.h 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/gcc    $(CP) 
3rdparty/libatomic_ops/src/atomic_ops/sysdeps/hpc/*.h 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/hpc    $(CP) 
3rdparty/libatomic_ops/src/atomic_ops/sysdeps/ibmc/*.h 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/ibmc  $(CP) 
3rdparty/libatomic_ops/src/atomic_ops/sysdeps/icc/*.h 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/icc    $(CP) 
3rdparty/libatomic_ops/src/atomic_ops/sysdeps/loadstore/*.h 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/loadstore        
$(CP) 3rdparty/libatomic_ops/src/atomic_ops/sysdeps/msftc/*.h 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/msftc        $(CP) 
3rdparty/libatomic_ops/src/atomic_ops/sysdeps/sunc/*.h 
$(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/sunc  $(MKPATH) 
$(DESTDIR)$(PREFIX)/include/libtommath        $(CP) 3rdparty/libtommath/*.h 
$(DESTDIR)$(PREFIX)/include/libtommath    $(MKPATH) 
$(DESTDIR)$(PREFIX)/include/dyncall   $(CP) 3rdparty/dyncall/dynload/*.h 
$(DESTDIR)$(PREFIX)/include/dyncall  $(CP) 3rdparty/dyncall/dyncall/*.h 
$(DESTDIR)$(PREFIX)/include/dyncall  $(CP) 3rdparty/dyncall/dyncallback/*.h 
$(DESTDIR)$(PREFIX)/include/dyncall
moar::laoobjects=
moar::mtclean=$(RM) 3rdparty/tinymt/libtinymt.a 3rdparty/tinymt/*.o
moar::rm=rm -f
moar::uvclean=$(RM) 3rdparty/libuv/libuv.a $(UV_DARWIN)
moar::sharedlib=libmoar.dylib
moar::dllexport=__attribute__ ((visibility ("default")))
moar::shalib=3rdparty/sha1/libsha1.a
moar::arout=
moar::lddebugflags=-g3
moar::osname=darwin
moar::prefix=/Users/andrewbuchanan/.rakudobrew/moar-nom/install
moar::uvobjects=$(UV_DARWIN)
moar::dcblib=3rdparty/dyncall/dyncallback/libdyncallback_s.a
moar::bindir=/Users/andrewbuchanan/.rakudobrew/moar-nom/install/bin
moar::asmout=-o
moar::havebooltype=1
moar::laorule=cd 3rdparty/libatomic_ops && CC='$(CC)' CFLAGS='$(CFLAGS)' 
./configure  && cd src && $(MAKE) && cd ..
moar::os=darwin
moar::sh=/bin/sh
moar::arflags=rcs
moar::ldshared=-dynamiclib
moar::impinst=libmoar.dylib
moar::ldinstflags=-fsanitize=address
moar::ldmiscflags=
moar::ldsys=-l%s
moar::platform=$(PLATFORM_POSIX)
moar::ccswitch=-c
moar::formatattribute=__attribute__((format(X, Y, Z)))
moar::tomobjects=3rdparty/libtommath/bn_error.o 
3rdparty/libtommath/bn_fast_mp_invmod.o 
3rdparty/libtommath/bn_fast_mp_montgomery_reduce.o 
3rdparty/libtommath/bn_fast_s_mp_mul_digs.o 
3rdparty/libtommath/bn_fast_s_mp_mul_high_digs.o 
3rdparty/libtommath/bn_fast_s_mp_sqr.o 3rdparty/libtommath/bn_mp_2expt.o 
3rdparty/libtommath/bn_mp_abs.o 3rdparty/libtommath/bn_mp_add.o 
3rdparty/libtommath/bn_mp_add_d.o 3rdparty/libtommath/bn_mp_addmod.o 
3rdparty/libtommath/bn_mp_and.o 3rdparty/libtommath/bn_mp_clamp.o 
3rdparty/libtommath/bn_mp_clear.o 3rdparty/libtommath/bn_mp_clear_multi.o 
3rdparty/libtommath/bn_mp_cmp.o 3rdparty/libtommath/bn_mp_cmp_d.o 
3rdparty/libtommath/bn_mp_cmp_mag.o 3rdparty/libtommath/bn_mp_cnt_lsb.o 
3rdparty/libtommath/bn_mp_copy.o 3rdparty/libtommath/bn_mp_count_bits.o 
3rdparty/libtommath/bn_mp_div.o 3rdparty/libtommath/bn_mp_div_2.o 
3rdparty/libtommath/bn_mp_div_2d.o 3rdparty/libtommath/bn_mp_div_3.o 
3rdparty/libtommath/bn_mp_div_d.o 3rdparty/libtommath/bn_mp_dr_is_modulus.o 
3rdparty/libtommath/bn_mp_dr_reduce.o 3rdparty/libtommath/bn_mp_dr_setup.o 
3rdparty/libtommath/bn_mp_exch.o 3rdparty/libtommath/bn_mp_expt_d.o 
3rdparty/libtommath/bn_mp_exptmod.o 3rdparty/libtommath/bn_mp_exptmod_fast.o 
3rdparty/libtommath/bn_mp_exteuclid.o 3rdparty/libtommath/bn_mp_fread.o 
3rdparty/libtommath/bn_mp_fwrite.o 3rdparty/libtommath/bn_mp_gcd.o 
3rdparty/libtommath/bn_mp_get_int.o 3rdparty/libtommath/bn_mp_get_long.o 
3rdparty/libtommath/bn_mp_grow.o 3rdparty/libtommath/bn_mp_init.o 
3rdparty/libtommath/bn_mp_init_copy.o 3rdparty/libtommath/bn_mp_init_multi.o 
3rdparty/libtommath/bn_mp_init_set.o 3rdparty/libtommath/bn_mp_init_set_int.o 
3rdparty/libtommath/bn_mp_init_size.o 3rdparty/libtommath/bn_mp_invmod.o 
3rdparty/libtommath/bn_mp_invmod_slow.o 3rdparty/libtommath/bn_mp_is_square.o 
3rdparty/libtommath/bn_mp_jacobi.o 3rdparty/libtommath/bn_mp_karatsuba_mul.o 
3rdparty/libtommath/bn_mp_karatsuba_sqr.o 3rdparty/libtommath/bn_mp_lcm.o 
3rdparty/libtommath/bn_mp_lshd.o 3rdparty/libtommath/bn_mp_mod.o 
3rdparty/libtommath/bn_mp_mod_2d.o 3rdparty/libtommath/bn_mp_mod_d.o 
3rdparty/libtommath/bn_mp_montgomery_calc_normalization.o 
3rdparty/libtommath/bn_mp_montgomery_reduce.o 
3rdparty/libtommath/bn_mp_montgomery_setup.o 3rdparty/libtommath/bn_mp_mul.o 
3rdparty/libtommath/bn_mp_mul_2.o 3rdparty/libtommath/bn_mp_mul_2d.o 
3rdparty/libtommath/bn_mp_mul_d.o 3rdparty/libtommath/bn_mp_mulmod.o 
3rdparty/libtommath/bn_mp_n_root.o 3rdparty/libtommath/bn_mp_neg.o 
3rdparty/libtommath/bn_mp_or.o 3rdparty/libtommath/bn_mp_prime_fermat.o 
3rdparty/libtommath/bn_mp_prime_is_divisible.o 
3rdparty/libtommath/bn_mp_prime_is_prime.o 
3rdparty/libtommath/bn_mp_prime_miller_rabin.o 
3rdparty/libtommath/bn_mp_prime_next_prime.o 
3rdparty/libtommath/bn_mp_prime_rabin_miller_trials.o 
3rdparty/libtommath/bn_mp_prime_random_ex.o 
3rdparty/libtommath/bn_mp_radix_size.o 3rdparty/libtommath/bn_mp_radix_smap.o 
3rdparty/libtommath/bn_mp_rand.o 3rdparty/libtommath/bn_mp_read_radix.o 
3rdparty/libtommath/bn_mp_read_signed_bin.o 
3rdparty/libtommath/bn_mp_read_unsigned_bin.o 
3rdparty/libtommath/bn_mp_reduce.o 3rdparty/libtommath/bn_mp_reduce_2k.o 
3rdparty/libtommath/bn_mp_reduce_2k_l.o 
3rdparty/libtommath/bn_mp_reduce_2k_setup.o 
3rdparty/libtommath/bn_mp_reduce_2k_setup_l.o 
3rdparty/libtommath/bn_mp_reduce_is_2k.o 
3rdparty/libtommath/bn_mp_reduce_is_2k_l.o 
3rdparty/libtommath/bn_mp_reduce_setup.o 3rdparty/libtommath/bn_mp_rshd.o 
3rdparty/libtommath/bn_mp_set.o 3rdparty/libtommath/bn_mp_set_int.o 
3rdparty/libtommath/bn_mp_set_long.o 3rdparty/libtommath/bn_mp_shrink.o 
3rdparty/libtommath/bn_mp_signed_bin_size.o 3rdparty/libtommath/bn_mp_sqr.o 
3rdparty/libtommath/bn_mp_sqrmod.o 3rdparty/libtommath/bn_mp_sqrt.o 
3rdparty/libtommath/bn_mp_sub.o 3rdparty/libtommath/bn_mp_sub_d.o 
3rdparty/libtommath/bn_mp_submod.o 3rdparty/libtommath/bn_mp_to_signed_bin.o 
3rdparty/libtommath/bn_mp_to_signed_bin_n.o 
3rdparty/libtommath/bn_mp_to_unsigned_bin.o 
3rdparty/libtommath/bn_mp_to_unsigned_bin_n.o 
3rdparty/libtommath/bn_mp_toom_mul.o 3rdparty/libtommath/bn_mp_toom_sqr.o 
3rdparty/libtommath/bn_mp_toradix.o 3rdparty/libtommath/bn_mp_toradix_n.o 
3rdparty/libtommath/bn_mp_unsigned_bin_size.o 3rdparty/libtommath/bn_mp_xor.o 
3rdparty/libtommath/bn_mp_zero.o 3rdparty/libtommath/bn_prime_tab.o 
3rdparty/libtommath/bn_reverse.o 3rdparty/libtommath/bn_s_mp_add.o 
3rdparty/libtommath/bn_s_mp_exptmod.o 3rdparty/libtommath/bn_s_mp_mul_digs.o 
3rdparty/libtommath/bn_s_mp_mul_high_digs.o 3rdparty/libtommath/bn_s_mp_sqr.o 
3rdparty/libtommath/bn_s_mp_sub.o 3rdparty/libtommath/bncore.o
perl6::language_version=6.c
perl6::codename=
perl6::release-number=
perl6::build-date=2016-09-19T13:43:11Z
perl6::version=2016.09-15-g4b1864b
perl6::implementation=Rakudo

Reply via email to