printf and print
Base fiddle with DOM-based print and printf functions
by esbullington
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/sprintf/1.0.1/sprintf.min.js"></script>
<div id="printf"></div>
<div id="print"></div>
JavaScript
// Little printf making use of
// https://github.com/alexei/sprintf.js
function printf(s, arr) {
var t = vsprintf(s, arr);
console.log(t);
var el = document.getElementById("printf");
var span = document.createElement("span");
span.innerText = t;
el.appendChild(span);
}
function print(s) {
console.log(s);
var el = document.getElementById("print");
var span = document.createElement("span");
span.innerText = s;
el.appendChild(span);
}
function parseExpression(program) {
program = skipSpace(program);
var match, expr;
if (match = /^"([^"]*)"/.exec(program))
expr = {type: "value", value: match[1]};
else if (match = /^\d+\b/.exec(program))
expr = {type: "value", value: Number(match[0])};
else if (match = /^[^\s(),"]+/.exec(program))
expr = {type: "word", name: match[0]};
else
throw new SyntaxError("Unexpected syntax: " + program);
return expr;
}
function skipSpace(string) {
var first = string.search(/\S/);
if (first == -1) return "";
return string.slice(first);
}
var stmt = 'define(x, 8)'
var expr = parseExpression(stmt);
console.log(expr);