コード例 #1
0
        /// <summary>
        ///     Initialises the declared elements
        /// </summary>
        public void InitDeclaredElements()
        {
            DeclaredElements = new Dictionary <string, List <INamable> >();

            ISubDeclaratorUtils.AppendNamable(this, True);
            ISubDeclaratorUtils.AppendNamable(this, False);
        }
コード例 #2
0
        /// <summary>
        ///     Constructor
        /// </summary>
        /// <param name="log"></param>
        /// <param name="listExpression"></param>
        /// <param name="condition"></param>
        /// <param name="expression"></param>
        /// <param name="root">the root element for which this expression should be parsed</param>
        /// <param name="iteratorVariableName"></param>
        /// <param name="parsingData">Additional information about the parsing process</param>
        public SumExpression(ModelElement root, ModelElement log, Expression listExpression, string iteratorVariableName,
                             Expression condition, Expression expression, ParsingData parsingData)
            : base(root, log, listExpression, iteratorVariableName, condition, expression, parsingData)
        {
            AccumulatorVariable = CreateBoundVariable("RESULT", null);
            ISubDeclaratorUtils.AppendNamable(this, AccumulatorVariable);

            if (expression != null)
            {
                DefinedAccumulator = SetEnclosed(expression);
                Accumulator        =
                    SetEnclosed(new BinaryExpression(
                                    Root,
                                    RootLog,
                                    DefinedAccumulator,
                                    BinaryExpression.Operator.Add,
                                    new UnaryExpression(
                                        Root,
                                        RootLog,
                                        new Term(
                                            Root,
                                            RootLog,
                                            new Designator(Root, RootLog, "RESULT", ParsingData.SyntheticElement),
                                            ParsingData.SyntheticElement),
                                        ParsingData.SyntheticElement),
                                    ParsingData.SyntheticElement));
            }
        }
コード例 #3
0
        /// <summary>
        ///     Initialises the declared elements
        /// </summary>
        public void InitDeclaredElements()
        {
            DeclaredElements = new Dictionary <string, List <INamable> >();

            ISubDeclaratorUtils.AppendNamable(this, IteratorVariable);
            ISubDeclaratorUtils.AppendNamable(this, PreviousIteratorVariable);
        }
コード例 #4
0
ファイル: NameSpace.cs プロジェクト: fakoor/ERTMSFormalSpecs
        /// <summary>
        ///     Initialises the declared elements
        /// </summary>
        public void InitDeclaredElements()
        {
            DeclaredElements = new Dictionary <string, List <INamable> >();

            foreach (NameSpace nameSpace in NameSpaces)
            {
                ISubDeclaratorUtils.AppendNamable(this, nameSpace);
            }

            foreach (Type type in Types)
            {
                ISubDeclaratorUtils.AppendNamable(this, type);
            }

            foreach (IVariable variable in AllVariables)
            {
                ISubDeclaratorUtils.AppendNamable(this, variable);
            }

            foreach (Procedure proc in Procedures)
            {
                ISubDeclaratorUtils.AppendNamable(this, proc);
            }

            foreach (Function function in Functions)
            {
                ISubDeclaratorUtils.AppendNamable(this, function);
            }
        }
コード例 #5
0
        /// <summary>
        ///     Initialises the declared elements
        /// </summary>
        public void InitDeclaredElements()
        {
            DeclaredElements = new Dictionary <string, List <INamable> >();

            ISubDeclaratorUtils.AppendNamable(this, LastIteration);
            ISubDeclaratorUtils.AppendNamable(this, CurrentIteration);
        }
コード例 #6
0
        /// <summary>
        ///     Gets a value based on its image
        /// </summary>
        /// <param name="image"></param>
        /// <returns></returns>
        public override IValue getValue(string image)
        {
            IValue retVal = null;

            if (Char.IsLetter(image[0]) || image[0] == '_')
            {
                int lastDotPosition = image.LastIndexOf('.');
                if (lastDotPosition > 0)
                {
                    string     prefix         = image.Substring(0, lastDotPosition);
                    Expression typeExpression = new Parser().Expression(this, prefix,
                                                                        IsType.INSTANCE, true, null, true);
                    if (typeExpression != null && typeExpression.Ref == this)
                    {
                        image = image.Substring(lastDotPosition + 1);
                    }
                }

                List <INamable> tmp = new List <INamable>();
                ISubDeclaratorUtils.Find(this, image, tmp);
                if (tmp.Count == 1)
                {
                    retVal = tmp[0] as IValue;
                }

                if (retVal == null)
                {
                    throw new Exception("Cannot find boolean from " + image);
                }
            }

            return(retVal);
        }
コード例 #7
0
        /// <summary>
        ///     Initialises the declared elements
        /// </summary>
        public void InitDeclaredElements()
        {
            DeclaredElements = new Dictionary <string, List <INamable> >();

            foreach (State state in States)
            {
                ISubDeclaratorUtils.AppendNamable(this, state);
            }
        }
コード例 #8
0
ファイル: Procedure.cs プロジェクト: fakoor/ERTMSFormalSpecs
        /// <summary>
        ///     Initialises the declared elements
        /// </summary>
        public void InitDeclaredElements()
        {
            DeclaredElements = new Dictionary <string, List <INamable> >();

            foreach (Parameter parameter in FormalParameters)
            {
                ISubDeclaratorUtils.AppendNamable(this, parameter);
            }
        }
コード例 #9
0
        /// <summary>
        ///     Constructor
        /// </summary>
        /// <param name="root">the root element for which this expression should be parsed</param>
        /// <param name="log"></param>
        /// <param name="listExpression"></param>
        /// <param name="iteratorVariableName"></param>
        /// <param name="condition"></param>
        /// <param name="function"></param>
        /// <param name="initialValue"></param>
        /// <param name="parsingData">Additional information about the parsing process</param>
        public ReduceExpression(ModelElement root, ModelElement log, Expression listExpression,
                                string iteratorVariableName, Expression condition, Expression function, Expression initialValue, ParsingData parsingData)
            : base(root, log, listExpression, iteratorVariableName, condition, function, parsingData)
        {
            InitialValue = SetEnclosed(initialValue);

            AccumulatorVariable = CreateBoundVariable("RESULT", null);
            ISubDeclaratorUtils.AppendNamable(this, AccumulatorVariable);
        }
コード例 #10
0
        /// <summary>
        ///     Initialises the declared elements
        /// </summary>
        public void InitDeclaredElements()
        {
            DeclaredElements = new Dictionary <string, List <INamable> >();

            foreach (EnumValue value in SpecialValues)
            {
                ISubDeclaratorUtils.AppendNamable(this, value);
            }
        }
コード例 #11
0
        /// <summary>
        ///     Initialises the declared elements
        /// </summary>
        public void InitDeclaredElements()
        {
            ISubDeclaratorUtils.CriticalSection.WaitOne();
            try
            {
                DeclaredElements = new Dictionary <string, List <INamable> >();

                foreach (Types.NameSpace nameSpace in NameSpaces)
                {
                    ISubDeclaratorUtils.AppendNamable(this, nameSpace);
                }
            }
            finally
            {
                ISubDeclaratorUtils.CriticalSection.ReleaseMutex();
            }
        }
コード例 #12
0
        /// <summary>
        ///     Initialises the declared elements
        /// </summary>
        public void InitDeclaredElements()
        {
            DeclaredElements = new Dictionary <string, List <INamable> >();

            foreach (StructureElement element in Elements)
            {
                ISubDeclaratorUtils.AppendNamable(this, element);
            }
            foreach (Procedure procedure in Procedures)
            {
                ISubDeclaratorUtils.AppendNamable(this, procedure);
            }

            foreach (StateMachine stateMachine in StateMachines)
            {
                ISubDeclaratorUtils.AppendNamable(this, stateMachine);
            }
        }
コード例 #13
0
 /// <summary>
 /// Appends the INamable which match the name provided in retVal
 /// </summary>
 /// <param name="name"></param>
 /// <param name="retVal"></param>
 public void Find(string name, List <Utils.INamable> retVal)
 {
     ISubDeclaratorUtils.Find(this, name, retVal);
 }
コード例 #14
0
 /// <summary>
 ///     Initialises the declared elements
 /// </summary>
 public void InitDeclaredElements()
 {
     ISubDeclaratorUtils.AppendNamable(this, IteratorVariable);
 }
コード例 #15
0
 /// <summary>
 ///     Appends the INamable which match the name provided in retVal
 /// </summary>
 /// <param name="name"></param>
 /// <param name="retVal"></param>
 public void Find(string name, List <INamable> retVal)
 {
     ISubDeclaratorUtils.Find(UnifiedStateMachine, name, retVal);
 }