4 ms·
Thanks, that's a good case. Actually, the JavaScript semicolon insertion algorithm [0] seems more complex than I had remembered. I had thought of them as varia
by trealira 2y ago
Thanks, that's a good case.
Actually, the JavaScript semicolon insertion algorithm [0] seems more complex than I had remembered. I had thought of them as variations on the semicolon insertion in BCPL, but it seems like that's an oversimplification.
For reference, these are the BCPL rules:
The canonical symbol SEMICOLON is inserted between pairs of items if they appeared on different lines and if the first was from the set of items which may end a command or definition, namely:
BREAK RETURN FINISH REPEAT SKET RKET
SECTKET NAME STRINGCONST NUMBER TRUE FALSE
and the second is from the set of items which may start: a command, namely:
TEST FOR IF UNLESS UNTIL WHILE GOTO RESULTIS
CASE DEFAULT BREAK RETURN FINISH SECTBRA
RBRA VALOF LV RV NAME
...
( ) [ ] § § are used to denote RBRA RKET SBRA SKET SECTBRA and SECTKET.
[0]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#automatic_semicolon_insertion https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...