Dylan Potter (talk | contribs) (→OSD600) |
Dylan Potter (talk | contribs) (→OSD600) |
||
(One intermediate revision by the same user not shown) | |||
Line 20: | Line 20: | ||
== OSD600 == | == OSD600 == | ||
+ | <u>09/25/2012:</u> | ||
+ | |||
+ | |||
+ | |||
+ | Over the weekend, I wrote a set of about 31 conformance tests for a webvtt parser ([https://github.com/downloads/caitp/webvtt/caitp-cue_settings_tests-09232012.tgz 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. | ||
+ | |||
+ | |||
+ | |||
+ | <pre> | ||
+ | <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> | ||
+ | |||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 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. | ||
+ | |||
+ | |||
+ | |||
+ | |||
<u>09/10/2012:</u> | <u>09/10/2012:</u> | ||
Latest revision as of 16:12, 25 September 2012
Me
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.
Interests
- audio signal processing
- 3D visualization
- artificial intelligence
- electronic music
Links
OSD600
09/25/2012:
Over the weekend, I wrote a set of about 31 conformance tests for a webvtt parser (here, more recent ones should be posted 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.
09/10/2012:
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.