A toolchain for the Gran Turismo scripting language, Adhoc, from C#.
Adhoc is a scripting language that is used for roughly 99% of the entire games's logic, the native code serving mostly solely as the engine.
The toolchain contains the following:
- Adhoc Script Preprocessor / Parser / Compiler / CodeGen (
.ad
->.adc
)- Supports adhoc bytecode version 7 (GT4), 10 (GT4O/TT), 12 (GTPSP/GT5/GT6/GT Sport) with experimental support for Version 5 (GT4)
- Adhoc Project Builder
- Compiles menu sources from a
.yaml
project file to.adc
,.mproject
,.mpackage
- Compiles menu sources from a
- VS Code Extension
- Menu Layout Reader/Serializer (
mproject/mwidget
) - Script and Menu Layout Packager (GT6
.mpackage
) - Asset Packager (
.gpb
) - Script Disassembler (
.adc
to assembly-like syntax) - Compare scripts for dissasembly matching
Refer to the Wiki for more information (compiler, language features, etc).
The toolchain is capable of compiling fully working original and custom projects (see OpenAdhoc).
- Improve syntatic analysis during compilation.
- Further document the language and instructions themselves.
- Examples
- Possibly tests
- API Documentation
A fork of esprima-dotnet is used to lex and parse the Adhoc code into an abstract syntax tree prior to compiling.