[armedbear-cvs] r12523 - trunk/abcl/doc/design/pathnames
Mark Evenson
mevenson at common-lisp.net
Thu Mar 11 08:42:51 UTC 2010
Author: mevenson
Date: Thu Mar 11 03:42:48 2010
New Revision: 12523
Log:
Add informal BNF grammar description for JAR PATHNAME syntax.
Modified:
trunk/abcl/doc/design/pathnames/abcl-jar-url.text
Modified: trunk/abcl/doc/design/pathnames/abcl-jar-url.text
==============================================================================
--- trunk/abcl/doc/design/pathnames/abcl-jar-url.text (original)
+++ trunk/abcl/doc/design/pathnames/abcl-jar-url.text Thu Mar 11 03:42:48 2010
@@ -89,6 +89,34 @@
* The DEVICE PATHNAME list of enclosing JARs runs from outermost to
innermost.
+* The DIRECTORY component of a JAR PATHNAME should be a list starting
+ with the :RELATIVE keyword, as hierarchial entries in jar files
+ are of the form "foo/bar/a.lisp" not "/foo/bar/a.lisp"
+
+BNF
+---
+
+An incomplete BNF of the syntax of JAR PATHNAME would be:
+
+ JAR-PATHNAME ::= "jar:" URL "!/" [ ENTRY ]
+
+ URL ::= <URL parsable via java.net.URL.URL()>
+ | JAR-FILE-PATHNAME
+
+ JAR-FILE-PATHNAME ::= "jar:" "file:" JAR-NAMESTRING "!/" [ ENTRY ]
+
+ JAR-NAMESTRING ::= ABSOLUTE-FILE-NAMESTRING
+ | RELATIVE-FILE-NAMESTRING
+
+ ENTRY ::= [ DIRECTORY "/"] * FILE
+
+
+### Notes
+
+1. ABSOLUTE-FILE-NAMESTRING and RELATIVE-FILE-NAMESTRING use the
+local filesystem conventions, meaning that on Windows this could
+contain '\' as the directory separator, while an ENTRY always uses '/'
+to separate directories within the jar proper.
Use Cases
More information about the armedbear-cvs
mailing list