165 lines
23 KiB
Plaintext
165 lines
23 KiB
Plaintext
<Keyword>with</Keyword><Normal Text> Ada</Normal Text><Symbol>.</Symbol><Normal Text>Containers</Normal Text><Symbol>.</Symbol><Normal Text>Vectors;</Normal Text><br/>
|
|
<Keyword>with</Keyword><Normal Text> Ada</Normal Text><Symbol>.</Symbol><Normal Text>Strings; </Normal Text><Keyword>use</Keyword><Normal Text> Ada</Normal Text><Symbol>.</Symbol><Normal Text>Strings;</Normal Text><br/>
|
|
<Keyword>with</Keyword><Normal Text> Put_Title;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Keyword>procedure</Keyword><Normal Text> LAL_DDA </Normal Text><Keyword>is</Keyword><br/>
|
|
<Normal Text> Collection </Normal Text><Symbol>:</Symbol><Normal Text> Repinfo_Collection;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> A_Basic_Record </Normal Text><Symbol>:</Symbol><Normal Text> Basic_Record </Normal Text><Symbol>:=</Symbol><Normal Text> Basic_Record'</Normal Text><Symbol>(</Symbol><Normal Text>A </Normal Text><Symbol>=></Symbol><Normal Text> </Normal Text><Decimal>42</Decimal><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> Another_Basic_Record </Normal Text><Symbol>:</Symbol><Normal Text> Basic_Record </Normal Text><Symbol>:=</Symbol><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>A </Normal Text><Symbol>=></Symbol><Normal Text> </Normal Text><Decimal>42</Decimal><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> Nix </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>constant</Keyword><Normal Text> Null_Record </Normal Text><Symbol>:=</Symbol><Normal Text> </Normal Text><Symbol>(</Symbol><Keyword>null</Keyword><Normal Text> </Normal Text><Keyword>record</Keyword><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>procedure</Keyword><Normal Text> Process_Type_Decl </Normal Text><Symbol>(</Symbol><Normal Text>Decl </Normal Text><Symbol>:</Symbol><Normal Text> Base_Type_Decl</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Comment>-- Display all representation information that is available in</Comment><br/>
|
|
<Normal Text> </Normal Text><Comment>-- ``Collection`` for this type declaration.</Comment><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>procedure</Keyword><Normal Text> Process_Variants</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>Variants </Normal Text><Symbol>:</Symbol><Normal Text> Variant_Representation_Array; Prefix </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Data Type>String</Data Type><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Comment>-- Display all representation information for the given record variants.</Comment><br/>
|
|
<Normal Text> </Normal Text><Comment>-- ``Prefix`` is used as a prefix for all printed lines.</Comment><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>package</Keyword><Normal Text> Expr_Vectors </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Keyword>new</Keyword><Normal Text> Ada</Normal Text><Symbol>.</Symbol><Normal Text>Containers</Normal Text><Symbol>.</Symbol><Normal Text>Vectors </Normal Text><Symbol>(</Symbol><Normal Text>Positive</Normal Text><Symbol>,</Symbol><Normal Text> Expr</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>use</Keyword><Normal Text> </Normal Text><Keyword>type</Keyword><Normal Text> Expr_Vectors</Normal Text><Symbol>.</Symbol><Normal Text>Vector;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>package</Keyword><Normal Text> Expr_Vector_Vectors </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Keyword>new</Keyword><Normal Text> Ada</Normal Text><Symbol>.</Symbol><Normal Text>Containers</Normal Text><Symbol>.</Symbol><Normal Text>Vectors</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>Positive</Normal Text><Symbol>,</Symbol><Normal Text> Expr_Vectors</Normal Text><Symbol>.</Symbol><Normal Text>Vector</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> Test_Discriminants</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>Decl </Normal Text><Symbol>:</Symbol><Normal Text> Base_Type_Decl</Normal Text><Symbol>)</Symbol><Normal Text> </Normal Text><Keyword>return</Keyword><Normal Text> Expr_Vector_Vectors</Normal Text><Symbol>.</Symbol><Normal Text>Vector;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Comment>-- Fetch the vector of discriminants to use for testing from nearby Test</Comment><br/>
|
|
<Normal Text> </Normal Text><Comment>-- pragmas.</Comment><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>procedure</Keyword><Normal Text> Error </Normal Text><Symbol>(</Symbol><Normal Text>Node </Normal Text><Symbol>:</Symbol><Normal Text> Ada_Node'Class; Message </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Data Type>String</Data Type><Symbol>)</Symbol><Normal Text> </Normal Text><Keyword>with</Keyword><Normal Text> </Normal Text><Pragmas>No_Return</Pragmas><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Comment>-- Abort the App with the given error ``Message``, contextualized using</Comment><br/>
|
|
<Normal Text> </Normal Text><Comment>-- ``Node`` 's source location.</Comment><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>package</Keyword><Normal Text> App </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Keyword>new</Keyword><Normal Text> Libadalang</Normal Text><Symbol>.</Symbol><Normal Text>Helpers</Normal Text><Symbol>.</Symbol><Normal Text>App</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>Name </Normal Text><Symbol>=></Symbol><Normal Text> </Normal Text><String>"lal_dda"</String><Symbol>,</Symbol><br/>
|
|
<Normal Text> Description </Normal Text><Symbol>=></Symbol><br/>
|
|
<Normal Text> </Normal Text><String>"Exercize Libadalang's Data_Decomposition API on type declarations"</String><Symbol>,</Symbol><br/>
|
|
<Normal Text> App_Setup </Normal Text><Symbol>=></Symbol><Normal Text> App_Setup</Normal Text><Symbol>,</Symbol><br/>
|
|
<Normal Text> Process_Unit </Normal Text><Symbol>=></Symbol><Normal Text> Process_Unit</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>package</Keyword><Normal Text> Args </Normal Text><Keyword>is</Keyword><br/>
|
|
<Normal Text> </Normal Text><Keyword>use</Keyword><Normal Text> GNATCOLL</Normal Text><Symbol>.</Symbol><Normal Text>Opt_Parse;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>package</Keyword><Normal Text> Rep_Info_Files </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Keyword>new</Keyword><Normal Text> Parse_Option_List</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>App</Normal Text><Symbol>.</Symbol><Normal Text>Args</Normal Text><Symbol>.</Symbol><Normal Text>Parser</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><String>"-i"</String><Symbol>,</Symbol><Normal Text> </Normal Text><String>"--rep-info-file"</String><Symbol>,</Symbol><br/>
|
|
<Normal Text> Arg_Type </Normal Text><Symbol>=></Symbol><Normal Text> Unbounded_String</Normal Text><Symbol>,</Symbol><br/>
|
|
<Normal Text> Accumulate </Normal Text><Symbol>=></Symbol><Normal Text> True</Normal Text><Symbol>,</Symbol><br/>
|
|
<Normal Text> Help </Normal Text><Symbol>=></Symbol><Normal Text> </Normal Text><String>"Output for the compiler's -gnatR4j option"</String><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>end</Keyword><Normal Text> Args;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Comment>---------------</Comment><br/>
|
|
<Normal Text> </Normal Text><Comment>-- App_Setup --</Comment><br/>
|
|
<Normal Text> </Normal Text><Comment>---------------</Comment><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>procedure</Keyword><Normal Text> App_Setup </Normal Text><Symbol>(</Symbol><Normal Text>Context </Normal Text><Symbol>:</Symbol><Normal Text> App_Context; Jobs </Normal Text><Symbol>:</Symbol><Normal Text> App_Job_Context_Array</Normal Text><Symbol>)</Symbol><Normal Text> </Normal Text><Keyword>is</Keyword><br/>
|
|
<Normal Text> </Normal Text><Keyword>pragma</Keyword><Normal Text> Unreferenced </Normal Text><Symbol>(</Symbol><Normal Text>Context</Normal Text><Symbol>,</Symbol><Normal Text> Jobs</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>begin</Keyword><br/>
|
|
<Normal Text> Collection </Normal Text><Symbol>:=</Symbol><Normal Text> Load </Normal Text><Symbol>(</Symbol><Normal Text>Filename_Array </Normal Text><Symbol>(</Symbol><Normal Text>Args</Normal Text><Symbol>.</Symbol><Normal Text>Rep_Info_Files</Normal Text><Symbol>.</Symbol><Normal Text>Get</Normal Text><Symbol>))</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>exception</Keyword><br/>
|
|
<Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> Exc </Normal Text><Symbol>:</Symbol><Normal Text> Loading_Error </Normal Text><Symbol>=></Symbol><br/>
|
|
<Normal Text> Put_Line</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Symbol>(</Symbol><String>"Loading_Error raised while loading representation information:"</String><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> Put_Line </Normal Text><Symbol>(</Symbol><Normal Text>Exception_Message </Normal Text><Symbol>(</Symbol><Normal Text>Exc</Normal Text><Symbol>))</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> New_Line;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>end</Keyword><Normal Text> App_Setup;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Comment>------------------</Comment><br/>
|
|
<Normal Text> </Normal Text><Comment>-- Process_Unit --</Comment><br/>
|
|
<Normal Text> </Normal Text><Comment>------------------</Comment><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>procedure</Keyword><Normal Text> Process_Unit </Normal Text><Symbol>(</Symbol><Normal Text>Context </Normal Text><Symbol>:</Symbol><Normal Text> App_Job_Context; Unit </Normal Text><Symbol>:</Symbol><Normal Text> Analysis_Unit</Normal Text><Symbol>)</Symbol><Normal Text> </Normal Text><Keyword>is</Keyword><br/>
|
|
<Normal Text> </Normal Text><Keyword>pragma</Keyword><Normal Text> Unreferenced </Normal Text><Symbol>(</Symbol><Normal Text>Context</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> Process </Normal Text><Symbol>(</Symbol><Normal Text>Node </Normal Text><Symbol>:</Symbol><Normal Text> Ada_Node'Class</Normal Text><Symbol>)</Symbol><Normal Text> </Normal Text><Keyword>return</Keyword><Normal Text> Visit_Status;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> Process </Normal Text><Symbol>(</Symbol><Normal Text>Node </Normal Text><Symbol>:</Symbol><Normal Text> Ada_Node'Class</Normal Text><Symbol>)</Symbol><Normal Text> </Normal Text><Keyword>return</Keyword><Normal Text> Visit_Status </Normal Text><Keyword>is</Keyword><br/>
|
|
<Normal Text> </Normal Text><Keyword>begin</Keyword><br/>
|
|
<Normal Text> </Normal Text><Keyword>case</Keyword><Normal Text> Node</Normal Text><Symbol>.</Symbol><Normal Text>Kind </Normal Text><Keyword>is</Keyword><br/>
|
|
<Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> Ada_Base_Type_Decl </Normal Text><Symbol>=></Symbol><br/>
|
|
<Normal Text> Process_Type_Decl </Normal Text><Symbol>(</Symbol><Normal Text>Node</Normal Text><Symbol>.</Symbol><Normal Text>As_Base_Type_Decl</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> Ada_Pragma_Node </Normal Text><Symbol>=></Symbol><br/>
|
|
<Normal Text> </Normal Text><Keyword>declare</Keyword><br/>
|
|
<Normal Text> PN </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>constant</Keyword><Normal Text> Pragma_Node </Normal Text><Symbol>:=</Symbol><Normal Text> Node</Normal Text><Symbol>.</Symbol><Normal Text>As_Pragma_Node;</Normal Text><br/>
|
|
<Normal Text> Name </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>constant</Keyword><Normal Text> Text_Type </Normal Text><Symbol>:=</Symbol><Normal Text> To_Lower </Normal Text><Symbol>(</Symbol><Normal Text>PN</Normal Text><Symbol>.</Symbol><Normal Text>F_Id</Normal Text><Symbol>.</Symbol><Normal Text>Text</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> Decl </Normal Text><Symbol>:</Symbol><Normal Text> Ada_Node;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>begin</Keyword><br/>
|
|
<Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> Name </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"test_object_type"</String><Normal Text> </Normal Text><Keyword>then</Keyword><br/>
|
|
<Normal Text> Decl </Normal Text><Symbol>:=</Symbol><Normal Text> PN</Normal Text><Symbol>.</Symbol><Normal Text>Previous_Sibling;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> Decl</Normal Text><Symbol>.</Symbol><Normal Text>Kind </Normal Text><Symbol>/=</Symbol><Normal Text> Ada_Object_Decl </Normal Text><Keyword>then</Keyword><br/>
|
|
<Normal Text> Error</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>Node</Normal Text><Symbol>,</Symbol><br/>
|
|
<Normal Text> </Normal Text><String>"previous declaration must be an object"</String><br/>
|
|
<Normal Text> </Normal Text><Symbol>&</Symbol><Normal Text> </Normal Text><String>" declaration"</String><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>end if</Keyword><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> Process_Type_Decl</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>Decl</Normal Text><Symbol>.</Symbol><Normal Text>As_Object_Decl</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>F_Type_Expr</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text>P_Designated_Type_Decl</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>end if</Keyword><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> I </Normal Text><Symbol>></Symbol><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text> </Normal Text><Keyword>then</Keyword><br/>
|
|
<Normal Text> Put </Normal Text><Symbol>(</Symbol><String>", "</String><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>end if</Keyword><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>end</Keyword><Normal Text>;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>when</Keyword><Normal Text> </Normal Text><Keyword>others</Keyword><Normal Text> </Normal Text><Symbol>=></Symbol><br/>
|
|
<Normal Text> </Normal Text><Keyword>null</Keyword><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>end case</Keyword><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>return</Keyword><Normal Text> Into;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>end</Keyword><Normal Text> Process;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>begin</Keyword><br/>
|
|
<Normal Text> Put_Title</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Symbol>(</Symbol><Char>'#'</Char><Symbol>,</Symbol><Normal Text> </Normal Text><String>"Analyzing "</String><Normal Text> </Normal Text><Symbol>&</Symbol><Normal Text> Ada</Normal Text><Symbol>.</Symbol><Normal Text>Directories</Normal Text><Symbol>.</Symbol><Normal Text>Simple_Name </Normal Text><Symbol>(</Symbol><Normal Text>Unit</Normal Text><Symbol>.</Symbol><Normal Text>Get_Filename</Normal Text><Symbol>))</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>if</Keyword><Normal Text> Unit</Normal Text><Symbol>.</Symbol><Normal Text>Has_Diagnostics </Normal Text><Keyword>then</Keyword><br/>
|
|
<Normal Text> </Normal Text><Keyword>for</Keyword><Normal Text> D </Normal Text><Keyword>of</Keyword><Normal Text> Unit</Normal Text><Symbol>.</Symbol><Normal Text>Diagnostics </Normal Text><Keyword>loop</Keyword><br/>
|
|
<Normal Text> Put_Line </Normal Text><Symbol>(</Symbol><Normal Text>Unit</Normal Text><Symbol>.</Symbol><Normal Text>Format_GNU_Diagnostic </Normal Text><Symbol>(</Symbol><Normal Text>D</Normal Text><Symbol>))</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>end loop</Keyword><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> New_Line;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>return</Keyword><Normal Text>;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>elsif</Keyword><Normal Text> </Normal Text><Keyword>not</Keyword><Normal Text> Unit</Normal Text><Symbol>.</Symbol><Normal Text>Root</Normal Text><Symbol>.</Symbol><Normal Text>Is_Null </Normal Text><Keyword>then</Keyword><br/>
|
|
<Normal Text> Unit</Normal Text><Symbol>.</Symbol><Normal Text>Root</Normal Text><Symbol>.</Symbol><Normal Text>Traverse </Normal Text><Symbol>(</Symbol><Normal Text>Process'Access</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>end if</Keyword><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>end</Keyword><Normal Text> Process_Unit;</Normal Text><br/>
|
|
<Keyword>end</Keyword><Normal Text> LAL_DDA;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Keyword>type</Keyword><Normal Text> Car </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Keyword>record</Keyword><br/>
|
|
<Normal Text> Identity </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Data Type>Long_Long_Integer</Data Type><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> Number_Wheels </Normal Text><Symbol>:</Symbol><Normal Text> Positive </Normal Text><Keyword>range</Keyword><Normal Text> </Normal Text><Decimal>1</Decimal><Normal Text> </Normal Text><Symbol>..</Symbol><Normal Text> </Normal Text><Base>16#</Base><Decimal>FF</Decimal><Base>#</Base><Exponent>E1</Exponent><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> Number_Wheels </Normal Text><Symbol>:</Symbol><Normal Text> Positive </Normal Text><Keyword>range</Keyword><Normal Text> </Normal Text><Base>16#</Base><Float>F.FF</Float><Base>#</Base><Exponent>E+2</Exponent><Normal Text> </Normal Text><Symbol>..</Symbol><Normal Text> </Normal Text><Base>2#</Base><Decimal>1111_1111</Decimal><Base>#</Base><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> Paint </Normal Text><Symbol>:</Symbol><Normal Text> Color;</Normal Text><br/>
|
|
<Normal Text> Horse_Power_kW </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Data Type>Float</Data Type><Normal Text> </Normal Text><Keyword>range</Keyword><Normal Text> </Normal Text><Float>0.0</Float><Normal Text> </Normal Text><Symbol>..</Symbol><Normal Text> </Normal Text><Float>2_000.0</Float><Normal Text>;</Normal Text><br/>
|
|
<Normal Text> Consumption </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Data Type>Float</Data Type><Normal Text> </Normal Text><Keyword>range</Keyword><Normal Text> </Normal Text><Float>0.0</Float><Normal Text> </Normal Text><Symbol>..</Symbol><Normal Text> </Normal Text><Float>100.0</Float><Normal Text>;</Normal Text><br/>
|
|
<Keyword>end record</Keyword><Normal Text>;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Keyword>type</Keyword><Normal Text> Null_Record </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Keyword>null</Keyword><Normal Text> </Normal Text><Keyword>record</Keyword><Normal Text>;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Keyword>type</Keyword><Normal Text> Traffic_Light_Access </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Keyword>access</Keyword><Normal Text> Mutable_Variant_Record;</Normal Text><br/>
|
|
<Normal Text>Any_Traffic_Light </Normal Text><Symbol>:</Symbol><Normal Text> Traffic_Light_Access </Normal Text><Symbol>:=</Symbol><br/>
|
|
<Normal Text> </Normal Text><Keyword>new</Keyword><Normal Text> Mutable_Variant_Record;</Normal Text><br/>
|
|
<Normal Text>Aliased_Traffic_Light </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Keyword>aliased</Keyword><Normal Text> Mutable_Variant_Record;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Keyword>pragma</Keyword><Normal Text> </Normal Text><Pragmas>Unchecked_Union</Pragmas><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>Union</Normal Text><Symbol>)</Symbol><Normal Text>;</Normal Text><br/>
|
|
<Keyword>pragma</Keyword><Normal Text> </Normal Text><Pragmas>Convention</Pragmas><Normal Text> </Normal Text><Symbol>(</Symbol><Normal Text>C</Normal Text><Symbol>,</Symbol><Normal Text> Union</Normal Text><Symbol>)</Symbol><Normal Text>; </Normal Text><Comment>-- optional</Comment><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Keyword>type</Keyword><Normal Text> Programmer </Normal Text><Keyword>is</Keyword><Normal Text> </Normal Text><Keyword>new</Keyword><Normal Text> Person</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>and</Keyword><Normal Text> Printable</Normal Text><br/>
|
|
<Keyword>with</Keyword><br/>
|
|
<Normal Text> </Normal Text><Keyword>record</Keyword><br/>
|
|
<Normal Text> Skilled_In </Normal Text><Symbol>:</Symbol><Normal Text> Language_List;</Normal Text><br/>
|
|
<Normal Text> </Normal Text><Keyword>end record</Keyword><Normal Text>;</Normal Text><br/>
|
|
<Normal Text></Normal Text><br/>
|
|
<Base>3#</Base><Float>12.112</Float><Base>#</Base><Exponent>e3</Exponent><br/>
|
|
<Base>3#</Base><Float>12.11</Float><Normal Text> </Normal Text><Keyword>use</Keyword><br/>
|
|
<Comment>-- ^ invalid</Comment><br/>
|
|
<Base>3#</Base><Float>12.2</Float><Normal Text>3#e3</Normal Text><br/>
|
|
<Comment>-- ^ invalid</Comment><br/>
|
|
<Base>3#</Base><Float>12.11</Float><Normal Text>ds#</Normal Text><br/>
|
|
<Comment>-- ^ invalid</Comment><br/>
|
|
<Decimal>1211</Decimal><Normal Text>ds</Normal Text><br/>
|
|
<Comment>-- ^ invalid</Comment><br/>
|