sclass GInterpretable { S text; S ruleID; // can be multiple IDs with + *() {} *(S *text) {} *(S *text, S *ruleID) {} toString { ret text; } }