Alexander Burger <a...@software-lab.de> writes:

Hi Alex,

> You could read and print the data in a "flat" format to some file, e.g.:
>
>    (out "er.flat"
>       (in "myApp/er.l"
>          (while (read) (println @)) ) )
>
> This gives one top-level expression per line which can be easily
> 'regexp'ed.

Thats a nice tip, thanks ... not that I understand it, the magic must be
in the (println @), right?

>> ,-----------------------------------
>> | (rel exp (+List +Link) NIL (+Abc))    # why the NIL?
>> `-----------------------------------
>
> Good question. Where did you find this? It is definitely wrong, because
> '+List' doesn't take any arguments.
>
>    (rel exp (+List +Link) (+Abc))

I just made it up, should have cared more about the wrong or right. 

   ,------------------------------------------------
   | (rel exp (+Class1 +Class2 ...) {xxx} (+Class3))
   `------------------------------------------------

My real question was what can happen in the {xxx} part above (just from
the point of view of parsing the section with regexp:

- {empty}
- NIL
- sym
- (list) sym
- ...  ?

>> ,------------------------------------------
>> | (rel ord (+Dep +Joint) (itm) pos (+Ord))   #  why the (itm) ?
>> `------------------------------------------
>
> The 'itm' goes with the '+Dep' (dependency) class. It means that this
> 'ord' relation depends on the 'itm' (item) relation in the same object.
> When the 'itm' link is cut off (for example, because the item in that
> position is removed), then the whole position will be cut off (become
> garbage).

I see, but have no idea how to express that in UML - I guess its
impossible. 

So it will probably been shown as a bidirectional association:

 ,------------------------------------------
 | (rel ord (+List +Joint) pos (+Ord)) 
 `------------------------------------------

one-to-many?

 ,------------------------------------------
 | (rel ord (+Joint) pos (+Ord)) 
 `------------------------------------------

one-to-one?

>> ,-----------------------------------
>> | (rel pos (+List +Bag) # Positions
>> |  ((+Ref +Link) NIL (+Item)) # Item
>> |  ((+Number) 2) # Price
>> |  ((+Number)) # Quantity
>> |  ((+String)) # Memo text
>> |  ((+Number) 2) ) # Total amount
>> `-----------------------------------

I think I'll have to figure out a trick how to deal with bags, way to
much effort to get all this info into an UML diagram.

BTW, one more question:

The vars sometimes specified in the comment beyond a class definition:

,-----------------
| (class ...
| # var1 var2 var3
| ...)
`-----------------

can be considered as a kind of 'private instance (or class) variables?

-- 
cheers,
Thorsten

-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to