Abstract syntax: first version implemented