예제 #1
0
		private void WriteCompositeType(CompositeType type)
		{
			// Writing type declaration
			WriteLine(type.GetDeclaration());
			WriteLine("{");
			IndentLevel++;

			if (type is ClassType)
			{
				foreach (TypeBase nestedType in ((ClassType) type).NestedChilds)
				{
					WriteType(nestedType);
					AddBlankLine();
				}
			}

			if (type.SupportsFields)
			{
				foreach (Field field in type.Fields)
					WriteField(field);
			}

			bool needBlankLine = (type.FieldCount > 0 && type.OperationCount > 0);

			foreach (Operation operation in type.Operations)
			{
				if (needBlankLine)
					AddBlankLine();
				needBlankLine = true;

				WriteOperation(operation);
			}

			// Writing closing bracket of the type block
			IndentLevel--;
			WriteLine("}");
		}
예제 #2
0
		private void WriteCompositeType(CompositeType type)
		{
			// Writing type declaration
			WriteLine(type.GetDeclaration() + " {");
			AddBlankLine();
			IndentLevel++;

			if (type is ClassType)
			{
				foreach (TypeBase nestedType in ((ClassType) type).NestedChilds)
				{
					WriteType(nestedType);
					AddBlankLine();
				}
			}

			if (type.FieldCount > 0)
			{
				foreach (Field field in type.Fields)
					WriteField(field);
				AddBlankLine();
			}

			if (type.OperationCount > 0)
			{
				foreach (Method method in type.Operations)
				{
					WriteMethod(method);
					AddBlankLine();
				}
			}

			// Writing closing bracket of the type block
			IndentLevel--;
			WriteLine("}");
		}