JSFiddle - React, Tailwind, and code Playground
by Aaron Zhang
JavaScript
(function () {
var Class = (function () {
'use strict';
/*
* find all pairs of parentheses' begin and end position
* return an object containing all levels of parentheses
* (this function is unused)
*/
function findParentheses(str) {
var results = {};
var level = -1;
for (var i = 0; i < str.length; ++i) {
if (str[i] == '(') {
++level;
results[level] = results[level] || [];
results[level].push(i);
} else if (str[i] == ')') {
results[level].push({
begin: results[level].pop(),
end: i
});
--level;
}
}
return results;
}
/*
* Name of your class should be specified in the constructor
* e.g. new Class(function MyClass(){});
*/
var Class = function (constructor) {
if (!constructor.name) {
throw 'Please name your class';
}
this.constructor = constructor;
this.staticMethods = {};
this.publicMethods = {};
this.privateMethods = {};
};
/*
* Return the first matching parentheses indexes.
*/
function findParenthesis(str, start) {
var count = 0;
var started = false;
var result = [];
for (var i = start || 0; i < str.length; ++i) {
if (str[i] == '(') {
++count;
started = true;
result.push(i);
} else if (str[i] == ')') {
--count;
if (count === 0 && started) {
result.push(i);
return result;
}
}
}
...