It is like an stomping feet party back there!
(maybe a Flamenco Dance's Party?)
Anyhow.
This scheme
abassign wrote:
Seems rather err to me.
The problem is again, I am not a developer, and reading thru lines of never documented sourcecode is for me an effort in futility. Maybe I'm better off trying to read Homer's The Odyssey in original ancient Greek scripts.
But I could hope that a software developer, such as abbassign himself can get some of the answers to his own questions by sniffing directly "the mountains of papers" that conform the core-code
Maybe, just a pointer to the proper directions:
The simgear core code, at
simgear/simgear/nasal
https://sourceforge.net/p/flightgear/si ... ear/nasal/
That code implements nasal functionality.
I looked at that thing really over-the-shoulder.
This is my conclussion.
Nasal interacts directly at the c++ level of the code. (just as a python interpreter could have)
and the c++ code is in charge of the rest of the operation.
There is a "ghost" (such called) that exposes C++ objects back to nasal as well.
The pertinent code is in simgear/simgear/nasal/cppbind/Ghost.*
So it looks to me, that in FG Nasal scheme is like follows
NASAL <-> C++ <-> Generic Interface
Thus, without the first interaction, NASAL is not dealing directly with the xml parser, nor with the "core" (in abassign diagram) -- which I don't understand what he meant by "core" at the top level there, either.
The important thing also being that parsing the xml is done directly at the C++ level
https://sourceforge.net/p/flightgear/si ... mgear/xml/
simgear/simgear/xml/XMLStaticParser.hxx
So,
NASAL <-> C++ <-> XML <-> Generic Interface
(which what we are calling interface here, will include among others the rendering machine)
So, in this context, NASAL is serving no other purpose that to expose the c++ code into "scripting" realm. That is, allows coding capabilities outside of the core, and without the need of recompiling.
Therefore, if all that is the case, there would be no problem (at all) to expose such code (even possibly using the same Ghost objects) to additional scripting languagues
https://docs.python.org/2/extending/embedding.html
Basically
Nasal <-> C++ |
Python <-> C++ |
Perl <-> C++ | <-> XML <-> Generic Interface
Lua <-> C ++ |
etc <-> C++ |