//+------------------------------------------------------------------+ //| Examples.mqh | //| Copyright 2026, Niquel Mendoza. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2026, Niquel Mendoza." #property link "https://www.mql5.com" #property strict #ifndef BASESPARSERSLAN_SRC_QUERY_EXAMPLES_MQH #define BASESPARSERSLAN_SRC_QUERY_EXAMPLES_MQH /* //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ { "precios": { "libro1": {"valor":542,"sumando":[],"comando":30}, "libro2": {"valor":19,"sumando":[30],"comando":2}, "libro3": {"valor":452,"sumando":[20,50,65,89,419],"comando":7} } } $.precios[?(@.comando * 20 < @.valor && @.sumando.size())].sumando[*] --- bytecode: %reg 0 = 20 ; Guardamos en el regtiso estatico un integer con valor 20 %reg 1 = 20.0 ; %reg 2 = true ; %reg 3 = S"valores" { ACCESO_KEY_F "precios" ; F de fatal si no puede acceder directo retorna 0 sin mas INICIAR_ITERACION 4: ; Solo permitios objetos @InicioI teracio:n: - ITER_ASSING [Alias] 'Exit' ; JMP en caso falle a 'EXIT' - ACCESO_KEY "" "comando" ; (si falla intermante reinica la it) - SAVE RD0 ; Guardamos en el registro dinamico 0 y retrocedemos - M_MUL RD0 RD0 RK0 ; Multiplicmoas el registro conssante 0 por el dinamico 0 y el valor va en 0 ; (si falla intermante reinica la it) - ACCESO_KEY "valor" ; (si falla intermante reinica la it) - SAVE RD1 ; Guardamos en el registro 1 - COMPARE_MENOR RD0 RD1 1 ; Comparemos los registros y esperamos 1 ; (si falla intermante reinica la it) - ACCESO_KEY "sumando" - SAVE_NO_RESET RD1 ; Guardamos su valor en registro 1 - CALL "size" RD0 0 ; Le deicmso llama a esa funcion y el reusltaod va en el registro 0 y 0 args - IS RD0 ; Aplica un is a este registro ; Si llegamos hasta aaqui entonces curr paso ; Como en el sigeuite es un wildcard podemos ir directo a un copy sin iteracion COPY_ALL ; Copiamos todos los elemtnos que tenga curr actualmente al array final JUMP 'Alias' ; Repetimos EXIT [Exit]: ; Salida con return true } %reg0=20; hola como estas ; Se qeu ese registro esta mal pero mira: = ; Como estoy? 20 ; Valor 20 //+------------------------------------------------------------------+ */ #endif // BASESPARSERSLAN_SRC_QUERY_EXAMPLES_MQH