public EnumContext EnumFromLean(IntegerEnum integerEnum)
 {
     var name = MangleJavaTypeName(integerEnum.Name);
     var javaType = typeRegistry.FindType(defaultNamespace, name);
     return new EnumContext(javaType.Package, javaType.SimpleName);
 }
Exemplo n.º 2
0
 public void Visit(IntegerEnum integerEnum)
 {
     sb.Append("Enum ").Append(integerEnum.Name);
     sb.AppendLine(" {");
     foreach (var enumField in integerEnum.Fields)
     {
         Visit(enumField);
         sb.AppendLine();
     }
     sb.AppendLine("}");
 }
Exemplo n.º 3
0
        public void Visit(IntegerEnum integerEnum)
        {
            var enumContext = contextGenerator.EnumFromLean(integerEnum);

            foreach (var field in integerEnum.Fields)
            {
                enumContext.AddField(contextGenerator.FieldFromLean(field));
            }

            Render(enumContext, "intEnum");
        }
Exemplo n.º 4
0
 public void Visit(IntegerEnum integerEnum)
 {
     throw new NotImplementedException();
 }
 public EnumContext EnumFromTrip(IntegerEnum integerEnum)
 {
     var name = MangleCSharpTypeName(integerEnum.Name);
     var csharpType = typeRegistry.FindType(defaultNamespace, name);
     return new EnumContext(csharpType.TypeNamespace, csharpType.TypeName);
 }
Exemplo n.º 6
0
        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.NTNAME_TENUM)
                {
                    var enumId = definitionChildNode.ChildNodes[0].Token.Text;
                    var enumFields = new List<IntegerEnumField>();
                    int nextDefaultEnumValue = 0; // trip enumerations start at zero by default
                    foreach (var enumFieldNode in definitionChildNode.ChildNodes[1].ChildNodes)
                    {
                        var enumFeildId = enumFieldNode.ChildNodes[0].Token.Text;
                        IntegerEnumField enumField = null;
                        if (enumFieldNode.ChildNodes.Count > 1 && 
                            enumFieldNode.ChildNodes[1].ChildNodes != null && 
                            enumFieldNode.ChildNodes[1].ChildNodes.Count > 0) // has enum value
                        {
                            var valueText = enumFieldNode.ChildNodes[1].ChildNodes[0].Token.Text;
                            int enumValue = int.Parse(valueText);
                            enumField = new IntegerEnumField(enumFeildId, enumValue, nextDefaultEnumValue);
                            nextDefaultEnumValue = ++enumValue;
                        }
                        else
                        {
                            enumField = new IntegerEnumField(enumFeildId, null, nextDefaultEnumValue);
                            ++nextDefaultEnumValue;
                        }
                        enumFields.Add(enumField);
                    }
                    var integerEnum = new IntegerEnum(enumId, enumFields);
                    definitions.Add(integerEnum);
                }
                else if (definitionChildNode.Term.Name == IdlGrammar.NTNAME_TSTRUCT)
                {
                    var name = definitionChildNode.ChildNodes[0].Token.Text;
                    var tripFields = BuildTripFields(definitionChildNode.ChildNodes[1], name);

                    var tripStruct = new Struct(name, tripFields);
                    definitions.Add(tripStruct);
                }
                else if (definitionChildNode.Term.Name == IdlGrammar.NTNAME_TSERVICE)
                {
                    var name = definitionChildNode.ChildNodes[0].Token.Text;
                    List<TripMethod> methods = new List<TripMethod>();

                    var firstChild = definitionChildNode.ChildNodes[1];
                    if (firstChild.Term.Name == IdlGrammar.NTNAME_FUNCTIONS)
                    {
                        methods = BuildTripMethods(definitionChildNode.ChildNodes[1]);
                    }
                    var service = new Service(name, methods);
                    definitions.Add(service);
                }
            }


            return definitions;
        }