May 17, 2006

AssignFields Macro

Another handy Boo macro:
class AssignFieldsMacro(AbstractAstMacro):

override def Expand(macro as MacroStatement):
ctor = (macro.ParentNode.ParentNode as Constructor)
b = Block()
for param in ctor.Parameters:
assign = BinaryExpression(
BinaryOperatorType.Assign,
ReferenceExpression("_" + param.Name),
ReferenceExpression(param.Name)
)
b.Add(ExpressionStatement(assign))
return b
This lets me do this:
class Foo:

[property(Name)]
_name as string
[property(Age)]
_age as int
[property(Food)]
_food as bool

def constructor(name as string, age as int, food as bool):
AssignFields
# inserts:
# _name = name
# _age = age
# _food = food

f = Foo("hello", 42, true)
print f.Name
print f.Age
print f.Food
certainly saves a bit of typing!

- No comments Not publicly viewable


Add a comment

You are not allowed to comment on this entry as it has restricted commenting permissions.

Google Ads

Search this blog

Most recent comments

  • I scratched my eye while i was holding some kind of plastic packaging.. Anyways the corner of the pl… by Ercan on this entry
  • About a year ago my contacts that i was wearing, i guess were fautly, because shortly after they wer… by Jon on this entry
  • I got shower gel in my eye 4 and a half days ago, and becasue i rubbed my eyes a lot, i have scratch… by Chris on this entry
  • This website may help http://www.webmd.com/eye–health/tc/Eye–Injuries–Home–Treatment by S on this entry
  • I somehow got dirt, or debris in my eye. The terrible pain sent me in a tailspin. I was afraid of sa… by Bobbi on this entry

Tags

May 2006

Mo Tu We Th Fr Sa Su
Apr |  Today  | Jun
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31            

Galleries

Blog archive

Loading…
Not signed in
Sign in

Powered by BlogBuilder
© MMXX