From ed3a17f9b94b6a73eabdf1fa9c2fd51e1d84814b Mon Sep 17 00:00:00 2001 From: Jonathan Coates Date: Thu, 28 Dec 2023 17:07:39 +0000 Subject: [PATCH] Fix trailing-comma errors on method calls We were only matching `f(a, ` patterns, and not `x:f(a, `. We now just match against any usages of call_args - hadn't quite realised we could do that! --- .../modules/main/cc/internal/syntax/parser.lua | 4 ++-- .../modules/cc/internal/syntax/parser_spec.md | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/projects/core/src/main/resources/data/computercraft/lua/rom/modules/main/cc/internal/syntax/parser.lua b/projects/core/src/main/resources/data/computercraft/lua/rom/modules/main/cc/internal/syntax/parser.lua index c1d14dd66..219ec0e33 100644 --- a/projects/core/src/main/resources/data/computercraft/lua/rom/modules/main/cc/internal/syntax/parser.lua +++ b/projects/core/src/main/resources/data/computercraft/lua/rom/modules/main/cc/internal/syntax/parser.lua @@ -192,8 +192,8 @@ local error_messages = { return errors.expected_var(token.v, token.s, token.e) end, } -local error_program_start, error_program = 491, "\6\1\0\3\0072\0\3\7\186\0\3\7\168\0\3\7\160\0\3\7\152\0\3\7\141\0\3\7\127\0\3\7u\0\3\7d\0\3\7W\0\1\0\3\7C\0\3\7;\0\1\0\3\0072\0\3\7*\0\3\7\"\0\3\7\"\0\3\7\"\0\3\7\"\0\3\7\"\0\3\7\n\0\3\7\n\0\3\7\"\0\3\7\26\0\3\7\18\0\3\7\18\0\3\7\18\0\3\7\n\0\3\7\2\0\3\6\232\0\3\6\224\0\3\6\216\0\3\6\208\0\3\6\200\0\3\6\22\0\3\6\190\0\3\6\186\0\3\6\175\0\3\6#\0\3\6\31\0\3\6\23\0\3\1\246\0\3\6\22\0\3\6\16\0\3\6\n\0\3\6\4\0\3\5\255\0\3\5\245\0\3\5\237\0\3\5\226\0\3\5\193\0\3\5\188\0\1\0\3\5\183\0\1\0\3\5\178\0\3\5\165\0\3\5\154\0\3\4\235\0\3\2\29\0\3\0048\0\3\3\155\0\3\3\147\0\3\3\143\0\3\3\135\0\3\3w\0\3\3\139\0\3\3\135\0\3\3\135\0\3\3\131\0\3\3\127\0\3\2\249\0\3\3{\0\3\2\234\0\3\2\234\0\3\3w\0\3\3p\0\3\2\234\0\3\2\249\0\3\2\234\0\3\2\234\0\3\2\234\0\3\2\234\0\3\2\241\0\3\2\234\0\3\2\234\0\3\2\234\0\3\2\234\0\3\2a\0\3\2)\0\3\2U\0\3\2Y\0\3\2)\0\3\2U\0\3\2U\0\3\2Q\0\3\2M\0\3\2I\0\3\2%\0\3\2=\0\3\2E\0\3\0029\0\3\2A\0\3\2=\0\3\0029\0\3\0025\0\3\0021\0\3\2-\0\3\2)\0\3\2%\0\3\2!\0\3\2\29\0\3\2\25\0\3\2\21\0\3\2\21\0\3\2\17\0\3\2\r\0\3\2\t\0\3\2\t\0\3\1\255\0\3\2\5\0\3\1\255\0\3\1\246\0\5\0\0\3\5\250\0\3\7\197\0\5\0\15\1\0\3\5\178\0\1\0\3\5\178\0\3\7\197\0\3\7\205\0\3\7\205\0\3\2\r\0\3\7\214\0\3\7\218\0\3\5\188\0\3\7\222\0\3\2A\0\3\8\2\0\3\5\226\0\3\2-\0\3\0021\0\3\2%\0\3\2)\0\3\2U\0\3\2Q\0\3\2E\0\3\8\t\0\3\0029\0\3\2=\0\3\8\2\0\3\2-\0\5\0\5\1\0\3\5\178\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\2\234\0\3\2\234\0\3\2\234\0\3\3\135\0\5\0\196\3\8\r\0\3\3w\0\3\8\166\0\5\0\8\3\t.\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\5\1\n\3\8\r\0\3\3\135\0\3\t5\0\3\8\166\0\3\t.\0\3\2\234\0\3\t9\0\3\3\147\0\3\t=\0\3\8\133\0\5\0\3\1\0\3\8\149\0\3\tK\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\5\188\0\1\0\3\5\178\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\2\234\0\3\2\234\0\3\2\234\0\3\3\135\0\3\tA\0\3\2)\0\3\7\218\0\3\7\197\0\5\1p\3\8\r\0\1\0\3\8\149\0\3\8\133\0\3\tK\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\5\188\0\1\0\3\tS\0\1\0\3\5\178\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\t=\0\3\2\234\0\3\2\234\0\3\2\234\0\3\3\135\0\3\2)\0\3\tA\0\3\2)\0\3\7\218\0\3\7\197\0\5\1\243\3\8\r\0\1\0\3\8\149\0\3\8\133\0\3\tK\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\1\0\3\tS\0\1\0\3\5\178\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\t=\0\3\2\234\0\3\2\234\0\3\2\234\0\3\3\135\0\3\2)\0\3\tA\0\3\2)\0\3\7\218\0\3\7\197\0\5\2\133\3\8\r\0\3\2\r\0\4\2\0\0\5\0\31\1\0\3\5\183\0\4\4\0\1\6\4\5\0\1\6\4\t\0\0\6\4\r\0\0\6\1\0\3\tX\0\3\tp\0\3\tl\0\3\th\0\3\ta\0\1\0\3\tX\0\4\r\0\0\5\1\28\3\t~\0\4\r\0\0\3\t\161\0\4\14\0\0\6\4\15\0\0\6\4\16\0\0\6\1\0\3\5\178\0\1\0\3\5\183\0\1\0\3\tS\0\6\3\tK\0\3\2)\0\5\0\12\6\3\tA\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\5\188\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\2\234\0\3\2\234\0\3\2\234\0\3\3\135\0\3\7\218\0\5\3\23\3\8\r\0\3\th\0\5\0 \6\3\tl\0\1\0\3\t\168\0\4\1\0\0\5\0E\6\4\1\0\0\3\t\173\0\4\1\0\0\3\t\177\0\4\1\0\0\3\2U\0\4\1\0\0\3\t\181\0\1\0\3\5\178\0\3\2=\0\3\2U\0\3\2-\0\4\1\0\0\5\0\143\6\4\1\0\0\3\t\185\0\4\1\0\0\3\t\189\0\4\1\0\0\3\t\193\0\4\1\0\0\3\t\197\0\4\1\0\0\3\t\201\0\4\r\0\0\4\11\0\1\6\4\14\0\0\3\t\205\0\4\15\0\0\3\t\215\0\3\t~\0\3\tp\0\3\ta\0\5\0\131\1\0\3\tX\0\3\t\219\0\4\1\0\0\4\0\0\0\5\0)\1\0\3\t\227\0\4\1\0\0\1\0\3\5\178\0\4\1\0\0\1\0\3\t\236\0\3\tp\0\4\r\0\0\5\0\12\3\t\241\0\4\r\0\0\3\tp\0\4\r\0\0\3\t\247\0\4\r\0\0\1\0\3\tX\0\3\tp\0\3\t\253\0\4\r\0\0\5\0\171\3\n\1\0\3\1\255\0\3\2\r\0\5\0Z\1\0\3\5\183\0\3\n\5\0\3\2\29\0\3\n\19\0\1\0\3\0072\0\3\7\168\0\3\7\160\0\3\7\152\0\3\7\141\0\1\0\3\0072\0\3\5\193\0\5\1P\3\7\186\0\3\2I\0\4\1\0\0\6\4\1\0\0\3\n\26\0\4\1\0\0\3\n\"\0\4\1\0\0\3\5\226\0\4\1\0\0\3\2=\0\4\1\0\0\3\2)\0\4\1\0\0\3\n=\0\4\1\0\0\3\n\157\0\4\1\0\0\3\11\8\0\4\1\0\0\3\11G\0\4\1\0\0\3\11\142\0\4\1\0\0\3\11\209\0\4\4\0\1\4\1\0\0\6\4\6\0\1\4\1\0\0\6\4\n\0\1\4\1\0\0\6\4\2\0\0\4\1\0\0\4\0\0\0\3\7\205\0\4\5\0\1\4\2\0\0\4\1\0\0\4\0\0\0\6\3\3\131\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\2\234\0\3\2\234\0\3\2\234\0\3\3\135\0\3\8\2\0\5\3_\3\8\r\0\3\2\249\0\3\12`\0\3\6\175\0\3\6\31\0\1\0\3\12g\0\4\14\0\0\5\0P\6\4\7\0\1\6\4\11\0\1\6\3\tp\0\5\0006\3\t\241\0\3\tp\0\3\t\247\0\1\0\3\tX\0\3\tp\0\3\t\253\0\5\0\173\3\n\1\0\1\0\3\tX\0\3\tp\0\3\tl\0\3\th\0\3\ta\0\1\0\3\tX\0\5\1\199\3\t~\0\4\n\0\1\6\3\n\26\0\3\n\"\0\3\n=\0\3\n\157\0\3\11\8\0\3\11G\0\3\11\142\0\3\11\209\0\1\0\3\12g\0\3\12l\0\5\0\203\6\4\2\0\0\3\7\205\0\4\5\0\1\4\2\0\0\6\4\6\0\1\6\1\0\3\12s\0\1\0\3\12|\0\3\12\132\0\3\12\136\0\3\5\245\0\1\0\3\0072\0\3\12\140\0\5\0\196\3\7\168\0\3\t\177\0\3\t\219\0\5\0p\1\0\3\t\227\0\1\0\3\5\178\0\3\2=\0\3\2U\0\3\2-\0\5\0\145\6\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8Z\0\3\8R\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\5\3\165\3\8\r\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\5\3\235\3\8\r\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\5\1\254\3\8\r\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8R\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\5\3\242\3\8\r\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8R\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\5\0048\3\8\r\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\2\234\0\3\2\234\0\3\2\234\0\3\t.\0\3\8\166\0\3\3\135\0\5\4\171\3\8\r\0\4\8\0\1\6\5\0\128\3\12\150\0\2\1\0\1\0\3\12\155\0\4\11\0\1\3\6\22\0\3\tp\0\3\12\164\0\4\r\0\0\1\0\3\12s\0\4\3\0\1\6\4\12\1\2\6\3\12\171\0\5\0\247\3\12\175\0\3\tp\0\3\12\179\0\3\12\171\0" -local error_tbl_ks, error_tbl_vs, error_tbl = 1, 2, "\0\0\203\1\0\147\2\0\0\3\0\199\0\0\0\5\1[\0\0\0\7\1W\0\0\0\t\0\211\0\0\0\11\1S\0\0\0\r\1O\0\0\0\15\0\231\16\0\227\17\0\191\18\0\217\19\1\231\20\0\167\21\1\227\22\0\0\23\0\239\24\1\223\25\0\183\26\1\183\27\1\219\28\0\11\29\0'\30\1K\31\1G \1C!\0\151\"\1?#\1;$\0017\22\1\242&\0013'\1/\0\0\0)\1+*\1'+\1#,\0\27\0\0\0.\0o\0\0\0000\0k\0\0\0002\0g\0\0\0004\0c\0\0\0006\0_\0\0\0008\0[\0\0\0:\0W\0\0\0<\0S\0\0\0>\0O\0\0\0@\0K\0\0\0B\0G\0\0\0D\0C\0\0\0F\0?\0\0\0H\0;I\0\251J\0\217K\1_L\0+M\0wN\0\183O\1\31P\0sQ\0\0R\0\247S\0\0T\0\0U\1\27V\1\23W\1\19X\1\15Y\1\11Z\0\27[\0\0T\2\245]\0\131^\0\223_\1\215`\1\211a\1\207b\1\203c\0\243a\3\151e\0\127f\0#g\0\179h\1\7i\0\31j\1\3k\0\255l\0\135m\0\7n\0'o\1\179p\1\175q\1\171r\1\167s\1\163t\0\203u\0\147q\2]w\0{x\0\0y\0\187z\0001{\0\23|\0'}\1\159~\0\159\127\1\155a\5\161\129\1\151\130\0\187\131\0\155x\6\27\133\0\135\134\0\19\135\0\147\136\0\139\137\1\147a\7`\139\0\135\140\0\15\141\0\143\142\0005\143\0'\144\1\143\145\0\235\146\1\139\147\0\187\148\0\163\149\0\191\150\0\0\151\1\199\152\0\0\153\1\195\154\0\23\155\0'\156\1\135\157\0\187\158\0\171\28\7O\160\0\135\149\7\137\162\0\135\163\0\7\164\0'\165\1\131\134\6\182\167\0\135\168\0\7\169\0'\170\1\127\171\0\0\140\6\182\173\0\0\174\0\7\175\0'\176\1{\177\0\0\178\0\175\179\1w\180\0\1\181\0'\182\1s\183\1o\184\1k\185\0\0\186\0\207a\7\201\188\1g\189\0\187\190\1\191\191\1\187\192\0\195\193\1c\194\0\0\195\0\0\196\0\0\197\0\0\198\0\0\3\0\0x\tE\132\6\194\6\2\218\149\t]\8\2\128\t\2j\n\2z\138\6\194\12\2\222a\n\30\14\2\226\8\t\211T\0\0\17\n\t\0\0\0\0\0\0\0\0\0J\6\240\0\0\0J\n+\0\0\0\18\t\211" .. ("\0"):rep(33) .. "%\2z\0\0\0\0\0\0(\2\230\0\0\0\0\0\0\0\0\0m\7K-\2\186\0\0\0/\2\182\0\0\0001\2\178K\7\1823\2\174K\tz5\2\170\0\0\0007\2\166\0\0\0009\2\162{\7S;\2\158q\6\254=\2\154q\n9?\2\150\0\0\0A\2\146\0\0\0C\2\142\0\0\0E\2\138\0\0\0G\2\134\0\0\0\0\0\0J\2\128\128\6\250L\2\190\128\n5\8\3\22\t\3\0\n\3\16J\t\211\0\0\0l\7\178\0\0\0l\tv\0\0\0\0\0\0\0\0\0\154\7S\0\0\0\0\0\0\\\2\214\0\0\0\0\0\0\0\0\0\0\0\0a\2p\163\7K\0\0\0d\2\210\0\0\0\0\0\0\168\7K\129\7\182\0\0\0\129\tz%\3\16\0\0\0\174\7K\0\0\0\0\0\0\0\0\0q\2\206\0\0\0-\3P\28\5\204/\3Lv\2\2021\3H\0\0\0003\3Dz\n\0155\3@\0\0\0007\3<\0\0\0009\0038\128\2\198;\0034\0\0\0=\0030\132\2t?\3,\187\6\246A\3(\187\n1C\3$\138\2tE\3 \0\7\254G\3\28\0\0\0\\\12\160J\3\22\0\0\0L\3T\0\0\0\173\7\182\0\0\0\173\tzd\12\160" .. ("\0"):rep(30) .. "\\\3l\188\7\182\0\0\0\188\tz\0\0\0a\3\6\28\7\232\0\0\0d\3h\196\7\182\0\0\0\196\tz\0\0\0\3\3\186\0\0\0\0\0\0\6\4\24\128\12\160\8\3\180\0\0\0\n\3\174q\3d\12\4\28\0\0\0\14\4 \187\2\194v\3`\189\0\0\18\3\190\0\0\0\0\0\0\0\0\0\22\0044\0\0\0\0\0\0\0\0\0\128\3\\\0\0\0\0\0\0\0\0\0\132\3\n\0\0\0t\0\0\0\0\0\0\0\0\0\0\0\138\3\n%\3\174\159\12\160{\5\216(\4$\0\0\0\0\0\0\0\0\0\0\0\0-\3\248\0\0\0/\3\244\0\0\0001\3\240\134\5\2123\3\236\0\0\0005\3\232\0\0\0007\3\228\140\5\2089\3\224\142\5\220;\3\220\0\0\0=\3\216\0\0\0?\3\212\0\0\0A\3\208\187\12\160C\3\204\0\0\0E\3\200\154\5\216G\3\196\0\0\0\0\0\0J\3\180\0\0\0L\3\252" .. ("\0"):rep(21) .. "t\7\254\187\3X" .. ("\0"):rep(15) .. "{\7\244\\\4\20\0\0\0\0\0\0\0\0\0\180\5\198\0\0\0\0\0\0\0\0\0d\4\16\0\0\0\134\7\240" .. ("\0"):rep(15) .. "\140\7\236\0\0\0\142\7\248\0\0\0\0\0\0q\4\12\0\0\0\28\t\139\0\0\0\0\0\0v\4\8\0\0\0x\4,y\3\164\154\7\244" .. ("\0"):rep(15) .. "\128\4\4\0\0\0\130\4(\0\0\0\132\3\168\0\0\0\3\4_\0\0\0\0\0\0\6\4\199\138\3\168\8\4Y\t\4?\n\4S\0\0\0\12\4\203\0\0\0\14\4\207\0\0\0\147\3\164\180\7\226\18\4i\8\11%\t\11\15\n\11\31\22\4\231\0\0\0\0\0\0\0\0\0\157" .. ("\0"):rep(32) .. "%\4S\0\0\0\0\0\0(\4\211\0\0\0\0\0\0\0\0\0\0\0\0-\4\163\0\0\0/\4\159%\11\0311\4\155\0\0\0003\4\151\0\0\0005\4\147\0\0\0007\4\143\187\4\0009\4\139\189\0040;\4\135\0\0\0=\4\131\0\0\0?\4\127\0\0\0A\4{\0\0\0C\4w\0\0\0E\4s\0\0\0G\4ot\0\0\0\0\0J\4Y\0\0\0L\4\167\0\0\0\0\0\0{\t\151\0\0\0Q\4\195\0\0\0S\0\0\0\0\0J\11%\0\0\0L\11+\0\0\0\0\0\0\134\t\147\0\0\0\\\4\191\0\0\0\0\0\0\0\0\0\140\t\143a\4E\142\t\155\0\0\0d\4\187\0\0\0\0\0\0\\\11C\0\0\0\0\0\0\0\0\0\0\0\0a\11\21\0\0\0\154\t\151d\11?\0\0\0q\4\183\0\0\0\0\0\0\0\0\0\0\0\0v\4\179\0\0\0x\4\223y\4I\0\0\0\0\0\0q\11;\0\0\0\0\0\0\0\0\0\128\4\175v\0117\130\4\219\0\0\0\132\4M\0\0\0\0\0\0\0\0\0\180\t\133\0\0\0\138\4M\128\0113\0\0\0\0\0\0\0\0\0\132\11\25\0\0\0\145\4\215\0\0\0\147\4I\0\0\0\138\11\25\0\0\0\0\0\0\6\5v\0\0\0\8\5\12\t\4\242\n\5\6\157\0\0\12\5z\0\0\0\14\5~\0\0\0\0\0\0\0\0\0\18\5\24\0\0\0\0\0\0\0\0\0\22\5\150" .. ("\0"):rep(24) .. "\177\4c" .. ("\0"):rep(15) .. "%\5\6\0\0\0\0\0\0(\5\130\187\4\171\0\0\0\189\4\227\0\0\0-\5R\0\0\0/\5N\0\0\0001\5J\0\0\0003\5F\187\11/5\5B\0\0\0007\5>\0\0\0009\5:\0\0\0;\0056\0\0\0=\0052\0\0\0?\5.\0\0\0A\5*\0\0\0C\5&\0\0\0E\5\"\0\0\0G\5\30\0\0\0\0\0\0J\5\12\0\0\0L\5V\0\0\0\0\0\0\0\0\0\0\0\0Q\5r\0\0\0S" .. ("\0"):rep(26) .. "\\\5n\0\0\0\0\0\0\0\0\0\0\0\0a\4\248\0\0\0\0\0\0d\5j" .. ("\0"):rep(36) .. "q\5f\0\0\0\0\0\0\0\0\0\0\0\0v\5b\0\0\0x\5\142y\4\252" .. ("\0"):rep(18) .. "\128\5^\0\0\0\130\5\138\0\0\0\132\5" .. ("\0"):rep(16) .. "\138\5" .. ("\0"):rep(19) .. "\145\5\134\0\0\0\147\4\252\0\0\0\3\6C\0\0\0\0\0\0\6\6\155\0\0\0\8\6=\t\6'\n\0067\157\0\0\12\6\159\0\0\0\14\6\163" .. ("\0"):rep(48) .. "\177\5\18" .. ("\0"):rep(15) .. "%\0067\0\0\0\0\0\0(\6\167\187\5Z\0\0\0\189\5\146\0\0\0-\6{\0\0\0/\6w\0\0\0001\6s\0\0\0003\6o\0\0\0005\6k\0\0\0007\6g\0\0\0009\6c\0\0\0;\6_\0\0\0=\6[\0\0\0?\6W\0\0\0A\6S\0\0\0C\6O\0\0\0E\6K\0\0\0G\6G\0\0\0\0\0\0J\6=\3\t*L\6\127\0\0\0\6\t\26\0\0\0\8\8\192\t\8\170\n\8\186\0\0\0\12\t\30\0\0\0\14\t\"" .. ("\0"):rep(15) .. "\\\6\151\0\0\0\0\0\0\0\0\0\0\0\0a\6-\0\0\0\0\0\0d\6\147" .. ("\0"):rep(24) .. "%\8\186\0\0\0\0\0\0(\t&q\6\143\0\0\0\0\0\0\0\0\0-\8\250v\6\139/\8\246\0\0\0001\8\242\0\0\0003\8\238\0\0\0005\8\234\0\0\0007\8\230\128\6\1359\8\226\0\0\0;\8\222\132\0061=\8\218\0\0\0?\8\214\0\0\0A\8\210\138\0061C\8\206\0\0\0E\8\202\0\0\0G\8\198\0\0\0\0\0\0J\8\192\0\0\0L\8\254\0\0\0\8\nW\t\nA\n\nQ" .. ("\0"):rep(33) .. "\\\t\22\0\0\0\0\0\0\0\0\0\0\0\0a\8\176\0\0\0\0\0\0d\t\18" .. ("\0"):rep(18) .. "%\nQ" .. ("\0"):rep(15) .. "q\t\14\0\0\0\187\6\131\0\0\0\189\6\171v\t\n\0\0\0\0\0\0\0\0\0\0\0\0005\n}\0\0\0007\ny\0\0\0009\nu\128\t\6\0\0\0\0\0\0=\nq\132\8\180?\nm\0\0\0A\ni\0\0\0C\ne\138\8\180E\na\0\0\0G\n]\0\0\0\0\0\0J\nW\0\0\0L\n\129\0\0\0\8\n\186\t\n\164\n\n\180\0\0\0\0\0\0\0\0\0\0\0\0\8\11d\t\11N\n\11^\0\0\0\0\0\0\0\0\0\0\0\0\\\n\153\0\0\0\0\0\0\0\0\0\0\0\0a\nG\0\0\0\0\0\0d\n\149" .. ("\0"):rep(18) .. "%\n\180" .. ("\0"):rep(15) .. "q\n\145%\11^-\n\232\0\0\0\187\t\2v\n\141\189\0\0\0\0\0\0\0\0\0\0\0005\n\228\0\0\0007\n\224\0\0\0009\n\220\128\n\137;\n\2165\11n=\n\212\132\nK?\n\208\0\0\0A\n\204\0\0\0C\n\200\138\nKE\n\196\0\0\0G\n\192\0\0\0\0\0\0J\n\186\0\0\0L\n\236\0\0\0G\11j\0\0\0\0\0\0J\11d\0\0\0L\11r\0\0\0\8\11\171\t\11\149\n\11\165\0\0\0\0\0\0\0\0\0\0\0\0\\\11\4\0\0\0\0\0\0\0\0\0\0\0\0a\n\170\0\0\0\\\11\138d\11\0\0\0\0\0\0\0\0\0\0a\11T\0\0\0\0\0\0d\11\134" .. ("\0"):rep(15) .. "q\n\252%\11\165\0\0\0\0\0\0\187\n\133v\n\248\0\0\0q\11\130\0\0\0\0\0\0\0\0\0\0\0\0v\11~\0\0\0\0\0\0\128\n\244\0\0\0005\11\177\0\0\0\132\n\174\0\0\0\0\0\0\128\11z\0\0\0\0\0\0\138\n\174\132\11X" .. ("\0"):rep(15) .. "\138\11X" .. ("\0"):rep(15) .. "J\11\171\0\0\0L\11\181" .. ("\0"):rep(45) .. "\\\11\205\0\0\0\0\0\0\0\0\0\0\0\0a\11\155\0\0\0\0\0\0d\11\201" .. ("\0"):rep(27) .. "\187\n\240\0\0\0\0\0\0q\11\197\0\0\0\0\0\0\0\0\0\187\11vv\11\193\0\0\0\0\0\0\6\12H\0\0\0\8\11\238\t\11\216\n\11\232\0\0\0\12\12L\128\11\189\14\12P\0\0\0\0\0\0\132\11\159" .. ("\0"):rep(15) .. "\138\11\159" .. ("\0"):rep(33) .. "#\12T\0\0\0%\11\232\0\0\0\0\0\0(\12\\\0\0\0\0\0\0\0\0\0\0\0\0-\12(\0\0\0/\12$\0\0\0001\12 \0\0\0003\12\28\0\0\0005\12\24\0\0\0007\12\20\0\0\0009\12\16\0\0\0;\12\12\0\0\0=\12\8\0\0\0?\12\4\0\0\0A\12\0\0\0\0C\11\252\0\0\0E\11\248\0\0\0G\11\244\187\11\185\0\0\0J\11\238\0\0\0L\12," .. ("\0"):rep(21) .. "T\12X" .. ("\0"):rep(21) .. "\\\12D\0\0\0\0\0\0\0\0\0\0\0\0a\11\222\0\0\0\0\0\0d\12@" .. ("\0"):rep(36) .. "q\12<\0\0\0\0\0\0\0\0\0\0\0\0v\0128" .. ("\0"):rep(27) .. "\128\0124\0\0\0\0\0\0\0\0\0\132\11\226" .. ("\0"):rep(15) .. "\138\11\226" .. ("\0"):rep(138) .. "\185\12T\0\0\0\187\0120" +local error_program_start, error_program = 491, "\6\1\0\3\0072\0\3\7\186\0\3\7\168\0\3\7\160\0\3\7\152\0\3\7\141\0\3\7\127\0\3\7u\0\3\7d\0\3\7W\0\1\0\3\7C\0\3\7;\0\1\0\3\0072\0\3\7*\0\3\7\"\0\3\7\"\0\3\7\"\0\3\7\"\0\3\7\"\0\3\7\n\0\3\7\n\0\3\7\"\0\3\7\26\0\3\7\18\0\3\7\18\0\3\7\18\0\3\7\n\0\3\7\2\0\3\6\232\0\3\6\224\0\3\6\216\0\3\6\208\0\3\6\200\0\3\6\22\0\3\6\190\0\3\6\186\0\3\6\175\0\3\6#\0\3\6\31\0\3\6\23\0\3\1\246\0\3\6\22\0\3\6\16\0\3\6\n\0\3\6\4\0\3\5\255\0\3\5\245\0\3\5\237\0\3\5\226\0\3\5\193\0\3\5\188\0\1\0\3\5\183\0\1\0\3\5\178\0\3\5\165\0\3\5\154\0\3\4\235\0\3\2\29\0\3\0048\0\3\3\155\0\3\3\147\0\3\3\143\0\3\3\135\0\3\3w\0\3\3\139\0\3\3\135\0\3\3\135\0\3\3\131\0\3\3\127\0\3\2\249\0\3\3{\0\3\2\234\0\3\2\234\0\3\3w\0\3\3p\0\3\2\234\0\3\2\249\0\3\2\234\0\3\2\234\0\3\2\234\0\3\2\234\0\3\2\241\0\3\2\234\0\3\2\234\0\3\2\234\0\3\2\234\0\3\2a\0\3\2)\0\3\2U\0\3\2Y\0\3\2)\0\3\2U\0\3\2U\0\3\2Q\0\3\2M\0\3\2I\0\3\2%\0\3\2=\0\3\2E\0\3\0029\0\3\2A\0\3\2=\0\3\0029\0\3\0025\0\3\0021\0\3\2-\0\3\2)\0\3\2%\0\3\2!\0\3\2\29\0\3\2\25\0\3\2\21\0\3\2\21\0\3\2\17\0\3\2\r\0\3\2\t\0\3\2\t\0\3\1\255\0\3\2\5\0\3\1\255\0\3\1\246\0\5\0\0\3\5\250\0\3\7\197\0\5\0\15\1\0\3\5\178\0\1\0\3\5\178\0\3\7\197\0\3\7\205\0\3\7\205\0\3\2\r\0\3\7\214\0\3\7\218\0\3\5\188\0\3\7\222\0\3\2A\0\3\8\2\0\3\5\226\0\3\2-\0\3\0021\0\3\2%\0\3\2)\0\3\2U\0\3\2Q\0\3\2E\0\3\8\t\0\3\0029\0\3\2=\0\3\8\2\0\3\2-\0\5\0\5\1\0\3\5\178\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\2\234\0\3\2\234\0\3\2\234\0\3\3\135\0\5\0\196\3\8\r\0\3\3w\0\3\8\166\0\5\0\8\3\t.\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\5\1\n\3\8\r\0\3\3\135\0\3\t5\0\3\8\166\0\3\t.\0\3\2\234\0\3\t9\0\3\3\147\0\3\t=\0\3\8\133\0\5\0\3\1\0\3\8\149\0\3\tK\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\5\188\0\1\0\3\5\178\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\2\234\0\3\2\234\0\3\2\234\0\3\3\135\0\3\tA\0\3\2)\0\3\7\218\0\3\7\197\0\5\1p\3\8\r\0\1\0\3\8\149\0\3\8\133\0\3\tK\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\5\188\0\1\0\3\tS\0\1\0\3\5\178\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\t=\0\3\2\234\0\3\2\234\0\3\2\234\0\3\3\135\0\3\2)\0\3\tA\0\3\2)\0\3\7\218\0\3\7\197\0\5\1\243\3\8\r\0\1\0\3\8\149\0\3\8\133\0\3\tK\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\1\0\3\tS\0\1\0\3\5\178\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\t=\0\3\2\234\0\3\2\234\0\3\2\234\0\3\3\135\0\3\2)\0\3\tA\0\3\2)\0\3\7\218\0\3\7\197\0\5\2\133\3\8\r\0\3\2\r\0\4\2\0\0\5\0\31\1\0\3\5\183\0\4\4\0\1\6\4\5\0\1\6\4\t\0\0\6\4\r\0\0\6\1\0\3\tX\0\3\tp\0\3\tl\0\3\th\0\3\ta\0\1\0\3\tX\0\4\r\0\0\5\1\28\3\t~\0\4\r\0\0\3\t\161\0\4\14\0\0\6\4\15\0\0\6\4\16\0\0\6\1\0\3\5\178\0\1\0\3\5\183\0\1\0\3\tS\0\6\3\tK\0\3\2)\0\5\0\12\6\3\tA\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\5\188\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\2\234\0\3\2\234\0\3\2\234\0\3\3\135\0\3\7\218\0\5\3\23\3\8\r\0\3\th\0\5\0 \6\3\tl\0\1\0\3\t\168\0\4\1\0\0\5\0E\6\4\1\0\0\3\t\173\0\4\1\0\0\3\t\177\0\4\1\0\0\3\2U\0\4\1\0\0\3\t\181\0\1\0\3\5\178\0\3\2=\0\3\2U\0\3\2-\0\4\1\0\0\5\0\143\6\4\1\0\0\3\t\185\0\4\1\0\0\3\t\189\0\4\1\0\0\3\t\193\0\4\1\0\0\3\t\197\0\4\1\0\0\3\t\201\0\4\r\0\0\4\11\0\1\6\4\14\0\0\3\t\205\0\4\15\0\0\3\t\215\0\3\t~\0\3\tp\0\3\ta\0\5\0\131\1\0\3\tX\0\3\t\219\0\4\1\0\0\4\0\0\0\5\0)\1\0\3\t\227\0\4\1\0\0\1\0\3\5\178\0\4\1\0\0\1\0\3\t\236\0\3\tp\0\4\r\0\0\5\0\12\3\t\241\0\4\r\0\0\3\tp\0\4\r\0\0\3\t\247\0\4\r\0\0\1\0\3\tX\0\3\tp\0\3\t\253\0\4\r\0\0\5\0\171\3\n\1\0\3\1\255\0\3\2\r\0\5\0Z\1\0\3\5\183\0\3\n\5\0\3\2\29\0\3\n\19\0\1\0\3\0072\0\3\7\168\0\3\7\160\0\3\7\152\0\3\7\141\0\1\0\3\0072\0\3\5\193\0\5\1P\3\7\186\0\3\2I\0\4\1\0\0\6\4\1\0\0\3\n\26\0\4\1\0\0\3\n\"\0\4\1\0\0\3\5\226\0\4\1\0\0\3\2=\0\4\1\0\0\3\2)\0\4\1\0\0\3\n=\0\4\1\0\0\3\n\157\0\4\1\0\0\3\11\8\0\4\1\0\0\3\11G\0\4\1\0\0\3\11\142\0\4\1\0\0\3\11\209\0\4\4\0\1\4\1\0\0\6\4\6\0\1\4\1\0\0\6\4\n\0\1\4\1\0\0\6\4\2\0\0\4\1\0\0\4\0\0\0\3\7\205\0\4\5\0\1\4\2\0\0\4\1\0\0\4\0\0\0\6\3\3\131\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\2\234\0\3\2\234\0\3\2\234\0\3\3\135\0\3\8\2\0\5\3_\3\8\r\0\3\2\249\0\3\12`\0\3\6\175\0\3\6\31\0\1\0\3\12g\0\4\14\0\0\5\0P\6\4\7\0\1\6\4\11\0\1\6\3\tp\0\5\0006\3\t\241\0\3\tp\0\3\t\247\0\1\0\3\tX\0\3\tp\0\3\t\253\0\5\0\173\3\n\1\0\1\0\3\tX\0\3\tp\0\3\tl\0\3\th\0\3\ta\0\1\0\3\tX\0\5\1\199\3\t~\0\4\n\0\1\6\3\n\26\0\3\n\"\0\3\n=\0\3\n\157\0\3\11\8\0\3\11G\0\3\11\142\0\3\11\209\0\1\0\3\12g\0\3\12l\0\5\0\135\6\4\2\0\0\3\7\205\0\4\5\0\1\4\2\0\0\6\4\6\0\1\6\1\0\3\12q\0\1\0\3\12z\0\3\12\130\0\3\12\134\0\3\5\245\0\1\0\3\0072\0\3\12\138\0\5\0\194\3\7\168\0\3\t\177\0\3\t\219\0\5\0s\1\0\3\t\227\0\1\0\3\5\178\0\3\2=\0\3\2U\0\3\2-\0\5\0\145\6\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8Z\0\3\8R\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\5\3\165\3\8\r\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\5\3\235\3\8\r\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\5\1\254\3\8\r\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8R\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\5\3\242\3\8\r\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8R\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\5\0048\3\8\r\0\1\0\3\8\149\0\3\8\133\0\1\0\3\8|\0\1\0\3\8s\0\1\0\3\8j\0\3\8b\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8Z\0\3\8B\0\3\8B\0\3\8Z\0\3\8R\0\3\8J\0\3\8J\0\3\8J\0\3\8B\0\3\8:\0\3\0082\0\3\8*\0\3\8*\0\3\8\"\0\3\8\26\0\3\8\18\0\3\2\234\0\3\2\234\0\3\2\234\0\3\t.\0\3\8\166\0\3\3\135\0\5\4\171\3\8\r\0\4\8\0\1\6\4\3\0\1\6\2\1\0\1\0\3\12\148\0\4\11\0\1\3\6\22\0\3\tp\0\3\12\157\0\4\r\0\0\1\0\3\12q\0\4\12\1\2\6\3\12\164\0\5\0\190\3\12\168\0\3\tp\0\3\12\172\0\3\12\164\0" +local error_tbl_ks, error_tbl_vs, error_tbl = 1, 2, "\0\0\203\1\0\147\2\0\0\3\0\199\0\0\0\5\1[\0\0\0\7\1W\0\0\0\t\0\211\0\0\0\11\1S\0\0\0\r\1O\0\0\0\15\0\231\16\0\227\17\0\191\18\0\217\19\1\231\20\0\167\21\1\227\22\0\0\23\0\239\24\1\223\25\0\183\26\1\183\27\1\219\28\0\11\29\0'\30\1K\31\1G \1C!\0\151\"\1?#\1;$\0017\22\1\242&\0013'\1/\0\0\0)\1+*\1'+\1#,\0\27\0\0\0.\0o\0\0\0000\0k\0\0\0002\0g\0\0\0004\0c\0\0\0006\0_\0\0\0008\0[\0\0\0:\0W\0\0\0<\0S\0\0\0>\0O\0\0\0@\0K\0\0\0B\0G\0\0\0D\0C\0\0\0F\0?\0\0\0H\0;I\0\251J\0\217K\1_L\0+M\0wN\0\183O\1\31P\0sQ\0\0R\0\247S\0\0T\0\0U\1\27V\1\23W\1\19X\1\15Y\1\11Z\0\27[\0\0T\2\245]\0\131^\0\223_\1\215`\1\211a\1\207b\1\203c\0\243a\3\151e\0\127f\0#g\0\179h\1\7i\0\31j\1\3k\0\255l\0\135m\0\7n\0'o\1\179p\1\175q\1\171r\1\167s\1\163t\0\203u\0\147q\2]w\0{x\0\0y\0\187z\0001{\0\23|\0'}\1\159~\0\159\127\1\155a\5\161\129\1\151\130\0\187\131\0\155x\6\27\133\0\135\134\0\19\135\0\147\136\0\139\137\1\147a\7`\139\0\135\140\0\15\141\0\143\142\0005\143\0'\144\1\143\145\0\235\146\1\139\147\0\187\148\0\163\149\0\191\150\0\0\151\1\199\152\0\0\153\1\195\154\0\23\155\0'\156\1\135\157\0\187\158\0\171\28\7O\160\0\135\149\7\137\162\0\135\163\0\7\164\0'\165\1\131\134\6\182\167\0\135\168\0\7\169\0'\170\1\127\171\0\0\140\6\182\173\0\0\174\0\7\175\0'\176\1{\177\0\0\178\0\175\179\1w\180\0\1\181\0'\182\1s\183\1o\184\1k\185\0\0\186\0\207a\7\201\188\1g\189\0\187\190\1\191\191\1\187\192\0\195\193\1c\194\0\0\195\0\0\196\0\0\197\0\0\198\0\0\3\0\0x\tE\132\6\194\6\2\218\149\t]\8\2\128\t\2j\n\2z\138\6\194\12\2\222J\t\211\14\2\226\17\n\ta\n\30\0\0\0\0\0\0\0\0\0\0\0\0J\6\240\0\0\0J\n+" .. ("\0"):rep(39) .. "%\2z\0\0\0\0\0\0(\2\230\0\0\0\0\0\0\0\0\0m\7K-\2\186\0\0\0/\2\182\0\0\0001\2\178K\7\1823\2\174K\tz5\2\170\0\0\0007\2\166\0\0\0009\2\162{\7S;\2\158q\6\254=\2\154q\n9?\2\150\0\0\0A\2\146\0\0\0C\2\142\0\0\0E\2\138\0\0\0G\2\134\0\0\0\0\0\0J\2\128\128\6\250L\2\190\128\n5\8\3\22\t\3\0\n\3\16\0\0\0\0\0\0l\7\178\0\0\0l\tv\\\12\153\0\0\0\0\0\0\154\7S\0\0\0\0\0\0\\\2\214\0\0\0d\12\153\0\0\0\0\0\0a\2p\163\7K\0\0\0d\2\210\0\0\0\0\0\0\168\7K\129\7\182\0\0\0\129\tz%\3\16\0\0\0\174\7K\0\0\0\0\0\0\0\0\0q\2\206\0\0\0-\3P\28\5\204/\3Lv\2\2021\3Hz\n\0153\3D\128\12\1535\3@\0\0\0007\3<\0\0\0009\0038\128\2\198;\0034\0\0\0=\0030\132\2t?\3,\187\6\246A\3(\187\n1C\3$\138\2tE\3 \0\7\254G\3\28\0\0\0\0\0\0J\3\22\0\0\0L\3T\0\0\0\173\7\182\0\0\0\173\tz\0\0\0\0\0\0\159\12\153" .. ("\0"):rep(24) .. "\\\3l\188\7\182\0\0\0\188\tz\0\0\0a\3\6\28\7\232\0\0\0d\3h\196\7\182\0\0\0\196\tz\0\0\0\3\3\186\0\0\0\0\0\0\6\4\24\0\0\0\8\3\180\187\12\153\n\3\174q\3d\12\4\28\0\0\0\14\4 \187\2\194v\3`\189\0\0\18\3\190\0\0\0\0\0\0\0\0\0\22\0044\0\0\0\0\0\0\0\0\0\128\3\\\0\0\0\0\0\0\0\0\0\132\3\n\0\0\0t\0\0\0\0\0\0\0\0\0\0\0\138\3\n%\3\174\0\0\0{\5\216(\4$\0\0\0\0\0\0\0\0\0\0\0\0-\3\248\0\0\0/\3\244\0\0\0001\3\240\134\5\2123\3\236\0\0\0005\3\232\0\0\0007\3\228\140\5\2089\3\224\142\5\220;\3\220\0\0\0=\3\216\0\0\0?\3\212\0\0\0A\3\208\0\0\0C\3\204\0\0\0E\3\200\154\5\216G\3\196\0\0\0\0\0\0J\3\180\0\0\0L\3\252" .. ("\0"):rep(21) .. "t\7\254\187\3X" .. ("\0"):rep(15) .. "{\7\244\\\4\20\0\0\0\0\0\0\0\0\0\180\5\198\0\0\0\0\0\0\0\0\0d\4\16\0\0\0\134\7\240" .. ("\0"):rep(15) .. "\140\7\236\0\0\0\142\7\248\0\0\0\0\0\0q\4\12\0\0\0\28\t\139\0\0\0\0\0\0v\4\8\0\0\0x\4,y\3\164\154\7\244" .. ("\0"):rep(15) .. "\128\4\4\0\0\0\130\4(\0\0\0\132\3\168\0\0\0\3\4_\0\0\0\0\0\0\6\4\199\138\3\168\8\4Y\t\4?\n\4S\0\0\0\12\4\203\0\0\0\14\4\207\0\0\0\147\3\164\180\7\226\18\4i\8\11%\t\11\15\n\11\31\22\4\231\0\0\0\0\0\0\0\0\0\157" .. ("\0"):rep(32) .. "%\4S\0\0\0\0\0\0(\4\211\0\0\0\0\0\0\0\0\0\0\0\0-\4\163\0\0\0/\4\159%\11\0311\4\155\0\0\0003\4\151\0\0\0005\4\147\0\0\0007\4\143\187\4\0009\4\139\189\0040;\4\135\0\0\0=\4\131\0\0\0?\4\127\0\0\0A\4{\0\0\0C\4w\0\0\0E\4s\0\0\0G\4ot\0\0\0\0\0J\4Y\0\0\0L\4\167\0\0\0\0\0\0{\t\151\0\0\0Q\4\195\0\0\0S\0\0\0\0\0J\11%\0\0\0L\11+\0\0\0\0\0\0\134\t\147\0\0\0\\\4\191\0\0\0\0\0\0\0\0\0\140\t\143a\4E\142\t\155\0\0\0d\4\187\0\0\0\0\0\0\\\11C\0\0\0\0\0\0\0\0\0\0\0\0a\11\21\0\0\0\154\t\151d\11?\0\0\0q\4\183\0\0\0\0\0\0\0\0\0\0\0\0v\4\179\0\0\0x\4\223y\4I\0\0\0\0\0\0q\11;\0\0\0\0\0\0\0\0\0\128\4\175v\0117\130\4\219\0\0\0\132\4M\0\0\0\0\0\0\0\0\0\180\t\133\0\0\0\138\4M\128\0113\0\0\0\0\0\0\0\0\0\132\11\25\0\0\0\145\4\215\0\0\0\147\4I\0\0\0\138\11\25\0\0\0\0\0\0\6\5v\0\0\0\8\5\12\t\4\242\n\5\6\157\0\0\12\5z\0\0\0\14\5~\0\0\0\0\0\0\0\0\0\18\5\24\0\0\0\0\0\0\0\0\0\22\5\150" .. ("\0"):rep(24) .. "\177\4c" .. ("\0"):rep(15) .. "%\5\6\0\0\0\0\0\0(\5\130\187\4\171\0\0\0\189\4\227\0\0\0-\5R\0\0\0/\5N\0\0\0001\5J\0\0\0003\5F\187\11/5\5B\0\0\0007\5>\0\0\0009\5:\0\0\0;\0056\0\0\0=\0052\0\0\0?\5.\0\0\0A\5*\0\0\0C\5&\0\0\0E\5\"\0\0\0G\5\30\0\0\0\0\0\0J\5\12\0\0\0L\5V\0\0\0\0\0\0\0\0\0\0\0\0Q\5r\0\0\0S" .. ("\0"):rep(26) .. "\\\5n\0\0\0\0\0\0\0\0\0\0\0\0a\4\248\0\0\0\0\0\0d\5j" .. ("\0"):rep(36) .. "q\5f\0\0\0\0\0\0\0\0\0\0\0\0v\5b\0\0\0x\5\142y\4\252" .. ("\0"):rep(18) .. "\128\5^\0\0\0\130\5\138\0\0\0\132\5" .. ("\0"):rep(16) .. "\138\5" .. ("\0"):rep(19) .. "\145\5\134\0\0\0\147\4\252\0\0\0\3\6C\0\0\0\0\0\0\6\6\155\0\0\0\8\6=\t\6'\n\0067\157\0\0\12\6\159\0\0\0\14\6\163" .. ("\0"):rep(48) .. "\177\5\18" .. ("\0"):rep(15) .. "%\0067\0\0\0\0\0\0(\6\167\187\5Z\0\0\0\189\5\146\0\0\0-\6{\0\0\0/\6w\0\0\0001\6s\0\0\0003\6o\0\0\0005\6k\0\0\0007\6g\0\0\0009\6c\0\0\0;\6_\0\0\0=\6[\0\0\0?\6W\0\0\0A\6S\0\0\0C\6O\0\0\0E\6K\0\0\0G\6G\0\0\0\0\0\0J\6=\3\t*L\6\127\0\0\0\6\t\26\0\0\0\8\8\192\t\8\170\n\8\186\0\0\0\12\t\30\0\0\0\14\t\"" .. ("\0"):rep(15) .. "\\\6\151\0\0\0\0\0\0\0\0\0\0\0\0a\6-\0\0\0\0\0\0d\6\147" .. ("\0"):rep(24) .. "%\8\186\0\0\0\0\0\0(\t&q\6\143\0\0\0\0\0\0\0\0\0-\8\250v\6\139/\8\246\0\0\0001\8\242\0\0\0003\8\238\0\0\0005\8\234\0\0\0007\8\230\128\6\1359\8\226\0\0\0;\8\222\132\0061=\8\218\0\0\0?\8\214\0\0\0A\8\210\138\0061C\8\206\0\0\0E\8\202\0\0\0G\8\198\0\0\0\0\0\0J\8\192\0\0\0L\8\254\0\0\0\8\nW\t\nA\n\nQ" .. ("\0"):rep(33) .. "\\\t\22\0\0\0\0\0\0\0\0\0\0\0\0a\8\176\0\0\0\0\0\0d\t\18" .. ("\0"):rep(18) .. "%\nQ" .. ("\0"):rep(15) .. "q\t\14\0\0\0\187\6\131\0\0\0\189\6\171v\t\n\0\0\0\0\0\0\0\0\0\0\0\0005\n}\0\0\0007\ny\0\0\0009\nu\128\t\6\0\0\0\0\0\0=\nq\132\8\180?\nm\0\0\0A\ni\0\0\0C\ne\138\8\180E\na\0\0\0G\n]\0\0\0\0\0\0J\nW\0\0\0L\n\129\0\0\0\8\n\186\t\n\164\n\n\180\0\0\0\0\0\0\0\0\0\0\0\0\8\11d\t\11N\n\11^\0\0\0\0\0\0\0\0\0\0\0\0\\\n\153\0\0\0\0\0\0\0\0\0\0\0\0a\nG\0\0\0\0\0\0d\n\149" .. ("\0"):rep(18) .. "%\n\180" .. ("\0"):rep(15) .. "q\n\145%\11^-\n\232\0\0\0\187\t\2v\n\141\189\0\0\0\0\0\0\0\0\0\0\0005\n\228\0\0\0007\n\224\0\0\0009\n\220\128\n\137;\n\2165\11n=\n\212\132\nK?\n\208\0\0\0A\n\204\0\0\0C\n\200\138\nKE\n\196\0\0\0G\n\192\0\0\0\0\0\0J\n\186\0\0\0L\n\236\0\0\0G\11j\0\0\0\0\0\0J\11d\0\0\0L\11r\0\0\0\8\11\171\t\11\149\n\11\165\0\0\0\0\0\0\0\0\0\0\0\0\\\11\4\0\0\0\0\0\0\0\0\0\0\0\0a\n\170\0\0\0\\\11\138d\11\0\0\0\0\0\0\0\0\0\0a\11T\0\0\0\0\0\0d\11\134" .. ("\0"):rep(15) .. "q\n\252%\11\165\0\0\0\0\0\0\187\n\133v\n\248\0\0\0q\11\130\0\0\0\0\0\0\0\0\0\0\0\0v\11~\0\0\0\0\0\0\128\n\244\0\0\0005\11\177\0\0\0\132\n\174\0\0\0\0\0\0\128\11z\0\0\0\0\0\0\138\n\174\132\11X" .. ("\0"):rep(15) .. "\138\11X" .. ("\0"):rep(15) .. "J\11\171\0\0\0L\11\181" .. ("\0"):rep(45) .. "\\\11\205\0\0\0\0\0\0\0\0\0\0\0\0a\11\155\0\0\0\0\0\0d\11\201" .. ("\0"):rep(27) .. "\187\n\240\0\0\0\0\0\0q\11\197\0\0\0\0\0\0\0\0\0\187\11vv\11\193\0\0\0\0\0\0\6\12H\0\0\0\8\11\238\t\11\216\n\11\232\0\0\0\12\12L\128\11\189\14\12P\0\0\0\0\0\0\132\11\159" .. ("\0"):rep(15) .. "\138\11\159" .. ("\0"):rep(33) .. "#\12T\0\0\0%\11\232\0\0\0\0\0\0(\12\\\0\0\0\0\0\0\0\0\0\0\0\0-\12(\0\0\0/\12$\0\0\0001\12 \0\0\0003\12\28\0\0\0005\12\24\0\0\0007\12\20\0\0\0009\12\16\0\0\0;\12\12\0\0\0=\12\8\0\0\0?\12\4\0\0\0A\12\0\0\0\0C\11\252\0\0\0E\11\248\0\0\0G\11\244\187\11\185\0\0\0J\11\238\0\0\0L\12," .. ("\0"):rep(21) .. "T\12X" .. ("\0"):rep(21) .. "\\\12D\0\0\0\0\0\0\0\0\0\0\0\0a\11\222\0\0\0\0\0\0d\12@" .. ("\0"):rep(36) .. "q\12<\0\0\0\0\0\0\0\0\0\0\0\0v\0128" .. ("\0"):rep(27) .. "\128\0124\0\0\0\0\0\0\0\0\0\132\11\226" .. ("\0"):rep(15) .. "\138\11\226" .. ("\0"):rep(138) .. "\185\12T\0\0\0\187\0120" local function handle_error(context, stack, stack_n, token, token_start, token_end) -- Run our error handling virtual machine. diff --git a/projects/core/src/test/resources/test-rom/spec/modules/cc/internal/syntax/parser_spec.md b/projects/core/src/test/resources/test-rom/spec/modules/cc/internal/syntax/parser_spec.md index b5b94eae4..ad207fd42 100644 --- a/projects/core/src/test/resources/test-rom/spec/modules/cc/internal/syntax/parser_spec.md +++ b/projects/core/src/test/resources/test-rom/spec/modules/cc/internal/syntax/parser_spec.md @@ -478,6 +478,7 @@ Unexpected ) in function call. 1 | f(2, ) | ^ Tip: Try removing this ,. ``` + ```lua f(2, 3, ) ``` @@ -491,3 +492,17 @@ Unexpected ) in function call. 1 | f(2, 3, ) | ^ Tip: Try removing this ,. ``` + +```lua +x:f(2, 3, ) +``` + +```txt +Unexpected ) in function call. + | + 1 | x:f(2, 3, ) + | ^ + | + 1 | x:f(2, 3, ) + | ^ Tip: Try removing this ,. +```