Is there a way to (on the fly) reduce Pegged parse results such as

C [0, 6]["int", "x", ";"]
 +-C.TranslationUnit [0, 6]["int", "x", ";"]
    +-C.ExternalDeclaration [0, 6]["int", "x", ";"]
       +-C.Declaration [0, 6]["int", "x", ";"]
          +-C.DeclarationSpecifiers [0, 4]["int"]
          |  +-C.TypeSpecifier [0, 4]["int"]
          +-C.InitDeclaratorList [4, 5]["x"]
             +-C.InitDeclarator [4, 5]["x"]
                +-C.Declarator [4, 5]["x"]
                   +-C.DirectDeclarator [4, 5]["x"]
                      +-C.Identifier [4, 5]["x"]

to

C [0, 6]["int", "x", ";"]
 +-C.TranslationUnit [0, 6]["int", "x", ";"]
    +-C.ExternalDeclaration [0, 6]["int", "x", ";"]
       +-C.Declaration [0, 6]["int", "x", ";"]
          +-C.TypeSpecifier [0, 4]["int"]
          +-C.Identifier [4, 5]["x"]

and still, when needed, be able query that C.Identifier is an instance of C.DirectDeclarator etc?

If not this seems like a cool feature to have ;)

I guess it would reduce memory requirements by about a magnitude right?

Reply via email to