if (symbol.isOptional()) {
return factory.constructor(Factory.Symbol_Opt, symbolAST2SymbolConstructor(symbol.getSymbol(), lex, layout));
}
if (symbol.isStart()) {
Nonterminal nonterminal = symbol.getNonterminal();
return factory.constructor(Factory.Symbol_Start_Sort, factory.constructor(Factory.Symbol_Sort, factory.string(((Nonterminal.Lexical) nonterminal).getString())));
}
if (symbol.isNonterminal()) {
Nonterminal nonterminal = symbol.getNonterminal();
IString name = factory.string(((Nonterminal.Lexical) nonterminal).getString());
if (lex) {
return factory.constructor(Factory.Symbol_Lex, name);
}
else {