view src/kernel.tp @ 222:c6e321a538d4

Implemented more of the grammar. Dealt with some name conflicts along the way.
author Michael Pavone <pavone@retrodev.com>
date Sun, 29 Dec 2013 13:08:01 -0800
parents 96e21f525b78
children
line wrap: on
line source

/*
array <- #{
	new <- {
		length <- 0
		#{
			each <- :fun {
				repeat: length :idx {
					fun: idx (get: idx)
				}
			}
		}
	}
}
*/

true <- #{
  if:else <- :self trueblock :elseblock {
    trueblock:
  }
}

false <- #{
  if:else <- :self trueblock :elseblock {
    elseblock:
  }
}

filter <- :arr pred {
	output <- arr slice: 0 0
	each: arr :idx el {
		if: (pred: el) {
			output push: el
		} else: {}
	}
	output
}