[x3d-public] scoping for proto names ?
John Carlson
yottzumm at gmail.com
Sun Jun 7 13:50:48 PDT 2020
I learned some about scope by studying how LISP/Scheme implemented them.
It’s like a stack of maps, when you enter a new scope, you get a new map,
and push it on the stack, When you exit a scope, you pop the map. You
can enter new fields into the map with their values.
John
On Sun, Jun 7, 2020 at 3:41 PM Andreas Plesch <andreasplesch at gmail.com>
wrote:
> Let's see if I can explain this question clearly.
>
> First the example:
>
>
> https://github.com/andreasplesch/x3dom/blob/gh-pages/test/functional/proto/castle/proto_nested.x3d
>
>
> The table2 ProtoBody uses an instance of the leg2 proto. The leg2 proto
> declaration is defined outside of the table2 proto declaration name scope.
>
> The expected result is that the table2 proto declaration is able to use
> the name 'leg2' to find the leg2 proto definition.
>
> This does not work in my x3dom proto exploration and it took me a while to
> realize that the reason is (too?) strict scoping. The leg2 proto definition
> occurs outside of the execution context and name scope of the table2 proto.
> Therefore it is not visible to the table2 proto.
>
> At first glance this strictness seems not unreasonable, however, all
> tested browsers display the scene as expected.
>
> So I am somewhat puzzled. I think what it means is that name scoping does
> not apply to the name of Protos given by the name attribute, since the name
> of Proto is the name of a node definition. Proto names are possibly global.
>
> One consequence is that two Protos in a scene cannot have the same name.
> And I recall that this case is spec'ed to lead to undefined behaviour.
>
> Would it be correct to treat Proto names as global ? To be clear, by Proto
> name I refer to the name given by the name attribute, not a DEF name of an
> instance.
>
> Thanks for any insight, or pointers to relevant spec. sections, -Andreas
>
> --
> Andreas Plesch
> Waltham, MA 02453
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200607/f08f3521/attachment.html>
More information about the x3d-public
mailing list