You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.8 KiB
60 lines
2.8 KiB
0.0.1: First test with a bison grammar and flex scanner. Process simple
|
|
statement as in the examples contained in the bison docs.
|
|
0.0.2: more work on grammar (add loops and conditionals, experiments),
|
|
also add tplparser.[ch] that serves for general purpose grammer
|
|
actions.
|
|
0.0.3: brought the grammar to a more or less final state.
|
|
Add several functions for procession different expressions.
|
|
Add variables.
|
|
Do some leak checking.
|
|
0.0.4: Finalize variables with adding support for arrays and hashes.
|
|
A word to variables:
|
|
- There is no need to declare a variable. As soon as one assigns
|
|
something to an identifier, that identifier holds that value.
|
|
- It is an error to use a variable that has no assigned value
|
|
within an expression.
|
|
- Assigning a new value to a variable simply overwrites its
|
|
previous content. There is no way to recover the previous
|
|
content.
|
|
- The above is also true if the variable was an array or hash.
|
|
- Variables can be of type INT, FLOAT or STRING. If you use
|
|
Variables or values of different type within an expression
|
|
implicit casts are done. For rules of implicit casts see below.
|
|
- There is actually no way to explicitly cast a variable, but that
|
|
may change in future.
|
|
- Rules for implicit casts are:
|
|
* normally the first operand of an expression specifies the
|
|
resulting type. All following operands are implicitly cast to
|
|
the type of the first operand.
|
|
* The only exception to this is if one of the operands is a
|
|
sting. Then all other operands are implicitly cast to string.
|
|
Again do some leak and memchecks.
|
|
|
|
0.0.5: implement explicit casts
|
|
put all things in a sane autobuild package.
|
|
called the whole thing: tepal "TEpal is a template PArsing Library"
|
|
|
|
0.0.6: 25/11/2006 lots of code cleanups to prepare to code to use AST
|
|
all expressions have now an own datatype. That reduces the grammar
|
|
file a lot (and makes it easier to keep it conflict-free) because
|
|
i do not need to distinguish between int, float and string in the
|
|
grammar right now.
|
|
Also expression computation has become much cleaned.
|
|
I also change the behaviour of freeing data. No function frees
|
|
any of it calling parameters. This results in a lot of
|
|
memory leaks right now. !!!IMPORTANT!!! That has to be fixed soon!
|
|
---
|
|
Already fixed some leaks, but some still remain.
|
|
|
|
26/11/2006 more leaks resolved
|
|
well, right now no leaks remain when i use tepal with my test
|
|
index.html
|
|
---
|
|
If an undefined variable is used an error message is given.
|
|
!!!FIXME!!! I need a way to maintain the complete variable identifier
|
|
to tell it with the error message.
|
|
|
|
0.0.7: AST implemented
|
|
a very big step is done. An ast is implemented. Everything works as
|
|
before, but right now to demontrate the functionality of the ast also
|
|
if statements are computed correctly.
|