2
Free-Format Specification
•Code free-format statements between /FREE and /END-FREE directives
....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8/FREEChain(ne) EmployeeIDEmployees;Select;When %Error;Return;When %Found;Eval(h) TotalPay= (RegHours* Rate) + (OvtHours* Rate * 1.5);Endsl;/END-FREE
Column 7
....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8/FREEChain(ne) EmployeeIDEmployees;Select;When %Error;Return;When %Found;Eval(h) TotalPay= (RegHours* Rate) + (OvtHours* Rate * 1.5);Endsl;/END-FREE
Free-Format Specification
•Code goes in columns 8-80
–Columns 6-7 must be blank –Indenting is allowed
/FREEChain(ne) EmployeeIDEmployees;Select;When %Error;Return;When %Found;Eval(h) TotalPay= (RegHours* Rate) + (OvtHours* Rate * 1.5);Endsl;/END-FREE
Free-Format Specification
•Statement can span several lines
–Semicolon ends each logical line –Multiple statements per line not allowed
Free-Format Specification
•Statement begins with opcode
–OpcodeFactor1 Factor2 Result;
/FREEChain(ne) EmployeeIDEmployees;Select;When %Error;Return;When %Found;Eval(h) TotalPay= (RegHours* Rate) + (OvtHours* Rate * 1.5);Endsl;/END-FREE
Free-Format Specification
•If statement doesn’t begin with opcode…
–EVAL is assumed for assignment expressions –CALLP is assumed otherwise
/FREEEmpNbrErr= *OFF;…CalcTaxes(EmployeeID:TotalPay);…Eval(h) TotalPay= (RegHours* Rate) + (OvtHours* Rate * 1.5);/END-FREE
EVAL assumedCALLP assumed
/FREEEmpNbrErr= *OFF;…CalcTaxes(EmployeeID:TotalPay);…Eval(h) TotalPay= (RegHours* Rate) + (OvtHours* Rate * 1.5);/END-FREE
Free-Format Specification
•Opcoderequired when extender isnecessary
–E.g., EVAL(H) or CALLP(E)
EVAL required
Leave a Comment