Skip to content
This repository has been archived by the owner on Nov 25, 2022. It is now read-only.

Lua parser fails to terminate #1491

Open
ragnard-king opened this issue Dec 19, 2017 · 0 comments
Open

Lua parser fails to terminate #1491

ragnard-king opened this issue Dec 19, 2017 · 0 comments
Labels
editor An issue related to the Defold editor serious A serious although non-blocking issue text-editor An issue related to the text/code editor

Comments

@ragnard-king
Copy link
Contributor

ragnard-king commented Dec 19, 2017

We're using a version of antlr4 that can sometimes enter infinite loops when parsing.

This has been fixed in antlr4:
antlr/antlr4#1398

Our Lua grammar is vulnerable to this, for example, pasting the string below into non-closed string hangs the editor.

STR:

Copy this:

#{"/builtins/materials/gui.fp" "/builtins/fonts/label-fnt.material" "/builtins/fonts/system_font.font" "/builtins/render/default.render" "/modules/colors.lua" "/builtins/materials/gui.material" "/builtins/materials/particlefx.vp" "/builtins/materials/sprite.fp" "/builtins/materials/tile_map.fp" "/builtins/graphics/particle_blob.tilesource" "/builtins/fonts/font-df-ms.fp" "/builtins/scripts/socket.lua" "/builtins/render/default.render_script" "/builtins/input/default.gamepads" "/builtins/graphics/default.texture_profiles" "/builtins/materials/particlefx.material" "/builtins/materials/sprite.vp" "/builtins/fonts/font-df.material" "/builtins/scripts/mobdebug.lua" "/scripts/apples.script" "/builtins/materials/spine.fp" "/builtins/graphics/particle_blob.png" "/builtins/fonts/font-fnt.fp" "/builtins/fonts/font-df.vp" "/builtins/materials/particlefx.fp" "/foo.bar" "/builtins/fonts/label-df.material" "/builtins/fonts/font-df.fp" "/builtins/materials/sprite.material" "/builtins/fonts/font.material" "/builtins/materials/model.material" "/builtins/fonts/vera_mo_bd.ttf" "/builtins/fonts/font-fnt.material" "/builtins/materials/model.vp" "/builtins/materials/spine.vp" "/builtins/materials/spine.material" "/builtins/materials/model.fp" "/builtins/fonts/label.material" "/builtins/render/default.display_profiles" "/builtins/materials/tile_map.vp" "/scripts/actors.script" "/builtins/materials/tile_map.material" "/builtins/fonts/font.vp" "/builtins/fonts/system_font.material" "/builtins/fonts/font.fp" "/builtins/fonts/font-fnt.vp" "/builtins/materials/gui.vp" "/game.project"}
#{"/builtins/materials/gui.fp" "/builtins/fonts/label-fnt.material" "/builtins/fonts/system_font.font" "/builtins/render/default.render" "/modules/colors.lua" "/builtins/materials/gui.material" "/builtins/materials/particlefx.vp" "/builtins/materials/sprite.fp" "/builtins/materials/tile_map.fp" "/builtins/graphics/particle_blob.tilesource" "/builtins/fonts/font-df-ms.fp" "/builtins/scripts/socket.lua" "/builtins/render/default.render_script" "/builtins/input/default.gamepads" "/builtins/graphics/default.texture_profiles" "/builtins/materials/particlefx.material" "/builtins/materials/sprite.vp" "/builtins/fonts/font-df.material" "/builtins/scripts/mobdebug.lua" "/scripts/apples.script" "/builtins/materials/spine.fp" "/builtins/graphics/particle_blob.png" "/builtins/fonts/font-fnt.fp" "/builtins/fonts/font-df.vp" "/builtins/materials/particlefx.fp" "/foo.bar" "/builtins/fonts/label-df.material" "/builtins/fonts/font-df.fp" "/builtins/materials/sprite.material" "/_defold/debugger/mobdebug.lua" "/builtins/fonts/font.material" "/builtins/materials/model.material" "/builtins/fonts/vera_mo_bd.ttf" "/builtins/fonts/font-fnt.material" "/builtins/materials/model.vp" "/_defold/debugger/edn.lua" "/builtins/materials/spine.vp" "/builtins/materials/spine.material" "/_defold/debugger/start.lua" "/builtins/materials/model.fp" "/builtins/fonts/label.material" "/builtins/render/default.display_profiles" "/builtins/materials/tile_map.vp" "/scripts/actors.script" "/builtins/materials/tile_map.material" "/builtins/fonts/font.vp" "/_defold/debugger/debugger.lua" "/builtins/fonts/system_font.material" "/builtins/fonts/font.fp" "/builtins/fonts/font-fnt.vp" "/builtins/materials/gui.vp" "/game.project"}))

Enter this:

print("

Then paste.

@ragnard-king ragnard-king added serious A serious although non-blocking issue text-editor An issue related to the text/code editor labels Dec 19, 2017
@britzl britzl added the editor An issue related to the Defold editor label Jan 8, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
editor An issue related to the Defold editor serious A serious although non-blocking issue text-editor An issue related to the text/code editor
Projects
None yet
Development

No branches or pull requests

2 participants