diff --git a/AlgebraicDataflowArchitectureModel/src/parser/Parser.java b/AlgebraicDataflowArchitectureModel/src/parser/Parser.java index 671e934..90b1174 100644 --- a/AlgebraicDataflowArchitectureModel/src/parser/Parser.java +++ b/AlgebraicDataflowArchitectureModel/src/parser/Parser.java @@ -454,7 +454,7 @@ paramType = ((Term) paramTerm).getType(); } Term term = null; - if (paramType != null && DataTransferModel.typeInt.isAncestorOf(paramType)) { + if (literalOrLeftCurlyBracket.equals(LEFT_CURLY_BRACKET)) { term = new JsonAccessor(DataTransferModel.dotParam); } else { term = new JsonAccessor(DataTransferModel.dot); @@ -464,6 +464,17 @@ expressions.add(term); operator = stream.checkNext(); if (operator == null) break; + if (operator.equals(COLON)) { + // when a type is specified. + stream.next(); + String typeName = stream.next(); + Type type = model.getType(typeName); + if (type == null) { + type = new Type(typeName, typeName); + } + term.setType(type); + break; + } } if (operator == null) { break;