Inheritance: PropertyGetSetRegion
Exemple #1
0
 public override object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data)
 {
     collectingUsedLabels = true;
     base.VisitPropertyGetRegion(propertyGetRegion, data);
     collectingUsedLabels = false;
     return base.VisitPropertyGetRegion(propertyGetRegion, data);
 }
		public override object VisitPropertyGetRegion (PropertyGetRegion propertyGetRegion, object data)
		{
			if (curPropertyDeclaration != null && curPropertyDeclaration.Name == Property.Name && propertyGetRegion.Block.Children.Count == 1) {
				ReturnStatement returnStatement = propertyGetRegion.Block.Children[0] as ReturnStatement;
				if (returnStatement != null) {
					MemberReferenceExpression mrr = returnStatement.Expression as MemberReferenceExpression;
					if (mrr != null) {
						if (mrr.TargetObject is ThisReferenceExpression)
							BackingStoreName = mrr.MemberName;
					}
					IdentifierExpression idExpr = returnStatement.Expression as IdentifierExpression;
					if (idExpr != null) 
						BackingStoreName = idExpr.Identifier;
				}
			}
			return base.VisitPropertyGetRegion (propertyGetRegion, data);
		}
		public override object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data)
		{
			return base.VisitPropertyGetRegion(propertyGetRegion, data);
		}
Exemple #4
0
	void AccessorDecls(
//#line  1372 "VBNET.ATG" 
out PropertyGetRegion getBlock, out PropertySetRegion setBlock) {

//#line  1374 "VBNET.ATG" 
		List<AttributeSection> attributes = new List<AttributeSection>();
		AttributeSection section;
		getBlock = null;
		setBlock = null; 
		
		while (la.kind == 40) {
			AttributeSection(
//#line  1379 "VBNET.ATG" 
out section);

//#line  1379 "VBNET.ATG" 
			attributes.Add(section); 
		}
		if (StartOf(25)) {
			GetAccessorDecl(
//#line  1381 "VBNET.ATG" 
out getBlock, attributes);
			if (StartOf(26)) {

//#line  1383 "VBNET.ATG" 
				attributes = new List<AttributeSection>(); 
				while (la.kind == 40) {
					AttributeSection(
//#line  1384 "VBNET.ATG" 
out section);

//#line  1384 "VBNET.ATG" 
					attributes.Add(section); 
				}
				SetAccessorDecl(
//#line  1385 "VBNET.ATG" 
out setBlock, attributes);
			}
		} else if (StartOf(27)) {
			SetAccessorDecl(
//#line  1388 "VBNET.ATG" 
out setBlock, attributes);
			if (StartOf(28)) {

//#line  1390 "VBNET.ATG" 
				attributes = new List<AttributeSection>(); 
				while (la.kind == 40) {
					AttributeSection(
//#line  1391 "VBNET.ATG" 
out section);

//#line  1391 "VBNET.ATG" 
					attributes.Add(section); 
				}
				GetAccessorDecl(
//#line  1392 "VBNET.ATG" 
out getBlock, attributes);
			}
		} else SynErr(272);
	}
		public sealed override object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data) {
			this.BeginVisit(propertyGetRegion);
			object result = this.TrackedVisitPropertyGetRegion(propertyGetRegion, data);
			this.EndVisit(propertyGetRegion);
			return result;
		}
		public virtual object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data) {
			throw new global::System.NotImplementedException("PropertyGetRegion");
		}
	void AccessorDecls(
#line  1315 "VBNET.ATG" 
out PropertyGetRegion getBlock, out PropertySetRegion setBlock) {

#line  1317 "VBNET.ATG" 
		List<AttributeSection> attributes = new List<AttributeSection>();
		AttributeSection section;
		getBlock = null;
		setBlock = null; 
		
		while (la.kind == 28) {
			AttributeSection(
#line  1322 "VBNET.ATG" 
out section);

#line  1322 "VBNET.ATG" 
			attributes.Add(section); 
		}
		if (StartOf(24)) {
			GetAccessorDecl(
#line  1324 "VBNET.ATG" 
out getBlock, attributes);
			if (StartOf(25)) {

#line  1326 "VBNET.ATG" 
				attributes = new List<AttributeSection>(); 
				while (la.kind == 28) {
					AttributeSection(
#line  1327 "VBNET.ATG" 
out section);

#line  1327 "VBNET.ATG" 
					attributes.Add(section); 
				}
				SetAccessorDecl(
#line  1328 "VBNET.ATG" 
out setBlock, attributes);
			}
		} else if (StartOf(26)) {
			SetAccessorDecl(
#line  1331 "VBNET.ATG" 
out setBlock, attributes);
			if (StartOf(27)) {

#line  1333 "VBNET.ATG" 
				attributes = new List<AttributeSection>(); 
				while (la.kind == 28) {
					AttributeSection(
#line  1334 "VBNET.ATG" 
out section);

#line  1334 "VBNET.ATG" 
					attributes.Add(section); 
				}
				GetAccessorDecl(
#line  1335 "VBNET.ATG" 
out getBlock, attributes);
			}
		} else SynErr(251);
	}
Exemple #8
0
	void GetAccessorDecl(
#line  1235 "cs.ATG" 
out PropertyGetRegion getBlock, List<AttributeSection> attributes) {

#line  1236 "cs.ATG" 
		BlockStatement stmt = null; 
		Expect(128);

#line  1239 "cs.ATG" 
		Location startLocation = t.Location; 
		if (la.kind == 16) {
			Block(
#line  1240 "cs.ATG" 
out stmt);
		} else if (la.kind == 11) {
			lexer.NextToken();
		} else SynErr(189);

#line  1241 "cs.ATG" 
		getBlock = new PropertyGetRegion(stmt, attributes); 

#line  1242 "cs.ATG" 
		getBlock.StartLocation = startLocation; getBlock.EndLocation = t.EndLocation; 
	}
Exemple #9
0
	void AccessorDecls(
#line  1202 "cs.ATG" 
out PropertyGetRegion getBlock, out PropertySetRegion setBlock) {

#line  1204 "cs.ATG" 
		List<AttributeSection> attributes = new List<AttributeSection>(); 
		AttributeSection section;
		getBlock = null;
		setBlock = null; 
		ModifierList modifiers = null;
		
		while (la.kind == 18) {
			AttributeSection(
#line  1211 "cs.ATG" 
out section);

#line  1211 "cs.ATG" 
			attributes.Add(section); 
		}
		if (la.kind == 84 || la.kind == 96 || la.kind == 97) {
			AccessorModifiers(
#line  1212 "cs.ATG" 
out modifiers);
		}
		if (la.kind == 128) {
			GetAccessorDecl(
#line  1214 "cs.ATG" 
out getBlock, attributes);

#line  1215 "cs.ATG" 
			if (modifiers != null) {getBlock.Modifier = modifiers.Modifier; } 
			if (StartOf(26)) {

#line  1216 "cs.ATG" 
				attributes = new List<AttributeSection>(); modifiers = null; 
				while (la.kind == 18) {
					AttributeSection(
#line  1217 "cs.ATG" 
out section);

#line  1217 "cs.ATG" 
					attributes.Add(section); 
				}
				if (la.kind == 84 || la.kind == 96 || la.kind == 97) {
					AccessorModifiers(
#line  1218 "cs.ATG" 
out modifiers);
				}
				SetAccessorDecl(
#line  1219 "cs.ATG" 
out setBlock, attributes);

#line  1220 "cs.ATG" 
				if (modifiers != null) {setBlock.Modifier = modifiers.Modifier; } 
			}
		} else if (la.kind == 129) {
			SetAccessorDecl(
#line  1223 "cs.ATG" 
out setBlock, attributes);

#line  1224 "cs.ATG" 
			if (modifiers != null) {setBlock.Modifier = modifiers.Modifier; } 
			if (StartOf(27)) {

#line  1225 "cs.ATG" 
				attributes = new List<AttributeSection>(); modifiers = null; 
				while (la.kind == 18) {
					AttributeSection(
#line  1226 "cs.ATG" 
out section);

#line  1226 "cs.ATG" 
					attributes.Add(section); 
				}
				if (la.kind == 84 || la.kind == 96 || la.kind == 97) {
					AccessorModifiers(
#line  1227 "cs.ATG" 
out modifiers);
				}
				GetAccessorDecl(
#line  1228 "cs.ATG" 
out getBlock, attributes);

#line  1229 "cs.ATG" 
				if (modifiers != null) {getBlock.Modifier = modifiers.Modifier; } 
			}
		} else if (StartOf(18)) {
			Identifier();

#line  1231 "cs.ATG" 
			Error("get or set accessor declaration expected"); 
		} else SynErr(186);
	}
		public IndexerDeclaration(TypeReference typeReference, List<ParameterDeclarationExpression> parameters, Modifiers modifier, List<AttributeSection> attributes) {
			TypeReference = typeReference;
			Parameters = parameters;
			Modifier = modifier;
			Attributes = attributes;
			interfaceImplementations = new List<InterfaceImplementation>();
			bodyStart = Location.Empty;
			bodyEnd = Location.Empty;
			getRegion = PropertyGetRegion.Null;
			setRegion = PropertySetRegion.Null;
		}
		public object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data)
		{
			throw new ApplicationException("PropertyGetRegion visited.");
		}
Exemple #12
0
		public PropertyDeclaration(Modifiers modifier, List<AttributeSection> attributes, string name, List<ParameterDeclarationExpression> parameters) : 
				base(modifier, attributes, name, parameters) {
			interfaceImplementations = new List<InterfaceImplementation>();
			typeReference = TypeReference.Null;
			bodyStart = Location.Empty;
			bodyEnd = Location.Empty;
			getRegion = PropertyGetRegion.Null;
			setRegion = PropertySetRegion.Null;
		}
 public virtual bool VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object d)
 {
     if ((propertyGetRegion == null)) {
         return SetFailure();
     }
     if ((d == null)) {
         return SetFailure();
     }
     if ((propertyGetRegion.Attributes == null)) {
         return SetFailure();
     }
     if ((propertyGetRegion.Block == null)) {
         return SetFailure();
     }
     if(propertyGetRegion.GetType() != d.GetType()) {return SetFailure();}
     var data = (PropertyGetRegion)d;
     if (!IsMatch(propertyGetRegion, data)) {
         return SetFailure();
     }
     if (propertyGetRegion.Attributes.Count == data.Attributes.Count) {
     for (int i=0; i<propertyGetRegion.Attributes.Count;i++) {
         AttributeSection o = propertyGetRegion.Attributes[i];
         if(o == null){return SetFailure();}
         if((bool)o.AcceptVisitor(this, data.Attributes[i]) == false) return SetFailure();
     }			}			else { return SetFailure(); }
     return propertyGetRegion.Block.AcceptVisitor(this, data.Block);
 }
		public override object TrackedVisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data)
		{
			return null;
		}
Exemple #15
0
	void AccessorDecls(
#line  1157 "cs.ATG" 
out PropertyGetRegion getBlock, out PropertySetRegion setBlock) {

#line  1159 "cs.ATG" 
		List<AttributeSection> attributes = new List<AttributeSection>(); 
		AttributeSection section;
		getBlock = null;
		setBlock = null; 
		ModifierList modifiers = null;
		
		while (la.kind == 18) {
			AttributeSection(
#line  1166 "cs.ATG" 
out section);

#line  1166 "cs.ATG" 
			attributes.Add(section); 
		}
		if (la.kind == 84 || la.kind == 96 || la.kind == 97) {
			AccessorModifiers(
#line  1167 "cs.ATG" 
out modifiers);
		}
		if (la.kind == 128) {
			GetAccessorDecl(
#line  1169 "cs.ATG" 
out getBlock, attributes);

#line  1170 "cs.ATG" 
			if (modifiers != null) {getBlock.Modifier = modifiers.Modifier; } 
			if (StartOf(27)) {

#line  1171 "cs.ATG" 
				attributes = new List<AttributeSection>(); modifiers = null; 
				while (la.kind == 18) {
					AttributeSection(
#line  1172 "cs.ATG" 
out section);

#line  1172 "cs.ATG" 
					attributes.Add(section); 
				}
				if (la.kind == 84 || la.kind == 96 || la.kind == 97) {
					AccessorModifiers(
#line  1173 "cs.ATG" 
out modifiers);
				}
				SetAccessorDecl(
#line  1174 "cs.ATG" 
out setBlock, attributes);

#line  1175 "cs.ATG" 
				if (modifiers != null) {setBlock.Modifier = modifiers.Modifier; } 
			}
		} else if (la.kind == 129) {
			SetAccessorDecl(
#line  1178 "cs.ATG" 
out setBlock, attributes);

#line  1179 "cs.ATG" 
			if (modifiers != null) {setBlock.Modifier = modifiers.Modifier; } 
			if (StartOf(28)) {

#line  1180 "cs.ATG" 
				attributes = new List<AttributeSection>(); modifiers = null; 
				while (la.kind == 18) {
					AttributeSection(
#line  1181 "cs.ATG" 
out section);

#line  1181 "cs.ATG" 
					attributes.Add(section); 
				}
				if (la.kind == 84 || la.kind == 96 || la.kind == 97) {
					AccessorModifiers(
#line  1182 "cs.ATG" 
out modifiers);
				}
				GetAccessorDecl(
#line  1183 "cs.ATG" 
out getBlock, attributes);

#line  1184 "cs.ATG" 
				if (modifiers != null) {getBlock.Modifier = modifiers.Modifier; } 
			}
		} else if (StartOf(19)) {
			Identifier();

#line  1186 "cs.ATG" 
			Error("get or set accessor declaration expected"); 
		} else SynErr(186);
	}
Exemple #16
0
	void AccessorDecls(
#line  1272 "VBNET.ATG" 
out PropertyGetRegion getBlock, out PropertySetRegion setBlock) {

#line  1274 "VBNET.ATG" 
		List<AttributeSection> attributes = new List<AttributeSection>();
		AttributeSection section;
		getBlock = null;
		setBlock = null; 
		
		while (la.kind == 27) {
			AttributeSection(
#line  1279 "VBNET.ATG" 
out section);

#line  1279 "VBNET.ATG" 
			attributes.Add(section); 
		}
		if (StartOf(22)) {
			GetAccessorDecl(
#line  1281 "VBNET.ATG" 
out getBlock, attributes);
			if (StartOf(23)) {

#line  1283 "VBNET.ATG" 
				attributes = new List<AttributeSection>(); 
				while (la.kind == 27) {
					AttributeSection(
#line  1284 "VBNET.ATG" 
out section);

#line  1284 "VBNET.ATG" 
					attributes.Add(section); 
				}
				SetAccessorDecl(
#line  1285 "VBNET.ATG" 
out setBlock, attributes);
			}
		} else if (StartOf(24)) {
			SetAccessorDecl(
#line  1288 "VBNET.ATG" 
out setBlock, attributes);
			if (StartOf(25)) {

#line  1290 "VBNET.ATG" 
				attributes = new List<AttributeSection>(); 
				while (la.kind == 27) {
					AttributeSection(
#line  1291 "VBNET.ATG" 
out section);

#line  1291 "VBNET.ATG" 
					attributes.Add(section); 
				}
				GetAccessorDecl(
#line  1292 "VBNET.ATG" 
out getBlock, attributes);
			}
		} else SynErr(234);
	}
Exemple #17
0
	void GetAccessorDecl(
#line  1298 "VBNET.ATG" 
out PropertyGetRegion getBlock, List<AttributeSection> attributes) {

#line  1299 "VBNET.ATG" 
		Statement stmt = null; Modifiers m; 
		PropertyAccessorAccessModifier(
#line  1301 "VBNET.ATG" 
out m);
		Expect(101);

#line  1303 "VBNET.ATG" 
		Location startLocation = t.Location; 
		Expect(1);
		Block(
#line  1305 "VBNET.ATG" 
out stmt);

#line  1306 "VBNET.ATG" 
		getBlock = new PropertyGetRegion((BlockStatement)stmt, attributes); 
		Expect(88);
		Expect(101);

#line  1308 "VBNET.ATG" 
		getBlock.Modifier = m; 

#line  1309 "VBNET.ATG" 
		getBlock.StartLocation = startLocation; getBlock.EndLocation = t.EndLocation; 
		Expect(1);
	}
 public object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data)
 {
     throw new NotImplementedException ();
 }
Exemple #19
0
	void InterfaceAccessors(
#line  1276 "cs.ATG" 
out PropertyGetRegion getBlock, out PropertySetRegion setBlock) {

#line  1278 "cs.ATG" 
		AttributeSection section;
		List<AttributeSection> attributes = new List<AttributeSection>();
		getBlock = null; setBlock = null;
		PropertyGetSetRegion lastBlock = null;
		
		while (la.kind == 18) {
			AttributeSection(
#line  1284 "cs.ATG" 
out section);

#line  1284 "cs.ATG" 
			attributes.Add(section); 
		}

#line  1285 "cs.ATG" 
		Location startLocation = la.Location; 
		if (la.kind == 128) {
			lexer.NextToken();

#line  1287 "cs.ATG" 
			getBlock = new PropertyGetRegion(null, attributes); 
		} else if (la.kind == 129) {
			lexer.NextToken();

#line  1288 "cs.ATG" 
			setBlock = new PropertySetRegion(null, attributes); 
		} else SynErr(187);
		Expect(11);

#line  1291 "cs.ATG" 
		if (getBlock != null) { getBlock.StartLocation = startLocation; getBlock.EndLocation = t.EndLocation; }
		if (setBlock != null) { setBlock.StartLocation = startLocation; setBlock.EndLocation = t.EndLocation; }
		attributes = new List<AttributeSection>(); 
		if (la.kind == 18 || la.kind == 128 || la.kind == 129) {
			while (la.kind == 18) {
				AttributeSection(
#line  1295 "cs.ATG" 
out section);

#line  1295 "cs.ATG" 
				attributes.Add(section); 
			}

#line  1296 "cs.ATG" 
			startLocation = la.Location; 
			if (la.kind == 128) {
				lexer.NextToken();

#line  1298 "cs.ATG" 
				if (getBlock != null) Error("get already declared");
				                 else { getBlock = new PropertyGetRegion(null, attributes); lastBlock = getBlock; }
				              
			} else if (la.kind == 129) {
				lexer.NextToken();

#line  1301 "cs.ATG" 
				if (setBlock != null) Error("set already declared");
				                 else { setBlock = new PropertySetRegion(null, attributes); lastBlock = setBlock; }
				              
			} else SynErr(188);
			Expect(11);

#line  1306 "cs.ATG" 
			if (lastBlock != null) { lastBlock.StartLocation = startLocation; lastBlock.EndLocation = t.EndLocation; } 
		}
	}
Exemple #20
0
 public virtual object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data)
 {
     Debug.Assert((propertyGetRegion != null));
     Debug.Assert((propertyGetRegion.Attributes != null));
     Debug.Assert((propertyGetRegion.Block != null));
     foreach (AttributeSection o in propertyGetRegion.Attributes) {
         Debug.Assert(o != null);
         o.AcceptVisitor(this, data);
     }
     return propertyGetRegion.Block.AcceptVisitor(this, data);
 }
 public override object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data)
 {
     if (this.CheckNode(propertyGetRegion)) {
         return null;
     }
     return base.VisitPropertyGetRegion(propertyGetRegion, data);
 }
Exemple #22
0
		public PropertyDeclaration(Modifiers modifier, List<AttributeSection> attributes, string name, List<ParameterDeclarationExpression> parameters) {
			Modifier = modifier;
			Attributes = attributes;
			Name = name;
			Parameters = parameters;
			bodyStart = Location.Empty;
			bodyEnd = Location.Empty;
			getRegion = PropertyGetRegion.Null;
			setRegion = PropertySetRegion.Null;
			initializer = Expression.Null;
		}
Exemple #23
0
	void GetAccessorDecl(
#line  1341 "VBNET.ATG" 
out PropertyGetRegion getBlock, List<AttributeSection> attributes) {

#line  1342 "VBNET.ATG" 
		Statement stmt = null; Modifiers m; 
		PropertyAccessorAccessModifier(
#line  1344 "VBNET.ATG" 
out m);
		Expect(115);

#line  1346 "VBNET.ATG" 
		Location startLocation = t.Location; 
		Expect(1);
		Block(
#line  1348 "VBNET.ATG" 
out stmt);

#line  1349 "VBNET.ATG" 
		getBlock = new PropertyGetRegion((BlockStatement)stmt, attributes); 
		Expect(100);
		Expect(115);

#line  1351 "VBNET.ATG" 
		getBlock.Modifier = m; 

#line  1352 "VBNET.ATG" 
		getBlock.StartLocation = startLocation; getBlock.EndLocation = t.EndLocation; 
		EndOfStmt();
	}
		public virtual object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data) {
			Debug.Assert((propertyGetRegion != null));
			Debug.Assert((propertyGetRegion.Attributes != null));
			Debug.Assert((propertyGetRegion.Block != null));
			for (int i = 0; i < propertyGetRegion.Attributes.Count; i++) {
				AttributeSection o = propertyGetRegion.Attributes[i];
				Debug.Assert(o != null);
				nodeStack.Push(o);
				o.AcceptVisitor(this, data);
				o = (AttributeSection)nodeStack.Pop();
				if (o == null)
					propertyGetRegion.Attributes.RemoveAt(i--);
				else
					propertyGetRegion.Attributes[i] = o;
			}
			nodeStack.Push(propertyGetRegion.Block);
			propertyGetRegion.Block.AcceptVisitor(this, data);
			propertyGetRegion.Block = ((BlockStatement)(nodeStack.Pop()));
			return null;
		}
		public virtual object TrackedVisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data) {
			return base.VisitPropertyGetRegion(propertyGetRegion, data);
		}
Exemple #26
0
 public virtual object VisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data) {
     throw CreateException(propertyGetRegion);
 }
 public override object TrackedVisitPropertyGetRegion(PropertyGetRegion propertyGetRegion, object data)
 {
     Console.WriteLine("VisitPropertyGetRegion");
     return null;
 }
Exemple #28
0
	void GetAccessorDecl(
#line  1224 "Frames/cs.ATG" 
out PropertyGetRegion getBlock, List<AttributeSection> attributes) {

#line  1225 "Frames/cs.ATG" 
		Statement stmt = null; 
		Expect(128);

#line  1228 "Frames/cs.ATG" 
		Location startLocation = t.Location; 
		if (la.kind == 16) {
			Block(
#line  1229 "Frames/cs.ATG" 
out stmt);
		} else if (la.kind == 11) {
			lexer.NextToken();
		} else SynErr(189);

#line  1230 "Frames/cs.ATG" 
		getBlock = new PropertyGetRegion((BlockStatement)stmt, attributes); 

#line  1231 "Frames/cs.ATG" 
		getBlock.StartLocation = startLocation; getBlock.EndLocation = t.EndLocation; 
	}
Exemple #29
0
	void GetAccessorDecl(
//#line  1398 "VBNET.ATG" 
out PropertyGetRegion getBlock, List<AttributeSection> attributes) {

//#line  1399 "VBNET.ATG" 
		Statement stmt = null; Modifiers m; 
		PropertyAccessorAccessModifier(
//#line  1401 "VBNET.ATG" 
out m);
		Expect(128);

//#line  1403 "VBNET.ATG" 
		Location startLocation = t.Location; 
		Expect(1);
		Block(
//#line  1405 "VBNET.ATG" 
out stmt);

//#line  1406 "VBNET.ATG" 
		getBlock = new PropertyGetRegion((BlockStatement)stmt, attributes); 
		Expect(113);
		Expect(128);

//#line  1408 "VBNET.ATG" 
		getBlock.Modifier = m; 

//#line  1409 "VBNET.ATG" 
		getBlock.StartLocation = startLocation; getBlock.EndLocation = t.EndLocation; 
		EndOfStmt();
	}
Exemple #30
0
	void AccessorDecls(
//#line  1182 "cs.ATG" 
out PropertyGetRegion getBlock, out PropertySetRegion setBlock) {

//#line  1184 "cs.ATG" 
		List<AttributeSection> attributes = new List<AttributeSection>(); 
		AttributeSection section;
		getBlock = null;
		setBlock = null; 
		ModifierList modifiers = null;
		
		while (la.kind == 18) {
			AttributeSection(
//#line  1191 "cs.ATG" 
out section);

//#line  1191 "cs.ATG" 
			attributes.Add(section); 
		}
		if (la.kind == 84 || la.kind == 96 || la.kind == 97) {
			AccessorModifiers(
//#line  1192 "cs.ATG" 
out modifiers);
		}
		if (la.kind == 128) {
			GetAccessorDecl(
//#line  1194 "cs.ATG" 
out getBlock, attributes);

//#line  1195 "cs.ATG" 
			if (modifiers != null) {getBlock.Modifier = modifiers.Modifier; } 
			if (StartOf(26)) {

//#line  1196 "cs.ATG" 
				attributes = new List<AttributeSection>(); modifiers = null; 
				while (la.kind == 18) {
					AttributeSection(
//#line  1197 "cs.ATG" 
out section);

//#line  1197 "cs.ATG" 
					attributes.Add(section); 
				}
				if (la.kind == 84 || la.kind == 96 || la.kind == 97) {
					AccessorModifiers(
//#line  1198 "cs.ATG" 
out modifiers);
				}
				SetAccessorDecl(
//#line  1199 "cs.ATG" 
out setBlock, attributes);

//#line  1200 "cs.ATG" 
				if (modifiers != null) {setBlock.Modifier = modifiers.Modifier; } 
			}
		} else if (la.kind == 129) {
			SetAccessorDecl(
//#line  1203 "cs.ATG" 
out setBlock, attributes);

//#line  1204 "cs.ATG" 
			if (modifiers != null) {setBlock.Modifier = modifiers.Modifier; } 
			if (StartOf(27)) {

//#line  1205 "cs.ATG" 
				attributes = new List<AttributeSection>(); modifiers = null; 
				while (la.kind == 18) {
					AttributeSection(
//#line  1206 "cs.ATG" 
out section);

//#line  1206 "cs.ATG" 
					attributes.Add(section); 
				}
				if (la.kind == 84 || la.kind == 96 || la.kind == 97) {
					AccessorModifiers(
//#line  1207 "cs.ATG" 
out modifiers);
				}
				GetAccessorDecl(
//#line  1208 "cs.ATG" 
out getBlock, attributes);

//#line  1209 "cs.ATG" 
				if (modifiers != null) {getBlock.Modifier = modifiers.Modifier; } 
			}
		} else if (StartOf(18)) {
			Identifier();

//#line  1211 "cs.ATG" 
			Error("get or set accessor declaration expected"); 
		} else SynErr(184);
	}