⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 read.me

📁 一个Pascal语言分析器
💻 ME
📖 第 1 页 / 共 2 页
字号:
Subdirectory "Docs"    Documentation

  COCO.USE             Notes on the use of Coco
  COCOL                The compiler description language
  CHANGES              Differences between Oberon and Modula-2 versions

Subdirectories "Frames"  and "IsoFrame"  Specimen frame files.  One set is
for generating parsers to be used with the supplied FileIO library, the
other set is for generating parsers to be used with an ISO I/O library.

  SCANNER.FRM          Frame from which the standard scanner is generated
  SCANNERC.FRM         Frame from which a scanner can be generated
                       allowing the retrieval of comment text
  SCANNER2.FRM         Frame from which a more efficient scanner can be
                       generated for short source files
  PARSER.FRM           Frame from which the parser is generated
  COMPILER.FRM         Frame from which a driver compiler may be generated
                       (tabs in the listing files are retained)
  COMPILE2.FRM         Frame from which a driver compiler may be generated
                       (tabs in the listing files are expanded)

Subdirectory "Sources" and its subdirectories - Sources for Coco/R

  CR.MOD               Main program
  CR.ATG               Fully attributed grammar of Coco/R
  CR0.ATG              Simplifed grammar of Coco/R (no attributes)
  CRE.TXT              Error numbers and corresponding error message texts
  CRS.DEF + MOD        Scanner (generated by Coco/R from CR.ATG)
  CRP.DEF + MOD        Parser (generated by Coco/R from CR.ATG)
                       (The JPI specific version of CRP.MOD is in the
                       Sources\JPI directory)
  CRT.DEF + MOD        Symbol table, top-down graph, grammar tests.
  CRA.DEF + MOD        Generation of the scanner.
  CRX.DEF + MOD        Generation of the parser.
  CRC.DEF + MOD        Generation of the compiler driver.
  CRG.DEF + MOD        Module giving symbolic names for scanner/parser
                       to use (Generated with $N pragma)
  FileIO.DEF           General input output library definition
  FileIO.MOD           Source for FileIO.MOD appears in compiler specific
                       subdirectories - Sources\JPI Sources\FST Sources\STO
                       Sources\LOG or Sources\GPM etc
  Sets.DEF + MOD       Various set operations
  CR.FRM               Frame from which CR.MOD may be regenerated ($C pragma)

Subdirectory "Taste"   A tiny compiler and utilities as examples of Coco/R

  Taste.ATG            Compiler description
  Taste.FRM            Frame from which TASTE.MOD may be generated ($C pragma)
  TC.DEF + MOD         Code generator/interpreter
  TL.DEF + MOD         Symbol table handler

  Pretty.ATG           Pretty printer description
  Pretty.FRM           Frame from which PRETTY.MOD may be generated ($C pragma)
  Prettier.DEF and MOD Auxiliary pretty printing routines

  XRef.ATG             Cross referencer description
  Xref.FRM             Frame from which XREF.MOD may be generated ($C pragma)
  CrossRef.DEF + MOD   Auxiliary table handlers

  *.TAS                Example input files

Subdirectory "EBNF"    An EBNF cross referencer as an example of Coco/R

  EBNF.ATG             Compiler description
  EBNF.FRM             Frame from which EBNF.MOD may be generated ($C pragma)

  CrossRef.DEF + MOD   Auxiliary table handlers

  BNF.*                Example input files

Subdirectory "Pretty" and "ISOPretty"  A Modula-2 pretty printer

  ISOMOD2.ATG          Pretty printer description (ISO M-2)
  PIMMOD2.ATG          Pretty printer description (PIM M-2)
  MOD2.FRM             Frame from which MOD2.MOD may be generated ($C pragma)
  Prettier.DEF and MOD Auxiliary pretty printing routines
  Scanner.FRM          Special Scanner frame file to handle comments

Subdirectory "Sample"  Further sample grammars for Coco/R

--- These are not necesarily suitable for immediate use.  They may need
    massaging and adaptation before sensible parsers can be constructed

  ADACS.ATG            Subset Ada grammar based on Fischer and LeBlanc
  CALC.ATG             Simple calculator grammar based on Dobler
  CDECL.ATG            Decipher complicated C declarations
  CLANG1.ATG           Clang level 1 grammar based on Terry
  CLANG2.ATG           Clang prettyprinter based on Terry
  EXPR.ATG             Simple expression grammar
  ADACS.ATG            Subset Ada grammar based on Fisher and LeBlanc
  MICROADA.ATG         Subset Ada grammar based on Dobler
  MOD2.ATG             Modula-2 grammar based on Dobler's
  PIMMOD2.ATG          Modula-2 grammar based on PIM
  PASCAL.ATG           Jensen and Wirth Pascal
  C.ATG                Grammar for a subset of C
  CMINUS.ATG           Simple C like language
  HTML.ATG             Subset of early versions of HTML for Web pages
  OBERON.ATG           Grammar for Oberon
  UMBRIEL1.ATG         Grammar for Umbriel
  UMBRIEL2.ATG         Grammar for Umbriel
  TOPSY0.ATG           Another simple C like language


References
==========

For further information on the use and implementation of Coco refer to

  Moessenboeck, H. : A Generator for Fast Compiler Front-Ends.
  Report 127, Dept. Informatik, ETH Zurich (1990)

  Moessenboeck, H. : A generator for production quality compilers.
  Proc 3rd Int'l Workshop on Compiler-Compilers, Schwerin FRG, 1990

Related insight may be gained from

  Rechenberg, P and Moessenboeck, H. : A compiler generator for
  microcomputers (Prentice-Hall, 1989)

whichs describes Alex and Coco, predecessors of Coco/R, and from

  Dobler, H. and Pirklbauer, P.  : Coco-2, a new Compiler Compiler
  (ACM SIGPLAN Notices, 25(5), 82-90, May 1990)

  Dobler, H. : Top-down Parsing in Coco-2
  (ACM SIGPLAN Notices, 26(3), 79-87, March 1991)

which describe Coco-2, another derivative of the original Coco.

A textbook making extensive use of Coco/R is

  Terry, P.D. : Compilers and Compiler Generators - an introduction with C++
  (ITCP, London, 1997)

This book contains numerous case studies; in spite of the title, the case
studies are supplied in machine readable form for users of any one of
Modula-2, Pascal and C/C++.  These sources are also available by anonymous
ftp from

      cs.ru.ac.za:/pub/languages

or point your browser at the textbook home page

      http://cs.ru.ac.za/homes/cspt/compbook.htm

Licensing
=========

The Modula-2 version of Coco/R is not a public domain program.  It is being
distributed as Shareware.  This means that you are encouraged to make
unmodified copies of the software and documentation for your own evaluation,
and for others to try, but you may not sell it, or distribute it in
connection with any other product or service.

Should you find Coco/R to be useful, you are invited to become a registered
user, by sending your name and address to one of the developers:

      Prof. Hanspeter Moessenboeck
      University of Linz
      Institute of Computer Science
      Altenbergerstr 69
      A-4040 Linz
      Austria
      Tel: +43-732-2468-9700
      e-mail: moessenboeck@ssw.uni-linz.ac.at

or

      Prof. Pat Terry
      Computer Science Department,
      Rhodes University
      GRAHAMSTOWN 6140,  South Africa
      Tel: +27-46-6038292
      e-mail: cspt@cs.ru.ac.za or pdterry@psg.com

If you make use of the Modula-2 version of Coco/R for commercial projects
(that is, to develop software that you sell to others) you are obliged to
pay for it by making a donation of $50; usage for academic purposes is free.

The C/C++ version is being distributed under the same terms as GNU software.
For full details contact Frankie Arzu (farzu@daman,org or farzu@uvg.edu.gt).

Users who implement Coco/R under other compilers are encouraged to share
their experience and to make their I/O module implementations available in
later releases of the system.

Trademarks
==========

Any and all trademarks mentioned above are duly acknowledged.

=END=

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -