Skip to content

Instantly share code, notes, and snippets.

View pasaran's full-sized avatar

Sergey Nikitin pasaran

View GitHub Profile
@pasaran
pasaran / 03.ast.js
Created November 6, 2012 11:59
03.parser
var AST = function() {};
AST.prototype.init = function() {
this.p = {};
};
AST.prototype.walk = function(callback) {
callback.call(this);
var p = this.p;
@pasaran
pasaran / 02.grammar.js
Created October 29, 2012 11:27
parser.02
var tokens = {};
tokens.ADD = /^[+-]/;
tokens.MUL = /^[*/%]/;
tokens.NUMBER = /^[0-9]+(\.[0-9]+)?/;
// --------------------------------------------------------------------------------------------------------------- //
var rules = {};
@pasaran
pasaran / 01.parser.html
Created October 29, 2012 08:56
parser.01
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>parser.01</title>
<script src="01.parser.js"></script>
</head>
<body>
<script>
@pasaran
pasaran / f1.js
Created October 25, 2012 16:11
Compare different eval's in node.js
module.exports = function(data) {
var s = '';
s += '<div class="hello">';
s += 'Hello, ' + data.username;
s += '</div>';
return s;
};
@pasaran
pasaran / data.json
Created September 13, 2012 16:47
Example of yate templates
{
"settings": {
"foo": "low",
"bar": "high",
"baz": "low"
},
"values": [ "low", "high" ]
}
@pasaran
pasaran / require-all.js
Created April 23, 2012 09:13
Require all modules in directory
// --------------------------------------------------------------------------------------------------------------- //
var fs_ = require('fs');
var path_ = require('path');
// --------------------------------------------------------------------------------------------------------------- //
var basedir = path_.dirname(module.parent.filename);
/**
<func:function name="child-node">
<xsl:param name="elements"/>
<xsl:variable name="nodes">
<xsl:element name="{name()}">
<xsl:for-each select="str:tokenize($elements, ',| ')">
<xsl:element name="{normalize-space(.)}"/>
</xsl:for-each>
</xsl:element>
</xsl:variable>
<func:result select="exsl:node-set($nodes)/*/*"/>