racc 1.4.14-java → 1.4.15-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
 - data/Manifest.txt +50 -0
 - data/ext/racc/com/headius/racc/Cparse.java +66 -23
 - data/ext/racc/cparse.c +1 -1
 - data/ext/racc/depend +1 -1
 - data/lib/racc/cparse-jruby.jar +0 -0
 - data/lib/racc/info.rb +2 -2
 - data/test/assets/bibtex.y +141 -0
 - data/test/assets/cadenza.y +170 -0
 - data/test/assets/cast.y +926 -0
 - data/test/assets/csspool.y +729 -0
 - data/test/assets/edtf.y +583 -0
 - data/test/assets/huia.y +318 -0
 - data/test/assets/journey.y +47 -0
 - data/test/assets/liquor.y +313 -0
 - data/test/assets/machete.y +423 -0
 - data/test/assets/macruby.y +2197 -0
 - data/test/assets/mediacloth.y +599 -0
 - data/test/assets/mof.y +649 -0
 - data/test/assets/namae.y +302 -0
 - data/test/assets/nasl.y +626 -0
 - data/test/assets/nokogiri-css.y +255 -0
 - data/test/assets/opal.y +1807 -0
 - data/test/assets/php_serialization.y +98 -0
 - data/test/assets/rdblockparser.y +576 -0
 - data/test/assets/rdinlineparser.y +561 -0
 - data/test/assets/riml.y +665 -0
 - data/test/assets/ruby18.y +1943 -0
 - data/test/assets/ruby19.y +2174 -0
 - data/test/assets/ruby20.y +2350 -0
 - data/test/assets/ruby21.y +2359 -0
 - data/test/assets/ruby22.y +2381 -0
 - data/test/assets/tp_plus.y +622 -0
 - data/test/assets/twowaysql.y +278 -0
 - data/test/helper.rb +50 -34
 - data/test/regress/bibtex +474 -0
 - data/test/regress/cadenza +796 -0
 - data/test/regress/cast +3425 -0
 - data/test/regress/csspool +2318 -0
 - data/test/regress/edtf +1794 -0
 - data/test/regress/huia +1392 -0
 - data/test/regress/journey +222 -0
 - data/test/regress/liquor +885 -0
 - data/test/regress/machete +833 -0
 - data/test/regress/mediacloth +1463 -0
 - data/test/regress/mof +1368 -0
 - data/test/regress/namae +634 -0
 - data/test/regress/nasl +2058 -0
 - data/test/regress/nokogiri-css +836 -0
 - data/test/regress/opal +6429 -0
 - data/test/regress/php_serialization +336 -0
 - data/test/regress/rdblockparser +1061 -0
 - data/test/regress/rdinlineparser +1243 -0
 - data/test/regress/riml +3297 -0
 - data/test/regress/ruby18 +6351 -0
 - data/test/regress/ruby22 +7456 -0
 - data/test/regress/tp_plus +1933 -0
 - data/test/regress/twowaysql +556 -0
 - data/test/test_racc_command.rb +177 -0
 - metadata +80 -25
 - data/.gemtest +0 -0
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: d14cd257f2c716b0fdc3bfb7fba4d61a7c533c479a1808799ae92c50e754d7e1
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 057103c586a4caaa16d85a54ae1fa43899502cf55477a7e0f11b0f212f2706f8
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: c563570f7170d6635c9d2c823eba49c1f38a5166f4b76bd60a370398ebfa8b965da36317534681e4e12ce586eaa9adce890254788a45294fb24892987bc587d8
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 1a7738695939d89c197eff4bd8ee6dc6cb04e8fea7a3ae8370b22ad1ba05da7bb6b9707105b8e3a21fe985e64de2c3d39e2ae5db9e0d6a28839830cf0b058079
         
     | 
    
        data/Manifest.txt
    CHANGED
    
    | 
         @@ -56,36 +56,86 @@ sample/yyerr.y 
     | 
|
| 
       56 
56 
     | 
    
         
             
            setup.rb
         
     | 
| 
       57 
57 
     | 
    
         
             
            tasks/doc.rb
         
     | 
| 
       58 
58 
     | 
    
         
             
            tasks/email.rb
         
     | 
| 
      
 59 
     | 
    
         
            +
            test/assets/bibtex.y
         
     | 
| 
      
 60 
     | 
    
         
            +
            test/assets/cadenza.y
         
     | 
| 
      
 61 
     | 
    
         
            +
            test/assets/cast.y
         
     | 
| 
       59 
62 
     | 
    
         
             
            test/assets/chk.y
         
     | 
| 
       60 
63 
     | 
    
         
             
            test/assets/conf.y
         
     | 
| 
      
 64 
     | 
    
         
            +
            test/assets/csspool.y
         
     | 
| 
       61 
65 
     | 
    
         
             
            test/assets/digraph.y
         
     | 
| 
       62 
66 
     | 
    
         
             
            test/assets/echk.y
         
     | 
| 
      
 67 
     | 
    
         
            +
            test/assets/edtf.y
         
     | 
| 
       63 
68 
     | 
    
         
             
            test/assets/err.y
         
     | 
| 
       64 
69 
     | 
    
         
             
            test/assets/error_recovery.y
         
     | 
| 
       65 
70 
     | 
    
         
             
            test/assets/expect.y
         
     | 
| 
       66 
71 
     | 
    
         
             
            test/assets/firstline.y
         
     | 
| 
      
 72 
     | 
    
         
            +
            test/assets/huia.y
         
     | 
| 
       67 
73 
     | 
    
         
             
            test/assets/ichk.y
         
     | 
| 
       68 
74 
     | 
    
         
             
            test/assets/intp.y
         
     | 
| 
      
 75 
     | 
    
         
            +
            test/assets/journey.y
         
     | 
| 
      
 76 
     | 
    
         
            +
            test/assets/liquor.y
         
     | 
| 
      
 77 
     | 
    
         
            +
            test/assets/machete.y
         
     | 
| 
      
 78 
     | 
    
         
            +
            test/assets/macruby.y
         
     | 
| 
      
 79 
     | 
    
         
            +
            test/assets/mediacloth.y
         
     | 
| 
       69 
80 
     | 
    
         
             
            test/assets/mailp.y
         
     | 
| 
      
 81 
     | 
    
         
            +
            test/assets/mof.y
         
     | 
| 
      
 82 
     | 
    
         
            +
            test/assets/namae.y
         
     | 
| 
      
 83 
     | 
    
         
            +
            test/assets/nasl.y
         
     | 
| 
       70 
84 
     | 
    
         
             
            test/assets/newsyn.y
         
     | 
| 
       71 
85 
     | 
    
         
             
            test/assets/noend.y
         
     | 
| 
      
 86 
     | 
    
         
            +
            test/assets/nokogiri-css.y
         
     | 
| 
       72 
87 
     | 
    
         
             
            test/assets/nonass.y
         
     | 
| 
       73 
88 
     | 
    
         
             
            test/assets/normal.y
         
     | 
| 
       74 
89 
     | 
    
         
             
            test/assets/norule.y
         
     | 
| 
       75 
90 
     | 
    
         
             
            test/assets/nullbug1.y
         
     | 
| 
       76 
91 
     | 
    
         
             
            test/assets/nullbug2.y
         
     | 
| 
      
 92 
     | 
    
         
            +
            test/assets/opal.y
         
     | 
| 
       77 
93 
     | 
    
         
             
            test/assets/opt.y
         
     | 
| 
       78 
94 
     | 
    
         
             
            test/assets/percent.y
         
     | 
| 
      
 95 
     | 
    
         
            +
            test/assets/php_serialization.y
         
     | 
| 
      
 96 
     | 
    
         
            +
            test/assets/rdblockparser.y
         
     | 
| 
      
 97 
     | 
    
         
            +
            test/assets/rdinlineparser.y
         
     | 
| 
       79 
98 
     | 
    
         
             
            test/assets/recv.y
         
     | 
| 
      
 99 
     | 
    
         
            +
            test/assets/riml.y
         
     | 
| 
       80 
100 
     | 
    
         
             
            test/assets/rrconf.y
         
     | 
| 
      
 101 
     | 
    
         
            +
            test/assets/ruby18.y
         
     | 
| 
      
 102 
     | 
    
         
            +
            test/assets/ruby19.y
         
     | 
| 
      
 103 
     | 
    
         
            +
            test/assets/ruby20.y
         
     | 
| 
      
 104 
     | 
    
         
            +
            test/assets/ruby21.y
         
     | 
| 
      
 105 
     | 
    
         
            +
            test/assets/ruby22.y
         
     | 
| 
       81 
106 
     | 
    
         
             
            test/assets/scan.y
         
     | 
| 
       82 
107 
     | 
    
         
             
            test/assets/syntax.y
         
     | 
| 
      
 108 
     | 
    
         
            +
            test/assets/tp_plus.y
         
     | 
| 
      
 109 
     | 
    
         
            +
            test/assets/twowaysql.y
         
     | 
| 
       83 
110 
     | 
    
         
             
            test/assets/unterm.y
         
     | 
| 
       84 
111 
     | 
    
         
             
            test/assets/useless.y
         
     | 
| 
       85 
112 
     | 
    
         
             
            test/assets/yyerr.y
         
     | 
| 
       86 
113 
     | 
    
         
             
            test/bench.y
         
     | 
| 
       87 
114 
     | 
    
         
             
            test/helper.rb
         
     | 
| 
       88 
115 
     | 
    
         
             
            test/infini.y
         
     | 
| 
      
 116 
     | 
    
         
            +
            test/regress/bibtex
         
     | 
| 
      
 117 
     | 
    
         
            +
            test/regress/cadenza
         
     | 
| 
      
 118 
     | 
    
         
            +
            test/regress/cast
         
     | 
| 
      
 119 
     | 
    
         
            +
            test/regress/csspool
         
     | 
| 
      
 120 
     | 
    
         
            +
            test/regress/edtf
         
     | 
| 
      
 121 
     | 
    
         
            +
            test/regress/journey
         
     | 
| 
      
 122 
     | 
    
         
            +
            test/regress/huia
         
     | 
| 
      
 123 
     | 
    
         
            +
            test/regress/liquor
         
     | 
| 
      
 124 
     | 
    
         
            +
            test/regress/machete
         
     | 
| 
      
 125 
     | 
    
         
            +
            test/regress/mediacloth
         
     | 
| 
      
 126 
     | 
    
         
            +
            test/regress/mof
         
     | 
| 
      
 127 
     | 
    
         
            +
            test/regress/namae
         
     | 
| 
      
 128 
     | 
    
         
            +
            test/regress/nasl
         
     | 
| 
      
 129 
     | 
    
         
            +
            test/regress/nokogiri-css
         
     | 
| 
      
 130 
     | 
    
         
            +
            test/regress/opal
         
     | 
| 
      
 131 
     | 
    
         
            +
            test/regress/php_serialization
         
     | 
| 
      
 132 
     | 
    
         
            +
            test/regress/rdblockparser
         
     | 
| 
      
 133 
     | 
    
         
            +
            test/regress/rdinlineparser
         
     | 
| 
      
 134 
     | 
    
         
            +
            test/regress/riml
         
     | 
| 
      
 135 
     | 
    
         
            +
            test/regress/ruby18
         
     | 
| 
      
 136 
     | 
    
         
            +
            test/regress/ruby22
         
     | 
| 
      
 137 
     | 
    
         
            +
            test/regress/tp_plus
         
     | 
| 
      
 138 
     | 
    
         
            +
            test/regress/twowaysql
         
     | 
| 
       89 
139 
     | 
    
         
             
            test/scandata/brace
         
     | 
| 
       90 
140 
     | 
    
         
             
            test/scandata/gvar
         
     | 
| 
       91 
141 
     | 
    
         
             
            test/scandata/normal
         
     | 
| 
         @@ -1,3 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /*
         
     | 
| 
      
 2 
     | 
    
         
            +
                Cparse.java -- Racc Runtime Core for JRuby
         
     | 
| 
      
 3 
     | 
    
         
            +
                
         
     | 
| 
      
 4 
     | 
    
         
            +
                Copyright (c) 2016 Charles Oliver Nutter <headius@headius.com>
         
     | 
| 
      
 5 
     | 
    
         
            +
                
         
     | 
| 
      
 6 
     | 
    
         
            +
                Ported from and distributed under the same licence as cparse.c
         
     | 
| 
      
 7 
     | 
    
         
            +
                
         
     | 
| 
      
 8 
     | 
    
         
            +
                cparse.c -- Racc Runtime Core
         
     | 
| 
      
 9 
     | 
    
         
            +
              
         
     | 
| 
      
 10 
     | 
    
         
            +
                Copyright (c) 1999-2006 Minero Aoki
         
     | 
| 
      
 11 
     | 
    
         
            +
              
         
     | 
| 
      
 12 
     | 
    
         
            +
                This library is free software.
         
     | 
| 
      
 13 
     | 
    
         
            +
                You can distribute/modify this program under the same terms of ruby.
         
     | 
| 
      
 14 
     | 
    
         
            +
            */
         
     | 
| 
       1 
15 
     | 
    
         
             
            package com.headius.racc;
         
     | 
| 
       2 
16 
     | 
    
         | 
| 
       3 
17 
     | 
    
         
             
            import org.jruby.Ruby;
         
     | 
| 
         @@ -7,6 +21,7 @@ import org.jruby.RubyClass; 
     | 
|
| 
       7 
21 
     | 
    
         
             
            import org.jruby.RubyContinuation;
         
     | 
| 
       8 
22 
     | 
    
         
             
            import org.jruby.RubyFixnum;
         
     | 
| 
       9 
23 
     | 
    
         
             
            import org.jruby.RubyHash;
         
     | 
| 
      
 24 
     | 
    
         
            +
            import org.jruby.RubyKernel;
         
     | 
| 
       10 
25 
     | 
    
         
             
            import org.jruby.RubyModule;
         
     | 
| 
       11 
26 
     | 
    
         
             
            import org.jruby.RubyNumeric;
         
     | 
| 
       12 
27 
     | 
    
         
             
            import org.jruby.RubyObject;
         
     | 
| 
         @@ -24,13 +39,14 @@ import org.jruby.runtime.CallSite; 
     | 
|
| 
       24 
39 
     | 
    
         
             
            import org.jruby.runtime.Helpers;
         
     | 
| 
       25 
40 
     | 
    
         
             
            import org.jruby.runtime.MethodIndex;
         
     | 
| 
       26 
41 
     | 
    
         
             
            import org.jruby.runtime.ObjectAllocator;
         
     | 
| 
      
 42 
     | 
    
         
            +
            import org.jruby.runtime.Signature;
         
     | 
| 
       27 
43 
     | 
    
         
             
            import org.jruby.runtime.ThreadContext;
         
     | 
| 
       28 
44 
     | 
    
         
             
            import org.jruby.runtime.Visibility;
         
     | 
| 
       29 
45 
     | 
    
         
             
            import org.jruby.runtime.builtin.IRubyObject;
         
     | 
| 
       30 
46 
     | 
    
         
             
            import org.jruby.runtime.load.Library;
         
     | 
| 
       31 
47 
     | 
    
         | 
| 
       32 
48 
     | 
    
         
             
            public class Cparse implements Library {
         
     | 
| 
       33 
     | 
    
         
            -
                public static final String RACC_VERSION = "1.4. 
     | 
| 
      
 49 
     | 
    
         
            +
                public static final String RACC_VERSION = "1.4.15"; // TODO: parse from Cparse.c
         
     | 
| 
       34 
50 
     | 
    
         | 
| 
       35 
51 
     | 
    
         
             
                public enum TokenType {
         
     | 
| 
       36 
52 
     | 
    
         
             
                    DEFAULT(-1),
         
     | 
| 
         @@ -233,10 +249,6 @@ public class Cparse implements Library { 
     | 
|
| 
       233 
249 
     | 
    
         
             
                        shift(context, act, tok, val);
         
     | 
| 
       234 
250 
     | 
    
         
             
                    }
         
     | 
| 
       235 
251 
     | 
    
         | 
| 
       236 
     | 
    
         
            -
                    private int REDUCE(ThreadContext context, int act) {
         
     | 
| 
       237 
     | 
    
         
            -
                        return reduce(context, act);
         
     | 
| 
       238 
     | 
    
         
            -
                    }
         
     | 
| 
       239 
     | 
    
         
            -
             
     | 
| 
       240 
252 
     | 
    
         
             
                    public void parse_main(ThreadContext context, IRubyObject tok, IRubyObject val, boolean resume) {
         
     | 
| 
       241 
253 
     | 
    
         
             
                        Ruby runtime = context.runtime;
         
     | 
| 
       242 
254 
     | 
    
         | 
| 
         @@ -267,7 +279,7 @@ public class Cparse implements Library { 
     | 
|
| 
       267 
279 
     | 
    
         
             
                                    i = assert_integer(tmp);
         
     | 
| 
       268 
280 
     | 
    
         | 
| 
       269 
281 
     | 
    
         
             
                                    D_printf("read_next=%d\n", read_next);
         
     | 
| 
       270 
     | 
    
         
            -
                                    if (read_next && (this.t 
     | 
| 
      
 282 
     | 
    
         
            +
                                    if (read_next && (!this.t.equals(vFINAL_TOKEN))) {
         
     | 
| 
       271 
283 
     | 
    
         
             
                                        if (this.lex_is_iterator) {
         
     | 
| 
       272 
284 
     | 
    
         
             
                                            D_puts("resuming...");
         
     | 
| 
       273 
285 
     | 
    
         
             
                                            if (this.fin != 0) throw runtime.newArgumentError("token given after EOF");
         
     | 
| 
         @@ -354,7 +366,21 @@ public class Cparse implements Library { 
     | 
|
| 
       354 
366 
     | 
    
         
             
                                    }
         
     | 
| 
       355 
367 
     | 
    
         
             
                                    else if (act < 0 && act > -(this.reduce_n)) {
         
     | 
| 
       356 
368 
     | 
    
         
             
                                        D_puts("reduce");
         
     | 
| 
       357 
     | 
    
         
            -
                                        REDUCE 
     | 
| 
      
 369 
     | 
    
         
            +
                                        { // macro REDUCE
         
     | 
| 
      
 370 
     | 
    
         
            +
                                            switch (reduce(context, act)) {
         
     | 
| 
      
 371 
     | 
    
         
            +
                                                case 0: /* normal */
         
     | 
| 
      
 372 
     | 
    
         
            +
                                                    break;
         
     | 
| 
      
 373 
     | 
    
         
            +
                                                case 1: /* yyerror */
         
     | 
| 
      
 374 
     | 
    
         
            +
                                                    branch = USER_YYERROR;
         
     | 
| 
      
 375 
     | 
    
         
            +
                                                    continue BRANCH;
         
     | 
| 
      
 376 
     | 
    
         
            +
                                                case 2: /* yyaccept */
         
     | 
| 
      
 377 
     | 
    
         
            +
                                                    D_puts("u accept");
         
     | 
| 
      
 378 
     | 
    
         
            +
                                                    branch = ACCEPT;
         
     | 
| 
      
 379 
     | 
    
         
            +
                                                    continue BRANCH;
         
     | 
| 
      
 380 
     | 
    
         
            +
                                                default:
         
     | 
| 
      
 381 
     | 
    
         
            +
                                                    break;
         
     | 
| 
      
 382 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 383 
     | 
    
         
            +
                                        }
         
     | 
| 
       358 
384 
     | 
    
         
             
                                    }
         
     | 
| 
       359 
385 
     | 
    
         
             
                                    else if (act == -(this.reduce_n)) {
         
     | 
| 
       360 
386 
     | 
    
         
             
                                        branch = ERROR; continue BRANCH;
         
     | 
| 
         @@ -367,6 +393,7 @@ public class Cparse implements Library { 
     | 
|
| 
       367 
393 
     | 
    
         
             
                                        throw runtime.newRaiseException(RaccBug, "[Cparse Bug] unknown act value " + act);
         
     | 
| 
       368 
394 
     | 
    
         
             
                                    }
         
     | 
| 
       369 
395 
     | 
    
         | 
| 
      
 396 
     | 
    
         
            +
                                    // fall through
         
     | 
| 
       370 
397 
     | 
    
         
             
                                case ERROR_RECOVERED:
         
     | 
| 
       371 
398 
     | 
    
         | 
| 
       372 
399 
     | 
    
         
             
                                    if (this.debug) {
         
     | 
| 
         @@ -389,9 +416,10 @@ public class Cparse implements Library { 
     | 
|
| 
       389 
416 
     | 
    
         
             
                                        call_onerror.call(context, this.parser, this.parser, this.t, val, this.vstack);
         
     | 
| 
       390 
417 
     | 
    
         
             
                                    }
         
     | 
| 
       391 
418 
     | 
    
         | 
| 
      
 419 
     | 
    
         
            +
                                    // fall through
         
     | 
| 
       392 
420 
     | 
    
         
             
                                case USER_YYERROR:
         
     | 
| 
       393 
421 
     | 
    
         
             
                                    if (this.errstatus == 3) {
         
     | 
| 
       394 
     | 
    
         
            -
                                        if (this.t 
     | 
| 
      
 422 
     | 
    
         
            +
                                        if (this.t.equals(vFINAL_TOKEN)) {
         
     | 
| 
       395 
423 
     | 
    
         
             
                                            this.retval = runtime.getFalse();
         
     | 
| 
       396 
424 
     | 
    
         
             
                                            this.fin = CP_FIN_EOT;
         
     | 
| 
       397 
425 
     | 
    
         
             
                                            return;
         
     | 
| 
         @@ -464,7 +492,21 @@ public class Cparse implements Library { 
     | 
|
| 
       464 
492 
     | 
    
         
             
                                    }
         
     | 
| 
       465 
493 
     | 
    
         
             
                                    else if (act < 0 && act > -(this.reduce_n)) {
         
     | 
| 
       466 
494 
     | 
    
         
             
                                        D_puts("e reduce");
         
     | 
| 
       467 
     | 
    
         
            -
                                        REDUCE 
     | 
| 
      
 495 
     | 
    
         
            +
                                        { // macro REDUCE
         
     | 
| 
      
 496 
     | 
    
         
            +
                                            switch (reduce(context, act)) {
         
     | 
| 
      
 497 
     | 
    
         
            +
                                                case 0: /* normal */
         
     | 
| 
      
 498 
     | 
    
         
            +
                                                    break;
         
     | 
| 
      
 499 
     | 
    
         
            +
                                                case 1: /* yyerror */
         
     | 
| 
      
 500 
     | 
    
         
            +
                                                    branch = USER_YYERROR;
         
     | 
| 
      
 501 
     | 
    
         
            +
                                                    continue BRANCH;
         
     | 
| 
      
 502 
     | 
    
         
            +
                                                case 2: /* yyaccept */
         
     | 
| 
      
 503 
     | 
    
         
            +
                                                    D_puts("u accept");
         
     | 
| 
      
 504 
     | 
    
         
            +
                                                    branch = ACCEPT;
         
     | 
| 
      
 505 
     | 
    
         
            +
                                                    continue BRANCH;
         
     | 
| 
      
 506 
     | 
    
         
            +
                                                default:
         
     | 
| 
      
 507 
     | 
    
         
            +
                                                    break;
         
     | 
| 
      
 508 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 509 
     | 
    
         
            +
                                        }
         
     | 
| 
       468 
510 
     | 
    
         
             
                                    }
         
     | 
| 
       469 
511 
     | 
    
         
             
                                    else if (act == this.shift_n) {
         
     | 
| 
       470 
512 
     | 
    
         
             
                                        D_puts("e accept");
         
     | 
| 
         @@ -489,17 +531,18 @@ public class Cparse implements Library { 
     | 
|
| 
       489 
531 
     | 
    
         
             
                    }
         
     | 
| 
       490 
532 
     | 
    
         | 
| 
       491 
533 
     | 
    
         
             
                    private int reduce(ThreadContext context, int act) {
         
     | 
| 
       492 
     | 
    
         
            -
                        IRubyObject code;
         
     | 
| 
       493 
534 
     | 
    
         
             
                        ruleno = -act * 3;
         
     | 
| 
       494 
535 
     | 
    
         
             
                        IRubyObject tag = context.runtime.newSymbol("racc_jump");
         
     | 
| 
       495 
     | 
    
         
            -
                         
     | 
| 
       496 
     | 
    
         
            -
             
     | 
| 
       497 
     | 
    
         
            -
             
     | 
| 
       498 
     | 
    
         
            -
             
     | 
| 
       499 
     | 
    
         
            -
             
     | 
| 
       500 
     | 
    
         
            -
             
     | 
| 
       501 
     | 
    
         
            -
             
     | 
| 
       502 
     | 
    
         
            -
             
     | 
| 
      
 536 
     | 
    
         
            +
                        IRubyObject code = RubyKernel.rbCatch19(context, this,
         
     | 
| 
      
 537 
     | 
    
         
            +
                                tag,
         
     | 
| 
      
 538 
     | 
    
         
            +
                                CallBlock19.newCallClosure(this, getMetaClass(), Signature.NO_ARGUMENTS,
         
     | 
| 
      
 539 
     | 
    
         
            +
                                        new BlockCallback() {
         
     | 
| 
      
 540 
     | 
    
         
            +
                                            @Override
         
     | 
| 
      
 541 
     | 
    
         
            +
                                            public IRubyObject call(ThreadContext context, IRubyObject[] args, Block block) {
         
     | 
| 
      
 542 
     | 
    
         
            +
                                                return reduce0(context);
         
     | 
| 
      
 543 
     | 
    
         
            +
                                            }
         
     | 
| 
      
 544 
     | 
    
         
            +
                                        }, context));
         
     | 
| 
      
 545 
     | 
    
         
            +
                        errstatus = assert_integer(parser.getInstanceVariable(ID_ERRSTATUS));
         
     | 
| 
       503 
546 
     | 
    
         
             
                        return assert_integer(code);
         
     | 
| 
       504 
547 
     | 
    
         
             
                    }
         
     | 
| 
       505 
548 
     | 
    
         | 
| 
         @@ -527,13 +570,13 @@ public class Cparse implements Library { 
     | 
|
| 
       527 
570 
     | 
    
         
             
                                    /* call action */
         
     | 
| 
       528 
571 
     | 
    
         
             
                                    if (len == 0) {
         
     | 
| 
       529 
572 
     | 
    
         
             
                                        tmp = context.nil;
         
     | 
| 
       530 
     | 
    
         
            -
                                        if (mid 
     | 
| 
      
 573 
     | 
    
         
            +
                                        if (!mid.equals(sym_noreduce))
         
     | 
| 
       531 
574 
     | 
    
         
             
                                            tmp_v = runtime.newArray();
         
     | 
| 
       532 
575 
     | 
    
         
             
                                        if (this.debug)
         
     | 
| 
       533 
576 
     | 
    
         
             
                                            tmp_t = runtime.newArray();
         
     | 
| 
       534 
577 
     | 
    
         
             
                                    }
         
     | 
| 
       535 
578 
     | 
    
         
             
                                    else {
         
     | 
| 
       536 
     | 
    
         
            -
                                        if (mid 
     | 
| 
      
 579 
     | 
    
         
            +
                                        if (!mid.equals(sym_noreduce)) {
         
     | 
| 
       537 
580 
     | 
    
         
             
                                            tmp_v = GET_TAIL(context, this.vstack, len);
         
     | 
| 
       538 
581 
     | 
    
         
             
                                            tmp = ((RubyArray)tmp_v).entry(0);
         
     | 
| 
       539 
582 
     | 
    
         
             
                                        }
         
     | 
| 
         @@ -547,7 +590,7 @@ public class Cparse implements Library { 
     | 
|
| 
       547 
590 
     | 
    
         
             
                                        }
         
     | 
| 
       548 
591 
     | 
    
         
             
                                        CUT_TAIL(context, this.state, len);
         
     | 
| 
       549 
592 
     | 
    
         
             
                                    }
         
     | 
| 
       550 
     | 
    
         
            -
                                    if (mid 
     | 
| 
      
 593 
     | 
    
         
            +
                                    if (!mid.equals(sym_noreduce)) {
         
     | 
| 
       551 
594 
     | 
    
         
             
                                        if (this.use_result_var) {
         
     | 
| 
       552 
595 
     | 
    
         
             
                                            tmp = Helpers.invoke(context, this.parser, mid.toString(), tmp_v, this.vstack, tmp);
         
     | 
| 
       553 
596 
     | 
    
         
             
                                        }
         
     | 
| 
         @@ -590,7 +633,7 @@ public class Cparse implements Library { 
     | 
|
| 
       590 
633 
     | 
    
         
             
                                        D_puts("(goto) check[i] == nil");
         
     | 
| 
       591 
634 
     | 
    
         
             
                                        branch = NOTFOUND; continue BRANCH;
         
     | 
| 
       592 
635 
     | 
    
         
             
                                    }
         
     | 
| 
       593 
     | 
    
         
            -
                                    if (tmp 
     | 
| 
      
 636 
     | 
    
         
            +
                                    if (!tmp.equals(runtime.newFixnum(k1))) {
         
     | 
| 
       594 
637 
     | 
    
         
             
                                        D_puts("(goto) check[i] != table[i]");
         
     | 
| 
       595 
638 
     | 
    
         
             
                                        branch = NOTFOUND; continue BRANCH;
         
     | 
| 
       596 
639 
     | 
    
         
             
                                    }
         
     | 
| 
         @@ -759,7 +802,7 @@ public class Cparse implements Library { 
     | 
|
| 
       759 
802 
     | 
    
         
             
                                }
         
     | 
| 
       760 
803 
     | 
    
         
             
                            }, context));
         
     | 
| 
       761 
804 
     | 
    
         
             
                        } catch (LexerUnroll maybeOurs) {
         
     | 
| 
       762 
     | 
    
         
            -
                            if (maybeOurs 
     | 
| 
      
 805 
     | 
    
         
            +
                            if (maybeOurs.equals(lexerUnroll)) {
         
     | 
| 
       763 
806 
     | 
    
         
             
                                return;
         
     | 
| 
       764 
807 
     | 
    
         
             
                            }
         
     | 
| 
       765 
808 
     | 
    
         
             
                        }
         
     | 
    
        data/ext/racc/cparse.c
    CHANGED
    
    
    
        data/ext/racc/depend
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            cparse.o: cparse.c $(hdrdir)/ruby.h $(topdir)/config.h $(hdrdir)/defines.h
         
     | 
| 
      
 1 
     | 
    
         
            +
            cparse.o: cparse.c $(hdrdir)/ruby/ruby.h $(topdir)/config.h $(hdrdir)/ruby/defines.h
         
     | 
    
        data/lib/racc/cparse-jruby.jar
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/lib/racc/info.rb
    CHANGED
    
    | 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #
         
     | 
| 
       2 
     | 
    
         
            -
            # $Id:  
     | 
| 
      
 2 
     | 
    
         
            +
            # $Id: 6c7f0a682cba7c1dce1b4e63faeca2b8c7cdf7c7 $
         
     | 
| 
       3 
3 
     | 
    
         
             
            #
         
     | 
| 
       4 
4 
     | 
    
         
             
            # Copyright (c) 1999-2006 Minero Aoki
         
     | 
| 
       5 
5 
     | 
    
         
             
            #
         
     | 
| 
         @@ -10,7 +10,7 @@ 
     | 
|
| 
       10 
10 
     | 
    
         
             
            #
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
            module Racc
         
     | 
| 
       13 
     | 
    
         
            -
              VERSION   = '1.4. 
     | 
| 
      
 13 
     | 
    
         
            +
              VERSION   = '1.4.15'
         
     | 
| 
       14 
14 
     | 
    
         
             
              Version = VERSION
         
     | 
| 
       15 
15 
     | 
    
         
             
              Copyright = 'Copyright (c) 1999-2006 Minero Aoki'
         
     | 
| 
       16 
16 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1,141 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #--
         
     | 
| 
      
 2 
     | 
    
         
            +
            # BibTeX-Ruby
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Copyright (C) 2010-2011  Sylvester Keil <http://sylvester.keil.or.at>
         
     | 
| 
      
 4 
     | 
    
         
            +
            #
         
     | 
| 
      
 5 
     | 
    
         
            +
            # This program is free software: you can redistribute it and/or modify
         
     | 
| 
      
 6 
     | 
    
         
            +
            # it under the terms of the GNU General Public License as published by
         
     | 
| 
      
 7 
     | 
    
         
            +
            # the Free Software Foundation, either version 3 of the License, or
         
     | 
| 
      
 8 
     | 
    
         
            +
            # (at your option) any later version.
         
     | 
| 
      
 9 
     | 
    
         
            +
            #
         
     | 
| 
      
 10 
     | 
    
         
            +
            # This program is distributed in the hope that it will be useful,
         
     | 
| 
      
 11 
     | 
    
         
            +
            # but WITHOUT ANY WARRANTY; without even the implied warranty of
         
     | 
| 
      
 12 
     | 
    
         
            +
            # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
         
     | 
| 
      
 13 
     | 
    
         
            +
            # GNU General Public License for more details.
         
     | 
| 
      
 14 
     | 
    
         
            +
            #
         
     | 
| 
      
 15 
     | 
    
         
            +
            # You should have received a copy of the GNU General Public License
         
     | 
| 
      
 16 
     | 
    
         
            +
            # along with this program.  If not, see <http://www.gnu.org/licenses/>.
         
     | 
| 
      
 17 
     | 
    
         
            +
            #++
         
     | 
| 
      
 18 
     | 
    
         
            +
            #
         
     | 
| 
      
 19 
     | 
    
         
            +
            # A BibTeX grammar for the parser generator +racc+
         
     | 
| 
      
 20 
     | 
    
         
            +
            #
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            # -*- racc -*-
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            class BibTeX::Parser
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            token AT COMMA COMMENT CONTENT ERROR EQ LBRACE META_CONTENT KEY
         
     | 
| 
      
 27 
     | 
    
         
            +
                  NAME NUMBER PREAMBLE RBRACE SHARP STRING STRING_LITERAL
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            expect 0
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            rule
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              bibliography : /* empty */                       { result = BibTeX::Bibliography.new(@options) }
         
     | 
| 
      
 34 
     | 
    
         
            +
                           | objects                           { result = val[0] }
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
              objects : object                                 { result = BibTeX::Bibliography.new(@options) << val[0] }
         
     | 
| 
      
 37 
     | 
    
         
            +
                      | objects object                         { result << val[1] }
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
              object : AT at_object                            { result = val[1] }
         
     | 
| 
      
 40 
     | 
    
         
            +
                     | META_CONTENT                            { result = BibTeX::MetaContent.new(val[0]) }
         
     | 
| 
      
 41 
     | 
    
         
            +
                     | ERROR                                   { result = BibTeX::Error.new(val[0]) }
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
              at_object : comment                              { result = val[0] }
         
     | 
| 
      
 44 
     | 
    
         
            +
                        | string                               { result = val[0] }
         
     | 
| 
      
 45 
     | 
    
         
            +
                        | preamble                             { result = val[0] }
         
     | 
| 
      
 46 
     | 
    
         
            +
                        | entry                                { result = val[0] }
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
              comment : COMMENT LBRACE content RBRACE          { result = BibTeX::Comment.new(val[2]) }
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              content : /* empty */                            { result = '' }
         
     | 
| 
      
 51 
     | 
    
         
            +
                      | CONTENT                                { result = val[0] }
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
              preamble : PREAMBLE LBRACE string_value RBRACE   { result = BibTeX::Preamble.new(val[2]) }
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
              string : STRING LBRACE string_assignment RBRACE  { result = BibTeX::String.new(val[2][0],val[2][1]); }
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
              string_assignment : NAME EQ string_value         { result = [val[0].downcase.to_sym, val[2]] }
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
              string_value : string_literal                    { result = [val[0]] }
         
     | 
| 
      
 60 
     | 
    
         
            +
                           | string_value SHARP string_literal { result << val[2] }
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
              string_literal : NAME                            { result = val[0].downcase.to_sym }
         
     | 
| 
      
 63 
     | 
    
         
            +
                             | LBRACE content RBRACE           { result = val[1] }
         
     | 
| 
      
 64 
     | 
    
         
            +
                             | STRING_LITERAL                  { result = val[0] }
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
              entry : entry_head assignments RBRACE            { result = val[0] << val[1] }
         
     | 
| 
      
 67 
     | 
    
         
            +
                    | entry_head assignments COMMA RBRACE      { result = val[0] << val[1] }
         
     | 
| 
      
 68 
     | 
    
         
            +
                    | entry_head RBRACE                        { result = val[0] }
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
              entry_head : NAME LBRACE opt_key                 { result = BibTeX::Entry.new(:bibtex_type => val[0].downcase.to_sym, :bibtex_key => val[2]) }
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
              opt_key :                                        { missing_key }
         
     | 
| 
      
 73 
     | 
    
         
            +
                      | KEY
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
              assignments : assignment                         { result = val[0] }
         
     | 
| 
      
 76 
     | 
    
         
            +
                          | assignments COMMA assignment       { result.merge!(val[2]) }
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
              assignment : NAME EQ value                       { result = { val[0].downcase.to_sym => val[2] } }
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
              value : string_value                             { result = val[0] }
         
     | 
| 
      
 81 
     | 
    
         
            +
                    | NUMBER                                   { result = val[0] }
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
            end
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
            ---- header
         
     | 
| 
      
 86 
     | 
    
         
            +
            require 'bibtex/lexer'
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            ---- inner
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
              attr_reader :lexer, :options
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
              @defaults = {
         
     | 
| 
      
 93 
     | 
    
         
            +
                :include => [:errors],
         
     | 
| 
      
 94 
     | 
    
         
            +
                :allow_missing_keys => false,
         
     | 
| 
      
 95 
     | 
    
         
            +
                :debug => false
         
     | 
| 
      
 96 
     | 
    
         
            +
              }.freeze
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
              class << self
         
     | 
| 
      
 99 
     | 
    
         
            +
                attr_reader :defaults
         
     | 
| 
      
 100 
     | 
    
         
            +
              end
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
              def initialize(options = {})
         
     | 
| 
      
 103 
     | 
    
         
            +
                @options = Parser.defaults.merge(options)
         
     | 
| 
      
 104 
     | 
    
         
            +
                @lexer = Lexer.new(@options)
         
     | 
| 
      
 105 
     | 
    
         
            +
              end
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
              def parse(input)
         
     | 
| 
      
 108 
     | 
    
         
            +
                @yydebug = debug?
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
                lexer.analyse(input)
         
     | 
| 
      
 111 
     | 
    
         
            +
                do_parse
         
     | 
| 
      
 112 
     | 
    
         
            +
                #yyparse(@lexer,:each)
         
     | 
| 
      
 113 
     | 
    
         
            +
              end
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
              def next_token
         
     | 
| 
      
 116 
     | 
    
         
            +
                lexer.next_token
         
     | 
| 
      
 117 
     | 
    
         
            +
              end
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
              def debug?
         
     | 
| 
      
 120 
     | 
    
         
            +
                options[:debug] || ENV['DEBUG']
         
     | 
| 
      
 121 
     | 
    
         
            +
              end
         
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
      
 123 
     | 
    
         
            +
              def allow_missing_keys?
         
     | 
| 
      
 124 
     | 
    
         
            +
                options[:allow_missing_keys]
         
     | 
| 
      
 125 
     | 
    
         
            +
              end
         
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
              def missing_key
         
     | 
| 
      
 128 
     | 
    
         
            +
                unless allow_missing_keys?
         
     | 
| 
      
 129 
     | 
    
         
            +
                  raise ParseError, "Failed to parse BibTeX entry: cite-key missing"
         
     | 
| 
      
 130 
     | 
    
         
            +
                end
         
     | 
| 
      
 131 
     | 
    
         
            +
              end
         
     | 
| 
      
 132 
     | 
    
         
            +
             
     | 
| 
      
 133 
     | 
    
         
            +
              def on_error(tid, val, vstack)
         
     | 
| 
      
 134 
     | 
    
         
            +
                message =
         
     | 
| 
      
 135 
     | 
    
         
            +
                  "Failed to parse BibTeX on value #{val.inspect} (#{token_to_str(tid) || '?'}) #{ vstack.inspect}"
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
                BibTeX.log.error message
         
     | 
| 
      
 138 
     | 
    
         
            +
                raise ParseError, message
         
     | 
| 
      
 139 
     | 
    
         
            +
              end
         
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
      
 141 
     | 
    
         
            +
            # -*- racc -*-
         
     |