diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Parser.java b/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
index ae267e5..67e13e5 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
@@ -407,16 +407,30 @@
 
   // arg ::= IDENTIFIER '=' nontupleexpr
   //       | expr
+  //       | *args       (only in Skylark mode)
+  //       | **kwargs    (only in Skylark mode)
+  // To keep BUILD files declarative and easy to process, *args and **kwargs
+  // arguments are allowed only in Skylark mode.
   private Argument.Passed parseFuncallArgument() {
     final int start = token.left;
     // parse **expr
     if (token.kind == TokenKind.STAR_STAR) {
+      if (!skylarkMode) {
+        reportError(
+            lexer.createLocation(token.left, token.right),
+            "**kwargs arguments are not allowed in BUILD files");
+      }
       nextToken();
       Expression expr = parseNonTupleExpression();
       return setLocation(new Argument.StarStar(expr), start, expr);
     }
     // parse *expr
     if (token.kind == TokenKind.STAR) {
+      if (!skylarkMode) {
+        reportError(
+            lexer.createLocation(token.left, token.right),
+            "*args arguments are not allowed in BUILD files");
+      }
       nextToken();
       Expression expr = parseNonTupleExpression();
       return setLocation(new Argument.Star(expr), start, expr);
