private Dictionary <string, FieldNode> getFieldsForEnum(EnumTypeNode enumType, string path) { Dictionary <string, FieldNode> fields = new Dictionary <string, FieldNode>(); foreach (var enumeration in enumType.EnumItems) { fields[enumeration.Identifier.Name] = new FieldNode(enumeration.Identifier, enumType, true , new EncapsulationNode(TokenType.RW_PUBLIC, null), enumeration.value, enumeration.token); } return(fields); }
private bool EnumTypeMember(EnumTypeNode en) { Token name; if (Name(out name)) { if (en.MemberMap.ContainsKey(name)) { ErrorAndThrow(new DiagMsgEx(DiagCodeEx.DuplicateEnumMemberName, name.Value), name.TextSpan); } TokenExpected('='); en.MemberMap.Add(name, AtomValueExpected()); return true; } return false; }
private bool EnumType(NamespaceNode ns) { if (Keyword(ParserConstants.EnumKeyword)) { var name = NameExpected(); CheckDuplicateGlobalType(ns, name); KeywordExpected(ParserConstants.AsKeyword); var atomQName = QualifiableNameExpected(); TokenExpected('{'); var en = new EnumTypeNode(ns, name, atomQName); while (EnumTypeMember(en)) ; TokenExpected('}'); ns.GlobalTypeMap.Add(name, en); return true; } return false; }