mirror of
https://github.com/clockworkpi/PicoCalc.git
synced 2025-12-12 10:18:54 +01:00
714 lines
30 KiB
C
714 lines
30 KiB
C
/*
|
|
* @cond
|
|
* The following section will be excluded from the documentation.
|
|
*/
|
|
/* ********************************************************************************
|
|
the C language function associated with commands, functions or operators should be
|
|
declared here
|
|
**********************************************************************************/
|
|
#if !defined(INCLUDE_COMMAND_TABLE) && !defined(INCLUDE_TOKEN_TABLE)
|
|
// format:
|
|
// void cmd_???(void)
|
|
// void fun_???(void)
|
|
// void op_???(void)
|
|
|
|
void cmd_clear(void);
|
|
void cmd_continue(void);
|
|
void cmd_delete(void);
|
|
void cmd_dim(void);
|
|
void cmd_do(void);
|
|
void cmd_else(void);
|
|
void cmd_end(void);
|
|
void cmd_endfun(void);
|
|
void cmd_endsub(void);
|
|
void cmd_erase(void);
|
|
void cmd_error(void);
|
|
void cmd_exit(void);
|
|
void cmd_exitfor(void);
|
|
void cmd_for(void);
|
|
void cmd_subfun(void);
|
|
void cmd_gosub(void);
|
|
void cmd_goto(void);
|
|
void cmd_if(void);
|
|
void cmd_inc(void);
|
|
void cmd_input(void);
|
|
void cmd_let(void);
|
|
void cmd_lineinput(void);
|
|
void cmd_list(void);
|
|
void cmd_load(void);
|
|
void cmd_loop(void);
|
|
void cmd_merge(void);
|
|
void cmd_chain(void);
|
|
void cmd_new(void);
|
|
void cmd_next(void);
|
|
void cmd_null(void);
|
|
void cmd_on(void);
|
|
void cmd_print(void);
|
|
void cmd_randomize(void);
|
|
void cmd_read(void);
|
|
void cmd_restore(void);
|
|
void cmd_return(void);
|
|
void cmd_run(void);
|
|
void cmd_save(void);
|
|
void cmd_troff(void);
|
|
void cmd_tron(void);
|
|
void cmd_trace(void);
|
|
void cmd_const(void);
|
|
void cmd_select(void);
|
|
void cmd_case(void);
|
|
void cmd_option(void);
|
|
void cmd_dump(void);
|
|
void cmd_call(void);
|
|
void cmd_execute(void);
|
|
void cmd_mid(void);
|
|
void cmd_null(void);
|
|
void cmd_open(void);
|
|
void cmd_close(void);
|
|
void cmd_files(void);
|
|
void cmd_mkdir(void);
|
|
void cmd_rmdir(void);
|
|
void cmd_chdir(void);
|
|
void cmd_kill(void);
|
|
void cmd_copy(void);
|
|
void cmd_name(void);
|
|
void cmd_exitmmb(void);
|
|
void cmd_pause(void);
|
|
void cmd_timer(void);
|
|
void cmd_copyright(void);
|
|
void cmd_seek(void);
|
|
void cmd_library(void);
|
|
void cmd_pio(void);
|
|
void cmd_date(void);
|
|
void cmd_time(void);
|
|
void cmd_flash(void);
|
|
void cmd_var(void);
|
|
void cmd_flush(void);
|
|
void cmd_disk(void);
|
|
void cmd_play(void);
|
|
void cmd_text(void);
|
|
void cmd_pixel(void);
|
|
void cmd_circle(void);
|
|
void cmd_line(void);
|
|
void cmd_box(void);
|
|
void cmd_rbox(void);
|
|
void cmd_arc(void) ;
|
|
void cmd_triangle(void);
|
|
void cmd_blit(void);
|
|
void cmd_cls(void);
|
|
void cmd_font(void);
|
|
void cmd_colour(void);
|
|
void cmd_refresh(void);
|
|
void cmd_polygon(void);
|
|
void cmd_gui(void);
|
|
void cmd_tile(void);
|
|
void cmd_mode(void);
|
|
void cmd_3D(void);
|
|
void cmd_framebuffer(void);
|
|
void cmd_edit(void);
|
|
void cmd_editfile(void);
|
|
void cmd_port(void);
|
|
void cmd_adc(void);
|
|
void cmd_ir(void);
|
|
void cmd_lcd(void);
|
|
void cmd_keypad();
|
|
void cmd_backlight(void);
|
|
void cmd_device(void);
|
|
void cmd_sync(void);
|
|
void cmd_setpin(void);
|
|
void cmd_pulse(void);
|
|
void cmd_pwm(void);
|
|
void cmd_pin(void);
|
|
void cmd_i2c(void);
|
|
void cmd_i2c2(void);
|
|
void cmd_rtc(void);
|
|
void cmd_math(void);
|
|
void cmd_memory(void);
|
|
void cmd_autosave(void);
|
|
void cmd_option(void);
|
|
void cmd_pause(void);
|
|
void cmd_timer(void);
|
|
void cmd_date(void);
|
|
void cmd_time(void);
|
|
void cmd_ireturn(void);
|
|
void cmd_poke(void);
|
|
void cmd_settick(void);
|
|
void cmd_watchdog(void);
|
|
void cmd_cpu(void);
|
|
void cmd_cfunction(void);
|
|
void cmd_longString(void);
|
|
void cmd_sort(void);
|
|
void cmd_csubinterrupt(void);
|
|
void cmd_library(void);
|
|
void cmd_onewire(void);
|
|
void cmd_ds18b20(void);
|
|
void cmd_spi(void);
|
|
void cmd_spi2(void);
|
|
void cmd_xmodem(void);
|
|
void cmd_ctrlval(void);
|
|
void cmd_GUIpage(unsigned char *p);
|
|
void cmd_gamepad(void);
|
|
void cmd_sprite(void);
|
|
void cmd_comment(void);
|
|
void cmd_endcomment(void);
|
|
void cmd_blitmemory(void);
|
|
void cmd_configure(void);
|
|
void cmd_colourmap(void);
|
|
void cmd_map(void);
|
|
void cmd_WS2812(void);
|
|
void cmd_DHT22(void);
|
|
void cmd_Classic(void);
|
|
void cmd_Nunchuck(void);
|
|
void cmd_mouse(void);
|
|
void cmd_camera(void);
|
|
void cmd_Servo(void);
|
|
void cmd_chain(void);
|
|
void cmd_psram(void);
|
|
void cmd_wrap(void);
|
|
void cmd_wraptarget(void);
|
|
void cmd_sideset(void);
|
|
void cmd_PIOline(void);
|
|
void cmd_program(void);
|
|
void cmd_endprogram(void);
|
|
void cmd_label(void);
|
|
void cmd_jmp(void);
|
|
void cmd_wait(void);
|
|
void cmd_in(void);
|
|
void cmd_out(void);
|
|
void cmd_push(void);
|
|
void cmd_pull(void);
|
|
void cmd_mov(void);
|
|
void cmd_nop(void);
|
|
void cmd_irqset(void);
|
|
void cmd_irqwait(void);
|
|
void cmd_irqclear(void);
|
|
void cmd_irqnowait(void);
|
|
void cmd_irq(void);
|
|
void cmd_set(void);
|
|
void cmd_byte(void);
|
|
void cmd_bit(void);
|
|
void cmd_flag(void);
|
|
void cmd_flags(void);
|
|
void cmd_frame(void);
|
|
void cmd_help(void);
|
|
void cmd_slice(void);
|
|
void cmd_insert(void);
|
|
void cmd_add(void);
|
|
void cmd_arrayset(void);
|
|
#ifdef PICOMITEWEB
|
|
void cmd_web(void);
|
|
#endif
|
|
#ifdef rp2350
|
|
void cmd_loadCMM2(void);
|
|
void cmd_RunCMM2(void);
|
|
#endif
|
|
void op_invalid(void);
|
|
void op_exp(void);
|
|
void op_mul(void);
|
|
void op_div(void);
|
|
void op_divint(void);
|
|
void op_add(void);
|
|
void op_subtract(void);
|
|
void op_mod(void);
|
|
void op_ne(void);
|
|
void op_gte(void);
|
|
void op_lte(void);
|
|
void op_lt(void);
|
|
void op_gt(void);
|
|
void op_equal(void);
|
|
void op_and(void);
|
|
void op_or(void);
|
|
void op_xor(void);
|
|
void op_not(void);
|
|
void op_shiftleft(void);
|
|
void op_shiftright(void);
|
|
void op_inv(void);
|
|
void fun_pin(void);
|
|
void fun_port(void);
|
|
void fun_distance(void);
|
|
void fun_pulsin(void);
|
|
void fun_rgb(void);
|
|
void fun_mmhres(void);
|
|
void fun_mmvres(void);
|
|
void fun_mmcharwidth(void);
|
|
void fun_mmcharheight(void);
|
|
void fun_at(void);
|
|
void fun_pixel(void);
|
|
void fun_getscanline(void);
|
|
void fun_3D(void);
|
|
void fun_sprite(void);
|
|
void fun_eof(void);
|
|
void fun_loc(void);
|
|
void fun_lof(void);
|
|
void fun_cwd(void);
|
|
void fun_inputstr(void);
|
|
void fun_mmfname(void);
|
|
void fun_dir(void);
|
|
void fun_date(void);
|
|
void fun_time(void);
|
|
void fun_timer(void);
|
|
void fun_device(void);
|
|
void fun_pio(void);
|
|
void fun_abs(void);
|
|
void fun_asc(void);
|
|
void fun_atn(void);
|
|
void fun_atan2(void);
|
|
void fun_bin(void);
|
|
void fun_chr(void);
|
|
void fun_cint(void);
|
|
void fun_cos(void);
|
|
void fun_deg(void);
|
|
void fun_exp(void);
|
|
void fun_fix(void);
|
|
void fun_hex(void);
|
|
void fun_inkey(void);
|
|
void fun_instr(void);
|
|
void fun_int(void);
|
|
void fun_lcase(void);
|
|
void fun_left(void);
|
|
void fun_len(void);
|
|
void fun_log(void);
|
|
void fun_errno(void);
|
|
void fun_errmsg(void);
|
|
void fun_mid(void);
|
|
void fun_oct(void);
|
|
void fun_peek(void);
|
|
void fun_pi(void);
|
|
void fun_pos(void);
|
|
void fun_rad(void);
|
|
void fun_right(void);
|
|
void fun_rnd(void);
|
|
void fun_sgn(void);
|
|
void fun_sin(void);
|
|
void fun_space(void);
|
|
void fun_sqr(void);
|
|
void fun_str(void);
|
|
void fun_string(void);
|
|
void fun_tab(void);
|
|
void fun_tan(void);
|
|
void fun_ucase(void);
|
|
void fun_val(void);
|
|
void fun_eval(void);
|
|
void fun_version(void);
|
|
void fun_asin(void);
|
|
void fun_acos(void);
|
|
void fun_field(void);
|
|
void fun_max(void);
|
|
void fun_min(void);
|
|
void fun_bin2str(void);
|
|
void fun_str2bin(void);
|
|
void fun_test(void);
|
|
void fun_bound(void);
|
|
void fun_ternary(void);
|
|
void fun_call(void);
|
|
void fun_GPS(void);
|
|
void fun_mmi2c(void);
|
|
void fun_math(void);
|
|
void fun_timer(void);
|
|
void fun_date(void);
|
|
void fun_time(void);
|
|
void fun_keydown(void);
|
|
void fun_peek(void);
|
|
void fun_restart(void);
|
|
void fun_day(void);
|
|
void fun_info(void);
|
|
void fun_LLen(void);
|
|
void fun_LGetByte(void);
|
|
void fun_LGetStr(void);
|
|
void fun_LCompare(void);
|
|
void fun_LInstr(void);
|
|
void fun_epoch(void);
|
|
void fun_datetime(void);
|
|
void fun_json(void);
|
|
void cmd_update(void);
|
|
void fun_format(void);
|
|
void fun_mmOW(void);
|
|
void fun_ds18b20(void);
|
|
void fun_pixel(void);
|
|
void fun_getscanline(void);
|
|
void fun_spi(void);
|
|
void fun_spi2(void);
|
|
void fun_msgbox(void);
|
|
void fun_ctrlval(void);
|
|
void fun_mmhpos(void);
|
|
void fun_mmvpos(void);
|
|
void fun_tilde(void);
|
|
void fun_byte(void);
|
|
void fun_bit(void);
|
|
void fun_flag(void);
|
|
#ifdef PICOMITEWEB
|
|
void fun_json(void);
|
|
#endif
|
|
void fun_dev(void);
|
|
void fun_map(void);
|
|
#endif
|
|
|
|
/* ********************************************************************************
|
|
All command tokens tokens (eg, PRINT, FOR, etc) should be inserted in this table
|
|
**********************************************************************************/
|
|
#ifdef INCLUDE_COMMAND_TABLE
|
|
|
|
{ (unsigned char *)"Call", T_CMD, 0, cmd_call },
|
|
{ (unsigned char *)"Clear", T_CMD, 0, cmd_clear },
|
|
{ (unsigned char *)"Continue", T_CMD, 0, cmd_continue },
|
|
{ (unsigned char *)"Data", T_CMD, 0, cmd_null },
|
|
{ (unsigned char *)"Dim", T_CMD, 0, cmd_dim },
|
|
{ (unsigned char *)"Do", T_CMD, 0, cmd_do },
|
|
{ (unsigned char *)"Else If", T_CMD, 0, cmd_else },
|
|
{ (unsigned char *)"End If", T_CMD, 0, cmd_null },
|
|
{ (unsigned char *)"Exit Do", T_CMD, 0, cmd_exit },
|
|
{ (unsigned char *)"ElseIf", T_CMD, 0, cmd_else },
|
|
{ (unsigned char *)"Case Else", T_CMD, 0, cmd_case },
|
|
{ (unsigned char *)"Else", T_CMD, 0, cmd_else },
|
|
{ (unsigned char *)"Select Case", T_CMD, 0, cmd_select },
|
|
{ (unsigned char *)"End Select", T_CMD, 0, cmd_null },
|
|
{ (unsigned char *)"Case", T_CMD, 0, cmd_case },
|
|
{ (unsigned char *)"EndIf", T_CMD, 0, cmd_null },
|
|
{ (unsigned char *)"End Function", T_CMD, 0, cmd_endfun }, // this entry must come before END and FUNCTION
|
|
{ (unsigned char *)"End Sub", T_CMD, 0, cmd_return }, // this entry must come before END and SUB
|
|
{ (unsigned char *)"End", T_CMD, 0, cmd_end },
|
|
{ (unsigned char *)"Erase", T_CMD, 0, cmd_erase },
|
|
{ (unsigned char *)"Error", T_CMD, 0, cmd_error },
|
|
{ (unsigned char *)"Exit For", T_CMD, 0, cmd_exitfor }, // this entry must come before EXIT and FOR
|
|
{ (unsigned char *)"Exit Sub", T_CMD, 0, cmd_return }, // this entry must come before EXIT and SUB
|
|
{ (unsigned char *)"Exit Function", T_CMD, 0, cmd_endfun }, // this entry must come before EXIT and FUNCTION
|
|
{ (unsigned char *)"Exit", T_CMD, 0, cmd_exit },
|
|
{ (unsigned char *)"For", T_CMD, 0, cmd_for },
|
|
{ (unsigned char *)"Function", T_CMD, 0, cmd_subfun },
|
|
{ (unsigned char *)"GoSub", T_CMD, 0, cmd_gosub },
|
|
{ (unsigned char *)"GoTo", T_CMD, 0, cmd_goto },
|
|
{ (unsigned char *)"Inc", T_CMD, 0, cmd_inc },
|
|
{ (unsigned char *)"If", T_CMD, 0, cmd_if },
|
|
{ (unsigned char *)"Line Input", T_CMD, 0, cmd_lineinput}, // this entry must come before INPUT
|
|
{ (unsigned char *)"Input", T_CMD, 0, cmd_input },
|
|
{ (unsigned char *)"Let", T_CMD, 0, cmd_let },
|
|
{ (unsigned char *)"List", T_CMD, 0, cmd_list },
|
|
{ (unsigned char *)"Load", T_CMD, 0, cmd_load },
|
|
{ (unsigned char *)"Local", T_CMD, 0, cmd_dim },
|
|
{ (unsigned char *)"Loop", T_CMD, 0, cmd_loop },
|
|
{ (unsigned char *)"Next", T_CMD, 0, cmd_next },
|
|
{ (unsigned char *)"On", T_CMD, 0, cmd_on },
|
|
{ (unsigned char *)"Print", T_CMD, 0, cmd_print },
|
|
{ (unsigned char *)"Read", T_CMD, 0, cmd_read },
|
|
{ (unsigned char *)"Rem", T_CMD, 0, cmd_null, },
|
|
{ (unsigned char *)"Restore", T_CMD, 0, cmd_restore },
|
|
{ (unsigned char *)"Return", T_CMD, 0, cmd_return, },
|
|
{ (unsigned char *)"Run", T_CMD, 0, cmd_run },
|
|
{ (unsigned char *)"Save", T_CMD, 0, cmd_save },
|
|
{ (unsigned char *)"Static", T_CMD, 0, cmd_dim },
|
|
{ (unsigned char *)"Sub", T_CMD, 0, cmd_subfun },
|
|
{ (unsigned char *)"Trace", T_CMD, 0, cmd_trace },
|
|
{ (unsigned char *)"While", T_CMD, 0, cmd_do },
|
|
{ (unsigned char *)"Const", T_CMD, 0, cmd_const },
|
|
{ (unsigned char *)"Execute", T_CMD, 0, cmd_execute },
|
|
{ (unsigned char *)"MID$(", T_CMD | T_FUN, 0, cmd_mid },
|
|
{ (unsigned char *)"/*", T_CMD, 0, cmd_comment },
|
|
{ (unsigned char *)"*/", T_CMD, 0, cmd_endcomment },
|
|
{ (unsigned char *)"Open", T_CMD, 0, cmd_open },
|
|
{ (unsigned char *)"Close", T_CMD, 0, cmd_close },
|
|
{ (unsigned char *)"Kill", T_CMD, 0, cmd_kill },
|
|
{ (unsigned char *)"Rmdir", T_CMD, 0, cmd_rmdir },
|
|
{ (unsigned char *)"Chdir", T_CMD, 0, cmd_chdir },
|
|
{ (unsigned char *)"Mkdir", T_CMD, 0, cmd_mkdir },
|
|
{ (unsigned char *)"Copy", T_CMD, 0, cmd_copy },
|
|
{ (unsigned char *)"Rename", T_CMD, 0, cmd_name },
|
|
{ (unsigned char *)"Seek", T_CMD, 0, cmd_seek },
|
|
{ (unsigned char *)"Flash", T_CMD, 0, cmd_flash },
|
|
{ (unsigned char *)"VAR", T_CMD, 0, cmd_var },
|
|
{ (unsigned char *)"Flush", T_CMD, 0, cmd_flush },
|
|
{ (unsigned char *)"Drive", T_CMD, 0, cmd_disk },
|
|
{ (unsigned char *)"Play", T_CMD, 0, cmd_play },
|
|
{ (unsigned char *)"PIO", T_CMD, 0, cmd_pio },
|
|
{ (unsigned char *)"New", T_CMD, 0, cmd_new },
|
|
{ (unsigned char *)"Pixel", T_CMD, 0, cmd_pixel },
|
|
{ (unsigned char *)"Circle", T_CMD, 0, cmd_circle },
|
|
{ (unsigned char *)"Line", T_CMD, 0, cmd_line },
|
|
{ (unsigned char *)"Box", T_CMD, 0, cmd_box },
|
|
{ (unsigned char *)"RBox", T_CMD, 0, cmd_rbox },
|
|
{ (unsigned char *)"CLS", T_CMD, 0, cmd_cls },
|
|
{ (unsigned char *)"Font", T_CMD, 0, cmd_font },
|
|
{ (unsigned char *)"Triangle", T_CMD, 0, cmd_triangle },
|
|
{ (unsigned char *)"Arc", T_CMD, 0, cmd_arc },
|
|
{ (unsigned char *)"Polygon", T_CMD, 0, cmd_polygon },
|
|
{ (unsigned char *)"FRAMEBUFFER", T_CMD, 0, cmd_framebuffer },
|
|
{ (unsigned char *)"Sprite", T_CMD, 0, cmd_sprite },
|
|
{ (unsigned char *)"Blit", T_CMD, 0, cmd_blit },
|
|
{ (unsigned char *)"Edit File", T_CMD, 0, cmd_editfile },
|
|
{ (unsigned char *)"Edit", T_CMD, 0, cmd_edit },
|
|
{ (unsigned char *)"ADC", T_CMD, 0, cmd_adc },
|
|
{ (unsigned char *)"Pin(", T_CMD | T_FUN, 0, cmd_pin },
|
|
{ (unsigned char *)"SetPin", T_CMD, 0, cmd_setpin },
|
|
{ (unsigned char *)"Pulse", T_CMD, 0, cmd_pulse },
|
|
{ (unsigned char *)"Port(", T_CMD | T_FUN, 0, cmd_port },
|
|
{ (unsigned char *)"IR", T_CMD, 0, cmd_ir },
|
|
{ (unsigned char *)"Blit Memory", T_CMD, 0, cmd_blitmemory },
|
|
#ifdef GUICONTROLS
|
|
{ (unsigned char *)"GUI", T_CMD, 0, cmd_gui },
|
|
#else
|
|
{ (unsigned char *)"GUI", T_CMD, 0, cmd_guiMX170 },
|
|
#endif
|
|
{ (unsigned char *)"Device", T_CMD, 0, cmd_device },
|
|
{ (unsigned char *)"PWM", T_CMD, 0, cmd_pwm },
|
|
{ (unsigned char *)"CSub", T_CMD, 0, cmd_cfunction},
|
|
{ (unsigned char *)"End CSub", T_CMD, 0, cmd_null },
|
|
{ (unsigned char *)"SYNC", T_CMD, 0, cmd_sync },
|
|
{ (unsigned char *)"I2C", T_CMD, 0, cmd_i2c },
|
|
{ (unsigned char *)"I2C2", T_CMD, 0, cmd_i2c2 },
|
|
{ (unsigned char *)"RTC", T_CMD, 0, cmd_rtc },
|
|
{ (unsigned char *)"Math", T_CMD, 0, cmd_math },
|
|
{ (unsigned char *)"Memory", T_CMD, 0, cmd_memory },
|
|
{ (unsigned char *)"Option", T_CMD, 0, cmd_option },
|
|
{ (unsigned char *)"Pause", T_CMD, 0, cmd_pause },
|
|
{ (unsigned char *)"Timer", T_CMD | T_FUN, 0, cmd_timer },
|
|
{ (unsigned char *)"Date$", T_CMD | T_FUN, 0, cmd_date },
|
|
{ (unsigned char *)"Time$", T_CMD | T_FUN, 0, cmd_time },
|
|
{ (unsigned char *)"IReturn", T_CMD, 0, cmd_ireturn },
|
|
{ (unsigned char *)"Poke", T_CMD, 0, cmd_poke },
|
|
{ (unsigned char *)"SetTick", T_CMD, 0, cmd_settick },
|
|
{ (unsigned char *)"WatchDog", T_CMD, 0, cmd_watchdog },
|
|
{ (unsigned char *)"CPU", T_CMD, 0, cmd_cpu },
|
|
{ (unsigned char *)"Sort", T_CMD, 0, cmd_sort },
|
|
{ (unsigned char *)"DefineFont", T_CMD, 0, cmd_cfunction},
|
|
{ (unsigned char *)"End DefineFont", T_CMD, 0, cmd_null },
|
|
{ (unsigned char *)"LongString", T_CMD, 0, cmd_longString },
|
|
{ (unsigned char *)"Interrupt", T_CMD, 0, cmd_csubinterrupt},
|
|
{ (unsigned char *)"Library", T_CMD, 0, cmd_library },
|
|
{ (unsigned char *)"OneWire", T_CMD, 0, cmd_onewire },
|
|
{ (unsigned char *)"TEMPR START", T_CMD, 0, cmd_ds18b20 },
|
|
{ (unsigned char *)"SPI", T_CMD, 0, cmd_spi },
|
|
{ (unsigned char *)"SPI2", T_CMD, 0, cmd_spi2 },
|
|
{ (unsigned char *)"XModem", T_CMD, 0, cmd_xmodem },
|
|
{ (unsigned char *)"Cat", T_CMD, 0, cmd_inc },
|
|
{ (unsigned char *)"Color", T_CMD, 0, cmd_colour },
|
|
{ (unsigned char *)"Files", T_CMD, 0, cmd_files },
|
|
{ (unsigned char *)"Text", T_CMD, 0, cmd_text },
|
|
{ (unsigned char *)"Autosave", T_CMD, 0, cmd_autosave },
|
|
{ (unsigned char *)"WS2812", T_CMD, 0, cmd_WS2812 },
|
|
{ (unsigned char *)"Keypad", T_CMD, 0, cmd_keypad },
|
|
{ (unsigned char *)"Humid", T_CMD, 0, cmd_DHT22 },
|
|
{ (unsigned char *)"LCD", T_CMD, 0, cmd_lcd },
|
|
{ (unsigned char *)"Wii Classic", T_CMD, 0, cmd_Classic },
|
|
{ (unsigned char *)"Wii Nunchuck", T_CMD, 0, cmd_Nunchuck },
|
|
{ (unsigned char *)"Wii", T_CMD, 0, cmd_Classic },
|
|
{ (unsigned char *)"Servo", T_CMD, 0, cmd_Servo },
|
|
{ (unsigned char *)"Mouse", T_CMD, 0, cmd_mouse },
|
|
{ (unsigned char *)"Chain", T_CMD, 0, cmd_chain },
|
|
{ (unsigned char *)"_wrap target", T_CMD, 0, cmd_wraptarget },
|
|
{ (unsigned char *)"_wrap", T_CMD, 0, cmd_wrap },
|
|
{ (unsigned char *)"_line", T_CMD, 0, cmd_PIOline },
|
|
{ (unsigned char *)"_program", T_CMD, 0, cmd_program },
|
|
{ (unsigned char *)"_end program", T_CMD, 0, cmd_endprogram },
|
|
{ (unsigned char *)"_side set", T_CMD, 0, cmd_sideset },
|
|
{ (unsigned char *)"_label", T_CMD, 0, cmd_label },
|
|
{ (unsigned char *)"Jmp", T_CMD, 0, cmd_jmp },
|
|
{ (unsigned char *)"Wait", T_CMD, 0, cmd_wait },
|
|
{ (unsigned char *)"In", T_CMD, 0, cmd_in },
|
|
{ (unsigned char *)"Out", T_CMD, 0, cmd_out },
|
|
{ (unsigned char *)"Push", T_CMD, 0, cmd_push },
|
|
{ (unsigned char *)"Pull", T_CMD, 0, cmd_pull },
|
|
{ (unsigned char *)"Mov", T_CMD, 0, cmd_mov },
|
|
{ (unsigned char *)"Nop", T_CMD, 0, cmd_nop },
|
|
{ (unsigned char *)"IRQ SET", T_CMD, 0, cmd_irqset },
|
|
{ (unsigned char *)"IRQ WAIT", T_CMD, 0, cmd_irqwait },
|
|
{ (unsigned char *)"IRQ CLEAR", T_CMD, 0, cmd_irqclear },
|
|
{ (unsigned char *)"IRQ NOWAIT",T_CMD, 0, cmd_irqnowait },
|
|
{ (unsigned char *)"IRQ", T_CMD, 0, cmd_irq },
|
|
{ (unsigned char *)"Set", T_CMD, 0, cmd_set },
|
|
{ (unsigned char *)"Byte(", T_CMD | T_FUN, 0, cmd_byte },
|
|
{ (unsigned char *)"Flag(", T_CMD | T_FUN, 0, cmd_flag },
|
|
/*frame
|
|
{ (unsigned char *)"Frame", T_CMD | T_FUN, 0, cmd_frame },
|
|
*/
|
|
#ifdef PICOMITEVGA
|
|
{ (unsigned char *)"TILE", T_CMD, 0, cmd_tile },
|
|
{ (unsigned char *)"MODE", T_CMD, 0, cmd_mode },
|
|
{ (unsigned char *)"Map(", T_CMD | T_FUN , 0, cmd_map },
|
|
{ (unsigned char *)"Map", T_CMD, 0, cmd_map },
|
|
{ (unsigned char *)"Colour Map", T_CMD, 0, cmd_colourmap },
|
|
#else
|
|
{ (unsigned char *)"Camera", T_CMD, 0, cmd_camera },
|
|
{ (unsigned char *)"Refresh", T_CMD, 0, cmd_refresh },
|
|
#endif
|
|
#ifdef GUICONTROLS
|
|
{ (unsigned char *)"CtrlVal(", T_CMD | T_FUN, 0, cmd_ctrlval },
|
|
#endif
|
|
#ifdef PICOMITE
|
|
{ (unsigned char *)"Backlight", T_CMD, 0, cmd_backlight },
|
|
#endif
|
|
#ifdef PICOMITEWEB
|
|
{ (unsigned char *)"Backlight", T_CMD, 0, cmd_backlight },
|
|
{ (unsigned char *)"WEB", T_CMD, 0, cmd_web },
|
|
#else
|
|
{ (unsigned char *)"Draw3D", T_CMD, 0, cmd_3D },
|
|
#endif
|
|
#ifndef USBKEYBOARD
|
|
{ (unsigned char *)"Update Firmware", T_CMD, 0, cmd_update},
|
|
#else
|
|
{ (unsigned char *)"Gamepad", T_CMD, 0, cmd_gamepad },
|
|
#endif
|
|
{ (unsigned char *)"Configure", T_CMD, 0, cmd_configure },
|
|
{ (unsigned char *)"Colour", T_CMD, 0, cmd_colour },
|
|
#ifdef rp2350
|
|
{ (unsigned char *)"CMM2 Load", T_CMD, 0, cmd_loadCMM2 },
|
|
{ (unsigned char *)"CMM2 Run", T_CMD, 0, cmd_RunCMM2 },
|
|
{ (unsigned char *)"Randomize", T_CMD, 0, cmd_null},
|
|
#ifndef PICOMITEWEB
|
|
{ (unsigned char *)"Ram", T_CMD, 0, cmd_psram },
|
|
#endif
|
|
#else
|
|
{ (unsigned char *)"Randomize", T_CMD, 0, cmd_randomize},
|
|
#endif
|
|
{ (unsigned char *)"Bit(", T_CMD | T_FUN, 0, cmd_bit },
|
|
{ (unsigned char *)"Flags", T_CMD | T_FUN, 0, cmd_flags },
|
|
{ (unsigned char *)"Help", T_CMD | T_FUN, 0, cmd_help },
|
|
{ (unsigned char *)"Array Slice", T_CMD, 0, cmd_slice },
|
|
{ (unsigned char *)"Array Insert", T_CMD, 0, cmd_insert },
|
|
{ (unsigned char *)"Array Add", T_CMD, 0, cmd_add },
|
|
{ (unsigned char *)"Array Set", T_CMD, 0, cmd_arrayset },
|
|
{ (unsigned char *)"", 0, 0, cmd_null, } // this dummy entry is always at the end
|
|
#endif
|
|
/* ********************************************************************************
|
|
All other tokens (keywords, functions, operators) should be inserted in this table
|
|
**********************************************************************************/
|
|
#ifdef INCLUDE_TOKEN_TABLE
|
|
// These 4 operators mustn't be moved
|
|
{ (unsigned char *)"Not", T_OPER | T_NBR | T_INT, 3, op_not },
|
|
{ (unsigned char *)"INV", T_OPER | T_NBR | T_INT, 3, op_inv },
|
|
{ (unsigned char *)"+", T_OPER | T_NBR | T_INT | T_STR, 2, op_add },
|
|
{ (unsigned char *)"-", T_OPER | T_NBR | T_INT, 2, op_subtract },
|
|
//
|
|
{ (unsigned char *)"^", T_OPER | T_NBR | T_INT, 0, op_exp },
|
|
{ (unsigned char *)"*", T_OPER | T_NBR | T_INT, 1, op_mul },
|
|
{ (unsigned char *)"/", T_OPER | T_NBR, 1, op_div },
|
|
{ (unsigned char *)"\\", T_OPER | T_INT, 1, op_divint },
|
|
{ (unsigned char *)"Mod", T_OPER | T_INT, 1, op_mod },
|
|
{ (unsigned char *)"<<", T_OPER | T_INT, 4, op_shiftleft },
|
|
{ (unsigned char *)">>", T_OPER | T_INT, 4, op_shiftright },
|
|
{ (unsigned char *)"<>", T_OPER | T_NBR | T_INT | T_STR, 5, op_ne },
|
|
{ (unsigned char *)">=", T_OPER | T_NBR | T_INT | T_STR, 5, op_gte },
|
|
{ (unsigned char *)"<=", T_OPER | T_NBR | T_INT | T_STR, 5, op_lte },
|
|
{ (unsigned char *)"<", T_OPER | T_NBR | T_INT | T_STR, 5, op_lt },
|
|
{ (unsigned char *)">", T_OPER | T_NBR | T_INT | T_STR, 5, op_gt },
|
|
{ (unsigned char *)"=", T_OPER | T_NBR | T_INT | T_STR, 6, op_equal },
|
|
{ (unsigned char *)"And", T_OPER | T_INT, 7, op_and },
|
|
{ (unsigned char *)"Or", T_OPER | T_INT, 7, op_or },
|
|
{ (unsigned char *)"Xor", T_OPER | T_INT, 7, op_xor },
|
|
{ (unsigned char *)"ACos(", T_FUN | T_NBR, 0, fun_acos },
|
|
{ (unsigned char *)"Abs(", T_FUN | T_NBR | T_INT, 0, fun_abs },
|
|
{ (unsigned char *)"Asc(", T_FUN | T_INT, 0, fun_asc },
|
|
{ (unsigned char *)"ASin(", T_FUN | T_NBR, 0, fun_asin },
|
|
{ (unsigned char *)"Atn(", T_FUN | T_NBR, 0, fun_atn },
|
|
{ (unsigned char *)"Atan2(", T_FUN | T_NBR, 0, fun_atan2 },
|
|
{ (unsigned char *)"Bin$(", T_FUN | T_STR, 0, fun_bin },
|
|
{ (unsigned char *)"Bound(", T_FUN | T_INT, 0, fun_bound },
|
|
{ (unsigned char *)"Choice(", T_FUN | T_STR | T_INT | T_NBR, 0, fun_ternary },
|
|
{ (unsigned char *)"Chr$(", T_FUN | T_STR, 0, fun_chr, },
|
|
{ (unsigned char *)"Cint(", T_FUN | T_INT, 0, fun_cint },
|
|
{ (unsigned char *)"Cos(", T_FUN | T_NBR, 0, fun_cos },
|
|
{ (unsigned char *)"Deg(", T_FUN | T_NBR, 0, fun_deg },
|
|
{ (unsigned char *)"Exp(", T_FUN | T_NBR, 0, fun_exp },
|
|
{ (unsigned char *)"Field$(", T_FUN | T_STR, 0, fun_field },
|
|
{ (unsigned char *)"Fix(", T_FUN | T_INT, 0, fun_fix },
|
|
{ (unsigned char *)"Hex$(", T_FUN | T_STR, 0, fun_hex },
|
|
{ (unsigned char *)"Inkey$", T_FNA | T_STR, 0, fun_inkey },
|
|
{ (unsigned char *)"Instr(", T_FUN | T_INT, 0, fun_instr},
|
|
{ (unsigned char *)"Int(", T_FUN | T_INT, 0, fun_int },
|
|
{ (unsigned char *)"LCase$(", T_FUN | T_STR, 0, fun_lcase },
|
|
{ (unsigned char *)"Left$(", T_FUN | T_STR, 0, fun_left },
|
|
{ (unsigned char *)"Len(", T_FUN | T_INT, 0, fun_len },
|
|
{ (unsigned char *)"Log(", T_FUN | T_NBR, 0, fun_log },
|
|
{ (unsigned char *)"Mid$(", T_FUN | T_STR, 0, fun_mid },
|
|
{ (unsigned char *)"TEMPR(", T_FUN | T_NBR, 0, fun_ds18b20 },
|
|
{ (unsigned char *)"SPI(", T_FUN | T_INT, 0, fun_spi, },
|
|
{ (unsigned char *)"Oct$(", T_FUN | T_STR, 0, fun_oct },
|
|
{ (unsigned char *)"Pi", T_FNA | T_NBR, 0, fun_pi },
|
|
{ (unsigned char *)"Pos", T_FNA | T_INT, 0, fun_pos },
|
|
{ (unsigned char *)"Rad(", T_FUN | T_NBR, 0, fun_rad },
|
|
{ (unsigned char *)"Right$(", T_FUN | T_STR, 0, fun_right },
|
|
{ (unsigned char *)"Rnd(", T_FUN | T_NBR, 0, fun_rnd }, // this must come before Rnd - without bracket
|
|
{ (unsigned char *)"Rnd", T_FNA | T_NBR, 0, fun_rnd }, // this must come after Rnd(
|
|
{ (unsigned char *)"Sgn(", T_FUN | T_INT, 0, fun_sgn },
|
|
{ (unsigned char *)"Sin(", T_FUN | T_NBR, 0, fun_sin },
|
|
{ (unsigned char *)"Space$(", T_FUN | T_STR, 0, fun_space },
|
|
{ (unsigned char *)"Sqr(", T_FUN | T_NBR, 0, fun_sqr },
|
|
{ (unsigned char *)"Str$(", T_FUN | T_STR, 0, fun_str },
|
|
{ (unsigned char *)"String$(", T_FUN | T_STR, 0, fun_string },
|
|
{ (unsigned char *)"Tab(", T_FUN | T_STR, 0, fun_tab, },
|
|
{ (unsigned char *)"Tan(", T_FUN | T_NBR, 0, fun_tan },
|
|
{ (unsigned char *)"UCase$(", T_FUN | T_STR, 0, fun_ucase },
|
|
{ (unsigned char *)"Val(", T_FUN | T_NBR | T_INT, 0, fun_val },
|
|
{ (unsigned char *)"Eval(", T_FUN | T_NBR | T_INT | T_STR, 0, fun_eval },
|
|
{ (unsigned char *)"Max(", T_FUN | T_NBR, 0, fun_max },
|
|
{ (unsigned char *)"Min(", T_FUN | T_NBR, 0, fun_min },
|
|
{ (unsigned char *)"Bin2str$(", T_FUN | T_STR, 0, fun_bin2str },
|
|
{ (unsigned char *)"Str2bin(", T_FUN | T_NBR | T_INT, 0, fun_str2bin },
|
|
{ (unsigned char *)"Call(", T_FUN | T_STR | T_INT | T_NBR, 0, fun_call },
|
|
{ (unsigned char *)"For", T_NA, 0, op_invalid },
|
|
{ (unsigned char *)"Else", T_NA, 0, op_invalid },
|
|
{ (unsigned char *)"GoSub", T_NA, 0, op_invalid },
|
|
{ (unsigned char *)"GoTo", T_NA, 0, op_invalid },
|
|
{ (unsigned char *)"Step", T_NA, 0, op_invalid },
|
|
{ (unsigned char *)"Then", T_NA, 0, op_invalid },
|
|
{ (unsigned char *)"To", T_NA, 0, op_invalid },
|
|
{ (unsigned char *)"Until", T_NA, 0, op_invalid },
|
|
{ (unsigned char *)"While", T_NA, 0, op_invalid },
|
|
{ (unsigned char *)"Eof(", T_FUN | T_INT, 0, fun_eof },
|
|
{ (unsigned char *)"Loc(", T_FUN | T_INT, 0, fun_loc },
|
|
{ (unsigned char *)"Lof(", T_FUN | T_INT, 0, fun_lof },
|
|
{ (unsigned char *)"Cwd$", T_FNA | T_STR, 0, fun_cwd },
|
|
{ (unsigned char *)"As", T_NA, 0, op_invalid },
|
|
{ (unsigned char *)"Input$(", T_FUN | T_STR, 0, fun_inputstr },
|
|
{ (unsigned char *)"Dir$(", T_FUN | T_STR, 0, fun_dir },
|
|
{ (unsigned char *)"Pio(", T_FUN | T_INT, 0, fun_pio },
|
|
{ (unsigned char *)"RGB(", T_FUN | T_INT, 0, fun_rgb },
|
|
{ (unsigned char *)"Pixel(", T_FUN | T_INT, 0, fun_pixel },
|
|
{ (unsigned char *)"SPI2(", T_FUN | T_INT, 0, fun_spi2, },
|
|
{ (unsigned char *)"DEVICE(", T_FUN | T_INT| T_NBR | T_STR, 0, fun_dev, },
|
|
{ (unsigned char *)"@(", T_FUN | T_STR, 0, fun_at },
|
|
{ (unsigned char *)"Pin(", T_FUN | T_NBR | T_INT, 0, fun_pin },
|
|
{ (unsigned char *)"Port(", T_FUN | T_INT, 0, fun_port },
|
|
{ (unsigned char *)"Distance(", T_FUN | T_NBR, 0, fun_distance },
|
|
{ (unsigned char *)"Pulsin(", T_FUN | T_INT, 0, fun_pulsin },
|
|
{ (unsigned char *)"GPS(", T_FUN | T_NBR | T_INT| T_STR, 0, fun_GPS },
|
|
{ (unsigned char *)"Byte(", T_FUN | T_INT, 0, fun_byte, },
|
|
{ (unsigned char *)"Math(", T_FUN | T_NBR | T_INT, 0, fun_math },
|
|
{ (unsigned char *)"Timer", T_FNA | T_NBR , 0, fun_timer },
|
|
{ (unsigned char *)"LInStr(", T_FUN | T_INT, 0, fun_LInstr },
|
|
{ (unsigned char *)"LCompare(", T_FUN | T_INT, 0, fun_LCompare },
|
|
{ (unsigned char *)"LLen(", T_FUN | T_INT, 0, fun_LLen },
|
|
{ (unsigned char *)"LGetStr$(", T_FUN | T_STR, 0, fun_LGetStr },
|
|
{ (unsigned char *)"LGetByte(", T_FUN | T_INT, 0, fun_LGetByte },
|
|
{ (unsigned char *)"Date$", T_FNA | T_STR, 0, fun_date },
|
|
{ (unsigned char *)"Day$(", T_FUN | T_STR, 0, fun_day },
|
|
{ (unsigned char *)"Peek(", T_FUN | T_INT | T_STR | T_NBR, 0, fun_peek },
|
|
{ (unsigned char *)"Time$", T_FNA | T_STR, 0, fun_time },
|
|
{ (unsigned char *)"sprite(", T_FUN | T_INT | T_NBR, 0, fun_sprite },
|
|
{ (unsigned char *)"Flag(", T_FUN | T_INT, 0, fun_flag, },
|
|
{ (unsigned char *)"Epoch(", T_FUN | T_INT, 0, fun_epoch },
|
|
{ (unsigned char *)"DateTime$(", T_FUN | T_STR, 0, fun_datetime },
|
|
{ (unsigned char *)"MM.Info(", T_FUN | T_INT | T_NBR| T_STR, 0, fun_info },
|
|
{ (unsigned char *)"Format$(", T_FUN | T_STR, 0, fun_format },
|
|
{ (unsigned char*)"~(", T_FUN | T_INT | T_NBR | T_STR , 0, fun_tilde },
|
|
#ifdef USBKEYBOARD
|
|
{ (unsigned char*)"KeyDown(", T_FUN | T_INT, 0, fun_keydown },
|
|
#endif
|
|
#ifdef PICOMITEVGA
|
|
{ (unsigned char*)"DRAW3D(", T_FUN | T_INT, 0, fun_3D, },
|
|
{ (unsigned char *)"GetScanLine", T_FNA | T_INT, 0, fun_getscanline },
|
|
{ (unsigned char*)"Map(", T_FUN | T_INT, 0, fun_map, },
|
|
#else
|
|
{ (unsigned char *)"Touch(", T_FUN | T_INT, 0, fun_touch },
|
|
#endif
|
|
#ifdef PICOMITEWEB
|
|
{ (unsigned char *)"Json$(", T_FUN | T_STR, 0, fun_json },
|
|
#endif
|
|
#ifdef GUICONTROLS
|
|
{ (unsigned char *)"MsgBox(", T_FUN | T_INT, 0, fun_msgbox },
|
|
{ (unsigned char *)"CtrlVal(", T_FUN | T_NBR | T_STR, 0, fun_ctrlval },
|
|
#endif
|
|
{ (unsigned char *)"Bit(", T_FUN | T_INT, 0, fun_bit, },
|
|
{ (unsigned char *)"", 0, 0, cmd_null, } // this dummy entry is always at the end
|
|
#endif
|
|
/* @endcond */
|
|
|
|
|