public override void Visit(RtEnumValue node) { WriteLines(@" // Lick the belly! "); base.Visit(node); }
/// <summary> /// Main code generator method. This method should write corresponding TypeScript code for element (1st argument) to /// WriterWrapper (3rd argument) using TypeResolver if necessary /// </summary> /// <param name="element">Element code to be generated to output</param> /// <param name="result">Resulting node</param> /// <param name="resolver">Type resolver</param> public override RtEnum GenerateNode(Type element, RtEnum result, TypeResolver resolver) { var names = Enum.GetNames(element); result.EnumName = element.GetName(); result.Order = element.GetOrder(); var fields = element.GetFields().Where(c => !c.IsSpecialName).ToDictionary(c => c.Name, c => c); var doc = Context.Documentation.GetDocumentationMember(element); if (doc != null) { RtJsdocNode docNode = new RtJsdocNode(); if (doc.HasSummary()) { docNode.Description = doc.Summary.Text; } result.Documentation = docNode; } List <RtEnumValue> valuesResult = new List <RtEnumValue>(); for (var index = 0; index < names.Length; index++) { var n = names.GetValue(index) as string; var v = Enum.Parse(element, n); if (fields.ContainsKey(n)) { var fieldItself = fields[n]; var attr = ConfigurationRepository.Instance.ForEnumValue(fieldItself); if (attr != null) { n = attr.Name; } RtEnumValue value = new RtEnumValue { EnumValueName = n, EnumValue = Convert.ToInt64(v).ToString() }; var valueDoc = Context.Documentation.GetDocumentationMember(fieldItself); if (valueDoc != null) { RtJsdocNode docNode = new RtJsdocNode(); if (doc.HasSummary()) { docNode.Description = valueDoc.Summary.Text; } value.Documentation = docNode; } valuesResult.Add(value); } } result.Values.AddRange(valuesResult); AddDecorators(result, ConfigurationRepository.Instance.DecoratorsFor(element)); return(result); }
public override void Visit(RtEnumValue node) { if (node == null) { return; } Visit(node.Documentation); AppendTabs(); Write(node.EnumValueName); if (!string.IsNullOrEmpty(node.EnumValue)) { Write(" = "); Write(node.EnumValue); } }
/// <summary> /// Main code generator method. This method should write corresponding TypeScript code for element (1st argument) to /// WriterWrapper (3rd argument) using TypeResolver if necessary /// </summary> /// <param name="element">Element code to be generated to output</param> /// <param name="result">Resulting node</param> /// <param name="resolver">Type resolver</param> public override RtEnum GenerateNode(Type element, RtEnum result, TypeResolver resolver) { Context.Location.SetCurrentType(element); var names = Enum.GetNames(element); var bp = Context.Project.Blueprint(element); result.EnumName = bp.GetName(); result.Order = bp.GetOrder(); var fields = element._GetFields().Where(c => !c.IsSpecialName).ToDictionary(c => c.Name, c => c); var doc = Context.Documentation.GetDocumentationMember(element); if (doc != null) { RtJsdocNode docNode = new RtJsdocNode(); if (doc.HasSummary()) { docNode.Description = doc.Summary.Text; } result.Documentation = docNode; } bool stringInit = false; var ea = Context.CurrentBlueprint.Attr <TsEnumAttribute>(); if (ea != null) { result.IsConst = ea.IsConst; stringInit = ea.UseString; } List <RtEnumValue> valuesResult = new List <RtEnumValue>(); for (var index = 0; index < names.Length; index++) { var n = names.GetValue(index) as string; var v = Enum.Parse(element, n); if (fields.ContainsKey(n)) { var fieldItself = fields[n]; var attr = Context.CurrentBlueprint.ForEnumValue(fieldItself); if (attr != null) { n = attr.Name; } if (string.IsNullOrEmpty(n)) { n = fieldItself.Name; } RtEnumValue value = new RtEnumValue { EnumValueName = n, EnumValue = Convert.ToInt64(v).ToString() }; if (stringInit) { if (attr != null && !string.IsNullOrEmpty(attr.Initializer)) { value.EnumValue = String.Concat("\"", attr.Initializer, "\""); } else { value.EnumValue = String.Concat("\"", n, "\""); } } var valueDoc = Context.Documentation.GetDocumentationMember(fieldItself); if (valueDoc != null) { RtJsdocNode docNode = new RtJsdocNode(); if (valueDoc.HasSummary()) { docNode.Description = valueDoc.Summary.Text; } value.Documentation = docNode; } valuesResult.Add(value); } } result.Values.AddRange(valuesResult); AddDecorators(result, Context.CurrentBlueprint.GetDecorators()); Context.Location.ResetCurrentType(); return(result); }
public abstract void Visit(RtEnumValue node);
public override void Visit(RtEnumValue node) { }
public abstract T Visit(RtEnumValue node);