yecc_helpers.ex (486B)
1 defmodule EarmarkParser.Helpers.YeccHelpers do 2 3 @moduledoc false 4 import EarmarkParser.Helpers.LeexHelpers, only: [lex: 2] 5 6 def parse!( text, lexer: lexer, parser: parser ) do 7 case parse(text, lexer: lexer, parser: parser) do 8 {:ok, ast} -> ast 9 {:error, _} -> nil 10 end 11 end 12 13 def parse( text, lexer: lexer, parser: parser ) do 14 with tokens <- lex(text, with: lexer) do 15 parser.parse(tokens) 16 end 17 end 18 end 19 20 # SPDX-License-Identifier: Apache-2.0