Difference between revisions of "SoC Ideas WML Debugging"

From The Battle for Wesnoth Wiki
m
m
Line 13: Line 13:
 
  |suppresserrors=true
 
  |suppresserrors=true
 
  |noresultsheader=''There are no student proposals for this idea''
 
  |noresultsheader=''There are no student proposals for this idea''
  |category=Summer of Code 2010 Student Page&SoC Ideas WML Debugger
+
  |category=Summer of Code 2010 Student Page&SoC Ideas WML Debugging
 
  |include=#Description
 
  |include=#Description
 
  |mode=userformat
 
  |mode=userformat

Revision as of 19:40, 8 April 2010


This page is related to Summer of Code 2010
See the list of Summer of Code 2010 Ideas



This is a Summer of Code 2010 Idea



Description

WML Debugging Support

Page for the idea: SoC_Ideas_WML_Debugging

Improve the ways to debug Wesnoth's domain-specific language, WML.

There are 3 student proposals for this idea

fakedrake - WML Debugging

I am most interested in patching the code to output accurate line numbers along with the errors and improving the error messages themselves. After that i most probably will have time to make a schema system.
See GSoC-WMLDebugingSupport fakedrake for more information.

Awilkins - Improve Upon WML Debugging

I plan on fixing the incorrect error messages returned by the misuse of macros in WML files. The fixed error messages will display the accurate file and line number of where the macro was called incorrectly.
See SummerOfCodeProposal Awilkins for more information.

ctrlfreak - Improve WML debugging support

I plan to modify the debugging code to contain clearer error messages which pinpoint the exact location and line number where the errors occur. I also intend to improve the infrastructure for errors to make it more modularized and easily extendable/externally accessible.
See SummerOfCodeProposal ctrlfreak for more information.

Background

Wesnoth Markup Language (WML) is used to create most kinds of Wesnoth content: campaigns, scenarios, and so forth. WML is a fairly powerful language, but its debugging features often make it difficult to debug. Incorrect WML typically results in cryptic error messages or unusual and difficult to understand misbehavior.

Project

There are several possible steps in improving WML:

  • ensuring that any WML error results in an accurate line number for the error being displayed. This will require modifying the WML pre-processing system to properly map all expanded macros to their original lines.
  • improving the quality of error messages: trying to map unterminated strings and tags back to their starting positions.
  • schema system: a WML schema system would be developed which would enable WML documents to be validated to make sure they have correct attribute names with values that are formatted correctly.