Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 51x 51x 51x 51x 51x 51x 51x 51x 51x 51x 43x 43x 43x 43x 43x 43x 1x | // assembler file parser
// gets a text file, returns an array of parsed lines
import { prepro, unroll } from "./preprocessor.js";
import { parseLine } from "./parseLine.js";
import { toInternal, nonempty, norm } from "./utils/utils.js";
/**
* Parsuje assemblerový zdrojový kód do pole tokenizovaných řádků (včetně makroexpanze)
* @param {string} s - Zdrojový kód jako text
* @param {Object} opts - Možnosti assembleru (včetně readFile, assembler, atd.)
* @returns {Promise<Array>} Pole tokenizovaných a expandovaných řádků
*/
export const parse = async (s, opts) => {
// split and convert to internal lines
let i = toInternal(s.split(/\n/));
//remove empty lines
i = nonempty(i);
//normalize lines
i = norm(i);
//macro processing and expansion
let prei = await prepro(i, opts);
//console.log(prei)
i = prei[0].map((line) => parseLine(line, prei[1], opts));
i = unroll(i, prei[1], null, opts);
//console.log("prei",i)
return i;
};
|