Initially I thought <abstract> tags are necessary when referencing a spec contained within a separate Xeto file, but when I got rid of the <abstract> tag from some of the G36 equip specs, they still worked fine.
The description of the function fitsMatchAll() mentions that it matches "against all the non-abstract types currently in scope". I would love some detailed explanation regarding what exactly is the <abstract> tag for, and in what situations is it appropriate to use it.
Also, it would be helpful to get some more general documentation regarding creating and using Xeto specs.
Brian FrankTue 28 May
The abstract meta tag means pretty much exactly what it means in a language like Java. It means that it is a type that should not be used directly by instances. We use the terms abstract types vs concrete types. For instance G36Vav is an abstract type, no instance should say its type is just G36Vav. But G36ReheatVav is a concrete type, so an instance could say its type was G36ReheatVav.
Apoorv Khanuja Tue 28 May
Initially I thought <abstract> tags are necessary when referencing a spec contained within a separate Xeto file, but when I got rid of the <abstract> tag from some of the G36 equip specs, they still worked fine.
The description of the function fitsMatchAll() mentions that it matches "against all the non-abstract types currently in scope". I would love some detailed explanation regarding what exactly is the <abstract> tag for, and in what situations is it appropriate to use it.
Also, it would be helpful to get some more general documentation regarding creating and using Xeto specs.
Brian Frank Tue 28 May
The
abstract
meta tag means pretty much exactly what it means in a language like Java. It means that it is a type that should not be used directly by instances. We use the terms abstract types vs concrete types. For instance G36Vav is an abstract type, no instance should say its type is just G36Vav. But G36ReheatVav is a concrete type, so an instance could say its type was G36ReheatVav.