Warning() public method

public Warning ( string format ) : void
format string
return void
Esempio n. 1
0
		/// <summary>
		/// 
		/// </summary>
		/// <param name="parser"></param>
		/// <param name="var"></param>
		/// <param name="component"></param>
		/// <returns>Returns a register index.</returns>
		private int ParseTerm(idScriptParser parser, idWindowVariable var, int component)
		{
			int a, b;
			object tmp;

			idToken token = parser.ReadToken();
			string tokenValue = token.ToString().ToLower();

			if(tokenValue == "(")
			{
				a = ParseExpression(parser);
				parser.ExpectTokenString(")");

				return a;
			}
			else if(tokenValue == "time")
			{
				return (int) WindowExpressionRegister.Time;
			}
			// parse negative numbers
			else if(tokenValue == "-")
			{
				token = parser.ReadToken();

				if((token.Type == TokenType.Number) || (token.ToString() == "."))
				{
					return ExpressionConstant(-token.ToFloat());
				}

				parser.Warning("Bad negative number '{0}'", token.ToString());

				return 0;
			}

			if((token.Type == TokenType.Number) || (token.ToString() == ".") || (token.ToString() == "-"))
			{
				return ExpressionConstant(token.ToFloat());
			}

			// see if it is a table name
			idDeclTable table = idE.DeclManager.FindType<idDeclTable>(DeclType.Table, token.ToString(), false);

			if(table != null)
			{
				a = table.Index;

				// parse a table expression
				parser.ExpectTokenString("[");
				b = ParseExpression(parser);
				parser.ExpectTokenString("]");

				return EmitOperation(a, b, WindowExpressionOperationType.Table);
			}

			if(var == null)
			{
				var = GetVariableByName(token.ToString(), true);
			}

			if(var != null)
			{
				var.Init(tokenValue, this);

				tmp = var;
				b = component;

				if(var is idWinVector4)
				{
					if((token = parser.ReadToken()) != null)
					{
						if(token.ToString() == "[")
						{
							b = ParseExpression(parser);
							parser.ExpectTokenString("]");
						}
						else
						{
							parser.UnreadToken(token);
						}
					}

					return EmitOperation(tmp, b, WindowExpressionOperationType.Var);
				}
				else if(var is idWinFloat)
				{
					return EmitOperation(tmp, b, WindowExpressionOperationType.VarF);
				}
				else if(var is idWinInteger)
				{
					return EmitOperation(tmp, b, WindowExpressionOperationType.VarI);
				}
				else if(var is idWinBool)
				{
					return EmitOperation(tmp, b, WindowExpressionOperationType.VarB);
				}
				else if(var is idWinString)
				{
					return EmitOperation(tmp, b, WindowExpressionOperationType.VarS);
				}
				else
				{
					parser.Warning("Variable expression not vec4, float or int '{0}'", token.ToString());
				}

				return 0;
			}
			else
			{
				// ugly but used for post parsing to fixup named vars
				EmitOperation(token.ToString(), -2, WindowExpressionOperationType.Var);
			}

			return 0;
		}