home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / sampler / 02 / parser / grammar3.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-09-06  |  1.7 KB  |  47 lines

  1. START PROGRAM
  2. PROGRAM PROGRAM-HEADING | !EMPTY BLOCK .
  3.  
  4. PROGRAM-HEADING program PROGRAM-IDENTIFIER FILE-IDENTIFIER-LIST | !EMPTY ;
  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 BLOCK ;
  13. PROC-HEADING procedure !ID FORM-PARM-SECT-1 | !EMPTY ;
  14. FORM-PARM-SECT-1 ( FORM-PARM-SECT { ; 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 BLOCK ;
  21. FUNC-HEADING function !ID FORM-PARM-SECT-1 | !EMPTY : !ID ;
  22.  
  23. TYPE-DEFINITION-PART type { !EXIT BEGIN-VAR-CONST-FUNCTION-PROCEDURE !ID = TYPE ; }
  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 { !EXIT BEGIN-VAR-CONST-FUNCTION-PROCEDURE IDENTIFIER-LIST : !ID ; }
  30.  
  31.  
  32. STATEMENT-PART COMPOUND-STATEMENT
  33. COMPOUND-STATEMENT begin { !EXIT  END STATEMENT ; } end
  34. STATEMENT STRUCTURED-STATEMENT | ASSIGNMENT-STATEMENT
  35. ASSIGNMENT-STATEMENT !ID := !ID
  36. STRUCTURED-STATEMENT CONDITIONAL-STATEMENT | REPETITIVE-STATEMENT
  37. CONDITIONAL-STATEMENT IF-STATEMENT
  38. IF-STATEMENT if EXPRESSION then STATEMENT { else STATEMENT }
  39. REPETITIVE-STATEMENT REPEAT-STATEMENT
  40. REPEAT-STATEMENT repeat { !EXIT UNTIL STATEMENT ; } until EXPRESSION
  41.  
  42. EXPRESSION SIMPLE-EXPRESSION { RELATIONAL-OPERATOR SIMPLE-EXPRESSION }
  43. SIMPLE-EXPRESSION !ID { ADDING-OPERATOR !ID }
  44. ADDING-OPERATOR + | -
  45. RELATIONAL-OPERATOR = | <> | <= | >= | < | > | in
  46.  
  47.