1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2026-03-11 13:41:43 +00:00
Files
8bitworkshop/test/parsers/testparserz80.js
2026-02-16 23:20:43 -08:00

52 lines
1.3 KiB
JavaScript

const assert = require('assert');
const { EditorState } = require("@codemirror/state");
const { syntaxTree } = require("@codemirror/language");
const { asmZ80 } = require("../../gen/parser/lang-z80.js");
describe('Z80 Parser', function () {
it('Should parse basic instructions', function () {
const code = `
ld a, 0
ld hl, $1234
ret
`;
// Create an editor state with the new parser
const state = EditorState.create({
doc: code,
extensions: [asmZ80()]
});
// Check if the tree is available (basic check that parser didn't crash)
assert.ok(syntaxTree(state), "Syntax tree should be generated");
});
it('Should handle labels', function () {
const code = `
start:
jp start
`;
const state = EditorState.create({
doc: code,
extensions: [asmZ80()]
});
assert.ok(syntaxTree(state), "Syntax tree should be generated");
});
it('Should handle 8080 instructions', function () {
const code = `
mvi a, 0
lxi h, $1234
mov a, b
inx h
jmp start
`;
const state = EditorState.create({
doc: code,
extensions: [asmZ80()]
});
assert.ok(syntaxTree(state), "Syntax tree should be generated");
});
});