From 84613fabe089c9e8b5bf53c07cdb5d578fab632e Mon Sep 17 00:00:00 2001 From: Marvin Schlegel Date: Fri, 31 May 2024 11:07:19 +0200 Subject: [PATCH] parser add field subaccess --- Test/TestParser.hs | 4 ++++ src/Parser/JavaParser.y | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Test/TestParser.hs b/Test/TestParser.hs index dee3985..521a615 100644 --- a/Test/TestParser.hs +++ b/Test/TestParser.hs @@ -197,6 +197,9 @@ testExpressionFieldAccess = TestCase $ testExpressionSimpleFieldAccess = TestCase $ assertEqual "expect Reference" (Reference "a") $ parseExpression [IDENTIFIER "a"] +testExpressionFieldSubAccess = TestCase $ + assertEqual "expect NameResolution without this" (BinaryOperation NameResolution (Reference "a") (Reference "b")) $ + parseExpression [IDENTIFIER "a",DOT,IDENTIFIER "b"] testStatementIfThen = TestCase $ assertEqual "expect empty ifthen" [If (Reference "a") (Block [Block []]) Nothing] $ @@ -275,6 +278,7 @@ tests = TestList [ testExpressionThisMethodCallParam, testExpressionFieldAccess, testExpressionSimpleFieldAccess, + testExpressionFieldSubAccess, testStatementIfThen, testStatementIfThenElse, testStatementWhile, diff --git a/src/Parser/JavaParser.y b/src/Parser/JavaParser.y index eb47864..fd694b6 100644 --- a/src/Parser/JavaParser.y +++ b/src/Parser/JavaParser.y @@ -83,11 +83,11 @@ typedeclarations : typedeclaration { [$1] } | typedeclarations typedeclaration { $1 ++ [$2] } name : simplename { Reference $1 } - -- | qualifiedname { } + | qualifiedname { $1 } typedeclaration : classdeclaration { $1 } -qualifiedname : name DOT IDENTIFIER { } +qualifiedname : name DOT IDENTIFIER { BinaryOperation NameResolution $1 (Reference $3) } simplename : IDENTIFIER { $1 }