UNPKG

dashed-lang

Version:

A Weird Language Full Of Dashes And Other Characters

158 lines (142 loc) 7.34 kB
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;