Пример #1
0
        public FullScriptingReplForm(ScriptParsingPlugin scriptParsingPlugin)
        {
            InitializeComponent();
            mScriptParsingPlugin = scriptParsingPlugin;

            ClassScopeTextBox.AllowDrop = true;
            ClassScopeTextBox.DragDrop += HandleDragDrop;
            ClassScopeTextBox.SelectAll();
            int numberOfTabs = 30;

            int[] tabs = new int[numberOfTabs];
            for (int i = 0; i < tabs.Length; i++)
            {
                tabs[i] = 14 * i;
            }
            ClassScopeTextBox.SelectionTabs = tabs;

            InitializeTextBox.AllowDrop     = true;
            InitializeTextBox.DragDrop     += HandleDragDrop;
            InitializeTextBox.SelectionTabs = tabs;

            UpdateTextBox.AllowDrop     = true;
            UpdateTextBox.DragDrop     += HandleDragDrop;
            UpdateTextBox.SelectionTabs = tabs;
            // does not work on rich text boxes
            //SetCueText(InitializeTextBox, "<Add Intialize Code Here>");
            //SetCueText(UpdateTextBox, "<Add Update Code Here>");
        }
        public void Initialize()
        {
            OverallInitializer.Initialize();

            mPlugin = new ScriptParsingPlugin();
            mPlugin.StartUpForTests();
            mExpressionParser = new ExpressionParser();
            mExpressionParser.LogStringBuilder = mLog;

            CreateElementRuntime("ExpressionParserTestEntity");

            CreateParentElementRuntime();

            List <string> languages = new List <string>();

            languages.Add("ID");
            languages.Add("English");
            languages.Add("Spanish");

            Dictionary <string, string[]> entries = new Dictionary <string, string[]>();

            entries.Add("T_Test", new string[]
            {
                "T_Test",
                "Test in English",
                "Test in Spanish"
            });

            LocalizationManager.AddDatabase(entries, languages);
        }
Пример #3
0
        public bool DetermineIfShouldExecute(
            ScriptParsingPlugin plugin,
            CodeContext codeContext,
            ConditionalCodeBlock ccb,
            ExpressionParser expressionParser,
            bool isFirstExecution)
        {
            bool shouldExecute = false;

            if (ccb.BlockType == BlockType.Else)
            {
                shouldExecute = true;
            }
            else if (ccb.BlockType == BlockType.For)
            {
                Statement[] statements = new CSharpParser().ParseStatements(ccb.ConditionExpression) as Statement[];

                if (isFirstExecution)
                {
                    VariableDeclarationStatement declaration = statements[0] as VariableDeclarationStatement;

                    var variable = declaration.Variables.FirstOrDefault();

                    plugin.ApplyAssignment(variable, declaration, codeContext);
                }

                var predicateExpression =
                    (statements[1] as ExpressionStatement).Expression;
                var resultAsObject = expressionParser.EvaluateExpression(predicateExpression, codeContext);
                return((bool)resultAsObject);
            }
            else if (ccb.BlockType == BlockType.While)
            {
                shouldExecute =
                    (bool)expressionParser.EvaluateExpression(ccb.ConditionExpression, codeContext);
            }
            else
            {
                try
                {
                    shouldExecute =
                        (bool)expressionParser.EvaluateExpression(ccb.ConditionExpression, codeContext);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
            return(shouldExecute);
        }