The BNF given does not permit = to be directly followed by not. Go/Julia/Perl all get that wrong (better to fix task tho?).
The Go output also claims that "g not = h" is valid, whereas Perl/Julia and now Phix call that invalid. --Pete Lomax (talk) 18:57, 3 January 2020 (UTC)
I may not understand the specification given for BNF syntax. Doesn't the rule:
expr_level_4 = ["not"] expr_level_5 [('=' | '<') expr_level_5] ;
- First/left one yes, second/right one no. Consider expr_level_4 = ["not"] expr_level_5 [('=' | '<') ["not"] expr_level_5] ;
- Ideally the not would be moved into its own private rule, rather than clog up the (partial) comparison rule anyway. --Pete Lomax (talk) 19:31, 3 January 2020 (UTC)
Note the square brackets  around the [('=' | '<') expr_level_5]. This means that the expression
'2 < 3 < 4'
- Well spotted. Please sign your posts, with --~~~~ thanks --Pete Lomax (talk) 14:14, 4 January 2020 (UTC)