ENIGMA:
Description: |
The Extensible Non-Interpreted Game Maker Augmentation
Comprises:
- Compiler
- Engine
Engine:
Description: |
The game engine upon which output games are built. The engine is
written in the native output language and is meant to be used with
translated EDL only (with rare exception).
Comprises:
- Universal Systems
- Systems Interfaces
- Environment Editables
Universal Systems:
Description: |
Contains platform-independent, system-agnostic code to run the game.
Systems Interfaces:
Description: |
Contains code for specialized systems which may be platform-dependent
or specific to certain types of games.
Environment Editables:
Description: |
The folder into which translated user code is written, along with
other game-specific code which needs to be generated by the [[compiler]]
to properly interface games with the engine.
Compiler:
Description: |
Builds your game, written in [[EDL]], to a native language.
Comprises:
- Definitions Parser
- Parser
- Language Adapter
Definitions Parser:
Description: |
Any mechanism which operates on the [[Engine]] source code to generate
[[native definitions]] objects for use by the [[Parser]].
Comprises:
- JustDefineIt
Produces:
- Native definitions
JDI:
Synonym: JustDefineIt
JustDefineIt:
Description: |
The framework on which the ENIGMA compiler is built. Used to represent
definitions harvested from the engine code, in order to interpret
users' [[EDL]] code.
Comprises:
- JDI::Context
- C++ Parser
C++ Parser:
Instance of: Definitions parser
Description: |
The JustDefineIt storage hierarchy was designed around parsing C++
code. JDI provides a full C++ parser which is used by the C++
[[Language Adapter]] to enumerate functions and data types declared
in ENIGMA's [[engine]]. Only those types and functions declared in
namespace `enigma_user` are considered.
Produces:
- C++ Definitions
C++ Definitions:
Instance of: Native definitions
Description: |
Native definitions pulled from the [[C++ engine]], as read in by the
[[C++ parser]]. These are likely to include many data types
representing actual C++ structures and classes, and functions
corresponding to actual C++ function overloads.
Parser:
Description: |
ENIGMA's parser is a native-language-insensitive mechanism which
interprets [[EDL]] code and builds abstract information about it.
Comprises:
- EDL Lexer
Requires:
- Native Definitions
Produces:
- EDL AST
- Object usage graph
Native Definitions:
Description: |
Classes (defined in [[JDI]]) denoting functions and data types
available in user code, as supported by the [[engine]] of the current
language.
Language Adapter:
Description: |
Enables the compiler to interface with and export to a particular
language.
Comprises:
- Code Generator
- Definitions Parser
Code Generator:
Description: |
Outputs used code from the parser into the native language meant to be
compiled further or run on the system.
Requires:
- EDL AST
- Object usage graph
Comments
0 B
|👍
/👎