|
|
@ -312,30 +312,30 @@ out aliasedType); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void Qualident( |
|
|
|
void Qualident( |
|
|
|
#line 2730 "VBNET.ATG"
|
|
|
|
#line 2733 "VBNET.ATG"
|
|
|
|
out string qualident) { |
|
|
|
out string qualident) { |
|
|
|
|
|
|
|
|
|
|
|
#line 2732 "VBNET.ATG"
|
|
|
|
#line 2735 "VBNET.ATG"
|
|
|
|
string name; |
|
|
|
string name; |
|
|
|
qualidentBuilder.Length = 0; |
|
|
|
qualidentBuilder.Length = 0; |
|
|
|
|
|
|
|
|
|
|
|
Identifier(); |
|
|
|
Identifier(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2736 "VBNET.ATG"
|
|
|
|
#line 2739 "VBNET.ATG"
|
|
|
|
qualidentBuilder.Append(t.val); |
|
|
|
qualidentBuilder.Append(t.val); |
|
|
|
while ( |
|
|
|
while ( |
|
|
|
#line 2737 "VBNET.ATG"
|
|
|
|
#line 2740 "VBNET.ATG"
|
|
|
|
DotAndIdentOrKw()) { |
|
|
|
DotAndIdentOrKw()) { |
|
|
|
Expect(10); |
|
|
|
Expect(10); |
|
|
|
IdentifierOrKeyword( |
|
|
|
IdentifierOrKeyword( |
|
|
|
#line 2737 "VBNET.ATG"
|
|
|
|
#line 2740 "VBNET.ATG"
|
|
|
|
out name); |
|
|
|
out name); |
|
|
|
|
|
|
|
|
|
|
|
#line 2737 "VBNET.ATG"
|
|
|
|
#line 2740 "VBNET.ATG"
|
|
|
|
qualidentBuilder.Append('.'); qualidentBuilder.Append(name); |
|
|
|
qualidentBuilder.Append('.'); qualidentBuilder.Append(name); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#line 2739 "VBNET.ATG"
|
|
|
|
#line 2742 "VBNET.ATG"
|
|
|
|
qualident = qualidentBuilder.ToString(); |
|
|
|
qualident = qualidentBuilder.ToString(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -439,69 +439,69 @@ out attribute); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void TypeModifier( |
|
|
|
void TypeModifier( |
|
|
|
#line 2806 "VBNET.ATG"
|
|
|
|
#line 2809 "VBNET.ATG"
|
|
|
|
ModifierList m) { |
|
|
|
ModifierList m) { |
|
|
|
switch (la.kind) { |
|
|
|
switch (la.kind) { |
|
|
|
case 148: { |
|
|
|
case 148: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2807 "VBNET.ATG"
|
|
|
|
#line 2810 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Public, t.Location); |
|
|
|
m.Add(Modifiers.Public, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 147: { |
|
|
|
case 147: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2808 "VBNET.ATG"
|
|
|
|
#line 2811 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Protected, t.Location); |
|
|
|
m.Add(Modifiers.Protected, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 99: { |
|
|
|
case 99: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2809 "VBNET.ATG"
|
|
|
|
#line 2812 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Internal, t.Location); |
|
|
|
m.Add(Modifiers.Internal, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 145: { |
|
|
|
case 145: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2810 "VBNET.ATG"
|
|
|
|
#line 2813 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Private, t.Location); |
|
|
|
m.Add(Modifiers.Private, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 158: { |
|
|
|
case 158: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2811 "VBNET.ATG"
|
|
|
|
#line 2814 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Static, t.Location); |
|
|
|
m.Add(Modifiers.Static, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 157: { |
|
|
|
case 157: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2812 "VBNET.ATG"
|
|
|
|
#line 2815 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.New, t.Location); |
|
|
|
m.Add(Modifiers.New, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 122: { |
|
|
|
case 122: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2813 "VBNET.ATG"
|
|
|
|
#line 2816 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Abstract, t.Location); |
|
|
|
m.Add(Modifiers.Abstract, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 131: { |
|
|
|
case 131: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2814 "VBNET.ATG"
|
|
|
|
#line 2817 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Sealed, t.Location); |
|
|
|
m.Add(Modifiers.Sealed, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 203: { |
|
|
|
case 203: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2815 "VBNET.ATG"
|
|
|
|
#line 2818 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Partial, t.Location); |
|
|
|
m.Add(Modifiers.Partial, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
@ -1267,132 +1267,132 @@ out p); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void MemberModifier( |
|
|
|
void MemberModifier( |
|
|
|
#line 2818 "VBNET.ATG"
|
|
|
|
#line 2821 "VBNET.ATG"
|
|
|
|
ModifierList m) { |
|
|
|
ModifierList m) { |
|
|
|
switch (la.kind) { |
|
|
|
switch (la.kind) { |
|
|
|
case 122: { |
|
|
|
case 122: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2819 "VBNET.ATG"
|
|
|
|
#line 2822 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Abstract, t.Location); |
|
|
|
m.Add(Modifiers.Abstract, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 79: { |
|
|
|
case 79: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2820 "VBNET.ATG"
|
|
|
|
#line 2823 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Default, t.Location); |
|
|
|
m.Add(Modifiers.Default, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 99: { |
|
|
|
case 99: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2821 "VBNET.ATG"
|
|
|
|
#line 2824 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Internal, t.Location); |
|
|
|
m.Add(Modifiers.Internal, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 157: { |
|
|
|
case 157: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2822 "VBNET.ATG"
|
|
|
|
#line 2825 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.New, t.Location); |
|
|
|
m.Add(Modifiers.New, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 142: { |
|
|
|
case 142: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2823 "VBNET.ATG"
|
|
|
|
#line 2826 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Override, t.Location); |
|
|
|
m.Add(Modifiers.Override, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 123: { |
|
|
|
case 123: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2824 "VBNET.ATG"
|
|
|
|
#line 2827 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Abstract, t.Location); |
|
|
|
m.Add(Modifiers.Abstract, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 145: { |
|
|
|
case 145: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2825 "VBNET.ATG"
|
|
|
|
#line 2828 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Private, t.Location); |
|
|
|
m.Add(Modifiers.Private, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 147: { |
|
|
|
case 147: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2826 "VBNET.ATG"
|
|
|
|
#line 2829 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Protected, t.Location); |
|
|
|
m.Add(Modifiers.Protected, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 148: { |
|
|
|
case 148: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2827 "VBNET.ATG"
|
|
|
|
#line 2830 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Public, t.Location); |
|
|
|
m.Add(Modifiers.Public, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 131: { |
|
|
|
case 131: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2828 "VBNET.ATG"
|
|
|
|
#line 2831 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Sealed, t.Location); |
|
|
|
m.Add(Modifiers.Sealed, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 132: { |
|
|
|
case 132: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2829 "VBNET.ATG"
|
|
|
|
#line 2832 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Sealed, t.Location); |
|
|
|
m.Add(Modifiers.Sealed, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 158: { |
|
|
|
case 158: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2830 "VBNET.ATG"
|
|
|
|
#line 2833 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Static, t.Location); |
|
|
|
m.Add(Modifiers.Static, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 141: { |
|
|
|
case 141: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2831 "VBNET.ATG"
|
|
|
|
#line 2834 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Virtual, t.Location); |
|
|
|
m.Add(Modifiers.Virtual, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 140: { |
|
|
|
case 140: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2832 "VBNET.ATG"
|
|
|
|
#line 2835 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Overloads, t.Location); |
|
|
|
m.Add(Modifiers.Overloads, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 150: { |
|
|
|
case 150: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2833 "VBNET.ATG"
|
|
|
|
#line 2836 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.ReadOnly, t.Location); |
|
|
|
m.Add(Modifiers.ReadOnly, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 184: { |
|
|
|
case 184: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2834 "VBNET.ATG"
|
|
|
|
#line 2837 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.WriteOnly, t.Location); |
|
|
|
m.Add(Modifiers.WriteOnly, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 183: { |
|
|
|
case 183: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2835 "VBNET.ATG"
|
|
|
|
#line 2838 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.WithEvents, t.Location); |
|
|
|
m.Add(Modifiers.WithEvents, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 81: { |
|
|
|
case 81: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2836 "VBNET.ATG"
|
|
|
|
#line 2839 "VBNET.ATG"
|
|
|
|
m.Add(Modifiers.Dim, t.Location); |
|
|
|
m.Add(Modifiers.Dim, t.Location); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
@ -3103,31 +3103,31 @@ out stmt); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void PropertyAccessorAccessModifier( |
|
|
|
void PropertyAccessorAccessModifier( |
|
|
|
#line 2839 "VBNET.ATG"
|
|
|
|
#line 2842 "VBNET.ATG"
|
|
|
|
out Modifiers m) { |
|
|
|
out Modifiers m) { |
|
|
|
|
|
|
|
|
|
|
|
#line 2840 "VBNET.ATG"
|
|
|
|
#line 2843 "VBNET.ATG"
|
|
|
|
m = Modifiers.None; |
|
|
|
m = Modifiers.None; |
|
|
|
while (StartOf(26)) { |
|
|
|
while (StartOf(26)) { |
|
|
|
if (la.kind == 148) { |
|
|
|
if (la.kind == 148) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2842 "VBNET.ATG"
|
|
|
|
#line 2845 "VBNET.ATG"
|
|
|
|
m |= Modifiers.Public; |
|
|
|
m |= Modifiers.Public; |
|
|
|
} else if (la.kind == 147) { |
|
|
|
} else if (la.kind == 147) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2843 "VBNET.ATG"
|
|
|
|
#line 2846 "VBNET.ATG"
|
|
|
|
m |= Modifiers.Protected; |
|
|
|
m |= Modifiers.Protected; |
|
|
|
} else if (la.kind == 99) { |
|
|
|
} else if (la.kind == 99) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2844 "VBNET.ATG"
|
|
|
|
#line 2847 "VBNET.ATG"
|
|
|
|
m |= Modifiers.Internal; |
|
|
|
m |= Modifiers.Internal; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2845 "VBNET.ATG"
|
|
|
|
#line 2848 "VBNET.ATG"
|
|
|
|
m |= Modifiers.Private; |
|
|
|
m |= Modifiers.Private; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -3765,10 +3765,10 @@ out name); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void IdentifierOrKeyword( |
|
|
|
void IdentifierOrKeyword( |
|
|
|
#line 2773 "VBNET.ATG"
|
|
|
|
#line 2776 "VBNET.ATG"
|
|
|
|
out string name) { |
|
|
|
out string name) { |
|
|
|
|
|
|
|
|
|
|
|
#line 2775 "VBNET.ATG"
|
|
|
|
#line 2778 "VBNET.ATG"
|
|
|
|
lexer.NextToken(); name = t.val; |
|
|
|
lexer.NextToken(); name = t.val; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -3833,114 +3833,114 @@ out parameters); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void PrimitiveTypeName( |
|
|
|
void PrimitiveTypeName( |
|
|
|
#line 2780 "VBNET.ATG"
|
|
|
|
#line 2783 "VBNET.ATG"
|
|
|
|
out string type) { |
|
|
|
out string type) { |
|
|
|
|
|
|
|
|
|
|
|
#line 2781 "VBNET.ATG"
|
|
|
|
#line 2784 "VBNET.ATG"
|
|
|
|
type = String.Empty; |
|
|
|
type = String.Empty; |
|
|
|
switch (la.kind) { |
|
|
|
switch (la.kind) { |
|
|
|
case 52: { |
|
|
|
case 52: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2782 "VBNET.ATG"
|
|
|
|
#line 2785 "VBNET.ATG"
|
|
|
|
type = "Boolean"; |
|
|
|
type = "Boolean"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 76: { |
|
|
|
case 76: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2783 "VBNET.ATG"
|
|
|
|
#line 2786 "VBNET.ATG"
|
|
|
|
type = "Date"; |
|
|
|
type = "Date"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 65: { |
|
|
|
case 65: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2784 "VBNET.ATG"
|
|
|
|
#line 2787 "VBNET.ATG"
|
|
|
|
type = "Char"; |
|
|
|
type = "Char"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 165: { |
|
|
|
case 165: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2785 "VBNET.ATG"
|
|
|
|
#line 2788 "VBNET.ATG"
|
|
|
|
type = "String"; |
|
|
|
type = "String"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 77: { |
|
|
|
case 77: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2786 "VBNET.ATG"
|
|
|
|
#line 2789 "VBNET.ATG"
|
|
|
|
type = "Decimal"; |
|
|
|
type = "Decimal"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 54: { |
|
|
|
case 54: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2787 "VBNET.ATG"
|
|
|
|
#line 2790 "VBNET.ATG"
|
|
|
|
type = "Byte"; |
|
|
|
type = "Byte"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 159: { |
|
|
|
case 159: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2788 "VBNET.ATG"
|
|
|
|
#line 2791 "VBNET.ATG"
|
|
|
|
type = "Short"; |
|
|
|
type = "Short"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 111: { |
|
|
|
case 111: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2789 "VBNET.ATG"
|
|
|
|
#line 2792 "VBNET.ATG"
|
|
|
|
type = "Integer"; |
|
|
|
type = "Integer"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 117: { |
|
|
|
case 117: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2790 "VBNET.ATG"
|
|
|
|
#line 2793 "VBNET.ATG"
|
|
|
|
type = "Long"; |
|
|
|
type = "Long"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 160: { |
|
|
|
case 160: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2791 "VBNET.ATG"
|
|
|
|
#line 2794 "VBNET.ATG"
|
|
|
|
type = "Single"; |
|
|
|
type = "Single"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 84: { |
|
|
|
case 84: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2792 "VBNET.ATG"
|
|
|
|
#line 2795 "VBNET.ATG"
|
|
|
|
type = "Double"; |
|
|
|
type = "Double"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 191: { |
|
|
|
case 191: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2793 "VBNET.ATG"
|
|
|
|
#line 2796 "VBNET.ATG"
|
|
|
|
type = "UInteger"; |
|
|
|
type = "UInteger"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 192: { |
|
|
|
case 192: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2794 "VBNET.ATG"
|
|
|
|
#line 2797 "VBNET.ATG"
|
|
|
|
type = "ULong"; |
|
|
|
type = "ULong"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 193: { |
|
|
|
case 193: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2795 "VBNET.ATG"
|
|
|
|
#line 2798 "VBNET.ATG"
|
|
|
|
type = "UShort"; |
|
|
|
type = "UShort"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 190: { |
|
|
|
case 190: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2796 "VBNET.ATG"
|
|
|
|
#line 2799 "VBNET.ATG"
|
|
|
|
type = "SByte"; |
|
|
|
type = "SByte"; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
@ -4843,27 +4843,27 @@ out expr); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void ParameterModifier( |
|
|
|
void ParameterModifier( |
|
|
|
#line 2799 "VBNET.ATG"
|
|
|
|
#line 2802 "VBNET.ATG"
|
|
|
|
ParamModifierList m) { |
|
|
|
ParamModifierList m) { |
|
|
|
if (la.kind == 55) { |
|
|
|
if (la.kind == 55) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2800 "VBNET.ATG"
|
|
|
|
#line 2803 "VBNET.ATG"
|
|
|
|
m.Add(ParameterModifiers.In); |
|
|
|
m.Add(ParameterModifiers.In); |
|
|
|
} else if (la.kind == 53) { |
|
|
|
} else if (la.kind == 53) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2801 "VBNET.ATG"
|
|
|
|
#line 2804 "VBNET.ATG"
|
|
|
|
m.Add(ParameterModifiers.Ref); |
|
|
|
m.Add(ParameterModifiers.Ref); |
|
|
|
} else if (la.kind == 137) { |
|
|
|
} else if (la.kind == 137) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2802 "VBNET.ATG"
|
|
|
|
#line 2805 "VBNET.ATG"
|
|
|
|
m.Add(ParameterModifiers.Optional); |
|
|
|
m.Add(ParameterModifiers.Optional); |
|
|
|
} else if (la.kind == 143) { |
|
|
|
} else if (la.kind == 143) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2803 "VBNET.ATG"
|
|
|
|
#line 2806 "VBNET.ATG"
|
|
|
|
m.Add(ParameterModifiers.Params); |
|
|
|
m.Add(ParameterModifiers.Params); |
|
|
|
} else SynErr(252); |
|
|
|
} else SynErr(252); |
|
|
|
} |
|
|
|
} |
|
|
@ -5731,87 +5731,87 @@ localVariableDeclaration.Variables); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void TryStatement( |
|
|
|
void TryStatement( |
|
|
|
#line 2696 "VBNET.ATG"
|
|
|
|
#line 2699 "VBNET.ATG"
|
|
|
|
out Statement tryStatement) { |
|
|
|
out Statement tryStatement) { |
|
|
|
|
|
|
|
|
|
|
|
#line 2698 "VBNET.ATG"
|
|
|
|
#line 2701 "VBNET.ATG"
|
|
|
|
Statement blockStmt = null, finallyStmt = null;List<CatchClause> catchClauses = null; |
|
|
|
Statement blockStmt = null, finallyStmt = null;List<CatchClause> catchClauses = null; |
|
|
|
|
|
|
|
|
|
|
|
Expect(174); |
|
|
|
Expect(174); |
|
|
|
EndOfStmt(); |
|
|
|
EndOfStmt(); |
|
|
|
Block( |
|
|
|
Block( |
|
|
|
#line 2701 "VBNET.ATG"
|
|
|
|
#line 2704 "VBNET.ATG"
|
|
|
|
out blockStmt); |
|
|
|
out blockStmt); |
|
|
|
if (la.kind == 58 || la.kind == 88 || la.kind == 97) { |
|
|
|
if (la.kind == 58 || la.kind == 88 || la.kind == 97) { |
|
|
|
CatchClauses( |
|
|
|
CatchClauses( |
|
|
|
#line 2702 "VBNET.ATG"
|
|
|
|
#line 2705 "VBNET.ATG"
|
|
|
|
out catchClauses); |
|
|
|
out catchClauses); |
|
|
|
} |
|
|
|
} |
|
|
|
if (la.kind == 97) { |
|
|
|
if (la.kind == 97) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
EndOfStmt(); |
|
|
|
EndOfStmt(); |
|
|
|
Block( |
|
|
|
Block( |
|
|
|
#line 2703 "VBNET.ATG"
|
|
|
|
#line 2706 "VBNET.ATG"
|
|
|
|
out finallyStmt); |
|
|
|
out finallyStmt); |
|
|
|
} |
|
|
|
} |
|
|
|
Expect(88); |
|
|
|
Expect(88); |
|
|
|
Expect(174); |
|
|
|
Expect(174); |
|
|
|
|
|
|
|
|
|
|
|
#line 2706 "VBNET.ATG"
|
|
|
|
#line 2709 "VBNET.ATG"
|
|
|
|
tryStatement = new TryCatchStatement(blockStmt, catchClauses, finallyStmt); |
|
|
|
tryStatement = new TryCatchStatement(blockStmt, catchClauses, finallyStmt); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void WithStatement( |
|
|
|
void WithStatement( |
|
|
|
#line 2676 "VBNET.ATG"
|
|
|
|
#line 2679 "VBNET.ATG"
|
|
|
|
out Statement withStatement) { |
|
|
|
out Statement withStatement) { |
|
|
|
|
|
|
|
|
|
|
|
#line 2678 "VBNET.ATG"
|
|
|
|
#line 2681 "VBNET.ATG"
|
|
|
|
Statement blockStmt = null; |
|
|
|
Statement blockStmt = null; |
|
|
|
Expression expr = null; |
|
|
|
Expression expr = null; |
|
|
|
|
|
|
|
|
|
|
|
Expect(182); |
|
|
|
Expect(182); |
|
|
|
|
|
|
|
|
|
|
|
#line 2681 "VBNET.ATG"
|
|
|
|
#line 2684 "VBNET.ATG"
|
|
|
|
Location start = t.Location; |
|
|
|
Location start = t.Location; |
|
|
|
Expr( |
|
|
|
Expr( |
|
|
|
#line 2682 "VBNET.ATG"
|
|
|
|
#line 2685 "VBNET.ATG"
|
|
|
|
out expr); |
|
|
|
out expr); |
|
|
|
EndOfStmt(); |
|
|
|
EndOfStmt(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2684 "VBNET.ATG"
|
|
|
|
#line 2687 "VBNET.ATG"
|
|
|
|
withStatement = new WithStatement(expr); |
|
|
|
withStatement = new WithStatement(expr); |
|
|
|
withStatement.StartLocation = start; |
|
|
|
withStatement.StartLocation = start; |
|
|
|
|
|
|
|
|
|
|
|
Block( |
|
|
|
Block( |
|
|
|
#line 2687 "VBNET.ATG"
|
|
|
|
#line 2690 "VBNET.ATG"
|
|
|
|
out blockStmt); |
|
|
|
out blockStmt); |
|
|
|
|
|
|
|
|
|
|
|
#line 2689 "VBNET.ATG"
|
|
|
|
#line 2692 "VBNET.ATG"
|
|
|
|
((WithStatement)withStatement).Body = (BlockStatement)blockStmt; |
|
|
|
((WithStatement)withStatement).Body = (BlockStatement)blockStmt; |
|
|
|
|
|
|
|
|
|
|
|
Expect(88); |
|
|
|
Expect(88); |
|
|
|
Expect(182); |
|
|
|
Expect(182); |
|
|
|
|
|
|
|
|
|
|
|
#line 2692 "VBNET.ATG"
|
|
|
|
#line 2695 "VBNET.ATG"
|
|
|
|
withStatement.EndLocation = t.Location; |
|
|
|
withStatement.EndLocation = t.Location; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void WhileOrUntil( |
|
|
|
void WhileOrUntil( |
|
|
|
#line 2669 "VBNET.ATG"
|
|
|
|
#line 2672 "VBNET.ATG"
|
|
|
|
out ConditionType conditionType) { |
|
|
|
out ConditionType conditionType) { |
|
|
|
|
|
|
|
|
|
|
|
#line 2670 "VBNET.ATG"
|
|
|
|
#line 2673 "VBNET.ATG"
|
|
|
|
conditionType = ConditionType.None; |
|
|
|
conditionType = ConditionType.None; |
|
|
|
if (la.kind == 181) { |
|
|
|
if (la.kind == 181) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2671 "VBNET.ATG"
|
|
|
|
#line 2674 "VBNET.ATG"
|
|
|
|
conditionType = ConditionType.While; |
|
|
|
conditionType = ConditionType.While; |
|
|
|
} else if (la.kind == 177) { |
|
|
|
} else if (la.kind == 177) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2672 "VBNET.ATG"
|
|
|
|
#line 2675 "VBNET.ATG"
|
|
|
|
conditionType = ConditionType.Until; |
|
|
|
conditionType = ConditionType.Until; |
|
|
|
} else SynErr(262); |
|
|
|
} else SynErr(262); |
|
|
|
} |
|
|
|
} |
|
|
@ -5867,26 +5867,26 @@ ref expr); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void CaseClauses( |
|
|
|
void CaseClauses( |
|
|
|
#line 2629 "VBNET.ATG"
|
|
|
|
#line 2632 "VBNET.ATG"
|
|
|
|
out List<CaseLabel> caseClauses) { |
|
|
|
out List<CaseLabel> caseClauses) { |
|
|
|
|
|
|
|
|
|
|
|
#line 2631 "VBNET.ATG"
|
|
|
|
#line 2634 "VBNET.ATG"
|
|
|
|
caseClauses = new List<CaseLabel>(); |
|
|
|
caseClauses = new List<CaseLabel>(); |
|
|
|
CaseLabel caseClause = null; |
|
|
|
CaseLabel caseClause = null; |
|
|
|
|
|
|
|
|
|
|
|
CaseClause( |
|
|
|
CaseClause( |
|
|
|
#line 2634 "VBNET.ATG"
|
|
|
|
#line 2637 "VBNET.ATG"
|
|
|
|
out caseClause); |
|
|
|
out caseClause); |
|
|
|
|
|
|
|
|
|
|
|
#line 2634 "VBNET.ATG"
|
|
|
|
#line 2637 "VBNET.ATG"
|
|
|
|
if (caseClause != null) { caseClauses.Add(caseClause); } |
|
|
|
if (caseClause != null) { caseClauses.Add(caseClause); } |
|
|
|
while (la.kind == 12) { |
|
|
|
while (la.kind == 12) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
CaseClause( |
|
|
|
CaseClause( |
|
|
|
#line 2635 "VBNET.ATG"
|
|
|
|
#line 2638 "VBNET.ATG"
|
|
|
|
out caseClause); |
|
|
|
out caseClause); |
|
|
|
|
|
|
|
|
|
|
|
#line 2635 "VBNET.ATG"
|
|
|
|
#line 2638 "VBNET.ATG"
|
|
|
|
if (caseClause != null) { caseClauses.Add(caseClause); } |
|
|
|
if (caseClause != null) { caseClauses.Add(caseClause); } |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -5961,30 +5961,30 @@ out label); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void ResumeStatement( |
|
|
|
void ResumeStatement( |
|
|
|
#line 2618 "VBNET.ATG"
|
|
|
|
#line 2621 "VBNET.ATG"
|
|
|
|
out ResumeStatement resumeStatement) { |
|
|
|
out ResumeStatement resumeStatement) { |
|
|
|
|
|
|
|
|
|
|
|
#line 2620 "VBNET.ATG"
|
|
|
|
#line 2623 "VBNET.ATG"
|
|
|
|
resumeStatement = null; |
|
|
|
resumeStatement = null; |
|
|
|
string label = String.Empty; |
|
|
|
string label = String.Empty; |
|
|
|
|
|
|
|
|
|
|
|
if ( |
|
|
|
if ( |
|
|
|
#line 2623 "VBNET.ATG"
|
|
|
|
#line 2626 "VBNET.ATG"
|
|
|
|
IsResumeNext()) { |
|
|
|
IsResumeNext()) { |
|
|
|
Expect(153); |
|
|
|
Expect(153); |
|
|
|
Expect(128); |
|
|
|
Expect(128); |
|
|
|
|
|
|
|
|
|
|
|
#line 2624 "VBNET.ATG"
|
|
|
|
#line 2627 "VBNET.ATG"
|
|
|
|
resumeStatement = new ResumeStatement(true); |
|
|
|
resumeStatement = new ResumeStatement(true); |
|
|
|
} else if (la.kind == 153) { |
|
|
|
} else if (la.kind == 153) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
if (StartOf(37)) { |
|
|
|
if (StartOf(37)) { |
|
|
|
LabelName( |
|
|
|
LabelName( |
|
|
|
#line 2625 "VBNET.ATG"
|
|
|
|
#line 2628 "VBNET.ATG"
|
|
|
|
out label); |
|
|
|
out label); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#line 2625 "VBNET.ATG"
|
|
|
|
#line 2628 "VBNET.ATG"
|
|
|
|
resumeStatement = new ResumeStatement(label); |
|
|
|
resumeStatement = new ResumeStatement(label); |
|
|
|
} else SynErr(264); |
|
|
|
} else SynErr(264); |
|
|
|
} |
|
|
|
} |
|
|
@ -6021,16 +6021,19 @@ out arguments, out canBeNormal, out canBeRedim); |
|
|
|
#line 2610 "VBNET.ATG"
|
|
|
|
#line 2610 "VBNET.ATG"
|
|
|
|
expr = new InvocationExpression(expr, arguments); |
|
|
|
expr = new InvocationExpression(expr, arguments); |
|
|
|
if (canBeRedim == false || canBeNormal && (la.kind == Tokens.Dot || la.kind == Tokens.OpenParenthesis)) { |
|
|
|
if (canBeRedim == false || canBeNormal && (la.kind == Tokens.Dot || la.kind == Tokens.OpenParenthesis)) { |
|
|
|
ReDimClauseInternal(ref expr); |
|
|
|
if (this.Errors.Count == 0) { |
|
|
|
|
|
|
|
// don't recurse on parse errors - could result in endless recursion
|
|
|
|
|
|
|
|
ReDimClauseInternal(ref expr); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void CaseClause( |
|
|
|
void CaseClause( |
|
|
|
#line 2639 "VBNET.ATG"
|
|
|
|
#line 2642 "VBNET.ATG"
|
|
|
|
out CaseLabel caseClause) { |
|
|
|
out CaseLabel caseClause) { |
|
|
|
|
|
|
|
|
|
|
|
#line 2641 "VBNET.ATG"
|
|
|
|
#line 2644 "VBNET.ATG"
|
|
|
|
Expression expr = null; |
|
|
|
Expression expr = null; |
|
|
|
Expression sexpr = null; |
|
|
|
Expression sexpr = null; |
|
|
|
BinaryOperatorType op = BinaryOperatorType.None; |
|
|
|
BinaryOperatorType op = BinaryOperatorType.None; |
|
|
@ -6039,7 +6042,7 @@ out CaseLabel caseClause) { |
|
|
|
if (la.kind == 86) { |
|
|
|
if (la.kind == 86) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2647 "VBNET.ATG"
|
|
|
|
#line 2650 "VBNET.ATG"
|
|
|
|
caseClause = new CaseLabel(); |
|
|
|
caseClause = new CaseLabel(); |
|
|
|
} else if (StartOf(38)) { |
|
|
|
} else if (StartOf(38)) { |
|
|
|
if (la.kind == 113) { |
|
|
|
if (la.kind == 113) { |
|
|
@ -6049,76 +6052,76 @@ out CaseLabel caseClause) { |
|
|
|
case 27: { |
|
|
|
case 27: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2651 "VBNET.ATG"
|
|
|
|
#line 2654 "VBNET.ATG"
|
|
|
|
op = BinaryOperatorType.LessThan; |
|
|
|
op = BinaryOperatorType.LessThan; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 26: { |
|
|
|
case 26: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2652 "VBNET.ATG"
|
|
|
|
#line 2655 "VBNET.ATG"
|
|
|
|
op = BinaryOperatorType.GreaterThan; |
|
|
|
op = BinaryOperatorType.GreaterThan; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 30: { |
|
|
|
case 30: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2653 "VBNET.ATG"
|
|
|
|
#line 2656 "VBNET.ATG"
|
|
|
|
op = BinaryOperatorType.LessThanOrEqual; |
|
|
|
op = BinaryOperatorType.LessThanOrEqual; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 29: { |
|
|
|
case 29: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2654 "VBNET.ATG"
|
|
|
|
#line 2657 "VBNET.ATG"
|
|
|
|
op = BinaryOperatorType.GreaterThanOrEqual; |
|
|
|
op = BinaryOperatorType.GreaterThanOrEqual; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 11: { |
|
|
|
case 11: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2655 "VBNET.ATG"
|
|
|
|
#line 2658 "VBNET.ATG"
|
|
|
|
op = BinaryOperatorType.Equality; |
|
|
|
op = BinaryOperatorType.Equality; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
case 28: { |
|
|
|
case 28: { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2656 "VBNET.ATG"
|
|
|
|
#line 2659 "VBNET.ATG"
|
|
|
|
op = BinaryOperatorType.InEquality; |
|
|
|
op = BinaryOperatorType.InEquality; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
default: SynErr(265); break; |
|
|
|
default: SynErr(265); break; |
|
|
|
} |
|
|
|
} |
|
|
|
Expr( |
|
|
|
Expr( |
|
|
|
#line 2658 "VBNET.ATG"
|
|
|
|
#line 2661 "VBNET.ATG"
|
|
|
|
out expr); |
|
|
|
out expr); |
|
|
|
|
|
|
|
|
|
|
|
#line 2660 "VBNET.ATG"
|
|
|
|
#line 2663 "VBNET.ATG"
|
|
|
|
caseClause = new CaseLabel(op, expr); |
|
|
|
caseClause = new CaseLabel(op, expr); |
|
|
|
|
|
|
|
|
|
|
|
} else if (StartOf(27)) { |
|
|
|
} else if (StartOf(27)) { |
|
|
|
Expr( |
|
|
|
Expr( |
|
|
|
#line 2662 "VBNET.ATG"
|
|
|
|
#line 2665 "VBNET.ATG"
|
|
|
|
out expr); |
|
|
|
out expr); |
|
|
|
if (la.kind == 172) { |
|
|
|
if (la.kind == 172) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
Expr( |
|
|
|
Expr( |
|
|
|
#line 2662 "VBNET.ATG"
|
|
|
|
#line 2665 "VBNET.ATG"
|
|
|
|
out sexpr); |
|
|
|
out sexpr); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#line 2664 "VBNET.ATG"
|
|
|
|
#line 2667 "VBNET.ATG"
|
|
|
|
caseClause = new CaseLabel(expr, sexpr); |
|
|
|
caseClause = new CaseLabel(expr, sexpr); |
|
|
|
|
|
|
|
|
|
|
|
} else SynErr(266); |
|
|
|
} else SynErr(266); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void CatchClauses( |
|
|
|
void CatchClauses( |
|
|
|
#line 2711 "VBNET.ATG"
|
|
|
|
#line 2714 "VBNET.ATG"
|
|
|
|
out List<CatchClause> catchClauses) { |
|
|
|
out List<CatchClause> catchClauses) { |
|
|
|
|
|
|
|
|
|
|
|
#line 2713 "VBNET.ATG"
|
|
|
|
#line 2716 "VBNET.ATG"
|
|
|
|
catchClauses = new List<CatchClause>(); |
|
|
|
catchClauses = new List<CatchClause>(); |
|
|
|
TypeReference type = null; |
|
|
|
TypeReference type = null; |
|
|
|
Statement blockStmt = null; |
|
|
|
Statement blockStmt = null; |
|
|
@ -6130,27 +6133,27 @@ out List<CatchClause> catchClauses) { |
|
|
|
if (StartOf(13)) { |
|
|
|
if (StartOf(13)) { |
|
|
|
Identifier(); |
|
|
|
Identifier(); |
|
|
|
|
|
|
|
|
|
|
|
#line 2721 "VBNET.ATG"
|
|
|
|
#line 2724 "VBNET.ATG"
|
|
|
|
name = t.val; |
|
|
|
name = t.val; |
|
|
|
if (la.kind == 48) { |
|
|
|
if (la.kind == 48) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
TypeName( |
|
|
|
TypeName( |
|
|
|
#line 2721 "VBNET.ATG"
|
|
|
|
#line 2724 "VBNET.ATG"
|
|
|
|
out type); |
|
|
|
out type); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (la.kind == 180) { |
|
|
|
if (la.kind == 180) { |
|
|
|
lexer.NextToken(); |
|
|
|
lexer.NextToken(); |
|
|
|
Expr( |
|
|
|
Expr( |
|
|
|
#line 2722 "VBNET.ATG"
|
|
|
|
#line 2725 "VBNET.ATG"
|
|
|
|
out expr); |
|
|
|
out expr); |
|
|
|
} |
|
|
|
} |
|
|
|
EndOfStmt(); |
|
|
|
EndOfStmt(); |
|
|
|
Block( |
|
|
|
Block( |
|
|
|
#line 2724 "VBNET.ATG"
|
|
|
|
#line 2727 "VBNET.ATG"
|
|
|
|
out blockStmt); |
|
|
|
out blockStmt); |
|
|
|
|
|
|
|
|
|
|
|
#line 2725 "VBNET.ATG"
|
|
|
|
#line 2728 "VBNET.ATG"
|
|
|
|
catchClauses.Add(new CatchClause(type, name, blockStmt, expr)); |
|
|
|
catchClauses.Add(new CatchClause(type, name, blockStmt, expr)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|