Skip to content

Instantly share code, notes, and snippets.

@hammerdr
Created April 22, 2010 08:17
Show Gist options
  • Select an option

  • Save hammerdr/374963 to your computer and use it in GitHub Desktop.

Select an option

Save hammerdr/374963 to your computer and use it in GitHub Desktop.
{
"name": "Program",
"children": [
{
"name": "ClassDecl",
"children": [
{
"name": "MethodDecl",
"children": [
{
"name": "Formal",
"children": [],
"type": "Prius",
"parameterName": "car",
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
}
],
"returnType": "boolean",
"methodName": "destroy",
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
},
{
"name": "ClassVarDecl",
"children": [],
"type": "int",
"fieldName": "carsDestroyed",
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
}
],
"className": "Hummer",
"superClassName": null,
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
},
{
"name": "ClassDecl",
"children": [
{
"name": "MethodDecl",
"children": [],
"returnType": "boolean",
"methodName": "start",
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
},
{
"name": "ClassVarDecl",
"children": [],
"type": "int",
"fieldName": "mpg",
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
}
],
"className": "Prius",
"superClassName": null,
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
},
{
"name": "MainClassDecl",
"children": [],
"className": "SomeClassWeNeverUse",
"param": "args",
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
}
],
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
}
Actual = {
"ast": {
"name": "Program",
"children": [
{
"name": "ClassDecl",
"children": [
{
"name": "MethodDecl",
"children": [
{
"name": "Formal",
"children": [],
"type": "Prius",
"parameterName": "car",
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
}
],
"returnType": "boolean",
"methodName": "destroy",
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
},
{
"name": "ClassVarDecl",
"children": [],
"type": "int",
"fieldName": "carsDestroyed",
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
}
],
"className": "Hummer",
"superClassName": null,
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
},
{
"name": "ClassDecl",
"children": [
{
"name": "MethodDecl",
"children": [],
"returnType": "boolean",
"methodName": "start",
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
},
{
"name": "ClassVarDecl",
"children": [],
"type": "int",
"fieldName": "mpg",
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
}
],
"className": "Prius",
"superClassName": null,
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
},
{
"name": "MainClassDecl",
"children": [],
"className": "SomeClassWeNeverUse",
"param": "args",
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
}
],
"addChild": function( a ){
[code]
},
"isLeafNode": function(){
[code]
},
"isClassDeclaration": function(){
[code]
},
"getClassName": function(){
[code]
},
"getSuperClassName": function(){
[code]
},
"hasSuperClass": function(){
[code]
},
"isMethodDeclaration": function(){
[code]
},
"isFieldDeclaration": function(){
[code]
},
"isParameterDeclaration": function(){
[code]
},
"getFieldName": function(){
[code]
},
"getMethodName": function(){
[code]
},
"getParameters": function(){
[code]
},
"getParameterName": function(){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterTypesForMethod": function(){
[code]
},
"getType": function(){
[code]
},
"printNode": function(){
[code]
},
"walk": function( a, b ){
[code]
},
"toJSON": function(){
[code]
},
"toString": function(){
[code]
}
},
"env": {
"classes": [
{
"name": "Hummer",
"superclass": null,
"fields": [
{
"name": "carsDestroyed",
"type": "int"
}
],
"methods": [
{
"name": "destroy",
"returnType": "boolean",
"parameters": [
{
"name": "car",
"type": "Prius"
}
],
"getKey": function( a ){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterType": function( a ){
[code]
},
"addParameter": function( a, b ){
[code]
},
"hasMultipleOfParameter": function( a ){
[code]
},
"equals": function( a ){
[code]
},
"toString": function(){
[code]
},
"_getParameter": function( a ){
[code]
},
"_hasParameter": function( a ){
[code]
},
"_hash": function(){
[code]
}
}
],
"getKey": function(){
[code]
},
"getSuperclass": function(){
[code]
},
"getFieldType": function( a ){
[code]
},
"getMethod": function( a ){
[code]
},
"addField": function( a, b ){
[code]
},
"addMethod": function( a ){
[code]
},
"hasField": function( a ){
[code]
},
"hasMethod": function( a ){
[code]
},
"hasMultipleOfField": function( a ){
[code]
},
"hasMultipleOfMethod": function( a ){
[code]
},
"toString": function(){
[code]
},
"_getField": function( a ){
[code]
}
},
{
"name": "Prius",
"superclass": null,
"fields": [
{
"name": "mpg",
"type": "int"
}
],
"methods": [
{
"name": "start",
"returnType": "boolean",
"parameters": [],
"getKey": function( a ){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterType": function( a ){
[code]
},
"addParameter": function( a, b ){
[code]
},
"hasMultipleOfParameter": function( a ){
[code]
},
"equals": function( a ){
[code]
},
"toString": function(){
[code]
},
"_getParameter": function( a ){
[code]
},
"_hasParameter": function( a ){
[code]
},
"_hash": function(){
[code]
}
}
],
"getKey": function(){
[code]
},
"getSuperclass": function(){
[code]
},
"getFieldType": function( a ){
[code]
},
"getMethod": function( a ){
[code]
},
"addField": function( a, b ){
[code]
},
"addMethod": function( a ){
[code]
},
"hasField": function( a ){
[code]
},
"hasMethod": function( a ){
[code]
},
"hasMultipleOfField": function( a ){
[code]
},
"hasMultipleOfMethod": function( a ){
[code]
},
"toString": function(){
[code]
},
"_getField": function( a ){
[code]
}
},
{
"name": "SomeClassWeNeverUse",
"superclass": undefined,
"fields": [],
"methods": [],
"getKey": function(){
[code]
},
"getSuperclass": function(){
[code]
},
"getFieldType": function( a ){
[code]
},
"getMethod": function( a ){
[code]
},
"addField": function( a, b ){
[code]
},
"addMethod": function( a ){
[code]
},
"hasField": function( a ){
[code]
},
"hasMethod": function( a ){
[code]
},
"hasMultipleOfField": function( a ){
[code]
},
"hasMultipleOfMethod": function( a ){
[code]
},
"toString": function(){
[code]
},
"_getField": function( a ){
[code]
}
}
],
"errors": [],
"currentClass": {
"name": "Prius",
"superclass": null,
"fields": [
{
"name": "mpg",
"type": "int"
}
],
"methods": [
{
"name": "start",
"returnType": "boolean",
"parameters": [],
"getKey": function( a ){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterType": function( a ){
[code]
},
"addParameter": function( a, b ){
[code]
},
"hasMultipleOfParameter": function( a ){
[code]
},
"equals": function( a ){
[code]
},
"toString": function(){
[code]
},
"_getParameter": function( a ){
[code]
},
"_hasParameter": function( a ){
[code]
},
"_hash": function(){
[code]
}
}
],
"getKey": function(){
[code]
},
"getSuperclass": function(){
[code]
},
"getFieldType": function( a ){
[code]
},
"getMethod": function( a ){
[code]
},
"addField": function( a, b ){
[code]
},
"addMethod": function( a ){
[code]
},
"hasField": function( a ){
[code]
},
"hasMethod": function( a ){
[code]
},
"hasMultipleOfField": function( a ){
[code]
},
"hasMultipleOfMethod": function( a ){
[code]
},
"toString": function(){
[code]
},
"_getField": function( a ){
[code]
}
},
"currentMethod": {
"name": "destroy",
"returnType": "boolean",
"parameters": [
{
"name": "car",
"type": "Prius"
}
],
"getKey": function( a ){
[code]
},
"getReturnType": function(){
[code]
},
"getParameterType": function( a ){
[code]
},
"addParameter": function( a, b ){
[code]
},
"hasMultipleOfParameter": function( a ){
[code]
},
"equals": function( a ){
[code]
},
"toString": function(){
[code]
},
"_getParameter": function( a ){
[code]
},
"_hasParameter": function( a ){
[code]
},
"_hash": function(){
[code]
}
},
"isPrimitiveType": function( a ){
[code]
},
"addClass": function( a ){
[code]
},
"getClass": function( a ){
[code]
},
"hasClass": function( a ){
[code]
},
"hasMultipleOfClass": function( a ){
[code]
},
"isClassInScopeForClass": function( a, b ){
[code]
},
"addError": function( a ){
[code]
},
"toString": function(){
[code]
},
"walkClassHierarchy": function( a, b ){
[code]
},
"_walkClassHierarchyHelper": function( a, b ){
[code]
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment