1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/** Rules that return more than a single value must return an object
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  containing all the values.  Besides the properties defined in
3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  RuleLabelScope.predefinedRulePropertiesScope there may be user-defined
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  return values.  This class simply defines the minimum properties that
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  are always defined and methods to access the others that might be
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  available depending on output option such as template and tree.
7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  Note text is not an actual property of the return value, it is computed
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  from start and stop using the input stream's toString() method.  I
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  could add a ctor to this so that we can pass in and store the input
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  stream, but I'm not sure we want to do that.  It would seem to be undefined
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  to get the .text property anyway if the rule matches tokens from multiple
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  input streams.
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  I do not use getters for fields of objects that are used simply to
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  group values such as this aggregate.  The getters/setters are there to
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  satisfy the superclass interface.
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverorg.antlr.runtime.ParserRuleReturnScope = function() {};
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverorg.antlr.runtime.RuleReturnScope = function() {};
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverorg.antlr.lang.extend(org.antlr.runtime.ParserRuleReturnScope,
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                      org.antlr.runtime.RuleReturnScope,
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    getStart: function() { return this.start; },
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    getStop: function() { return this.stop; }
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver});
28