/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(DomainTypesAstNode astNode) { astNode.TypesList.TypedIdentifiers.ForEach(type => DomainData.Types.Add(new Type(type.Item1, type.Item2.Split(';')))); // add implied types (base types that are not specifically defined) HashSet <string> impliedTypes = new HashSet <string>(); foreach (var type in DomainData.Types) { foreach (var baseType in type.BaseTypeNames) { if (baseType.Equals("") || baseType.Equals("object")) { continue; } if (!DomainData.Types.Exists(existingTypes => existingTypes.TypeName.Equals(baseType))) { impliedTypes.Add(baseType); } } } foreach (var type in impliedTypes) { DomainData.Types.Add(new Type(type)); } }
public virtual void Visit(DomainTypesAstNode node) { }