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
+