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); }
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); }
public override void EnterFileVariableSimple([NotNull] SBP.FileVariableSimpleContext context) { m_elementStartLine = context.Start.Line; }
public override void EnterFileVariableSimple([NotNull] SBP.FileVariableSimpleContext context) { m_variableModifier = VariableModifier.Static; this.CreateVariablesList(); }