public void Visit(IntegerEnumField integerEnumField) { sb.Append(" "); sb.Append(integerEnumField.Name); sb.Append(" : "); sb.Append(integerEnumField.Value); }
public virtual EnumFieldContext FieldFromIdl(IntegerEnumField field) { return(new EnumFieldContext(field.DocStringLines, _typeMangler.MangleConstantName(field.Name), field.Value)); }
public void Visit(IntegerEnumField integerEnumField) { throw new NotImplementedException(); }
public void Visit(IntegerEnumField integerEnumField) { throw new NotSupportedException(); }
public virtual EnumFieldContext FieldFromIdl(IntegerEnumField field) { return(new EnumFieldContext(field.DocStringLines, field.Name, field.Value)); }
public EnumFieldContext FieldFromTrip(IntegerEnumField field) { return(new EnumFieldContext(field.DocStringLines, MangleCSharpConstantName(field.Name), field.Value)); }
public static List <Definition> BuildDefinitions(ParseTreeNodeList definitionNodes) { var definitions = new List <Definition>(); foreach (var definitionNode in definitionNodes) { var definitionChildNode = definitionNode.ChildNodes[0]; if (definitionChildNode.Term.Name == IdlGrammar.CNAME_DOC_STRING) { continue; } string[] docStringLines = null; IList <Annotation> annotations = null; var docStringNode = definitionChildNode.ChildNodes[0]; if (docStringNode.ChildNodes.Count != 0) { docStringLines = ParseDocStringLines(docStringNode.ChildNodes[0].Token.Text); } var annotationsNode = definitionChildNode.ChildNodes[1]; if (annotationsNode.ChildNodes.Count != 0) { annotations = BuildAnnotations(annotationsNode.ChildNodes); } if (definitionChildNode.Term.Name == IdlGrammar.NTNAME_TENUM) { var enumId = definitionChildNode.ChildNodes[2].Token.Text; var enumFields = new List <IntegerEnumField>(); int nextDefaultEnumValue = 0; // enumerations start at zero by default foreach (var enumFieldNode in definitionChildNode.ChildNodes[3].ChildNodes) { string[] fieldDocStringLines = null; var fieldDocStringNode = enumFieldNode.ChildNodes[0]; if (fieldDocStringNode.ChildNodes.Count != 0) { fieldDocStringLines = ParseDocStringLines(fieldDocStringNode.ChildNodes[0].Token.Text); } var enumFieldId = enumFieldNode.ChildNodes[1].Token.Text; IntegerEnumField enumField; if (enumFieldNode.ChildNodes.Count > 1 && enumFieldNode.ChildNodes[2].ChildNodes != null && enumFieldNode.ChildNodes[2].ChildNodes.Count > 0) // has enum value { var valueText = enumFieldNode.ChildNodes[2].ChildNodes[0].Token.Text; int enumValue = int.Parse(valueText); enumField = new IntegerEnumField(fieldDocStringLines, enumFieldId, enumValue, nextDefaultEnumValue); nextDefaultEnumValue = ++enumValue; } else { enumField = new IntegerEnumField(fieldDocStringLines, enumFieldId, null, nextDefaultEnumValue); ++nextDefaultEnumValue; } enumFields.Add(enumField); } var integerEnum = new IntegerEnum(docStringLines, enumId, enumFields, annotations); definitions.Add(integerEnum); } else if (definitionChildNode.Term.Name == IdlGrammar.NTNAME_TSTRUCT) { var name = definitionChildNode.ChildNodes[2].Token.Text; var fFields = BuildFields(definitionChildNode.ChildNodes[3], name); var @struct = new Struct(docStringLines, name, fFields, annotations); definitions.Add(@struct); } else if (definitionChildNode.Term.Name == IdlGrammar.NTNAME_TSERVICE) { var name = definitionChildNode.ChildNodes[2].Token.Text; IList <BaijiMethod> methods = new List <BaijiMethod>(); var functionsChild = definitionChildNode.ChildNodes[3]; if (functionsChild.Term.Name == IdlGrammar.NTNAME_FUNCTIONS) { methods = BuildMethods(functionsChild); } var service = new Service(docStringLines, name, methods, annotations); definitions.Add(service); } } // Mark all locally referenced response struct types. var structs = definitions.OfType <Struct>().ToList(); foreach (var service in definitions.OfType <Service>()) { foreach (var method in service.Methods) { var responseStruct = structs.FirstOrDefault(s => s.Name == method.ReturnType.Name); if (responseStruct != null) { responseStruct.IsServiceResponse = true; } } } return(definitions); }
public EnumFieldContext FieldFromLean(IntegerEnumField field) { return(new EnumFieldContext(field.DocStringLines, MangleJavaConstantName(field.Name), field.Value)); }