diff options
author | Lev Walkin <vlm@lionet.info> | 2004-06-03 03:38:44 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2004-06-03 03:38:44 +0000 |
commit | f15320bf6b50a0c02636405561ac8323ae901abd (patch) | |
tree | 33461d45122896c6dde35f82f5c7d19b62004a6b /README | |
parent | 746cb60bbccf47019563665f4aec4b6c462c4163 (diff) |
Initial revision
Diffstat (limited to 'README')
-rw-r--r-- | README | 69 |
1 files changed, 69 insertions, 0 deletions
@@ -0,0 +1,69 @@ +WHAT TO READ? +============= + +For quick installation tips read INSTALL. + +For more complete documentation on this compiler and on using the +results of compilation please look into ./doc directory. + +An excellent book on ASN.1 is written by Olivier Dubuisson: +"ASN.1 Communication between heterogeneous systems", ISBN:0-12-6333361-0. + + +QUICK START +=========== + +After building [and installing] the compiler (see INSTALL), you may use +the asn1c command to compile the ASN.1 specification: + + asn1c <spec.asn1> + +If several specifications contain interdependencies, all of them must be +specified: + + asn1c <spec1.asn1> <spec2.asn1> ... + +The ./examples directory contains several ASN.1 modules and a script to +extract ASN.1 modules from RFC documents. To compile X.509 PKI module: + + ./asn1c/asn1c -P ./examples/*PKIX*93*.asn1 + +In this example, -P option is used to instruct the compiler to print the +compiled text on the standard output instead of creating multiple .c +and .h files for every ASN.1 type found inside the specified files. +This is useful for debugging and tests automation. + +The compiler -E and -EF options are used for testing the parser and +the semantic fixer, respectively. These options will instruct the compiler +to dump out the parsed (and fixed) ASN.1 specification as it was +"understood" by the compiler. It might be useful for checking +whether a particular syntactic construction is properly supported +by the compiler. + + asn1c -EF <spec-to-test.asn1> + + +MODEL OF OPERATION +================== + +The asn1c compiler works by processing the ASN.1 module specification +in several stages: +1. In the first stage, the ASN.1 file is parsed. + (Parsing produces an ASN.1 syntax tree for the subsequent levels.) +2. In the second stage, the syntax tree is "fixed". + (Fixing is done by checking the tree for semantic errors + and by transforming the tree into the canonical representation.) +3. In the third stage, the syntax tree is compiled into the target language. + +There are several command-line options reserved for printing the results +after each stage of operation: + + <parser> => print (-E) + <parser> => <fixer> => print (-E -F) + <parser> => <fixer> => <compiler> => print (-P) + <parser> => <fixer> => <compiler> => save-compiled [default] + + +-- +Lev Walkin +vlm@lionet.info |