Ejemplo n.º 1
0
 internal void DefineVariable(CodeWriter writer, string[] modifiers, AbstractVariableInfo variable, bool initAtOnce = true)
 {
     writer.NewLine();
     if (modifiers != null)
     {
         foreach (var item in modifiers)
         {
             writer.Write(item);
             writer.Write(" ");
         }
     }
     writer.Write(GetCppTypeName(variable.DataType, variable.UBound).ToString());
     writer.Write(" ");
     writer.Write(GetUserDefinedName_SimpleCppName(variable.Id));
     if (initAtOnce)
     {
         var initParameter = GetInitParameter(variable.DataType, variable.UBound);
         if (!string.IsNullOrWhiteSpace(initParameter))
         {
             writer.Write("(");
             writer.Write(initParameter);
             writer.Write(")");
         }
     }
     writer.Write(";");
 }
Ejemplo n.º 2
0
 public CppTypeName GetCppTypeName(AbstractVariableInfo x)
 {
     if (x is MethodParameterInfo parameterInfo)
     {
         return(GetCppTypeName(parameterInfo.DataType, parameterInfo.ArrayParameter));
     }
     return(GetCppTypeName(x.DataType, x.UBound));
 }
Ejemplo n.º 3
0
    //Searches through a component, extracting all of it's fields and properties
    private void GetComponentsVariables()
    {
        variableNames.Clear();
        variableInfos.Clear();
        Type         type  = aValue.component.GetType();
        BindingFlags flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Default | BindingFlags.DeclaredOnly | BindingFlags.NonPublic;

        FieldInfo[]    fields     = type.GetFields(flags);
        PropertyInfo[] properties = type.GetProperties(flags);

        foreach (FieldInfo fi in fields)
        {
            if (!supportedTypes.Contains(fi.FieldType.Name))
            {
                continue;
            }
            AbstractVariableInfo info = new AbstractVariableInfo();
            info.Name         = fi.Name;
            info.Type         = fi.FieldType.FullName + ", " + fi.FieldType.Assembly;
            info.ShortType    = fi.FieldType.Name;
            info.VariableType = VariableType.FIELD;
            variableInfos.Add(info);
            variableNames.Add(ObjectNames.NicifyVariableName(fi.Name));
        }

        foreach (PropertyInfo pi in properties)
        {
            if (!supportedTypes.Contains(pi.PropertyType.Name))
            {
                continue;
            }
            AbstractVariableInfo info = new AbstractVariableInfo();
            info.Name         = pi.Name;
            info.Type         = pi.PropertyType.FullName + ", " + pi.PropertyType.Assembly;
            info.ShortType    = pi.PropertyType.Name;
            info.VariableType = VariableType.PROPERTY;
            variableInfos.Add(info);
            variableNames.Add(ObjectNames.NicifyVariableName(pi.Name));
        }
    }
Ejemplo n.º 4
0
 public EocVariableExpression(CodeConverter c, AbstractVariableInfo variableInfo) : base(c)
 {
     VariableInfo = variableInfo;
 }