private static XpidlNativeType CreateXpidlNativeType(ComplexSyntaxNode nativeTypeSyntaxNode)
		{
			ValidateSyntaxNode(nativeTypeSyntaxNode);

			String name;
			String definition;
			XpidlModifiers<XpidlNativeTypeModifier> modifiers = null;

			switch ((RuleConstants)nativeTypeSyntaxNode.Rule.Index)
			{
				case RuleConstants.XpidlNativeType1:
					name = CreateXpidlId((SimpleSyntaxNode) nativeTypeSyntaxNode[1]);
					definition = CreateXpidlNativeTypeDefinition((ComplexSyntaxNode) nativeTypeSyntaxNode[3]);
					break;
				case RuleConstants.XpidlNativeType2:
					name = CreateXpidlId((SimpleSyntaxNode)nativeTypeSyntaxNode[2]);
					definition = CreateXpidlNativeTypeDefinition((ComplexSyntaxNode)nativeTypeSyntaxNode[4]);
					modifiers = CreateNativeTypeModifiers((ComplexSyntaxNode) nativeTypeSyntaxNode[0]);
					break;
				default:
					throw new ArgumentException(mc_InvalidSyntaxNode, "nativeTypeSyntaxNode");
			}

			var xpidlNativeType = new XpidlNativeType(name, definition, modifiers);
			return xpidlNativeType;
		}
Example #2
0
		internal void AddNode(XpidlNativeType xpidlNativeType)
		{
			AddNodeImpl(xpidlNativeType);
		}