From 031b564bbc327813cfe706df258dbcd0cac8c50d Mon Sep 17 00:00:00 2001 From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch> Date: Mon, 2 May 2016 12:35:51 +0200 Subject: [PATCH] Add a few types to ValueGrammar --- .../scala/leon/grammars/ValueGrammar.scala | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/scala/leon/grammars/ValueGrammar.scala b/src/main/scala/leon/grammars/ValueGrammar.scala index 996debb85..a71344583 100644 --- a/src/main/scala/leon/grammars/ValueGrammar.scala +++ b/src/main/scala/leon/grammars/ValueGrammar.scala @@ -3,6 +3,8 @@ package leon package grammars +import leon.purescala.Common.FreshIdentifier +import leon.purescala.Definitions.ValDef import purescala.Types._ import purescala.Expressions._ @@ -26,6 +28,19 @@ case object ValueGrammar extends SimpleExpressionGrammar { terminal(InfiniteIntegerLiteral(1), Tags.One), terminal(InfiniteIntegerLiteral(5), Tags.Constant) ) + case CharType => + List( + terminal(CharLiteral('a'), Tags.Constant), + terminal(CharLiteral('b'), Tags.Constant), + terminal(CharLiteral('0'), Tags.Constant) + ) + case RealType => + List( + terminal(FractionalLiteral(0, 1), Tags.Zero), + terminal(FractionalLiteral(1, 1), Tags.One), + terminal(FractionalLiteral(-1, 2), Tags.Constant), + terminal(FractionalLiteral(555, 42), Tags.Constant) + ) case StringType => List( terminal(StringLiteral(""), Tags.Constant), @@ -66,6 +81,12 @@ case object ValueGrammar extends SimpleExpressionGrammar { terminal(UnitLiteral(), Tags.Constant) ) + case FunctionType(from, to) => + val args = from map (tp => ValDef(FreshIdentifier("x", tp, true))) + List( + nonTerminal(Seq(to), { case Seq(e) => Lambda(args, e) }) + ) + case _ => Nil } -- GitLab