示例#1
0
        public override void processParameter(ParameterizedObject parent)
        {
            string simpleParameterType = parsedArguments[0].Substring(0, parsedArguments[0].IndexOf(","));

            parent.addParameter(new MultiValueSimpleParameter(simpleParameterType, parsedArguments[2]
                                                              , parsedArguments[3], parsedArguments[4]));
        }
示例#2
0
        public override string outputXML(int level)
        {
            string output = "";

            SimionSrcParser.addIndentation(ref output, level);
            output += "<" + XMLTags.ClassDefinitionNodeTag + " Name=\"" + m_name + "\"";
            if (m_world != null)
            {
                output += " " + XMLTags.worldAttribute + "=\"" + m_world + "\"";
            }
            output += ">\n";

            foreach (string baseClass in m_baseClasses)
            {
                ParameterizedObject baseClassObject = SimionSrcParser.getNamedParamObject(baseClass);
                if (baseClassObject != null)
                {
                    foreach (IParameter param in baseClassObject.parameters)
                    {
                        base.addParameter(param);//output += baseClassObject.outputChildrenXML(level + 1);
                    }
                }
                else
                {
                    Console.WriteLine("Warning." + m_name + " class extends base class " + baseClass
                                      + " but definition has not been found. Ignore if the base class is a template class without any parameters.");
                }
            }
            output += outputChildrenXML(level + 1);
            SimionSrcParser.addIndentation(ref output, level);
            output += "</" + XMLTags.ClassDefinitionNodeTag + ">\n";
            return(output);
        }
示例#3
0
        public override void processParameter(ParameterizedObject parent)
        {
            string simpleParameterType = parsedArguments[0];

            parent.addParameter(new MultiVariableParameter(simpleParameterType, parsedArguments[2]
                                                           , parsedArguments[3]));
        }
示例#4
0
        public void parse(string content, ParameterizedObject parent)
        {
            string sPattern;

            if (!m_bUseTemplateArgument)
            {
                sPattern = m_inSrcTemplateName + @"\s*\(" + ConstructorParameterParser.extractTokenRegex + @"\)";
            }
            else
            {
                sPattern = m_inSrcTemplateName + @"\s*<([^>]+)>\s*?\(" + ConstructorParameterParser.extractTokenRegex + @"\)";
            }

            foreach (Match match in Regex.Matches(content, sPattern))
            {
                string strippedArgumentValue;
                parsedArguments.Clear();
                if (m_bUseTemplateArgument)
                {
                    parsedArguments.Add(match.Groups[1].Value.Trim(' '));
                }

                var    functionArgumentsMatch = Regex.Match(match.Groups[0].Value, ConstructorParameterParser.extractFuncRegex);
                string arguments       = functionArgumentsMatch.Groups[2].Value;
                var    argumentMatches = Regex.Matches(arguments, ConstructorParameterParser.extractArgsRegex);
                foreach (Match argMatch in argumentMatches)
                {
                    strippedArgumentValue = argMatch.Value.Trim(' ', '\"', '\n', '\t');

                    parsedArguments.Add(strippedArgumentValue);
                }
                processParameter(parent);
            }
        }
示例#5
0
        public override void processParameter(ParameterizedObject parent)
        {
            Constructor parentConstructor = parent as Constructor;

            if (parsedArguments[0] == "World" && parentConstructor != null)
            {
                parentConstructor.m_world = parsedArguments[1];
            }
        }
示例#6
0
        public override void processParameter(ParameterizedObject parent)
        {
            string className    = parsedArguments[0];
            string name         = parsedArguments[2];
            string comment      = parsedArguments[3];
            string defaultValue = parsedArguments[4];

            defaultValue = defaultValue.Trim(' ').Substring(className.Length + 2); //Remove the namespace
            parent.addParameter(new EnumParameter(className, name, comment, defaultValue));
        }
示例#7
0
 public override void processParameter(ParameterizedObject parent)
 {
     bool bOptional = false; //default value
     string badgerInfo = "";
     if (parsedArguments.Count > 4)
         bOptional = bool.Parse(parsedArguments[4]);
     if (parsedArguments.Count > 5)
         badgerInfo = parsedArguments[5];
     parent.addParameter(new ChildObjectFactoryParameter(parsedArguments[0], parsedArguments[2]
         , parsedArguments[3], bOptional, badgerInfo));
 }
示例#8
0
        public override void processParameter(ParameterizedObject parent)
        {
            bool bOptional = false; //default value

            if (parsedArguments.Count > 4)
            {
                bOptional = bool.Parse(parsedArguments[4]);
            }

            parent.addParameter(new MultiValueFactoryParameter(parsedArguments[0], parsedArguments[2]
                                                               , parsedArguments[3], bOptional));
        }
示例#9
0
        public override void processParameter(ParameterizedObject parent)
        {
            bool   bOptional  = false; //default value
            string badgerInfo = "";

            if (parsedArguments.Count > 4)
            {
                bool.TryParse(parsedArguments[4], out bOptional); //if it's not a boolean we just ignore it
            }
            if (parsedArguments.Count > 5)
            {
                badgerInfo = parsedArguments[5];
            }
            parent.addParameter(new ChildObjectFactoryParameter(parsedArguments[0], parsedArguments[2]
                                                                , parsedArguments[3], bOptional, badgerInfo));
        }
示例#10
0
        public override void processParameter(ParameterizedObject parent)
        {
            bool   bOptional  = false; //default value
            string badgerInfo = "";

            if (parsedArguments.Count > 4)
            {
                bOptional = bool.Parse(parsedArguments[4]);
            }
            if (parsedArguments.Count > 5)
            {
                badgerInfo = parsedArguments[5];
            }
            parent.addParameter(new ChildObjectFactoryParameter(parsedArguments[0], parsedArguments[2]
                                                                , parsedArguments[3], bOptional, badgerInfo));
        }
示例#11
0
 public override void processParameter(ParameterizedObject parent)
 {
     try
     {
         parent.addParameter(new WorldParameter(WorldParser.WorldParameterType.ActionVariable
                                                , parsedArguments[0], double.Parse(parsedArguments[2]), double.Parse(parsedArguments[3]), parsedArguments[1]));
     }
     catch (Exception ex)
     {
         Console.WriteLine(String.Format("Parsing the world '{0}' an exception has been raised.", parent.name));
         Console.WriteLine("It was raised parsing one of the following items:");
         foreach (String item in new String[] { parsedArguments[2], parsedArguments[3] })
         {
             Console.WriteLine(String.Format("\t{0}", item));
         }
         throw ex;
     }
 }
示例#12
0
        public void parse(ParameterizedObject parent, string srcCode)
        {
            string sPattern = @"CHOICE\s*<\s*(\w+)\s*>\(([^,]+),([^,]+),([^,]+),([^;]*);";

            foreach (Match match in Regex.Matches(srcCode, sPattern))
            {
                string className = match.Groups[1].Value.Trim(' ', '"');
                string choiceName = match.Groups[3].Value.Trim(' ', '"');
                string comment = match.Groups[4].Value.Trim(' ', '"');
                string choiceElements, prefix;
                choiceElements = match.Groups[5].Value.Trim(' ', '"', '\t', '\n');
                CppSourceParser.GetEnclosedBody(match.Groups[5].Value.Trim(' ', '"', '\t', '\n'), 0, "{", "}", out choiceElements, out prefix);
                choiceElements = choiceElements.Trim(' ', '"', '\t', '\n');
                ChoiceParameter newChoice = new ChoiceParameter(className, choiceName, comment);

                foreach (ChoiceElementParser choiceElementParser in m_choiceElementParsers)
                {
                    choiceElementParser.parse(choiceElements, newChoice);
                }

                parent.addParameter(newChoice);
            }
        }
示例#13
0
        public void parse(ParameterizedObject parent, string srcCode)
        {
            string sPattern = @"CHOICE\s*<\s*(\w+)\s*>\(([^,]+),([^,]+),([^,]+),([^;]*);";

            foreach (Match match in Regex.Matches(srcCode, sPattern))
            {
                string className = match.Groups[1].Value.Trim(' ', '"');
                string choiceName = match.Groups[3].Value.Trim(' ', '"');
                string comment = match.Groups[4].Value.Trim(' ', '"');
                string choiceElements,prefix;
                choiceElements = match.Groups[5].Value.Trim(' ', '"', '\t', '\n');
                SimionSrcParser.getEnclosedBody(match.Groups[5].Value.Trim(' ', '"','\t','\n'),0,"{","}",out choiceElements,out prefix);
                choiceElements= choiceElements.Trim(' ', '"', '\t', '\n');
                ChoiceParameter newChoice = new ChoiceParameter(className,choiceName, comment);

                foreach (ChoiceElementParser choiceElementParser in m_choiceElementParsers)
                    choiceElementParser.parse(choiceElements, newChoice);

                parent.addParameter(newChoice);
            }
        }
示例#14
0
 public override void processParameter(ParameterizedObject parent)
 {
     Constructor parentConstructor = parent as Constructor;
     if (parsedArguments[0] == "World" && parentConstructor!=null)
         parentConstructor.m_world = parsedArguments[1];
 }
示例#15
0
 public override void processParameter(ParameterizedObject parent)
 {
     parent.addParameter(new WorldParameter(WorldParser.WorldParameterType.Constant
                                            , parsedArguments[0]));
 }
示例#16
0
 public override void processParameter(ParameterizedObject parent)
 {
     string simpleParameterType = parsedArguments[0].Substring(0, parsedArguments[0].IndexOf(",") - 1);
     parent.addParameter(new MultiValueSimpleParameter(simpleParameterType, parsedArguments[2]
         , parsedArguments[3], parsedArguments[4]));
 }
示例#17
0
        public override void processParameter(ParameterizedObject parent)
        {
            bool bOptional = false; //default value
            if (parsedArguments.Count > 4)
                bOptional = bool.Parse(parsedArguments[4]);

            parent.addParameter(new MultiValueParameter(parsedArguments[0], parsedArguments[2]
                , parsedArguments[3], bOptional));
        }
示例#18
0
 public override void processParameter(ParameterizedObject parent)
 {
     parent.addParameter(new WireConnectionParameter(parsedArguments[1], parsedArguments[2]));
 }
示例#19
0
        public void parse(string content, ParameterizedObject parent)
        {
            string sPattern;
            if (!m_bUseTemplateArgument)
                sPattern = m_inSrcTemplateName + @"\s*\(" + ConstructorParameterParser.extractTokenRegex + @"\)";
            else
                sPattern = m_inSrcTemplateName + @"\s*<([^>]+)>\s*?\(" + ConstructorParameterParser.extractTokenRegex + @"\)";

            foreach (Match match in Regex.Matches(content, sPattern))
            {
                string strippedArgumentValue;
                parsedArguments.Clear();
                if (m_bUseTemplateArgument)
                    parsedArguments.Add(match.Groups[1].Value.Trim(' '));

                var functionArgumentsMatch = Regex.Match(match.Groups[0].Value, ConstructorParameterParser.extractFuncRegex);
                string arguments = functionArgumentsMatch.Groups[2].Value;
                var argumentMatches = Regex.Matches(arguments, ConstructorParameterParser.extractArgsRegex);
                foreach (Match argMatch in argumentMatches)
                {
                    strippedArgumentValue = argMatch.Value.Trim(' ', '\"', '\n', '\t');

                    parsedArguments.Add(strippedArgumentValue);
                }
                processParameter(parent);
            }
        }
示例#20
0
 public abstract void processParameter(ParameterizedObject parent);
示例#21
0
 public override void processParameter(ParameterizedObject parent)
 {
     parent.addParameter(new StateVarRefParameter(parsedArguments[1], parsedArguments[2]));
 }
示例#22
0
 public override void processParameter(ParameterizedObject parent)
 {
     parent.addParameter(new NeuralNetworkProblemDescriptionParameter(parsedArguments[1], parsedArguments[2]));
 }
示例#23
0
 public override void processParameter(ParameterizedObject parent)
 {
     parent.addParameter(new WorldParameter(WorldParser.WorldParameterType.StateVariable
         , parsedArguments[0], double.Parse(parsedArguments[2]), double.Parse(parsedArguments[3]), parsedArguments[1]));
 }
示例#24
0
 public override void processParameter(ParameterizedObject parent)
 {
     parent.addParameter(new StateVarRefParameter(parsedArguments[1], parsedArguments[2]));
 }
示例#25
0
 public override void processParameter(ParameterizedObject parent)
 {
     string className = parsedArguments[0];
     string name = parsedArguments[2];
     string comment = parsedArguments[3];
     string defaultValue = parsedArguments[4];
     defaultValue= defaultValue.Trim(' ').Substring(className.Length + 2); //Remove the namespace
     parent.addParameter(new EnumParameter(className, name, comment,defaultValue));
 }
示例#26
0
 public abstract void processParameter(ParameterizedObject parent);
示例#27
0
 public override void processParameter(ParameterizedObject parent)
 {
     parent.addParameter(new BoolParameter(parsedArguments[1], parsedArguments[2], parsedArguments[3]));
 }
示例#28
0
 public override void processParameter(ParameterizedObject parent)
 {
     parent.addParameter(new WorldParameter(WorldParser.WorldParameterType.ActionVariable
                                            , parsedArguments[0], double.Parse(parsedArguments[2]), double.Parse(parsedArguments[3]), parsedArguments[1]));
 }
示例#29
0
 public override void processParameter(ParameterizedObject parent)
 {
     parent.addParameter(new IntParameter(parsedArguments[1], parsedArguments[2], parsedArguments[3]));
 }
示例#30
0
 public override void processParameter(ParameterizedObject parent)
 {
     parent.addParameter(new WorldParameter(WorldParser.WorldParameterType.Constant
         , parsedArguments[0]));
 }