Preprocessing problem with overloaded macors

0 votes
asked Oct 17, 2016 in Bug by anonymous
Hello,

the following example does only work if I remove the name overloading by renaming one of the macors genClassTypedef.

Is this an engine bug or is my code faulty?

Best,

Johannes

@startuml

skinparam class {
    BackgroundColor<<alias>>                #PowderBlue
}

!define ARROR_TYPEDEF_COLOR         #MediumTurquoise
!define ARROR_ALIAS_COLOR           #0000ff

!define L_GUILLEMET                 U+00AB
!define R_GUILLEMET                 U+00BB

!define assocStereotype(x)                  <L_GUILLEMET>x<R_GUILLEMET>

!define genArrowTypedef(x,y)                "x" o-up-> "x::y" ARROR_TYPEDEF_COLOR : assocStereotype(typedef)
!define genArrowAlias(x,y)                  "x" <|-- "y"      ARROR_ALIAS_COLOR   : assocStereotype(alias)

!define genArrowTypedef(x,y,arr)            "x" arr "x::y"    ARROR_TYPEDEF_COLOR : assocStereotype(typedef)
!define genArrowAlias(x,y,arr)              "x" arr "y"       ARROR_ALIAS_COLOR   : assocStereotype(alias)

!definelong genClassTypedef(cls,org,new)
    class "org"
    class "cls::new" <<(A,PaleTurquoise)alias>>
    genArrowTypedef("cls", "new")
    genArrowAlias("org", "cls::new")
!enddefinelong

!definelong genClassTypedef(cls,org,new,arrClsToNew,arrOrgToNew)
    class "org"
    class "cls::new" <<(A,PaleTurquoise)alias>>
    genArrowTypedef("cls", "new", arrClsToNew)
    genArrowAlias("org", "cls::new", arrOrgToNew)
!enddefinelong

class Action
genClassTypedef(Action, "boost::function<ResultE(NodeCore*, const Action*)>", Functor1)
genClassTypedef(Action, "boost::function<ResultE(NodeCore*, const Action*)>", Functor2, o-up->, <|--)

@enduml

1 Answer

0 votes
answered Oct 17, 2016 by plantuml (295,000 points)
This should be fixed with last beta:

https://dl.dropboxusercontent.com/u/13064071/plantuml.jar

I am wondering if you are not over-using the macro-processor :-)
Tell us when you find other issues!

Thanks
...