program Pascals(input+,output); (* 1.6.75 *) (* N. Wirth, E.T.H CH-8092 Zurich *) procedure errormsg; begin end (* errormsg *); procedure nextch; (* read next character; process line end *) begin end (* nextch *); procedure error(n: integer); begin end (* error *); procedure fatal(n: integer); begin end (* fatal *); procedure insymbol; (* reads next symbol *) procedure readscale; begin end (* readscale *); procedure adjustscale; begin end (* adjustscale *); begin (* insymbol *) end (* insymbol *); procedure enter(x0: alfa; x1: object; x2: types; x3: integer); begin end (* enter *); procedure enterarray(tp: types; l, h: integer); begin end (* enterarray *); procedure enterblock; begin end (* enterblock *); procedure enterreal(x: real); begin end (* enterreal *); procedure emit(fct: integer); begin end (* emit *); procedure emit1(fct, b: integer); begin end (* emit1 *); procedure emit2(fct, a, b: integer); begin end (* emit2 *); procedure printtables; begin end (* printtables *); procedure block(fsys: symset; isfun: boolean; level: integer); procedure skip(fsys: symset; n: integer); begin end (* skip *); procedure test(s1, s2: symset; n: integer); begin end (* test *); procedure testsemicolon; begin end (* testsemicolon *); procedure enter(id: alfa; k: object); begin end (* enter *); function loc(id: alfa): integer; begin end (* loc *); procedure entervariable; begin end (* entervariable *); procedure constant(fsys: symset; var c: conrec); begin end (* constant *); procedure typ(fsys: symset; var tp: types; var rf, sz: integer); procedure arraytyp(var aref, arsz: integer); begin end (* arraytyp *); begin end (* typ *); procedure parameterlist; (* formal parameter list *) begin end (* parameter list *); procedure constantdeclaration; begin end (* constantdeclaration *); procedure typedeclaration; begin end (* typedeclaration *); procedure variabledeclaration; begin end (* variabledeclaration *); procedure procdeclaration; begin end (* proceduredeclaration *); procedure statement(fsys: symset); procedure expression(fsys: symset; var x: item); forward; procedure selector(fsys: symset; var v: item); begin end (* selector *); procedure call(fsys: symset; i: integer); begin end (* call *); function resulttype(a, b: types): types; begin end (* resulttype *); procedure expression; procedure simpleexpression(fsys: symset; var x: item); procedure term(fsys: symset; var x: item); procedure factor(fsys: symset; var x: item); procedure standfct(n: integer); begin (* standard function no. n *) end (* standfct *); begin (* factor *) end (* factor *); begin (* term *) end (* term *); begin (* simpleexpression *) end (* simpleexpression *); begin (* expression *) end (* expression *); procedure assignment(lv, ad: integer); begin end (* assignment *); procedure compoundstatement; begin end (* compoundstatement *); procedure ifstatement; begin end (* ifstatement *); procedure casestatement; procedure caselabel; begin end (* caselabel *); procedure onecase; begin end (* onecase *); begin end (* casestatement *); procedure repeatstatement; begin end (* repeatstatement *); procedure whilestatement; begin end (* whilestatement *); procedure forstatement; begin end (* forstatement *); procedure standproc(n: integer); begin end (* standproc *); begin (* statement *) end (* statement *); begin (* block *) end (* block *); procedure interpret; begin (* interpret *) end (* interpret *); begin { main program } end.