from AR 1175 --
DIRECTORY
String;
XMesaCmplr26: PROGRAM
IMPORTS String = {
The following type is copied from Interpress.mesa for the testing purpose.
LongOperator: PRIVATE TYPE = MACHINE DEPENDENT{
zero(0),nop(1),setXY(10),setXYRel(11),setXRel(12),setYRel(13),lineToX(14),lineToY(15),
space(16),get(17),iGet(18),iSet(19),fGet(20),fSet(21),show(22),lineTo(23),maskStroke(24),
moveTo(25),thirtyTwo(32),begin(102),end(103),pageInstructions(105),beginBrace(106),
endBrace(107),correct(110),makeSimpleCO(114),findOperator(116),doSaveSimpleBody(120),
maskChar(140),showAndFixedXRel(145),showAndXRel(146),findFont(147),modifyFont(148),
findDecompressor(149),makeFont(150),setFont(151),setCorrectMeasure(154),
setCorrectTolerance(155),correctMask(156),correctSpace(157),getCP(159),makeT(160),
translate(162),rotate(163),scale(164),concat(165),scale2(166),concatT(168),move(169),
trans(170),pop(180),dup(181),copy(183),roll(184),exch(185),mark(186),unmark(187),
count(188),unmark0(192),abs(200),add(201),and(202),ceiling(203),div(204),eq(205),
floor(206),ge(207),gt(208),mod(209),mul(210),neg(211),not(212),or(213),sub(214),
trunc(215),rem(216),round(217),type(220),do(231),doSave(232),doSaveAll(233),if(239),
ifCopy(240),ifElse(241),makeVecLU(282),makeVec(283),shape(285),getP(286),getProp(287),
mergeProp(288),curveTo(402),arcTo(403),conicTo(404),maskFill(409),maskRectangle(410),
maskTrapezoidX(411),maskTrapezoidY(412),startUnderline(413),maskUnderline(414),
makeOutlineOdd(416),makeOutline(417),clipOutline(418),clipRectangle(419),
findColorOperator(421),findColorModelOperator(422),findColor(423),setGray(424),
makeGray(425),makeSampledBlack(426),makeSampledColor(427),setSampledBlack(428),
setSampledColor(429),maskStrokeClosed(440),maskVector(441),maskDashedStroke(442),
makePixelArray(450),extractPixelArray(451),maskPixel(452),error(600),(8191)};
code: LongOperator;
string: LONG STRING ← "SPACE";
code ←
SELECT TRUE FROM
String.Equivalent[s1: string, s2: "ZERO"] => zero,
String.Equivalent[s1: string, s2: "NOP"] => nop,
String.Equivalent[s1: string, s2: "SETXY"] => setXY,
String.Equivalent[s1: string, s2: "SETXYREL"] => setXYRel,
String.Equivalent[s1: string, s2: "SETXREL"] => setXRel,
String.Equivalent[s1: string, s2: "SETYREL"] => setYRel,
String.Equivalent[s1: string, s2: "LINETOX"] => lineToX,
String.Equivalent[s1: string, s2: "LINETOY"] => lineToY,
String.Equivalent[s1: string, s2: "SPACE"] => space,
String.Equivalent[s1: string, s2: "GET"] => get,
String.Equivalent[s1: string, s2: "IGET"] => iGet,
String.Equivalent[s1: string, s2: "ISET"] => iSet,
String.Equivalent[s1: string, s2: "FGET"] => fGet,
String.Equivalent[s1: string, s2: "FSET"] => fSet,
String.Equivalent[s1: string, s2: "SHOW"] => show,
String.Equivalent[s1: string, s2: "LINETO"] => lineTo,
String.Equivalent[s1: string, s2: "MASKSTROKE"] => maskStroke,
String.Equivalent[s1: string, s2: "MOVETO"] => moveTo,
String.Equivalent[s1: string, s2: "THIRTYTWO"] => thirtyTwo,
String.Equivalent[s1: string, s2: "BEGIN"] => begin,
String.Equivalent[s1: string, s2: "END"] => end,
String.Equivalent[s1: string, s2: "{"] => beginBrace,
String.Equivalent[s1: string, s2: "}"] => endBrace,
String.Equivalent[s1: string, s2: "CORRECT"] => correct,
String.Equivalent[s1: string, s2: "MAKESIMPLECO"] => makeSimpleCO,
String.Equivalent[s1: string, s2: "DOSAVESIMPLEBODY"] => doSaveSimpleBody,
String.Equivalent[s1: string, s2: "SHOWANDXREL"] => showAndXRel,
String.Equivalent[s1: string, s2: "FINDFONT"] => findFont,
String.Equivalent[s1: string, s2: "MODIFYFONT"] => modifyFont,
String.Equivalent[s1: string, s2: "FINDDECOMPRESSOR"] => findDecompressor,
String.Equivalent[s1: string, s2: "SETFONT"] => setFont,
String.Equivalent[s1: string, s2: "SETCORRECTMEASURE"] => setCorrectMeasure,
String.Equivalent[s1: string, s2: "SETCORRECTTOLERANCE"] => setCorrectTolerance,
String.Equivalent[s1: string, s2: "CORRECTMASK"] => correctMask,
String.Equivalent[s1: string, s2: "CORRECTSPACE"] => correctSpace,
String.Equivalent[s1: string, s2: "GETCP"] => getCP,
String.Equivalent[s1: string, s2: "TRANSLATE"] => translate,
String.Equivalent[s1: string, s2: "ROTATE"] => rotate,
String.Equivalent[s1: string, s2: "SCALE"] => scale,
String.Equivalent[s1: string, s2: "CONCAT"] => concat,
String.Equivalent[s1: string, s2: "SCALE2"] => scale2,
String.Equivalent[s1: string, s2: "CONCATT"] => concatT,
String.Equivalent[s1: string, s2: "MOVE"] => move,
String.Equivalent[s1: string, s2: "TRANS"] => trans,
String.Equivalent[s1: string, s2: "POP"] => pop,
String.Equivalent[s1: string, s2: "DUP"] => dup,
String.Equivalent[s1: string, s2: "COPY"] => copy,
String.Equivalent[s1: string, s2: "ROLL"] => roll,
String.Equivalent[s1: string, s2: "EXCH"] => exch,
String.Equivalent[s1: string, s2: "MARK"] => mark,
String.Equivalent[s1: string, s2: "UNMARK"] => unmark,
String.Equivalent[s1: string, s2: "COUNT"] => count,
String.Equivalent[s1: string, s2: "UNMARK0"] => unmark0,
String.Equivalent[s1: string, s2: "ABS"] => abs,
String.Equivalent[s1: string, s2: "ADD"] => add,
String.Equivalent[s1: string, s2: "AND"] => and,
String.Equivalent[s1: string, s2: "CEILING"] => ceiling,
String.Equivalent[s1: string, s2: "DIV"] => div,
String.Equivalent[s1: string, s2: "EQ"] => eq,
String.Equivalent[s1: string, s2: "FLOOR"] => floor,
String.Equivalent[s1: string, s2: "GE"] => ge,
String.Equivalent[s1: string, s2: "GT"] => gt,
String.Equivalent[s1: string, s2: "MOD"] => mod,
String.Equivalent[s1: string, s2: "MUL"] => mul,
String.Equivalent[s1: string, s2: "NEG"] => neg,
String.Equivalent[s1: string, s2: "NOT"] => not,
String.Equivalent[s1: string, s2: "OR"] => or,
String.Equivalent[s1: string, s2: "SUB"] => sub,
String.Equivalent[s1: string, s2: "TRUNC"] => trunc,
String.Equivalent[s1: string, s2: "REM"] => rem,
String.Equivalent[s1: string, s2: "ROUND"] => round,
String.Equivalent[s1: string, s2: "TYPE"] => type,
String.Equivalent[s1: string, s2: "DO"] => do,
String.Equivalent[s1: string, s2: "DOSAVE"] => doSave,
String.Equivalent[s1: string, s2: "DOSAVEALL"] => doSaveAll,
String.Equivalent[s1: string, s2: "IF"] => if,
String.Equivalent[s1: string, s2: "IFCOPY"] => ifCopy,
String.Equivalent[s1: string, s2: "IFELSE"] => ifElse,
String.Equivalent[s1: string, s2: "MAKEVECLU"] => makeVecLU,
String.Equivalent[s1: string, s2: "MAKEVEC"] => makeVec,
String.Equivalent[s1: string, s2: "SHAPE"] => shape,
String.Equivalent[s1: string, s2: "GETPROP"] => getProp,
String.Equivalent[s1: string, s2: "MERGEPROP"] => mergeProp,
String.Equivalent[s1: string, s2: "MASKFILL"] => maskFill,
String.Equivalent[s1: string, s2: "MASKRECTANGLE"] => maskRectangle,
String.Equivalent[s1: string, s2: "MASKTRAPEZOIDX"] => maskTrapezoidX,
String.Equivalent[s1: string, s2: "MASKTRAPEZOIDY"] => maskTrapezoidY,
String.Equivalent[s1: string, s2: "STARTUNDERLINE"] => startUnderline,
String.Equivalent[s1: string, s2: "MASKUNDERLINE"] => maskUnderline,
String.Equivalent[s1: string, s2: "MAKEOUTLINE"] => makeOutline,
String.Equivalent[s1: string, s2: "FINDCOLOROPERATOR"] => findColorOperator,
String.Equivalent[s1:string,s2:"FINDCOLORMODELOPERATOR"]=>findColorModelOperator,
String.Equivalent[s1: string, s2: "FINDCOLOR"] => findColor,
String.Equivalent[s1: string, s2: "SETGRAY"] => setGray,
String.Equivalent[s1: string, s2: "MAKEGRAY"] => makeGray,
String.Equivalent[s1: string, s2: "MAKESAMPLEDBLACK"] => makeSampledBlack,
String.Equivalent[s1: string, s2: "MAKESAMPLEDCOLOR"] => makeSampledColor,
String.Equivalent[s1: string, s2: "MASKVECTOR"] => maskVector,
String.Equivalent[s1: string, s2: "MAKEPIXELARRAY"] => makePixelArray,
String.Equivalent[s1: string, s2: "EXTRACTPIXELARRAY"] => extraCTPixelArray,
String.Equivalent[s1: string, s2: "MASKPIXEL"] => maskPixel,
String.Equivalent[s1: string, s2: "ERROR"] => error,
changed operators
String.Equivalent[s1:string,s2:"CONTENTINSTRUCTIONS"]=>pageInstructions,
String.Equivalent[s1:string,s2: "PAGEINSTRUCTIONS"] => pageInstructions,
new 3.0 operators
String.Equivalent[s1: string, s2: "ARCTO"] => arcTo,
String.Equivalent[s1: string, s2: "CLIPOUTLINE"] => clipOutline,
String.Equivalent[s1: string, s2: "CLIPRECTANGLE"] => clipRectangle,
String.Equivalent[s1: string, s2: "CONICTO"] => conicTo,
String.Equivalent[s1: string, s2: "CURVETO"] => curveTo,
String.Equivalent[s1: string, s2: "FINDOPERATOR"] => findOperator,
String.Equivalent[s1: string, s2: "GETP"] => getP,
String.Equivalent[s1: string, s2: "MAKEFONT"] => makeFont,
String.Equivalent[s1: string, s2: "MAKEOUTLINEODD"] => makeOutlineOdd,
String.Equivalent[s1: string, s2: "MAKESAMPLEDCOLOR"] => makeSampledColor,
String.Equivalent[s1: string, s2: "MAKET"] => makeT,
String.Equivalent[s1: string, s2: "MASKCHAR"] => maskChar,
String.Equivalent[s1: string, s2: "MASKDASHEDSTROKE"] => maskDashedStroke,
String.Equivalent[s1: string, s2: "MASKSTROKECLOSED"] => maskStrokeClosed,
String.Equivalent[s1: string, s2: "SETSAMPLEDBLACK"] => setSampledBlack,
String.Equivalent[s1: string, s2: "SETSAMPLEDCOLOR"] => setSampledColor,
String.Equivalent[s1: string, s2: "SHOWANDFIXEDXREL"] => showAndFixedXRel,
ENDCASE => LAST[LongOperator];
}.