logstash-core 7.4.2-java → 7.5.0-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.
@@ -44,7 +44,7 @@ module LogStashConfig
44
44
  if node_cache[:config].has_key?(index)
45
45
  cached = node_cache[:config][index]
46
46
  if cached
47
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
47
+ node_cache[:config][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
48
48
  @index = cached.interval.end
49
49
  end
50
50
  return cached
@@ -112,7 +112,7 @@ module LogStashConfig
112
112
  if node_cache[:comment].has_key?(index)
113
113
  cached = node_cache[:comment][index]
114
114
  if cached
115
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
115
+ node_cache[:comment][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
116
116
  @index = cached.interval.end
117
117
  end
118
118
  return cached
@@ -129,21 +129,22 @@ module LogStashConfig
129
129
  end
130
130
  s1 << r2
131
131
  if r2
132
- if has_terminal?("#", false, index)
133
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
134
- @index += 1
132
+ if (match_len = has_terminal?("#", false, index))
133
+ r4 = true
134
+ @index += match_len
135
135
  else
136
- terminal_parse_failure("#")
136
+ terminal_parse_failure('"#"')
137
137
  r4 = nil
138
138
  end
139
139
  s1 << r4
140
140
  if r4
141
141
  s5, i5 = [], index
142
142
  loop do
143
- if has_terminal?('\G[^\\r\\n]', true, index)
143
+ if has_terminal?(@regexps[gr = '\A[^\\r\\n]'] ||= Regexp.new(gr), :regexp, index)
144
144
  r6 = true
145
145
  @index += 1
146
146
  else
147
+ terminal_parse_failure('[^\\r\\n]')
147
148
  r6 = nil
148
149
  end
149
150
  if r6
@@ -155,11 +156,11 @@ module LogStashConfig
155
156
  r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
156
157
  s1 << r5
157
158
  if r5
158
- if has_terminal?("\r", false, index)
159
- r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
160
- @index += 1
159
+ if (match_len = has_terminal?("\r", false, index))
160
+ r8 = true
161
+ @index += match_len
161
162
  else
162
- terminal_parse_failure("\r")
163
+ terminal_parse_failure('"\\r"')
163
164
  r8 = nil
164
165
  end
165
166
  if r8
@@ -169,11 +170,11 @@ module LogStashConfig
169
170
  end
170
171
  s1 << r7
171
172
  if r7
172
- if has_terminal?("\n", false, index)
173
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
174
- @index += 1
173
+ if (match_len = has_terminal?("\n", false, index))
174
+ r9 = true
175
+ @index += match_len
175
176
  else
176
- terminal_parse_failure("\n")
177
+ terminal_parse_failure('"\\n"')
177
178
  r9 = nil
178
179
  end
179
180
  s1 << r9
@@ -211,7 +212,7 @@ module LogStashConfig
211
212
  if node_cache[:_].has_key?(index)
212
213
  cached = node_cache[:_][index]
213
214
  if cached
214
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
215
+ node_cache[:_][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
215
216
  @index = cached.interval.end
216
217
  end
217
218
  return cached
@@ -222,10 +223,12 @@ module LogStashConfig
222
223
  i1 = index
223
224
  r2 = _nt_comment
224
225
  if r2
226
+ r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
225
227
  r1 = r2
226
228
  else
227
229
  r3 = _nt_whitespace
228
230
  if r3
231
+ r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
229
232
  r1 = r3
230
233
  else
231
234
  @index = i1
@@ -250,7 +253,7 @@ module LogStashConfig
250
253
  if node_cache[:whitespace].has_key?(index)
251
254
  cached = node_cache[:whitespace][index]
252
255
  if cached
253
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
256
+ node_cache[:whitespace][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
254
257
  @index = cached.interval.end
255
258
  end
256
259
  return cached
@@ -258,10 +261,11 @@ module LogStashConfig
258
261
 
259
262
  s0, i0 = [], index
260
263
  loop do
261
- if has_terminal?('\G[ \\t\\r\\n]', true, index)
264
+ if has_terminal?(@regexps[gr = '\A[ \\t\\r\\n]'] ||= Regexp.new(gr), :regexp, index)
262
265
  r1 = true
263
266
  @index += 1
264
267
  else
268
+ terminal_parse_failure('[ \\t\\r\\n]')
265
269
  r1 = nil
266
270
  end
267
271
  if r1
@@ -312,7 +316,7 @@ module LogStashConfig
312
316
  if node_cache[:plugin_section].has_key?(index)
313
317
  cached = node_cache[:plugin_section][index]
314
318
  if cached
315
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
319
+ node_cache[:plugin_section][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
316
320
  @index = cached.interval.end
317
321
  end
318
322
  return cached
@@ -325,11 +329,11 @@ module LogStashConfig
325
329
  r2 = _nt__
326
330
  s0 << r2
327
331
  if r2
328
- if has_terminal?("{", false, index)
329
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
330
- @index += 1
332
+ if (match_len = has_terminal?("{", false, index))
333
+ r3 = true
334
+ @index += match_len
331
335
  else
332
- terminal_parse_failure("{")
336
+ terminal_parse_failure('"{"')
333
337
  r3 = nil
334
338
  end
335
339
  s0 << r3
@@ -362,11 +366,11 @@ module LogStashConfig
362
366
  r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
363
367
  s0 << r5
364
368
  if r5
365
- if has_terminal?("}", false, index)
366
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
367
- @index += 1
369
+ if (match_len = has_terminal?("}", false, index))
370
+ r9 = true
371
+ @index += match_len
368
372
  else
369
- terminal_parse_failure("}")
373
+ terminal_parse_failure('"}"')
370
374
  r9 = nil
371
375
  end
372
376
  s0 << r9
@@ -393,7 +397,7 @@ module LogStashConfig
393
397
  if node_cache[:branch_or_plugin].has_key?(index)
394
398
  cached = node_cache[:branch_or_plugin][index]
395
399
  if cached
396
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
400
+ node_cache[:branch_or_plugin][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
397
401
  @index = cached.interval.end
398
402
  end
399
403
  return cached
@@ -402,10 +406,12 @@ module LogStashConfig
402
406
  i0 = index
403
407
  r1 = _nt_branch
404
408
  if r1
409
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
405
410
  r0 = r1
406
411
  else
407
412
  r2 = _nt_plugin
408
413
  if r2
414
+ r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
409
415
  r0 = r2
410
416
  else
411
417
  @index = i0
@@ -423,41 +429,44 @@ module LogStashConfig
423
429
  if node_cache[:plugin_type].has_key?(index)
424
430
  cached = node_cache[:plugin_type][index]
425
431
  if cached
426
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
432
+ node_cache[:plugin_type][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
427
433
  @index = cached.interval.end
428
434
  end
429
435
  return cached
430
436
  end
431
437
 
432
438
  i0 = index
433
- if has_terminal?("input", false, index)
434
- r1 = instantiate_node(SyntaxNode,input, index...(index + 5))
435
- @index += 5
439
+ if (match_len = has_terminal?("input", false, index))
440
+ r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
441
+ @index += match_len
436
442
  else
437
- terminal_parse_failure("input")
443
+ terminal_parse_failure('"input"')
438
444
  r1 = nil
439
445
  end
440
446
  if r1
447
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
441
448
  r0 = r1
442
449
  else
443
- if has_terminal?("filter", false, index)
444
- r2 = instantiate_node(SyntaxNode,input, index...(index + 6))
445
- @index += 6
450
+ if (match_len = has_terminal?("filter", false, index))
451
+ r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
452
+ @index += match_len
446
453
  else
447
- terminal_parse_failure("filter")
454
+ terminal_parse_failure('"filter"')
448
455
  r2 = nil
449
456
  end
450
457
  if r2
458
+ r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
451
459
  r0 = r2
452
460
  else
453
- if has_terminal?("output", false, index)
454
- r3 = instantiate_node(SyntaxNode,input, index...(index + 6))
455
- @index += 6
461
+ if (match_len = has_terminal?("output", false, index))
462
+ r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
463
+ @index += match_len
456
464
  else
457
- terminal_parse_failure("output")
465
+ terminal_parse_failure('"output"')
458
466
  r3 = nil
459
467
  end
460
468
  if r3
469
+ r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
461
470
  r0 = r3
462
471
  else
463
472
  @index = i0
@@ -493,7 +502,7 @@ module LogStashConfig
493
502
  if node_cache[:plugins].has_key?(index)
494
503
  cached = node_cache[:plugins][index]
495
504
  if cached
496
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
505
+ node_cache[:plugins][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
497
506
  @index = cached.interval.end
498
507
  end
499
508
  return cached
@@ -595,7 +604,7 @@ module LogStashConfig
595
604
  if node_cache[:plugin].has_key?(index)
596
605
  cached = node_cache[:plugin][index]
597
606
  if cached
598
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
607
+ node_cache[:plugin][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
599
608
  @index = cached.interval.end
600
609
  end
601
610
  return cached
@@ -608,11 +617,11 @@ module LogStashConfig
608
617
  r2 = _nt__
609
618
  s0 << r2
610
619
  if r2
611
- if has_terminal?("{", false, index)
612
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
613
- @index += 1
620
+ if (match_len = has_terminal?("{", false, index))
621
+ r3 = true
622
+ @index += match_len
614
623
  else
615
- terminal_parse_failure("{")
624
+ terminal_parse_failure('"{"')
616
625
  r3 = nil
617
626
  end
618
627
  s0 << r3
@@ -670,11 +679,11 @@ module LogStashConfig
670
679
  r13 = _nt__
671
680
  s0 << r13
672
681
  if r13
673
- if has_terminal?("}", false, index)
674
- r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
675
- @index += 1
682
+ if (match_len = has_terminal?("}", false, index))
683
+ r14 = true
684
+ @index += match_len
676
685
  else
677
- terminal_parse_failure("}")
686
+ terminal_parse_failure('"}"')
678
687
  r14 = nil
679
688
  end
680
689
  s0 << r14
@@ -702,7 +711,7 @@ module LogStashConfig
702
711
  if node_cache[:name].has_key?(index)
703
712
  cached = node_cache[:name][index]
704
713
  if cached
705
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
714
+ node_cache[:name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
706
715
  @index = cached.interval.end
707
716
  end
708
717
  return cached
@@ -711,10 +720,11 @@ module LogStashConfig
711
720
  i0 = index
712
721
  s1, i1 = [], index
713
722
  loop do
714
- if has_terminal?('\G[A-Za-z0-9_-]', true, index)
723
+ if has_terminal?(@regexps[gr = '\A[A-Za-z0-9_-]'] ||= Regexp.new(gr), :regexp, index)
715
724
  r2 = true
716
725
  @index += 1
717
726
  else
727
+ terminal_parse_failure('[A-Za-z0-9_-]')
718
728
  r2 = nil
719
729
  end
720
730
  if r2
@@ -730,10 +740,12 @@ module LogStashConfig
730
740
  r1 = instantiate_node(LogStash::Config::AST::Name,input, i1...index, s1)
731
741
  end
732
742
  if r1
743
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
733
744
  r0 = r1
734
745
  else
735
746
  r3 = _nt_string
736
747
  if r3
748
+ r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
737
749
  r0 = r3
738
750
  else
739
751
  @index = i0
@@ -769,7 +781,7 @@ module LogStashConfig
769
781
  if node_cache[:attribute].has_key?(index)
770
782
  cached = node_cache[:attribute][index]
771
783
  if cached
772
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
784
+ node_cache[:attribute][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
773
785
  @index = cached.interval.end
774
786
  end
775
787
  return cached
@@ -782,11 +794,11 @@ module LogStashConfig
782
794
  r2 = _nt__
783
795
  s0 << r2
784
796
  if r2
785
- if has_terminal?("=>", false, index)
786
- r3 = instantiate_node(SyntaxNode,input, index...(index + 2))
787
- @index += 2
797
+ if (match_len = has_terminal?("=>", false, index))
798
+ r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
799
+ @index += match_len
788
800
  else
789
- terminal_parse_failure("=>")
801
+ terminal_parse_failure('"=>"')
790
802
  r3 = nil
791
803
  end
792
804
  s0 << r3
@@ -818,7 +830,7 @@ module LogStashConfig
818
830
  if node_cache[:value].has_key?(index)
819
831
  cached = node_cache[:value][index]
820
832
  if cached
821
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
833
+ node_cache[:value][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
822
834
  @index = cached.interval.end
823
835
  end
824
836
  return cached
@@ -827,26 +839,32 @@ module LogStashConfig
827
839
  i0 = index
828
840
  r1 = _nt_plugin
829
841
  if r1
842
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
830
843
  r0 = r1
831
844
  else
832
845
  r2 = _nt_bareword
833
846
  if r2
847
+ r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
834
848
  r0 = r2
835
849
  else
836
850
  r3 = _nt_string
837
851
  if r3
852
+ r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
838
853
  r0 = r3
839
854
  else
840
855
  r4 = _nt_number
841
856
  if r4
857
+ r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
842
858
  r0 = r4
843
859
  else
844
860
  r5 = _nt_array
845
861
  if r5
862
+ r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
846
863
  r0 = r5
847
864
  else
848
865
  r6 = _nt_hash
849
866
  if r6
867
+ r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
850
868
  r0 = r6
851
869
  else
852
870
  @index = i0
@@ -868,7 +886,7 @@ module LogStashConfig
868
886
  if node_cache[:array_value].has_key?(index)
869
887
  cached = node_cache[:array_value][index]
870
888
  if cached
871
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
889
+ node_cache[:array_value][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
872
890
  @index = cached.interval.end
873
891
  end
874
892
  return cached
@@ -877,22 +895,27 @@ module LogStashConfig
877
895
  i0 = index
878
896
  r1 = _nt_bareword
879
897
  if r1
898
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
880
899
  r0 = r1
881
900
  else
882
901
  r2 = _nt_string
883
902
  if r2
903
+ r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
884
904
  r0 = r2
885
905
  else
886
906
  r3 = _nt_number
887
907
  if r3
908
+ r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
888
909
  r0 = r3
889
910
  else
890
911
  r4 = _nt_array
891
912
  if r4
913
+ r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
892
914
  r0 = r4
893
915
  else
894
916
  r5 = _nt_hash
895
917
  if r5
918
+ r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
896
919
  r0 = r5
897
920
  else
898
921
  @index = i0
@@ -916,27 +939,29 @@ module LogStashConfig
916
939
  if node_cache[:bareword].has_key?(index)
917
940
  cached = node_cache[:bareword][index]
918
941
  if cached
919
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
942
+ node_cache[:bareword][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
920
943
  @index = cached.interval.end
921
944
  end
922
945
  return cached
923
946
  end
924
947
 
925
948
  i0, s0 = index, []
926
- if has_terminal?('\G[A-Za-z_]', true, index)
949
+ if has_terminal?(@regexps[gr = '\A[A-Za-z_]'] ||= Regexp.new(gr), :regexp, index)
927
950
  r1 = true
928
951
  @index += 1
929
952
  else
953
+ terminal_parse_failure('[A-Za-z_]')
930
954
  r1 = nil
931
955
  end
932
956
  s0 << r1
933
957
  if r1
934
958
  s2, i2 = [], index
935
959
  loop do
936
- if has_terminal?('\G[A-Za-z0-9_]', true, index)
960
+ if has_terminal?(@regexps[gr = '\A[A-Za-z0-9_]'] ||= Regexp.new(gr), :regexp, index)
937
961
  r3 = true
938
962
  @index += 1
939
963
  else
964
+ terminal_parse_failure('[A-Za-z0-9_]')
940
965
  r3 = nil
941
966
  end
942
967
  if r3
@@ -977,18 +1002,18 @@ module LogStashConfig
977
1002
  if node_cache[:double_quoted_string].has_key?(index)
978
1003
  cached = node_cache[:double_quoted_string][index]
979
1004
  if cached
980
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1005
+ node_cache[:double_quoted_string][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
981
1006
  @index = cached.interval.end
982
1007
  end
983
1008
  return cached
984
1009
  end
985
1010
 
986
1011
  i0, s0 = index, []
987
- if has_terminal?('"', false, index)
988
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
989
- @index += 1
1012
+ if (match_len = has_terminal?('"', false, index))
1013
+ r1 = true
1014
+ @index += match_len
990
1015
  else
991
- terminal_parse_failure('"')
1016
+ terminal_parse_failure('\'"\'')
992
1017
  r1 = nil
993
1018
  end
994
1019
  s0 << r1
@@ -996,35 +1021,39 @@ module LogStashConfig
996
1021
  s2, i2 = [], index
997
1022
  loop do
998
1023
  i3 = index
999
- if has_terminal?('\"', false, index)
1000
- r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
1001
- @index += 2
1024
+ if (match_len = has_terminal?('\"', false, index))
1025
+ r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1026
+ @index += match_len
1002
1027
  else
1003
- terminal_parse_failure('\"')
1028
+ terminal_parse_failure('\'\\"\'')
1004
1029
  r4 = nil
1005
1030
  end
1006
1031
  if r4
1032
+ r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
1007
1033
  r3 = r4
1008
1034
  else
1009
1035
  i5, s5 = index, []
1010
1036
  i6 = index
1011
- if has_terminal?('"', false, index)
1012
- r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
1013
- @index += 1
1037
+ if (match_len = has_terminal?('"', false, index))
1038
+ r7 = true
1039
+ @index += match_len
1014
1040
  else
1015
- terminal_parse_failure('"')
1041
+ terminal_parse_failure('\'"\'')
1016
1042
  r7 = nil
1017
1043
  end
1018
1044
  if r7
1045
+ @index = i6
1019
1046
  r6 = nil
1047
+ terminal_parse_failure('\'"\'', true)
1020
1048
  else
1049
+ @terminal_failures.pop
1021
1050
  @index = i6
1022
1051
  r6 = instantiate_node(SyntaxNode,input, index...index)
1023
1052
  end
1024
1053
  s5 << r6
1025
1054
  if r6
1026
1055
  if index < input_length
1027
- r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
1056
+ r8 = true
1028
1057
  @index += 1
1029
1058
  else
1030
1059
  terminal_parse_failure("any character")
@@ -1040,6 +1069,7 @@ module LogStashConfig
1040
1069
  r5 = nil
1041
1070
  end
1042
1071
  if r5
1072
+ r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
1043
1073
  r3 = r5
1044
1074
  else
1045
1075
  @index = i3
@@ -1055,11 +1085,11 @@ module LogStashConfig
1055
1085
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1056
1086
  s0 << r2
1057
1087
  if r2
1058
- if has_terminal?('"', false, index)
1059
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
1060
- @index += 1
1088
+ if (match_len = has_terminal?('"', false, index))
1089
+ r9 = true
1090
+ @index += match_len
1061
1091
  else
1062
- terminal_parse_failure('"')
1092
+ terminal_parse_failure('\'"\'')
1063
1093
  r9 = nil
1064
1094
  end
1065
1095
  s0 << r9
@@ -1089,18 +1119,18 @@ module LogStashConfig
1089
1119
  if node_cache[:single_quoted_string].has_key?(index)
1090
1120
  cached = node_cache[:single_quoted_string][index]
1091
1121
  if cached
1092
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1122
+ node_cache[:single_quoted_string][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1093
1123
  @index = cached.interval.end
1094
1124
  end
1095
1125
  return cached
1096
1126
  end
1097
1127
 
1098
1128
  i0, s0 = index, []
1099
- if has_terminal?("'", false, index)
1100
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
1101
- @index += 1
1129
+ if (match_len = has_terminal?("'", false, index))
1130
+ r1 = true
1131
+ @index += match_len
1102
1132
  else
1103
- terminal_parse_failure("'")
1133
+ terminal_parse_failure('"\'"')
1104
1134
  r1 = nil
1105
1135
  end
1106
1136
  s0 << r1
@@ -1108,35 +1138,39 @@ module LogStashConfig
1108
1138
  s2, i2 = [], index
1109
1139
  loop do
1110
1140
  i3 = index
1111
- if has_terminal?("\\'", false, index)
1112
- r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
1113
- @index += 2
1141
+ if (match_len = has_terminal?("\\'", false, index))
1142
+ r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1143
+ @index += match_len
1114
1144
  else
1115
- terminal_parse_failure("\\'")
1145
+ terminal_parse_failure('"\\\\\'"')
1116
1146
  r4 = nil
1117
1147
  end
1118
1148
  if r4
1149
+ r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
1119
1150
  r3 = r4
1120
1151
  else
1121
1152
  i5, s5 = index, []
1122
1153
  i6 = index
1123
- if has_terminal?("'", false, index)
1124
- r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
1125
- @index += 1
1154
+ if (match_len = has_terminal?("'", false, index))
1155
+ r7 = true
1156
+ @index += match_len
1126
1157
  else
1127
- terminal_parse_failure("'")
1158
+ terminal_parse_failure('"\'"')
1128
1159
  r7 = nil
1129
1160
  end
1130
1161
  if r7
1162
+ @index = i6
1131
1163
  r6 = nil
1164
+ terminal_parse_failure('"\'"', true)
1132
1165
  else
1166
+ @terminal_failures.pop
1133
1167
  @index = i6
1134
1168
  r6 = instantiate_node(SyntaxNode,input, index...index)
1135
1169
  end
1136
1170
  s5 << r6
1137
1171
  if r6
1138
1172
  if index < input_length
1139
- r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
1173
+ r8 = true
1140
1174
  @index += 1
1141
1175
  else
1142
1176
  terminal_parse_failure("any character")
@@ -1152,6 +1186,7 @@ module LogStashConfig
1152
1186
  r5 = nil
1153
1187
  end
1154
1188
  if r5
1189
+ r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
1155
1190
  r3 = r5
1156
1191
  else
1157
1192
  @index = i3
@@ -1167,11 +1202,11 @@ module LogStashConfig
1167
1202
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1168
1203
  s0 << r2
1169
1204
  if r2
1170
- if has_terminal?("'", false, index)
1171
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
1172
- @index += 1
1205
+ if (match_len = has_terminal?("'", false, index))
1206
+ r9 = true
1207
+ @index += match_len
1173
1208
  else
1174
- terminal_parse_failure("'")
1209
+ terminal_parse_failure('"\'"')
1175
1210
  r9 = nil
1176
1211
  end
1177
1212
  s0 << r9
@@ -1195,7 +1230,7 @@ module LogStashConfig
1195
1230
  if node_cache[:string].has_key?(index)
1196
1231
  cached = node_cache[:string][index]
1197
1232
  if cached
1198
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1233
+ node_cache[:string][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1199
1234
  @index = cached.interval.end
1200
1235
  end
1201
1236
  return cached
@@ -1204,10 +1239,12 @@ module LogStashConfig
1204
1239
  i0 = index
1205
1240
  r1 = _nt_double_quoted_string
1206
1241
  if r1
1242
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1207
1243
  r0 = r1
1208
1244
  else
1209
1245
  r2 = _nt_single_quoted_string
1210
1246
  if r2
1247
+ r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1211
1248
  r0 = r2
1212
1249
  else
1213
1250
  @index = i0
@@ -1231,18 +1268,18 @@ module LogStashConfig
1231
1268
  if node_cache[:regexp].has_key?(index)
1232
1269
  cached = node_cache[:regexp][index]
1233
1270
  if cached
1234
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1271
+ node_cache[:regexp][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1235
1272
  @index = cached.interval.end
1236
1273
  end
1237
1274
  return cached
1238
1275
  end
1239
1276
 
1240
1277
  i0, s0 = index, []
1241
- if has_terminal?('/', false, index)
1242
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
1243
- @index += 1
1278
+ if (match_len = has_terminal?('/', false, index))
1279
+ r1 = true
1280
+ @index += match_len
1244
1281
  else
1245
- terminal_parse_failure('/')
1282
+ terminal_parse_failure('\'/\'')
1246
1283
  r1 = nil
1247
1284
  end
1248
1285
  s0 << r1
@@ -1250,35 +1287,39 @@ module LogStashConfig
1250
1287
  s2, i2 = [], index
1251
1288
  loop do
1252
1289
  i3 = index
1253
- if has_terminal?('\/', false, index)
1254
- r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
1255
- @index += 2
1290
+ if (match_len = has_terminal?('\/', false, index))
1291
+ r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1292
+ @index += match_len
1256
1293
  else
1257
- terminal_parse_failure('\/')
1294
+ terminal_parse_failure('\'\\/\'')
1258
1295
  r4 = nil
1259
1296
  end
1260
1297
  if r4
1298
+ r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
1261
1299
  r3 = r4
1262
1300
  else
1263
1301
  i5, s5 = index, []
1264
1302
  i6 = index
1265
- if has_terminal?('/', false, index)
1266
- r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
1267
- @index += 1
1303
+ if (match_len = has_terminal?('/', false, index))
1304
+ r7 = true
1305
+ @index += match_len
1268
1306
  else
1269
- terminal_parse_failure('/')
1307
+ terminal_parse_failure('\'/\'')
1270
1308
  r7 = nil
1271
1309
  end
1272
1310
  if r7
1311
+ @index = i6
1273
1312
  r6 = nil
1313
+ terminal_parse_failure('\'/\'', true)
1274
1314
  else
1315
+ @terminal_failures.pop
1275
1316
  @index = i6
1276
1317
  r6 = instantiate_node(SyntaxNode,input, index...index)
1277
1318
  end
1278
1319
  s5 << r6
1279
1320
  if r6
1280
1321
  if index < input_length
1281
- r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
1322
+ r8 = true
1282
1323
  @index += 1
1283
1324
  else
1284
1325
  terminal_parse_failure("any character")
@@ -1294,6 +1335,7 @@ module LogStashConfig
1294
1335
  r5 = nil
1295
1336
  end
1296
1337
  if r5
1338
+ r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
1297
1339
  r3 = r5
1298
1340
  else
1299
1341
  @index = i3
@@ -1309,11 +1351,11 @@ module LogStashConfig
1309
1351
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1310
1352
  s0 << r2
1311
1353
  if r2
1312
- if has_terminal?('/', false, index)
1313
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
1314
- @index += 1
1354
+ if (match_len = has_terminal?('/', false, index))
1355
+ r9 = true
1356
+ @index += match_len
1315
1357
  else
1316
- terminal_parse_failure('/')
1358
+ terminal_parse_failure('\'/\'')
1317
1359
  r9 = nil
1318
1360
  end
1319
1361
  s0 << r9
@@ -1343,18 +1385,18 @@ module LogStashConfig
1343
1385
  if node_cache[:number].has_key?(index)
1344
1386
  cached = node_cache[:number][index]
1345
1387
  if cached
1346
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1388
+ node_cache[:number][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1347
1389
  @index = cached.interval.end
1348
1390
  end
1349
1391
  return cached
1350
1392
  end
1351
1393
 
1352
1394
  i0, s0 = index, []
1353
- if has_terminal?("-", false, index)
1354
- r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
1355
- @index += 1
1395
+ if (match_len = has_terminal?("-", false, index))
1396
+ r2 = true
1397
+ @index += match_len
1356
1398
  else
1357
- terminal_parse_failure("-")
1399
+ terminal_parse_failure('"-"')
1358
1400
  r2 = nil
1359
1401
  end
1360
1402
  if r2
@@ -1366,10 +1408,11 @@ module LogStashConfig
1366
1408
  if r1
1367
1409
  s3, i3 = [], index
1368
1410
  loop do
1369
- if has_terminal?('\G[0-9]', true, index)
1411
+ if has_terminal?(@regexps[gr = '\A[0-9]'] ||= Regexp.new(gr), :regexp, index)
1370
1412
  r4 = true
1371
1413
  @index += 1
1372
1414
  else
1415
+ terminal_parse_failure('[0-9]')
1373
1416
  r4 = nil
1374
1417
  end
1375
1418
  if r4
@@ -1387,21 +1430,22 @@ module LogStashConfig
1387
1430
  s0 << r3
1388
1431
  if r3
1389
1432
  i6, s6 = index, []
1390
- if has_terminal?(".", false, index)
1391
- r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
1392
- @index += 1
1433
+ if (match_len = has_terminal?(".", false, index))
1434
+ r7 = true
1435
+ @index += match_len
1393
1436
  else
1394
- terminal_parse_failure(".")
1437
+ terminal_parse_failure('"."')
1395
1438
  r7 = nil
1396
1439
  end
1397
1440
  s6 << r7
1398
1441
  if r7
1399
1442
  s8, i8 = [], index
1400
1443
  loop do
1401
- if has_terminal?('\G[0-9]', true, index)
1444
+ if has_terminal?(@regexps[gr = '\A[0-9]'] ||= Regexp.new(gr), :regexp, index)
1402
1445
  r9 = true
1403
1446
  @index += 1
1404
1447
  else
1448
+ terminal_parse_failure('[0-9]')
1405
1449
  r9 = nil
1406
1450
  end
1407
1451
  if r9
@@ -1478,18 +1522,18 @@ module LogStashConfig
1478
1522
  if node_cache[:array].has_key?(index)
1479
1523
  cached = node_cache[:array][index]
1480
1524
  if cached
1481
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1525
+ node_cache[:array][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1482
1526
  @index = cached.interval.end
1483
1527
  end
1484
1528
  return cached
1485
1529
  end
1486
1530
 
1487
1531
  i0, s0 = index, []
1488
- if has_terminal?("[", false, index)
1489
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
1490
- @index += 1
1532
+ if (match_len = has_terminal?("[", false, index))
1533
+ r1 = true
1534
+ @index += match_len
1491
1535
  else
1492
- terminal_parse_failure("[")
1536
+ terminal_parse_failure('"["')
1493
1537
  r1 = nil
1494
1538
  end
1495
1539
  s0 << r1
@@ -1507,11 +1551,11 @@ module LogStashConfig
1507
1551
  r8 = _nt__
1508
1552
  s7 << r8
1509
1553
  if r8
1510
- if has_terminal?(",", false, index)
1511
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
1512
- @index += 1
1554
+ if (match_len = has_terminal?(",", false, index))
1555
+ r9 = true
1556
+ @index += match_len
1513
1557
  else
1514
- terminal_parse_failure(",")
1558
+ terminal_parse_failure('","')
1515
1559
  r9 = nil
1516
1560
  end
1517
1561
  s7 << r9
@@ -1557,11 +1601,11 @@ module LogStashConfig
1557
1601
  r12 = _nt__
1558
1602
  s0 << r12
1559
1603
  if r12
1560
- if has_terminal?("]", false, index)
1561
- r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
1562
- @index += 1
1604
+ if (match_len = has_terminal?("]", false, index))
1605
+ r13 = true
1606
+ @index += match_len
1563
1607
  else
1564
- terminal_parse_failure("]")
1608
+ terminal_parse_failure('"]"')
1565
1609
  r13 = nil
1566
1610
  end
1567
1611
  s0 << r13
@@ -1598,18 +1642,18 @@ module LogStashConfig
1598
1642
  if node_cache[:hash].has_key?(index)
1599
1643
  cached = node_cache[:hash][index]
1600
1644
  if cached
1601
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1645
+ node_cache[:hash][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1602
1646
  @index = cached.interval.end
1603
1647
  end
1604
1648
  return cached
1605
1649
  end
1606
1650
 
1607
1651
  i0, s0 = index, []
1608
- if has_terminal?("{", false, index)
1609
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
1610
- @index += 1
1652
+ if (match_len = has_terminal?("{", false, index))
1653
+ r1 = true
1654
+ @index += match_len
1611
1655
  else
1612
- terminal_parse_failure("{")
1656
+ terminal_parse_failure('"{"')
1613
1657
  r1 = nil
1614
1658
  end
1615
1659
  s0 << r1
@@ -1628,11 +1672,11 @@ module LogStashConfig
1628
1672
  r5 = _nt__
1629
1673
  s0 << r5
1630
1674
  if r5
1631
- if has_terminal?("}", false, index)
1632
- r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
1633
- @index += 1
1675
+ if (match_len = has_terminal?("}", false, index))
1676
+ r6 = true
1677
+ @index += match_len
1634
1678
  else
1635
- terminal_parse_failure("}")
1679
+ terminal_parse_failure('"}"')
1636
1680
  r6 = nil
1637
1681
  end
1638
1682
  s0 << r6
@@ -1675,7 +1719,7 @@ module LogStashConfig
1675
1719
  if node_cache[:hashentries].has_key?(index)
1676
1720
  cached = node_cache[:hashentries][index]
1677
1721
  if cached
1678
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1722
+ node_cache[:hashentries][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1679
1723
  @index = cached.interval.end
1680
1724
  end
1681
1725
  return cached
@@ -1746,7 +1790,7 @@ module LogStashConfig
1746
1790
  if node_cache[:hashentry].has_key?(index)
1747
1791
  cached = node_cache[:hashentry][index]
1748
1792
  if cached
1749
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1793
+ node_cache[:hashentry][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1750
1794
  @index = cached.interval.end
1751
1795
  end
1752
1796
  return cached
@@ -1756,14 +1800,17 @@ module LogStashConfig
1756
1800
  i1 = index
1757
1801
  r2 = _nt_number
1758
1802
  if r2
1803
+ r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1759
1804
  r1 = r2
1760
1805
  else
1761
1806
  r3 = _nt_bareword
1762
1807
  if r3
1808
+ r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
1763
1809
  r1 = r3
1764
1810
  else
1765
1811
  r4 = _nt_string
1766
1812
  if r4
1813
+ r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
1767
1814
  r1 = r4
1768
1815
  else
1769
1816
  @index = i1
@@ -1776,11 +1823,11 @@ module LogStashConfig
1776
1823
  r5 = _nt__
1777
1824
  s0 << r5
1778
1825
  if r5
1779
- if has_terminal?("=>", false, index)
1780
- r6 = instantiate_node(SyntaxNode,input, index...(index + 2))
1781
- @index += 2
1826
+ if (match_len = has_terminal?("=>", false, index))
1827
+ r6 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1828
+ @index += match_len
1782
1829
  else
1783
- terminal_parse_failure("=>")
1830
+ terminal_parse_failure('"=>"')
1784
1831
  r6 = nil
1785
1832
  end
1786
1833
  s0 << r6
@@ -1839,7 +1886,7 @@ module LogStashConfig
1839
1886
  if node_cache[:branch].has_key?(index)
1840
1887
  cached = node_cache[:branch][index]
1841
1888
  if cached
1842
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1889
+ node_cache[:branch][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1843
1890
  @index = cached.interval.end
1844
1891
  end
1845
1892
  return cached
@@ -1943,18 +1990,18 @@ module LogStashConfig
1943
1990
  if node_cache[:if].has_key?(index)
1944
1991
  cached = node_cache[:if][index]
1945
1992
  if cached
1946
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1993
+ node_cache[:if][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1947
1994
  @index = cached.interval.end
1948
1995
  end
1949
1996
  return cached
1950
1997
  end
1951
1998
 
1952
1999
  i0, s0 = index, []
1953
- if has_terminal?("if", false, index)
1954
- r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
1955
- @index += 2
2000
+ if (match_len = has_terminal?("if", false, index))
2001
+ r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2002
+ @index += match_len
1956
2003
  else
1957
- terminal_parse_failure("if")
2004
+ terminal_parse_failure('"if"')
1958
2005
  r1 = nil
1959
2006
  end
1960
2007
  s0 << r1
@@ -1968,11 +2015,11 @@ module LogStashConfig
1968
2015
  r4 = _nt__
1969
2016
  s0 << r4
1970
2017
  if r4
1971
- if has_terminal?("{", false, index)
1972
- r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
1973
- @index += 1
2018
+ if (match_len = has_terminal?("{", false, index))
2019
+ r5 = true
2020
+ @index += match_len
1974
2021
  else
1975
- terminal_parse_failure("{")
2022
+ terminal_parse_failure('"{"')
1976
2023
  r5 = nil
1977
2024
  end
1978
2025
  s0 << r5
@@ -2005,11 +2052,11 @@ module LogStashConfig
2005
2052
  r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
2006
2053
  s0 << r7
2007
2054
  if r7
2008
- if has_terminal?("}", false, index)
2009
- r11 = instantiate_node(SyntaxNode,input, index...(index + 1))
2010
- @index += 1
2055
+ if (match_len = has_terminal?("}", false, index))
2056
+ r11 = true
2057
+ @index += match_len
2011
2058
  else
2012
- terminal_parse_failure("}")
2059
+ terminal_parse_failure('"}"')
2013
2060
  r11 = nil
2014
2061
  end
2015
2062
  s0 << r11
@@ -2071,18 +2118,18 @@ module LogStashConfig
2071
2118
  if node_cache[:else_if].has_key?(index)
2072
2119
  cached = node_cache[:else_if][index]
2073
2120
  if cached
2074
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2121
+ node_cache[:else_if][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2075
2122
  @index = cached.interval.end
2076
2123
  end
2077
2124
  return cached
2078
2125
  end
2079
2126
 
2080
2127
  i0, s0 = index, []
2081
- if has_terminal?("else", false, index)
2082
- r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
2083
- @index += 4
2128
+ if (match_len = has_terminal?("else", false, index))
2129
+ r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2130
+ @index += match_len
2084
2131
  else
2085
- terminal_parse_failure("else")
2132
+ terminal_parse_failure('"else"')
2086
2133
  r1 = nil
2087
2134
  end
2088
2135
  s0 << r1
@@ -2090,11 +2137,11 @@ module LogStashConfig
2090
2137
  r2 = _nt__
2091
2138
  s0 << r2
2092
2139
  if r2
2093
- if has_terminal?("if", false, index)
2094
- r3 = instantiate_node(SyntaxNode,input, index...(index + 2))
2095
- @index += 2
2140
+ if (match_len = has_terminal?("if", false, index))
2141
+ r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2142
+ @index += match_len
2096
2143
  else
2097
- terminal_parse_failure("if")
2144
+ terminal_parse_failure('"if"')
2098
2145
  r3 = nil
2099
2146
  end
2100
2147
  s0 << r3
@@ -2108,11 +2155,11 @@ module LogStashConfig
2108
2155
  r6 = _nt__
2109
2156
  s0 << r6
2110
2157
  if r6
2111
- if has_terminal?("{", false, index)
2112
- r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
2113
- @index += 1
2158
+ if (match_len = has_terminal?("{", false, index))
2159
+ r7 = true
2160
+ @index += match_len
2114
2161
  else
2115
- terminal_parse_failure("{")
2162
+ terminal_parse_failure('"{"')
2116
2163
  r7 = nil
2117
2164
  end
2118
2165
  s0 << r7
@@ -2145,11 +2192,11 @@ module LogStashConfig
2145
2192
  r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
2146
2193
  s0 << r9
2147
2194
  if r9
2148
- if has_terminal?("}", false, index)
2149
- r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
2150
- @index += 1
2195
+ if (match_len = has_terminal?("}", false, index))
2196
+ r13 = true
2197
+ @index += match_len
2151
2198
  else
2152
- terminal_parse_failure("}")
2199
+ terminal_parse_failure('"}"')
2153
2200
  r13 = nil
2154
2201
  end
2155
2202
  s0 << r13
@@ -2201,18 +2248,18 @@ module LogStashConfig
2201
2248
  if node_cache[:else].has_key?(index)
2202
2249
  cached = node_cache[:else][index]
2203
2250
  if cached
2204
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2251
+ node_cache[:else][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2205
2252
  @index = cached.interval.end
2206
2253
  end
2207
2254
  return cached
2208
2255
  end
2209
2256
 
2210
2257
  i0, s0 = index, []
2211
- if has_terminal?("else", false, index)
2212
- r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
2213
- @index += 4
2258
+ if (match_len = has_terminal?("else", false, index))
2259
+ r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2260
+ @index += match_len
2214
2261
  else
2215
- terminal_parse_failure("else")
2262
+ terminal_parse_failure('"else"')
2216
2263
  r1 = nil
2217
2264
  end
2218
2265
  s0 << r1
@@ -2220,11 +2267,11 @@ module LogStashConfig
2220
2267
  r2 = _nt__
2221
2268
  s0 << r2
2222
2269
  if r2
2223
- if has_terminal?("{", false, index)
2224
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
2225
- @index += 1
2270
+ if (match_len = has_terminal?("{", false, index))
2271
+ r3 = true
2272
+ @index += match_len
2226
2273
  else
2227
- terminal_parse_failure("{")
2274
+ terminal_parse_failure('"{"')
2228
2275
  r3 = nil
2229
2276
  end
2230
2277
  s0 << r3
@@ -2257,11 +2304,11 @@ module LogStashConfig
2257
2304
  r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
2258
2305
  s0 << r5
2259
2306
  if r5
2260
- if has_terminal?("}", false, index)
2261
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
2262
- @index += 1
2307
+ if (match_len = has_terminal?("}", false, index))
2308
+ r9 = true
2309
+ @index += match_len
2263
2310
  else
2264
- terminal_parse_failure("}")
2311
+ terminal_parse_failure('"}"')
2265
2312
  r9 = nil
2266
2313
  end
2267
2314
  s0 << r9
@@ -2313,7 +2360,7 @@ module LogStashConfig
2313
2360
  if node_cache[:condition].has_key?(index)
2314
2361
  cached = node_cache[:condition][index]
2315
2362
  if cached
2316
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2363
+ node_cache[:condition][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2317
2364
  @index = cached.interval.end
2318
2365
  end
2319
2366
  return cached
@@ -2389,7 +2436,7 @@ module LogStashConfig
2389
2436
  if node_cache[:expression].has_key?(index)
2390
2437
  cached = node_cache[:expression][index]
2391
2438
  if cached
2392
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2439
+ node_cache[:expression][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2393
2440
  @index = cached.interval.end
2394
2441
  end
2395
2442
  return cached
@@ -2397,11 +2444,11 @@ module LogStashConfig
2397
2444
 
2398
2445
  i0 = index
2399
2446
  i1, s1 = index, []
2400
- if has_terminal?("(", false, index)
2401
- r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
2402
- @index += 1
2447
+ if (match_len = has_terminal?("(", false, index))
2448
+ r2 = true
2449
+ @index += match_len
2403
2450
  else
2404
- terminal_parse_failure("(")
2451
+ terminal_parse_failure('"("')
2405
2452
  r2 = nil
2406
2453
  end
2407
2454
  s1 << r2
@@ -2415,11 +2462,11 @@ module LogStashConfig
2415
2462
  r5 = _nt__
2416
2463
  s1 << r5
2417
2464
  if r5
2418
- if has_terminal?(")", false, index)
2419
- r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
2420
- @index += 1
2465
+ if (match_len = has_terminal?(")", false, index))
2466
+ r6 = true
2467
+ @index += match_len
2421
2468
  else
2422
- terminal_parse_failure(")")
2469
+ terminal_parse_failure('")"')
2423
2470
  r6 = nil
2424
2471
  end
2425
2472
  s1 << r6
@@ -2435,36 +2482,43 @@ module LogStashConfig
2435
2482
  r1 = nil
2436
2483
  end
2437
2484
  if r1
2485
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2438
2486
  r0 = r1
2439
2487
  r0.extend(LogStash::Config::AST::Expression)
2440
2488
  else
2441
2489
  r7 = _nt_negative_expression
2442
2490
  if r7
2491
+ r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
2443
2492
  r0 = r7
2444
2493
  r0.extend(LogStash::Config::AST::Expression)
2445
2494
  else
2446
2495
  r8 = _nt_in_expression
2447
2496
  if r8
2497
+ r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
2448
2498
  r0 = r8
2449
2499
  r0.extend(LogStash::Config::AST::Expression)
2450
2500
  else
2451
2501
  r9 = _nt_not_in_expression
2452
2502
  if r9
2503
+ r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
2453
2504
  r0 = r9
2454
2505
  r0.extend(LogStash::Config::AST::Expression)
2455
2506
  else
2456
2507
  r10 = _nt_compare_expression
2457
2508
  if r10
2509
+ r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
2458
2510
  r0 = r10
2459
2511
  r0.extend(LogStash::Config::AST::Expression)
2460
2512
  else
2461
2513
  r11 = _nt_regexp_expression
2462
2514
  if r11
2515
+ r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
2463
2516
  r0 = r11
2464
2517
  r0.extend(LogStash::Config::AST::Expression)
2465
2518
  else
2466
2519
  r12 = _nt_rvalue
2467
2520
  if r12
2521
+ r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
2468
2522
  r0 = r12
2469
2523
  r0.extend(LogStash::Config::AST::Expression)
2470
2524
  else
@@ -2517,7 +2571,7 @@ module LogStashConfig
2517
2571
  if node_cache[:negative_expression].has_key?(index)
2518
2572
  cached = node_cache[:negative_expression][index]
2519
2573
  if cached
2520
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2574
+ node_cache[:negative_expression][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2521
2575
  @index = cached.interval.end
2522
2576
  end
2523
2577
  return cached
@@ -2525,11 +2579,11 @@ module LogStashConfig
2525
2579
 
2526
2580
  i0 = index
2527
2581
  i1, s1 = index, []
2528
- if has_terminal?("!", false, index)
2529
- r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
2530
- @index += 1
2582
+ if (match_len = has_terminal?("!", false, index))
2583
+ r2 = true
2584
+ @index += match_len
2531
2585
  else
2532
- terminal_parse_failure("!")
2586
+ terminal_parse_failure('"!"')
2533
2587
  r2 = nil
2534
2588
  end
2535
2589
  s1 << r2
@@ -2537,11 +2591,11 @@ module LogStashConfig
2537
2591
  r3 = _nt__
2538
2592
  s1 << r3
2539
2593
  if r3
2540
- if has_terminal?("(", false, index)
2541
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2542
- @index += 1
2594
+ if (match_len = has_terminal?("(", false, index))
2595
+ r4 = true
2596
+ @index += match_len
2543
2597
  else
2544
- terminal_parse_failure("(")
2598
+ terminal_parse_failure('"("')
2545
2599
  r4 = nil
2546
2600
  end
2547
2601
  s1 << r4
@@ -2555,11 +2609,11 @@ module LogStashConfig
2555
2609
  r7 = _nt__
2556
2610
  s1 << r7
2557
2611
  if r7
2558
- if has_terminal?(")", false, index)
2559
- r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
2560
- @index += 1
2612
+ if (match_len = has_terminal?(")", false, index))
2613
+ r8 = true
2614
+ @index += match_len
2561
2615
  else
2562
- terminal_parse_failure(")")
2616
+ terminal_parse_failure('")"')
2563
2617
  r8 = nil
2564
2618
  end
2565
2619
  s1 << r8
@@ -2577,15 +2631,16 @@ module LogStashConfig
2577
2631
  r1 = nil
2578
2632
  end
2579
2633
  if r1
2634
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2580
2635
  r0 = r1
2581
2636
  r0.extend(LogStash::Config::AST::NegativeExpression)
2582
2637
  else
2583
2638
  i9, s9 = index, []
2584
- if has_terminal?("!", false, index)
2585
- r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
2586
- @index += 1
2639
+ if (match_len = has_terminal?("!", false, index))
2640
+ r10 = true
2641
+ @index += match_len
2587
2642
  else
2588
- terminal_parse_failure("!")
2643
+ terminal_parse_failure('"!"')
2589
2644
  r10 = nil
2590
2645
  end
2591
2646
  s9 << r10
@@ -2605,6 +2660,7 @@ module LogStashConfig
2605
2660
  r9 = nil
2606
2661
  end
2607
2662
  if r9
2663
+ r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
2608
2664
  r0 = r9
2609
2665
  r0.extend(LogStash::Config::AST::NegativeExpression)
2610
2666
  else
@@ -2645,7 +2701,7 @@ module LogStashConfig
2645
2701
  if node_cache[:in_expression].has_key?(index)
2646
2702
  cached = node_cache[:in_expression][index]
2647
2703
  if cached
2648
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2704
+ node_cache[:in_expression][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2649
2705
  @index = cached.interval.end
2650
2706
  end
2651
2707
  return cached
@@ -2710,7 +2766,7 @@ module LogStashConfig
2710
2766
  if node_cache[:not_in_expression].has_key?(index)
2711
2767
  cached = node_cache[:not_in_expression][index]
2712
2768
  if cached
2713
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2769
+ node_cache[:not_in_expression][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2714
2770
  @index = cached.interval.end
2715
2771
  end
2716
2772
  return cached
@@ -2753,17 +2809,17 @@ module LogStashConfig
2753
2809
  if node_cache[:in_operator].has_key?(index)
2754
2810
  cached = node_cache[:in_operator][index]
2755
2811
  if cached
2756
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2812
+ node_cache[:in_operator][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2757
2813
  @index = cached.interval.end
2758
2814
  end
2759
2815
  return cached
2760
2816
  end
2761
2817
 
2762
- if has_terminal?("in", false, index)
2763
- r0 = instantiate_node(SyntaxNode,input, index...(index + 2))
2764
- @index += 2
2818
+ if (match_len = has_terminal?("in", false, index))
2819
+ r0 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2820
+ @index += match_len
2765
2821
  else
2766
- terminal_parse_failure("in")
2822
+ terminal_parse_failure('"in"')
2767
2823
  r0 = nil
2768
2824
  end
2769
2825
 
@@ -2784,18 +2840,18 @@ module LogStashConfig
2784
2840
  if node_cache[:not_in_operator].has_key?(index)
2785
2841
  cached = node_cache[:not_in_operator][index]
2786
2842
  if cached
2787
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2843
+ node_cache[:not_in_operator][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2788
2844
  @index = cached.interval.end
2789
2845
  end
2790
2846
  return cached
2791
2847
  end
2792
2848
 
2793
2849
  i0, s0 = index, []
2794
- if has_terminal?("not ", false, index)
2795
- r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
2796
- @index += 4
2850
+ if (match_len = has_terminal?("not ", false, index))
2851
+ r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2852
+ @index += match_len
2797
2853
  else
2798
- terminal_parse_failure("not ")
2854
+ terminal_parse_failure('"not "')
2799
2855
  r1 = nil
2800
2856
  end
2801
2857
  s0 << r1
@@ -2803,11 +2859,11 @@ module LogStashConfig
2803
2859
  r2 = _nt__
2804
2860
  s0 << r2
2805
2861
  if r2
2806
- if has_terminal?("in", false, index)
2807
- r3 = instantiate_node(SyntaxNode,input, index...(index + 2))
2808
- @index += 2
2862
+ if (match_len = has_terminal?("in", false, index))
2863
+ r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2864
+ @index += match_len
2809
2865
  else
2810
- terminal_parse_failure("in")
2866
+ terminal_parse_failure('"in"')
2811
2867
  r3 = nil
2812
2868
  end
2813
2869
  s0 << r3
@@ -2831,7 +2887,7 @@ module LogStashConfig
2831
2887
  if node_cache[:rvalue].has_key?(index)
2832
2888
  cached = node_cache[:rvalue][index]
2833
2889
  if cached
2834
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2890
+ node_cache[:rvalue][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2835
2891
  @index = cached.interval.end
2836
2892
  end
2837
2893
  return cached
@@ -2840,26 +2896,32 @@ module LogStashConfig
2840
2896
  i0 = index
2841
2897
  r1 = _nt_string
2842
2898
  if r1
2899
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2843
2900
  r0 = r1
2844
2901
  else
2845
2902
  r2 = _nt_number
2846
2903
  if r2
2904
+ r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2847
2905
  r0 = r2
2848
2906
  else
2849
2907
  r3 = _nt_selector
2850
2908
  if r3
2909
+ r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
2851
2910
  r0 = r3
2852
2911
  else
2853
2912
  r4 = _nt_array
2854
2913
  if r4
2914
+ r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
2855
2915
  r0 = r4
2856
2916
  else
2857
2917
  r5 = _nt_method_call
2858
2918
  if r5
2919
+ r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
2859
2920
  r0 = r5
2860
2921
  else
2861
2922
  r6 = _nt_regexp
2862
2923
  if r6
2924
+ r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
2863
2925
  r0 = r6
2864
2926
  else
2865
2927
  @index = i0
@@ -2921,7 +2983,7 @@ module LogStashConfig
2921
2983
  if node_cache[:method_call].has_key?(index)
2922
2984
  cached = node_cache[:method_call][index]
2923
2985
  if cached
2924
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2986
+ node_cache[:method_call][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2925
2987
  @index = cached.interval.end
2926
2988
  end
2927
2989
  return cached
@@ -2934,11 +2996,11 @@ module LogStashConfig
2934
2996
  r2 = _nt__
2935
2997
  s0 << r2
2936
2998
  if r2
2937
- if has_terminal?("(", false, index)
2938
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
2939
- @index += 1
2999
+ if (match_len = has_terminal?("(", false, index))
3000
+ r3 = true
3001
+ @index += match_len
2940
3002
  else
2941
- terminal_parse_failure("(")
3003
+ terminal_parse_failure('"("')
2942
3004
  r3 = nil
2943
3005
  end
2944
3006
  s0 << r3
@@ -2956,11 +3018,11 @@ module LogStashConfig
2956
3018
  r10 = _nt__
2957
3019
  s9 << r10
2958
3020
  if r10
2959
- if has_terminal?(",", false, index)
2960
- r11 = instantiate_node(SyntaxNode,input, index...(index + 1))
2961
- @index += 1
3021
+ if (match_len = has_terminal?(",", false, index))
3022
+ r11 = true
3023
+ @index += match_len
2962
3024
  else
2963
- terminal_parse_failure(",")
3025
+ terminal_parse_failure('","')
2964
3026
  r11 = nil
2965
3027
  end
2966
3028
  s9 << r11
@@ -3006,11 +3068,11 @@ module LogStashConfig
3006
3068
  r14 = _nt__
3007
3069
  s0 << r14
3008
3070
  if r14
3009
- if has_terminal?(")", false, index)
3010
- r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
3011
- @index += 1
3071
+ if (match_len = has_terminal?(")", false, index))
3072
+ r15 = true
3073
+ @index += match_len
3012
3074
  else
3013
- terminal_parse_failure(")")
3075
+ terminal_parse_failure('")"')
3014
3076
  r15 = nil
3015
3077
  end
3016
3078
  s0 << r15
@@ -3038,7 +3100,7 @@ module LogStashConfig
3038
3100
  if node_cache[:method].has_key?(index)
3039
3101
  cached = node_cache[:method][index]
3040
3102
  if cached
3041
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3103
+ node_cache[:method][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3042
3104
  @index = cached.interval.end
3043
3105
  end
3044
3106
  return cached
@@ -3078,7 +3140,7 @@ module LogStashConfig
3078
3140
  if node_cache[:compare_expression].has_key?(index)
3079
3141
  cached = node_cache[:compare_expression][index]
3080
3142
  if cached
3081
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3143
+ node_cache[:compare_expression][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3082
3144
  @index = cached.interval.end
3083
3145
  end
3084
3146
  return cached
@@ -3121,76 +3183,82 @@ module LogStashConfig
3121
3183
  if node_cache[:compare_operator].has_key?(index)
3122
3184
  cached = node_cache[:compare_operator][index]
3123
3185
  if cached
3124
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3186
+ node_cache[:compare_operator][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3125
3187
  @index = cached.interval.end
3126
3188
  end
3127
3189
  return cached
3128
3190
  end
3129
3191
 
3130
3192
  i0 = index
3131
- if has_terminal?("==", false, index)
3132
- r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
3133
- @index += 2
3193
+ if (match_len = has_terminal?("==", false, index))
3194
+ r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
3195
+ @index += match_len
3134
3196
  else
3135
- terminal_parse_failure("==")
3197
+ terminal_parse_failure('"=="')
3136
3198
  r1 = nil
3137
3199
  end
3138
3200
  if r1
3201
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
3139
3202
  r0 = r1
3140
3203
  r0.extend(LogStash::Config::AST::ComparisonOperator)
3141
3204
  else
3142
- if has_terminal?("!=", false, index)
3143
- r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
3144
- @index += 2
3205
+ if (match_len = has_terminal?("!=", false, index))
3206
+ r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
3207
+ @index += match_len
3145
3208
  else
3146
- terminal_parse_failure("!=")
3209
+ terminal_parse_failure('"!="')
3147
3210
  r2 = nil
3148
3211
  end
3149
3212
  if r2
3213
+ r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
3150
3214
  r0 = r2
3151
3215
  r0.extend(LogStash::Config::AST::ComparisonOperator)
3152
3216
  else
3153
- if has_terminal?("<=", false, index)
3154
- r3 = instantiate_node(SyntaxNode,input, index...(index + 2))
3155
- @index += 2
3217
+ if (match_len = has_terminal?("<=", false, index))
3218
+ r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
3219
+ @index += match_len
3156
3220
  else
3157
- terminal_parse_failure("<=")
3221
+ terminal_parse_failure('"<="')
3158
3222
  r3 = nil
3159
3223
  end
3160
3224
  if r3
3225
+ r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
3161
3226
  r0 = r3
3162
3227
  r0.extend(LogStash::Config::AST::ComparisonOperator)
3163
3228
  else
3164
- if has_terminal?(">=", false, index)
3165
- r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
3166
- @index += 2
3229
+ if (match_len = has_terminal?(">=", false, index))
3230
+ r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
3231
+ @index += match_len
3167
3232
  else
3168
- terminal_parse_failure(">=")
3233
+ terminal_parse_failure('">="')
3169
3234
  r4 = nil
3170
3235
  end
3171
3236
  if r4
3237
+ r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
3172
3238
  r0 = r4
3173
3239
  r0.extend(LogStash::Config::AST::ComparisonOperator)
3174
3240
  else
3175
- if has_terminal?("<", false, index)
3176
- r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
3177
- @index += 1
3241
+ if (match_len = has_terminal?("<", false, index))
3242
+ r5 = true
3243
+ @index += match_len
3178
3244
  else
3179
- terminal_parse_failure("<")
3245
+ terminal_parse_failure('"<"')
3180
3246
  r5 = nil
3181
3247
  end
3182
3248
  if r5
3249
+ r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
3183
3250
  r0 = r5
3184
3251
  r0.extend(LogStash::Config::AST::ComparisonOperator)
3185
3252
  else
3186
- if has_terminal?(">", false, index)
3187
- r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
3188
- @index += 1
3253
+ if (match_len = has_terminal?(">", false, index))
3254
+ r6 = true
3255
+ @index += match_len
3189
3256
  else
3190
- terminal_parse_failure(">")
3257
+ terminal_parse_failure('">"')
3191
3258
  r6 = nil
3192
3259
  end
3193
3260
  if r6
3261
+ r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
3194
3262
  r0 = r6
3195
3263
  r0.extend(LogStash::Config::AST::ComparisonOperator)
3196
3264
  else
@@ -3232,7 +3300,7 @@ module LogStashConfig
3232
3300
  if node_cache[:regexp_expression].has_key?(index)
3233
3301
  cached = node_cache[:regexp_expression][index]
3234
3302
  if cached
3235
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3303
+ node_cache[:regexp_expression][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3236
3304
  @index = cached.interval.end
3237
3305
  end
3238
3306
  return cached
@@ -3254,10 +3322,12 @@ module LogStashConfig
3254
3322
  i5 = index
3255
3323
  r6 = _nt_string
3256
3324
  if r6
3325
+ r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
3257
3326
  r5 = r6
3258
3327
  else
3259
3328
  r7 = _nt_regexp
3260
3329
  if r7
3330
+ r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
3261
3331
  r5 = r7
3262
3332
  else
3263
3333
  @index = i5
@@ -3287,32 +3357,34 @@ module LogStashConfig
3287
3357
  if node_cache[:regexp_operator].has_key?(index)
3288
3358
  cached = node_cache[:regexp_operator][index]
3289
3359
  if cached
3290
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3360
+ node_cache[:regexp_operator][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3291
3361
  @index = cached.interval.end
3292
3362
  end
3293
3363
  return cached
3294
3364
  end
3295
3365
 
3296
3366
  i0 = index
3297
- if has_terminal?("=~", false, index)
3298
- r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
3299
- @index += 2
3367
+ if (match_len = has_terminal?("=~", false, index))
3368
+ r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
3369
+ @index += match_len
3300
3370
  else
3301
- terminal_parse_failure("=~")
3371
+ terminal_parse_failure('"=~"')
3302
3372
  r1 = nil
3303
3373
  end
3304
3374
  if r1
3375
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
3305
3376
  r0 = r1
3306
3377
  r0.extend(LogStash::Config::AST::RegExpOperator)
3307
3378
  else
3308
- if has_terminal?("!~", false, index)
3309
- r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
3310
- @index += 2
3379
+ if (match_len = has_terminal?("!~", false, index))
3380
+ r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
3381
+ @index += match_len
3311
3382
  else
3312
- terminal_parse_failure("!~")
3383
+ terminal_parse_failure('"!~"')
3313
3384
  r2 = nil
3314
3385
  end
3315
3386
  if r2
3387
+ r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
3316
3388
  r0 = r2
3317
3389
  r0.extend(LogStash::Config::AST::RegExpOperator)
3318
3390
  else
@@ -3331,54 +3403,58 @@ module LogStashConfig
3331
3403
  if node_cache[:boolean_operator].has_key?(index)
3332
3404
  cached = node_cache[:boolean_operator][index]
3333
3405
  if cached
3334
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3406
+ node_cache[:boolean_operator][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3335
3407
  @index = cached.interval.end
3336
3408
  end
3337
3409
  return cached
3338
3410
  end
3339
3411
 
3340
3412
  i0 = index
3341
- if has_terminal?("and", false, index)
3342
- r1 = instantiate_node(SyntaxNode,input, index...(index + 3))
3343
- @index += 3
3413
+ if (match_len = has_terminal?("and", false, index))
3414
+ r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
3415
+ @index += match_len
3344
3416
  else
3345
- terminal_parse_failure("and")
3417
+ terminal_parse_failure('"and"')
3346
3418
  r1 = nil
3347
3419
  end
3348
3420
  if r1
3421
+ r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
3349
3422
  r0 = r1
3350
3423
  r0.extend(LogStash::Config::AST::BooleanOperator)
3351
3424
  else
3352
- if has_terminal?("or", false, index)
3353
- r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
3354
- @index += 2
3425
+ if (match_len = has_terminal?("or", false, index))
3426
+ r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
3427
+ @index += match_len
3355
3428
  else
3356
- terminal_parse_failure("or")
3429
+ terminal_parse_failure('"or"')
3357
3430
  r2 = nil
3358
3431
  end
3359
3432
  if r2
3433
+ r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
3360
3434
  r0 = r2
3361
3435
  r0.extend(LogStash::Config::AST::BooleanOperator)
3362
3436
  else
3363
- if has_terminal?("xor", false, index)
3364
- r3 = instantiate_node(SyntaxNode,input, index...(index + 3))
3365
- @index += 3
3437
+ if (match_len = has_terminal?("xor", false, index))
3438
+ r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
3439
+ @index += match_len
3366
3440
  else
3367
- terminal_parse_failure("xor")
3441
+ terminal_parse_failure('"xor"')
3368
3442
  r3 = nil
3369
3443
  end
3370
3444
  if r3
3445
+ r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
3371
3446
  r0 = r3
3372
3447
  r0.extend(LogStash::Config::AST::BooleanOperator)
3373
3448
  else
3374
- if has_terminal?("nand", false, index)
3375
- r4 = instantiate_node(SyntaxNode,input, index...(index + 4))
3376
- @index += 4
3449
+ if (match_len = has_terminal?("nand", false, index))
3450
+ r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
3451
+ @index += match_len
3377
3452
  else
3378
- terminal_parse_failure("nand")
3453
+ terminal_parse_failure('"nand"')
3379
3454
  r4 = nil
3380
3455
  end
3381
3456
  if r4
3457
+ r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
3382
3458
  r0 = r4
3383
3459
  r0.extend(LogStash::Config::AST::BooleanOperator)
3384
3460
  else
@@ -3399,7 +3475,7 @@ module LogStashConfig
3399
3475
  if node_cache[:selector].has_key?(index)
3400
3476
  cached = node_cache[:selector][index]
3401
3477
  if cached
3402
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3478
+ node_cache[:selector][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3403
3479
  @index = cached.interval.end
3404
3480
  end
3405
3481
  return cached
@@ -3434,28 +3510,29 @@ module LogStashConfig
3434
3510
  if node_cache[:selector_element].has_key?(index)
3435
3511
  cached = node_cache[:selector_element][index]
3436
3512
  if cached
3437
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3513
+ node_cache[:selector_element][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3438
3514
  @index = cached.interval.end
3439
3515
  end
3440
3516
  return cached
3441
3517
  end
3442
3518
 
3443
3519
  i0, s0 = index, []
3444
- if has_terminal?("[", false, index)
3445
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
3446
- @index += 1
3520
+ if (match_len = has_terminal?("[", false, index))
3521
+ r1 = true
3522
+ @index += match_len
3447
3523
  else
3448
- terminal_parse_failure("[")
3524
+ terminal_parse_failure('"["')
3449
3525
  r1 = nil
3450
3526
  end
3451
3527
  s0 << r1
3452
3528
  if r1
3453
3529
  s2, i2 = [], index
3454
3530
  loop do
3455
- if has_terminal?('\G[^\\],]', true, index)
3531
+ if has_terminal?(@regexps[gr = '\A[^\\]\\[,]'] ||= Regexp.new(gr), :regexp, index)
3456
3532
  r3 = true
3457
3533
  @index += 1
3458
3534
  else
3535
+ terminal_parse_failure('[^\\]\\[,]')
3459
3536
  r3 = nil
3460
3537
  end
3461
3538
  if r3
@@ -3472,11 +3549,11 @@ module LogStashConfig
3472
3549
  end
3473
3550
  s0 << r2
3474
3551
  if r2
3475
- if has_terminal?("]", false, index)
3476
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
3477
- @index += 1
3552
+ if (match_len = has_terminal?("]", false, index))
3553
+ r4 = true
3554
+ @index += match_len
3478
3555
  else
3479
- terminal_parse_failure("]")
3556
+ terminal_parse_failure('"]"')
3480
3557
  r4 = nil
3481
3558
  end
3482
3559
  s0 << r4