author | wenzelm |
Sun, 27 Jul 2014 15:40:19 +0200 | |
changeset 57821 | f11f3d7589b1 |
parent 46846 | 9e99afaade17 |
child 57797 | 7d319d6ccde0 |
permissions | -rw-r--r-- |
46844 | 1 |
The TPTP parser is generated using ML-Yacc and relies on the ML-Yacc |
2 |
library to function. The ML-Yacc library is an external piece of |
|
46846
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
3 |
software that needs a small modification for use in Isabelle. The |
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
4 |
relationship between Isabelle and ML-Yacc is similar to that with |
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
5 |
Metis (see src/Tools/Metis). |
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
6 |
|
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
7 |
The file "make_tptp_parser" generates the TPTP parser and patches it |
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
8 |
to conform to Isabelle's naming conventions. |
46844 | 9 |
|
10 |
In order to generate the parser from its lex/yacc definition you need |
|
11 |
to have the ML-Yacc binaries. The sources can be downloaded via SVN as |
|
12 |
follows: |
|
13 |
||
14 |
svn co --username anonsvn \ |
|
15 |
https://smlnj-gforge.cs.uchicago.edu/svn/smlnj/ml-yacc/trunk ml-yacc |
|
16 |
||
17 |
ML-Yacc is usually distributed with Standard ML of New Jersey, and its |
|
18 |
binaries can also be obtained as packages for some distributions of |
|
46846
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
19 |
Linux. The script "make_tptp_parser" will produce a file called |
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
20 |
tptp_lexyacc.ML -- this is a compilation of the SML files (generated |
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
21 |
by ML-Yacc) making up the TPTP parser. |
46844 | 22 |
|
23 |
The generated parser needs ML-Yacc's library. This is distributed with |
|
46846
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
24 |
ML-Yacc's source code, in the lib/ directory. The ML-Yacc library |
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
25 |
cannot be used directly and must be patched. The script |
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
26 |
"make_mlyacclib" takes the ML-Yacc library (for instance, as |
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
27 |
downloaded from the ML-Yacc repo) and produces the file ml_yacc_lib.ML |
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
28 |
-- this is a compilation of slightly modified files making up |
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
29 |
ML-Yacc's library. |
46844 | 30 |
|
31 |
Nik Sultana |
|
46846
9e99afaade17
split make_tptp_parser into two scripts, for parser and lib respectively;
sultana
parents:
46844
diff
changeset
|
32 |
9th March 2012 |