void parseValue() { ComputedValue = new ComputedValueResult(); ComputedValue.Literal = ValueMiddle.StartsWith("#"); bool found = false; foreach (char identifier in BaseIdentifiers.Keys) { //Console.WriteLine(identifier.ToString()); bool check = ValueMiddle[0] == identifier; if (ValueMiddle.Length > 1) { check = check || ValueMiddle[1] == identifier; } if (check) { ComputedValue.ValueString = ValueMiddle.Split(identifier)[1]; if (identifier == '0' && ComputedValue.ValueString.Length == 0) { ComputedValue.ValueString = "0"; ComputedValue.Base = 10; found = true; break; } ComputedValue.Base = BaseIdentifiers[identifier]; found = true; break; } } if (!found) { ComputedValue.ValueString = ValueMiddle; if (ComputedValue.Literal) { ComputedValue.ValueString = ComputedValue.ValueString.Substring(1, ComputedValue.ValueString.Length - 1); } ComputedValue.Base = 10; } //if (ComputedValue.Literal) // ComputedValue.ValueString = ComputedValue.ValueString.Substring(1, ComputedValue.ValueString.Length - 1); if (ComputedValue.ValueString.StartsWith("-")) { ComputedValue.ValueString = ComputedValue.ValueString.Substring(1, ComputedValue.ValueString.Length - 1); ComputedValue.MakeNegative = true; } return; }
public void ParseValue() { //get the value out of the string if (this.Type == DirectiveType.@string) { return; } this.ComputedValue = Assembly.NumeralFromFormattedLiteralString(RawArgumentWithoutQuotes); }
public static ComputedValueResult NumeralFromFormattedLiteralString(string literalString) { ComputedValueResult ComputedValue = new ComputedValueResult(); if (literalString.StartsWith("-")) { ComputedValue.MakeNegative = true; literalString = literalString.Substring(1, literalString.Length - 1); } ComputedValue.Literal = literalString.StartsWith("#"); bool found = false; foreach (char identifier in BaseIdentifiers.Keys) { //Console.WriteLine(identifier.ToString()); bool check = literalString[0] == identifier; if (literalString.Length > 1) { check = check || literalString[1] == identifier; } if (check) { ComputedValue.ValueString = literalString.Split(identifier)[1]; if (identifier == '0' && ComputedValue.ValueString.Length == 0) { ComputedValue.ValueString = "0"; ComputedValue.Base = 10; found = true; break; } ComputedValue.Base = BaseIdentifiers[identifier]; found = true; break; } } if (!found) { ComputedValue.ValueString = literalString; if (ComputedValue.Literal) { ComputedValue.ValueString = ComputedValue.ValueString.Substring(1, ComputedValue.ValueString.Length - 1); } ComputedValue.Base = 10; } //if (ComputedValue.Literal) // ComputedValue.ValueString = ComputedValue.ValueString.Substring(1, ComputedValue.ValueString.Length - 1); if (ComputedValue.ValueString.StartsWith("-")) { ComputedValue.ValueString = ComputedValue.ValueString.Substring(1, ComputedValue.ValueString.Length - 1); ComputedValue.MakeNegative = true; } return(ComputedValue); }