SoC Ideas Schema Validation2011
This page is related to Summer of Code 2011 |
See the list of Summer of Code 2011 Ideas |
This is a Summer of Code 2011 Idea |
Contents
Submitted proposals:
There is 1 submitted student proposal for this idea
Sytyi - WML Validator
The main idea of WML Validator is grammar based validator on C++ generating USER-FRIENDLY error messages in gcc style.
See GSoC 2011 Sytyi for more information.
Description
Schema Validation
Wesnoth supports a special language called WML ('Wesnoth markup language' ). To make it easier to check if a WML is correct, we want to add the support for WML schemas (descriptions of all possible tags and elements and a way to check if given WML file is correct according to schema) to Wesnoth.
More info at SoC_Ideas_Schema_Validation2011
Additional information
Sirp/Dave already added schemes to Frogatto [1](another project he's working on). This game is also based on WML but not entirely the same as Wesnoth.
Mordante added a comment based, scheme like documentation[2] to the new widget code which he uses to generate wiki pages [3] with a small python tool [4]. For the GCI 2010 project several improvements to the tool have been made to support other parts of WML as well. This tool is a glorified regex, for this task it will probably not suffice and needs to be a real parser.
The student will work on a comment based scheme definition that will be stored in the source code and extracted into scheme files. The current tool needs to be rewritten or extended and the current comments need to be changed to store information regarding validation.
The schemes will first be implemented for the new gui since that code already has some validation and already has quite a bit of comment. The gui engine also uses its own loading code which makes implementing the validation easier. Once that has been done more of the current engine will be converted.
The following demands are on the schemes :
- Needs to be comment style in the source.
- Use an extractor tool to generate the actual scheme files.
- Use an extractor tool to generate wiki documentation.
- Need to validate the WML and give useful error messages (the target audience are average users and not programmers)
[1] http://www.frogatto.com/
[2] http://www.wesnoth.org/devdocs/canvas_8cpp-source.html
[3] http://wesnoth.org/wiki/GUICanvasWML
[4] http://wiki.wesnoth.org/Wiki_grabber