delorean_lang 0.3.26 → 0.3.27

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5085bb6c2a013879d9352228d1d88ed4b877f65c
4
- data.tar.gz: 74ed652e5794937673406b1f1e47412eee1701ac
3
+ metadata.gz: 2bfab39c7eb2f5b9b6e1d555a7619fc328bb35ba
4
+ data.tar.gz: 500fb6c1f12b2c6720cf44dc364050a8ba000af3
5
5
  SHA512:
6
- metadata.gz: dd2bca3f1026949d7701e16b26deda862db00aca13242160f8ef48d7a4e1cb7aaf6e77fcfdce126688bf33f5f06a7aac7c7df528bb6924c40846b8817b13ff01
7
- data.tar.gz: 60a4c75f4dcac87ac083bffb1fea1a4ef8997177b4703e26e01589260a7036e23ba3db0700aef4732cbd3e83b1bdc8c322c78a8e33b392f6977bd35084083402
6
+ metadata.gz: 25fa6a67fa25baa3a5df0cd3490a907d16450d9d99a03569b4183bff6f36c111720ba56d22dc5793ef1ff7877ec2c2170312254a01dcfc70e3c1947c5a361711
7
+ data.tar.gz: 31356b5b797cac7920c14e162422f6dcfb89b227ec5fe2b9e66236473418bbcfed3bb610b50fc620a1d32f95886cc9c9db6dcb5ade6641239de7b9a869f65310
@@ -584,25 +584,30 @@ module Delorean
584
584
  end
585
585
  s1 << r3
586
586
  if r3
587
- r5 = _nt_fn_args
587
+ r6 = _nt_fn_args
588
+ if r6
589
+ r5 = r6
590
+ else
591
+ r5 = instantiate_node(SyntaxNode,input, index...index)
592
+ end
588
593
  s1 << r5
589
594
  if r5
590
- r7 = _nt_sp
591
- if r7
592
- r6 = r7
595
+ r8 = _nt_sp
596
+ if r8
597
+ r7 = r8
593
598
  else
594
- r6 = instantiate_node(SyntaxNode,input, index...index)
599
+ r7 = instantiate_node(SyntaxNode,input, index...index)
595
600
  end
596
- s1 << r6
597
- if r6
601
+ s1 << r7
602
+ if r7
598
603
  if (match_len = has_terminal?(')', false, index))
599
- r8 = true
604
+ r9 = true
600
605
  @index += match_len
601
606
  else
602
607
  terminal_parse_failure('\')\'')
603
- r8 = nil
608
+ r9 = nil
604
609
  end
605
- s1 << r8
610
+ s1 << r9
606
611
  end
607
612
  end
608
613
  end
@@ -618,109 +623,109 @@ module Delorean
618
623
  r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
619
624
  r0 = r1
620
625
  else
621
- i9, s9 = index, []
622
- r10 = _nt_unary_op
623
- s9 << r10
624
- if r10
625
- r12 = _nt_sp
626
- if r12
627
- r11 = r12
626
+ i10, s10 = index, []
627
+ r11 = _nt_unary_op
628
+ s10 << r11
629
+ if r11
630
+ r13 = _nt_sp
631
+ if r13
632
+ r12 = r13
628
633
  else
629
- r11 = instantiate_node(SyntaxNode,input, index...index)
634
+ r12 = instantiate_node(SyntaxNode,input, index...index)
630
635
  end
631
- s9 << r11
632
- if r11
633
- r13 = _nt_expression
634
- s9 << r13
636
+ s10 << r12
637
+ if r12
638
+ r14 = _nt_expression
639
+ s10 << r14
635
640
  end
636
641
  end
637
- if s9.last
638
- r9 = instantiate_node(UnOp,input, i9...index, s9)
639
- r9.extend(Expression1)
642
+ if s10.last
643
+ r10 = instantiate_node(UnOp,input, i10...index, s10)
644
+ r10.extend(Expression1)
640
645
  else
641
- @index = i9
642
- r9 = nil
646
+ @index = i10
647
+ r10 = nil
643
648
  end
644
- if r9
645
- r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
646
- r0 = r9
649
+ if r10
650
+ r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
651
+ r0 = r10
647
652
  else
648
- i14, s14 = index, []
653
+ i15, s15 = index, []
649
654
  if (match_len = has_terminal?('if', false, index))
650
- r15 = instantiate_node(SyntaxNode,input, index...(index + match_len))
655
+ r16 = instantiate_node(SyntaxNode,input, index...(index + match_len))
651
656
  @index += match_len
652
657
  else
653
658
  terminal_parse_failure('\'if\'')
654
- r15 = nil
659
+ r16 = nil
655
660
  end
656
- s14 << r15
657
- if r15
658
- r17 = _nt_sp
659
- if r17
660
- r16 = r17
661
+ s15 << r16
662
+ if r16
663
+ r18 = _nt_sp
664
+ if r18
665
+ r17 = r18
661
666
  else
662
- r16 = instantiate_node(SyntaxNode,input, index...index)
667
+ r17 = instantiate_node(SyntaxNode,input, index...index)
663
668
  end
664
- s14 << r16
665
- if r16
666
- r18 = _nt_expression
667
- s14 << r18
668
- if r18
669
- r20 = _nt_sp
670
- if r20
671
- r19 = r20
669
+ s15 << r17
670
+ if r17
671
+ r19 = _nt_expression
672
+ s15 << r19
673
+ if r19
674
+ r21 = _nt_sp
675
+ if r21
676
+ r20 = r21
672
677
  else
673
- r19 = instantiate_node(SyntaxNode,input, index...index)
678
+ r20 = instantiate_node(SyntaxNode,input, index...index)
674
679
  end
675
- s14 << r19
676
- if r19
680
+ s15 << r20
681
+ if r20
677
682
  if (match_len = has_terminal?('then', false, index))
678
- r21 = instantiate_node(SyntaxNode,input, index...(index + match_len))
683
+ r22 = instantiate_node(SyntaxNode,input, index...(index + match_len))
679
684
  @index += match_len
680
685
  else
681
686
  terminal_parse_failure('\'then\'')
682
- r21 = nil
687
+ r22 = nil
683
688
  end
684
- s14 << r21
685
- if r21
686
- r23 = _nt_sp
687
- if r23
688
- r22 = r23
689
+ s15 << r22
690
+ if r22
691
+ r24 = _nt_sp
692
+ if r24
693
+ r23 = r24
689
694
  else
690
- r22 = instantiate_node(SyntaxNode,input, index...index)
695
+ r23 = instantiate_node(SyntaxNode,input, index...index)
691
696
  end
692
- s14 << r22
693
- if r22
694
- r24 = _nt_expression
695
- s14 << r24
696
- if r24
697
- r26 = _nt_sp
698
- if r26
699
- r25 = r26
697
+ s15 << r23
698
+ if r23
699
+ r25 = _nt_expression
700
+ s15 << r25
701
+ if r25
702
+ r27 = _nt_sp
703
+ if r27
704
+ r26 = r27
700
705
  else
701
- r25 = instantiate_node(SyntaxNode,input, index...index)
706
+ r26 = instantiate_node(SyntaxNode,input, index...index)
702
707
  end
703
- s14 << r25
704
- if r25
708
+ s15 << r26
709
+ if r26
705
710
  if (match_len = has_terminal?('else', false, index))
706
- r27 = instantiate_node(SyntaxNode,input, index...(index + match_len))
711
+ r28 = instantiate_node(SyntaxNode,input, index...(index + match_len))
707
712
  @index += match_len
708
713
  else
709
714
  terminal_parse_failure('\'else\'')
710
- r27 = nil
715
+ r28 = nil
711
716
  end
712
- s14 << r27
713
- if r27
714
- r29 = _nt_sp
715
- if r29
716
- r28 = r29
717
+ s15 << r28
718
+ if r28
719
+ r30 = _nt_sp
720
+ if r30
721
+ r29 = r30
717
722
  else
718
- r28 = instantiate_node(SyntaxNode,input, index...index)
723
+ r29 = instantiate_node(SyntaxNode,input, index...index)
719
724
  end
720
- s14 << r28
721
- if r28
722
- r30 = _nt_expression
723
- s14 << r30
725
+ s15 << r29
726
+ if r29
727
+ r31 = _nt_expression
728
+ s15 << r31
724
729
  end
725
730
  end
726
731
  end
@@ -731,61 +736,61 @@ module Delorean
731
736
  end
732
737
  end
733
738
  end
734
- if s14.last
735
- r14 = instantiate_node(IfElse,input, i14...index, s14)
736
- r14.extend(Expression2)
739
+ if s15.last
740
+ r15 = instantiate_node(IfElse,input, i15...index, s15)
741
+ r15.extend(Expression2)
737
742
  else
738
- @index = i14
739
- r14 = nil
743
+ @index = i15
744
+ r15 = nil
740
745
  end
741
- if r14
742
- r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
743
- r0 = r14
746
+ if r15
747
+ r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
748
+ r0 = r15
744
749
  else
745
- i31, s31 = index, []
746
- r32 = _nt_getattr_exp
747
- s31 << r32
748
- if r32
749
- r34 = _nt_sp
750
- if r34
751
- r33 = r34
750
+ i32, s32 = index, []
751
+ r33 = _nt_getattr_exp
752
+ s32 << r33
753
+ if r33
754
+ r35 = _nt_sp
755
+ if r35
756
+ r34 = r35
752
757
  else
753
- r33 = instantiate_node(SyntaxNode,input, index...index)
758
+ r34 = instantiate_node(SyntaxNode,input, index...index)
754
759
  end
755
- s31 << r33
756
- if r33
757
- r35 = _nt_binary_op
758
- s31 << r35
759
- if r35
760
- r37 = _nt_sp
761
- if r37
762
- r36 = r37
760
+ s32 << r34
761
+ if r34
762
+ r36 = _nt_binary_op
763
+ s32 << r36
764
+ if r36
765
+ r38 = _nt_sp
766
+ if r38
767
+ r37 = r38
763
768
  else
764
- r36 = instantiate_node(SyntaxNode,input, index...index)
769
+ r37 = instantiate_node(SyntaxNode,input, index...index)
765
770
  end
766
- s31 << r36
767
- if r36
768
- r38 = _nt_expression
769
- s31 << r38
771
+ s32 << r37
772
+ if r37
773
+ r39 = _nt_expression
774
+ s32 << r39
770
775
  end
771
776
  end
772
777
  end
773
778
  end
774
- if s31.last
775
- r31 = instantiate_node(BinOp,input, i31...index, s31)
776
- r31.extend(Expression3)
779
+ if s32.last
780
+ r32 = instantiate_node(BinOp,input, i32...index, s32)
781
+ r32.extend(Expression3)
777
782
  else
778
- @index = i31
779
- r31 = nil
783
+ @index = i32
784
+ r32 = nil
780
785
  end
781
- if r31
782
- r31 = SyntaxNode.new(input, (index-1)...index) if r31 == true
783
- r0 = r31
786
+ if r32
787
+ r32 = SyntaxNode.new(input, (index-1)...index) if r32 == true
788
+ r0 = r32
784
789
  else
785
- r39 = _nt_getattr_exp
786
- if r39
787
- r39 = SyntaxNode.new(input, (index-1)...index) if r39 == true
788
- r0 = r39
790
+ r40 = _nt_getattr_exp
791
+ if r40
792
+ r40 = SyntaxNode.new(input, (index-1)...index) if r40 == true
793
+ r0 = r40
789
794
  else
790
795
  @index = i0
791
796
  r0 = nil
@@ -22,7 +22,7 @@ grammar Delorean
22
22
  end
23
23
 
24
24
  rule expression
25
- 'ERR(' sp? args:fn_args sp? ')' <ErrorOp>
25
+ 'ERR(' sp? args:fn_args? sp? ')' <ErrorOp>
26
26
  /
27
27
  op:unary_op sp? e:expression <UnOp>
28
28
  /
@@ -194,11 +194,11 @@ eos
194
194
  # hacky, for backwards compatibility
195
195
  class ErrorOp < SNode
196
196
  def check(context, *)
197
- args.check(context)
197
+ args.text_value=='' ? [] : args.check(context)
198
198
  end
199
199
 
200
200
  def rewrite(context, *)
201
- "_err(#{args.rewrite(context)})"
201
+ args.text_value!='' ? "_err(#{args.rewrite(context)})" : "binding.pry; 0"
202
202
  end
203
203
  end
204
204
 
@@ -1,3 +1,3 @@
1
1
  module Delorean
2
- VERSION = "0.3.26"
2
+ VERSION = "0.3.27"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delorean_lang
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.26
4
+ version: 0.3.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arman Bostani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-14 00:00:00.000000000 Z
11
+ date: 2017-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: treetop