void ParameterModifier( #line 3355 "VBNET.ATG" ParamModifierList m) { if (la.kind == 59) { lexer.NextToken(); #line 3356 "VBNET.ATG" m.Add(ParameterModifiers.In); } else if (la.kind == 56) { lexer.NextToken(); #line 3357 "VBNET.ATG" m.Add(ParameterModifiers.Ref); } else if (la.kind == 160) { lexer.NextToken(); #line 3358 "VBNET.ATG" m.Add(ParameterModifiers.Optional); } else if (la.kind == 167) { lexer.NextToken(); #line 3359 "VBNET.ATG" m.Add(ParameterModifiers.Params); } else SynErr(270); }
public void Add(ParamModifierList m) { Add(m.cur); }
void FormalParameter( #line 2642 "VBNET.ATG" out ParameterDeclarationExpression p) { #line 2644 "VBNET.ATG" AttributeSection section; List<AttributeSection> attributes = new List<AttributeSection>(); TypeReference type = null; ParamModifierList mod = new ParamModifierList(this); Expression expr = null; p = null; ArrayList arrayModifiers = null; while (la.kind == 28) { AttributeSection( #line 2653 "VBNET.ATG" out section); #line 2653 "VBNET.ATG" attributes.Add(section); } while (StartOf(35)) { ParameterModifier( #line 2654 "VBNET.ATG" mod); } Identifier(); #line 2655 "VBNET.ATG" string parameterName = t.val; if ( #line 2656 "VBNET.ATG" IsDims()) { ArrayTypeModifiers( #line 2656 "VBNET.ATG" out arrayModifiers); } if (la.kind == 50) { lexer.NextToken(); TypeName( #line 2657 "VBNET.ATG" out type); } #line 2659 "VBNET.ATG" if(type != null) { if (arrayModifiers != null) { if (type.RankSpecifier != null) { Error("array rank only allowed one time"); } else { type.RankSpecifier = (int[])arrayModifiers.ToArray(typeof(int)); } } } else { type = new TypeReference("System.Object", arrayModifiers == null ? null : (int[])arrayModifiers.ToArray(typeof(int))); } if (la.kind == 10) { lexer.NextToken(); Expr( #line 2671 "VBNET.ATG" out expr); } #line 2673 "VBNET.ATG" mod.Check(); p = new ParameterDeclarationExpression(type, parameterName, mod.Modifier, expr); p.Attributes = attributes; }