From 25aef927fa819f39824a91bf3a5cb08824d86f14 Mon Sep 17 00:00:00 2001 From: Johannes Mey <johannes.mey@tu-dresden.de> Date: Wed, 15 Apr 2020 09:21:55 +0200 Subject: [PATCH] add tests for NTAs for !13 --- src/test/jastadd/relations/Relations.jrag | 38 +++++++++++++++++++++ src/test/jastadd/relations/Relations.relast | 6 ++-- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/test/jastadd/relations/Relations.jrag b/src/test/jastadd/relations/Relations.jrag index f857116..057cdde 100644 --- a/src/test/jastadd/relations/Relations.jrag +++ b/src/test/jastadd/relations/Relations.jrag @@ -1 +1,39 @@ import java.util.ArrayList; + +aspect NTA { + + // E ::= ... /<NT1>/ ... ; + syn String E.getNT1() = ""; + + // E ::= ... /<NT2:String>/ ... ; + syn String E.getNT2() = ""; + + // E ::= ... /<NT3:boolean>/ ... ; + syn boolean E.getNT3() = false; + + // E ::= ... /<NT4:int>/ ... ; + syn int E.getNT4() = 1; + + // E ::= ... /<NT5:float>/ ... ; + syn float E.getNT5() = 1.0f; + + // E ::= ... /<NT6:double>/ ... ; + syn double E.getNT6() = 1.0d; + + // E ::= ... /<NT7:long>/ ... ; + syn long E.getNT7() = 1l; + +// there are not Opt-NTAs like /[NT8:A]/ /[A]/ +// // E ::= ... /[NT8:A]/ ... ; +// syn Opt<A> E.getNT8() = new Opt<A>(); +// +// // E ::= ... /[A]/ ... ; +// syn Opt<A> E.getA() = new Opt<A>(); + + // E ::= ... /NT10:A*/ ... ; + syn List<A> E.getNT10List() = new List<A>(); + + // E ::= ... /B*/ ... ; + syn List<B> E.getBList() = new List<B>(); + +} diff --git a/src/test/jastadd/relations/Relations.relast b/src/test/jastadd/relations/Relations.relast index 12f132e..791cc0a 100644 --- a/src/test/jastadd/relations/Relations.relast +++ b/src/test/jastadd/relations/Relations.relast @@ -49,11 +49,13 @@ C ; D ::= SingleA:A ListOfA:A* [OptionalA:A] /NTAA:A/ ; // production with tokens, nonterminal-tokens, multi-line +// there are not Opt-NTAs like /[NT8:A]/ /[A]/ E ::= <T1> <T2:String> <T3:boolean> <T4:int> <T5:float> <T6:double> <T7:long> <T8:java.lang.Object> <T9:ArrayList<String>> <T10:java.util.ArrayList<java.lang.String>> - /<NT2:String>/ /<NT3:boolean>/ /<NT4:int>/ /<NT5:float>/ /<NT6:double>/ /<NT7:long>/ ; + /<NT1>/ /<NT2:String>/ /<NT3:boolean>/ /<NT4:int>/ /<NT5:float>/ /<NT6:double>/ /<NT7:long>/ + /NT10:A*/ /B*/; -rel E.NT1 -> A ; +rel E.R1 -> A ; // inheritance and empty F : A ; -- GitLab