diff --git a/spec/jastadd/Backend.jadd b/spec/jastadd/Backend.jadd
index 87780636dfa1bfef72e49a166c21d0c52d886ad1..4e09448ebd8fb60d8eb31714a11b5db8fe645af2 100644
--- a/spec/jastadd/Backend.jadd
+++ b/spec/jastadd/Backend.jadd
@@ -51,6 +51,9 @@ aspect BackendAbstractGrammar {
 	public String OptComponent.generateAbstractGrammar() {
 		return "[" + super.generateAbstractGrammar() + "]";
 	}
+	public String NTAComponent.generateAbstractGrammar() {
+		return "/" + super.generateAbstractGrammar() + "/";
+	}
 	public String TokenComponent.generateAbstractGrammar() {
 		return "<" + getID() + ":" + getTypeUse() + ">";
 	}
diff --git a/spec/jastadd/RelAst.ast b/spec/jastadd/RelAst.ast
index 3a7116ec1544d7626f9c01c50cca60cb6892563f..3a17c0cfb7fea19f5b33dc9a9bb8fe613137b12b 100644
--- a/spec/jastadd/RelAst.ast
+++ b/spec/jastadd/RelAst.ast
@@ -6,6 +6,7 @@ abstract SimpleTypeComponent : Component ::= TypeUse:SimpleTypeUse;
 NormalComponent : SimpleTypeComponent;
 ListComponent : SimpleTypeComponent;
 OptComponent : SimpleTypeComponent;
+NTAComponent : SimpleTypeComponent;
 TokenComponent : Component ::= TypeUse;
 
 abstract TypeUse ::= <ID>;
@@ -19,4 +20,4 @@ OptionalRelationComponent : RelationComponent;
 ManyRelationComponent : RelationComponent;
 abstract Direction;
 RightDirection : Direction;
-Bidirectional : Direction;
\ No newline at end of file
+Bidirectional : Direction;
diff --git a/spec/parser/RelAstBase.parser b/spec/parser/RelAstBase.parser
index 15fca6a57465606c7dc974fb28306611900e464a..284d795b4675781828016d8bb8f073b870d009de 100644
--- a/spec/parser/RelAstBase.parser
+++ b/spec/parser/RelAstBase.parser
@@ -1,4 +1,4 @@
-Program goal = 
+Program goal =
 	type_decls.t relations.r {: return new Program(t, r); :}
 	| STRING_LITERAL STAR {: return new Program(); :}
 	;
@@ -9,9 +9,9 @@ List type_decls =
 	;
 
 TypeDecl type_decl =
-	ID type_decl_super.s components_opt.c SCOL 
+	ID type_decl_super.s components_opt.c SCOL
 	{: return new TypeDecl(ID, false, s, c); :}
-	| ABSTRACT ID type_decl_super.s components_opt.c SCOL 
+	| ABSTRACT ID type_decl_super.s components_opt.c SCOL
 	{: return new TypeDecl(ID, true, s, c); :}
 	;
 
@@ -55,6 +55,9 @@ Component component =
 	// Opt
 	| LBRACKET ID COL s_type_use.u RBRACKET {: return new OptComponent(ID, u); :}
 	| LBRACKET s_type_use.u RBRACKET {: return new OptComponent(u.getID(), u); :}
+	// NTA
+	| SLASH ID COL s_type_use.u SLASH {: return new NTAComponent(ID, u); :}
+	| SLASH s_type_use.u SLASH {: return new NTAComponent(u.getID(), u); :}
 	// Token
 	| LT ID COL type_use.u GT {: return new TokenComponent(ID, u); :}
 	| LT ID GT {: return new TokenComponent(ID, new SimpleTypeUse("String")); :}
diff --git a/spec/scanner/RelAst.flex b/spec/scanner/RelAst.flex
index 27d068bd594484a7c4234614143e7adacae15fbe..6aaeaeb038a90da842cae794a93d1e960d8b58b3 100644
--- a/spec/scanner/RelAst.flex
+++ b/spec/scanner/RelAst.flex
@@ -9,8 +9,8 @@ import org.jastadd.relast.ast.RelAstParser.Terminals;
 %class RelAstScanner
 %extends beaver.Scanner
 
-%type beaver.Symbol 
-%function nextToken 
+%type beaver.Symbol
+%function nextToken
 %yylexthrow beaver.Scanner.Exception
 %scanerror RelAstScanner.ScannerError
 
@@ -18,7 +18,7 @@ import org.jastadd.relast.ast.RelAstParser.Terminals;
 %column
 %{
   private StringBuilder stringLitSb = new StringBuilder();
-  
+
   private beaver.Symbol sym(short id) {
     return new beaver.Symbol(id, yyline + 1, yycolumn + 1, yylength(), yytext());
   }
@@ -27,12 +27,12 @@ import org.jastadd.relast.ast.RelAstParser.Terminals;
     return new beaver.Symbol(id, yyline + 1, yycolumn + 1, yylength(), text);
   }
 
-  
+
   public static class ScannerError extends Error {
   	public ScannerError(String message) {
   		super(message);
   	}
-  } 
+  }
 %}
 
 WhiteSpace = [ ] | \t | \f | \n | \r | \r\n
@@ -62,6 +62,7 @@ ID = [a-zA-Z$_][a-zA-Z0-9$_]*
 	">"				{ return sym(Terminals.GT); }
 	"["				{ return sym(Terminals.LBRACKET); }
 	"]"				{ return sym(Terminals.RBRACKET); }
+	"/"				{ return sym(Terminals.SLASH); }
 	"?"				{ return sym(Terminals.QUESTION_MARK); }
 	"->"			{ return sym(Terminals.RIGHT); }
 	"<->"			{ return sym(Terminals.BIDIRECTIONAL); }