Skip to content

Parsing deep JSON fails with vimscript implementation #153

Closed

Description

Since we use a recursive descent parser for the vimscript implementation of maktaba#json#Parse without setting 'maxfuncdepth', we're subject to vim's default recursion depth and can only parse up to a depth of ~&maxfuncdepth/2.

:echo maktaba#json#Parse('[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]')
Error detected while processing function maktaba#json#Parse..<SNR>110_ParsePartial..
(snip)<SNR>110_ParseListPartial..<SNR>110_Consume..maktaba#string#StripLeading..maktaba#ensure#IsString:
line    1:
E132: Function call depth is higher than 'maxfuncdepth'

We should bump 'maxfuncdepth' up to some very high number in maktaba#json#Parse and maktaba#json#Format and restore it after our recursion completes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions