protected ParserField CreateField(string aRegEx, string aFieldName, TParserValueType aValueType, int aCapturePos, int aCaptureLength, bool aRequiresNumberedCaptureGroup) { string fieldName = CompressName(aFieldName); ParserField ret = new ParserField(fieldName); // Update format specifier ParserFieldFormatSpecifier formatSpecifier = ret.FormatSpecifier; formatSpecifier.OriginalLocation = aCapturePos; formatSpecifier.OriginalLength = aCaptureLength; // Surround in numbered group if needed... StringBuilder finalRegEx = new StringBuilder(aRegEx); if (aRequiresNumberedCaptureGroup) { finalRegEx.Insert(0, "("); finalRegEx.Append(")"); } formatSpecifier.RegularExpressionString = finalRegEx.ToString(); formatSpecifier.ExpectedType = aValueType; return(ret); }
internal void ExtractValue(Group aGroup) { string fieldValue = aGroup.Value; TParserValueType fieldValueType = FormatSpecifier.ExpectedType; // switch (fieldValueType) { case TParserValueType.EValueTypeString: { iFormatValue.SetValueString(fieldValue); break; } case TParserValueType.EValueTypeInt32: { int valInt32 = System.Convert.ToInt32(fieldValue); iFormatValue.SetValueInt(valInt32); break; } case TParserValueType.EValueTypeUint32: { int numberBase = FormatSpecifier.NumberBase; uint valUint32 = System.Convert.ToUInt32(fieldValue, numberBase); iFormatValue.SetValueUint(valUint32); } break; case TParserValueType.EValueTypeUint64: { int numberBase = FormatSpecifier.NumberBase; ulong valUint64 = System.Convert.ToUInt32(fieldValue, numberBase); iFormatValue.SetValueUint64(valUint64); } break; } // SetValue(iFormatSpecifier, iFormatValue); IsComplete = true; }
protected ParserField CreateField(string aRegEx, string aFieldName, TParserValueType aValueType, int aCapturePos, int aCaptureLength) { ParserField ret = CreateField(aRegEx, aFieldName, aValueType, aCapturePos, aCaptureLength, true); return(ret); }