From a545fc4c5e6c0c26074fe129eaf8058be1dce9d5 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Wed, 10 May 2023 22:42:36 -0700 Subject: [PATCH] Handle useless semicolon statement endings. --- dcs/lua/parse.py | 3 +++ dcs/lua/test_parse.py | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/dcs/lua/parse.py b/dcs/lua/parse.py index d974ae1f..c3952d87 100644 --- a/dcs/lua/parse.py +++ b/dcs/lua/parse.py @@ -47,6 +47,9 @@ def parse(self): return self.number() elif c == '_': return self.str_function() + elif c == ';': + self.advance() + return self.parse() else: # varname self.eat_ws() diff --git a/dcs/lua/test_parse.py b/dcs/lua/test_parse.py index 045bb17c..3d39ed88 100644 --- a/dcs/lua/test_parse.py +++ b/dcs/lua/test_parse.py @@ -325,6 +325,18 @@ def test_mixed_quote_strings(self) -> None: r = loads("name = \"foo 'bar' baz\"") self.assertEqual(r["name"], "foo 'bar' baz") + def test_useless_semicolon(self) -> None: + r = loads( + textwrap.dedent( + """\ + name = "foo"; + other_name = "bar"; + """ + ) + ) + self.assertEqual(r["name"], "foo") + self.assertEqual(r["other_name"], "bar") + if __name__ == '__main__': unittest.main()