diff --git a/src/model/if.lex.l b/src/model/if.lex.l
index d99bdea974a3185871d856973b77a9bd3fece86b..6276adc1e86be87e8cecac80e7a0607479190352 100644
--- a/src/model/if.lex.l
+++ b/src/model/if.lex.l
@@ -73,7 +73,7 @@ LETTER          [a-zA-Z]
 ALPHA           {DIGIT}|{LETTER}|_
 
 INTEGER         {DIGIT}+
-REAL            {INTEGER}"."{INTEGER}
+REAL            {INTEGER}"."{INTEGER}(e[-+]?{INTEGER})?
 
 IDENTIFIER      {LETTER}{ALPHA}*
 LITERAL         {ALPHA}+
@@ -175,7 +175,6 @@ while           { return WHILE_K; }
 xor             { return XOR_K; }
 
 
-
 endobserver     { return ENDOBSERVER_K; }
 flush           { return FLUSH_K; }
 cut             { return CUT_K; }
@@ -190,12 +189,12 @@ deliver		{ return DELIVER_K; }
 pure		{ return PURE_K; }
 intrusive	{ return INTRUSIVE_K; }
 
-
 priorityrules       { return PRIORITY_SECTION_K;}
 endpriorityrules    { return END_PRIORITY_SECTION_K;}
-{REAL}          { return _REAL_; }
 
+{REAL}          { return _REAL_; }
 {INTEGER}       { return _INTEGER_; }
+
 {IDENTIFIER}    { return _IDENTIFIER_; }
 {LITERAL}       { return _LITERAL_; }
 {XSTATE}        { return _XSTATE_; }