Inhalt
Topic:.readme_ZBNF.
pStyle=std tableStyle=stdTable
.
Topic:.readme_ZBNF.whyZbnf.
pStyle=std tableStyle=stdTable
If you should have a XML script, but you won't edit it elaborately, write the intrinsic content in plain text and convert it!
At example to get complexly ANT-Scripts:
If you have plain formatted text, a.e. from another tool-output, and you will process it with XML-techniques, convert it:
At example a bill of material from older computer software:
Why ZBNF ?
If you will translate a programming language in another one or you will extract some informations from Source code, you can parse the source text with ZBNF and write a translation in Java programming or with XSLT techniques. Therefore you also can implement a translator for an own DSL (Domain Specific Language):
An example is generating Reflection Informations in C or C++ from Header files.
Another example is build a XMI file from Headers and import it to an UML Modell.
The last but not least is a technique to access to data in Java programms. But the structure of data is described in C-Sources (Headerfiles, struct). Therefore Java code is generated from Headerfiles, using ByteDataAccess.java.
Topic:.readme_ZBNF..
pStyle=std tableStyle=stdTable
This download comes from http://sourceforge.net/projects/zbnf, Home-Internetpage is http://www.vishia.org/ZBNF.
For licence see licence.html.
Topic:.readme_ZBNF..
pStyle=std tableStyle=stdTable
There are some possibilities to post questions, hints or improvements on the sourceforge project page.
But you can also write your suggestions of improvement to my private email: hartmut.schorrig@vishia.de.
If you detect some mistakes in the english presentation, and you are a native speaker of english language, please send me a corrected version. If it is only a few corrected sentences, it may be nice to have them too. To find out the source please send also a part of the given wrong text. I'm not a native speaker. I think, the technical american version of english language is proper to use.
If you want to use some of this download as input for your own project, it may be fine to inform me. You have to use the LPGL licence with or without information of me. If you want to use any parts of this download with another licence as LPGL, especially without publishing, you have to contact me.
Topic:.readme_ZBNF..
pStyle=std tableStyle=stdTable
The whole content of this download, including the ZBNF-Parser and the zbnfjax is developed and substantially used under Windows. Than it is tested under Linux too.
All Java-programs are running without binary differences as well under Windows as under Linux. It should be run under a Macintosh- or any Unix-environment too. - But all command scripts are strong incompatible between Windows and the other systems. There are fine differences in the syntax, which prevent a commonly using of the scripts. Scripts (Windows-batch-files, Unix-bash-shell-scripts) are used to start the execution of the Java-programs. This start scripts are contained twice in the examples of the download and twice in the zbnfjax.
Topic:.readme_ZBNF.content.
pStyle=std tableStyle=stdTable
This download contains the pure ZBNF-Definition and -Parser with sources and examples and the zbnfjax, which uses ZBNF, but SAXON, JDOM and ANT too, with some examples.
Topic:.readme_ZBNF.content..
pStyle=std tableStyle=stdTable
The Main description for ZBNF is provided in english language. This description defines the qualities of the ZBNF. The Definition of ZBNF may be used in other contexts as the here provided ZBNF-parser too. It should be recognized as a independently language definition.
Topic:.readme_ZBNF.content..
pStyle=std tableStyle=stdTable
The ZBNF-Parser is supplied as Executable (jar-File, Java Version 1.6 / 6 or higher is required) to transform any textual inputs to XML, and as Java-Sources to use in Java-applications, which may be postprocessing the parsers result. This solution is independent from other organisations and companies. Only a Java system should be present: The Java-Runtime-Environment (http://java.com/en/download/index.jsp) to run programs, which uses ZBNF, and the Java-development environment (http://www.java.sun.com) to compile Java-Programs.
The jar-file is contained in zbnfjax/Zbnf.jar, though it isn't depend from other parts of zbnfjax. The user can post-process the XML-result with any XML-system after whish.
The srcJava_Zbnf-Folder contains the Java-Sources for Zbnf. There are all sources for Zbnf, not more, not less. The compilation of this sources
to the Zbnf.jar is controlled with the make/makejar_Zbnf.bat
The Conversion text to XML using ZBNF (Zbnf2Xml) is described yet only in german language in docu/Zbnf2Xml.html, but see the software documentation javadoc:_org/vishia/zbnf/Zbnf2Xml.
The invocation of the parser in a Java environment is described yet only in german language in docu/ZbnfJava.html, but see the software documentation javadoc:_org/vishia/zbnf/ZbnfJavaOutput.
Topic:.readme_ZBNF.content..
pStyle=std tableStyle=stdTable
The core examples only use the ZBNF-Parser and additional Java-sources to demonstrate post-processing. This examples are present
to explain and demonstrate, but also to test the parser. Older versions of the *.reference-Outputs may be compared with newer invocations to check the consistence respectively changes.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The BillOfMaterial is a basicly example to explain ZBNF.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The CheaderParsing shows a complexly ZBNF-syntax scripts to parse Headerfiles from C-language. The same script is used for examples_ZBNF_core/Header2Reflection/readme.html and for examples_XML/Header2XMI/readme.html.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The JavaParsing shows another complexly ZBNF-syntax scripts to parse Java-Files. The same script is used for examples_XML/Java2XMI/readme.html and for Java2C.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The testAllFeatures Contains some scripts, which should be test all features of ZBNF. A comparision with the reference-outputs can be done after changes in the sources of ZBNF or if environment conditions are modified.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The testEncodings shows how encoding works.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The VhdlScript is another application. The Java-src-example shows, how a VHDL-inputscript is parsed and translated to Headerfiles. The VHDL-script contains some constant definitions of ports for an FPGA-design and is used in development of FPGA. From this source data a header file is produced which contains the access informations to the FPGA in an address space of a microprocessor. It is typically for embedded control.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The Header2Reflection is a ready-to-use-executable contained in the zbnfjax-directory. This Translator reads Headerfiles from a C or C++ development
and generates so named Reflection-C-files. The generated reflection files can be added to the users C/C++-Project to access
data in a symbolic way. The user needs parts of the CRuntimeJavalike-C/C++-Sourcefiles additional to use this concept, see
Jc-Reflection. This download doesn't contains this complex source base, it contains only the Translator header2Reflection.jar with its sources. That is because the translator is a pure ZBNF application too.
Topic:.readme_ZBNF.content..
pStyle=std tableStyle=stdTable
The zbnfjax-Folder contains scripts and jars for the usage of ZBNF: The ZBNF-parser is settled mostly in a XML-environment. ZBNF translates text-files to XML, further processing is done using XSLT. The zbnfjax is a complexly ready to use folder for some applications such as Zmake and Documentation generation. The usage of the most tools needs SAXON as XSLT-Translator and JDOM as Java-source base for processing XML-Files. Both are not part of this download. The user, who want to use the XML-processing features should download this parts from its originally internet pages. See below.
All Examples in this download are able to use as test bench. For dayly working only the zbnfjax-Folder are needed. You may disposed this directory at a suitable.position in your file system. The file zbnfjax/batch_template/setZBNFJAX_HOME.bat should be copied in a directory, which is obtainable by the systems PATH. Its content is to be adapted to your system environment.
The additional downloads from SAXON and JDOM are disposed at a adequate directory. It may be suitable to put this files in
the zbnfjax-folder too.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
XSL-Scripts, ZBNF-Scripts. Batches and the Zmake.jar for Zmake, the standard Zmake-System is supplied here.
XSL-Scripts, ZBNF-Scripts, Batches and the Xslt.jar for XML-Documentation-Generation.
XSL-Scripts, ZBNF-Scripts, Batches for conversion to XMI from Headerfiles and Java-Files. The XMI-File presents an UML-Model and it can be inputted to any UML-Tool.
Xslt.jar for free XSL-Translation using mulitple inputs and Wikiformat-Conversion.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The XSLT-translation uses the SAXON-XSLT. The zbnfjax is tested with the last version of Saxon-B, available under http://saxon.sourceforge.net in chapter Older Products as open-source-product. Saxonica has changed its licence conditions. In the past the Saxon-B was open-source, but Saxon-SA
was the commercial product including Xschema and others. The newer versions knows three levels of licence: The open-source
Home Edition, a low-cost Professional Edition and a Enterprise-Edition. The new Home-Edition doesn't support the <saxon:call-template ... instruction, which is used in the Xslt-Scripts. Therefore the last Saxon-B is proper for using zbnfjax in open-source-conditions.
But it is recommended to use the newer Saxon's commercial editions if further support of saxon may be need. See http://www.saxonica.com.
The JDOM-Java-Sources or the jdom.jar, which are available as open source under http://www.jdom.org.
For using ANT, either an eclipse installation can be used (http://www.eclipse.org) or the original from Apache can be used, see http://ant.apache.org.
Topic:.readme_ZBNF.content..
pStyle=std tableStyle=stdTable
The examples are present to explain and demonstrate the usage, but also to test the tool chain. Older versions of the *.reference-Outputs may be compared with newer invocations to check the consistence respectively changes.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The DocuGenerationViaXML is contained here completly. The scripts and jars are contained exclusively in the zbnfjax-Folder. The description is visible at www.vishia.org/XmlDocu in german language. The example is used to generate the documentation of this download inclusively this documentation. The
Sources of all readme-files are given here as plain texts.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The Zmake is contained here completly. The scripts and jars are contained exclusively in the zbnfjax-Folder. The description is visible at www.vishia.org/Zmake in german language.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The ByteDataAccessJava describes an Example to access byte data which are given in a structure in file described in C-language-header-files.ZBNF helps to generate Java-Sources, which are useful to access such data in byte[]-arrays in Java. The byte[]-arrays are contents (read from files, got from socket-communication data, write in files or translated with sockets). The script and batch-file to do the generation are contained in zbnfjax. This directory contains a example and the test base for the scripts. See also www.vishia.org/Java/indexByteDataAccess.html
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The Header2XMI contains examples to generate an XMI-File for UML-Model-Oriented-Development. The script and batchfile to do the generation are contained in zbnfjax. This directory contains a example and the test base for the scripts.
Topic:.readme_ZBNF.content...
pStyle=std tableStyle=stdTable
The Java2XMI is the counterpart to generate an XMI-File for UML-Model-Oriented-Development from a Java base. The script and batchfile to do the generation are contained in zbnfjax. This directory contains all files to generate an UML-Model from the Java-Sources of ZBNF. A project in Rhapsody are included. To use this project, you need a Rhapsody software and licence. It is able to download (evluation licence) from http://www.ibm.com/developerworks/downloads/r/rhapsodydeveloper/learn.html
Topic:.readme_ZBNF..
pStyle=std tableStyle=stdTable
The last version of ZBNF on sourceforge was published on april-04, 2008. Some more versions are published on the vishia_Downloadpage. But the software was used in professional. Some corrections were done, the software is stable. Therefore this version is designated as
Version 1.0
ready to use.
The differences to the last publishing on sourceforge for one and a half years are:
Topic:.readme_ZBNF...
pStyle=std tableStyle=stdTable
The last version on sourceforge were the Version 0.8.
new feature: Designation of a option written as [>....]. If the syntax inside square brackets doesn't match, the whole parsing process is aborted. This feature helps to abort the
whole parsing process immediately, if a requested syntax doesn't match. It is used especially after keywords, which required
a adequate syntax.
new feature: Designation of a option written as [!....]. The syntax inside is expected, but not converted. It is possible to use to check a syntax, but the conversion is done after
them.
correction: The syntax <#f*factor...> is now implemented.
fine tuning: syntax <toLastChar:CHARS?...> and <toLastCharIncl:CHARS?...> is now favored against the cryptograhic <*<<CHARS?...> and <+<<CHARS?...>.
new feature: The ZBNF-script may contain entries like
?semantic/subsemantic::="help text.".
This is a preparation for online-helping while editing ZBNF-syntax-scripts in an eclipse plugin. Than all informations should be contained in the syntax script.
no-more-supported: There was some possibilities to transport a semantic result in another component over some levels. But this feature doesn't work correct any times. Now it is more simplified. Only a transport in the current level of nesting semantic is supported. An example is the association of a type to all variable definitions if there is written in C or Java:
float a,b,c;
The Syntax for this case is
<type?-?> {<variableInstance?+variableDefinition> ? , }
The type is parsed one time, it is associated to all variableDefinition. More complexity isn't necessary.
improved: Some reports are improved.
Topic:.readme_ZBNF...
pStyle=std tableStyle=stdTable
The directory tree zbnfjax was supplied in the past inside the enhanced examples/Xml_Toolbase. Now the folder zbnfjax is arranged in the main tree of ZBNF. The zbnfjax are now an official component of the ZBNF-download on sourceforge now. It means, all changes are reported and the performances
are able to track, it isn't only an example.
The content of zbnfjax is supplied the first one with this conventions, therefore no change report is given yet, first one in the next revision.