Considera tale codice (diciamo che è C ++)
Foo::Bar.get().X
Come si dovrebbe mantenere l'AST per questo - come "albero" con radice a sinistra Foo(Bar(get(X))
, o con radice a destra (((Foo)Bar)get)X
? O forse come una struttura piatta (elenco)?
Il primo sembra più conveniente quando si risolvono i nomi, il secondo quando si lavora con esso come espressione.
Ho impostato il tag parsing
, ma mi sto chiedendo davvero dall'analisi semantica di POV (non esiste tale tag).