TeaseAI_CE.Scripting.Context.Get C# (CSharp) Method

Get() public method

public Get ( Key key, Logger log = null ) : Variable
key Key
log Logger
return Variable
		public Variable Get(Key key, Logger log = null)
		{
			if (key.NextIf("local"))
			{
				Variable result;
				if (!Variables.TryGetValue(key.Peek, out result))
					Variables[key.Peek] = result = new Variable();
				return result;
			}
			else
				return Controller.Get(key, Root.Log);
		}
	}

Usage Example

Beispiel #1
0
		/// <summary>
		/// Execute a line of code.
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="line"></param>
		/// <param name="output"></param>
		internal void ExecLine(Context sender, string line, StringBuilder output)
		{
			var log = sender.Root.Log;
			string key;
			Variable[] args;

			int i = 0;
			char c;
			while (i < line.Length && !sender.ExitLine)
			{
				c = line[i];
				++i;
				switch (c)
				{
					case '#':
					case '@':
						execSplitCommand(sender, line, ref i, out key, out args);
						if (key != null)
						{
							Variable variable = sender.Get(new Key(key, sender), log);
							if (variable == null || variable.IsSet == false)
								continue;
							var func = variable.Value as Function;
							if (func != null)
								variable = func(sender, args);
							// ToDo : Do we need to do anything to other value types?

							// output if @
							if (c == '@' && variable != null)
								variable.WriteValueUser(sender, output);
						}
						else
						{
							if (c == '@' && args != null && args.Length > 0 && args[0] != null)
								args[0].WriteValueUser(sender, output);
						}
						break;

					//case '\\':
					// ToDo : escape character.
					//break;
					default:
						output.Append(c);
						break;
				}
			}
		}
All Usage Examples Of TeaseAI_CE.Scripting.Context::Get