afpc.1 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. .TH AFPC 1
  2. .SH NAME
  3. afpc \- fast ACK compatible Pascal compiler
  4. .SH SYNOPSIS
  5. .B afpc
  6. [
  7. .B \-c
  8. ]
  9. [
  10. .B \-v
  11. ]
  12. [
  13. .B \-vn
  14. ]
  15. [ \fB\-D\fIname\fR ]
  16. [ \fB\-D\fIname\fB=\fIdef\fR ]
  17. [
  18. .BI \-I pathname
  19. ]
  20. [
  21. .B \-w
  22. ]
  23. [
  24. .B \-L
  25. ]
  26. [
  27. .B \-o
  28. .I outfile
  29. ]
  30. [
  31. .B \-R
  32. ]
  33. [
  34. .B \-A
  35. ]
  36. [
  37. .B \-a
  38. ]
  39. [
  40. .B \-d
  41. ]
  42. [
  43. .BI \-i num
  44. ]
  45. [
  46. .B \-t
  47. ]
  48. [
  49. .B \-C
  50. ]
  51. [
  52. .B \-U+
  53. ]
  54. [
  55. .B \-u+
  56. ]
  57. [
  58. .B \-s+
  59. ]
  60. [
  61. .B \-c+
  62. ]
  63. [
  64. .BI \-U name
  65. ]
  66. [
  67. .BI -M compiler
  68. ]
  69. .I sourcefile ...
  70. .SH DESCRIPTION
  71. .LP
  72. .I afpc
  73. is a fast
  74. .B Pascal
  75. compiler. It translates
  76. .B Pascal
  77. programs
  78. into ack(1)-compatible relocatable object modules, and does so in one pass.
  79. Then, if the \fB\-c\fP flag is not given,
  80. .I afpc
  81. offers the object modules to a link-editor,
  82. to create an executable binary.
  83. .LP
  84. .I Fpc
  85. accepts several types of filename arguments. Files with
  86. names ending in
  87. .B .p
  88. are taken to be
  89. .B Pascal
  90. source programs.
  91. They are compiled, and the resulting object module is placed in the current
  92. directory.
  93. The object module is named after its source file, the suffix
  94. .B .o
  95. replacing
  96. .BR .p
  97. in the name of the object.
  98. A file with suffix
  99. .B .p
  100. is passed through the C preprocessor if it begins with a '#'.
  101. .LP
  102. Other arguments refer to loader options,
  103. object modules, or object libraries.
  104. Unless the
  105. .B \-c
  106. flag is given, these modules and libraries, together with the results of any
  107. specified compilations, are passed (in the order given) to the
  108. link-editor to produce
  109. an output file named
  110. .IR a.out .
  111. You can specify a name for the executable by using the
  112. .B \-o
  113. option.
  114. .LP
  115. If a single
  116. .B Pascal
  117. program is compiled and loaded all at once, the object module
  118. file is deleted.
  119. .SH OPTIONS
  120. .LP
  121. .IP \fB\-c\fP
  122. .br
  123. Suppress the loading phase of the compilation, and force an object module to
  124. be produced, even if only one program is compiled.
  125. A single object module can be named explicitly using the
  126. .B \-o
  127. option.
  128. .IP \fB\-D\fIname\fR\fB=\fIdef\fR
  129. Define a symbol
  130. .I name
  131. to the
  132. preprocessor, as if by "#define".
  133. .IP \fB\-D\fIname\fR
  134. .br
  135. same as \fB\-D\fIname\fB=1\fR.
  136. .IP \fB\-I\fIpathname\fR
  137. .br
  138. Add
  139. .I pathname
  140. to the list of directories in which to search for
  141. .B #include
  142. files with filenames not beginning with slash.
  143. The preprocessor first searches for
  144. .B #include
  145. files in the directory containing
  146. .I sourcefile,
  147. then in directories in
  148. .B \-I
  149. options, and finally, in
  150. .I /usr/include.
  151. .IP "\fB\-o \fIoutput\fR"
  152. Name the final output file
  153. .I output.
  154. .IP \fB\-U\fIname\fR
  155. .br
  156. Remove any initial definition of
  157. .I name.
  158. .IP \fB\-v\fP
  159. .br
  160. Verbose. Print the commands as they are executed.
  161. .IP \fB\-vn\fP
  162. .br
  163. Verbose, no execute. Only print the commands, do not execute them.
  164. .IP \fB\-L\fP
  165. .br
  166. do not generate code to keep track of
  167. the current location in the source code.
  168. .IP \fB\-w\fP
  169. .br
  170. suppress warning messages.
  171. .IP \fB\-d\fP
  172. .br
  173. allow for "long"s.
  174. .IP \fB\-i\fInum\fR
  175. .br
  176. set size for integer sets. By default, the set size is the word size.
  177. .IP \fB\-C\fP
  178. .br
  179. distinguish between lower case and upper case. Normally, upper case letters
  180. are considered equal to their lower case counterpart.
  181. .IP \fB\-t\fP
  182. .br
  183. trace calls and exits of procedures and functions.
  184. .IP \fB\-R\fP
  185. .br
  186. disable all range-checks.
  187. .IP \fB\-A\fP
  188. .br
  189. enable extra array bound checks. Unfortunately, the back-end used for this
  190. compiler is a bit sloppy, so extra array bound checks are needed if you want
  191. detection of array bound errors.
  192. .IP \fB\-a\fP
  193. .br
  194. disable assertions. Assertions are skipped instead of evaluated.
  195. .IP "\fB\-U+\fP, \fB\-u+\fP"
  196. .br
  197. allow for underscores within identifiers. Identifiers may not start
  198. with an underscore, even if this flag is given.
  199. .IP \fB-s+\fP
  200. .br
  201. allow only standard
  202. .BR Pascal .
  203. This disables the \fB\-c+\fP, \fB\-d\fR, \fB\-u+\fR,
  204. \fB\-U+\fR and \fB\-C\fR options.
  205. Furthermore, assertions are not recognized at all.
  206. .IP \fB-c+\fP
  207. .br
  208. allow C-like strings. This option is mainly intended for usage with
  209. C-functions. This option will cause the type 'string' to be known.
  210. .IP \fB\-M\fIcompiler\fR
  211. .br
  212. use \fIcompiler\fR as Modula-2 compiler instead of the default.
  213. .SH "SEE ALSO"
  214. .IP [1]
  215. J.W. Stevenson, H. v. Eck, \fIAmsterdam Compiler Kit-Pascal reference manual\fP.
  216. .IP [2]
  217. ack(1) unix manual page.
  218. .SH DIAGNOSTICS
  219. Diagnostics are intended to be self-explanatory.