view samples/reflect.tp @ 364:e44f65abaf0e

Support labels in non-branch instructions. String literals now work and so does the llhello sample
author Michael Pavone <pavone@retrodev.com>
date Sun, 26 Apr 2015 11:16:14 -0700
parents b74956a2196f
children
line wrap: on
line source

#{
	main <- {
		o <- #{
			foo <- 42
			bar <- 39
			doStuff <- :blah {
				foo <- bar * blah
				foo
			}
			qux <- { 1337 }
			+ <- :right {
				foo + right
			}
		}
		print: (string: (object does: o understand?: "+")) . "\n"
		print: (string: (object does: o understand?: "foobar")) . "\n"
		print: (string: (object sendMessage: "qux" to: o)) . "\n"
		print: "Messages understood:\n"
		foreach: (object understoodBy: o) :idx el{
			print: el . "\n"
		}
		print: "\nProperties of:\n"
		foreach: (object propertiesOf: o) :idx el{
			print: el . "\n"
		}
		0
	}
}