From e72d2ab356fcf4bcd278ec93b4a7c43f3ffa97b4 Mon Sep 17 00:00:00 2001 From: Mitchell Hanberg Date: Wed, 10 Apr 2024 16:41:29 -0400 Subject: [PATCH] fix: handle prefix operator with newline --- lib/spitfire.ex | 2 +- test/spitfire_test.exs | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/spitfire.ex b/lib/spitfire.ex index f2864ee..080c7df 100644 --- a/lib/spitfire.ex +++ b/lib/spitfire.ex @@ -593,7 +593,7 @@ defmodule Spitfire do current_precedence(parser) end - parser = next_token(parser) + parser = parser |> next_token() |> eat_eol() {rhs, parser} = parse_expression(parser, precedence, false, false, false) ast = {token, meta, [rhs]} diff --git a/test/spitfire_test.exs b/test/spitfire_test.exs index bdb5af0..2c31a16 100644 --- a/test/spitfire_test.exs +++ b/test/spitfire_test.exs @@ -101,6 +101,13 @@ defmodule SpitfireTest do ''' assert Spitfire.parse(code) == s2q(code) + + code = ~S''' + ^ + foo + ''' + + assert Spitfire.parse(code) == s2q(code) end test "parses numbers" do @@ -842,6 +849,11 @@ defmodule SpitfireTest do @foo bar() ''', ~s''' + @ + + __cursor__() + ''', + ~s''' @foo %{ foo: :bar }