123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- import * as Models from '../visualUI/ivprog_elements';
- import { LocalizedStrings } from "./../services/localizedStringsService";
- function parseBoolean (var_value, dimensions) {
- if (dimensions == 0)
- return var_value == LocalizedStrings.getUI("logic_value_true");
- if (dimensions == 1) {
- var final_array = [];
- var_value.forEach(function(el){
- final_array.push(el == LocalizedStrings.getUI("logic_value_true"));
- });
- return final_array;
- }
- if (dimensions == 2) {
- var final_array = [];
- var_value.forEach(function(row){
- var temp = [];
- row.forEach(function(el){
- temp.push(el == LocalizedStrings.getUI("logic_value_true"));
- });
- final_array.push(temp);
- });
- return final_array;
- }
- }
- function parseGlobal (global_obj) {
- var new_global = new Models.Variable(
- global_obj.type,
- global_obj.name,
- global_obj.value);
-
- new_global.is_constant = global_obj.is_const;
- new_global.columns = global_obj.columns;
- new_global.dimensions = global_obj.dimension;
- new_global.rows = global_obj.rows;
- if (global_obj.type == "boolean")
- new_global.value = parseBoolean(global_obj.value, global_obj.dimension);
-
- window.program_obj.addGlobal(new_global);
- }
- function parseParameter (parameter_obj) {
- const new_parameter = new Models.Variable(
- parameter_obj.type,
- parameter_obj.name,
- null,
- parameter_obj.dimension,
- parameter_obj.is_const,
- parameter_obj.rows,
- parameter_obj.columns,
- parameter_obj.reference
- );
- new_parameter.value = parameter_obj.value;
- if (parameter_obj.type == "boolean" && parameter_obj.value)
- new_parameter.value = parseBoolean(parameter_obj.value, parameter_obj.dimension);
- return new_parameter;
- }
- function parseFunction (function_obj) {
- const new_function = new Models.Function(
- function_obj.name,
- function_obj.return_type,
- function_obj.return_dimensions,
- [],
- false,
- false,
- []);
-
- if (!new_function.name) {
- new_function.name = LocalizedStrings.getUI("start");
- new_function.is_main = true;
- }
- if (function_obj.parameters_list) {
- function_obj.parameters_list.forEach(function(el){
- new_function.parameters_list.push(parseParameter(el));
- });
- }
- if (function_obj.variables_list) {
- function_obj.variables_list.forEach(function(el){
- new_function.variables_list.push(parseParameter(el));
- });
- }
- new_function.commands = parseCommands(function_obj.commands)
- window.program_obj.addFunction(new_function);
-
- }
- export function parserCodeVisual (code_obj = null) {
- console.log('chegou!', code_obj)
- window.conteudo = code_obj
- // Globals:
- window.program_obj.globals = [];
- code_obj.globals.forEach(parseGlobal);
- // Functions:
- window.program_obj.functions = [];
- code_obj.functions.forEach(parseFunction);
- }
- function parseCommands (commands_block) {
- console.log('bloco', commands_block)
- if (Array.isArray(commands_block)) {
- var temp = [];
- commands_block.forEach(function(command) {
- temp.push(parseCommands(command));
- });
- return temp;
- }
- else {
- return null;
- }
-
- }
|