public virtual CommandDeclareVariable DefineLocalVariable(ILanguageType symbolType) { var localVar = SymbolLocalVariable.Create(symbolType, ChildCommandBlockScope); var command = new CommandDeclareVariable(ChildCommandBlockScope, localVar); CommandsList.Add(command); return(command); }
public bool LookupLocalVariable(string symbolName, out SymbolLocalVariable localVar) { LanguageSymbol symbol; if (ChildCommandBlockScope.LookupSymbol(symbolName, RootAst.LocalVariableRoleName, out symbol)) { localVar = (SymbolLocalVariable)symbol; return(true); } localVar = null; return(false); }
/// <summary> /// Removes the definition of a local variable from this command block /// </summary> /// <param name="localVar"></param> /// <returns></returns> public bool UndefineLocalVariable(SymbolLocalVariable localVar) { var declareCommand = DeclareVariableCommands.FirstOrDefault( command => command.DataStore.ObjectName == localVar.ObjectName ); if (ReferenceEquals(declareCommand, null) == false) { RemoveCommand(declareCommand); } return(ChildScope.RemoveLocalVariable(localVar)); }
internal static AstLocalVariable ToAstLocalVariable(this SymbolLocalVariable variable) { return(new AstLocalVariable(variable)); }
/// <summary> /// Remove a local variable from this scope /// </summary> /// <param name="symbol"></param> /// <returns></returns> internal bool RemoveLocalVariable(SymbolLocalVariable symbol) { return(_symbols.Remove(symbol.ObjectName)); }
internal AstLocalVariable(SymbolLocalVariable parameter) { AssociatedVariable = parameter; }