@@ -874,6 +874,7 @@ VALIDATER(print_stmt); VALIDATER(del_stmt);
874874VALIDATER (return_stmt );
875875VALIDATER (raise_stmt ); VALIDATER (import_stmt );
876876VALIDATER (global_stmt );
877+ VALIDATER (assert_stmt );
877878VALIDATER (exec_stmt ); VALIDATER (compound_stmt );
878879VALIDATER (while ); VALIDATER (for );
879880VALIDATER (try ); VALIDATER (except_clause );
@@ -1333,6 +1334,7 @@ validate_small_stmt(tree)
13331334 || (TYPE (CHILD (tree , 0 )) == flow_stmt )
13341335 || (TYPE (CHILD (tree , 0 )) == import_stmt )
13351336 || (TYPE (CHILD (tree , 0 )) == global_stmt )
1337+ || (TYPE (CHILD (tree , 0 )) == assert_stmt )
13361338 || (TYPE (CHILD (tree , 0 )) == exec_stmt )));
13371339
13381340 if (res )
@@ -1584,6 +1586,32 @@ validate_exec_stmt(tree)
15841586} /* validate_exec_stmt() */
15851587
15861588
1589+ /* assert_stmt:
1590+ *
1591+ * 'assert' test [',' test]
1592+ */
1593+ static int
1594+ validate_assert_stmt (tree )
1595+ node * tree ;
1596+ {
1597+ int nch = NCH (tree );
1598+ int res = (validate_ntype (tree , assert_stmt )
1599+ && ((nch == 2 ) || (nch == 4 ))
1600+ && (validate_name (CHILD (tree , 0 ), "__assert__" ) ||
1601+ validate_name (CHILD (tree , 0 ), "assert" ))
1602+ && validate_test (CHILD (tree , 1 )));
1603+
1604+ if (!res && !PyErr_Occurred ())
1605+ err_string ("Illegal assert statement." );
1606+ if (res && (nch > 2 ))
1607+ res = (validate_comma (CHILD (tree , 2 ))
1608+ && validate_test (CHILD (tree , 3 )));
1609+
1610+ return (res );
1611+
1612+ } /* validate_assert_stmt() */
1613+
1614+
15871615static int
15881616validate_while (tree )
15891617 node * tree ;
@@ -2373,7 +2401,7 @@ validate_node(tree)
23732401 case small_stmt :
23742402 /*
23752403 * expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt
2376- * | import_stmt | global_stmt | exec_stmt
2404+ * | import_stmt | global_stmt | exec_stmt | assert_stmt
23772405 */
23782406 res = validate_small_stmt (tree );
23792407 break ;
@@ -2436,6 +2464,9 @@ validate_node(tree)
24362464 case exec_stmt :
24372465 res = validate_exec_stmt (tree );
24382466 break ;
2467+ case assert_stmt :
2468+ res = validate_assert_stmt (tree );
2469+ break ;
24392470 case if_stmt :
24402471 res = validate_if (tree );
24412472 break ;
0 commit comments