0: PreambleBreak[1,1](---\n) 1: GroovyCode[2,1](import some.Thing // a comment...World!') 2: PreambleBreak[4,31](\n---\n) 3: RawText[6,1](\n) 4: ComponentOpen[7,1](<) 5: StringIdentifier[7,2](html) 6: ComponentClose[7,6](>) 7: RawText[7,7](\n ) 8: ComponentOpen[8,5](<) 9: StringIdentifier[8,6](head) 10: ComponentClose[8,10](>) 11: ClosingComponentOpen[8,11]() 14: RawText[8,18](\n ) 15: ComponentOpen[9,5](<) 16: StringIdentifier[9,6](body) 17: ComponentClose[9,10](>) 18: RawText[9,11](\n ) 19: ComponentOpen[10,9](<) 20: StringIdentifier[10,10](h1) 21: ComponentClose[10,12](>) 22: DollarScriptletOpen[10,13](${) 23: GroovyCode[10,15](greeting) 24: DollarScriptletClose[10,23](}) 25: ClosingComponentOpen[10,24]() 28: RawText[10,29](\n ) 29: ComponentOpen[11,9](<) 30: TypedIdentifier[11,10](groowt.view.web.Select) 31: ComponentClose[11,32](>) 32: RawText[11,33](\n ) 33: ComponentOpen[12,13](<) 34: TypedIdentifier[12,14](Case) 35: AttributeIdentifier[12,19](cond) 36: Equals[12,23](=) 37: ClosureAttrValueStart[12,24]({) 38: GroovyCode[12,25](isItTrue()) 39: ClosureAttrValueEnd[12,35](}) 40: ComponentClose[12,36](>) 41: RawText[12,37](\n ) 42: ComponentOpen[13,17](<) 43: StringIdentifier[13,18](p) 44: ComponentClose[13,19](>) 45: RawText[13,20](It's true! :)) 46: ClosingComponentOpen[13,33]() 49: RawText[13,37](\n ) 50: ClosingComponentOpen[14,13]() 53: RawText[14,20](\n ) 54: ComponentOpen[15,13](<) 55: TypedIdentifier[15,14](Default) 56: ComponentClose[15,21](>) 57: RawText[15,22](\n ) 58: ComponentOpen[16,17](<) 59: StringIdentifier[16,18](p) 60: ComponentClose[16,19](>) 61: RawText[16,20](It's false... :() 62: ClosingComponentOpen[16,36]() 65: RawText[16,40](\n ) 66: ClosingComponentOpen[17,13]() 69: RawText[17,23](\n ) 70: ClosingComponentOpen[18,9]() 73: RawText[18,34](\n ) 74: ClosingComponentOpen[19,5]() 77: RawText[19,12](\n) 78: ClosingComponentOpen[20,1]() 81: RawText[20,8](\n)