2019-06-28 20:25:50 +03:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
< html >
< head >
2020-04-14 19:56:54 +03:00
< title > Frame Control< / title >
2020-05-03 03:20:55 +03:00
< link href = "../docs-assets/Breadcrumbs.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
2020-03-19 02:11:25 +02:00
< meta name = "viewport" content = "width=device-width initial-scale=1" >
2019-06-28 20:25:50 +03:00
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
< meta http-equiv = "Content-Language" content = "en-gb" >
2020-05-03 03:01:21 +03:00
2020-05-03 03:20:55 +03:00
< link href = "../docs-assets/Contents.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Progress.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Navigation.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Fonts.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Base.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
2020-05-03 03:01:21 +03:00
< script >
function togglePopup(material_id) {
var popup = document.getElementById(material_id);
popup.classList.toggle("show");
}
< / script >
2020-05-03 03:20:55 +03:00
< link href = "../docs-assets/Popups.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< link href = "../docs-assets/Colours.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
2020-04-14 19:56:54 +03:00
2019-06-28 20:25:50 +03:00
< / head >
2020-05-03 03:01:21 +03:00
< body class = "commentary-font" >
2020-03-19 02:11:25 +02:00
< nav role = "navigation" >
2020-04-14 19:56:54 +03:00
< h1 > < a href = "../index.html" >
2020-05-03 18:34:53 +03:00
< img src = "../docs-assets/Inform.png" height = 72" >
2020-04-14 19:56:54 +03:00
< / a > < / h1 >
< ul > < li > < a href = "../compiler.html" > compiler tools< / a > < / li >
2020-03-19 02:11:25 +02:00
< li > < a href = "../other.html" > other tools< / a > < / li >
< li > < a href = "../extensions.html" > extensions and kits< / a > < / li >
< li > < a href = "../units.html" > unit test tools< / a > < / li >
2020-04-14 19:56:54 +03:00
< / ul > < h2 > Compiler Webs< / h2 > < ul >
2020-03-19 02:11:25 +02:00
< li > < a href = "../inbuild/index.html" > inbuild< / a > < / li >
< li > < a href = "../inform7/index.html" > inform7< / a > < / li >
< li > < a href = "../inter/index.html" > inter< / a > < / li >
2020-04-14 19:56:54 +03:00
< / ul > < h2 > Inbuild Modules< / h2 > < ul >
< li > < a href = "../supervisor-module/index.html" > supervisor< / a > < / li >
< / ul > < h2 > Inform7 Modules< / h2 > < ul >
2020-03-19 02:11:25 +02:00
< li > < a href = "../core-module/index.html" > core< / a > < / li >
2020-08-27 17:50:24 +03:00
< li > < a href = "../assertions-module/index.html" > assertions< / a > < / li >
< li > < a href = "../values-module/index.html" > values< / a > < / li >
< li > < a href = "../knowledge-module/index.html" > knowledge< / a > < / li >
< li > < a href = "../imperative-module/index.html" > imperative< / a > < / li >
< li > < a href = "../runtime-module/index.html" > runtime< / a > < / li >
2020-03-19 02:11:25 +02:00
< li > < a href = "../if-module/index.html" > if< / a > < / li >
< li > < a href = "../multimedia-module/index.html" > multimedia< / a > < / li >
< li > < a href = "../index-module/index.html" > index< / a > < / li >
2020-04-14 19:56:54 +03:00
< / ul > < h2 > Inter Modules< / h2 > < ul >
< li > < a href = "../bytecode-module/index.html" > bytecode< / a > < / li >
2020-03-19 02:11:25 +02:00
< li > < a href = "../building-module/index.html" > building< / a > < / li >
2021-08-10 13:01:03 +03:00
< li > < a href = "../pipeline-module/index.html" > pipeline< / a > < / li >
< li > < a href = "index.html" > < span class = "selectedlink" > final< / span > < / a > < / li >
2020-05-20 02:02:28 +03:00
< / ul > < h2 > Services< / h2 > < ul >
2020-04-14 19:56:54 +03:00
< li > < a href = "../arch-module/index.html" > arch< / a > < / li >
2020-08-27 17:50:24 +03:00
< li > < a href = "../calculus-module/index.html" > calculus< / a > < / li >
2020-04-14 19:56:54 +03:00
< li > < a href = "../html-module/index.html" > html< / a > < / li >
2020-05-20 02:02:28 +03:00
< li > < a href = "../inflections-module/index.html" > inflections< / a > < / li >
2020-08-27 17:50:24 +03:00
< li > < a href = "../kinds-module/index.html" > kinds< / a > < / li >
2020-05-20 02:02:28 +03:00
< li > < a href = "../linguistics-module/index.html" > linguistics< / a > < / li >
< li > < a href = "../problems-module/index.html" > problems< / a > < / li >
2020-08-27 17:50:24 +03:00
< li > < a href = "../syntax-module/index.html" > syntax< / a > < / li >
< li > < a href = "../words-module/index.html" > words< / a > < / li >
2020-03-19 02:11:25 +02:00
< li > < a href = "../../../inweb/docs/foundation-module/index.html" > foundation< / a > < / li >
2020-04-14 19:56:54 +03:00
< / ul >
2020-03-19 02:11:25 +02:00
< / nav >
< main role = "main" >
2020-05-03 03:01:21 +03:00
<!-- Weave of 'Frame Control' generated by Inweb -->
< div class = "breadcrumbs" >
2021-08-10 13:01:03 +03:00
< ul class = "crumbs" > < li > < a href = "../index.html" > Home< / a > < / li > < li > < a href = "../compiler.html" > Inter Modules< / a > < / li > < li > < a href = "index.html" > final< / a > < / li > < li > < a href = "index.html#2" > Chapter 2: Mechanism< / a > < / li > < li > < b > Frame Control< / b > < / li > < / ul > < / div >
2020-05-03 03:01:21 +03:00
< p class = "purpose" > To manage the final-code process, at the frame level.< / p >
2020-08-27 17:50:24 +03:00
< p class = "commentary firstcommentary" > < a id = "SP1" class = "paragraph-anchor" > < / a > < b > § 1. < / b > < / p >
2020-05-03 03:01:21 +03:00
< pre class = "displayed-code all-displayed-code code-font" >
< span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > void_level< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 3< / span > < span class = "plain-syntax" > ;< / span >
< span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > temporary_generation< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::prepare< / span > < button class = "popup" onclick = "togglePopup('usagePopup1')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup1" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::prepare< / span > < / span > :< br / > Code Generation - < a href = "2-cg.html#SP8_1" > § 8.1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > ) {< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > void_level< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 3< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > temporary_generation< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::pre_iterate< / span > < button class = "popup" onclick = "togglePopup('usagePopup2')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup2" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::pre_iterate< / span > < / span > :< br / > Code Generation - < a href = "2-cg.html#SP8_2" > § 8.2< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > inter_tree< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > I< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > state< / span > < span class = "plain-syntax" > ) {< / span >
2021-08-06 21:48:18 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > = (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *) < / span > < span class = "identifier-syntax" > state< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_package< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > outer< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Packages::container< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > outer< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) || (< / span > < span class = "identifier-syntax" > Inter::Packages::is_codelike< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > outer< / span > < span class = "plain-syntax" > ) == < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > generated_segment< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > saved< / span > < span class = "plain-syntax" > =< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-cg.html#SP5" class = "function-link" > < span class = "function-syntax" > CodeGen::select< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < a href = "2-ft.html#SP4" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::general_segment< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ));< / span >
2021-08-06 21:48:18 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > switch< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > ID_IFLD< / span > < span class = "plain-syntax" > ]) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > CONSTANT_IST:< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > con_name< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > InterSymbolsTables::symbol_from_frame_data< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > DEFN_CONST_IFLD< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Inter::Constant::is_routine< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > con_name< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_package< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > code_block< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Constant::code_block< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > con_name< / span > < span class = "plain-syntax" > );< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-ft.html#SP15" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::begin_function< / span > < / a > < span class = "plain-syntax" > (1, < / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > con_name< / span > < span class = "plain-syntax" > );< / span >
2021-08-06 21:48:18 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > void_level< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Defn::get_level< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) + < / span > < span class = "constant-syntax" > 2< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > D< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Packages::definition< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > code_block< / span > < span class = "plain-syntax" > );< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::seek_locals< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > D< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < a href = "2-ft.html#SP15" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::end_function< / span > < / a > < span class = "plain-syntax" > (1, < / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > con_name< / span > < span class = "plain-syntax" > );< / span >
2021-08-06 21:48:18 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-cg.html#SP5" class = "function-link" > < span class = "function-syntax" > CodeGen::deselect< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > saved< / span > < span class = "plain-syntax" > );< / span >
2021-08-06 21:48:18 +03:00
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::seek_locals< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > switch< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > ID_IFLD< / span > < span class = "plain-syntax" > ]) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > CODE_IST:< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOCAL_IST:< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_package< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > pack< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Packages::container< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > var_name< / span > < span class = "plain-syntax" > =< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > InterSymbolsTables::local_symbol_from_id< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pack< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > DEFN_LOCAL_IFLD< / span > < span class = "plain-syntax" > ]);< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-ft.html#SP11" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::declare_local_variable< / span > < / a > < span class = "plain-syntax" > (1, < / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > var_name< / span > < span class = "plain-syntax" > );< / span >
2021-08-06 21:48:18 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOOP_THROUGH_INTER_CHILDREN< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > )< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::seek_locals< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > );< / span >
2021-08-06 21:48:18 +03:00
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::iterate< / span > < button class = "popup" onclick = "togglePopup('usagePopup3')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup3" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::iterate< / span > < / span > :< br / > Code Generation - < a href = "2-cg.html#SP8_2" > § 8.2< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > inter_tree< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > I< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > state< / span > < span class = "plain-syntax" > ) {< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > = (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *) < / span > < span class = "identifier-syntax" > state< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_package< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > outer< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Packages::container< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > outer< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) || (< / span > < span class = "identifier-syntax" > Inter::Packages::is_codelike< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > outer< / span > < span class = "plain-syntax" > ) == < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > generated_segment< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > saved< / span > < span class = "plain-syntax" > =< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-cg.html#SP5" class = "function-link" > < span class = "function-syntax" > CodeGen::select< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < a href = "2-ft.html#SP4" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::general_segment< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ));< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > switch< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > ID_IFLD< / span > < span class = "plain-syntax" > ]) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > CONSTANT_IST:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > INSTANCE_IST:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PROPERTYVALUE_IST:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > VARIABLE_IST:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > SPLAT_IST:< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-cg.html#SP5" class = "function-link" > < span class = "function-syntax" > CodeGen::deselect< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > saved< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
2021-08-13 01:31:23 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::frame< / span > < button class = "popup" onclick = "togglePopup('usagePopup4')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup4" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / span > :< br / > < a href = "2-fc.html#SP2" > § 2< / a > , < a href = "2-fc.html#SP3" > § 3< / a > < br / > Constants and Literals - < a href = "2-cal.html#SP2" > § 2< / a > < br / > Generating Inform 6 - < a href = "4-fi6.html#SP3_1" > § 3.1< / a > , < a href = "4-fi6.html#SP3_9" > § 3.9< / a > , < a href = "4-fi6.html#SP8" > § 8< / a > < br / > C References - < a href = "5-crf.html#SP2" > § 2< / a > < br / > C Assembly - < a href = "5-cas.html#SP3" > § 3< / a > < br / > C Program Control - < a href = "5-cpc.html#SP1_1" > § 1.1< / a > , < a href = "5-cpc.html#SP1_8" > § 1.8< / a > , < a href = "5-cpc.html#SP2" > § 2< / a > < br / > C Conditions - < a href = "5-ccn.html#SP2" > § 2< / a > , < a href = "5-ccn.html#SP2_1" > § 2.1< / a > , < a href = "5-ccn.html#SP2_2" > § 2.2< / a > < br / > C Function Model - < a href = "5-cfm.html#SP1" > § 1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > switch< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > ID_IFLD< / span > < span class = "plain-syntax" > ]) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > SYMBOL_IST:< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > CONSTANT_IST:< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > con_name< / span > < span class = "plain-syntax" > =< / span >
2021-04-15 00:57:48 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > InterSymbolsTables::symbol_from_frame_data< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > DEFN_CONST_IFLD< / span > < span class = "plain-syntax" > );< / span >
2021-04-25 01:35:10 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > con_name< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "no constant"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > con_name< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > metadata_key< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_tree< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > I< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > from< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Inter::Packages::container< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) == < / span > < span class = "identifier-syntax" > Site::main_package_if_it_exists< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > I< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > STDERR< / span > < span class = "plain-syntax" > , < / span > < span class = "string-syntax" > "Bad constant: %S\n"< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > con_name< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > symbol_name< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "constant defined in main"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Inter::Symbols::read_annotation< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > con_name< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > TEXT_LITERAL_IANN< / span > < span class = "plain-syntax" > ) == < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ) {< / span >
2020-07-01 02:58:55 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_ti< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ID< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > DATA_CONST_IFLD< / span > < span class = "plain-syntax" > ];< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > S< / span > < span class = "plain-syntax" > = < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::literal_text_at< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > ,< / span >
2020-05-11 17:21:29 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Inode::ID_to_text< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ID< / span > < span class = "plain-syntax" > ));< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-cg.html#SP6" class = "function-link" > < span class = "function-syntax" > CodeGen::select_temporary< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > S< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::constant< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < a href = "2-cg.html#SP6" class = "function-link" > < span class = "function-syntax" > CodeGen::deselect_temporary< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::constant< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > VARIABLE_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-vrb.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::Var::knowledge< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > INSTANCE_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-iap.html#SP6" class = "function-link" > < span class = "function-syntax" > CodeGen::IP::instance< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > SPLAT_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::splat< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOCAL_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::local< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LABEL_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::label< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > CODE_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::code< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > EVALUATION_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::evaluation< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > REFERENCE_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::reference< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PACKAGE_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::block< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > INV_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP3" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::inv< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > CAST_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::cast< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > VAL_IST:< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > REF_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::val< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LAB_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::lab< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PROPERTYVALUE_IST:< / span > < span class = "plain-syntax" > < / span > < a href = "2-iap.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::IP::write_properties< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > ); < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > NOP_IST:< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
2021-04-17 17:28:28 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > COMMENT_IST:< / span > < span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > default:< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > Inter::Defn::write_construct_text< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > DL< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
2021-04-17 17:28:28 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "unimplemented"< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
2019-06-28 20:25:50 +03:00
< / pre >
2020-08-27 17:50:24 +03:00
< p class = "commentary firstcommentary" > < a id = "SP2" class = "paragraph-anchor" > < / a > < b > § 2. < / b > < / p >
2019-06-28 20:25:50 +03:00
2020-05-03 03:01:21 +03:00
< pre class = "definitions code-font" > < span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > URL_SYMBOL_CHAR< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 0x00A7< / span >
2019-06-28 20:25:50 +03:00
< / pre >
2020-05-03 03:01:21 +03:00
< pre class = "displayed-code all-displayed-code code-font" >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::splat< / span > < button class = "popup" onclick = "togglePopup('usagePopup5')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup5" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::splat< / span > < / span > :< br / > < a href = "2-fc.html#SP1" > § 1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > OUT< / span > < span class = "plain-syntax" > = < / span > < a href = "2-cg.html#SP7" class = "function-link" > < span class = "function-syntax" > CodeGen::current< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_tree< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > I< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > -> < / span > < span class = "element-syntax" > from< / span > < span class = "plain-syntax" > ;< / span >
2021-04-16 00:42:28 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > S< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Warehouse::get_text< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > InterTree::warehouse< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > I< / span > < span class = "plain-syntax" > ), < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > MATTER_SPLAT_IFLD< / span > < span class = "plain-syntax" > ]);< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::len< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > S< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > for< / span > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > =0; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < < / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > wchar_t< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > S< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > URL_SYMBOL_CHAR< / span > < span class = "plain-syntax" > ) {< / span >
2020-06-28 01:18:54 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > TEMPORARY_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > T< / span > < span class = "plain-syntax" > )< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > for< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > < < / span > < span class = "identifier-syntax" > L< / span > < span class = "plain-syntax" > ; < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > ++) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > wchar_t< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Str::get_at< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > S< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > i< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > == < / span > < span class = "constant-syntax" > URL_SYMBOL_CHAR< / span > < span class = "plain-syntax" > ) < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PUT_TO< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > T< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
2021-04-15 00:57:48 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > InterSymbolsTables::url_name_to_symbol< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > I< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > T< / span > < span class = "plain-syntax" > );< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "%S"< / span > < span class = "plain-syntax" > , < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::name< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > ));< / span >
2020-06-28 01:18:54 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > DISCARD_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > T< / span > < span class = "plain-syntax" > )< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PUT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::local< / span > < button class = "popup" onclick = "togglePopup('usagePopup6')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup6" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::local< / span > < / span > :< br / > < a href = "2-fc.html#SP1" > § 1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_package< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > pack< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Packages::container< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
2021-04-15 00:57:48 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > var_name< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > InterSymbolsTables::local_symbol_from_id< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pack< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > DEFN_LOCAL_IFLD< / span > < span class = "plain-syntax" > ]);< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-ft.html#SP11" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::declare_local_variable< / span > < / a > < span class = "plain-syntax" > (2, < / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > var_name< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::label< / span > < button class = "popup" onclick = "togglePopup('usagePopup7')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup7" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::label< / span > < / span > :< br / > < a href = "2-fc.html#SP1" > § 1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_package< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > pack< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Packages::container< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
2021-04-15 00:57:48 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > lab_name< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > InterSymbolsTables::local_symbol_from_id< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pack< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > DEFN_LABEL_IFLD< / span > < span class = "plain-syntax" > ]);< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-ft.html#SP15" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::place_label< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > lab_name< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > symbol_name< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::block< / span > < button class = "popup" onclick = "togglePopup('usagePopup8')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup8" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::block< / span > < / span > :< br / > < a href = "2-fc.html#SP1" > § 1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOOP_THROUGH_INTER_CHILDREN< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > )< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::code< / span > < button class = "popup" onclick = "togglePopup('usagePopup9')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup9" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::code< / span > < / span > :< br / > < a href = "2-fc.html#SP1" > § 1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > old_level< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > void_level< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > void_level< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Defn::get_level< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) + < / span > < span class = "constant-syntax" > 1< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > function_code_block< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
2021-04-16 00:42:28 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > PAR< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > InterTree::parent< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > PAR< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "misplaced code node"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > PAR< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > ID_IFLD< / span > < span class = "plain-syntax" > ] == < / span > < span class = "identifier-syntax" > PACKAGE_IST< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > function_code_block< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > OUT< / span > < span class = "plain-syntax" > = < / span > < a href = "2-cg.html#SP7" class = "function-link" > < span class = "function-syntax" > CodeGen::current< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > function_code_block< / span > < span class = "plain-syntax" > ) { < / span > < a href = "2-ft.html#SP15" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::begin_function_code< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > ); < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "\n"< / span > < span class = "plain-syntax" > ); < / span > < span class = "identifier-syntax" > INDENT< / span > < span class = "plain-syntax" > ; }< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOOP_THROUGH_INTER_CHILDREN< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > )< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > void_level< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > old_level< / span > < span class = "plain-syntax" > ;< / span >
2021-08-07 17:44:01 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > function_code_block< / span > < span class = "plain-syntax" > ) { < / span > < span class = "identifier-syntax" > OUTDENT< / span > < span class = "plain-syntax" > ; }< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::evaluation< / span > < button class = "popup" onclick = "togglePopup('usagePopup10')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup10" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::evaluation< / span > < / span > :< br / > < a href = "2-fc.html#SP1" > § 1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > old_level< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > void_level< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOOP_THROUGH_INTER_CHILDREN< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > )< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > void_level< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > old_level< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::reference< / span > < button class = "popup" onclick = "togglePopup('usagePopup11')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup11" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::reference< / span > < / span > :< br / > < a href = "2-fc.html#SP1" > § 1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > old_level< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > void_level< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOOP_THROUGH_INTER_CHILDREN< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > C< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > )< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > C< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > void_level< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > old_level< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::cast< / span > < button class = "popup" onclick = "togglePopup('usagePopup12')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup12" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::cast< / span > < / span > :< br / > < a href = "2-fc.html#SP1" > § 1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOOP_THROUGH_INTER_CHILDREN< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > C< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > C< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::lab< / span > < button class = "popup" onclick = "togglePopup('usagePopup13')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup13" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::lab< / span > < / span > :< br / > < a href = "2-fc.html#SP1" > § 1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_package< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > pack< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Packages::container< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
2021-04-15 00:57:48 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > lab< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > InterSymbolsTables::local_symbol_from_id< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pack< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > LABEL_LAB_IFLD< / span > < span class = "plain-syntax" > ]);< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > lab< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "bad lab"< / span > < span class = "plain-syntax" > );< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > OUT< / span > < span class = "plain-syntax" > = < / span > < a href = "2-cg.html#SP7" class = "function-link" > < span class = "function-syntax" > CodeGen::current< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > S< / span > < span class = "plain-syntax" > = < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::name< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > lab< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOOP_THROUGH_TEXT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > S< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Str::get< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > ) != < / span > < span class = "character-syntax" > '.'< / span > < span class = "plain-syntax" > )< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PUT< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Str::get< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pos< / span > < span class = "plain-syntax" > ));< / span >
< span class = "plain-syntax" > }< / span >
2021-08-01 17:58:10 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::val_to_I6< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > OUTPUT_STREAM< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_bookmark< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > IBM< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_ti< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > val1< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_ti< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > val2< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > temporary_generation< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) {< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-ft.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::make_targets< / span > < / a > < span class = "plain-syntax" > ();< / span >
2021-08-01 17:58:10 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > temporary_generation< / span > < span class = "plain-syntax" > =< / span >
2021-08-12 01:49:36 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-cg.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::new_generation< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > Inter::Bookmarks::tree< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > IBM< / span > < span class = "plain-syntax" > ), < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < a href = "4-fi6.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::I6::target< / span > < / a > < span class = "plain-syntax" > ());< / span >
2021-08-01 17:58:10 +03:00
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-cg.html#SP6" class = "function-link" > < span class = "function-syntax" > CodeGen::select_temporary< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > temporary_generation< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > OUT< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Inter::Symbols::is_stored_in_data< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > val1< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > val2< / span > < span class = "plain-syntax" > )) {< / span >
2021-04-15 00:57:48 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > InterSymbolsTables::symbol_from_data_pair_and_table< / span > < span class = "plain-syntax" > (< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > val1< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > val2< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > Inter::Bookmarks::scope< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > IBM< / span > < span class = "plain-syntax" > ));< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "bad symbol"< / span > < span class = "plain-syntax" > );< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-ft.html#SP5" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::mangle< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > temporary_generation< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > OUT< / span > < span class = "plain-syntax" > , < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::name< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > ));< / span >
2021-08-01 17:58:10 +03:00
< span class = "plain-syntax" > } < / span > < span class = "reserved-syntax" > else< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > switch< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > val1< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > UNDEF_IVAL:< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "value undefined"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LITERAL_IVAL:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LITERAL_TEXT_IVAL:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > GLOB_IVAL:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > DWORD_IVAL:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > REAL_IVAL:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PDWORD_IVAL:< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::literal< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > temporary_generation< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > val1< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > val2< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > );< / span >
2021-08-01 17:58:10 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-cg.html#SP6" class = "function-link" > < span class = "function-syntax" > CodeGen::deselect_temporary< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > temporary_generation< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > }< / span >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::val< / span > < button class = "popup" onclick = "togglePopup('usagePopup14')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup14" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::val< / span > < / span > :< br / > < a href = "2-fc.html#SP1" > § 1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
2021-04-15 00:57:48 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > val_kind< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > InterSymbolsTables::symbol_from_frame_data< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > KIND_VAL_IFLD< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > val_kind< / span > < span class = "plain-syntax" > ) {< / span >
2020-07-01 02:58:55 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_ti< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > val1< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > VAL1_VAL_IFLD< / span > < span class = "plain-syntax" > ];< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_ti< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > val2< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > VAL2_VAL_IFLD< / span > < span class = "plain-syntax" > ];< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Inter::Symbols::is_stored_in_data< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > val1< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > val2< / span > < span class = "plain-syntax" > )) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_package< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > pack< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Packages::container< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
2021-04-15 00:57:48 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > InterSymbolsTables::local_symbol_from_id< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > pack< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > val2< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > InterSymbolsTables::symbol_from_id< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Inter::Packages::scope_of< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ), < / span > < span class = "identifier-syntax" > val2< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "bad val"< / span > < span class = "plain-syntax" > );< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > OUT< / span > < span class = "plain-syntax" > = < / span > < a href = "2-cg.html#SP7" class = "function-link" > < span class = "function-syntax" > CodeGen::current< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < a href = "2-ft.html#SP5" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::mangle< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > OUT< / span > < span class = "plain-syntax" > , < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::name< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > ));< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > switch< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > val1< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > UNDEF_IVAL:< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "value undefined"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LITERAL_IVAL:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LITERAL_TEXT_IVAL:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > GLOB_IVAL:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > DWORD_IVAL:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > REAL_IVAL:< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > PDWORD_IVAL:< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::literal< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > val1< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > val2< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > return< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "bad val"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
2019-06-28 20:25:50 +03:00
< / pre >
2020-08-27 17:50:24 +03:00
< p class = "commentary firstcommentary" > < a id = "SP3" class = "paragraph-anchor" > < / a > < b > § 3. < / b > < / p >
2020-05-03 03:01:21 +03:00
2021-08-10 13:01:03 +03:00
< pre class = "definitions code-font" > < span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > INV_A1< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > InterTree::first_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ))< / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > INV_A1_PRINTMODE< / span > < span class = "plain-syntax" > < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::enter_print_mode< / span > < / a > < span class = "plain-syntax" > (); < / span > < span class = "constant-syntax" > INV_A1< / span > < span class = "plain-syntax" > ; < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::exit_print_mode< / span > < / a > < span class = "plain-syntax" > ();< / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > INV_A1_BOXMODE< / span > < span class = "plain-syntax" > < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::enter_box_mode< / span > < / a > < span class = "plain-syntax" > (); < / span > < span class = "constant-syntax" > INV_A1< / span > < span class = "plain-syntax" > ; < / span > < a href = "2-cal.html#SP2" class = "function-link" > < span class = "function-syntax" > CodeGen::CL::exit_box_mode< / span > < / a > < span class = "plain-syntax" > ();< / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > INV_A2< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > InterTree::second_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ))< / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > INV_A3< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > InterTree::third_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ))< / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > INV_A4< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > InterTree::fourth_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ))< / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > INV_A5< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > InterTree::fifth_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ))< / span >
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > INV_A6< / span > < span class = "plain-syntax" > < / span > < a href = "2-fc.html#SP1" class = "function-link" > < span class = "function-syntax" > CodeGen::FC::frame< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > InterTree::sixth_child< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ))< / span >
2021-08-17 00:58:39 +03:00
< span class = "definition-keyword" > define< / span > < span class = "constant-syntax" > MAX_OPERANDS_IN_INTER_ASSEMBLY< / span > < span class = "plain-syntax" > < / span > < span class = "constant-syntax" > 32< / span >
2019-06-28 20:25:50 +03:00
< / pre >
2020-05-03 03:01:21 +03:00
< pre class = "displayed-code all-displayed-code code-font" >
2021-08-10 13:01:03 +03:00
< span class = "reserved-syntax" > void< / span > < span class = "plain-syntax" > < / span > < span class = "function-syntax" > CodeGen::FC::inv< / span > < button class = "popup" onclick = "togglePopup('usagePopup15')" > < span class = "comment-syntax" > ?< / span > < span class = "popuptext" id = "usagePopup15" > Usage of < span class = "code-font" > < span class = "function-syntax" > CodeGen::FC::inv< / span > < / span > :< br / > < a href = "2-fc.html#SP1" > § 1< / a > < / span > < / button > < span class = "plain-syntax" > (< / span > < span class = "reserved-syntax" > code_generation< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > OUT< / span > < span class = "plain-syntax" > = < / span > < a href = "2-cg.html#SP7" class = "function-link" > < span class = "function-syntax" > CodeGen::current< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > suppress_terminal_semicolon< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > switch< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > METHOD_INV_IFLD< / span > < span class = "plain-syntax" > ]) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > INVOKED_PRIMITIVE:< / span > < span class = "plain-syntax" > {< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > prim< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inter::Inv::invokee< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > prim< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "bad prim"< / span > < span class = "plain-syntax" > );< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > suppress_terminal_semicolon< / span > < span class = "plain-syntax" > = < / span > < a href = "2-ft.html#SP6" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::compile_primitive< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > prim< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > INVOKED_ROUTINE:< / span > < span class = "plain-syntax" > {< / span >
2021-04-15 00:57:48 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > routine< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > InterSymbolsTables::symbol_from_frame_data< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > INVOKEE_INV_IFLD< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > routine< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "bad routine"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > argc< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ;< / span >
2021-08-06 21:48:18 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOOP_THROUGH_INTER_CHILDREN< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > argc< / span > < span class = "plain-syntax" > ++;< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-ft.html#SP16" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::begin_function_call< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > routine< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > argc< / span > < span class = "plain-syntax" > );< / span >
2021-08-06 21:48:18 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOOP_THROUGH_INTER_CHILDREN< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > )< / span >
2021-08-10 13:01:03 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-ft.html#SP16" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::argument< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > routine< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > c< / span > < span class = "plain-syntax" > ++, < / span > < span class = "identifier-syntax" > argc< / span > < span class = "plain-syntax" > );< / span >
2021-08-19 01:59:31 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-ft.html#SP16" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::end_function_call< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > routine< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > argc< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > case< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > INVOKED_OPCODE:< / span > < span class = "plain-syntax" > {< / span >
2020-07-01 02:58:55 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_ti< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > ID< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > INVOKEE_INV_IFLD< / span > < span class = "plain-syntax" > ];< / span >
2020-05-11 17:21:29 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > text_stream< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > S< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > Inode::ID_to_text< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > ID< / span > < span class = "plain-syntax" > );< / span >
2021-08-17 00:58:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_tree_node< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > operands< / span > < span class = "plain-syntax" > [< / span > < span class = "constant-syntax" > MAX_OPERANDS_IN_INTER_ASSEMBLY< / span > < span class = "plain-syntax" > ], *< / span > < span class = "identifier-syntax" > label< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NULL< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > operand_count< / span > < span class = "plain-syntax" > = < / span > < span class = "constant-syntax" > 0< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > int< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > label_sense< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > NOT_APPLICABLE< / span > < span class = "plain-syntax" > ;< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > LOOP_THROUGH_INTER_CHILDREN< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > ID_IFLD< / span > < span class = "plain-syntax" > ] == < / span > < span class = "identifier-syntax" > VAL_IST< / span > < span class = "plain-syntax" > ) {< / span >
2020-07-01 02:58:55 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_ti< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > val1< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > VAL1_VAL_IFLD< / span > < span class = "plain-syntax" > ];< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_ti< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > val2< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > VAL2_VAL_IFLD< / span > < span class = "plain-syntax" > ];< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Inter::Symbols::is_stored_in_data< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > val1< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > val2< / span > < span class = "plain-syntax" > )) {< / span >
2021-04-15 00:57:48 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > inter_symbol< / span > < span class = "plain-syntax" > *< / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > InterSymbolsTables::symbol_from_id< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > Inter::Packages::scope_of< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > ), < / span > < span class = "identifier-syntax" > val2< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > ) & & (< / span > < span class = "identifier-syntax" > Str::eq< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > symb< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > symbol_name< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > I< / span > < span class = "string-syntax" > "__assembly_negated_label"< / span > < span class = "plain-syntax" > ))) {< / span >
2021-08-17 00:58:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > label_sense< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > ;< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > continue< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > }< / span >
2021-08-17 00:58:39 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > -> < / span > < span class = "identifier-syntax" > W< / span > < span class = "plain-syntax" > .< / span > < span class = "identifier-syntax" > data< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > ID_IFLD< / span > < span class = "plain-syntax" > ] == < / span > < span class = "identifier-syntax" > LAB_IST< / span > < span class = "plain-syntax" > ) {< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > label_sense< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > NOT_APPLICABLE< / span > < span class = "plain-syntax" > ) < / span > < span class = "identifier-syntax" > label_sense< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > TRUE< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > label< / span > < span class = "plain-syntax" > = < / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > ; < / span > < span class = "reserved-syntax" > continue< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > operands< / span > < span class = "plain-syntax" > [< / span > < span class = "identifier-syntax" > operand_count< / span > < span class = "plain-syntax" > ++] = < / span > < span class = "identifier-syntax" > F< / span > < span class = "plain-syntax" > ;< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > }< / span >
2021-08-17 00:58:39 +03:00
< span class = "plain-syntax" > < / span > < a href = "2-ft.html#SP17" class = "function-link" > < span class = "function-syntax" > CodeGen::Targets::assembly< / span > < / a > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > gen< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > S< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > operand_count< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > operands< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > label< / span > < span class = "plain-syntax" > , < / span > < span class = "identifier-syntax" > label_sense< / span > < span class = "plain-syntax" > );< / span >
2020-05-03 03:01:21 +03:00
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > break< / span > < span class = "plain-syntax" > ;< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > default:< / span > < span class = "plain-syntax" > < / span > < span class = "identifier-syntax" > internal_error< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > "bad inv"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
< span class = "plain-syntax" > < / span > < span class = "reserved-syntax" > if< / span > < span class = "plain-syntax" > ((< / span > < span class = "identifier-syntax" > Inter::Defn::get_level< / span > < span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > P< / span > < span class = "plain-syntax" > ) == < / span > < span class = "identifier-syntax" > void_level< / span > < span class = "plain-syntax" > ) & & < / span >
< span class = "plain-syntax" > (< / span > < span class = "identifier-syntax" > suppress_terminal_semicolon< / span > < span class = "plain-syntax" > == < / span > < span class = "identifier-syntax" > FALSE< / span > < span class = "plain-syntax" > )) < / span > < span class = "identifier-syntax" > WRITE< / span > < span class = "plain-syntax" > (< / span > < span class = "string-syntax" > ";\n"< / span > < span class = "plain-syntax" > );< / span >
< span class = "plain-syntax" > }< / span >
2019-06-28 20:25:50 +03:00
< / pre >
2020-05-03 03:01:21 +03:00
< nav role = "progress" > < div class = "progresscontainer" >
2021-08-10 13:01:03 +03:00
< ul class = "progressbar" > < li class = "progressprev" > < a href = "2-cg.html" > ❮ < / a > < / li > < li class = "progresschapter" > < a href = "1-fm.html" > 1< / a > < / li > < li class = "progresscurrentchapter" > 2< / li > < li class = "progresssection" > < a href = "2-cg.html" > cg< / a > < / li > < li class = "progresscurrent" > fc< / li > < li class = "progresssection" > < a href = "2-cal.html" > cal< / a > < / li > < li class = "progresssection" > < a href = "2-iap.html" > iap< / a > < / li > < li class = "progresssection" > < a href = "2-vrb.html" > vrb< / a > < / li > < li class = "progresssection" > < a href = "2-ft.html" > ft< / a > < / li > < li class = "progresschapter" > < a href = "3-fti.html" > 3< / a > < / li > < li class = "progresschapter" > < a href = "4-fi6.html" > 4< / a > < / li > < li class = "progresschapter" > < a href = "5-fnc.html" > 5< / a > < / li > < li class = "progressnext" > < a href = "2-cal.html" > ❯ < / a > < / li > < / ul > < / div >
2020-05-03 03:01:21 +03:00
< / nav > <!-- End of weave -->
2019-06-28 20:25:50 +03:00
2020-03-19 02:11:25 +02:00
< / main >
2019-06-28 20:25:50 +03:00
< / body >
< / html >