Loyc.Ecs.Parser.EcsParser.VarDeclExpr C# (CSharp) Method

VarDeclExpr() private method

private VarDeclExpr ( bool &hasInitializer, VList attrs ) : LNode
hasInitializer bool
attrs VList
return LNode
		LNode VarDeclExpr(out bool hasInitializer, VList < LNode > attrs)
		{
			TokenType la0;
			LNode result = default(LNode);
			// Line 807: (TT.This)?
			la0 = LA0;
			if (la0 == TT.This) {
				var t = MatchAny();
				// line 807
				attrs.Add(F.Id(t));
			}
			var pair = VarDeclStart();
			// line 809
			LNode type = pair.Item1, name = pair.Item2;
			// Line 812: (RestOfPropertyDefinition / VarInitializerOpt)
			switch (LA0) {
			case TT.At: case TT.ContextualKeyword: case TT.Forward: case TT.LambdaArrow:
			case TT.LBrace: case TT.LBrack:
				{
					result = RestOfPropertyDefinition(type.Range.StartIndex, type, name, true);
					// line 813
					hasInitializer = true;
				}
				break;
			default:
				{
					var nameAndInit = VarInitializerOpt(name, IsArrayType(type));
					// line 816
					hasInitializer = (nameAndInit != name);
					int start = type.Range.StartIndex;
					result = F.Call(S.Var, type, nameAndInit, start, nameAndInit.Range.EndIndex, start, start);
					hasInitializer = true;
				}
				break;
			}
			result = result.PlusAttrs(attrs);
			return result;
		}
	
EcsParser