em_m2.6 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. .TH EM_M2 6 "$Revision$"
  2. .ad
  3. .SH NAME
  4. em_m2 \- ACK Modula\-2 compiler
  5. .SH SYNOPSIS
  6. .B ~em/lib.bin/em_m2
  7. .RI [ option ]
  8. .I source
  9. .I destination
  10. .SH DESCRIPTION
  11. .I Em_m2
  12. is a
  13. compiler, part of the Amsterdam Compiler Kit, that translates Modula-2 programs
  14. into EM code.
  15. The input is taken from
  16. .IR source ,
  17. while the
  18. EM code is written on
  19. .IR destination .
  20. .br
  21. .I Option
  22. is a, possibly empty, sequence of the following combinations:
  23. .IP \fB\-I\fIdirname\fR
  24. .br
  25. append \fIdirname\fR to the list of directories where definition modules
  26. are looked for.
  27. .PP
  28. When the compiler needs a definition module, it is first searched for
  29. in the current directory, and then in the directories given to it by the
  30. \-\fBI\fR flag
  31. in the order given.
  32. .IP \fB\-M\fP\fIn\fP
  33. set maximum identifier length to \fIn\fP.
  34. The minimum value for \fIn\fR is 14, because the keyword
  35. "IMPLEMENTATION" is that long.
  36. .IP \fB\-n\fR
  37. do not generate EM register messages.
  38. The user-declared variables will not be stored into registers on the target
  39. machine.
  40. .IP \fB\-L\fR
  41. do not generate the EM \fBfil\fR and \fBlin\fR instructions that enable
  42. an interpreter to keep track of the current location in the source code.
  43. .IP \fB\-V\fIcm\fR.\fIn\fR,\ \fB\-V\fIcm\fR.\fIncm\fR.\fIn\fR\ ...
  44. .br
  45. set the size and alignment requirements.
  46. The letter \fIc\fR indicates the simple type, which is one of
  47. \fBw\fR(word size), \fBi\fR(INTEGER), \fBl\fR(LONGINT), \fBf\fR(REAL),
  48. \fBd\fR(LONGREAL), or \fBp\fR(POINTER).
  49. It may also be the letter \fBS\fR, indicating that an initial
  50. record alignment follows.
  51. The \fIm\fR parameter can be used to specify the length of the type (in bytes)
  52. and the \fIn\fR parameter for the alignment of that type.
  53. Absence of \fIm\fR or \fIn\fR causes a default value to be retained.
  54. .IP \fB\-w\fR\fIclasses\fR
  55. suppress warning messages whose class is a member of \fIclasses\fR.
  56. Currently, there are three classes: \fBO\fR, indicating old-flashioned use,
  57. \fBW\fR, indicating "ordinary" warnings, and \fBR\fR, indicating
  58. restricted Modula-2.
  59. If no \fIclasses\fR are given, all warnings are suppressed.
  60. By default, warnings in class \fBO\fR and \fBW\fR are given.
  61. .IP \fB\-W\fR\fIclasses\fR
  62. allow for warning messages whose class is a member of \fIclasses\fR.
  63. .IP \fB\-x\fR
  64. make all procedure names global, so that \fIadb\fR(1) understands them.
  65. .IP \fB\-g\fR
  66. produce a DBX-style symbol table.
  67. .IP \fB\-l\fR
  68. enable local extensions. Currently, there are two local extensions:
  69. procedure constants, and the type LONGCARD.
  70. .IP \fB\-s\fR
  71. make INTEGER ranges symmetric, t.i., MIN(INTEGER) = - MAX(INTEGER).
  72. This is useful for interpreters that use the "real" MIN(INTEGER) to
  73. indicate "undefined".
  74. .IP \fB-R\fR
  75. disable all range checks.
  76. .IP \fB-A\fR
  77. enable extra array bound checks, for machines that do not implement the
  78. EM ones.
  79. .IP \fB-U\fR
  80. allow for underscores within identifiers. Identifiers may not start with
  81. an underscore, even if this flag is given.
  82. .IP \fB-3\fR
  83. only accept Modula-2 programs that strictly conform to [1].
  84. .LP
  85. .SH SEE ALSO
  86. \fIack\fR(1), \fImodula-2\fR(1)
  87. .IP [1]
  88. N. Wirth, \fIProgramming in Modula-2\fP, 3rd edition, Springer Verlag.
  89. .SH DIAGNOSTICS
  90. All warning and error messages are written on standard error output.
  91. .SH REMARKS
  92. Debugging and profiling facilities may be present during the development
  93. of \fIem_m2\fP.