I see that Sven refactored the compiler and added texprflags. Thanks Sven! I uploaded a new patch that takes advantage of texprflags.

/property-enumerator-4.patch/

On 31.10.2015 12:06, Jonas Maebe wrote:
* don't use the "is" operator unless there is absolutely no other way to achieve the same effect. In the compiler, every node has a "nodetype" field that can be used to determine the kind instead (which is much faster than "is"

Fixed with "enumeratorn" nodetype.

* I'm not sure such a "virtual node" is the best approach. I don't think we have that anywhere else in the compiler, so unless there is no cleaner way, we shouldn't introduce this concept (if some nodes are used differently from other nodes --other than the special error node--, then maintenance and reasoning becomes harder)

Nothing changed in this respect. I still use tenumeratornode.

* don't add extra (semi-)global variables such as the tscannerfile.inforin field unless there is absolutely no other way to achieve the same effect. It's usually a quick hack, and there are way too many of those in the compiler already (I've removed a number of them over the years, but there are plenty left)

Fixed with texprflags and forin parameter.

* like for all other node types, create a "tenumeratornodeclass = tclass of tenumeratornode" type, a "cenumeratornode: tenumeratornodeclass = tenumerator;" global variable and always use cenumeratornode.create() (so that the node class can be overridden by an architecture-specific class if necessary)

Implemented.

Ondrej
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to