public override object VisitCmd_create_var([NotNull] scheme_langParser.Cmd_create_varContext context) { var var_def = context.variable_definition(); string var_type = var_def.variable_type()?.GetText(); string var_name = var_def.variable_name()?.GetText(); if (var_type == null || var_name == null) { if (var_def.EQUALS() != null) { SetNewExpression(1); } return(base.VisitCmd_create_var(context)); } if (!VariableManager.IsTypeValid(var_type, Config)) { Errors.Add(new ErrorDescriptor($"Type '{var_type}' is not recognized.", var_def.variable_type())); } VariableManager.CheckNewVariable(var_name, this, var_def.variable_name()); CommandCreateVariable create_cmd = new CommandCreateVariable(var_type, var_name); currentFunc.AddCommand(create_cmd); if (var_def.EQUALS() != null) { CommandSetVariable cmd = new CommandSetVariable(var_name, GetRegName(0)); currentFunc.AddCommand(cmd); SetNewExpression(1); } return(base.VisitCmd_create_var(context)); }