Getting incomplete parse tree

Mar 26 at 5:12 PM
Edited Mar 26 at 5:20 PM
I'm working on upgrading to newer version of Irony.

I am parsing the string:
ds:label
I had this grammar previously:
var colon = ToTerm(":");
var metricId = new NonTerminal("metricId");
var nsId = new NonTerminal("nsId");
var fmtOpt = new NonTerminal("fmtOpt");
var datasource = new IdentifierTerminal("datasource");
var name = new IdentifierTerminal("name");
fmtOpt.Rule = Empty | colon + format;
nsId.Rule = datasource + colon + name;
metricId.Rule = nsId + fmtOpt;

The AST as XML would give
<Node Element="metricId" NodeType="AstNode">
    <Node Element="datasource" NodeType="Token" Value="ds" ValueType="System.String"/>
    <Node Element="name" NodeType="Token" Value="label" ValueType="System.String"/>
    <Node Element="fmtOpt" NodeType="AstNode"/>
</Node>

Now using the new version of Irony I'm getting the parse tree as XML, and is giving
<Node Term="metricId">
    <Node Term="name" Terminal="IdentifierTerminal" Value="label"/>
    <Node Term="fmtOpt"/>
</Node>
Note that "datasource" is missing. I've tried a few different things, but I can't get the parser to give me the value for "datasource". I assume that I'm missing something that will be obvious in hindsight.