-- SaffronExpressionCompImpl.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by Rauen.pa at August 2, 1988 2:51:53 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronAG1aDef, SaffronAG1bDef, SaffronAG3Def, SaffronAG2Def, Rope, ThreeC4Support, SaffronBaseDef, BigIntegers, SaffronATDef; SaffronExpressionCompImpl: CEDAR PROGRAM IMPORTS ThreeC4Support, SaffronBaseDef, BigIntegers, SaffronATDef EXPORTS SaffronAG1aDef, SaffronAG1bDef, SaffronAG3Def, SaffronAG2Def= BEGIN OPEN SaffronAG1aDef, SaffronAG1bDef, SaffronAG3Def, SaffronAG2Def, Rope, ThreeC4Support, SaffronBaseDef, BigIntegers, SaffronATDef; ExpsumProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpsumProdData _ NARROW[tree.data]; BEGIN result: ValueNode; temp2: BOOLEAN; lhsType: TypeGraphNodeNode; rhsType: TypeGraphNodeNode; lhs: ValueNode; rhs: ValueNode; uncheckedRhs: ValueNode; localContext2: LocalContextNode; uncheckedLhs: ValueNode; localContext1: LocalContextNode; [uncheckedLhs, localContext1] _ treeData.Expleft.procs.CompileExpression[treeData.Expleft, localContext, cs, targetType]; [uncheckedRhs, localContext2] _ treeData.Expright.procs.CompileExpression[treeData.Expright, localContext1, cs, targetType]; rhs _ DemandNumber[uncheckedRhs]; lhs _ DemandNumber[uncheckedLhs]; rhsType _ Type[rhs]; lhsType _ Type[lhs]; IF And[And[Static[lhs], Static[rhs]], And[ConformsToInteger[lhsType], ConformsToInteger[rhsType]]] THEN {IF temp2 _ treeData.AddOp.procs.IsPlus[treeData.AddOp] THEN { NULL; } ELSE {NULL; }; result _ CastIntegerValue[(IF temp2 THEN Add[RetrieveIntegerValue[lhs], RetrieveIntegerValue[rhs]] ELSE Sub[RetrieveIntegerValue[lhs], RetrieveIntegerValue[rhs]]), GetIntrinsicIntegerTypes[cs]]; } ELSE {result _ MakeDummy["code for a sum"]; }; temp1 _ localContext2; temp0 _ result; END; END END; ExpunarysumProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpunarysumProdData _ NARROW[tree.data]; BEGIN result: ValueNode; temp2: BOOLEAN; rhsType: TypeGraphNodeNode; rhs: ValueNode; uncheckedRhs: ValueNode; localContext1: LocalContextNode; [uncheckedRhs, localContext1] _ treeData.Exp.procs.CompileExpression[treeData.Exp, localContext, cs, targetType]; rhs _ DemandNumber[uncheckedRhs]; rhsType _ Type[rhs]; IF And[Static[rhs], ConformsToInteger[rhsType]] THEN {IF temp2 _ treeData.AddOp.procs.IsPlus[treeData.AddOp] THEN { NULL; } ELSE {NULL; }; result _ CastIntegerValue[(IF temp2 THEN RetrieveIntegerValue[rhs] ELSE Neg[RetrieveIntegerValue[rhs]]), GetIntrinsicIntegerTypes[cs]]; } ELSE {result _ MakeDummy["code for a unarysum"]; }; temp1 _ localContext1; temp0 _ result; END; END END; ExpproductProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpproductProdData _ NARROW[tree.data]; BEGIN result: ValueNode; temp3: BOOLEAN; temp2: BOOLEAN; lhsType: TypeGraphNodeNode; rhsType: TypeGraphNodeNode; lhs: ValueNode; rhs: ValueNode; uncheckedRhs: ValueNode; localContext2: LocalContextNode; uncheckedLhs: ValueNode; localContext1: LocalContextNode; [uncheckedLhs, localContext1] _ treeData.Expleft.procs.CompileExpression[treeData.Expleft, localContext, cs, targetType]; [uncheckedRhs, localContext2] _ treeData.Expright.procs.CompileExpression[treeData.Expright, localContext1, cs, targetType]; rhs _ DemandNumber[uncheckedRhs]; lhs _ DemandNumber[uncheckedLhs]; rhsType _ Type[rhs]; lhsType _ Type[lhs]; IF And[And[Static[lhs], Static[rhs]], And[ConformsToInteger[lhsType], ConformsToInteger[rhsType]]] THEN {IF temp3 _ treeData.MultOp.procs.IsTimes[treeData.MultOp] THEN { NULL; } ELSE {NULL; IF temp2 _ treeData.MultOp.procs.IsDivide[treeData.MultOp] THEN { NULL; } ELSE {NULL; }; }; result _ CastIntegerValue[(IF temp3 THEN Mul[RetrieveIntegerValue[lhs], RetrieveIntegerValue[rhs]] ELSE (IF temp2 THEN Div[RetrieveIntegerValue[lhs], RetrieveIntegerValue[rhs]] ELSE Mod[RetrieveIntegerValue[lhs], RetrieveIntegerValue[rhs]])), GetIntrinsicIntegerTypes[cs]]; } ELSE {result _ MakeDummy["code for a sum"]; }; temp1 _ localContext2; temp0 _ result; END; END END; ExporProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExporProdData _ NARROW[tree.data]; BEGIN result: ValueNode; type: TypeGraphNodeNode; lhs: ValueNode; rhs: ValueNode; uncheckedRhs: ValueNode; localContext2: LocalContextNode; uncheckedLhs: ValueNode; localContext1: LocalContextNode; [uncheckedLhs, localContext1] _ treeData.Expleft.procs.CompileExpression[treeData.Expleft, localContext, cs, targetType]; [uncheckedRhs, localContext2] _ treeData.Expright.procs.CompileExpression[treeData.Expright, localContext1, cs, targetType]; rhs _ DemandBoolean[uncheckedRhs]; lhs _ DemandBoolean[uncheckedLhs]; type _ GetIntrinsicBooleanType[cs]; IF And[Static[lhs], Static[rhs]] THEN {result _ MakeStaticBoolean[Or[BooleanValue[lhs], BooleanValue[rhs]], type]; } ELSE {result _ MakeDummy[""]; }; temp1 _ localContext2; temp0 _ result; END; END END; ExpandProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpandProdData _ NARROW[tree.data]; BEGIN result: ValueNode; type: TypeGraphNodeNode; lhs: ValueNode; rhs: ValueNode; uncheckedRhs: ValueNode; localContext2: LocalContextNode; uncheckedLhs: ValueNode; localContext1: LocalContextNode; [uncheckedLhs, localContext1] _ treeData.Expleft.procs.CompileExpression[treeData.Expleft, localContext, cs, targetType]; [uncheckedRhs, localContext2] _ treeData.Expright.procs.CompileExpression[treeData.Expright, localContext1, cs, targetType]; rhs _ DemandBoolean[uncheckedRhs]; lhs _ DemandBoolean[uncheckedLhs]; type _ GetIntrinsicBooleanType[cs]; IF And[Static[lhs], Static[rhs]] THEN {result _ MakeStaticBoolean[And[BooleanValue[lhs], BooleanValue[rhs]], type]; } ELSE {result _ MakeDummy[""]; }; temp1 _ localContext2; temp0 _ result; END; END END; ExpnotProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpnotProdData _ NARROW[tree.data]; BEGIN result: ValueNode; type: TypeGraphNodeNode; rhs: ValueNode; uncheckedRhs: ValueNode; localContext1: LocalContextNode; [uncheckedRhs, localContext1] _ treeData.Exp.procs.CompileExpression[treeData.Exp, localContext, cs, targetType]; rhs _ DemandBoolean[uncheckedRhs]; type _ GetIntrinsicBooleanType[cs]; IF Static[rhs] THEN {result _ MakeStaticBoolean[Not[BooleanValue[rhs]], type]; } ELSE {result _ MakeDummy[""]; }; temp1 _ localContext1; temp0 _ result; END; END END; ExprelationProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExprelationProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["relation"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpifthenelseProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpifthenelseProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["ifthenelse"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpselectProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpselectProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["select"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpassignProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpassignProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["assign"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpmultiassignProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpmultiassignProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["multiassign"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpidProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpidProdData _ NARROW[tree.data]; BEGIN localContext1: LocalContextNode; result: ValueNode; result _ LookupVariableOrConstantName[localContext, treeData.Id]; localContext1 _ FakeDamageContext[localContext]; temp1 _ localContext1; temp0 _ result; END; END END; ExpnumProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpnumProdData _ NARROW[tree.data]; BEGIN result: ValueNode; integerValue: BigINT; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; integerValue _ treeData.Num.procs.IntegerValueFromLiteral[treeData.Num]; result _ CastIntegerValue[integerValue, GetIntrinsicIntegerTypes[cs]]; temp1 _ localContext1; temp0 _ result; END; END END; ExpstringProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpstringProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["string"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpflnumProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpflnumProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["flnum"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpcharProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpcharProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["char"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpatomProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpatomProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["atom"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpnarrowProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpnarrowProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["narrow"]; temp1 _ localContext1; temp0 _ result; END; END END; ExploopholeProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExploopholeProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["loophole"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpapplyProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpapplyProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["apply"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpqualifierProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpqualifierProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["qualifier"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpexplistProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpexplistProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["explist"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpprefixopProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpprefixopProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["prefixop"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpvalProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpvalProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["val"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpallProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpallProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["all"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpnewProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpnewProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["new"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpconsProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpconsProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["cons"]; temp1 _ localContext1; temp0 _ result; END; END END; ExplistconsProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExplistconsProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["listcons"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpnilProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeStaticBoolean[False[], GetIntrinsicBooleanType[cs]]; temp1 _ localContext1; temp0 _ result; END; END END; ExptypeopProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExptypeopProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["typeop"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpsizeProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpsizeProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["size"]; temp1 _ localContext1; temp0 _ result; END; END END; Expsize2ProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expsize2ProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["size2"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpbitsProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpbitsProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["bits"]; temp1 _ localContext1; temp0 _ result; END; END END; Expbits2ProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expbits2ProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["bits2"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpbytesProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpbytesProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["bytes"]; temp1 _ localContext1; temp0 _ result; END; END END; Expbytes2ProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expbytes2ProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["bytes2"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpunitsProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpunitsProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["units"]; temp1 _ localContext1; temp0 _ result; END; END END; Expunits2ProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expunits2ProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["units2"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpwordsProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpwordsProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["words"]; temp1 _ localContext1; temp0 _ result; END; END END; Expwords2ProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: Expwords2ProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["words2"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpistypeProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpistypeProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["istype"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpaddressProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpaddressProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["address"]; temp1 _ localContext1; temp0 _ result; END; END END; ExpdescriptorProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExpdescriptorProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["descriptor"]; temp1 _ localContext1; temp0 _ result; END; END END; ExperrorProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["error"]; temp1 _ localContext1; temp0 _ result; END; END END; ExptransferProdCompileExpression: PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, cs: CompilerStateNode, targetType: TypeGraphNodeNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: ExpNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: ExptransferProdData _ NARROW[tree.data]; BEGIN result: ValueNode; localContext1: LocalContextNode; localContext1 _ FakeDamageContext[localContext]; result _ MakeDummy["transfer"]; temp1 _ localContext1; temp0 _ result; END; 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, tgn: TypeGraphNodeNode, localContext: LocalContextNode, cs: CompilerStateNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp1 _ FakeDamageContext[localContext]; temp0 _ MakeDefaultMeValue[]; 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, tgn: TypeGraphNodeNode, localContext: LocalContextNode, cs: CompilerStateNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitializationbindingProdData _ NARROW[tree.data]; [temp0, temp1] _ treeData.InitialValue.procs.GetInitialValue[treeData.InitialValue, tgn, localContext, cs]; 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, tgn: TypeGraphNodeNode, localContext: LocalContextNode, cs: CompilerStateNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: InitializationNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitializationassignmentProdData _ NARROW[tree.data]; [temp0, temp1] _ treeData.InitialValue.procs.GetInitialValue[treeData.InitialValue, tgn, localContext, cs]; 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, tgn: TypeGraphNodeNode, localContext: LocalContextNode, cs: CompilerStateNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp1 _ FakeDamageContext[localContext]; temp0 _ MakeTrash[tgn]; END END; InitialValuecodeProdGetInitialValue: PUBLIC PROC[ref: REF ANY, tgn: TypeGraphNodeNode, localContext: LocalContextNode, cs: CompilerStateNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp1 _ FakeDamageContext[localContext]; temp0 _ MakeDummy["InitialValue.code"]; END END; InitialValueexpProdGetInitialValue: PUBLIC PROC[ref: REF ANY, tgn: TypeGraphNodeNode, localContext: LocalContextNode, cs: CompilerStateNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitialValueexpProdData _ NARROW[tree.data]; temp1 _ FakeDamageContext[localContext]; temp0 _ MakeUnparsedValue[treeData.Exp]; END END; InitialValueblockProdGetInitialValue: PUBLIC PROC[ref: REF ANY, tgn: TypeGraphNodeNode, localContext: LocalContextNode, cs: CompilerStateNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitialValueblockProdData _ NARROW[tree.data]; temp1 _ FakeDamageContext[localContext]; temp0 _ MakeDummy["InitialValue.block"]; END END; InitialValuemachinecodeProdGetInitialValue: PUBLIC PROC[ref: REF ANY, tgn: TypeGraphNodeNode, localContext: LocalContextNode, cs: CompilerStateNode] RETURNS[temp0: ValueNode, temp1: LocalContextNode] = BEGIN tree: InitialValueNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: InitialValuemachinecodeProdData _ NARROW[tree.data]; temp1 _ FakeDamageContext[localContext]; temp0 _ MakeDummy["InitialValue.machinecode"]; END END; END..