-- SaffronValueCompile2Impl.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by Rauen.pa at September 1, 1988 7:33:09 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronPGDef, SaffronAG1bDef, SaffronAG3Def, SaffronAG2Def, Rope, ThreeC4Support, SaffronBaseDef, BigIntegers, SaffronATDef; SaffronValueCompile2Impl: CEDAR PROGRAM IMPORTS SaffronPGDef, ThreeC4Support, SaffronBaseDef, SaffronATDef EXPORTS SaffronAG1bDef, SaffronAG3Def, SaffronAG2Def= BEGIN OPEN SaffronPGDef, SaffronAG1bDef, SaffronAG3Def, SaffronAG2Def, Rope, ThreeC4Support, SaffronBaseDef, BigIntegers, SaffronATDef; ExptypeopProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExptypeopProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["TypeOp expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; ExptypeopProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExptypeopProdData _ NARROW[tree.data]; IF treeData.TypeOp.procs.TypeOpIsCode[treeData.TypeOp] THEN {BEGIN dummy: ValueNode; contextTree1: ContextTreeNode; err: BOOLEAN; err _ Error["CompileExpression not implemented for code Exp.typeop"]; contextTree1 _ FakeDamageContextTree[contextTree]; dummy _ MakeDummy[""]; temp1 _ contextTree1; temp0 _ dummy; END; } ELSE {IF treeData.TypeOp.procs.TypeOpIsFirst[treeData.TypeOp] THEN {BEGIN contextTree1: ContextTreeNode; first: ValueNode; first _ treeData.TypeExp.procs.CompileFirstOfTypeExpression[treeData.TypeExp, contextTree, cs, targetType]; contextTree1 _ FakeDamageContextTree[contextTree]; temp1 _ contextTree1; temp0 _ first; END; } ELSE {IF treeData.TypeOp.procs.TypeOpIsLast[treeData.TypeOp] THEN {BEGIN contextTree1: ContextTreeNode; last: ValueNode; last _ treeData.TypeExp.procs.CompileLastOfTypeExpression[treeData.TypeExp, contextTree, cs, targetType]; contextTree1 _ FakeDamageContextTree[contextTree]; temp1 _ contextTree1; temp0 _ last; END; } ELSE {IF treeData.TypeOp.procs.TypeOpIsNil[treeData.TypeOp] THEN {BEGIN dummy: ValueNode; contextTree1: ContextTreeNode; err: BOOLEAN; err _ Error["CompileExpression not implemented for nil Exp.typeop"]; contextTree1 _ FakeDamageContextTree[contextTree]; dummy _ MakeDummy[""]; temp1 _ contextTree1; temp0 _ dummy; END; } ELSE {BEGIN dummy: ValueNode; contextTree1: ContextTreeNode; err: BOOLEAN; err _ Error["in CompileExpression for Exp.typeop"]; contextTree1 _ FakeDamageContextTree[contextTree]; dummy _ MakeDummy[""]; temp1 _ contextTree1; temp0 _ dummy; END; }; }; }; }; END END; ExptypeopProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExptypeopProdData _ NARROW[tree.data]; IF treeData.TypeOp.procs.TypeOpIsCode[treeData.TypeOp] THEN {BEGIN err: BOOLEAN; err _ Error["EvaluateExpression not implemented for code Exp.typeop"]; temp0 _ MakeDummy[""]; END; } ELSE {IF treeData.TypeOp.procs.TypeOpIsFirst[treeData.TypeOp] THEN {temp0 _ treeData.TypeExp.procs.EvaluateFirstOfTypeExpression[treeData.TypeExp, lc, fl, cs, targetType]; } ELSE {IF treeData.TypeOp.procs.TypeOpIsLast[treeData.TypeOp] THEN {temp0 _ treeData.TypeExp.procs.EvaluateLastOfTypeExpression[treeData.TypeExp, lc, fl, cs, targetType]; } ELSE {IF treeData.TypeOp.procs.TypeOpIsNil[treeData.TypeOp] THEN {BEGIN err: BOOLEAN; err _ Error["EvaluateExpression not implemented for nil Exp.typeop"]; temp0 _ MakeDummy[""]; END; } ELSE {BEGIN err: BOOLEAN; err _ Error["in EvaluateExpression for Exp.typeop"]; temp0 _ MakeDummy[""]; END; }; }; }; }; END END; ExpsizeProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpsizeProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["SIZE expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; ExpsizeProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpsizeProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["size"]; temp1 _ contextTree1; temp0 _ result; END; END END; ExpsizeProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpsizeProdData _ NARROW[tree.data]; temp0 _ MakeDummy["size"]; END END; Expsize2ProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expsize2ProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["SIZE2 expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; Expsize2ProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expsize2ProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["size2"]; temp1 _ contextTree1; temp0 _ result; END; END END; Expsize2ProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expsize2ProdData _ NARROW[tree.data]; temp0 _ MakeDummy["size2"]; END END; ExpbitsProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpbitsProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["BITS expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; ExpbitsProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpbitsProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["bits"]; temp1 _ contextTree1; temp0 _ result; END; END END; ExpbitsProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpbitsProdData _ NARROW[tree.data]; temp0 _ MakeDummy["bits"]; END END; Expbits2ProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expbits2ProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["BITS2 expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; Expbits2ProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expbits2ProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["bits2"]; temp1 _ contextTree1; temp0 _ result; END; END END; Expbits2ProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expbits2ProdData _ NARROW[tree.data]; temp0 _ MakeDummy["bits2"]; END END; ExpbytesProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpbytesProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["BYTES expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; ExpbytesProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpbytesProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["bytes"]; temp1 _ contextTree1; temp0 _ result; END; END END; ExpbytesProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpbytesProdData _ NARROW[tree.data]; temp0 _ MakeDummy["bytes"]; END END; Expbytes2ProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expbytes2ProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["BYTES2 expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; Expbytes2ProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expbytes2ProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["bytes2"]; temp1 _ contextTree1; temp0 _ result; END; END END; Expbytes2ProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expbytes2ProdData _ NARROW[tree.data]; temp0 _ MakeDummy["bytes2"]; END END; ExpunitsProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpunitsProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["UNITS expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; ExpunitsProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpunitsProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["units"]; temp1 _ contextTree1; temp0 _ result; END; END END; ExpunitsProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpunitsProdData _ NARROW[tree.data]; temp0 _ MakeDummy["units"]; END END; Expunits2ProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expunits2ProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["UNITS2 expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; Expunits2ProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expunits2ProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["units2"]; temp1 _ contextTree1; temp0 _ result; END; END END; Expunits2ProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expunits2ProdData _ NARROW[tree.data]; temp0 _ MakeDummy["units2"]; END END; ExpwordsProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpwordsProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["WORDS expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; ExpwordsProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpwordsProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["words"]; temp1 _ contextTree1; temp0 _ result; END; END END; ExpwordsProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpwordsProdData _ NARROW[tree.data]; temp0 _ MakeDummy["words"]; END END; Expwords2ProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expwords2ProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["WORDS2 expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; Expwords2ProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expwords2ProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["words2"]; temp1 _ contextTree1; temp0 _ result; END; END END; Expwords2ProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expwords2ProdData _ NARROW[tree.data]; temp0 _ MakeDummy["words2"]; END END; ExpistypeProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpistypeProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["ISTYPE expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; ExpistypeProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpistypeProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["istype"]; temp1 _ contextTree1; temp0 _ result; END; END END; ExpistypeProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpistypeProdData _ NARROW[tree.data]; temp0 _ MakeDummy["istype"]; END END; ExpaddressProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpaddressProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["@ expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; ExpaddressProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpaddressProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["address"]; temp1 _ contextTree1; temp0 _ result; END; END END; ExpaddressProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpaddressProdData _ NARROW[tree.data]; temp0 _ MakeDummy["address"]; END END; ExpdescriptorProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpdescriptorProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["Descriptor used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; ExpdescriptorProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpdescriptorProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["descriptor"]; temp1 _ contextTree1; temp0 _ result; END; END END; ExpdescriptorProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpdescriptorProdData _ NARROW[tree.data]; temp0 _ MakeDummy["descriptor"]; END END; ExperrorProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["ERROR used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; ExperrorProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["error"]; temp1 _ contextTree1; temp0 _ result; END; END END; ExperrorProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ MakeDummy["error"]; END END; ExptransferProdCompileLValue: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode] RETURNS[temp0: ParameterizedFieldDescriptorNode, temp1: TypeGraphNodeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExptransferProdData _ NARROW[tree.data]; BEGIN pfd: ParameterizedFieldDescriptorNode; tgn: TypeGraphNodeNode; err: BOOLEAN; err _ Error["Transfer expression used as l-value"]; tgn _ GetIntrinsicBooleanType[cs]; pfd _ EmptyPFD[]; temp1 _ tgn; temp0 _ pfd; END; END END; ExptransferProdCompileExpression: PUBLIC PROC[ref: REF ANY, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExptransferProdData _ NARROW[tree.data]; BEGIN result: ValueNode; contextTree1: ContextTreeNode; contextTree1 _ FakeDamageContextTree[contextTree]; result _ MakeDummy["transfer"]; temp1 _ contextTree1; temp0 _ result; END; END END; ExptransferProdEvaluateExpression: PUBLIC PROC[ref: REF ANY, lc: LocalContextNode, fl: FieldListNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExptransferProdData _ NARROW[tree.data]; temp0 _ MakeDummy["transfer"]; END END; NumdecimalProdIntegerValueFromLiteral: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BigINT] = BEGIN tree: NumNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: NumdecimalProdData _ NARROW[tree.data]; BEGIN digits: ROPE; digits _ RopeFromDecimalnum[treeData.Decimalnum]; temp0 _ ParseIntegerLiteral[digits, 10]; END; END END; NumoctalProdIntegerValueFromLiteral: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BigINT] = BEGIN tree: NumNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: NumoctalProdData _ NARROW[tree.data]; BEGIN digits: ROPE; digits _ RopeFromOctalnum[treeData.Octalnum]; temp0 _ ParseIntegerLiteral[digits, 8]; END; END END; NumhexProdIntegerValueFromLiteral: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BigINT] = BEGIN tree: NumNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: NumhexProdData _ NARROW[tree.data]; BEGIN digits: ROPE; digits _ RopeFromHexnum[treeData.Hexnum]; temp0 _ ParseIntegerLiteral[digits, 16]; END; END END; AddOpplusProdIsMinus: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: AddOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; AddOpplusProdIsPlus: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: AddOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; AddOpminusProdIsMinus: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: AddOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; AddOpminusProdIsPlus: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: AddOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; MultOptimesProdIsMod: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MultOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; MultOptimesProdIsDivide: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MultOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; MultOptimesProdIsTimes: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MultOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; MultOpdivideProdIsMod: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MultOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; MultOpdivideProdIsDivide: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MultOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; MultOpdivideProdIsTimes: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MultOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; MultOpmodProdIsMod: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MultOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; MultOpmodProdIsDivide: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MultOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; MultOpmodProdIsTimes: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: MultOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; RelopeqProdGetRelationOp: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: RelationOp] = BEGIN tree: RelopNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ RelationOp.eq; END END; RelopneProdGetRelationOp: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: RelationOp] = BEGIN tree: RelopNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ RelationOp.ne; END END; RelopltProdGetRelationOp: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: RelationOp] = BEGIN tree: RelopNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ RelationOp.lt; END END; RelopleProdGetRelationOp: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: RelationOp] = BEGIN tree: RelopNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ RelationOp.le; END END; RelopgtProdGetRelationOp: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: RelationOp] = BEGIN tree: RelopNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ RelationOp.gt; END END; RelopgeProdGetRelationOp: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: RelationOp] = BEGIN tree: RelopNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ RelationOp.ge; END END; InitializationemptyProdGetInitialValue: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ValueNode] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ MakeDummy["Initialization.empty"]; END END; InitializationemptyProdInitializationIsAssignment: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; InitializationemptyProdInitializationIsBinding: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; InitializationemptyProdInitializationIsEmpty: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; InitializationbindingProdGetInitialValue: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ValueNode] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitializationbindingProdData _ NARROW[tree.data]; temp0 _ treeData.InitialValue.procs.GetInitialValue[treeData.InitialValue]; END END; InitializationbindingProdInitializationIsAssignment: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitializationbindingProdData _ NARROW[tree.data]; temp0 _ False[]; END END; InitializationbindingProdInitializationIsBinding: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitializationbindingProdData _ NARROW[tree.data]; temp0 _ True[]; END END; InitializationbindingProdInitializationIsEmpty: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitializationbindingProdData _ NARROW[tree.data]; temp0 _ False[]; END END; InitializationassignmentProdGetInitialValue: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ValueNode] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitializationassignmentProdData _ NARROW[tree.data]; temp0 _ treeData.InitialValue.procs.GetInitialValue[treeData.InitialValue]; END END; InitializationassignmentProdInitializationIsAssignment: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitializationassignmentProdData _ NARROW[tree.data]; temp0 _ True[]; END END; InitializationassignmentProdInitializationIsBinding: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitializationassignmentProdData _ NARROW[tree.data]; temp0 _ False[]; END END; InitializationassignmentProdInitializationIsEmpty: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitializationassignmentProdData _ NARROW[tree.data]; temp0 _ False[]; END END; InitialValuetrashProdGetInitialValue: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ValueNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ MakeDummy["InitialValue.trash"]; END END; InitialValuecodeProdGetInitialValue: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ValueNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ MakeDummy["InitialValue.code"]; END END; InitialValueexpProdGetInitialValue: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ValueNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitialValueexpProdData _ NARROW[tree.data]; temp0 _ MakeUnparsedValue[treeData.Exp]; END END; InitialValueblockProdGetInitialValue: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ValueNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitialValueblockProdData _ NARROW[tree.data]; temp0 _ MakeDummy["InitialValue.block"]; END END; InitialValuemachinecodeProdGetInitialValue: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: ValueNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitialValuemachinecodeProdData _ NARROW[tree.data]; temp0 _ MakeDummy["InitialValue.machinecode"]; END END; TypeOpcodeProdTypeOpIsNil: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; TypeOpcodeProdTypeOpIsLast: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; TypeOpcodeProdTypeOpIsFirst: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; TypeOpcodeProdTypeOpIsCode: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; TypeOpfirstProdTypeOpIsNil: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; TypeOpfirstProdTypeOpIsLast: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; TypeOpfirstProdTypeOpIsFirst: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; TypeOpfirstProdTypeOpIsCode: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; TypeOplastProdTypeOpIsNil: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; TypeOplastProdTypeOpIsLast: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; TypeOplastProdTypeOpIsFirst: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; TypeOplastProdTypeOpIsCode: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; TypeOpnilProdTypeOpIsNil: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ True[]; END END; TypeOpnilProdTypeOpIsLast: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; TypeOpnilProdTypeOpIsFirst: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; TypeOpnilProdTypeOpIsCode: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BOOLEAN] = BEGIN tree: TypeOpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ False[]; END END; QualifierprefixopProdCompileQualifiedExpression: PUBLIC PROC[ref: REF ANY, expValue: ValueNode, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: QualifierNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: QualifierprefixopProdData _ NARROW[tree.data]; temp1 _ FakeDamageContextTree[contextTree]; temp0 _ MakeDummy["Qualifier.prefixop"]; END END; QualifiertypeopProdCompileQualifiedExpression: PUBLIC PROC[ref: REF ANY, expValue: ValueNode, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: QualifierNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: QualifiertypeopProdData _ NARROW[tree.data]; temp1 _ FakeDamageContextTree[contextTree]; temp0 _ MakeDummy["Qualifier.prefixop"]; END END; QualifiersizeProdCompileQualifiedExpression: PUBLIC PROC[ref: REF ANY, expValue: ValueNode, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: QualifierNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp1 _ FakeDamageContextTree[contextTree]; temp0 _ MakeDummy["Qualifier.prefixop"]; END END; QualifierbitsProdCompileQualifiedExpression: PUBLIC PROC[ref: REF ANY, expValue: ValueNode, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: QualifierNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp1 _ FakeDamageContextTree[contextTree]; temp0 _ MakeDummy["Qualifier.prefixop"]; END END; QualifierbytesProdCompileQualifiedExpression: PUBLIC PROC[ref: REF ANY, expValue: ValueNode, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: QualifierNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp1 _ FakeDamageContextTree[contextTree]; temp0 _ MakeDummy["Qualifier.prefixop"]; END END; QualifierunitsProdCompileQualifiedExpression: PUBLIC PROC[ref: REF ANY, expValue: ValueNode, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: QualifierNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp1 _ FakeDamageContextTree[contextTree]; temp0 _ MakeDummy["Qualifier.prefixop"]; END END; QualifierwordsProdCompileQualifiedExpression: PUBLIC PROC[ref: REF ANY, expValue: ValueNode, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: QualifierNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp1 _ FakeDamageContextTree[contextTree]; temp0 _ MakeDummy["Qualifier.prefixop"]; END END; QualifierapplyProdCompileQualifiedExpression: PUBLIC PROC[ref: REF ANY, expValue: ValueNode, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: QualifierNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: QualifierapplyProdData _ NARROW[tree.data]; temp1 _ FakeDamageContextTree[contextTree]; temp0 _ MakeDummy["Qualifier.apply"]; END END; QualifierselectProdCompileQualifiedExpression: PUBLIC PROC[ref: REF ANY, expValue: ValueNode, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: QualifierNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: QualifierselectProdData _ NARROW[tree.data]; temp1 _ FakeDamageContextTree[contextTree]; temp0 _ MakeDummy["Qualifier.prefixop"]; END END; QualifierindirectProdCompileQualifiedExpression: PUBLIC PROC[ref: REF ANY, expValue: ValueNode, contextTree: ContextTreeNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: ContextTreeNode] = BEGIN tree: QualifierNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp1 _ FakeDamageContextTree[contextTree]; temp0 _ MakeDummy["Qualifier.prefixop"]; END END; END..