claco / tt.net
- Source
- Commits
- Network (1)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
tt.net /
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Wed May 27 19:07:39 -0700 2009 | |
| |
LICENSE | Wed May 27 19:35:05 -0700 2009 | |
| |
README | ||
| |
TODO | ||
| |
TT.Tests/ | Fri Jun 12 18:37:36 -0700 2009 | |
| |
TT.sln | ||
| |
TT/ | Fri Jun 12 18:37:36 -0700 2009 | |
| |
build.bat | Wed May 27 19:07:39 -0700 2009 | |
| |
lib/ |
README
Welcome to my bizarre attempt to use Template Toolkit templates with .NET. My ultimate goal is to turn this into a
ViewEngine for ASP.NET MVC
Rather than writing my own parser/lexer, I'm attempting to use ANTLR as the Parser/Lexer grammer which outputs an AST.
The AST is then translated into C# using StringBuilder as part of ANTLR itself. The resulting source is compiled and
run.
I chose to use Lexer/Parser->AST->Template assuming that once the grammar is written, we can use the parser to ouput
VB.NET or any other language using the appropriate templates.
I'm starting simple (GET/SET) and working may out from there. Something should be easy. Some things fill be harder
(FILTER), and some things won't translate at all (PERL blocks).
P.S. I have no clue what I'm doing. Most of this stuff was way over my head when I started, but somehow I have some
simple syntac working all the way through the process. :-)
WHAT'S WORKING?
- implicit variable get [% variable %]
- explicit variable get [% GET variable %]
- variable fallback from Process(data) to Settings(variables)
- implicit variable set [% variable = x %], where x is string, number, decimal
- explicit variable set [% SET variable = x %], where x is string, number, decimal
- set defaults [% DEFAULT variable = x %], where x is string, number, decimal
- multiple defaults in one block
[% DEFAULT
foo = 1
bar = 'baz'
baz = 2.34
%]
- multiple sets in one block
[% SET
foo = 1
bar = 'baz'
baz = 2.34
%]
- basic if statement [% IF variable %] [% variable %] [% END %]
- basic foreach statment [% FOREACH i IN variable %] [% i %] [% END %]
