﻿simulang:

struct Token { Type; string Value }
struct TokenSA { Type; ushort[] Value; }
lexer: Token NextTokenABC(); TokenSA NextTokenSA();

transcribe SA: Token Transcribe(TokenSA tokenSAs);

translate transed SA: Token Translate(Token transcribedTokenSAs);
// - reposite o_ka_e_seu o_seu_ru no_to_ki to re_H_to du_u wa_i_ru など
// - translate keywords
// - translate operators (excepts ` which has been SA-lexered in NextTokenSA)
// - translate numbers in transed SA to ABC (includes 1_._0_e_－_3 -> 1.0e-3)
// - escape transed strings such as ∴ha∵ha -> hH

simplifier: Simplify // tokens or translated tokens
gencs: GenCS // tokens or translated tokens
gensim: GenSim // tokens or translated tokens