Show Changes Show Changes
Print Print
Recent Changes Recent Changes
Subscriptions Subscriptions
Lost and Found Lost and Found
Find References Find References
Rename Rename
Administration Page Administration Page
Search

History

2/7/2008 12:04:12 PM
-66.78.121.44
2/7/2008 11:43:23 AM
-66.78.121.44
2/7/2008 11:42:40 AM
-66.78.121.44
List all versions List all versions

RSS feed for the FlexWiki namespace

Flex Wiki Parser Architecture
.
Summary
See_Also

Wiki Object Model

There is a Wiki Object Model (WOM) which was greatly inspired by XLinq object model to represent parsed result. It is also used for intermidiate representation for grammar. WOM consists of the following classes:

Parser Classes

While WOM can be considered as almost complete. I would estimate parser classes to be about 60% done. Parser is targeting to implement something similar to Parsing Expression Grammar" (PEG) (see Wikipedia). Which is regular expressions with non-terminals (rules). It is very powerful and can cover broader range of grammars comparing with LL or LR, but price you pay is higher memory utilization and slower speed, which I believe is not so significant issue today comparing with situation 20-30 years ago. The implementation which I do is inspired by regular expression implementation in Rotor.

NUnit Tests

Number of NUnit tests to test behavior of classes listed above. I have implemented extension to NUnit to allow to provide tests in XML.

Additional Work

So, this is an overview of current state of the parser. I am currently refactoring/implementing ParserEngineProcessor. After that I will need to implement ParserXmlGrammarReader class and create an XSLT to translate WOM to XHTML.

Not logged in. Log in

Welcome to the home of FlexWiki, a collaboration tool, based on WikiWiki, implemented using Microsoft .NET technologies

This is FlexWiki, an open source wiki engine.

This site supports the new NoFollow anti-spam initiative.
Change Style

Recent Topics