diff modules/ast.tp @ 252:004946743678

Added code for building a method symbol table
author Michael Pavone <pavone@retrodev.com>
date Sat, 10 May 2014 19:11:01 -0700
parents b76f683d076e
children be224817a14b
line wrap: on
line diff
--- a/modules/ast.tp	Fri Apr 11 22:29:32 2014 -0700
+++ b/modules/ast.tp	Sat May 10 19:11:01 2014 -0700
@@ -36,6 +36,11 @@
 				string <- {
 					stringIndent: ""
 				}
+				fold:with <- :acc :fun {
+					acc <- fun: acc self
+					acc <- _left fold: acc with: fun
+					_right fold: acc with: fun
+				}
 			}
 		}
 
@@ -49,6 +54,9 @@
 				string <- {
 					stringIndent: ""
 				}
+				fold:with <- :acc :fun {
+					fun: acc self
+				}
 			}
 		}
 
@@ -89,6 +97,9 @@
 				string <- {
 					stringIndent: ""
 				}
+				fold:with <- :acc :fun {
+					fun: acc self
+				}
 			}
 		}
 
@@ -102,11 +113,15 @@
 				string <- {
 					stringIndent: ""
 				}
+				fold:with <- :acc :fun {
+					fun: acc self
+				}
 			}
 		}
 
 		funcall:withArgs:hasReceiver? <- :_tocall :_args :_receiver? {
 			#{
+				nodeType <- { _call }
 				tocall <- _tocall
 				args <- _args
 				hasReceiver? <- _receiver?
@@ -139,6 +154,12 @@
 				string <- {
 					stringIndent: ""
 				}
+				fold:with <- :acc :fun {
+					acc <- fun: acc self
+					_args fold: acc with: :acc el {
+						fun: acc el
+					}
+				}
 			}
 		}
 
@@ -155,6 +176,12 @@
 				string <- {
 					stringIndent: ""
 				}
+				fold:with <- :acc :fun {
+					acc <- fun: acc self
+					messages fold: acc with: :acc el {
+						fun: acc el
+					}
+				}
 			}
 		}
 
@@ -172,6 +199,12 @@
 				string <- {
 					stringIndent: ""
 				}
+				fold:with <- :acc :fun {
+					acc <- fun: acc self
+					els fold: acc with: :acc el {
+						fun: acc el
+					}
+				}
 			}
 		}
 
@@ -186,6 +219,11 @@
 				string <- {
 					stringIndent: ""
 				}
+				fold:with <- :acc :fun {
+					acc <- fun: acc self
+					acc <- fun: acc _sym
+					fun: acc _expr
+				}
 			}
 		}
 
@@ -207,6 +245,12 @@
 				string <- {
 					stringIndent: ""
 				}
+				fold:with <- :acc :fun {
+					acc <- fun: acc self
+					expressions fold: acc with: :acc el {
+						fun: acc el
+					}
+				}
 			}
 		}
 	}