Exemple #1
0
        public override void ExitFileVariableSimple([NotNull] SBP.FileVariableSimpleContext context)
        {
            var type = this.PopType("ExitFileVariableSimple");
            var name = m_varName;

            var element = new FileElement(this.TopElement, m_elementStartLine, ScriptData.FileElementType.FileVariable, m_varName);

            element.ReturnTypeData = type;
            element.Modifiers      = m_modifiers;
            this.TopElement.Childs.Add(element);
        }
Exemple #2
0
        public override void ExitFileVariableSimple([NotNull] SBP.FileVariableSimpleContext context)
        {
            System.Diagnostics.Debug.Assert(m_variables.Count == 1);
            TypeReference type     = m_variableType;
            var           variable = m_variables[0];

            if (type == (TypeReference)typeof(VarSpecifiedType))
            {
                type = variable.Value.DataType;
            }
            if (!type.Type.IsAssignableFrom(variable.Value.DataType.Type))
            {
                throw new NotImplementedException("Variables assignment of incompatible type.");
            }
            var codeHash = context.GetText().GetHashCode();
            var id       = m_file.CreateOrGetFileVariable(
                m_currentNamespace, m_fileElementModifier, variable.Name, type, false,
                context.Start.Line, context.Start.Column, codeHash,
                CreateVariableContainerValueAssignAction(variable.Value.ExpressionCode));

            m_file.SetFileVariableModifier(id, m_fileElementModifier);
        }
Exemple #3
0
 public override void EnterFileVariableSimple([NotNull] SBP.FileVariableSimpleContext context)
 {
     m_elementStartLine = context.Start.Line;
 }
Exemple #4
0
 public override void EnterFileVariableSimple([NotNull] SBP.FileVariableSimpleContext context)
 {
     m_variableModifier = VariableModifier.Static;
     this.CreateVariablesList();
 }