home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / viscobv7.zip / vac22os2 / ibmcobol / macros / ff.ppr < prev    next >
Text File  |  1998-02-24  |  6KB  |  478 lines

  1.  
  2.  * Parser Profile for FORTRAN (free format)
  3.  *    (C) Copyright IBM Corporation 1990, 1998
  4.  *    All Rights Reserved
  5.  
  6. formsize
  7. size 0
  8.  
  9. lists
  10.  
  11. states c7 c6 c5 c4 c3 c2 c1 f2 f1 ni mc s4 s3 s2 s1 sb sa of format errline end inline comment cmdline
  12.  
  13. symbols tab cmpiler drective nonexec if format ho t1 t2 x1 x2 name punctuation rcommand program operator q1 q2 qa qb number comment space debug digit all zero amp close semi end any
  14.  
  15. classes label sub comment error code
  16.  
  17.  
  18. states
  19.  
  20. state cmdline spacetrap
  21. fonts  tab _ comment C end KK rcommand K nonexec M program S cmpiler D format M name A drective D digit L space _ semi P amp F
  22. changes end end comment comment name inline program inline rcommand inline cmpiler inline nonexec inline drective inline format format semi cmdline amp mc
  23. unknown errline
  24. end
  25.  
  26. state mc
  27. fonts amp F comment C
  28. changes comment c1
  29. unknown errline
  30. return cmdline
  31. end
  32.  
  33. state end
  34. fonts rcommand K program V amp KF cmpiler KD nonexec M format KM name KA number A punctuation A drective KD comment KC number KN space K_ semi KP
  35. changes rcommand inline program inline amp ni cmpiler inline nonexec inline format inline name inline number inline punctuation inline drective inline comment comment digit inline space inline semi inline
  36. unknown errline
  37. end
  38.  
  39. state comment spacetrap
  40. fonts all C
  41. end
  42.  
  43. state errline spacetrap
  44. fonts all E
  45. end
  46.  
  47. state c1 spacetrap
  48. fonts all C
  49. return cmdline
  50. end
  51.  
  52. state inline
  53. fonts tab _ comment C rcommand K program S nonexec M operator P ho N t1 N t2 N x1 N x2 N name A  punctuation P close P number N q1 EE q2 EE amp F semi P any E
  54. changes comment comment q1 sa q2 sb semi cmdline amp ni
  55. end
  56.  
  57. state ni
  58. fonts tab _ comment C rcommand K program S nonexec M operator P ho N t1 N t2 N x1 N x2 N name A punctuation P close P number N q1 EE q2 EE amp F any E
  59. changes comment c2 rcommand inline nonexec inline program inline name inline operator inline punctuation inline close inline number inline q1 sa q2 sb drective inline semi inline
  60. return inline
  61. end
  62.  
  63. state c2 spacetrap
  64. fonts all C
  65. return inline
  66. end
  67.  
  68. state sa spacetrap
  69. fonts amp QF q1 Q qa EE
  70. changes q1 inline amp s3
  71. end
  72.  
  73. state sb spacetrap
  74. fonts amp QF q2 Q qb EE
  75. changes q2 inline amp s4
  76. end
  77.  
  78. state s3
  79. fonts comment C amp QF q1 Q qa EE
  80. changes comment c6 q1 inline qa sa
  81. return sa
  82. end
  83.  
  84. state s4
  85. fonts comment C amp QF q2 Q qb EE
  86. changes comment c7 q2 inline qb sb
  87. return sb
  88. end
  89.  
  90. state c6 spacetrap
  91. fonts all C
  92. return sa
  93. end
  94.  
  95. state c7 spacetrap
  96. fonts all C
  97. return sb
  98. end
  99.  
  100. state format
  101. fonts if A amp QF close QP comment C q1 EE q2 EE punctuation QP any E
  102. changes comment comment q1 f1 q2 f2 amp of close cmdline semi cmdline
  103.  * return cmdline
  104. end
  105.  
  106. state of
  107. fonts if A amp F close P comment C q1 EE q2 EE punctuation P any E
  108. changes comment c3 q1 f1 q2 f2 amp of close cmdline semi cmdline
  109. unknown errline
  110. return format
  111. end
  112.  
  113. state c3 spacetrap
  114. fonts all C
  115. return format
  116. end
  117.  
  118. state f1 spacetrap
  119. fonts amp QF q1 Q qa EE
  120. changes q1 format amp s1
  121. end
  122.  
  123. state s1
  124. fonts comment C amp F qa Q
  125. changes comment c4 qa f1
  126. return f1
  127. end
  128.  
  129. state f2 spacetrap
  130. fonts amp QF q2 Q qb EE
  131. changes q2 format amp s2
  132. end
  133.  
  134. state s2
  135. fonts comment C amp F qb Q
  136. changes comment c5 qb f2
  137. return f2
  138. end
  139.  
  140. state c4 spacetrap
  141. fonts all C
  142. return f1
  143. end
  144.  
  145. state c5 spacetrap
  146. fonts all C
  147. return f2
  148. end
  149.  
  150.  
  151. symbols
  152.  
  153. symbol all
  154. form
  155. !
  156.  
  157. symbol tab
  158. form
  159. T
  160.  
  161. symbol space
  162. form
  163. '  '
  164.  
  165. symbol any
  166. form
  167. .
  168.  
  169. symbol digit
  170. form
  171. 0
  172.  
  173. symbol comment
  174. form
  175. '!'
  176.  
  177. symbol amp
  178. sizelist small
  179. &
  180.  
  181. symbol close
  182. sizelist small
  183. )
  184.  
  185. symbol semi
  186. sizelist small
  187. ;
  188.  
  189. symbol debug
  190. form
  191. ' >D'
  192.  
  193. symbol zero
  194. form
  195. '0'
  196.  
  197. symbol cmpiler
  198. alphalist upper single ['@']({[$,'_','$']})
  199. @PROCESS
  200.  
  201. symbol drective
  202. form
  203. ['@','%']({[$,'_','$']})
  204.  
  205. symbol name
  206. form
  207. [A,a,'_','$']({[$,'_','$']})
  208.  
  209. symbol punctuation
  210. sizelist small
  211. %
  212. (
  213. *
  214. +
  215. ,
  216. -
  217. .
  218. /
  219. :
  220. <
  221. =
  222. >
  223. \
  224. _
  225.  
  226. symbol ho
  227. form
  228. [#]['H','h']($)
  229.  
  230. symbol t1
  231. form
  232. ['O','o','b','B']['"',''''](#)['"','''']
  233.  
  234. symbol t2
  235. form
  236. ['"',''''](#)['"','''']['O','o','b','B']
  237.  
  238. symbol x1
  239. form
  240. ['z','Z''X','x']['"','''']($)['"','''']
  241.  
  242. symbol x2
  243. form
  244. ['"',''''](#,$)['"','''']['z','Z''X','x']
  245.  
  246. symbol number
  247. form
  248. [#('.'),'.'](#)([' >E',' >D']('-','+')#)
  249.  
  250. symbol q1
  251. form
  252. ''''
  253.  
  254. symbol qa
  255. form
  256. /'''&'
  257.  
  258. symbol q2
  259. form
  260. '"'
  261.  
  262. symbol qb
  263. form
  264. /'"&'
  265.  
  266. symbol end
  267. alphalist upper single &
  268. END
  269.  
  270. symbol program
  271. alphalist upper small [A,a,'_','$']({[&,'_','$']})
  272. ASSIGNMENT
  273. BLOCK
  274. BLOCKDATA
  275. DATA
  276. ENDBLOCKDATA
  277. ENDFUNCTION
  278. ENDINTERFACE
  279. ENDMODULE
  280. ENDPROGRAM
  281. ENDSUBROUTINE
  282. ENTRY
  283. EXTRINSIC
  284. FUNCTION
  285. MODULE
  286. OPERATOR
  287. PROCEDURE
  288. PROGRAM
  289. PURE
  290. RECURSIVE
  291. RESULT
  292. SUBROUTINE
  293.  
  294. symbol format
  295. alphalist upper single &
  296. FORMAT
  297.  
  298. symbol if
  299. form
  300. [$,'$','_']
  301.  
  302. symbol nonexec
  303. alphalist upper large [A,a,'_','$']({[&,'_','$']})
  304. %VAL
  305. %REF
  306. @PROCESS
  307. ALLOCATABLE
  308. AUTOMATIC
  309. BYTE
  310. CHARACTER
  311. COMMON
  312. COMPLEX
  313. DATA
  314. DIMENSION
  315. DOUBLE
  316. DOUBLECOMPLEX
  317. DOUBLEPRECISION
  318. EJECT
  319. ENDTYPE
  320. EQUIVALENCE
  321. EXTERNAL
  322. HPF
  323. HPF_LOCAL
  324. HPF_SERIAL
  325. IMPLICIT
  326. IN
  327. INCLUDE
  328. INOUT
  329. INTEGER
  330. INTENT
  331. INTRINSIC
  332. KIND
  333. LEN
  334. LOGICAL
  335. NAMELIST
  336. NONE
  337. ONLY
  338. OPTIONAL
  339. OUT
  340. PARAMETER
  341. POINTER
  342. PRECISION
  343. PRIVATE
  344. PUBLIC
  345. REAL
  346. SAVE
  347. SEQUENCE
  348. SOURCEFORM
  349. STATIC
  350. TARGET
  351. TYPE
  352. USE
  353. VIRTUAL
  354. VOLATILE
  355.  
  356. symbol rcommand
  357. alphalist upper large [A,a,'_','$']({[&,'_','$']})
  358. ACCESS
  359. ACTION
  360. ADVANCE
  361. ALLOCATE
  362. APPEND
  363. ASIS
  364. ASSIGN
  365. BACKSPACE
  366. BLANK
  367. CALL
  368. CASE
  369. CLOSE
  370. CONTAINS
  371. CONTINUE
  372. CYCLE
  373. DEALLOCATE
  374. DEFAULT
  375. DELIM
  376. DIRECT
  377. DO
  378. ELSE
  379. ELSEIF
  380. ELSEWHERE
  381. ENDDO
  382. ENDFILE
  383. ENDIF
  384. ENDSELECT
  385. ENDWHERE
  386. EOR
  387. ERR
  388. EXIST
  389. EXIT
  390. FILE
  391. FMT
  392. FORALL
  393. FORM
  394. FORMATTED
  395. GO
  396. GOTO
  397. IF
  398. INQUIRE
  399. INTERFACE
  400. IOLENGTH
  401. IOSTAT
  402. NAME
  403. NAMED
  404. NEXTREC
  405. NML
  406. NULLIFY
  407. NUM
  408. NUMBER
  409. OPEN
  410. OPENED
  411. PAD
  412. PAUSE
  413. POSITION
  414. PRINT
  415. READ
  416. READWRITE
  417. REC
  418. RECL
  419. RETURN
  420. REWIND
  421. SELECT
  422. SELECTCASE
  423. SEQUENTIAL
  424. SIZE
  425. STAT
  426. STATUS
  427. STOP
  428. THEN
  429. TO
  430. UNFORMATTED
  431. UNIT
  432. WHERE
  433. WHILE
  434. WRITE
  435.  
  436. symbol operator
  437. alphalist upper small '.'&'.'
  438. .AND.
  439. .EQ.
  440. .EQV.
  441. .FALSE.
  442. .GE.
  443. .GT.
  444. .LE.
  445. .LT.
  446. .NE.
  447. .NEQV.
  448. .NOT.
  449. .OR.
  450. .TRUE.
  451. .XOR.
  452.  
  453.  
  454. classes
  455.  
  456. class comment
  457. needed C
  458. not
  459.  
  460. class error
  461. needed E
  462. not
  463.  
  464. class code
  465. needed K || A || P || N || Q || S || V
  466. not
  467.  
  468. class label
  469. needed L
  470. not
  471.  
  472. class sub
  473. needed S
  474. not
  475.  
  476. end
  477.    * that's all!
  478.