diff --git a/HOME_EXAM.md b/HOME_EXAM.md
index 7c1c0d11fd3559ac7b1c731b325b035c6a101553..b0a11c2b39cecd00e6bede5d66534f68a4d2ce64 100644
--- a/HOME_EXAM.md
+++ b/HOME_EXAM.md
@@ -86,7 +86,7 @@ The implemented langugage is desciribed usign EBNF grammar below. The language i
 #### EBNF
 ```ebnf
 Program
-    :Programs
+    :Program*
     |Function
     |Decl
     |Expr
@@ -95,8 +95,7 @@ Program
 
 ```ebnf
 Stmt
-    :Function
-    |"if" Expr BlockExpr "else"? BlockExpr?
+    :"if" Expr BlockExpr ("else" BlockExpr)?
     |"while" Expr BlockExpr
     |Decl
     |Expr
@@ -105,14 +104,14 @@ Stmt
 
 ```ebnf
 Function
-    :"fn" Id "(" Args ")" "->" Type BlockExpr
+    :"fn" Id "(" Arg* ")" "->" Type BlockExpr
     |"fn" Id "()" "->" "()" BlockExpr
     ;
 ```
 
 ```ebnf
 BlockExpr
-    :"{" Stmts "}"
+    :"{" Stmt* "}"
     ;
 ```
 
@@ -134,18 +133,11 @@ Arg
 Expr
     :Expr ExprOp Factor
     |Expr LogicOp Factor
-    |Id "(" Exprs ")"
-    |PrefixOp "(" Expr ")"
+    |Id "(" Expr* ")"
     |Factor
     ;
 ```
 
-```ebnf
-Prefix
-    :"-"
-    ;
-```
-
 ```ebnf
 ExprOp
     :"+"