Mercurial > ~dholland > hg > ag > index.cgi
diff tests/agcl/parsifal/reg.syn @ 0:13d2b8934445
Import AnaGram (near-)release tree into Mercurial.
author | David A. Holland |
---|---|
date | Sat, 22 Dec 2007 17:52:45 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/agcl/parsifal/reg.syn Sat Dec 22 17:52:45 2007 -0500 @@ -0,0 +1,76 @@ +/* + * AnaGram, A System for Syntax Directed Programming + * Copyright 1993-2002 Parsifal Software. All Rights Reserved. + * See the file COPYING for license and usage terms. + */ + +eof = 0 +blank = ' ' + '\t' +name char = ~(eof + '[' + ']' + '\\' + '\n' + '"' + '@') +digit = '0-9' + + +reg file $ + -> reg line?..., eof + +reg line + -> title, eol + -> path, eol + -> key, eol + +eol + ->'\n' + -> eol, '\n' + +name + -> name char + -> name, name char + +title + -> name + +path + -> '[', path char?..., ']' + +path char + -> ~(eof + ']' + '\\' + '\n' + '@') + -> '\\', ~eof + +string + -> '"', string char?..., '"' + +string char + -> ~(eof + '"' + '\\') + -> '\\', ~eof + + key + -> string, '=', value + -> '@', '=', value + + value + -> string + -> hex data + -> "dword:", hex word + +hex data + -> "hex", ['(', hex word, ')'], ':', hex bytes? + +hex bytes + -> hex byte + -> hex bytes, separator, hex byte + +separator + -> ',' + -> ',', "\\\n", ' '?... + +hex byte + -> hex digit, hex digit + +hex digit + -> '0-9' + -> 'a-f' + +hex word + -> hex digit + -> hex word, hex digit +