From ba8e0433c2990d241c3684f23dcbd79ecf91d328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Richard?= Date: Mon, 22 Apr 2024 18:46:38 +0200 Subject: [PATCH] Add and fix tests --- reference/references.jl | 4 ++++ src/parser/parser.jl | 8 +++++++- test/parser.jl | 8 +++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/reference/references.jl b/reference/references.jl index fd17910..b3bf399 100644 --- a/reference/references.jl +++ b/reference/references.jl @@ -49,6 +49,10 @@ inputs["integrals"] = [ L"\int \int \int" ] +input["linebreaks"] = [ + L"we clearly see $x = 22$\\and $y > x^2$" +] + inputs["punctuation"] = [ L"x!", L"23.17", diff --git a/src/parser/parser.jl b/src/parser/parser.jl index 8631b63..7e417da 100644 --- a/src/parser/parser.jl +++ b/src/parser/parser.jl @@ -203,5 +203,11 @@ function texparse(tex ; root = TeXExpr(:lines), showdebug = false) if length(stack) > 1 throw(TeXParseError("unexpected end of input", stack, length(tex), tex)) end - return only(stack) + + lines = only(stack) + if length(lines.args) == 1 + return only(lines.args) + else + return lines + end end \ No newline at end of file diff --git a/test/parser.jl b/test/parser.jl index 59d1002..848578f 100644 --- a/test/parser.jl +++ b/test/parser.jl @@ -1,5 +1,5 @@ function test_parse(input, args... ; broken=false) - arg = (:expr, args...) + arg = (:line, args...) if broken @test_broken texparse(input) == manual_texexpr(arg) else @@ -114,6 +114,12 @@ end ) end + @testset "Linebreak" begin + expr = texparse(L"$A$\\$B$\\$C$") + @test expr.head == :lines + @test length(expr.args) == 3 + end + @testset "LaTeXString input" begin @test texparse(raw"$\gamma$") == texparse(L"\gamma") end