dashed-lang
Version:
A Weird Language Full Of Dashes And Other Characters
158 lines (142 loc) • 7.34 kB
JavaScript
const fs = require('fs');
function compiler(file, callback) {
var comp;
fs.readFile(file, (err, data) => {
if (err) {
console.log(err);
} else {
var comp = data.toString();
// Error Reporting
if (/[A-Za-z]/g.test(comp)) {
console.log(`Found Unknown Characters In File: ${file}`);
} else {
// Replace
comp = comp
.replace(/=>/g, '=')
.replace(/\|_\|/g, 'var')
.replace(/\|\^\|/g, 'const')
.replace(/:=/g, 'let')
.replace(/(\[=-\|\])+/g, 'A')
.replace(/(=-\|)+/g, 'a')
.replace(/(\[=--\|\])+/g, 'B')
.replace(/(=--\|)+/g, 'b')
.replace(/(\[=---\|\])+/g, 'C')
.replace(/(=---\|)+/g, 'c')
.replace(/(\[=----\|\])+/g, 'D')
.replace(/(=----\|)+/g, 'd')
.replace(/(\[=-----\|\])+/g, 'E')
.replace(/(=-----\|)+/g, 'e')
.replace(/(\[=------\|\])+/g, 'F')
.replace(/(=------\|)+/g, 'f')
.replace(/(\[=-------\|\])+/g, 'G')
.replace(/(=-------\|)+/g, 'g')
.replace(/(\[=--------\|\])+/g, 'H')
.replace(/(=--------\|)+/g, 'h')
.replace(/(\[=---------\|\])+/g, 'I')
.replace(/(=---------\|)+/g, 'i')
.replace(/(\[=----------\|\])+/g, 'J')
.replace(/(=----------\|)+/g, 'j')
.replace(/(\[=-----------\|\])+/g, 'K')
.replace(/(=-----------\|)+/g, 'k')
.replace(/(\[=------------\|\])+/g, 'L')
.replace(/(=------------\|)+/g, 'l')
.replace(/(\[=-------------\|\])+/g, 'M')
.replace(/(=-------------\|)+/g, 'm')
.replace(/(\[=--------------\|\])+/g, 'N')
.replace(/(=--------------\|)+/g, 'n')
.replace(/(\[=---------------\|\])+/g, 'O')
.replace(/(=---------------\|)+/g, 'o')
.replace(/(\[=----------------\|\])+/g, 'P')
.replace(/(=----------------\|)+/g, 'p')
.replace(/(\[=-----------------\|\])+/g, 'Q')
.replace(/(=-----------------\|)+/g, 'q')
.replace(/(\[=------------------\|\])+/g, 'R')
.replace(/(=------------------\|)+/g, 'r')
.replace(/(\[=-------------------\|\])+/g, 'S')
.replace(/(=-------------------\|)+/g, 's')
.replace(/(\[=--------------------\|\])+/g, 'T')
.replace(/(=--------------------\|)+/g, 't')
.replace(/(\[=---------------------\|\])+/g, 'U')
.replace(/(=---------------------\|)+/g, 'u')
.replace(/(\[=----------------------\|\])+/g, 'V')
.replace(/(=----------------------\|)+/g, 'v')
.replace(/(\[=-----------------------\|\])+/g, 'W')
.replace(/(=-----------------------\|)+/g, 'w')
.replace(/(\[=------------------------\|\])+/g, 'X')
.replace(/(=------------------------\|)+/g, 'x')
.replace(/(\[=-------------------------\|\])+/g, 'Y')
.replace(/(=-------------------------\|)+/g, 'y')
.replace(/(\[=--------------------------\|\])+/g, 'Z')
.replace(/(=--------------------------\|)+/g, 'z')
.replace(/(\[=0-\|\])+/g, 'A')
.replace(/(=0-\|)+/g, 'a')
.replace(/(\[=1-\|\])+/g, 'B')
.replace(/(=1-\|)+/g, 'b')
.replace(/(\[=2-\|\])+/g, 'C')
.replace(/(=2-\|)+/g, 'c')
.replace(/(\[=3-\|\])+/g, 'D')
.replace(/(=3-\|)+/g, 'd')
.replace(/(\[=4-\|\])+/g, 'E')
.replace(/(=4-\|)+/g, 'e')
.replace(/(\[=5-\|\])+/g, 'F')
.replace(/(=5-\|)+/g, 'f')
.replace(/(\[=6-\|\])+/g, 'G')
.replace(/(=6-\|)+/g, 'g')
.replace(/(\[=7-\|\])+/g, 'H')
.replace(/(=7-\|)+/g, 'h')
.replace(/(\[=8-\|\])+/g, 'I')
.replace(/(=8-\|)+/g, 'i')
.replace(/(\[=9-\|\])+/g, 'J')
.replace(/(=9-\|)+/g, 'j')
.replace(/(\[=10-\|\])+/g, 'K')
.replace(/(=10-\|)+/g, 'k')
.replace(/(\[=11-\|\])+/g, 'L')
.replace(/(=11-\|)+/g, 'l')
.replace(/(\[=12-\|\])+/g, 'M')
.replace(/(=12-\|)+/g, 'm')
.replace(/(\[=13-\|\])+/g, 'N')
.replace(/(=13-\|)+/g, 'n')
.replace(/(\[=14-\|\])+/g, 'O')
.replace(/(=14-\|)+/g, 'o')
.replace(/(\[=15-\|\])+/g, 'P')
.replace(/(=15-\|)+/g, 'p')
.replace(/(\[=16-\|\])+/g, 'Q')
.replace(/(=16-\|)+/g, 'q')
.replace(/(\[=17-\|\])+/g, 'R')
.replace(/(=17-\|)+/g, 'r')
.replace(/(\[=18-\|\])+/g, 'S')
.replace(/(=18-\|)+/g, 's')
.replace(/(\[=19-\|\])+/g, 'T')
.replace(/(=19-\|)+/g, 't')
.replace(/(\[=20-\|\])+/g, 'U')
.replace(/(=20-\|)+/g, 'u')
.replace(/(\[=21-\|\])+/g, 'V')
.replace(/(=21-\|)+/g, 'v')
.replace(/(\[=22-\|\])+/g, 'W')
.replace(/(=22-\|)+/g, 'w')
.replace(/(\[=23-\|\])+/g, 'X')
.replace(/(=23-\|)+/g, 'x')
.replace(/(\[=24-\|\])+/g, 'Y')
.replace(/(=24-\|)+/g, 'y')
.replace(/(\[=25-\|\])+/g, 'Z')
.replace(/(=25-\|)+/g, 'z')
.replace(/(#--)/g, 'function')
.replace(/(#-)/g, '{')
.replace(/(-#(\s)+--#)/g, '}')
.replace(/(%--(\s)*\()/g, `for (`)
.replace(/(%-)/g, '{')
.replace(/(-%(\s)+--%)/g, '}')
.replace(/(!--)/g, '/*')
.replace(/(--!)/g, '*/')
.replace(/@/g, '//')
.replace(/<<\(/g, 'console.log(')
.replace(/\|-\|\.\[\*\*\*\]\(/g, 'document.getElementById(')
.replace(/\|-\|\.\[...]\(/g, 'document.getElementsByClassName(')
.replace(/\|-\|/g, 'document')
// Callback
callback(comp)
}
}
})
};
module.exports = compiler;