My (preferred) name is Caitlin Potter, but for the time being my legal given name is Dylan.
I've been a software developer since about 2005, primarily working with C, C++ and Perl (however, I do very much enjoy Ruby, and Java is nice too). I've written numerous programs and scripts for Synrevoice Technologies, and have contributed to some small independent projects here and there.
- audio signal processing
- 3D visualization
- artificial intelligence
- electronic music
Over the weekend, I wrote a set of about 31 conformance tests for a webvtt parser ([here], more recent ones should be posted [OSD600/webvtt/cue_settings|here]).
This is a relatively simple section of the draft, as far as I can tell. It can be illustrated essentially like this (BNF, no state machine diagram here) -- regular expressions have been included in some areas, eg /[0-9]+/. I'm not including the BNF for the other cue-settings here, this is just a start. The main point is that BNF will be helpful for writing scanners and parsers.
<webvtt-delimiter> ::= U+0020 | U+0009 <webvtt-delimiters> ::= <webvtt-delimiter> | <webvtt-delimiters> <webvtt-delimiter> <vertical-value> ::= "rl" | "lr" <vertical-setting> ::= "vertical" ":" <vertical-value> <line-value-pct> ::= /[0-9]+/ "%" <line-value-num> ::= /[0-9]+/ | "-" /[0-9]+/ <line-value> ::= <line-value-pct> | <line-value-num> <line-setting> ::= "line" ":" <line-value> <cue-setting> ::= <vertical-setting> | <line-setting> | <position-setting> | <size-setting> | <align-setting> <cue-settings> ::= <cue-setting> | <cue-settings> <webvtt-delimiters> <cue-setting>
Some implementation details for the parser:
The spec allows for multiple cue-settings per line (as shown in the BNF), however, the same line setting may not be repeated twice, which would not be caught by a parser generator based on the BNF alone, and would have to be checked for in code.
After a few nights of headaches trying to build mozilla-central on windows 7 with Visual Studio 2010, and not getting much in the way of help from IRC, I have finally got a preliminary build together, and am able to attach the VS debugger, which is nice.
Minoo Ziaei blogged a mozconfig which gave me some insight into the build system and helped me to get things working correctly.
I've blogged about it here
While I am still investigating exactly how the changes I made to my configuration allowed me to compile without -WX being passed to cl.exe, and will certainly explain this (because it is not obvious at all from the readme or documentation provided by mozilla), I will post about it again when I figure that out completely, for the benefit of other people who are new to the mozilla source.