Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
176 commits
Select commit Hold shift + click to select a range
c5ad991
[Mod Manager] - Work on preliminary UI structure.
TopazTK Aug 29, 2026
6369592
[Mod Manager] - Status bar implementation.
TopazTK Aug 29, 2026
e51fcb5
[Mod Manager] - Some View fixes.
TopazTK Aug 29, 2026
6922737
[Mod Manager] - Configuration.
TopazTK Aug 29, 2026
11186e4
[Mod Manager] - Preliminary initialization and mod traversal
TopazTK Aug 29, 2026
77e1736
[Mod Manager] - Libraries.
TopazTK Aug 29, 2026
4e3cd05
[Mod Manager] - Optimization for BIG ASS mod lists.
TopazTK Aug 29, 2026
c8b971b
[Mod Manager] - Move METADATA stuffs to SharpYaml.
TopazTK Aug 29, 2026
e00e37a
[Mod Manager] - Ordering the M O D S
TopazTK Aug 29, 2026
0673f8e
[Mod Manager] - Gracefully handle mod invalidity.
TopazTK Aug 29, 2026
1699581
[Mod Manager] - Commenting.
TopazTK Aug 29, 2026
c6d431f
[Mod Manager] - Remedy collision with LibGit2Sharp
TopazTK Aug 29, 2026
7188ca4
[Mod Manager] - Installing mods from Git hosts.
TopazTK Aug 29, 2026
cfae590
[Mod Manager] - More detailing on the UI.
TopazTK Aug 29, 2026
461e526
[Mod Manager] - Removing mods.
TopazTK Aug 29, 2026
c9bd5de
[Mod Manager] - Git Recognition.
TopazTK Aug 29, 2026
d43a4bd
[Mod Manager] - Having this in a service class makes more sense.
TopazTK Aug 29, 2026
2e84f1e
[Mod Manager] - Git Permission shenanigans.
TopazTK Aug 29, 2026
a13355d
[Mod Manager] - Progress, Errors, and fixes on typos.
TopazTK Aug 29, 2026
1d6275e
[Mod Manager] - Local Installation.
TopazTK Aug 29, 2026
2a5c269
[Mod Manager] - Whoops.
TopazTK Aug 29, 2026
8295d33
[Mod Manager] - Commenting, rename the InstallService.
TopazTK Aug 30, 2026
9acdf52
[Mod Manager] - Duplicate all BDX stuffs to OpenKh.Kh2 and remove Bdx…
TopazTK Aug 30, 2026
48ab2f5
[Mod Manager] - Fix some dependencies.
TopazTK Aug 30, 2026
293159b
[Mod Manager] - Some bugfixes on properties, mod memory implementation.
TopazTK Aug 30, 2026
fbed8e2
[Mod Manager] - Ensure the buttons for reorder don't work on invalid …
TopazTK Aug 30, 2026
2588379
[Mod Manager] - Finish Mod Memory implementation, make sure invalid m…
TopazTK Aug 30, 2026
fb79874
[Mod Manager] - Add separator between mods.
TopazTK Aug 30, 2026
7ab41a1
[Mod Manager] - Preliminary fix.
TopazTK Aug 31, 2026
e3ec08c
[Mod Manager] - Building both with and without extraction.
TopazTK Aug 31, 2026
ef67416
[Mod Manager] - Fix bugs, build progress.
TopazTK Aug 31, 2026
7d29577
[Mod Manager] - Make this a task.
TopazTK Aug 31, 2026
c23d55e
[Mod Manager] - Mod Menu
TopazTK Aug 31, 2026
b480d89
[Mod Manager] - Actually run after Build and Run (EXPERIMENTAL)
TopazTK Aug 31, 2026
ceff980
[Mod Manager] - Some adjustments here.
TopazTK Aug 31, 2026
00e603d
[Mod Manager] - Launcher program.
TopazTK Aug 31, 2026
0c39770
[Mod Manager] - Enforce forward slashes for Linux.
TopazTK Aug 31, 2026
5338ba5
[Mod Manager] - Config changes.
TopazTK Aug 31, 2026
f2b2dfd
[Mod Manager] - Error reporting and build-only preparation.
TopazTK Aug 31, 2026
d527cfc
[Mod Manager] - I lost the plot trying to fix ONE UI ELEMENT
TopazTK Aug 31, 2026
0a56678
[Mod Manager] - Fix extractionless internal tag.
TopazTK Sep 1, 2026
4203770
[Mod Manager] - Fix Linux Pathing and SymLink [Thanks Solt11]
TopazTK Sep 1, 2026
eb239a4
[Mod Manager] - Whoopsies
TopazTK Sep 1, 2026
945ce18
[Mod Manager] - PathService, some bug fixes, and ignore multi-writes …
TopazTK Sep 2, 2026
e08f99c
[Mod Manager] - Setup Wizard Prequel.
TopazTK Sep 2, 2026
2fd7c15
[Mod Manager] - I hate making Wizards.
TopazTK Sep 2, 2026
4d429fd
[Mod Manager] - Finish Wizard prelude.
TopazTK Sep 2, 2026
624e55d
[Mod Manager] - Game and Panacea Setup Pages
TopazTK Sep 3, 2026
dac22e2
[Mod Manager] - Script Setup page prelude
TopazTK Sep 3, 2026
8674a2d
[Mod Manager] - Submit Setup Wizard results, better path handling.
TopazTK Sep 4, 2026
dfb6add
Merge pull request #1 from OpenKH/master
TopazTK Sep 4, 2026
ee83661
[Mod Manager] - Starting to hate my life.
TopazTK Sep 4, 2026
d9b2eb2
[Mod Manager] - Move some Config functions, add Launch Arguments.
TopazTK Sep 5, 2026
5528e4b
[Mod Manager] - Fix some typos and odditied.
TopazTK Sep 5, 2026
8cbb4a8
[Mod Manager] - Restore launcher, make launcher pass arguments.
TopazTK Sep 5, 2026
6423f1e
[Mod Manager] - Account for arguments, adjust for 2.8 support.
TopazTK Sep 5, 2026
4f6a86a
[Mod Manager] - A lot of work on the wizard.
TopazTK Sep 5, 2026
567e7d2
[Mod Manager] - Extraction.
TopazTK Sep 5, 2026
5366ef3
[Mod Manager] - Disallow next page, some fixes.
TopazTK Sep 5, 2026
2433423
[Mod Manager] - Console feedback, get file from game if not on extrac…
TopazTK Sep 6, 2026
0deeab0
[Mod Manager] - Install Panacea/LuaBackend buttons, move stuff to "as…
TopazTK Sep 6, 2026
a13be1e
[Mod Manager] - Make this button actually do shit.
TopazTK Sep 6, 2026
d0eb339
[Mod Manager] - Maybe DON'T crash if stuff exists.
TopazTK Sep 6, 2026
196fbff
[Mod Manager] - Remove console for now.
TopazTK Sep 6, 2026
4534e8f
[Mod Manager] - Introduce Regex Timeouts.
TopazTK Sep 6, 2026
a1d5770
[Mod Manager] - Move Panacea, Backend, and SteamAPI stuff to a service.
TopazTK Sep 6, 2026
150104a
[Mod Manager] - Some null gates.
TopazTK Sep 6, 2026
e855786
[Mod Manager] - MOAR null gates.
TopazTK Sep 6, 2026
7ed6d73
[Mod Manager] - EVEN MOAR NULL GATES
TopazTK Sep 6, 2026
a6b5057
[Mod Manager] - Should be able to build now. [Removed old manager and…
TopazTK Sep 6, 2026
ee3f9e8
[Mod Manager] - Fix problems SonarQube mentioned.
TopazTK Sep 7, 2026
a3cf58d
[Mod Manager] - Fix more SonarQube complaints.
TopazTK Sep 7, 2026
9dc481e
[Mod Manager] - Forgot to save this one.
TopazTK Sep 7, 2026
f7835ac
[BdxIo] - Make the project use OpenKh.Kh2 instead.
TopazTK Sep 11, 2026
f52520c
[Mod Manager] - Ensure MOD and BUILD paths exist.
TopazTK Sep 11, 2026
0ba67b9
[Mod Manager] - Ensure DATA path also exists.
TopazTK Sep 11, 2026
7186a86
[Mod Manager] - Remove dialogs to make them a service.
TopazTK Sep 11, 2026
ed45c45
[Launcher] - Pass proper arguments.
TopazTK Sep 11, 2026
03e859b
[Mod Manager] - Dialog Service.
TopazTK Sep 11, 2026
a959b8d
[Mod Manager] - More Dialog Service stuffs.
TopazTK Sep 11, 2026
4d48e6e
[Mod Manager] - MORE DialogService stuffs.
TopazTK Sep 11, 2026
f0a8a58
[Mod Manager] - Fix this NOT working on Linux at ALL
TopazTK Sep 11, 2026
229c0f8
[Mod Manager] - Formatting.
TopazTK Sep 11, 2026
e0fa5c1
[Mod Manager] - Restore.
TopazTK Sep 11, 2026
e4d38e4
[Mod Manager] - Fix file paths with spaces on Local Install.
TopazTK Sep 11, 2026
f648614
[Mod Manager] - Fix Lua Metadata
TopazTK Sep 11, 2026
67fd80d
[Mod Manager] - This should be error handled, not exceptioned.
TopazTK Sep 11, 2026
2d65076
[Mod Manager] - Automatically detect and account for JP [EXPERIMENTAL]
TopazTK Sep 11, 2026
3d343ce
[Mod Manager] - A lot in this regard, honestly.
TopazTK Sep 11, 2026
6af7909
[Mod Manager] - Fix preliminary issues.
TopazTK Sep 11, 2026
a3b2f3d
[Mod Manager] - Swap out the C# Launcher for the C++ Interceptor.
TopazTK Sep 12, 2026
edaf5c5
[Mod Manager] - Automatically handle overrides if Panacea or LuaBacke…
TopazTK Sep 12, 2026
a0fb5f2
[Mod Manager] - Workaround to SteamAPI complaining about launch argum…
TopazTK Sep 12, 2026
446c0a1
[Mod Manager] - Dispose of the interceptor when its job is done.
TopazTK Sep 12, 2026
3724c21
[Mod Manager] - Fix extract building, ask for overwrites.
TopazTK Sep 12, 2026
80a2a44
[Mod Manager] - Some organization, multi mod install.
TopazTK Sep 12, 2026
d0b8021
[Mod Manager] - Some dialog adjustments.
TopazTK Sep 13, 2026
3fc8852
[Mod Manager] - Fulfill Shan's requests about the setup wizard.
TopazTK Sep 13, 2026
896bc60
[Mod Manager] - Fix extraction.
TopazTK Sep 13, 2026
238a4b4
[Mod Manager] - Shan's requests for the manager.
TopazTK Sep 13, 2026
c956e29
[Mod Manager] - Prevent user control when extracting, except for to c…
TopazTK Sep 13, 2026
225c79a
[Mod Manager] - Hopefully fix building for everything PC this time.
TopazTK Sep 13, 2026
897a8ac
[Mod Manager] - Install new mods at highest pri.
TopazTK Sep 13, 2026
4b9e683
[Mod Manager] - Online Catalog
TopazTK Sep 13, 2026
f6ca277
[Mod Manager] - Refactor search regarding osdanova's suggestions.
TopazTK Sep 13, 2026
eee7a02
[Mod Manager] - Catalog adjustments.
TopazTK Sep 14, 2026
ce04172
[Mod Manager] - Delegate Steam Library parsing to PathService.
TopazTK Sep 14, 2026
5fd66e7
[Mod Manager] - Address SonarQube concerns.
TopazTK Sep 14, 2026
4ba9ca6
[Mod Manager] - SonarQube is something, really.
TopazTK Sep 14, 2026
dbb1382
[Mod Manager] - Whatever SonarQube is smoking, I want it.
TopazTK Sep 14, 2026
adf3759
[Mod Manager] - Fetch all Catalog results through all pages.
TopazTK Sep 14, 2026
76dbdfd
[Mod Manager] - Move controls to their own thing.
TopazTK Sep 14, 2026
5391d29
[Mod Manager] - Make the MainWindow a proper MVVM class.
TopazTK Sep 14, 2026
f19fbb8
[Mod Manager] - Catalog mod tooltips.
TopazTK Sep 14, 2026
b7b5195
[Mod Manager] - Fix this thanks Solt11
TopazTK Sep 14, 2026
5f96cf4
[Interceptor] - Fix crashing when passed arguments via Steam.
TopazTK Sep 14, 2026
d6941da
[Mod Manager] - Whoops.
TopazTK Sep 14, 2026
ecd6d84
[Mod Manager] - Restore the legacy folder structure.
TopazTK Sep 14, 2026
b4e27d3
[Mod Manager] - Saving is hard.
TopazTK Sep 14, 2026
9d99482
[Interceptor] - Fix DDD.
TopazTK Sep 14, 2026
31eb691
[Mod Manager] - Fix duplication.
TopazTK Sep 14, 2026
ac89e4a
[Mod Manager] - Fetch ALL library folders for processing.
TopazTK Sep 17, 2026
4ac66f2
[Mod Manager] - Try to fix SonarQube complaints.
TopazTK Sep 17, 2026
94aec73
[Mod Manager] - Whoops
TopazTK Sep 17, 2026
a1c542f
[Mod Manager] - Fix shortcuts.
TopazTK Sep 17, 2026
e652a7b
[Mod Manager] - More SonarQube complaints.
TopazTK Sep 17, 2026
9ec91df
[Mod Manager] - Some XML fixes.
TopazTK Sep 17, 2026
79530d2
[Mod Manager] - This can be a command.
TopazTK Sep 17, 2026
a3cc8c9
[Mod Manager] - Progress Dialog overhaul. Apologies for any future he…
TopazTK Sep 17, 2026
2eb1622
[Mod Manager] - Adress SonarQube concerns.
TopazTK Sep 17, 2026
7e716b7
[Mod Manager] - Better thread handling for Catalog.
TopazTK Sep 17, 2026
c6028c7
[Mod Manager] - Implementation of Mod Preferences [WIP]
TopazTK Sep 17, 2026
8d63206
[Mod Manager] - Fix some rudimentary problems.
TopazTK Sep 18, 2026
f5283c0
[Mod Manager] - Preset Implementation [WIP]
TopazTK Sep 18, 2026
5375778
[Mod Manager] - Move all pointer operations to SafePtr, dependency an…
TopazTK Sep 19, 2026
c8cc600
[Mod Manager] - Make SafePtr a bit easier to work on, preset context …
TopazTK Sep 20, 2026
86a2841
[Mod Manager] - Just in case.
TopazTK Sep 20, 2026
4536adc
[Mod Manager] - Separate mod initialization from view.
TopazTK Sep 20, 2026
a669c69
[Mod Manager] - Admittedly sloppy Preset work, will adjust.
TopazTK Sep 20, 2026
1722401
[Mod Manager] - Handle presets PROPERLY.
TopazTK Sep 20, 2026
bbfdea5
[Mod Manager] - Presets can now link mods instead of having to hard-i…
TopazTK Sep 21, 2026
162a286
[Mod Manager] - Fixes for linking on presets.
TopazTK Sep 21, 2026
5f78eaf
[Mod Manager] - Optimize code for linked mods.
TopazTK Sep 22, 2026
ced6460
[Mod Manager] - Try to address Zip Slip
TopazTK Sep 22, 2026
5d6783f
[Mod Manager] - No hash used here is for security.
TopazTK Sep 22, 2026
06deb85
[Mod Manager] Try to fix tests?
TopazTK Sep 22, 2026
31dea2b
[Mod Manager] - I should really NOT forget saving
TopazTK Sep 22, 2026
46b88a8
[Mod Manager] - Fuck it, no tests until this is DONE.
TopazTK Sep 22, 2026
15c9403
[Mod Manager] - Fix build.
TopazTK Sep 22, 2026
274fa42
[Mod Manager] - Rename Presets to Profiles.
TopazTK Sep 22, 2026
ae8dd58
[Overall] - I want to die.
TopazTK Sep 22, 2026
e1389c8
[Mod Manager] - Try to fix Zip Slip
TopazTK Sep 22, 2026
f410f58
[Overall] - Remove improper attributions and licenses.
TopazTK Sep 23, 2026
14f7f8b
[Mod Manager] - Move from relying on LibGit2Sharp to REST/HTTPS APIs …
TopazTK Sep 23, 2026
370e322
[Mod Manager] - Add task cancellation, add latest commit fetch.
TopazTK Sep 23, 2026
e682166
[Mod Manager] - Move ModList to the new Git system.
TopazTK Sep 23, 2026
7bc89e8
[Mod Manager] - Be a bit smarter with this.
TopazTK Sep 23, 2026
3bbbe5a
[Mod Manager] - Some fixes.
TopazTK Sep 24, 2026
efb858a
[Mod Manager] - Minute fixes.
TopazTK Sep 24, 2026
cd8d2d0
[Mod Manager] - Try to fix mismatches.
TopazTK Sep 24, 2026
307b7b0
Update OpenKh.Tools.ModManager.csproj
TopazTK Sep 24, 2026
c4f0397
[Mod Manager] - Fix REST API requests.
TopazTK Sep 24, 2026
e198194
[Mod Manager] - Preliminary PCSX2 support. Considered not complete, s…
TopazTK Sep 25, 2026
cb4ead1
[Mod Manager] - Fix improper building progress bars.
TopazTK Sep 27, 2026
8602918
[Mod Manager] - Preliminary PS2 Support on Linux, utilizing the PINE …
TopazTK Sep 27, 2026
0ae0e29
[Mod Manager] - Change some wizards stuffs, WIP.
TopazTK Sep 27, 2026
4b0eccf
[Mod Manager] - Remove debug.
TopazTK Sep 27, 2026
8c930f5
[Mod Manager] - Fix PINEStream READ.
TopazTK Sep 27, 2026
3cac9c0
[Mod Manager] Add Windows Support for PINE (Only Temporary)
TopazTK Sep 27, 2026
f03266c
[Mod Manager] Apparently, old and simple methods are often best.
TopazTK Sep 27, 2026
3d1dca6
[Mod Manager] - Brute-force a connect with PINE on Linux.
TopazTK Sep 27, 2026
6609cb9
[Mod Manager] - Make PS2 load stuff without extraction.
TopazTK Sep 28, 2026
b61b18b
[Mod Manager] - Preliminary logging (Very early, subject to change.)
TopazTK Sep 28, 2026
5a16a9f
[Mod Manager] - Ability to choose distinct ISOs for PS2, better logging.
TopazTK Sep 28, 2026
57f5443
[Mod Manager] - Preliminary extractionless PS2 KH2.
TopazTK Sep 29, 2026
ee42b71
[Mod Manager] - Extraction Menu for Emulated ROMs, extraction for KH2…
TopazTK Sep 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion OpenKh.Command.AnbMaker/OpenKh.Command.AnbMaker.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<PackageReference Include="McMaster.Extensions.CommandLineUtils" Version="4.1.1" />
<PackageReference Include="System.Interactive" Version="6.0.1" />
<PackageReference Include="SkiaSharp" Version="2.88.8" />
<PackageReference Include="NLog" Version="5.3.2" />
<PackageReference Include="NLog" Version="6.2.0" />
</ItemGroup>

<ItemGroup>
Expand Down
7 changes: 0 additions & 7 deletions OpenKh.Command.Bdxio/Antlr4/.gitignore

This file was deleted.

2 changes: 1 addition & 1 deletion OpenKh.Command.Bdxio/Commands/DecodeCommand.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using McMaster.Extensions.CommandLineUtils;
using NLog;
using OpenKh.Command.Bdxio.Utils;
using OpenKh.Kh2.Bdx.Utils;
using System.ComponentModel.DataAnnotations;

namespace OpenKh.Command.Bdxio.Commands
Expand Down
4 changes: 2 additions & 2 deletions OpenKh.Command.Bdxio/Commands/EncodeCommand.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using McMaster.Extensions.CommandLineUtils;
using NLog;
using OpenKh.Command.Bdxio.Models;
using OpenKh.Command.Bdxio.Utils;
using OpenKh.Kh2.Bdx.Models;
using OpenKh.Kh2.Bdx.Utils;
using System.ComponentModel.DataAnnotations;

namespace OpenKh.Command.Bdxio.Commands
Expand Down
3 changes: 2 additions & 1 deletion OpenKh.Command.Bdxio/OpenKh.Command.Bdxio.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,13 @@

<ItemGroup>
<PackageReference Include="McMaster.Extensions.CommandLineUtils" Version="4.1.1" />
<PackageReference Include="NLog" Version="5.3.2" />
<PackageReference Include="YamlDotNet" Version="16.3.0" />
<PackageReference Include="Xe.BinaryMapper" Version="1.5.2" />
<PackageReference Include="Antlr4.Runtime.Standard" Version="4.13.1" />

<ProjectReference Include="../OpenKh.Common/OpenKh.Common.csproj" />

<ProjectReference Include="..\OpenKh.Kh2\OpenKh.Kh2.csproj" />
</ItemGroup>

<ItemGroup>
Expand Down
6 changes: 4 additions & 2 deletions OpenKh.Command.IdxImg/EpicGamesAssets.cs
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ private class BuildCommand

protected int OnExecute(CommandLineApplication app)
{
List<string> _gameMap = new List<string>() { "kh1", "kh2", "Recom", "bbs", "kh3d" };

var enabled = File.ReadAllLines(ModsFile);

if (Directory.Exists(OutputFolder))
Expand All @@ -141,9 +143,9 @@ protected int OnExecute(CommandLineApplication app)
foreach (var mod_name in enabled.AsEnumerable().Reverse())
{
var mod_folder = Path.Combine(ModsFolder, mod_name);
var metadata = File.OpenRead(Path.Combine(mod_folder, "mod.yml")).Using(Metadata.Read);
var metadata = Metadata.Read(Path.Combine(mod_folder, "mod.yml"));
Console.WriteLine($"Patching {mod_name}");
patcher.Patch(DataFolder, OutputFolder, metadata, mod_folder, platform: 2, packageMap: map, LaunchGame: GameId);
patcher.Patch(DataFolder, OutputFolder, metadata, mod_folder, targetPlatform: 1, packageMap: map, targetGame: _gameMap.IndexOf(GameId));
}

using (var packageMapWriter = new StreamWriter(Path.Combine(OutputFolder, "patch-package-map.txt")))
Expand Down
2 changes: 1 addition & 1 deletion OpenKh.Command.MapGen/OpenKh.Command.MapGen.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

<ItemGroup>
<PackageReference Include="McMaster.Extensions.CommandLineUtils" Version="4.1.1" />
<PackageReference Include="NLog" Version="5.3.2" />
<PackageReference Include="NLog" Version="6.2.0" />
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
<PackageReference Include="AssimpNet" Version="5.0.0-beta1" />
<PackageReference Include="YamlDotNet" Version="16.3.0" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,49 +1,49 @@
grammar BdxScript;
prog: NL* (statement NL*)* EOF;
statement:
section
| equ
| label ':' NL
| label ':' order
| order;
label: name = id;
equ: name = id 'equ' numberdata;
order: db | resb | dw | resw | instruction | include;
dw: 'dw' worddata (',' worddata)* NL;
db: 'db' bytedata (',' bytedata)* NL;
resb: 'resb' (numberdata | id) NL;
resw: 'resw' (numberdata | id) NL;
instruction: id (arg (',' arg)*)? NL;
arg: (numberdata | id);
offset: 'offset' id;
bytedata: numberdata | id | StringData;
worddata: numberdata | id;
numberdata:
decimalnumber = DEC
| '0x' hexnumber = (DEC | HEX)
| floatnumber = FLOATNUM;
hexbody: DEC | HEX;
id: DEC | HEX | ID;
include: '%include' FileName NL;
section: 'section' section_id NL;
section_id: '.text' | '.bss';
StringData: '\'' ~[']* '\'';
DEC: [-+]? [0-9]+;
HEX: [0-9a-fA-F]+;
FLOATNUM:
[-+]? ([0-9]* '.' [0-9]+)
| ([0-9]+ [eE] [-+]? [0-9]+);
ID: [a-zA-Z_][a-zA-Z0-9_]* ('.' [a-zA-Z0-9_]+)*;
WS: [ \t] -> skip;
NL: '\r'? '\n' | '\r';
FileName: '"' ~["]* '"';
LINE_COMMENT: ';' ~[\r\n]* -> skip;
grammar BdxScript;

prog: NL* (statement NL*)* EOF;
statement:
section
| equ
| label ':' NL
| label ':' order
| order;

label: name = id;

equ: name = id 'equ' numberdata;

order: db | resb | dw | resw | instruction | include;

dw: 'dw' worddata (',' worddata)* NL;
db: 'db' bytedata (',' bytedata)* NL;
resb: 'resb' (numberdata | id) NL;
resw: 'resw' (numberdata | id) NL;

instruction: id (arg (',' arg)*)? NL;

arg: (numberdata | id);
offset: 'offset' id;
bytedata: numberdata | id | StringData;
worddata: numberdata | id;
numberdata:
decimalnumber = DEC
| '0x' hexnumber = (DEC | HEX)
| floatnumber = FLOATNUM;
hexbody: DEC | HEX;
id: DEC | HEX | ID;
include: '%include' FileName NL;
section: 'section' section_id NL;
section_id: '.text' | '.bss';

StringData: '\'' ~[']* '\'';
DEC: [-+]? [0-9]+;
HEX: [0-9a-fA-F]+;
FLOATNUM:
[-+]? ([0-9]* '.' [0-9]+)
| ([0-9]+ [eE] [-+]? [0-9]+);
ID: [a-zA-Z_][a-zA-Z0-9_]* ('.' [a-zA-Z0-9_]+)*;
WS: [ \t] -> skip;
NL: '\r'? '\n' | '\r';
FileName: '"' ~["]* '"';

LINE_COMMENT: ';' ~[\r\n]* -> skip;
Loading
Loading