void TypeDecl( #line 691 "cs.ATG" Modifiers m, ArrayList attributes, bool partial) { #line 693 "cs.ATG" TypeReference type; StringCollection names; ArrayList p; string name; if (la.kind == 58) { #line 697 "cs.ATG" m.Check(Modifier.Classes); lexer.NextToken(); #line 698 "cs.ATG" TypeDeclaration newType = new TypeDeclaration (partial); compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.Type = Types.Class; newType.Modifier = m.Modifier; newType.Attributes = attributes; Expect(1); #line 706 "cs.ATG" newType.Name = t.val; if (la.kind == 9) { ClassBase( #line 707 "cs.ATG" out names); #line 707 "cs.ATG" newType.BaseTypes = names; } #line 707 "cs.ATG" newType.StartLocation = t.EndLocation; ClassBody(); if (la.kind == 10) { lexer.NextToken(); } #line 709 "cs.ATG" newType.EndLocation = t.Location; compilationUnit.BlockEnd(); } else if (StartOf(7)) { #line 712 "cs.ATG" m.Check(Modifier.StructsInterfacesEnumsDelegates); if (la.kind == 108) { lexer.NextToken(); #line 713 "cs.ATG" TypeDeclaration newType = new TypeDeclaration(partial); compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.Type = Types.Struct; newType.Modifier = m.Modifier; newType.Attributes = attributes; Expect(1); #line 720 "cs.ATG" newType.Name = t.val; if (la.kind == 9) { StructInterfaces( #line 721 "cs.ATG" out names); #line 721 "cs.ATG" newType.BaseTypes = names; } #line 721 "cs.ATG" newType.StartLocation = t.EndLocation; StructBody(); if (la.kind == 10) { lexer.NextToken(); } #line 723 "cs.ATG" newType.EndLocation = t.Location; compilationUnit.BlockEnd(); } else if (la.kind == 82) { lexer.NextToken(); #line 727 "cs.ATG" TypeDeclaration newType = new TypeDeclaration(partial); compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.Type = Types.Interface; newType.Attributes = attributes; newType.Modifier = m.Modifier; Expect(1); #line 733 "cs.ATG" newType.Name = t.val; if (la.kind == 9) { InterfaceBase( #line 734 "cs.ATG" out names); #line 734 "cs.ATG" newType.BaseTypes = names; } #line 734 "cs.ATG" newType.StartLocation = t.EndLocation; InterfaceBody(); if (la.kind == 10) { lexer.NextToken(); } #line 736 "cs.ATG" newType.EndLocation = t.Location; compilationUnit.BlockEnd(); } else if (la.kind == 67) { lexer.NextToken(); #line 740 "cs.ATG" if (partial) Error ("partial is not allowed for enum types"); TypeDeclaration newType = new TypeDeclaration(); compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.Type = Types.Enum; newType.Attributes = attributes; newType.Modifier = m.Modifier; Expect(1); #line 747 "cs.ATG" newType.Name = t.val; if (la.kind == 9) { lexer.NextToken(); IntegralType( #line 748 "cs.ATG" out name); #line 748 "cs.ATG" newType.BaseTypes = new StringCollection(); newType.BaseTypes.Add(name); } #line 751 "cs.ATG" newType.StartLocation = t.EndLocation; EnumBody(); if (la.kind == 10) { lexer.NextToken(); } #line 753 "cs.ATG" newType.EndLocation = t.Location; compilationUnit.BlockEnd(); } else { lexer.NextToken(); #line 757 "cs.ATG" if (partial) Error ("partial is not allowed for delegate types"); DelegateDeclaration delegateDeclr = new DelegateDeclaration(); delegateDeclr.StartLocation = t.Location; delegateDeclr.Modifier = m.Modifier; delegateDeclr.Attributes = attributes; if ( #line 763 "cs.ATG" NotVoidPointer()) { Expect(122); #line 763 "cs.ATG" delegateDeclr.ReturnType = new TypeReference("void", 0, null); } else if (StartOf(8)) { Type( #line 764 "cs.ATG" out type); #line 764 "cs.ATG" delegateDeclr.ReturnType = type; } else SynErr(130); Expect(1); #line 766 "cs.ATG" delegateDeclr.Name = t.val; Expect(18); if (StartOf(9)) { FormalParameterList( #line 767 "cs.ATG" out p); #line 767 "cs.ATG" delegateDeclr.Parameters = p; } Expect(19); Expect(10); #line 769 "cs.ATG" delegateDeclr.EndLocation = t.Location; compilationUnit.AddChild(delegateDeclr); } } else SynErr(131); }
public void Add(Modifiers m) { Add(m.cur); }
void NamespaceMemberDecl() { #line 664 "cs.ATG" AttributeSection section; ArrayList attributes = new ArrayList(); Modifiers m = new Modifiers(this); string qualident; if (la.kind == 87) { lexer.NextToken(); #line 670 "cs.ATG" Point startPos = t.Location; Qualident( #line 671 "cs.ATG" out qualident); #line 671 "cs.ATG" INode node = new NamespaceDeclaration(qualident); node.StartLocation = startPos; compilationUnit.AddChild(node); compilationUnit.BlockStart(node); Expect(14); while (la.kind == 120) { UsingDirective(); } while (StartOf(1)) { NamespaceMemberDecl(); } Expect(15); if (la.kind == 10) { lexer.NextToken(); } #line 680 "cs.ATG" node.EndLocation = t.EndLocation; compilationUnit.BlockEnd(); } else if (StartOf(2)) { while (la.kind == 16) { AttributeSection( #line 684 "cs.ATG" out section); #line 684 "cs.ATG" attributes.Add(section); } while (StartOf(3)) { TypeModifier( #line 685 "cs.ATG" m); } #line 686 "cs.ATG" bool partial = false; if ( #line 687 "cs.ATG" IdentIsPartial ()) { lexer.NextToken(); #line 687 "cs.ATG" partial = true; } TypeDecl( #line 688 "cs.ATG" m, attributes, partial); } else SynErr(126); }
void TypeModifier( #line 946 "cs.ATG" Modifiers m) { switch (la.kind) { case 88: { lexer.NextToken(); #line 948 "cs.ATG" m.Add(Modifier.New); break; } case 97: { lexer.NextToken(); #line 949 "cs.ATG" m.Add(Modifier.Public); break; } case 96: { lexer.NextToken(); #line 950 "cs.ATG" m.Add(Modifier.Protected); break; } case 83: { lexer.NextToken(); #line 951 "cs.ATG" m.Add(Modifier.Internal); break; } case 95: { lexer.NextToken(); #line 952 "cs.ATG" m.Add(Modifier.Private); break; } case 118: { lexer.NextToken(); #line 953 "cs.ATG" m.Add(Modifier.Unsafe); break; } case 48: { lexer.NextToken(); #line 954 "cs.ATG" m.Add(Modifier.Abstract); break; } case 102: { lexer.NextToken(); #line 955 "cs.ATG" m.Add(Modifier.Sealed); break; } case 106: { lexer.NextToken(); #line 956 "cs.ATG" m.Add(Modifier.Static); break; } default: SynErr(129); break; } }
void AccessorModifier( #line 997 "cs.ATG" Modifiers m) { if (la.kind == 83) { lexer.NextToken(); #line 999 "cs.ATG" m.Add(Modifier.Internal); } else if (la.kind == 97) { lexer.NextToken(); #line 1000 "cs.ATG" m.Add(Modifier.Public); } else if (la.kind == 96) { lexer.NextToken(); #line 1001 "cs.ATG" m.Add(Modifier.Protected); } else if (la.kind == 95) { lexer.NextToken(); #line 1002 "cs.ATG" m.Add(Modifier.Private); } else SynErr(156); }
void AccessorDecls( #line 1300 "cs.ATG" out PropertyGetRegion getBlock, out PropertySetRegion setBlock) { #line 1302 "cs.ATG" ArrayList attributes = new ArrayList(); Modifiers m = new Modifiers (this); AttributeSection section; getBlock = null; setBlock = null; while (la.kind == 16) { AttributeSection( #line 1309 "cs.ATG" out section); #line 1309 "cs.ATG" attributes.Add(section); } while (StartOf(22)) { AccessorModifier( #line 1310 "cs.ATG" m); } if ( #line 1312 "cs.ATG" IdentIsGet()) { GetAccessorDecl( #line 1313 "cs.ATG" out getBlock, attributes, m.Modifier); if (StartOf(23)) { #line 1314 "cs.ATG" attributes = new ArrayList(); m = new Modifiers (this); while (la.kind == 16) { AttributeSection( #line 1315 "cs.ATG" out section); #line 1315 "cs.ATG" attributes.Add(section); } while (StartOf(22)) { AccessorModifier( #line 1316 "cs.ATG" m); } SetAccessorDecl( #line 1317 "cs.ATG" out setBlock, attributes, m.Modifier); } } else if ( #line 1319 "cs.ATG" IdentIsSet()) { SetAccessorDecl( #line 1320 "cs.ATG" out setBlock, attributes, m.Modifier); if (StartOf(23)) { #line 1321 "cs.ATG" attributes = new ArrayList(); m = new Modifiers (this); while (la.kind == 16) { AttributeSection( #line 1322 "cs.ATG" out section); #line 1322 "cs.ATG" attributes.Add(section); } while (StartOf(22)) { AccessorModifier( #line 1323 "cs.ATG" m); } GetAccessorDecl( #line 1324 "cs.ATG" out getBlock, attributes, m.Modifier); } } else if (la.kind == 1) { lexer.NextToken(); #line 1326 "cs.ATG" Error("get or set accessor declaration expected"); } else SynErr(160); }
void StructMemberDecl( #line 1005 "cs.ATG" Modifiers m, ArrayList attributes) { #line 1007 "cs.ATG" string qualident = null; TypeReference type; Expression expr; ArrayList p = new ArrayList(); Statement stmt = null; ArrayList variableDeclarators = new ArrayList(); if (la.kind == 59) { #line 1015 "cs.ATG" m.Check(Modifier.Constants); lexer.NextToken(); Type( #line 1017 "cs.ATG" out type); Expect(1); #line 1017 "cs.ATG" FieldDeclaration fd = new FieldDeclaration(attributes, type, m.Modifier | Modifier.Const); VariableDeclaration f = new VariableDeclaration(t.val); fd.Fields.Add(f); Expect(3); Expr( #line 1021 "cs.ATG" out expr); #line 1021 "cs.ATG" f.Initializer = expr; while (la.kind == 12) { lexer.NextToken(); Expect(1); #line 1022 "cs.ATG" f = new VariableDeclaration(t.val); fd.Fields.Add(f); Expect(3); Expr( #line 1025 "cs.ATG" out expr); #line 1025 "cs.ATG" f.Initializer = expr; } Expect(10); #line 1026 "cs.ATG" fd.EndLocation = t.EndLocation; compilationUnit.AddChild(fd); } else if ( #line 1029 "cs.ATG" NotVoidPointer()) { #line 1029 "cs.ATG" m.Check(Modifier.PropertysEventsMethods); Expect(122); #line 1030 "cs.ATG" Point startPos = t.Location; Qualident( #line 1031 "cs.ATG" out qualident); Expect(18); if (StartOf(9)) { FormalParameterList( #line 1032 "cs.ATG" out p); } Expect(19); #line 1032 "cs.ATG" MethodDeclaration methodDeclaration = new MethodDeclaration(qualident, m.Modifier, new TypeReference("void"), p, attributes); methodDeclaration.StartLocation = startPos; methodDeclaration.EndLocation = t.EndLocation; compilationUnit.AddChild(methodDeclaration); compilationUnit.BlockStart(methodDeclaration); if (la.kind == 14) { Block( #line 1042 "cs.ATG" out stmt); } else if (la.kind == 10) { lexer.NextToken(); } else SynErr(141); #line 1042 "cs.ATG" compilationUnit.BlockEnd(); methodDeclaration.Body = (BlockStatement)stmt; } else if (la.kind == 68) { #line 1046 "cs.ATG" m.Check(Modifier.PropertysEventsMethods); lexer.NextToken(); #line 1047 "cs.ATG" EventDeclaration eventDecl = new EventDeclaration(m.Modifier, attributes); eventDecl.StartLocation = t.Location; compilationUnit.AddChild(eventDecl); compilationUnit.BlockStart(eventDecl); EventAddRegion addBlock = null; EventRemoveRegion removeBlock = null; Type( #line 1054 "cs.ATG" out type); #line 1054 "cs.ATG" eventDecl.TypeReference = type; if ( #line 1056 "cs.ATG" IsVarDecl()) { VariableDeclarator( #line 1056 "cs.ATG" variableDeclarators); while (la.kind == 12) { lexer.NextToken(); VariableDeclarator( #line 1057 "cs.ATG" variableDeclarators); } Expect(10); #line 1057 "cs.ATG" eventDecl.VariableDeclarators = variableDeclarators; eventDecl.EndLocation = t.EndLocation; } else if (la.kind == 1) { Qualident( #line 1058 "cs.ATG" out qualident); #line 1058 "cs.ATG" eventDecl.Name = qualident; eventDecl.EndLocation = t.EndLocation; Expect(14); #line 1059 "cs.ATG" eventDecl.BodyStart = t.Location; EventAccessorDecls( #line 1060 "cs.ATG" out addBlock, out removeBlock); Expect(15); #line 1061 "cs.ATG" eventDecl.BodyEnd = t.EndLocation; } else SynErr(142); #line 1062 "cs.ATG" compilationUnit.BlockEnd(); eventDecl.AddRegion = addBlock; eventDecl.RemoveRegion = removeBlock; } else if ( #line 1069 "cs.ATG" IdentAndLPar()) { #line 1069 "cs.ATG" m.Check(Modifier.Constructors | Modifier.StaticConstructors); Expect(1); #line 1070 "cs.ATG" string name = t.val; Point startPos = t.Location; Expect(18); if (StartOf(9)) { #line 1070 "cs.ATG" m.Check(Modifier.Constructors); FormalParameterList( #line 1071 "cs.ATG" out p); } Expect(19); #line 1073 "cs.ATG" ConstructorInitializer init = null; if (la.kind == 9) { #line 1074 "cs.ATG" m.Check(Modifier.Constructors); ConstructorInitializer( #line 1075 "cs.ATG" out init); } #line 1077 "cs.ATG" ConstructorDeclaration cd = new ConstructorDeclaration(name, m.Modifier, p, init, attributes); cd.StartLocation = startPos; cd.EndLocation = t.EndLocation; if (la.kind == 14) { Block( #line 1082 "cs.ATG" out stmt); } else if (la.kind == 10) { lexer.NextToken(); } else SynErr(143); #line 1082 "cs.ATG" cd.Body = (BlockStatement)stmt; compilationUnit.AddChild(cd); } else if (la.kind == 69 || la.kind == 79) { #line 1085 "cs.ATG" m.Check(Modifier.Operators); if (m.isNone) Error("at least one modifier must be set"); bool isImplicit = true; if (la.kind == 79) { lexer.NextToken(); } else { lexer.NextToken(); #line 1089 "cs.ATG" isImplicit = false; } Expect(91); Type( #line 1090 "cs.ATG" out type); #line 1090 "cs.ATG" TypeReference operatorType = type; Expect(18); Type( #line 1091 "cs.ATG" out type); Expect(1); #line 1091 "cs.ATG" string varName = t.val; Expect(19); if (la.kind == 14) { Block( #line 1091 "cs.ATG" out stmt); } else if (la.kind == 10) { lexer.NextToken(); #line 1091 "cs.ATG" stmt = null; } else SynErr(144); #line 1094 "cs.ATG" OperatorDeclarator operatorDeclarator = new OperatorDeclarator(isImplicit ? OperatorType.Implicit : OperatorType.Explicit, operatorType, type, varName); OperatorDeclaration operatorDeclaration = new OperatorDeclaration(operatorDeclarator, m.Modifier, attributes); operatorDeclaration.Body = stmt; compilationUnit.AddChild(operatorDeclaration); } else if (StartOf(17)) { #line 1104 "cs.ATG" bool partial = false; if ( #line 1105 "cs.ATG" IdentIsPartial ()) { lexer.NextToken(); #line 1105 "cs.ATG" partial = true; } TypeDecl( #line 1106 "cs.ATG" m, attributes, partial); } else if (StartOf(8)) { Type( #line 1107 "cs.ATG" out type); #line 1107 "cs.ATG" Point startPos = t.Location; if (la.kind == 91) { #line 1109 "cs.ATG" Token op; m.Check(Modifier.Operators); if (m.isNone) Error("at least one modifier must be set"); lexer.NextToken(); OverloadableOperator( #line 1113 "cs.ATG" out op); #line 1113 "cs.ATG" TypeReference firstType, secondType = null; string secondName = null; Expect(18); Type( #line 1114 "cs.ATG" out firstType); Expect(1); #line 1114 "cs.ATG" string firstName = t.val; if (la.kind == 12) { lexer.NextToken(); Type( #line 1115 "cs.ATG" out secondType); Expect(1); #line 1115 "cs.ATG" secondName = t.val; #line 1115 "cs.ATG" if (ParserUtil.IsUnaryOperator(op) && !ParserUtil.IsBinaryOperator(op)) Error("too many operands for unary operator"); } else if (la.kind == 19) { #line 1118 "cs.ATG" if (ParserUtil.IsBinaryOperator(op)) Error("too few operands for binary operator"); } else SynErr(145); Expect(19); if (la.kind == 14) { Block( #line 1122 "cs.ATG" out stmt); } else if (la.kind == 10) { lexer.NextToken(); } else SynErr(146); #line 1124 "cs.ATG" OperatorDeclarator operatorDeclarator = new OperatorDeclarator(secondType != null ? OperatorType.Binary : OperatorType.Unary, type, op.kind, firstType, firstName, secondType, secondName); OperatorDeclaration operatorDeclaration = new OperatorDeclaration(operatorDeclarator, m.Modifier, attributes); operatorDeclaration.Body = stmt; compilationUnit.AddChild(operatorDeclaration); } else if ( #line 1137 "cs.ATG" IsVarDecl()) { #line 1137 "cs.ATG" m.Check(Modifier.Fields); FieldDeclaration fd = new FieldDeclaration(attributes, type, m.Modifier); fd.StartLocation = startPos; VariableDeclarator( #line 1141 "cs.ATG" variableDeclarators); while (la.kind == 12) { lexer.NextToken(); VariableDeclarator( #line 1142 "cs.ATG" variableDeclarators); } Expect(10); #line 1143 "cs.ATG" fd.EndLocation = t.EndLocation; fd.Fields = variableDeclarators; compilationUnit.AddChild(fd); } else if (la.kind == 110) { #line 1146 "cs.ATG" m.Check(Modifier.Indexers); lexer.NextToken(); Expect(16); FormalParameterList( #line 1147 "cs.ATG" out p); Expect(17); #line 1147 "cs.ATG" Point endLocation = t.EndLocation; Expect(14); #line 1148 "cs.ATG" IndexerDeclaration indexer = new IndexerDeclaration(type, p, m.Modifier, attributes); indexer.StartLocation = startPos; indexer.EndLocation = endLocation; indexer.BodyStart = t.Location; PropertyGetRegion getRegion; PropertySetRegion setRegion; AccessorDecls( #line 1155 "cs.ATG" out getRegion, out setRegion); Expect(15); #line 1156 "cs.ATG" indexer.BodyEnd = t.EndLocation; indexer.GetRegion = getRegion; indexer.SetRegion = setRegion; compilationUnit.AddChild(indexer); } else if (la.kind == 1) { Qualident( #line 1161 "cs.ATG" out qualident); #line 1161 "cs.ATG" Point qualIdentEndLocation = t.EndLocation; if (la.kind == 14 || la.kind == 18) { if (la.kind == 18) { #line 1164 "cs.ATG" m.Check(Modifier.PropertysEventsMethods); lexer.NextToken(); if (StartOf(9)) { FormalParameterList( #line 1165 "cs.ATG" out p); } Expect(19); #line 1165 "cs.ATG" MethodDeclaration methodDeclaration = new MethodDeclaration(qualident, m.Modifier, type, p, attributes); methodDeclaration.StartLocation = startPos; methodDeclaration.EndLocation = t.EndLocation; compilationUnit.AddChild(methodDeclaration); if (la.kind == 14) { Block( #line 1174 "cs.ATG" out stmt); } else if (la.kind == 10) { lexer.NextToken(); } else SynErr(147); #line 1174 "cs.ATG" methodDeclaration.Body = (BlockStatement)stmt; } else { lexer.NextToken(); #line 1177 "cs.ATG" PropertyDeclaration pDecl = new PropertyDeclaration(qualident, type, m.Modifier, attributes); pDecl.StartLocation = startPos; pDecl.EndLocation = qualIdentEndLocation; pDecl.BodyStart = t.Location; PropertyGetRegion getRegion; PropertySetRegion setRegion; AccessorDecls( #line 1184 "cs.ATG" out getRegion, out setRegion); Expect(15); #line 1186 "cs.ATG" pDecl.GetRegion = getRegion; pDecl.SetRegion = setRegion; pDecl.BodyEnd = t.EndLocation; compilationUnit.AddChild(pDecl); } } else if (la.kind == 13) { #line 1194 "cs.ATG" m.Check(Modifier.Indexers); lexer.NextToken(); Expect(110); Expect(16); FormalParameterList( #line 1195 "cs.ATG" out p); Expect(17); #line 1196 "cs.ATG" IndexerDeclaration indexer = new IndexerDeclaration(type, p, m.Modifier, attributes); indexer.StartLocation = startPos; indexer.EndLocation = t.EndLocation; indexer.NamespaceName = qualident; PropertyGetRegion getRegion; PropertySetRegion setRegion; Expect(14); #line 1203 "cs.ATG" Point bodyStart = t.Location; AccessorDecls( #line 1204 "cs.ATG" out getRegion, out setRegion); Expect(15); #line 1205 "cs.ATG" indexer.BodyStart = bodyStart; indexer.BodyEnd = t.EndLocation; indexer.GetRegion = getRegion; indexer.SetRegion = setRegion; compilationUnit.AddChild(indexer); } else SynErr(148); } else SynErr(149); } else SynErr(150); }
void ClassMemberDecl( #line 1215 "cs.ATG" Modifiers m, ArrayList attributes) { #line 1216 "cs.ATG" Statement stmt = null; if (StartOf(16)) { StructMemberDecl( #line 1218 "cs.ATG" m, attributes); } else if (la.kind == 25) { #line 1219 "cs.ATG" m.Check(Modifier.Destructors); Point startPos = t.Location; lexer.NextToken(); Expect(1); #line 1220 "cs.ATG" DestructorDeclaration d = new DestructorDeclaration(t.val, attributes); d.Modifier = m.Modifier; d.StartLocation = startPos; Expect(18); Expect(19); if (la.kind == 14) { Block( #line 1224 "cs.ATG" out stmt); } else if (la.kind == 10) { lexer.NextToken(); } else SynErr(139); #line 1224 "cs.ATG" d.EndLocation = t.EndLocation; d.Body = (BlockStatement)stmt; compilationUnit.AddChild(d); } else SynErr(140); }
void MemberModifier( #line 979 "cs.ATG" Modifiers m) { switch (la.kind) { case 48: { lexer.NextToken(); #line 981 "cs.ATG" m.Add(Modifier.Abstract); break; } case 70: { lexer.NextToken(); #line 982 "cs.ATG" m.Add(Modifier.Extern); break; } case 83: { lexer.NextToken(); #line 983 "cs.ATG" m.Add(Modifier.Internal); break; } case 88: { lexer.NextToken(); #line 984 "cs.ATG" m.Add(Modifier.New); break; } case 93: { lexer.NextToken(); #line 985 "cs.ATG" m.Add(Modifier.Override); break; } case 95: { lexer.NextToken(); #line 986 "cs.ATG" m.Add(Modifier.Private); break; } case 96: { lexer.NextToken(); #line 987 "cs.ATG" m.Add(Modifier.Protected); break; } case 97: { lexer.NextToken(); #line 988 "cs.ATG" m.Add(Modifier.Public); break; } case 98: { lexer.NextToken(); #line 989 "cs.ATG" m.Add(Modifier.Readonly); break; } case 102: { lexer.NextToken(); #line 990 "cs.ATG" m.Add(Modifier.Sealed); break; } case 106: { lexer.NextToken(); #line 991 "cs.ATG" m.Add(Modifier.Static); break; } case 118: { lexer.NextToken(); #line 992 "cs.ATG" m.Add(Modifier.Unsafe); break; } case 121: { lexer.NextToken(); #line 993 "cs.ATG" m.Add(Modifier.Virtual); break; } case 123: { lexer.NextToken(); #line 994 "cs.ATG" m.Add(Modifier.Volatile); break; } default: SynErr(138); break; } }
void StructBody() { #line 819 "cs.ATG" AttributeSection section; Expect(14); while (StartOf(12)) { #line 822 "cs.ATG" ArrayList attributes = new ArrayList(); Modifiers m = new Modifiers(this); while (la.kind == 16) { AttributeSection( #line 825 "cs.ATG" out section); #line 825 "cs.ATG" attributes.Add(section); } while (StartOf(11)) { MemberModifier( #line 826 "cs.ATG" m); } StructMemberDecl( #line 827 "cs.ATG" m, attributes); } Expect(15); }
void ClassBody() { #line 795 "cs.ATG" AttributeSection section; Expect(14); while (StartOf(10)) { #line 798 "cs.ATG" ArrayList attributes = new ArrayList(); Modifiers m = new Modifiers(this); while (la.kind == 16) { AttributeSection( #line 801 "cs.ATG" out section); #line 801 "cs.ATG" attributes.Add(section); } while (StartOf(11)) { MemberModifier( #line 802 "cs.ATG" m); } ClassMemberDecl( #line 803 "cs.ATG" m, attributes); } Expect(15); }