mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2026-03-11 13:41:43 +00:00
52 lines
1.3 KiB
JavaScript
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");
|
|
});
|
|
});
|