home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / sampler / 02 / parser / grammar4.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1987-09-30  |  1.9 KB  |  51 lines

  1. START PROGRAM
  2. PROGRAM PROGRAM-HEADING | !EMPTY BLOCK @ds . @ps @nl @nl
  3.  
  4. PROGRAM-HEADING program PROGRAM-IDENTIFIER FILE-IDENTIFIER-LIST | !EMPTY @ds ; @ps @nl
  5. PROGRAM-IDENTIFIER !ID
  6. FILE-IDENTIFIER-LIST ( FILE-IDENTIFIER { , FILE-IDENTIFIER } )
  7. FILE-IDENTIFIER !ID
  8.  
  9. BLOCK DECLARATION-PART STATEMENT-PART
  10. DECLARATION-PART { TYPE-DEFINITION-PART | VAR-DEFINITION-PART | PROC-DECL | FUNC-DECL }
  11.  
  12. PROC-DECL PROC-HEADING @nl @ps BLOCK @ds ; @nl @ps @nl
  13. PROC-HEADING procedure !ID FORM-PARM-SECT-1 | !EMPTY @ds ;
  14. FORM-PARM-SECT-1 ( FORM-PARM-SECT { @ds ; FORM-PARM-SECT } )
  15. FORM-PARM-SECT var | !EMPTY PARM-GROUP
  16. PARM-GROUP IDENTIFIER-LIST : TYPE-IDENTIFIER
  17. IDENTIFIER-LIST !ID { , !ID }
  18. TYPE-IDENTIFIER !ID
  19.  
  20. FUNC-DECL FUNC-HEADING @nl @ps BLOCK @ds ;
  21. FUNC-HEADING function !ID FORM-PARM-SECT-1 | !EMPTY : !ID @ds ;
  22.  
  23. TYPE-DEFINITION-PART type @nl @ps @nl @ind { !EXIT BEGIN-VAR-CONST-FUNCTION-PROCEDURE !ID = TYPE @ds ; } @und
  24. TYPE SIMPLE-TYPE
  25. SIMPLE-TYPE SCALAR-TYPE
  26. SCALAR-TYPE ( IDENTIFIER-LIST )
  27. INDENTIFIER-LIST  !ID { , !ID }
  28.  
  29. VAR-DEFINITION-PART var @nl @ps @nl @ind { !EXIT BEGIN-VAR-CONST-FUNCTION-PROCEDURE IDENTIFIER-LIST : !ID @ds ; @ps } @und
  30.  
  31.  
  32. STATEMENT-PART COMPOUND-STATEMENT
  33. COMPOUND-STATEMENT begin @nl @ps @nl { !EXIT  END STATEMENT @ds ; @ps @nl } end
  34.  
  35. STATEMENT STRUCTURED-STATEMENT | ASSIGNMENT-STATEMENT
  36.  
  37. ASSIGNMENT-STATEMENT !ID := !ID
  38.  
  39. STRUCTURED-STATEMENT CONDITIONAL-STATEMENT | REPETITIVE-STATEMENT
  40.  
  41. CONDITIONAL-STATEMENT IF-STATEMENT
  42.  
  43. IF-STATEMENT if EXPRESSION then STATEMENT { else STATEMENT }
  44.  
  45. REPETITIVE-STATEMENT REPEAT-STATEMENT
  46. REPEAT-STATEMENT repeat @ps @nl @ind { !EXIT UNTIL STATEMENT @ds ; @ps @nl } until EXPRESSION @und
  47.  
  48. EXPRESSION SIMPLE-EXPRESSION { RELATIONAL-OPERATOR SIMPLE-EXPRESSION }
  49. SIMPLE-EXPRESSION !ID { ADDING-OPERATOR !ID }
  50. ADDING-OPERATOR + | -
  51. RELATIONAL-OPERATOR = | <> | <= | >= | < | > | in