@@ -186,7 +186,18 @@ void ScriptCompiler::ASTToInstructions(CompiledCodeData& output, CompileTempData
186186 auto nodeType = node.kind ;
187187 switch (nodeType) {
188188
189- case sqf::parser::sqf::bison::astkind::ASSIGNMENT:
189+ case sqf::parser::sqf::bison::astkind::ASSIGNMENT: {
190+ auto varname = std::string (node.children [0 ].token .contents );
191+ // need value on stack first
192+ ASTToInstructions (output, temp, instructions, node.children [1 ]);
193+ std::transform (varname.begin (), varname.end (), varname.begin (), ::tolower);
194+ instructions.emplace_back (ScriptInstruction{
195+ nodeType == sqf::parser::sqf::bison::astkind::ASSIGNMENT ?
196+ InstructionType::assignTo
197+ :
198+ InstructionType::assignToLocal
199+ , node.token .offset , getFileIndex (*node.token .path ), node.token .line , varname });
200+ } break ;
190201 case sqf::parser::sqf::bison::astkind::ASSIGNMENT_LOCAL: {
191202 auto varname = std::string (node.token .contents );
192203 // need value on stack first
@@ -198,8 +209,7 @@ void ScriptCompiler::ASTToInstructions(CompiledCodeData& output, CompileTempData
198209 :
199210 InstructionType::assignToLocal
200211 , node.token .offset , getFileIndex (*node.token .path ), node.token .line , varname });
201- }
202- break ;
212+ } break ;
203213 case sqf::parser::sqf::bison::astkind::EXP0:
204214 case sqf::parser::sqf::bison::astkind::EXP1:
205215 case sqf::parser::sqf::bison::astkind::EXP2:
0 commit comments