public static UnifiedExpression CreateBignum(XElement node) { Contract.Requires(node != null); Contract.Requires(node.Name() == "Bignum"); return (UnifiedInt32Literal.Create( LiteralFuzzyParser.ParseBigInteger(node.Value))); }
public static UnifiedIntegerLiteral CreateDecimalLiteral(XElement node) { Contract.Requires(node != null); Contract.Requires(node.Name() == "DECIMAL_LITERAL"); /* * DECIMAL_LITERAL : ('0' | '1'..'9' '0'..'9'*) IntegerTypeSuffix? ; */ var result = LiteralFuzzyParser.ParseBigInteger(node.Value); return(UnifiedIntegerLiteral.CreateInt32(result)); }
private static UnifiedExpression CreateRange(XElement node) { Contract.Requires(node != null); Contract.Requires(node.Name() == "Range"); if (node.Value.Contains("...")) { var numbers = node.Value.Split( new[] { "..." }, StringSplitOptions.None); return(UnifiedRange.CreateNotContainingMax( UnifiedIntegerLiteral.CreateInt32( LiteralFuzzyParser.ParseBigInteger(numbers[0])), UnifiedIntegerLiteral.CreateInt32( LiteralFuzzyParser.ParseBigInteger(numbers[1])))); } { var numbers = node.Value.Split( new[] { ".." }, StringSplitOptions.None); return(UnifiedRange.Create( UnifiedIntegerLiteral.CreateInt32( LiteralFuzzyParser.ParseBigInteger(numbers[0])), UnifiedIntegerLiteral.CreateInt32( LiteralFuzzyParser.ParseBigInteger(numbers[1])))); } }