} = Constants.SYS_NUM; // "Number"; public NumberExtractor(NumberMode mode = NumberMode.Default, NumberOptions options = NumberOptions.None) { var builder = ImmutableDictionary.CreateBuilder <Regex, string>(); //Add Cardinal CardinalExtractor cardExtract = null; switch (mode) { case NumberMode.PureNumber: cardExtract = CardinalExtractor.GetInstance(NumbersDefinitions.PlaceHolderPureNumber); break; case NumberMode.Currency: builder.Add(new Regex(NumbersDefinitions.CurrencyRegex, RegexOptions.Singleline), RegexTagGenerator.GenerateRegexTag(Constants.FRACTION_PREFIX, Constants.NUMBER_SUFFIX)); break; case NumberMode.Default: break; } if (cardExtract == null) { cardExtract = CardinalExtractor.GetInstance(); } builder.AddRange(cardExtract.Regexes); //Add Fraction var fracExtract = new FractionExtractor(); builder.AddRange(fracExtract.Regexes); this.Regexes = builder.ToImmutable(); }
} = Constants.SYS_NUM; // "Number"; public NumberExtractor(NumberMode mode = NumberMode.Default) { var builder = ImmutableDictionary.CreateBuilder <Regex, string>(); //Add Cardinal CardinalExtractor cardExtract = null; switch (mode) { case NumberMode.PureNumber: cardExtract = new CardinalExtractor(NumbersDefinitions.PlaceHolderPureNumber); break; case NumberMode.Currency: builder.Add(new Regex(NumbersDefinitions.CurrencyRegex, RegexOptions.Singleline), "IntegerNum"); break; case NumberMode.Default: break; } if (cardExtract == null) { cardExtract = new CardinalExtractor(); } builder.AddRange(cardExtract.Regexes); //Add Fraction var fracExtract = new FractionExtractor(); builder.AddRange(fracExtract.Regexes); this.Regexes = builder.ToImmutable(); }
public NumberExtractor(NumberMode mode = NumberMode.Default) { var builder = ImmutableDictionary.CreateBuilder <Regex, TypeTag>(); CardinalExtractor cardExtract = null; switch (mode) { case NumberMode.PureNumber: cardExtract = new CardinalExtractor(NumbersDefinitions.PlaceHolderPureNumber); break; case NumberMode.Currency: builder.Add(new Regex(NumbersDefinitions.CurrencyRegex, RegexOptions.Singleline), RegexTagGenerator.GenerateRegexTag(Constants.INTEGER_PREFIX, Constants.NUMBER_SUFFIX)); break; case NumberMode.Default: break; } if (cardExtract == null) { cardExtract = new CardinalExtractor(); } builder.AddRange(cardExtract.Regexes); var fracExtract = new FractionExtractor(); builder.AddRange(fracExtract.Regexes); Regexes = builder.ToImmutable(); }
} = Constants.SYS_NUM; // "Number"; public NumberExtractor(NumberMode mode = NumberMode.Default) { var builder = ImmutableDictionary.CreateBuilder <Regex, string>(); //Add Cardinal CardinalExtractor cardExtract = null; switch (mode) { case NumberMode.PureNumber: cardExtract = new CardinalExtractor(@"\b"); break; case NumberMode.Currency: builder.Add(new Regex(@"(((?<=\W|^)-\s*)|(?<=\b))\d+\s*(B|b|m|t|g)(?=\b)", RegexOptions.Singleline), "IntegerNum"); break; case NumberMode.Default: break; } if (cardExtract == null) { cardExtract = new CardinalExtractor(); } builder.AddRange(cardExtract.Regexes); //Add Fraction var fracExtract = new FractionExtractor(); builder.AddRange(fracExtract.Regexes); Regexes = builder.ToImmutable(); }
public BaseNumberOptionsConfiguration(string culture, NumberOptions options = NumberOptions.None, NumberMode mode = NumberMode.Default, string placeholder = BaseNumbers.PlaceHolderDefault) { Culture = culture; Options = options; Mode = mode; Placeholder = placeholder; }
public UndupNumericNumericAction(IPostProcessor processor, XmlNode node) { numberMode = node.ReadEnum("@number", NumberMode.Int); String from = node.ReadStr("field"); fromField = new JPath(from); String to = node.ReadStr("tofield", null); toField = to == null ? fromField : new JPath(to); }
public static NumberExtractor GetInstance(NumberMode mode = NumberMode.Default) { var placeholder = mode.ToString(); if (!Instances.ContainsKey(placeholder)) { var instance = new NumberExtractor(mode); Instances.TryAdd(placeholder, instance); } return(Instances[placeholder]); }
private void SetValue(long position, NumberMode mode, long value) { switch (mode) { case NumberMode.Position: Memory[position] = value; break; case NumberMode.Relative: Memory[position + _relativeBase] = value; break; } }
private long GetValue(long number, NumberMode mode) { switch (mode) { case NumberMode.Position: return(Memory[number]); case NumberMode.Value: return(number); case NumberMode.Relative: return(Memory[number + _relativeBase]); } return(0); }
/// <summary> /// Initialize a new instance of this class with defaults set to Hex, 8 bits. /// </summary> /// <param name="hexData">Hex value.</param> public HexTextBox() { this.Multiline = false; previousMode = NumberMode.Hex; currentMode = NumberMode.Hex; //default to 8 bits numBits = 8; numBytes = 1; signedNumber = false; minValue = 0; maxValue = 256; //add handler to check key presses so user enters only valid data this.KeyPress += new KeyPressEventHandler(HexTextBox_KeyPress); this.MouseMove += new MouseEventHandler(HexTextBox_MouseMove); this.tooltips = new ToolTip(); }
/// <summary> /// Initialize a new instance of this class with defaults set to Hex, 8 bits. /// </summary> /// <param name="hexData">Hex value.</param> public HexTextBox() { this.Multiline = false; previousMode = NumberMode.Hex; currentMode = NumberMode.Hex; //default to 8 bits numBits = 8; numBytes = 1; signedNumber = false; minValue = 0; maxValue = 256; //add handler to check key presses so user enters only valid data this.KeyPress += new KeyPressEventHandler(HexTextBox_KeyPress); this.MouseMove += new MouseEventHandler(HexTextBox_MouseMove); this.tooltips = new ToolTip(); }
/// <summary> /// 创建工厂实例 /// </summary> /// <param name="numberMode">编号模式</param> /// <returns>编号接口</returns> public static INumber Create(NumberMode numberMode) { INumber number; switch (numberMode) { case NumberMode.连续编号: number = new NumberManager(); break; case NumberMode.按年连续编号: number = new YearNumberManager(); break; case NumberMode.按月连续编号: number = new MonthNumberManager(); break; case NumberMode.按日连续编号: number = new DayNumberManager(); break; default: throw new NumberException("没有具体的编号模式!"); } return number; }
private NumberExtractor(NumberMode mode = NumberMode.Default) { NegativeNumberTermsRegex = new Regex(NumbersDefinitions.NegativeNumberTermsRegex + '$', RegexOptions.IgnoreCase | RegexOptions.Singleline); var builder = ImmutableDictionary.CreateBuilder <Regex, string>(); //Add Cardinal CardinalExtractor cardExtract = null; switch (mode) { case NumberMode.PureNumber: cardExtract = CardinalExtractor.GetInstance(NumbersDefinitions.PlaceHolderPureNumber); break; case NumberMode.Currency: builder.Add(new Regex(NumbersDefinitions.CurrencyRegex, RegexOptions.Singleline), "IntegerNum"); break; case NumberMode.Default: break; } if (cardExtract == null) { cardExtract = CardinalExtractor.GetInstance(); } builder.AddRange(cardExtract.Regexes); //Add Fraction var fracExtract = FractionExtractor.GetInstance(); builder.AddRange(fracExtract.Regexes); Regexes = builder.ToImmutable(); }
public NumberField(string label, string name, bool required, NumberMode mode) : base(label, name, required) { Mode = mode; }
public NumberField(string label, string name, bool required, NumberMode mode) : base(label, name, required) { Mode = mode; }
public NumberField(string label, string name, NumberMode mode) : this(label, name, false, mode) { }
public BaseNumberOptionsConfiguration(string culture, NumberOptions options = NumberOptions.None, NumberMode mode = NumberMode.Default) { Culture = culture; Options = options; Mode = mode; }
public NumberField(string label, string name, NumberMode mode) : this(label, name, false, mode) { }
/// <summary> /// Interpret a single instruction. /// </summary> /// <returns> /// <c>false</c> if the interpretation failed, <c>true</c> otherwise. /// </returns> public bool InterpretOne() { if (!jumptablebuilt) { Error ("You need to build the jump table!"); Error ("Call BuildJumpTable before calling Interpret or InterpretOne."); return false; } if (pos < source.Length) { switch (source [pos]) { case '>': memptr++; if (wrap && memptr >= mem.Length) memptr = 0; break; case '<': memptr--; if (wrap && memptr < 0) memptr = mem.Length - 1; break; case '+': mem [memptr]++; break; case '-': mem [memptr]--; break; case '*': mem [memptr] <<= 1; break; case '/': mem [memptr] >>= 1; break; case '.': var val = mem [memptr]; switch (numbermode) { case NumberMode.Char: WriteOutput (Convert.ToChar (val).ToString ()); break; case NumberMode.Bin: WriteOutput (Convert.ToString (val, 2)); break; case NumberMode.Dec: WriteOutput (Convert.ToString (val, 10)); break; case NumberMode.Hex: WriteOutput (Convert.ToString (val, 16)); break; } break; case ',': char inchr = '\x00'; if (hosted) { if (!string.IsNullOrEmpty (input) && inputpos < input.Length) { inchr = input [inputpos++]; WriteOutput (inchr.ToString ()); } else { Error ("No input available"); return false; } } else inchr = Console.ReadKey ().KeyChar; if (numbermode != NumberMode.Char && !char.IsDigit (inchr)) { Error ("Unexpected char in input sequence: {0}", inchr); return false; } switch (numbermode) { case NumberMode.Char: mem [memptr] = inchr; break; default: mem [memptr] = int.Parse (inchr.ToString ()); break; } break; case ':': stack.Push (mem [memptr]); break; case '&': stack.Push (stack.Peek ()); break; case '#': mem [memptr] = stack.Count; break; case ';': mem [memptr] = stack.Pop (); break; case '\\': { int elem1 = stack.Pop (); int elem2 = stack.Pop (); stack.Push (elem1); stack.Push (elem2); break; } case '=': { int elem1 = stack.Pop (); int elem2 = stack.Pop (); mem [memptr] = elem1 == elem2 ? 1 : 0; break; } case '@': var collection = stack.ToList (); stack.Clear (); collection.ForEach (stack.Push); break; case '$': pos++; EatWhitespace (); var funcname = new StringBuilder (); if (pos >= source.Length) { Error ("Unexpected end of file"); return false; } while (pos < source.Length && (char.IsLetter (source [pos]) || "_".Contains (source [pos]))) { funcname.Append (source [pos++]); } EatWhitespace (); if (pos < source.Length && source [pos] == '{') { pos++; var funcsrc = new StringBuilder (); while (source [pos] != '}') funcsrc.Append (source [pos++]); var function = new QoFunction (funcname, funcsrc); if (functions.All (func => function.Name != func.Name)) functions.Add (function); else { Error ("Function already defined: {0}", funcname); return false; } } else { var function = functions .FirstOrDefault (func => func.Name == funcname.ToString ()); if (function == default (QoFunction)) { Error ("Call to undefined function: {0}", funcname); return false; } function.Call (this); return true; } break; case '\'': while (source [pos] != '\n' && pos < source.Length - 1) pos++; break; case '[': if (mem [memptr] == 0) pos = jumptable [pos]; break; case ']': if (mem [memptr] != 0) pos = jumptable [pos]; break; case '(': if (stack.Peek () == 0) pos = jumptable [pos]; break; case ')': if (stack.Peek () != 0) pos = jumptable [pos]; break; case '"': var chars = new List<int> (); pos++; while (source [pos] != '"') { var chr = Convert.ToChar (source [pos++]); switch (chr) { case '\\': var next = Convert.ToChar (source [pos++]); switch (next) { case 'a': chars.Add ('\a'); break; case 't': chars.Add ('\t'); break; case 'n': chars.Add ('\n'); break; case 'r': chars.Add ('\r'); break; case '0': chars.Add (0); break; default: Error ("Invalid escape sequence: \\{0}", next); return false; } break; default: chars.Add (chr); break; } } foreach (var chr in chars.Reverse<int> ()) stack.Push (chr); break; case 'c': numbermode = NumberMode.Char; break; case 'b': numbermode = NumberMode.Bin; break; case 'i': numbermode = NumberMode.Dec; break; case 'x': numbermode = NumberMode.Hex; break; case 'q': pos = source.Length; return false; default: if (char.IsWhiteSpace (source [pos])) break; Error ("Invalid instruction at {0}: {1}", pos, source [pos]); return false; } pos++; return true; } return false; }