Remote method calls

Given a call to a remote method call:

obNominal = new Nominal().
chTest = obNominal:SayHi( chTest ).

which tokenizes as:

ASSIGN        0:0    
    EQUAL    =    66:66    
        Field_ref        0:0    
            ID    chTest    66:66    
        Widget_ref        0:0    
            Field_ref        0:0    
                ID    obNominal    66:66    
            OBJCOLON    :    66:66    
            ID    SayHi    66:66    
            Method_param_list        0:0    
                LEFTPAREN    (    66:66    
                INPUT        0:0    
                    Field_ref        0:0    
                        ID    chTest    66:66    
                RIGHTPAREN    )    66:66    

I would expect ID obNominal to have a Symbol. No?


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
tamhas's picture

A related question might be

A related question might be is what else is going to be
Widget_ref/Field_ref
I am guessing it could be quite a lot. So, is there a way to tell that this is actually a remote method reference?


tamhas's picture

Playing with this further I

Playing with this further I see that obNominal does have a symbol defined, but with this code:

    if ipchTokenType = "Widget_ref"
    then do:
      mobNode = ipobNode:firstChild().
      mchTokenType = NodeTypes:getTypeName(mobNode:getType()).
      if mchTokenType = "Field_ref"
      then do:
        mobNode = mobNode:firstChild().
        mchTokenType = NodeTypes:getTypeName(mobNode:getType()).
        if mchTokenType = "ID"
        then do:
          mobSymbol = mobNode:getSymbol().
put stream stOutput unformatted valid-object(mobSymbol) skip.

what is output in No, so getSymbol() on the ID node for obNominal is not producing a Symbol.


tamhas's picture

Moreover, if I look at the

Moreover, if I look at the symbols directly, those for methods show read and write activity, so clearly Proparse knows the connection.