jamesrhester / Lerche.jl

A Julia port of the Lark parser
MIT License
45 stars 3 forks source link

Missing "Base." gives errors on rule with priority #27

Closed ArtHarg closed 1 year ago

ArtHarg commented 1 year ago

When importing a working Lark grammar, I get the error

ERROR: MethodError: no method matching parse(::Type{Int64}, ::Token) You may have intended to import Base.parse Closest candidates are: parse(::Lerche.WithLexer, ::Any; start) at ~/.julia/packages/Lerche/fVtVd/src/parser_frontends.jl:73 parse(::Lerche.LALRParser, ::Any...; kwargs...) at ~/.julia/packages/Lerche/fVtVd/src/parsers/lalr_parser.jl:53 parse(::Lark, ::Any; start, on_error) at ~/.julia/packages/Lerche/fVtVd/src/lark.jl:292 Stacktrace: [1] options_from_rule(::Token, ::Tree, ::Token, ::Vararg{Any}) @ Lerche ~/.julia/packages/Lerche/fVtVd/src/load_grammar.jl:843 [2] load_grammar(gl::Lerche.GrammarLoader, grammar_text::String; grammar_name::String, import_paths::Vector{Any}) @ Lerche ~/.julia/packages/Lerche/fVtVd/src/load_grammar.jl:988 [3] load_grammar(grammar::String, source::String, import_paths::Vector{Any}, global_keep_all_tokens::Bool) @ Lerche ~/.julia/packages/Lerche/fVtVd/src/load_grammar.jl:1175 [4] Lark(grammar::String, loptions::Dict{String, Any}, source::String, cache_file::String) @ Lerche ~/.julia/packages/Lerche/fVtVd/src/lark.jl:180 [5] Lark(grammar::String; options::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Lerche ~/.julia/packages/Lerche/fVtVd/src/lark.jl:123 [6] Lark(grammar::String) @ Lerche ~/.julia/packages/Lerche/fVtVd/src/lark.jl:120 [7] top-level scope @ REPL[13]:1

Cause: In src/load_grammar.jl line 843:

    priority = parse(Int,priority)

should be

    priority = Base.parse(Int,priority)

Changing that locally solves the issue for me.

jamesrhester commented 1 year ago

Thanks for finding this, sorry about the delay. Fixed in v0.5.4 (3e241a0)