private double?ToFee(EurekahedgeLockupAntlrVisitor.TokenMatch percentMatch)
        {
            double result;

            if (!double.TryParse(percentMatch.Value.Substring(0, percentMatch.Value.Length - 1), NumberStyles.Float, formatProvider, out result))
            {
                return(null);
            }

            return(result > 0 && result < 10
                ? result / 100D
                : (double?)null);
        }
        private int?ToDuration(EurekahedgeLockupAntlrVisitor.TokenMatch numberMatch, EurekahedgeLockupAntlrVisitor.TokenMatch periodMatch)
        {
            double result;

            if (numberMatch == null)
            {
                result = 1;
            }
            else if (numberMatch.TokenType == EurekahedgeLockupTokenType.WordNumberValue)
            {
                result = ToNumber(numberMatch.Value);
            }
            else if (!double.TryParse(numberMatch.Value, NumberStyles.Float, formatProvider, out result))
            {
                return(null);
            }

            double multi;

            switch (periodMatch.TokenType)
            {
            case EurekahedgeLockupTokenType.Year:
                multi = 12;
                break;

            case EurekahedgeLockupTokenType.Quarter:
                multi = 3;
                break;

            case EurekahedgeLockupTokenType.Month:
            case EurekahedgeLockupTokenType.Week:
            case EurekahedgeLockupTokenType.Day:
                multi = 1;
                break;

            default:
                return(null);
            }

            return((int)Math.Truncate(result * multi));
        }