Copy disabled (too large)
Download .txt
Showing preview only (13,826K chars total). Download the full file to get everything.
Repository: NerdLang/nerd
Branch: master
Commit: 400b367708c2
Files: 1067
Total size: 13.0 MB
Directory structure:
gitextract_918hrja8/
├── .gitignore
├── LICENSE
├── README.md
├── base/
│ ├── cli/
│ │ └── cliParser.js
│ ├── compiler/
│ │ └── target.js
│ └── util/
│ ├── copyDirSync.js
│ ├── copyRecursive.js
│ ├── flash.js
│ ├── getExt.js
│ └── getTips.js
├── compiler/
│ ├── native/
│ │ ├── compiler.js
│ │ ├── env/
│ │ │ ├── arduino.js
│ │ │ ├── js.js
│ │ │ ├── std.js
│ │ │ └── wasm.js
│ │ ├── nerdcore/
│ │ │ ├── src/
│ │ │ │ ├── class/
│ │ │ │ │ ├── _meta.h
│ │ │ │ │ ├── array.h
│ │ │ │ │ ├── array_header.h
│ │ │ │ │ ├── base_header.h
│ │ │ │ │ ├── fixed_array.h
│ │ │ │ │ ├── fixed_array_header.h
│ │ │ │ │ ├── function.h
│ │ │ │ │ ├── function_header.h
│ │ │ │ │ ├── native.h
│ │ │ │ │ ├── native_header.h
│ │ │ │ │ ├── native_tpl_header.h
│ │ │ │ │ ├── number.h
│ │ │ │ │ ├── number_header.h
│ │ │ │ │ ├── object.h
│ │ │ │ │ ├── object_header.h
│ │ │ │ │ ├── string.h
│ │ │ │ │ ├── string_header.h
│ │ │ │ │ ├── struct.h
│ │ │ │ │ └── struct_header.h
│ │ │ │ ├── classes.h
│ │ │ │ ├── classes_header.h
│ │ │ │ ├── enum.h
│ │ │ │ ├── functions.h
│ │ │ │ ├── functions_header.h
│ │ │ │ ├── macro.h
│ │ │ │ ├── native/
│ │ │ │ │ ├── double.h
│ │ │ │ │ ├── double_header.h
│ │ │ │ │ ├── int.h
│ │ │ │ │ └── int_header.h
│ │ │ │ ├── native.h
│ │ │ │ ├── native_header.h
│ │ │ │ ├── nerd.cpp
│ │ │ │ ├── nerd.hpp
│ │ │ │ ├── objmgmt.h
│ │ │ │ ├── objmgmt_header.h
│ │ │ │ ├── operator.h
│ │ │ │ ├── operator_header.h
│ │ │ │ ├── stdfn.h
│ │ │ │ ├── stdfn_header.h
│ │ │ │ ├── tsl/
│ │ │ │ │ ├── robin_growth_policy.h
│ │ │ │ │ ├── robin_hash.h
│ │ │ │ │ ├── robin_map.h
│ │ │ │ │ └── robin_set.h
│ │ │ │ ├── type_header.h
│ │ │ │ ├── values.h
│ │ │ │ ├── values_header.h
│ │ │ │ ├── var.h
│ │ │ │ └── var_header.h
│ │ │ └── test/
│ │ │ ├── array.cpp
│ │ │ ├── cast.cpp
│ │ │ ├── native.cpp
│ │ │ ├── object.cpp
│ │ │ └── operators.cpp
│ │ └── squel/
│ │ ├── arduino.cpp
│ │ ├── js.cpp
│ │ ├── std.cpp
│ │ └── wasm.cpp
│ └── self/
│ ├── base/
│ │ ├── cli/
│ │ │ └── cliParser.ng
│ │ ├── compiler/
│ │ │ └── target.js
│ │ └── util/
│ │ ├── copyDirSync.js
│ │ ├── copyRecursive.js
│ │ ├── flash.js
│ │ ├── getExt.js
│ │ ├── getTips.js
│ │ ├── httpUtils.js
│ │ └── rmdir.js
│ └── nerd.ng
├── example/
│ ├── arduino-lcd.ng
│ ├── arduino.ng
│ ├── args.ng
│ ├── circular_array.ng
│ ├── circular_fixed_array.ng
│ ├── circular_object.ng
│ ├── const.ng
│ ├── date.ng
│ ├── exec.ng
│ ├── exit.ng
│ ├── fibo.ng
│ ├── fiboit.ng
│ ├── functional.ng
│ ├── hello.ng
│ ├── http.ng
│ ├── http_post.ng
│ ├── json.ng
│ ├── loop.ng
│ ├── match.ng
│ ├── native.ng
│ ├── nested_object.ng
│ ├── new.ng
│ ├── object_keys.ng
│ ├── os.ng
│ ├── path.ng
│ ├── readfile.ng
│ ├── thread.ng
│ ├── throw.ng
│ ├── wasm.html
│ └── wasm_binding.ng
├── external/
│ ├── arduino/
│ │ ├── avr/
│ │ │ ├── LICENSE.txt
│ │ │ ├── boards.txt
│ │ │ ├── bootloaders/
│ │ │ │ ├── atmega/
│ │ │ │ │ ├── ATmegaBOOT_168.c
│ │ │ │ │ ├── ATmegaBOOT_168_atmega1280.hex
│ │ │ │ │ ├── ATmegaBOOT_168_atmega328.hex
│ │ │ │ │ ├── ATmegaBOOT_168_atmega328_pro_8MHz.hex
│ │ │ │ │ ├── ATmegaBOOT_168_diecimila.hex
│ │ │ │ │ ├── ATmegaBOOT_168_ng.hex
│ │ │ │ │ ├── ATmegaBOOT_168_pro_8MHz.hex
│ │ │ │ │ └── Makefile
│ │ │ │ ├── atmega8/
│ │ │ │ │ ├── ATmegaBOOT-prod-firmware-2009-11-07.hex
│ │ │ │ │ ├── ATmegaBOOT.c
│ │ │ │ │ ├── ATmegaBOOT.hex
│ │ │ │ │ ├── ATmegaBOOT.txt
│ │ │ │ │ └── Makefile
│ │ │ │ ├── bt/
│ │ │ │ │ ├── ATmegaBOOT_168.c
│ │ │ │ │ ├── ATmegaBOOT_168.hex
│ │ │ │ │ ├── ATmegaBOOT_168_atmega328_bt.hex
│ │ │ │ │ └── Makefile
│ │ │ │ ├── caterina/
│ │ │ │ │ ├── Caterina-Circuitplay32u4.hex
│ │ │ │ │ ├── Caterina-Esplora.hex
│ │ │ │ │ ├── Caterina-Esplora.txt
│ │ │ │ │ ├── Caterina-Industrial101.hex
│ │ │ │ │ ├── Caterina-Leonardo.hex
│ │ │ │ │ ├── Caterina-Leonardo.txt
│ │ │ │ │ ├── Caterina-LeonardoEthernet.hex
│ │ │ │ │ ├── Caterina-LininoOne.hex
│ │ │ │ │ ├── Caterina-Micro.hex
│ │ │ │ │ ├── Caterina-Micro.txt
│ │ │ │ │ ├── Caterina-Yun-noblink.hex
│ │ │ │ │ ├── Caterina-Yun.hex
│ │ │ │ │ ├── Caterina-YunMini.hex
│ │ │ │ │ ├── Caterina.c
│ │ │ │ │ ├── Caterina.h
│ │ │ │ │ ├── Descriptors.c
│ │ │ │ │ ├── Descriptors.h
│ │ │ │ │ ├── Esplora-prod-firmware-2012-12-10.hex
│ │ │ │ │ ├── Esplora-prod-firmware-2012-12-10.txt
│ │ │ │ │ ├── Leonardo-prod-firmware-2012-04-26.hex
│ │ │ │ │ ├── Leonardo-prod-firmware-2012-04-26.txt
│ │ │ │ │ ├── Leonardo-prod-firmware-2012-12-10.hex
│ │ │ │ │ ├── Leonardo-prod-firmware-2012-12-10.txt
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── Micro-prod-firmware-2012-11-23.hex
│ │ │ │ │ ├── Micro-prod-firmware-2012-11-23.txt
│ │ │ │ │ ├── Micro-prod-firmware-2012-12-10.hex
│ │ │ │ │ └── Micro-prod-firmware-2012-12-10.txt
│ │ │ │ ├── caterina-Arduino_Robot/
│ │ │ │ │ ├── Caterina-Robot-Control.hex
│ │ │ │ │ ├── Caterina-Robot-Motor.hex
│ │ │ │ │ ├── Caterina-Robot.txt
│ │ │ │ │ ├── Caterina.c
│ │ │ │ │ ├── Caterina.h
│ │ │ │ │ ├── Descriptors.c
│ │ │ │ │ ├── Descriptors.h
│ │ │ │ │ ├── Makefile
│ │ │ │ │ └── README.md
│ │ │ │ ├── caterina-LilyPadUSB/
│ │ │ │ │ ├── Caterina-LilyPadUSB.hex
│ │ │ │ │ ├── Caterina.c
│ │ │ │ │ ├── Caterina.h
│ │ │ │ │ ├── Descriptors.c
│ │ │ │ │ ├── Descriptors.h
│ │ │ │ │ ├── Makefile
│ │ │ │ │ └── Readme.txt
│ │ │ │ ├── gemma/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── avrdude.conf
│ │ │ │ │ ├── gemma_v1.hex
│ │ │ │ │ ├── usbconfig.h
│ │ │ │ │ └── usbconfig.patch
│ │ │ │ ├── lilypad/
│ │ │ │ │ ├── LilyPadBOOT_168.hex
│ │ │ │ │ └── src/
│ │ │ │ │ ├── ATmegaBOOT.c
│ │ │ │ │ └── Makefile
│ │ │ │ ├── optiboot/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── README.TXT
│ │ │ │ │ ├── boot.h
│ │ │ │ │ ├── makeall
│ │ │ │ │ ├── omake
│ │ │ │ │ ├── omake.bat
│ │ │ │ │ ├── optiboot.c
│ │ │ │ │ ├── optiboot_atmega168.hex
│ │ │ │ │ ├── optiboot_atmega168.lst
│ │ │ │ │ ├── optiboot_atmega328-Mini.hex
│ │ │ │ │ ├── optiboot_atmega328.hex
│ │ │ │ │ ├── optiboot_atmega328.lst
│ │ │ │ │ ├── optiboot_atmega8.hex
│ │ │ │ │ ├── optiboot_atmega8.lst
│ │ │ │ │ ├── pin_defs.h
│ │ │ │ │ └── stk500.h
│ │ │ │ └── stk500v2/
│ │ │ │ ├── License.txt
│ │ │ │ ├── Makefile
│ │ │ │ ├── Mega2560-prod-firmware-2011-06-29.hex
│ │ │ │ ├── STK500V2.pnproj
│ │ │ │ ├── STK500V2.pnps
│ │ │ │ ├── avr_cpunames.h
│ │ │ │ ├── avrinterruptnames.h
│ │ │ │ ├── command.h
│ │ │ │ ├── stk500boot.c
│ │ │ │ ├── stk500boot.ppg
│ │ │ │ └── stk500boot_v2_mega2560.hex
│ │ │ ├── cores/
│ │ │ │ └── arduino/
│ │ │ │ ├── Arduino.h
│ │ │ │ ├── CDC.cpp
│ │ │ │ ├── Client.h
│ │ │ │ ├── HardwareSerial.cpp
│ │ │ │ ├── HardwareSerial.h
│ │ │ │ ├── HardwareSerial0.cpp
│ │ │ │ ├── HardwareSerial1.cpp
│ │ │ │ ├── HardwareSerial2.cpp
│ │ │ │ ├── HardwareSerial3.cpp
│ │ │ │ ├── HardwareSerial_private.h
│ │ │ │ ├── IPAddress.cpp
│ │ │ │ ├── IPAddress.h
│ │ │ │ ├── PluggableUSB.cpp
│ │ │ │ ├── PluggableUSB.h
│ │ │ │ ├── Print.cpp
│ │ │ │ ├── Print.h
│ │ │ │ ├── Printable.h
│ │ │ │ ├── Server.h
│ │ │ │ ├── Stream.cpp
│ │ │ │ ├── Stream.h
│ │ │ │ ├── Tone.cpp
│ │ │ │ ├── USBAPI.h
│ │ │ │ ├── USBCore.cpp
│ │ │ │ ├── USBCore.h
│ │ │ │ ├── USBDesc.h
│ │ │ │ ├── Udp.h
│ │ │ │ ├── WCharacter.h
│ │ │ │ ├── WInterrupts.c
│ │ │ │ ├── WMath.cpp
│ │ │ │ ├── WString.cpp
│ │ │ │ ├── WString.h
│ │ │ │ ├── abi.cpp
│ │ │ │ ├── binary.h
│ │ │ │ ├── hooks.c
│ │ │ │ ├── main.cpp
│ │ │ │ ├── new.cpp
│ │ │ │ ├── new.h
│ │ │ │ ├── wiring.c
│ │ │ │ ├── wiring_analog.c
│ │ │ │ ├── wiring_digital.c
│ │ │ │ ├── wiring_private.h
│ │ │ │ ├── wiring_pulse.S
│ │ │ │ ├── wiring_pulse.c
│ │ │ │ └── wiring_shift.c
│ │ │ ├── extras/
│ │ │ │ ├── pack.hourlybuild.bash
│ │ │ │ ├── pack.pullrequest.bash
│ │ │ │ ├── pack.release.bash
│ │ │ │ ├── package_index.json.Hourly.template
│ │ │ │ └── package_index.json.PR.template
│ │ │ ├── firmwares/
│ │ │ │ ├── arduinoISP/
│ │ │ │ │ └── readme.txt
│ │ │ │ ├── atmegaxxu2/
│ │ │ │ │ ├── Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex
│ │ │ │ │ ├── Arduino-COMBINED-dfu-usbserial-atmega16u2-MegaADK-Rev3.hex
│ │ │ │ │ ├── Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex
│ │ │ │ │ ├── Genuino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-R3.hex
│ │ │ │ │ ├── Genuino-COMBINED-dfu-usbserial-atmega16u2-Uno-R3.hex
│ │ │ │ │ ├── MEGA-dfu_and_usbserial_combined.hex
│ │ │ │ │ ├── README.txt
│ │ │ │ │ ├── UNO-dfu_and_usbserial_combined.hex
│ │ │ │ │ ├── arduino-usbdfu/
│ │ │ │ │ │ ├── Arduino-usbdfu.c
│ │ │ │ │ │ ├── Arduino-usbdfu.h
│ │ │ │ │ │ ├── Board/
│ │ │ │ │ │ │ └── LEDs.h
│ │ │ │ │ │ ├── Descriptors.c
│ │ │ │ │ │ ├── Descriptors.h
│ │ │ │ │ │ ├── makefile
│ │ │ │ │ │ └── readme.txt
│ │ │ │ │ └── arduino-usbserial/
│ │ │ │ │ ├── Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex
│ │ │ │ │ ├── Arduino-usbserial-atmega16u2-MegaADK-Rev3.hex
│ │ │ │ │ ├── Arduino-usbserial-atmega16u2-Uno-Rev3.hex
│ │ │ │ │ ├── Arduino-usbserial-mega.hex
│ │ │ │ │ ├── Arduino-usbserial-uno.hex
│ │ │ │ │ ├── Arduino-usbserial.c
│ │ │ │ │ ├── Arduino-usbserial.h
│ │ │ │ │ ├── Board/
│ │ │ │ │ │ └── LEDs.h
│ │ │ │ │ ├── Descriptors.c
│ │ │ │ │ ├── Descriptors.h
│ │ │ │ │ ├── Genuino-usbserial-atmega16u2-Mega2560-R3.hex
│ │ │ │ │ ├── Genuino-usbserial-atmega16u2-Uno-R3.hex
│ │ │ │ │ ├── Lib/
│ │ │ │ │ │ └── LightweightRingBuff.h
│ │ │ │ │ ├── makefile
│ │ │ │ │ └── readme.txt
│ │ │ │ └── wifishield/
│ │ │ │ ├── binary/
│ │ │ │ │ ├── wifiHD.elf
│ │ │ │ │ ├── wifiHD.hex
│ │ │ │ │ ├── wifiHD_2_1.elf
│ │ │ │ │ ├── wifi_dnld.elf
│ │ │ │ │ ├── wifi_dnld.hex
│ │ │ │ │ └── wifi_dnld_2_1.elf
│ │ │ │ ├── scripts/
│ │ │ │ │ ├── ArduinoWifiShield_upgrade.sh
│ │ │ │ │ └── ArduinoWifiShield_upgrade_mac.sh
│ │ │ │ ├── wifiHD/
│ │ │ │ │ ├── .cproject
│ │ │ │ │ ├── .project
│ │ │ │ │ ├── Release/
│ │ │ │ │ │ ├── wifiHD.elf
│ │ │ │ │ │ └── wifiHD.hex
│ │ │ │ │ ├── src/
│ │ │ │ │ │ ├── CONFIG/
│ │ │ │ │ │ │ ├── conf_access.h
│ │ │ │ │ │ │ ├── conf_at45dbx.h
│ │ │ │ │ │ │ ├── conf_ebi.h
│ │ │ │ │ │ │ └── conf_sd_mmc_spi.h
│ │ │ │ │ │ ├── SOFTWARE_FRAMEWORK/
│ │ │ │ │ │ │ ├── ASM/
│ │ │ │ │ │ │ │ └── trampoline.x
│ │ │ │ │ │ │ ├── BOARDS/
│ │ │ │ │ │ │ │ ├── ARDUINO/
│ │ │ │ │ │ │ │ │ ├── arduino.h
│ │ │ │ │ │ │ │ │ ├── led.c
│ │ │ │ │ │ │ │ │ └── led.h
│ │ │ │ │ │ │ │ ├── EVK1105/
│ │ │ │ │ │ │ │ │ ├── evk1105.h
│ │ │ │ │ │ │ │ │ ├── led.c
│ │ │ │ │ │ │ │ │ └── led.h
│ │ │ │ │ │ │ │ ├── board.h
│ │ │ │ │ │ │ │ └── board.h.my
│ │ │ │ │ │ │ ├── COMPONENTS/
│ │ │ │ │ │ │ │ ├── MEMORY/
│ │ │ │ │ │ │ │ │ └── DATA_FLASH/
│ │ │ │ │ │ │ │ │ └── AT45DBX/
│ │ │ │ │ │ │ │ │ ├── at45dbx.c
│ │ │ │ │ │ │ │ │ ├── at45dbx.h
│ │ │ │ │ │ │ │ │ ├── at45dbx_mem.c
│ │ │ │ │ │ │ │ │ └── at45dbx_mem.h
│ │ │ │ │ │ │ │ └── WIFI/
│ │ │ │ │ │ │ │ └── HD/
│ │ │ │ │ │ │ │ ├── v2.7.0/
│ │ │ │ │ │ │ │ │ ├── UCR1/
│ │ │ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ │ │ ├── lib_ucr1_hd_sdio_v2.7.0.a
│ │ │ │ │ │ │ │ │ │ ├── lib_ucr1_hd_spi_v2.7.0.a
│ │ │ │ │ │ │ │ │ │ └── lib_ucr1_hd_wl_sta_intwpa_v2.7.0.a
│ │ │ │ │ │ │ │ │ ├── UCR2/
│ │ │ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ │ │ ├── lib_ucr2_hd_sdio_v2.7.0.a
│ │ │ │ │ │ │ │ │ │ ├── lib_ucr2_hd_spi_v2.7.0.a
│ │ │ │ │ │ │ │ │ │ └── lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a
│ │ │ │ │ │ │ │ │ └── revision.txt
│ │ │ │ │ │ │ │ ├── wl_api.h
│ │ │ │ │ │ │ │ ├── wl_fw.h
│ │ │ │ │ │ │ │ ├── wl_os.h
│ │ │ │ │ │ │ │ ├── wl_sdio.h
│ │ │ │ │ │ │ │ ├── wl_spi.h
│ │ │ │ │ │ │ │ └── wlap_api.h
│ │ │ │ │ │ │ ├── DRIVERS/
│ │ │ │ │ │ │ │ ├── CPU/
│ │ │ │ │ │ │ │ │ └── CYCLE_COUNTER/
│ │ │ │ │ │ │ │ │ └── cycle_counter.h
│ │ │ │ │ │ │ │ ├── EBI/
│ │ │ │ │ │ │ │ │ └── SMC/
│ │ │ │ │ │ │ │ │ ├── smc.c
│ │ │ │ │ │ │ │ │ └── smc.h
│ │ │ │ │ │ │ │ ├── EIC/
│ │ │ │ │ │ │ │ │ ├── eic.c
│ │ │ │ │ │ │ │ │ └── eic.h
│ │ │ │ │ │ │ │ ├── FLASHC/
│ │ │ │ │ │ │ │ │ ├── flashc.c
│ │ │ │ │ │ │ │ │ └── flashc.h
│ │ │ │ │ │ │ │ ├── GPIO/
│ │ │ │ │ │ │ │ │ ├── gpio.c
│ │ │ │ │ │ │ │ │ └── gpio.h
│ │ │ │ │ │ │ │ ├── INTC/
│ │ │ │ │ │ │ │ │ ├── exception.x
│ │ │ │ │ │ │ │ │ ├── intc.c
│ │ │ │ │ │ │ │ │ └── intc.h
│ │ │ │ │ │ │ │ ├── PDCA/
│ │ │ │ │ │ │ │ │ ├── pdca.c
│ │ │ │ │ │ │ │ │ └── pdca.h
│ │ │ │ │ │ │ │ ├── PM/
│ │ │ │ │ │ │ │ │ ├── pm.c
│ │ │ │ │ │ │ │ │ ├── pm.h
│ │ │ │ │ │ │ │ │ ├── pm_conf_clocks.c
│ │ │ │ │ │ │ │ │ ├── power_clocks_lib.c
│ │ │ │ │ │ │ │ │ └── power_clocks_lib.h
│ │ │ │ │ │ │ │ ├── RTC/
│ │ │ │ │ │ │ │ │ ├── rtc.c
│ │ │ │ │ │ │ │ │ └── rtc.h
│ │ │ │ │ │ │ │ ├── SPI/
│ │ │ │ │ │ │ │ │ ├── spi.c
│ │ │ │ │ │ │ │ │ └── spi.h
│ │ │ │ │ │ │ │ ├── TC/
│ │ │ │ │ │ │ │ │ ├── tc.c
│ │ │ │ │ │ │ │ │ └── tc.h
│ │ │ │ │ │ │ │ └── USART/
│ │ │ │ │ │ │ │ ├── usart.c
│ │ │ │ │ │ │ │ └── usart.h
│ │ │ │ │ │ │ ├── SERVICES/
│ │ │ │ │ │ │ │ ├── DELAY/
│ │ │ │ │ │ │ │ │ ├── delay.c
│ │ │ │ │ │ │ │ │ └── delay.h
│ │ │ │ │ │ │ │ ├── LWIP/
│ │ │ │ │ │ │ │ │ ├── lwip-1.3.2/
│ │ │ │ │ │ │ │ │ │ └── src/
│ │ │ │ │ │ │ │ │ │ ├── core/
│ │ │ │ │ │ │ │ │ │ │ ├── dhcp.c
│ │ │ │ │ │ │ │ │ │ │ ├── dns.c
│ │ │ │ │ │ │ │ │ │ │ ├── init.c
│ │ │ │ │ │ │ │ │ │ │ ├── ipv4/
│ │ │ │ │ │ │ │ │ │ │ │ ├── autoip.c
│ │ │ │ │ │ │ │ │ │ │ │ ├── icmp.c
│ │ │ │ │ │ │ │ │ │ │ │ ├── igmp.c
│ │ │ │ │ │ │ │ │ │ │ │ ├── inet.c
│ │ │ │ │ │ │ │ │ │ │ │ ├── inet_chksum.c
│ │ │ │ │ │ │ │ │ │ │ │ ├── ip.c
│ │ │ │ │ │ │ │ │ │ │ │ ├── ip_addr.c
│ │ │ │ │ │ │ │ │ │ │ │ └── ip_frag.c
│ │ │ │ │ │ │ │ │ │ │ ├── mem.c
│ │ │ │ │ │ │ │ │ │ │ ├── memp.c
│ │ │ │ │ │ │ │ │ │ │ ├── netif.c
│ │ │ │ │ │ │ │ │ │ │ ├── pbuf.c
│ │ │ │ │ │ │ │ │ │ │ ├── raw.c
│ │ │ │ │ │ │ │ │ │ │ ├── stats.c
│ │ │ │ │ │ │ │ │ │ │ ├── tcp.c
│ │ │ │ │ │ │ │ │ │ │ ├── tcp_in.c
│ │ │ │ │ │ │ │ │ │ │ ├── tcp_out.c
│ │ │ │ │ │ │ │ │ │ │ └── udp.c
│ │ │ │ │ │ │ │ │ │ ├── include/
│ │ │ │ │ │ │ │ │ │ │ ├── ipv4/
│ │ │ │ │ │ │ │ │ │ │ │ └── lwip/
│ │ │ │ │ │ │ │ │ │ │ │ ├── autoip.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── icmp.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── igmp.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── inet.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── inet_chksum.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── ip.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── ip_addr.h
│ │ │ │ │ │ │ │ │ │ │ │ └── ip_frag.h
│ │ │ │ │ │ │ │ │ │ │ ├── lwip/
│ │ │ │ │ │ │ │ │ │ │ │ ├── api.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── api_msg.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── arch.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── debug.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── def.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── dhcp.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── dns.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── err.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── init.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── mem.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── memp.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── memp_std.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── netbuf.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── netdb.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── netif.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── netifapi.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── opt.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── pbuf.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── raw.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── sio.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── snmp.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── snmp_asn1.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── snmp_msg.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── snmp_structs.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── sockets.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── stats.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── sys.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── tcp.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── tcpip.h
│ │ │ │ │ │ │ │ │ │ │ │ └── udp.h
│ │ │ │ │ │ │ │ │ │ │ └── netif/
│ │ │ │ │ │ │ │ │ │ │ ├── etharp.h
│ │ │ │ │ │ │ │ │ │ │ ├── loopif.h
│ │ │ │ │ │ │ │ │ │ │ ├── ppp_oe.h
│ │ │ │ │ │ │ │ │ │ │ └── slipif.h
│ │ │ │ │ │ │ │ │ │ └── netif/
│ │ │ │ │ │ │ │ │ │ ├── etharp.c
│ │ │ │ │ │ │ │ │ │ └── loopif.c
│ │ │ │ │ │ │ │ │ └── lwip-port-1.3.2/
│ │ │ │ │ │ │ │ │ └── HD/
│ │ │ │ │ │ │ │ │ ├── if/
│ │ │ │ │ │ │ │ │ │ ├── include/
│ │ │ │ │ │ │ │ │ │ │ ├── arch/
│ │ │ │ │ │ │ │ │ │ │ │ ├── cc.h
│ │ │ │ │ │ │ │ │ │ │ │ └── perf.h
│ │ │ │ │ │ │ │ │ │ │ ├── lwipopts.h
│ │ │ │ │ │ │ │ │ │ │ └── netif/
│ │ │ │ │ │ │ │ │ │ │ └── wlif.h
│ │ │ │ │ │ │ │ │ │ └── netif/
│ │ │ │ │ │ │ │ │ │ └── wlif.c
│ │ │ │ │ │ │ │ │ └── readme.txt
│ │ │ │ │ │ │ │ └── MEMORY/
│ │ │ │ │ │ │ │ └── CTRL_ACCESS/
│ │ │ │ │ │ │ │ ├── ctrl_access.c
│ │ │ │ │ │ │ │ └── ctrl_access.h
│ │ │ │ │ │ │ └── UTILS/
│ │ │ │ │ │ │ ├── DEBUG/
│ │ │ │ │ │ │ │ ├── debug.c
│ │ │ │ │ │ │ │ ├── debug.h
│ │ │ │ │ │ │ │ ├── print_funcs.c
│ │ │ │ │ │ │ │ └── print_funcs.h
│ │ │ │ │ │ │ ├── LIBS/
│ │ │ │ │ │ │ │ └── NEWLIB_ADDONS/
│ │ │ │ │ │ │ │ ├── INCLUDE/
│ │ │ │ │ │ │ │ │ ├── nlao_cpu.h
│ │ │ │ │ │ │ │ │ ├── nlao_exceptions.h
│ │ │ │ │ │ │ │ │ ├── nlao_interrupts.h
│ │ │ │ │ │ │ │ │ ├── nlao_io.h
│ │ │ │ │ │ │ │ │ └── nlao_usart.h
│ │ │ │ │ │ │ │ └── libnewlib_addons-at32ucr2-speed_opt.a
│ │ │ │ │ │ │ ├── LINKER_SCRIPTS/
│ │ │ │ │ │ │ │ └── AT32UC3A/
│ │ │ │ │ │ │ │ ├── 0512/
│ │ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ │ └── link_uc3a0512.lds
│ │ │ │ │ │ │ │ └── 1256/
│ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ └── link_uc3a1256.lds
│ │ │ │ │ │ │ ├── PREPROCESSOR/
│ │ │ │ │ │ │ │ ├── mrepeat.h
│ │ │ │ │ │ │ │ ├── preprocessor.h
│ │ │ │ │ │ │ │ ├── stringz.h
│ │ │ │ │ │ │ │ └── tpaste.h
│ │ │ │ │ │ │ ├── STARTUP_FILES/
│ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ └── crt0.x
│ │ │ │ │ │ │ ├── compiler.h
│ │ │ │ │ │ │ ├── conf_isp.h
│ │ │ │ │ │ │ └── parts.h
│ │ │ │ │ │ ├── ard_spi.c
│ │ │ │ │ │ ├── ard_spi.h
│ │ │ │ │ │ ├── ard_tcp.c
│ │ │ │ │ │ ├── ard_tcp.h
│ │ │ │ │ │ ├── ard_utils.c
│ │ │ │ │ │ ├── ard_utils.h
│ │ │ │ │ │ ├── avr32_spi.c
│ │ │ │ │ │ ├── board_init.c
│ │ │ │ │ │ ├── board_init.h
│ │ │ │ │ │ ├── cmd_wl.c
│ │ │ │ │ │ ├── cmd_wl.h
│ │ │ │ │ │ ├── console.c
│ │ │ │ │ │ ├── console.h
│ │ │ │ │ │ ├── debug.h
│ │ │ │ │ │ ├── fw_download.h
│ │ │ │ │ │ ├── fw_download_extflash.c
│ │ │ │ │ │ ├── license.txt
│ │ │ │ │ │ ├── lwip_setup.c
│ │ │ │ │ │ ├── lwip_setup.h
│ │ │ │ │ │ ├── lwipopts.h
│ │ │ │ │ │ ├── main.c
│ │ │ │ │ │ ├── nvram.c
│ │ │ │ │ │ ├── nvram.h
│ │ │ │ │ │ ├── owl_os.c
│ │ │ │ │ │ ├── ping.c
│ │ │ │ │ │ ├── ping.h
│ │ │ │ │ │ ├── printf-stdarg.c
│ │ │ │ │ │ ├── printf-stdarg.h
│ │ │ │ │ │ ├── timer.c
│ │ │ │ │ │ ├── timer.h
│ │ │ │ │ │ ├── top_defs.h
│ │ │ │ │ │ ├── trace.h
│ │ │ │ │ │ ├── util.c
│ │ │ │ │ │ ├── util.h
│ │ │ │ │ │ ├── wifi_spi.h
│ │ │ │ │ │ ├── wl_cm.c
│ │ │ │ │ │ ├── wl_cm.h
│ │ │ │ │ │ └── wl_definitions.h
│ │ │ │ │ └── wifiHD.cproj
│ │ │ │ ├── wifi_dnld/
│ │ │ │ │ ├── .cproject
│ │ │ │ │ ├── .project
│ │ │ │ │ ├── Release/
│ │ │ │ │ │ └── wifi_dnld.elf
│ │ │ │ │ ├── src/
│ │ │ │ │ │ ├── CONFIG/
│ │ │ │ │ │ │ ├── conf_access.h
│ │ │ │ │ │ │ └── conf_at45dbx.h
│ │ │ │ │ │ ├── SOFTWARE_FRAMEWORK/
│ │ │ │ │ │ │ ├── ASM/
│ │ │ │ │ │ │ │ └── trampoline.x
│ │ │ │ │ │ │ ├── BOARDS/
│ │ │ │ │ │ │ │ ├── ARDUINO/
│ │ │ │ │ │ │ │ │ ├── arduino.h
│ │ │ │ │ │ │ │ │ ├── led.c
│ │ │ │ │ │ │ │ │ └── led.h
│ │ │ │ │ │ │ │ ├── EVK1105/
│ │ │ │ │ │ │ │ │ ├── evk1105.h
│ │ │ │ │ │ │ │ │ ├── led.c
│ │ │ │ │ │ │ │ │ └── led.h
│ │ │ │ │ │ │ │ ├── board.h
│ │ │ │ │ │ │ │ └── board.h.ori
│ │ │ │ │ │ │ ├── COMPONENTS/
│ │ │ │ │ │ │ │ └── MEMORY/
│ │ │ │ │ │ │ │ └── DATA_FLASH/
│ │ │ │ │ │ │ │ └── AT45DBX/
│ │ │ │ │ │ │ │ ├── at45dbx.c
│ │ │ │ │ │ │ │ ├── at45dbx.h
│ │ │ │ │ │ │ │ ├── at45dbx_mem.c
│ │ │ │ │ │ │ │ └── at45dbx_mem.h
│ │ │ │ │ │ │ ├── DRIVERS/
│ │ │ │ │ │ │ │ ├── FLASHC/
│ │ │ │ │ │ │ │ │ ├── flashc.c
│ │ │ │ │ │ │ │ │ └── flashc.h
│ │ │ │ │ │ │ │ ├── GPIO/
│ │ │ │ │ │ │ │ │ ├── gpio.c
│ │ │ │ │ │ │ │ │ └── gpio.h
│ │ │ │ │ │ │ │ ├── INTC/
│ │ │ │ │ │ │ │ │ ├── exception.x
│ │ │ │ │ │ │ │ │ ├── intc.c
│ │ │ │ │ │ │ │ │ └── intc.h
│ │ │ │ │ │ │ │ ├── PM/
│ │ │ │ │ │ │ │ │ ├── pm.c
│ │ │ │ │ │ │ │ │ ├── pm.h
│ │ │ │ │ │ │ │ │ ├── pm_conf_clocks.c
│ │ │ │ │ │ │ │ │ ├── power_clocks_lib.c
│ │ │ │ │ │ │ │ │ └── power_clocks_lib.h
│ │ │ │ │ │ │ │ ├── SPI/
│ │ │ │ │ │ │ │ │ ├── spi.c
│ │ │ │ │ │ │ │ │ └── spi.h
│ │ │ │ │ │ │ │ └── USART/
│ │ │ │ │ │ │ │ ├── usart.c
│ │ │ │ │ │ │ │ └── usart.h
│ │ │ │ │ │ │ ├── SERVICES/
│ │ │ │ │ │ │ │ └── MEMORY/
│ │ │ │ │ │ │ │ └── CTRL_ACCESS/
│ │ │ │ │ │ │ │ ├── ctrl_access.c
│ │ │ │ │ │ │ │ └── ctrl_access.h
│ │ │ │ │ │ │ └── UTILS/
│ │ │ │ │ │ │ ├── DEBUG/
│ │ │ │ │ │ │ │ ├── debug.c
│ │ │ │ │ │ │ │ ├── debug.h
│ │ │ │ │ │ │ │ ├── print_funcs.c
│ │ │ │ │ │ │ │ └── print_funcs.h
│ │ │ │ │ │ │ ├── LIBS/
│ │ │ │ │ │ │ │ └── NEWLIB_ADDONS/
│ │ │ │ │ │ │ │ ├── INCLUDE/
│ │ │ │ │ │ │ │ │ ├── nlao_cpu.h
│ │ │ │ │ │ │ │ │ ├── nlao_exceptions.h
│ │ │ │ │ │ │ │ │ ├── nlao_interrupts.h
│ │ │ │ │ │ │ │ │ ├── nlao_io.h
│ │ │ │ │ │ │ │ │ └── nlao_usart.h
│ │ │ │ │ │ │ │ └── libnewlib_addons-at32ucr2-speed_opt.a
│ │ │ │ │ │ │ ├── LINKER_SCRIPTS/
│ │ │ │ │ │ │ │ └── AT32UC3A/
│ │ │ │ │ │ │ │ ├── 0512/
│ │ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ │ └── link_uc3a0512.lds
│ │ │ │ │ │ │ │ └── 1256/
│ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ └── link_uc3a1256.lds
│ │ │ │ │ │ │ ├── PREPROCESSOR/
│ │ │ │ │ │ │ │ ├── mrepeat.h
│ │ │ │ │ │ │ │ ├── preprocessor.h
│ │ │ │ │ │ │ │ ├── stringz.h
│ │ │ │ │ │ │ │ └── tpaste.h
│ │ │ │ │ │ │ ├── STARTUP_FILES/
│ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ └── crt0.x
│ │ │ │ │ │ │ ├── compiler.h
│ │ │ │ │ │ │ ├── conf_isp.h
│ │ │ │ │ │ │ └── parts.h
│ │ │ │ │ │ ├── clocks.c
│ │ │ │ │ │ ├── clocks.h
│ │ │ │ │ │ ├── flash_fw.c
│ │ │ │ │ │ ├── license.txt
│ │ │ │ │ │ ├── nor_flash.c
│ │ │ │ │ │ ├── nor_flash.h
│ │ │ │ │ │ ├── printf-stdarg.c
│ │ │ │ │ │ ├── printf-stdarg.h
│ │ │ │ │ │ ├── startup.c
│ │ │ │ │ │ ├── startup.h
│ │ │ │ │ │ └── wl_fw.h
│ │ │ │ │ └── wifi_dnld.cproj
│ │ │ │ └── wifishield.atsln
│ │ │ ├── libraries/
│ │ │ │ ├── EEPROM/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── examples/
│ │ │ │ │ │ ├── eeprom_clear/
│ │ │ │ │ │ │ └── eeprom_clear.ino
│ │ │ │ │ │ ├── eeprom_crc/
│ │ │ │ │ │ │ └── eeprom_crc.ino
│ │ │ │ │ │ ├── eeprom_get/
│ │ │ │ │ │ │ └── eeprom_get.ino
│ │ │ │ │ │ ├── eeprom_iteration/
│ │ │ │ │ │ │ └── eeprom_iteration.ino
│ │ │ │ │ │ ├── eeprom_put/
│ │ │ │ │ │ │ └── eeprom_put.ino
│ │ │ │ │ │ ├── eeprom_read/
│ │ │ │ │ │ │ └── eeprom_read.ino
│ │ │ │ │ │ ├── eeprom_update/
│ │ │ │ │ │ │ └── eeprom_update.ino
│ │ │ │ │ │ └── eeprom_write/
│ │ │ │ │ │ └── eeprom_write.ino
│ │ │ │ │ ├── keywords.txt
│ │ │ │ │ ├── library.properties
│ │ │ │ │ └── src/
│ │ │ │ │ └── EEPROM.h
│ │ │ │ ├── HID/
│ │ │ │ │ ├── keywords.txt
│ │ │ │ │ ├── library.properties
│ │ │ │ │ └── src/
│ │ │ │ │ ├── HID.cpp
│ │ │ │ │ └── HID.h
│ │ │ │ ├── SPI/
│ │ │ │ │ ├── examples/
│ │ │ │ │ │ ├── BarometricPressureSensor/
│ │ │ │ │ │ │ └── BarometricPressureSensor.ino
│ │ │ │ │ │ └── DigitalPotControl/
│ │ │ │ │ │ └── DigitalPotControl.ino
│ │ │ │ │ ├── keywords.txt
│ │ │ │ │ ├── library.properties
│ │ │ │ │ └── src/
│ │ │ │ │ ├── SPI.cpp
│ │ │ │ │ └── SPI.h
│ │ │ │ ├── SoftwareSerial/
│ │ │ │ │ ├── examples/
│ │ │ │ │ │ ├── SoftwareSerialExample/
│ │ │ │ │ │ │ └── SoftwareSerialExample.ino
│ │ │ │ │ │ └── TwoPortReceive/
│ │ │ │ │ │ └── TwoPortReceive.ino
│ │ │ │ │ ├── keywords.txt
│ │ │ │ │ ├── library.properties
│ │ │ │ │ └── src/
│ │ │ │ │ ├── SoftwareSerial.cpp
│ │ │ │ │ └── SoftwareSerial.h
│ │ │ │ └── Wire/
│ │ │ │ ├── examples/
│ │ │ │ │ ├── SFRRanger_reader/
│ │ │ │ │ │ └── SFRRanger_reader.ino
│ │ │ │ │ ├── digital_potentiometer/
│ │ │ │ │ │ └── digital_potentiometer.ino
│ │ │ │ │ ├── i2c_scanner/
│ │ │ │ │ │ └── i2c_scanner.ino
│ │ │ │ │ ├── master_reader/
│ │ │ │ │ │ └── master_reader.ino
│ │ │ │ │ ├── master_writer/
│ │ │ │ │ │ └── master_writer.ino
│ │ │ │ │ ├── slave_receiver/
│ │ │ │ │ │ └── slave_receiver.ino
│ │ │ │ │ └── slave_sender/
│ │ │ │ │ └── slave_sender.ino
│ │ │ │ ├── keywords.txt
│ │ │ │ ├── library.properties
│ │ │ │ └── src/
│ │ │ │ ├── Wire.cpp
│ │ │ │ ├── Wire.h
│ │ │ │ └── utility/
│ │ │ │ ├── twi.c
│ │ │ │ └── twi.h
│ │ │ ├── platform.txt
│ │ │ ├── programmers.txt
│ │ │ └── variants/
│ │ │ ├── circuitplay32u4/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── eightanaloginputs/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── ethernet/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── gemma/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── leonardo/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── mega/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── micro/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── robot_control/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── robot_motor/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── standard/
│ │ │ │ └── pins_arduino.h
│ │ │ └── yun/
│ │ │ └── pins_arduino.h
│ │ └── stlarduino/
│ │ ├── ArduinoSTL.cpp
│ │ ├── ArduinoSTL.h
│ │ ├── LICENSE
│ │ ├── abi/
│ │ │ ├── abi.cpp
│ │ │ ├── libgcc_eh/
│ │ │ │ ├── Makefile
│ │ │ │ └── Makefile.in
│ │ │ └── libsupc/
│ │ │ ├── Makefile
│ │ │ └── Makefile.in
│ │ ├── algorithm
│ │ ├── algorithm.cpp
│ │ ├── associative_base
│ │ ├── associative_base.cpp
│ │ ├── basic_definitions
│ │ ├── bitset
│ │ ├── bitset.cpp
│ │ ├── cassert
│ │ ├── cctype
│ │ ├── cerrno
│ │ ├── cfloat
│ │ ├── char_traits
│ │ ├── char_traits.cpp
│ │ ├── climits
│ │ ├── clocale
│ │ ├── cmath
│ │ ├── complex
│ │ ├── complex.cpp
│ │ ├── csetjmp
│ │ ├── csignal
│ │ ├── cstdarg
│ │ ├── cstddef
│ │ ├── cstdio
│ │ ├── cstdlib
│ │ ├── cstring
│ │ ├── ctime
│ │ ├── cwchar
│ │ ├── cwctype
│ │ ├── del_op.cpp
│ │ ├── del_opnt.cpp
│ │ ├── del_ops.cpp
│ │ ├── del_opv.cpp
│ │ ├── del_opvnt.cpp
│ │ ├── del_opvs.cpp
│ │ ├── deque
│ │ ├── deque.cpp
│ │ ├── eh_alloc.cpp
│ │ ├── eh_globals.cpp
│ │ ├── exception
│ │ ├── exception.cpp
│ │ ├── func_exception
│ │ ├── func_exception.cpp
│ │ ├── functional
│ │ ├── initializer_list
│ │ ├── iomanip
│ │ ├── iomanip.cpp
│ │ ├── ios
│ │ ├── ios.cpp
│ │ ├── iosfwd
│ │ ├── iostream
│ │ ├── iostream.cpp
│ │ ├── istream
│ │ ├── istream.cpp
│ │ ├── istream_helpers
│ │ ├── iterator
│ │ ├── iterator.cpp
│ │ ├── iterator_base
│ │ ├── limits
│ │ ├── limits.cpp
│ │ ├── list
│ │ ├── list.cpp
│ │ ├── locale
│ │ ├── locale.cpp
│ │ ├── map
│ │ ├── map.cpp
│ │ ├── memory
│ │ ├── new
│ │ ├── new_handler.cpp
│ │ ├── new_op.cpp
│ │ ├── new_opnt.cpp
│ │ ├── new_opv.cpp
│ │ ├── new_opvnt.cpp
│ │ ├── nonstd-function.h
│ │ ├── numeric
│ │ ├── numeric.cpp
│ │ ├── ostream
│ │ ├── ostream.cpp
│ │ ├── ostream_helpers
│ │ ├── ostream_helpers.cpp
│ │ ├── queue
│ │ ├── queue.cpp
│ │ ├── serstream
│ │ ├── set
│ │ ├── set.cpp
│ │ ├── sstream
│ │ ├── sstream.cpp
│ │ ├── stack
│ │ ├── stack.cpp
│ │ ├── stdexcept
│ │ ├── stdexcept.cpp
│ │ ├── streambuf
│ │ ├── streambuf.cpp
│ │ ├── string
│ │ ├── string.cpp
│ │ ├── string_iostream
│ │ ├── string_view
│ │ ├── support
│ │ ├── support.cpp
│ │ ├── system_configuration.h
│ │ ├── tuple
│ │ ├── type_traits
│ │ ├── typeinfo
│ │ ├── typeinfo.cpp
│ │ ├── unwind-cxx.h
│ │ ├── utility
│ │ ├── utility.cpp
│ │ ├── valarray
│ │ ├── valarray.cpp
│ │ ├── vector
│ │ └── vector.cpp
│ └── libuv/
│ ├── LICENSE
│ ├── include/
│ │ ├── uv/
│ │ │ ├── aix.h
│ │ │ ├── android-ifaddrs.h
│ │ │ ├── bsd.h
│ │ │ ├── darwin.h
│ │ │ ├── errno.h
│ │ │ ├── linux.h
│ │ │ ├── os390.h
│ │ │ ├── posix.h
│ │ │ ├── stdint-msvc2008.h
│ │ │ ├── sunos.h
│ │ │ ├── threadpool.h
│ │ │ ├── tree.h
│ │ │ ├── unix.h
│ │ │ ├── version.h
│ │ │ └── win.h
│ │ └── uv.h
│ └── src/
│ ├── fs-poll.c
│ ├── heap-inl.h
│ ├── idna.c
│ ├── idna.h
│ ├── inet.c
│ ├── queue.h
│ ├── random.c
│ ├── strscpy.c
│ ├── strscpy.h
│ ├── threadpool.c
│ ├── timer.c
│ ├── unix/
│ │ ├── aix-common.c
│ │ ├── aix.c
│ │ ├── android-ifaddrs.c
│ │ ├── async.c
│ │ ├── atomic-ops.h
│ │ ├── bsd-ifaddrs.c
│ │ ├── bsd-proctitle.c
│ │ ├── core.c
│ │ ├── cygwin.c
│ │ ├── darwin-proctitle.c
│ │ ├── darwin-stub.h
│ │ ├── darwin.c
│ │ ├── dl.c
│ │ ├── freebsd.c
│ │ ├── fs.c
│ │ ├── fsevents.c
│ │ ├── getaddrinfo.c
│ │ ├── getnameinfo.c
│ │ ├── haiku.c
│ │ ├── ibmi.c
│ │ ├── internal.h
│ │ ├── kqueue.c
│ │ ├── linux-core.c
│ │ ├── linux-inotify.c
│ │ ├── linux-syscalls.c
│ │ ├── linux-syscalls.h
│ │ ├── loop-watcher.c
│ │ ├── loop.c
│ │ ├── netbsd.c
│ │ ├── no-fsevents.c
│ │ ├── no-proctitle.c
│ │ ├── openbsd.c
│ │ ├── os390-syscalls.c
│ │ ├── os390-syscalls.h
│ │ ├── os390.c
│ │ ├── pipe.c
│ │ ├── poll.c
│ │ ├── posix-hrtime.c
│ │ ├── posix-poll.c
│ │ ├── process.c
│ │ ├── procfs-exepath.c
│ │ ├── proctitle.c
│ │ ├── pthread-fixes.c
│ │ ├── random-devurandom.c
│ │ ├── random-getentropy.c
│ │ ├── random-getrandom.c
│ │ ├── random-sysctl-linux.c
│ │ ├── signal.c
│ │ ├── spinlock.h
│ │ ├── stream.c
│ │ ├── sunos.c
│ │ ├── sysinfo-loadavg.c
│ │ ├── sysinfo-memory.c
│ │ ├── tcp.c
│ │ ├── thread.c
│ │ ├── tty.c
│ │ └── udp.c
│ ├── uv-common.c
│ ├── uv-common.h
│ ├── uv-data-getter-setters.c
│ ├── version.c
│ └── win/
│ ├── async.c
│ ├── atomicops-inl.h
│ ├── core.c
│ ├── detect-wakeup.c
│ ├── dl.c
│ ├── error.c
│ ├── fs-event.c
│ ├── fs-fd-hash-inl.h
│ ├── fs.c
│ ├── getaddrinfo.c
│ ├── getnameinfo.c
│ ├── handle-inl.h
│ ├── handle.c
│ ├── internal.h
│ ├── loop-watcher.c
│ ├── pipe.c
│ ├── poll.c
│ ├── process-stdio.c
│ ├── process.c
│ ├── req-inl.h
│ ├── signal.c
│ ├── snprintf.c
│ ├── stream-inl.h
│ ├── stream.c
│ ├── tcp.c
│ ├── thread.c
│ ├── tty.c
│ ├── udp.c
│ ├── util.c
│ ├── winapi.c
│ ├── winapi.h
│ ├── winsock.c
│ └── winsock.h
├── lib/
│ ├── check/
│ │ ├── isAssignment.js
│ │ ├── isBoolean.js
│ │ ├── isDelimiter.js
│ │ ├── isIncrement.js
│ │ ├── isInitOperator.js
│ │ ├── isKeyword.js
│ │ ├── isNative.js
│ │ ├── isNumber.js
│ │ ├── isObjectOperator.js
│ │ ├── isOperator.js
│ │ ├── isRegExp.js
│ │ ├── isSemi.js
│ │ ├── isString.js
│ │ ├── isUnary.js
│ │ └── isVariable.js
│ ├── env.js
│ ├── include.js
│ ├── package.js
│ ├── parser.js
│ ├── require.js
│ └── verify.js
├── nerd.js
├── nerd_modules/
│ ├── JSON/
│ │ ├── index.ng
│ │ ├── lib/
│ │ │ ├── jsmn.h
│ │ │ └── json.h
│ │ └── package.json
│ ├── Module/
│ │ └── index.ng
│ ├── RegExp/
│ │ └── index.ng
│ ├── String/
│ │ └── index.ng
│ ├── arduino/
│ │ └── index.ng
│ ├── arduino-lcd/
│ │ ├── index.ng
│ │ ├── lib/
│ │ │ ├── LiquidCrystal.cpp
│ │ │ └── LiquidCrystal.h
│ │ └── package.json
│ ├── child_process/
│ │ ├── index.ng
│ │ └── package.json
│ ├── console/
│ │ └── index.ng
│ ├── date/
│ │ └── index.ng
│ ├── error/
│ │ └── index.ng
│ ├── fs/
│ │ ├── index.ng
│ │ └── package.json
│ ├── http/
│ │ ├── httpStruct.h
│ │ ├── httplib/
│ │ │ ├── uSockets/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── bsd.c
│ │ │ │ ├── context.c
│ │ │ │ ├── crypto/
│ │ │ │ │ ├── openssl.c
│ │ │ │ │ ├── sni_tree.cpp
│ │ │ │ │ └── wolfssl.c
│ │ │ │ ├── eventing/
│ │ │ │ │ ├── epoll_kqueue.c
│ │ │ │ │ ├── gcd.c
│ │ │ │ │ └── libuv.c
│ │ │ │ ├── internal/
│ │ │ │ │ ├── eventing/
│ │ │ │ │ │ ├── epoll_kqueue.h
│ │ │ │ │ │ ├── gcd.h
│ │ │ │ │ │ └── libuv.h
│ │ │ │ │ ├── internal.h
│ │ │ │ │ ├── loop_data.h
│ │ │ │ │ └── networking/
│ │ │ │ │ └── bsd.h
│ │ │ │ ├── libusockets.h
│ │ │ │ ├── loop.c
│ │ │ │ └── socket.c
│ │ │ └── uWS/
│ │ │ ├── App.h
│ │ │ ├── AsyncSocket.h
│ │ │ ├── AsyncSocketData.h
│ │ │ ├── BloomFilter.h
│ │ │ ├── HttpContext.h
│ │ │ ├── HttpContextData.h
│ │ │ ├── HttpParser.h
│ │ │ ├── HttpResponse.h
│ │ │ ├── HttpResponseData.h
│ │ │ ├── HttpRouter.h
│ │ │ ├── LICENSE
│ │ │ ├── Loop.h
│ │ │ ├── LoopData.h
│ │ │ ├── MessageParser.h
│ │ │ ├── MoveOnlyFunction.h
│ │ │ ├── Multipart.h
│ │ │ ├── PerMessageDeflate.h
│ │ │ ├── ProxyParser.h
│ │ │ ├── QueryParser.h
│ │ │ ├── TopicTree.h
│ │ │ ├── Utilities.h
│ │ │ ├── WebSocket.h
│ │ │ ├── WebSocketContext.h
│ │ │ ├── WebSocketContextData.h
│ │ │ ├── WebSocketData.h
│ │ │ ├── WebSocketExtensions.h
│ │ │ ├── WebSocketHandshake.h
│ │ │ └── WebSocketProtocol.h
│ │ ├── index.ng
│ │ └── package.json
│ ├── math/
│ │ └── index.ng
│ ├── object/
│ │ └── index.ng
│ ├── os/
│ │ └── index.ng
│ ├── path/
│ │ └── index.ng
│ ├── process/
│ │ └── index.ng
│ ├── querystring/
│ │ └── index.ng
│ ├── thread/
│ │ └── index.ng
│ └── wasm/
│ ├── index.ng
│ ├── lib/
│ │ └── wasm.hpp
│ └── package.json
├── package.json
├── self/
│ ├── base/
│ │ ├── cli/
│ │ │ └── cliParser.js
│ │ ├── compiler/
│ │ │ └── target.js
│ │ └── util/
│ │ ├── copyDirSync.js
│ │ ├── copyRecursive.js
│ │ ├── flash.js
│ │ ├── getExt.js
│ │ ├── getTips.js
│ │ └── rmdir.js
│ ├── compiler/
│ │ ├── native/
│ │ │ ├── compiler.js
│ │ │ ├── env/
│ │ │ │ ├── arduino.js
│ │ │ │ ├── js.js
│ │ │ │ ├── std.js
│ │ │ │ └── wasm.js
│ │ │ ├── nerdcore/
│ │ │ │ ├── src/
│ │ │ │ │ ├── class/
│ │ │ │ │ │ ├── _meta.h
│ │ │ │ │ │ ├── array.h
│ │ │ │ │ │ ├── array_header.h
│ │ │ │ │ │ ├── base_header.h
│ │ │ │ │ │ ├── fixed_array.h
│ │ │ │ │ │ ├── fixed_array_header.h
│ │ │ │ │ │ ├── function.h
│ │ │ │ │ │ ├── function_header.h
│ │ │ │ │ │ ├── native.h
│ │ │ │ │ │ ├── native_header.h
│ │ │ │ │ │ ├── native_tpl_header.h
│ │ │ │ │ │ ├── number.h
│ │ │ │ │ │ ├── number_header.h
│ │ │ │ │ │ ├── object.h
│ │ │ │ │ │ ├── object_header.h
│ │ │ │ │ │ ├── string.h
│ │ │ │ │ │ ├── string_header.h
│ │ │ │ │ │ ├── struct.h
│ │ │ │ │ │ └── struct_header.h
│ │ │ │ │ ├── classes.h
│ │ │ │ │ ├── classes_header.h
│ │ │ │ │ ├── enum.h
│ │ │ │ │ ├── functions.h
│ │ │ │ │ ├── functions_header.h
│ │ │ │ │ ├── macro.h
│ │ │ │ │ ├── native/
│ │ │ │ │ │ ├── double.h
│ │ │ │ │ │ ├── double_header.h
│ │ │ │ │ │ ├── int.h
│ │ │ │ │ │ └── int_header.h
│ │ │ │ │ ├── native.h
│ │ │ │ │ ├── native_header.h
│ │ │ │ │ ├── nerd.cpp
│ │ │ │ │ ├── nerd.hpp
│ │ │ │ │ ├── objmgmt.h
│ │ │ │ │ ├── objmgmt_header.h
│ │ │ │ │ ├── operator.h
│ │ │ │ │ ├── operator_header.h
│ │ │ │ │ ├── stdfn.h
│ │ │ │ │ ├── stdfn_header.h
│ │ │ │ │ ├── tsl/
│ │ │ │ │ │ ├── robin_growth_policy.h
│ │ │ │ │ │ ├── robin_hash.h
│ │ │ │ │ │ ├── robin_map.h
│ │ │ │ │ │ └── robin_set.h
│ │ │ │ │ ├── type_header.h
│ │ │ │ │ ├── values.h
│ │ │ │ │ ├── values_header.h
│ │ │ │ │ ├── var.h
│ │ │ │ │ └── var_header.h
│ │ │ │ └── test/
│ │ │ │ ├── array.cpp
│ │ │ │ ├── cast.cpp
│ │ │ │ ├── native.cpp
│ │ │ │ ├── object.cpp
│ │ │ │ └── operators.cpp
│ │ │ └── squel/
│ │ │ ├── arduino.cpp
│ │ │ ├── js.cpp
│ │ │ ├── std.cpp
│ │ │ └── wasm.cpp
│ │ └── self/
│ │ ├── base/
│ │ │ ├── cli/
│ │ │ │ └── cliParser.ng
│ │ │ ├── compiler/
│ │ │ │ └── target.js
│ │ │ └── util/
│ │ │ ├── copyDirSync.js
│ │ │ ├── copyRecursive.js
│ │ │ ├── flash.js
│ │ │ ├── getExt.js
│ │ │ ├── getTips.js
│ │ │ ├── httpUtils.js
│ │ │ └── rmdir.js
│ │ └── nerd.ng
│ ├── lib/
│ │ ├── check/
│ │ │ ├── isAssignment.js
│ │ │ ├── isBoolean.js
│ │ │ ├── isDelimiter.js
│ │ │ ├── isIncrement.js
│ │ │ ├── isInitOperator.js
│ │ │ ├── isKeyword.js
│ │ │ ├── isNative.js
│ │ │ ├── isNumber.js
│ │ │ ├── isObjectOperator.js
│ │ │ ├── isOperator.js
│ │ │ ├── isSemi.js
│ │ │ ├── isString.js
│ │ │ ├── isUnary.js
│ │ │ └── isVariable.js
│ │ ├── env.js
│ │ ├── include.js
│ │ ├── package.js
│ │ ├── parser.js
│ │ ├── require.js
│ │ └── verify.js
│ ├── nerd.js
│ └── package.json
└── test/
├── accessor.ng
├── builtin.ng
├── comments.ng
├── conditionals.ng
├── function.ng
├── loop.ng
├── native.ng
└── var.ng
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
.nerd
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
<p>
No VM. No Bytecode. No packaging. No Garbage Collector. Fully compiled to native binaries.
</p>
# NectarJS becomes Nerd
Compile JavaScript and NerdLang in native binaries.
# What is NerdLang
NerdLang is a substract of JS with some additions, focus on efficiency.
**Nerd** is a **JavaScript native compiler** aiming to make JavaScript universal, Nerd is able to compile native apps for Windows, Mac, Linux, iOS, Android, Raspberry, STM32 and more.
> **Nerd** is in active development, join us on [Discord](https://discord.gg/cpe2UuN) if you need more information.
- [Roadmap on Trello](https://trello.com/invite/b/6F4rvEj2/ATTI8842296bacc92724fa8b4114fe1dc80aA9FA431B/nerd)
## Main objectives
* Supporting EcmaScript 3 standard (then 5, 6 ...)
* Supporting NodeJS and NPM ecosystem
* Supporting a maximum of platforms (Windows, Mac, Linux, Android, Arduino, ...)
* Being secure
* Embeding debuging tools
* Compile everything that can be transpiled in JS: Ruby (Opal), Python (Transcript, Brython, JavaScrypthon), TypeScript ...
# Get started
## Installation
### Install GCC/CLang for your platform
- Windows
Install Mingw and Clang for Windows here: http://winlibs.com/ or Clang here: https://releases.llvm.org/
You can also install Linux for Windows and use a linux system on Windows
You need MinGW with POSIX threads
- Linux / FreeBSD
Install it with your distro (apt install gcc, yum install gcc, ...).
You can use GCC, CLANG, as well as any derivative of those compilers (arm-gcc ...)
- Apple iOS
Install xCode and you are ready.
You can check your installation with `npm start njs_test`
## Usage
Simplest way to use Nerd:
```
nerd file.js / file.ng
```
The output file name will be automatically chosen regarding the target. You can specify another output with `-o something.out`
You can select a preset
```
nerd file.js --preset [none|speed|size]
```
You can also run the compiled executable just after compilation using --run:
```
nerd file.js --run
```
You can enable the quiet mode with --quiet:
```
nerd file.js --quiet
```
Changing the stack size (useful on Windows):
```
nerd --stack 10000000 flood.js
```
For more informations about compilation output, use `--verbose`
For help, use `--help`
# Benchmarks
* _Need update_
Compiled with GCC v10.2.0 on Windows
| | NodeJS v12.8.1 | QuickJS 2020-07-05 | Nerd v0.6.104 |
|-----------|----------------|--------------------|-------------------|
| sort(1e6) [No preset] |
| - Time: | 0.33s | - | **0.33s** |
| - Memory: | 7.0Mb | - | **1.0Mb** |
|- Filesize:| 28.6Mb | - | **424Kb** |
| sort(1e6) [+Size preset] |
|- Filesize:| 28.6Mb | - | **260Kb** |
| sort(1e6) [+Speed preset] |
| - Time: | 0.33s | - | **0.20s** |
| matrix(256) [No preset] |
| - Time: | 0.33s | - | **0.21s** |
| - Memory: | 7.0Mb | - | **1.0Mb** |
|- Filesize:| 28.6Mb | - | **405Kb** |
| matrix(256) [+Size preset] |
|- Filesize:| 28.6Mb | - | **251Kb** |
| matrix(1e6) [+Speed preset] |
| - Time: | 0.33s | - | **0.11s** |
* _Some code can be evaluated compile-time_
# Supported platforms
Actively tested for
- Windows
* - win-x86-32
* - win-x86-64
- Linux
* - linux-x86-32
* - linux-x86-64
* - linux-arm32v7
- Arduino
* - arduino-nano
* - arduino-uno
* - arduino-mega1280
* - arduino-mega2560
- STM32 Nucleo
* - nucleo-l152re
* - nucleo-l432kc
* - nucleo-f446re
- Mobile
* - android
- Web
* - wasm
* - wast
* - asm-js
- macOS
- Sun OS
# Development
This project is in heavy development and a lot features are not implemented yet.
## ECMAScript Support
Nerd already supports more than 80% of ES3.
<details>
<summary>Prototype</summary>
<br>
* .call()
* .bind()
</details>
<details>
<summary>Array</summary>
<br>
* .length
* .push(value)
</details>
<details>
<summary>Class</summary>
<br>
* constructor
* methods
* static methods
</details>
<details>
<summary>Console</summary>
<br>
* .log(variadic)
</details>
<details>
<summary>JSON</summary>
<br>
* .parse(str)
* .stringify(obj)
</details>
<details>
<summary>Math **(DONE)**</summary>
<br>
* [All static methods and constants]
</details>
<details>
<summary>Object</summary>
<br>
* .keys
</details>
<details>
<summary>performance</summary>
<br>
* timeOrigin
* .now()
</details>
<details>
<summary>String</summary>
<br>
* .length
* .toString()
* .indexOf(needle)
* .lastIndexOf(needle)
* .search(needle)
* .slice(start, end)
* .substring(start, end)
* .substr(start, end)
* .replace(needle, str)
</details>
<details>
<summary>Syntax</summary>
<br>
* for
* while / do while
* if / else if / else
* try / catch / finally
* function / lambda
* class
* new
* typeof
* instanceof
* undefined
* null
* Infinite
* NaN / isNaN
* true / false
</details>
================================================
FILE: base/cli/cliParser.js
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
var parseCLI = function(args)
{
var result = {error: false, msg: "", cli:{}, stack: [], useless: []};
var useless = [0];
if(!global["__NERD__"])
{
useless.push(1);
}
var withArgs = ["--target", "--spec", "--env", "--stack", "-o", "--preset", "--flash", "--compiler", "-c", "--build", "-b", "--option", "--register", "-r", "--setauthor", "--setid", "--setkey", "--setapi", "--setport", "--sethash", "--setsdk", "--setndk", "--setwin_inc_ucrt", "--setwin_lib_ucrt", "--setwin_lib_um", "--setxcode"];
var noArgs = ["--install_external", "--debug", "--conserve", "--generate", "--config", "--reinit", "--example", "--examples" , "--prepare", "--project", "--run", "--clean", "--purge", "--check", "--no-check", "--verbose", "-v", "--tips", "--version", "--help", "-h", "--release", "--no-object-hashmap"];
for(var i = 0; i < args.length; i++)
{
if( useless.indexOf(i) > -1 )
{
result.useless.push(args[i]);
}
else if( withArgs.indexOf(args[i]) > -1)
{
if(args[i+1])
{
result.cli[args[i]] =
{
state: true,
argument: args[i+1],
};
i++;
}
else
{
result.error = true;
result.msg = "[!] Missing argument for " + args[i];
break;
}
}
else if(noArgs.indexOf(args[i]) > -1)
{
result.cli[args[i]] =
{
state: true,
};
}
else if(args[i].length > 0 && args[i][0] == "-")
{
if(withArgs.indexOf(args[i]) < 0 && noArgs.indexOf(args[i]) < 0)
{
result.error = true;
result.msg = "[!] Unknown parameter : " + args[i];
break;
}
}
else
{
result.stack.push(args[i]);
}
}
return result;
}
module.exports = parseCLI;
================================================
FILE: base/compiler/target.js
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
var target = ["win-x86-32", "win-x86-64", "linux-x86-32", "linux-x86-64", "linux-arm32v7",
"arduino-uno", "arduino-mega1280", "arduino-mega2560",
"wasm", "wast", "asm-js",
"mac-osx",
"nucleo-l152re", "nucleo-l432kc"
];
module.exports = target;
================================================
FILE: base/util/copyDirSync.js
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
var fs = require("fs");
var path = require("path");
var copyDirSync = function( source, target )
{
var targetFile = target;
if ( fs.existsSync( target ) )
{
if ( fs.lstatSync( target ).isDirectory() )
{
targetFile = path.join( target, path.basename( source ) );
}
}
fs.copyFileSync(source, targetFile);
}
var copyFolderRecursiveSync = function( source, target, _root )
{
var files = [];
var targetFolder = path.join( target, path.basename( source ) );
if(_root)
{
targetFolder = target;
}
if ( !fs.existsSync( targetFolder ) )
{
fs.mkdirSync( targetFolder );
}
if ( fs.lstatSync( source ).isDirectory() )
{
files = fs.readdirSync( source );
for(var i = 0; i < files.length; i++)
{
var curSource = path.join( source, files[i] );
if ( fs.lstatSync( curSource ).isDirectory() )
{
copyFolderRecursiveSync( curSource, targetFolder );
}
else
{
copyDirSync( curSource, targetFolder );
}
}
}
}
module.exports = copyFolderRecursiveSync;
================================================
FILE: base/util/copyRecursive.js
================================================
var fs = require("fs");
var path = require("path");
var copyRecursiveSync = function(src, dest)
{
if(!fs.existsSync(src))
{
console.log("[!] Warning: " + src + " doesn't exist");
return;
}
if(fs.lstatSync( src ).isDirectory())
{
var _newDest = path.dirname(dest);
global.copyDirSync(src, _newDest, true);
}
else
{
var _path = [];
var _newDest = path.dirname(dest);
_path.push(_newDest);
while(path.dirname(_newDest) != _newDest)
{
_newDest = path.dirname(_newDest);
if(_newDest.indexOf(global.NERD_PATH) == 0)
{
_path.push(_newDest);
}
}
for(var i = _path.length; i > -1; i--)
{
try
{
fs.mkdirSync(_path[i]);
}
catch(e){}
}
fs.copyFileSync(src, dest);
}
};
module.exports = copyRecursiveSync;
================================================
FILE: base/util/flash.js
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
var fs = require("fs");
var path = require("path");
var execFlashArduino = function(from, to, model, driver, bauds, verb)
{
var spawn = require("child_process").spawn;
var _flash = spawn("avrdude", ["-p", model, "-c", driver, "-P", to, "-b", bauds, "-F", "-U", "flash:w:"+from]);
_flash.stdout.on("data", function(data)
{
if(verb) process.stdout.write(data.toString());
});
_flash.stderr.on("data", function(data)
{
if(verb) process.stdout.write(data.toString());
});
_flash.on("error", function(err)
{
console.log("[!] Error :");
console.log(err);
});
_flash.on("close", function(code)
{
console.log("[+] Flashed");
});
}
var execFlashSTM32 = function(from, to)
{
try
{
fs.writeFileSync(path.join(to, from), fs.readFileSync(from));
console.log("[+ Flashed]");
}
catch(e)
{
console.log("[!] Your file is compiled, but an error occured while flashing, please try again.");
}
}
var Flash = function(from, to, target, verb)
{
switch(target)
{
case "uno":
execFlashArduino(from, to, "ATMEGA328P", "arduino", "19200", verb);
break;
case "mega1280":
execFlashArduino(from, to, "m1280", "arduino", "57600", verb);
break;
case "mega2560":
execFlashArduino(from, to, "m2560", "wiring", "115200", verb);
break;
case "nucleo-l152re":
case "nucleo-l432kc":
execFlashSTM32(from, to);
break;
default:
console.log("Nothing to do for target : " + target);
break;
}
}
module.exports = Flash;
================================================
FILE: base/util/getExt.js
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
var getExt = function(target)
{
switch(target)
{
case "wasm":
return ".wasm";
break;
case "asm-js":
return ".asm.js";
break;
case "wast":
return ".wast";
break;
case "win-x86-32":
case "win-x86-64":
return "-" + target + ".exe";
break;
case "nucleo-l432kc":
case "nucleo-l152re":
case "mac-osx":
case "linux-x86-32":
case "linux-x86-64":
case "linux-arm32v7":
return "-" + target + ".bin";
break;
case "arduino-uno":
return "-" + target + ".hex";
break;
case "arduino-mega1280":
return "-" + target + ".hex";
break;
case "arduino-mega2560":
return "-" + target + ".hex";
break;
default:
return ".bin";
break;
}
}
module.exports = getExt;
================================================
FILE: base/util/getTips.js
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
var getTips = function(target, file)
{
switch(target)
{
case "wasm":
return "";
break;
case "asm-js":
return "[*] Tips : run this file with node : 'node " + file + "', or embed it in a .html page with <script src=\"" + file + "\"></script>";
break;
case "wast":
return "";
break;
case "win-x86-32":
case "win-x86-64":
return "[*] Tips : on Linux, you can run this .exe with Wine : 'wine " + file + "'";
break;
case "linux-x86-32":
case "linux-x86-64":
case "linux-arm32v7":
return "[*] Tips : on Linux, don't forget to : 'chmod +x " + file + "'.";
break;
case "arduino-uno":
return "[*] Tips : avrdude -p ATMEGA328P -c arduino -P [COMPORT] -b 19200 -F -U flash:w:" + file;
break;
case "arduino-mega1280":
return "[*] Tips : avrdude -p m1280 -c arduino -P [COMPORT] -b 57600 -F -U flash:w:" + file;
break;
case "arduino-mega2560":
return "[*] Tips : avrdude -p m2560 -c wiring -P [COMPORT] -b 115200 -F -U flash:w:" + file;
break;
case "nucleo-l152re":
case "nucleo-l432kc":
return "[*] Connect your nucleo on your computer, and symple copy/paste " + file + " on the nucleo drive";
default:
return "";
break;
}
}
module.exports = getTips;
================================================
FILE: compiler/native/compiler.js
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
global.ENV = loadEnv();
function loadEnv()
{
var _res = {};
var _folder = path.join(__dirname, "/env/");
var _list = fs.readdirSync(_folder);
for(var _el in _list)
{
var _name = _list[_el].substring(0, _list[_el].length-3);
var _e = require(path.join(_folder, _list[_el]));
_res[_name] = _e;
}
return _res;
}
function Compiler()
{
var _handler = this;
this.MAIN_PATH = __dirname;
this.TARGET = "standard";
this.SPEC;
this.EXPOSE = "";
this.STD = "";
this.GEN = "";
this.PATH = "";
this.LIBS = "";
this.STATE = "";
this.PACK = [];
this.DIR = [];
if(CLI.stack[0]) this.PATH = path.dirname(CLI.stack[0]) + path.sep;
this.ENV = ENV["std"];
if(CLI.cli["--env"])
{
var _env = CLI.cli["--env"].argument;
if(ENV[_env])
{
this.ENV = ENV[_env];
}
else
{
console.log("[!] ENV: " + _env + " does not exist, please select one of [" + Object.keys(ENV).toString() + "]");
process.exit(1);
}
}
this.COMPILER = this.ENV.compiler;
this.PRESET = "none";
this.MAIN = fs.readFileSync(path.join(__dirname, "squel", this.ENV.main)).toString();
this.IN = "";
this.OUT = "";
this.TMP_FOLDER = "";
this.OPTION = "";
this.INIT = "";
this.DECL = "";
this.REQUIRE = "";
this.INCLUDE = "";
this.INFO =
{
FUNCTION: [],
CACHE: {},
VALUE: [],
CALL: {},
SCOPE: {},
HOISTING: [],
};
if(this.ENV.stdlib)
{
for(var _s in this.ENV.stdlib)
{
if(typeof this.ENV.stdlib[_s] == "string")
{
this.DECL += "var " + this.ENV.stdlib[_s] + ";";
this.STD += this.ENV.stdlib[_s] + " = require(\"" + this.ENV.stdlib[_s] + "\");";
}
else if(typeof this.ENV.stdlib[_s] == "object")
{
this.DECL += "var " + this.ENV.stdlib[_s].bind + ";";
this.STD += this.ENV.stdlib[_s].bind + " = require(\"" + this.ENV.stdlib[_s].module + "\");";
}
}
}
this.CODE = "";
this.FOOTER = "";
/*** METHODS ***/
this.Parse = function(code, _file)
{
var _env = createEnv(_handler.PATH, _file);
code = this.STD + code;
parseCode(code, 0, _env);
parseAST(_env);
var _generated = generateCode(_env);
_handler.MAIN = _handler.MAIN.replace("{CODE}", _generated);
_handler.MAIN = _handler.MAIN.replace("{INIT}", COMPILER.INIT);
_handler.MAIN = _handler.MAIN.replace("{DECL}", COMPILER.DECL);
_handler.MAIN = _handler.MAIN.replace("{INCLUDE}", COMPILER.INCLUDE);
_handler.MAIN = _handler.MAIN.replace("{{__PLATFORM__}}", os.platform());
}
this.Prepare = function(_folder)
{
if((!CLI.cli["--profile"]) || CLI.cli["--profile"].argument != "use")
{
copyDirSync(path.join(__dirname, "nerdcore"), _folder, false);
}
};
this.Out = function(_name)
{
if(os.platform() == "win32" && path.extname(_name) != ".exe") _handler.OUT = _name + ".exe";
else _handler.OUT = _name;
if(COMPILER.ENV.out && typeof COMPILER.ENV.out == "function")
{
_handler.OUT = COMPILER.ENV.out(_name);
}
return _handler.OUT;
}
this.CLI = function(compiler, out, _in, option)
{
return this.ENV.cli(compiler, this.preset, out, _in, option, this.TARGET, this.SPEC);
}
this.Compile = function(_folder, _file)
{
fs.writeFileSync(_file, _handler.MAIN);
process.chdir(_folder);
var _exec = _handler.CLI(_handler.COMPILER, _handler.OUT, _file, _handler.OPTION);
execSync(_exec);
}
this.Package = function()
{
if(this.PACK && this.PACK.length)
{
for(var i = 0; i < this.PACK.length; i++)
{
copyRecursiveSync(this.PACK[i], this.OUT);
}
}
}
/*** END METHODS ***/
}
module.exports = new Compiler();
================================================
FILE: compiler/native/env/arduino.js
================================================
var OPTIONS =
{
"mega": { preset: "-DF_CPU=16000000UL -mmcu=atmega2560", variant: "mega"},
"mega2560": { preset: "-DF_CPU=16000000UL -mmcu=atmega2560", variant: "mega"},
"mega1280": { preset: "-DF_CPU=16000000UL -mmcu=atmega1280", variant: "mega"},
"mega328p": { preset: "-DF_CPU=16000000UL -mmcu=atmega328p", variant: "standard"},
"uno": { preset: "-DF_CPU=16000000UL -mmcu=atmega328p", variant: "standard"},
"nano": { preset: "-DF_CPU=16000000UL -mmcu=atmega328p", variant: "standard"},
"nano2": { preset: "-DF_CPU=16000000UL -mmcu=atmega168", variant: "standard"},
"nano3": { preset: "-DF_CPU=16000000UL -mmcu=atmega328p", variant: "standard"}
}
function getOptions()
{
var OPT =
{
elf: false,
cli: false,
};
if(CLI.cli["--option"] && CLI.cli["--option"].argument)
{
var _args = CLI.cli["--option"].argument.split(",");
for(var i = 0; i < _args.length; i++)
{
OPT[_args[i]] = true;
}
}
return OPT;
}
var ARDUINO =
{
name: "arduino",
main: "arduino.cpp",
cli: function(compiler, preset, out, _in, option, target, spec)
{
var OPT = getOptions();
var _cliOption = "";
if(CLI.cli["--option"]) _cliOption = CLI.cli["--option"].argument;
if(!target || !OPTIONS[target])
{
console.log("[!] No target or bad target selected, switching to 'uno'");
target = "uno";
}
var _cli = `${compiler} ${OPTIONS[target].preset} -D__NERD__OBJECT_VECTOR -DARDUINO_ARCH_AVR -w -Os -fno-exceptions -fno-rtti -fno-stack-protector -fomit-frame-pointer -ffunction-sections -fdata-sections -Wl,--gc-sections \
-I ${extern}/arduino/avr -I ${extern}/arduino/avr/variants/${OPTIONS[target].variant}/ -I ${extern}/arduino/avr/cores/arduino -I ${extern}/arduino/stlarduino ${extern}/arduino/stlarduino/ios.cpp ${extern}/arduino/avr/cores/arduino/abi.cpp ${extern}/arduino/stlarduino/new*.cpp ${extern}/arduino/stlarduino/char_traits.cpp ${extern}/arduino/stlarduino/del*.cpp ${extern}/arduino/stlarduino/stdexcept.cpp ${extern}/arduino/stlarduino/func_exception.cpp ${extern}/arduino/stlarduino/ostream_helpers.cpp -fno-threadsafe-statics -lm ${COMPILER.LIBS} -o ${out} ${_in} ${_cliOption}`;
if(!OPT.elf) _cli += `&& avr-objcopy -O ihex -R .eeprom ${out}`;
if(OPT.cli) console.log("[*]" + _cli);
return _cli;
},
compiler: "avr-g++ -std=c++17",
stdlib:[],
out: function(_name)
{
var OPT = getOptions();
if(OPT.elf) _name += ".elf";
else _name += ".hex";
return _name;
},
}
module.exports = ARDUINO;
================================================
FILE: compiler/native/env/js.js
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
var _debug = " -g ";
var JS =
{
name: "js",
main: "js.cpp",
compiler: "g++",
stdlib: ["console", "JSON", "Module", "process", "RegExp", "Math"],
cli: function(compiler, preset, out, _in, option)
{
var _cachePath = path.join(process.cwd(), "..", "cached_" + COMPILER.ENV.name + "_" + os.platform + "_" + VERSION);
var _precompiled = path.join(_cachePath, "nerd.o");
var _stack = 0;
if(CLI.cli["--stack"])
{
try
{
_stack = parseInt(CLI.cli["--stack"].argument);
}
catch(e)
{
console.log("[!] Error: --stack flags required a number, received -> " + CLI.cli["--stack"].argument);
process.exit(1);
}
}
if(!fs.existsSync(_precompiled))
{
var _args = " -flto -Ofast ";
if(preset == "debug")
{
console.log("Building core with debug");
_args = _debug;
}
console.log(`[+] Creating Nerd binary lib for ${COMPILER.ENV.name + "_" + os.platform + "_" + VERSION}`);
console.log(`${compiler} -std=c++17 ${_args} -c nerdcore/src/nerd.cpp -o "${_precompiled}"`);
try { fs.mkdirSync(_cachePath); } catch(e){};
execSync(`${compiler} -std=c++17 ${_args} -c nerdcore/src/nerd.cpp -o "${_precompiled}"`);
console.log("[+] Compiling with precompiled Nerd lib");
}
if(compiler == "cl" || compiler.indexOf("cl ") == 0)
{
console.log("[!] cl is not supported, please use g++, clang++, em++ or avr-g++");
process.exit(1);
}
var _hashmap = "";
if(CLI.cli['--no-object-hashmap']) _hashmap = "-D__NERD__OBJECT_VECTOR";
if(_stack) _stack = "-Wl,--stack," + _stack;
else _stack = "";
var _sysVNetLibs = "";
if(os.platform() == "sunos") _sysVNetLibs = "-lsocket -lnsl";
var _cliOption = "";
if(CLI.cli["--option"]) _cliOption = CLI.cli["--option"].argument;
if(CLI.cli["--profile"])
{
if(!CLI.cli["--conserve"]) CLI.cli["--conserve"] = true;
if(CLI.cli["--profile"].argument == "gen")
{
_cliOption += " -fprofile-generate";
console.log("[*] Profiling data will be stored in: " + COMPILER.TMP_FOLDER);
}
else if(CLI.cli["--profile"].argument == "use")
{
_cliOption += " -fprofile-use";
console.log("[*] Using profile data from: " + COMPILER.TMP_FOLDER);
}
else
{
console.log("[!] Please use --profile with gen or use");
}
}
var _files = `"${_precompiled}" "${_in}"`;
if(os.platform == "win32") _files = `"${_in}" "${_precompiled}"`;
if(preset == "none")
{
return `${compiler} ${_stack} -std=c++17 ${_files} -g -s ${COMPILER.LIBS} -pthread -o "${out}" ${_sysVNetLibs} ${_cliOption}`;
}
else if(preset == "debug")
{
console.log(`${compiler} ${_stack} -std=c++17 ${_files} ${_debug} -s ${COMPILER.LIBS} -pthread -o "${out}" ${_sysVNetLibs} ${_cliOption}`);
return `${compiler} ${_stack} -std=c++17 ${_files} ${_debug} -s ${COMPILER.LIBS} -pthread -o "${out}" ${_sysVNetLibs} ${_cliOption}`;
}
else if(preset == "size")
{
return `${compiler} ${_stack} -std=c++17 ${_files} -pthread -Os -fno-rtti -fno-stack-protector -fomit-frame-pointer -s ${COMPILER.LIBS} -o "${out}" ${_sysVNetLibs} ${_cliOption}`;
}
else
{
var _opt = "-O";
if(os.platform() == "darwin" || compiler.indexOf("clang") > -1) _opt += "3";
else _opt += "fast";
_opt += " -flto";
return `${compiler} ${_stack} -std=c++17 ${_files} ${_opt} -pthread -s ${COMPILER.LIBS} -o "${out}" ${_sysVNetLibs} ${_cliOption}`;
}
},
write: function(_content, _in)
{
if(CLI.cli["--profile"] && CLI.cli["--profile"].argument == "use")
{
return;
}
fs.writeFileSync(_in, _content);
}
}
module.exports = JS;
================================================
FILE: compiler/native/env/std.js
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
var _debug = " -g ";
var STD =
{
name: "std",
main: "std.cpp",
compiler: "g++",
stdlib: [],
cli: function(compiler, preset, out, _in, option)
{
var _cachePath = path.join(process.cwd(), "..", "cached_" + COMPILER.ENV.name + "_" + os.platform + "_" + VERSION);
var _precompiled = path.join(_cachePath, "nerd.o");
var _stack = 0;
if(CLI.cli["--stack"])
{
try
{
_stack = parseInt(CLI.cli["--stack"].argument);
}
catch(e)
{
console.log("[!] Error: --stack flags required a number, received -> " + CLI.cli["--stack"].argument);
process.exit(1);
}
}
if(!fs.existsSync(_precompiled))
{
var _args = " -flto -Ofast ";
if(preset == "debug")
{
console.log("Building core with debug");
_args = _debug;
}
console.log(`[+] Creating Nerd binary lib for ${COMPILER.ENV.name + "_" + os.platform + "_" + VERSION}`);
console.log(`${compiler} -std=c++17 ${_args} -c nerdcore/src/nerd.cpp -o "${_precompiled}"`);
try { fs.mkdirSync(_cachePath); } catch(e){};
execSync(`${compiler} -std=c++17 ${_args} -c nerdcore/src/nerd.cpp -o "${_precompiled}"`);
console.log("[+] Compiling with precompiled Nerd lib");
}
if(compiler == "cl" || compiler.indexOf("cl ") == 0)
{
console.log("[!] cl is not supported, please use g++, clang++, em++ or avr-g++");
process.exit(1);
}
var _hashmap = "";
if(CLI.cli['--no-object-hashmap']) _hashmap = "-D__NERD__OBJECT_VECTOR";
if(_stack) _stack = "-Wl,--stack," + _stack;
else _stack = "";
var _sysVNetLibs = "";
if(os.platform() == "sunos") _sysVNetLibs = "-lsocket -lnsl";
var _cliOption = "";
if(CLI.cli["--option"]) _cliOption = CLI.cli["--option"].argument;
if(CLI.cli["--profile"])
{
if(!CLI.cli["--conserve"]) CLI.cli["--conserve"] = true;
if(CLI.cli["--profile"].argument == "gen")
{
_cliOption += " -fprofile-generate";
console.log("[*] Profiling data will be stored in: " + COMPILER.TMP_FOLDER);
}
else if(CLI.cli["--profile"].argument == "use")
{
_cliOption += " -fprofile-use";
console.log("[*] Using profile data from: " + COMPILER.TMP_FOLDER);
}
else
{
console.log("[!] Please use --profile with gen or use");
}
}
var _files = `"${_precompiled}" "${_in}"`;
if(os.platform == "win32") _files = `"${_in}" "${_precompiled}"`;
if(preset == "none")
{
return `${compiler} ${_stack} -std=c++17 ${_files} -g -s ${COMPILER.LIBS} -pthread -o "${out}" ${_sysVNetLibs} ${_cliOption}`;
}
else if(preset == "debug")
{
console.log(`${compiler} ${_stack} -std=c++17 ${_files} ${_debug} -s ${COMPILER.LIBS} -pthread -o "${out}" ${_sysVNetLibs} ${_cliOption}`);
return `${compiler} ${_stack} -std=c++17 ${_files} ${_debug} -s ${COMPILER.LIBS} -pthread -o "${out}" ${_sysVNetLibs} ${_cliOption}`;
}
else if(preset == "size")
{
return `${compiler} ${_stack} -std=c++17 ${_files} -pthread -Os -fno-rtti -fno-stack-protector -fomit-frame-pointer -s ${COMPILER.LIBS} -o "${out}" ${_sysVNetLibs} ${_cliOption}`;
}
else
{
var _opt = "-O";
if(os.platform() == "darwin" || compiler.indexOf("clang") > -1) _opt += "3";
else _opt += "fast";
_opt += " -flto";
return `${compiler} ${_stack} -std=c++17 ${_files} ${_opt} -pthread -s ${COMPILER.LIBS} -o "${out}" ${_sysVNetLibs} ${_cliOption}`;
}
},
write: function(_content, _in)
{
if(CLI.cli["--profile"] && CLI.cli["--profile"].argument == "use")
{
return;
}
fs.writeFileSync(_in, _content);
}
}
module.exports = STD;
================================================
FILE: compiler/native/env/wasm.js
================================================
var WASM =
{
name: "wasm",
main: "wasm.cpp",
compiler: "em++",
out: function(_name)
{
if(CLI.cli["--target"])
{
if(CLI.cli["--target"].argument == "js") return _name + ".asm.js";
else if(CLI.cli["--target"].argument == "wasm") return _name + ".wasm";
else if(CLI.cli["--target"].argument == "html") return _name + ".html";
else
{
console.log("[!] Invalid target, expected js, wasm, html");
process.exit(1);
}
}
return _name + ".wasm";
},
cli: function(compiler, preset, out, _in, option)
{
/*
var _cachePath = path.join(process.cwd(), "..", "cached_" + COMPILER.ENV.name + "_" + VERSION);
var _precompiled = path.join(_cachePath, "nerd.o");
if(!fs.existsSync(_precompiled))
{
console.log(`[+] Creating Nerd binary lib for ${COMPILER.ENV.name + "_" + VERSION}`);
try { fs.mkdirSync(_cachePath); } catch(e){};
execSync(`${compiler} -std=c++17 -c nerd.cpp -O3 -o "${_precompiled}"`);
console.log("[+] Compiling with precompiled Nerd lib");
}
*/
var _cliOption = "";
if(CLI.cli["--option"]) _cliOption = CLI.cli["--option"].argument;
if(preset == "none")
{
return `${compiler} nerdcore/src/nerd.cpp -D__NJS_REGISTER_SIZE=${COMPILER.REGISTER} ${_in} -O1 -w -s TOTAL_MEMORY=33554432 ${COMPILER.LIBS} -o ${out} ${_cliOption}`;
}
else if(preset == "size")
{
return `${compiler} nerdcore/src/nerd.cpp -D__NJS_REGISTER_SIZE=${COMPILER.REGISTER} ${_in} -Os -fno-rtti -fno-stack-protector -fomit-frame-pointer -w -s TOTAL_MEMORY=33554432 ${COMPILER.LIBS} -o ${out} ${_cliOption}`;
}
else
{
return `${compiler} nerdcore/src/nerd.cpp -D__NJS_REGISTER_SIZE=${COMPILER.REGISTER} ${_in} -O3 -w -s TOTAL_MEMORY=33554432 ${COMPILER.LIBS} -o ${out} ${_cliOption}`;
}
}
}
module.exports = WASM;
================================================
FILE: compiler/native/nerdcore/src/class/_meta.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include <exception>
namespace NerdCore::Class
{
#ifdef __NERD_ENV_ARDUINO
typedef uint16_t count_t;
#else
typedef int count_t;
#endif
class InvalidTypeException : public std::exception
{
};
#ifdef __NERD_ENV_ARDUINO
const int SMI_MAX = 32767;
const int SMI_MIN = -32768;
#else
const int SMI_MAX = 1073741823;
const int SMI_MIN = -1073741824;
#endif
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/array.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "array_header.h"
#include <sstream>
#include <limits>
namespace NerdCore::Class
{
// Constructors
Array::Array()
{
object["__proto__"] = NerdCore::Global::Array["prototype"];
}
Array::Array(NerdCore::Type::vector_t vec)
{
object["__proto__"] = NerdCore::Global::Array["prototype"];
value = vec;
}
Array::Array(std::initializer_list<NerdCore::VAR> l) : value(l)
{
object["__proto__"] = NerdCore::Global::Array["prototype"];
}
// Methods
inline void Array::Delete() noexcept
{
if (--counter == 0)
{
delete this;
}
}
double Array::Size()
{
return value.size();
}
inline void Array::jsDelete(NerdCore::VAR _key) noexcept
{
if(_key.type == NerdCore::Enum::Type::String)
{
// TODO: if string is a number, convert to number and erase
}
else if(_key.type == NerdCore::Enum::Type::Number)
{
value[(double)_key] = NerdCore::Global::null;
}
}
inline void* Array::Copy() noexcept
{
counter++;
return this;
}
// Native cast
Array::operator bool() const noexcept { return true; }
Array::operator double() const noexcept
{
if (value.size() == 1)
{
return (double)value[0];
}
else
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<double>::quiet_NaN();
#endif
}
}
Array::operator int() const noexcept
{
if (value.size() == 1)
{
return (int)value[0];
}
else
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<int>::quiet_NaN();
#endif
}
}
Array::operator long long() const noexcept
{
if (value.size() == 1)
{
return (long long)value[0];
}
else
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<long long>::quiet_NaN();
#endif
}
}
Array::operator std::string() const noexcept
{
auto l = value.size();
if (l == 0)
return "";
std::stringstream stream;
stream << (std::string)value[0];
for (auto i = 1; i < l; i++)
{
stream << "," << (std::string)value[i];
}
return stream.str();
}
NerdCore::VAR &Array::GetSet(std::string key)
{
#ifndef __NERD__OBJECT_VECTOR
// if current object[key] is null, we look for the prototypal chain
if(object[key].type == NerdCore::Enum::Type::Null)
{
NerdCore::VAR __proto = object["__proto__"];
while(__proto.type != NerdCore::Enum::Type::Null)
{
if(__proto[key].type != NerdCore::Enum::Type::Null)
{
object[key] = __proto[key];
break;
}
__proto = __proto["__proto__"];
}
}
/*
if(object[key].type == NerdCore::Enum::Type::Function)
{
(__NERD_FUNCTION(object[key]))->object["this"] = NerdCore::VAR(this);
__NERD_FUNCTION(object[key])->bind = bind;
}
*/
return object[key];
#else
for (auto & search : object)
{
if (key.compare(search.first) == 0)
{
return search.second;
}
}
object.push_back(NerdCore::Type::pair_t(key, NerdCore::Global::null));
return object[object.size() - 1].second;
#endif
}
// Main operators
NerdCore::VAR const Array::operator[](int key) const
{
if (key >= 0 && key <= value.size())
{
return value.at(key);
}
return NerdCore::Global::null;
}
NerdCore::VAR &Array::operator[](NerdCore::VAR key)
{
if (key.type == NerdCore::Enum::Type::Number)
{
auto i = (int)key;
if (i < 0)
{
return NerdCore::Global::null;
}
else
{
if (i >= value.size())
{
value.resize(i + 1);
}
}
return value[i];
}
else
{
return GetSet(key);
}
return NerdCore::Global::null;
}
NerdCore::VAR &Array::operator[](int key)
{
if (key < 0)
{
return NerdCore::Global::null;
}
else
{
if (key >= value.size())
{
value.resize(key + 1);
}
}
return value[key];
}
NerdCore::VAR &Array::operator[](double key)
{
if (key < 0)
{
return NerdCore::Global::null;
}
else
{
if (key >= value.size())
{
value.resize(key + 1);
}
}
return value[key];
}
NerdCore::VAR &Array::operator[](const char* key)
{
return GetSet(key);
}
// Comparation operators
Array Array::operator!() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
// Numeric operators
Array Array::operator+() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator-() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator++(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator--(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator+(const Array &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator+=(const Array &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator-(const Array &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator-=(const Array &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator*(const Array &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator*=(const Array &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
// TODO: "**" and "**=" operators
Array Array::operator/(const Array &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator/=(const Array &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator%(const Array &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator%=(const Array &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator&(const Array &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator|(const Array &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator^(const Array &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator~() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator>>(const Array &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator<<(const Array &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator&=(const Array &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator|=(const Array &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator^=(const Array &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator>>=(const Array &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
Array Array::operator<<=(const Array &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Array();
}
// TODO: ">>>" and ">>>=" operators
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/array_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "_meta.h"
namespace NerdCore::Class
{
class Array : public virtual Base
{
public:
// Constructors
Array();
Array(NerdCore::Type::vector_t vec);
template<typename ...Args>
Array(Args ... args)
{
NerdCore::Type::vector_t _vec = {args...};
value = _vec;
}
Array(std::initializer_list<NerdCore::VAR> l);
// Properties
count_t counter = 0;
NerdCore::Type::vector_t value;
NerdCore::Type::object_t object;
NerdCore::VAR length;
// Methods
double Size();
inline void Delete() noexcept;
inline void jsDelete(const NerdCore::VAR _key) noexcept;
inline void* Copy() noexcept;
// Native cast
explicit operator bool() const noexcept;
explicit operator double() const noexcept;
explicit operator int() const noexcept;
explicit operator long long() const noexcept;
explicit operator std::string() const noexcept;
// Main operators
NerdCore::VAR &GetSet(std::string key);
NerdCore::VAR const operator[](int key) const;
NerdCore::VAR &operator[](NerdCore::VAR key);
NerdCore::VAR &operator[](int key);
NerdCore::VAR &operator[](double key);
NerdCore::VAR &operator[](const char* key);
// Comparation operators
Array operator!() const;
template <typename t>
bool operator==(const t &_v1) const { return false; }
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
template <typename t>
bool operator!=(const t &_v1) const { return true; }
template <typename t>
bool operator<(const t &_v1) const { return (*this)[0] < _v1;}
template <typename t>
bool operator<=(const t &_v1) const { return (*this)[0] <= _v1; }
template <typename t>
bool operator>(const t &_v1) const { return (*this)[0] > _v1; }
template <typename t>
bool operator>=(const t &_v1) const { return (*this)[0] >= _v1; }
// Numeric operators
Array operator+() const;
Array operator-() const;
Array operator++(const int _v1);
Array operator--(const int _v1);
Array operator+(const Array &_v1) const;
Array operator+=(const Array &_v1);
Array operator-(const Array &_v1) const;
Array operator-=(const Array &_v1);
Array operator*(const Array &_v1) const;
Array operator*=(const Array &_v1);
// TODO: "**" and "**=" operators
Array operator/(const Array &_v1) const;
Array operator/=(const Array &_v1);
Array operator%(const Array &_v1) const;
Array operator%=(const Array &_v1);
Array operator&(const Array &_v1) const;
Array operator|(const Array &_v1) const;
Array operator^(const Array &_v1) const;
Array operator~() const;
Array operator>>(const Array &_v1) const;
Array operator<<(const Array &_v1) const;
Array operator&=(const Array &_v1);
Array operator|=(const Array &_v1);
Array operator^=(const Array &_v1);
Array operator>>=(const Array &_v1);
Array operator<<=(const Array &_v1);
// TODO: ">>>" and ">>>=" operators
NerdCore::VAR __iterator(NerdCore::VAR* args, int _length) const;
NerdCore::VAR __unscopables(NerdCore::VAR* args, int _length) const;
NerdCore::VAR concat(NerdCore::VAR* args, int _length) const;
NerdCore::VAR copyWithin(NerdCore::VAR* args, int _length);
NerdCore::VAR entries(NerdCore::VAR* args, int _length) const;
NerdCore::VAR every(NerdCore::VAR* args, int _length) const;
NerdCore::VAR fill(NerdCore::VAR* args, int _length) const;
NerdCore::VAR filter(NerdCore::VAR* args, int _length) const;
NerdCore::VAR find(NerdCore::VAR* args, int _length) const;
NerdCore::VAR findIndex(NerdCore::VAR* args, int _length) const;
NerdCore::VAR flat(NerdCore::VAR* args, int _length) const;
NerdCore::VAR flatMap(NerdCore::VAR* args, int _length) const;
NerdCore::VAR forEach(NerdCore::VAR* args, int _length) const;
NerdCore::VAR includes(NerdCore::VAR* args, int _length) const;
NerdCore::VAR indexOf(NerdCore::VAR* args, int _length) const;
NerdCore::VAR join(NerdCore::VAR* args, int _length) const;
NerdCore::VAR keys(NerdCore::VAR* args, int _length) const;
NerdCore::VAR lastIndexOf(NerdCore::VAR* args, int _length) const;
NerdCore::VAR map(NerdCore::VAR* args, int _length) const;
NerdCore::VAR pop(NerdCore::VAR* args, int _length);
NerdCore::VAR push(NerdCore::VAR* args, int _length);
NerdCore::VAR reduce(NerdCore::VAR* args, int _length) const;
NerdCore::VAR reduceRight(NerdCore::VAR* args, int _length) const;
NerdCore::VAR reverse(NerdCore::VAR* args, int _length);
NerdCore::VAR shift(NerdCore::VAR* args, int _length);
NerdCore::VAR slice(NerdCore::VAR* args, int _length) const;
NerdCore::VAR some(NerdCore::VAR* args, int _length) const;
NerdCore::VAR sort(NerdCore::VAR* args, int _length) const;
NerdCore::VAR splice(NerdCore::VAR* args, int _length);
NerdCore::VAR toLocaleString(NerdCore::VAR* args, int _length) const;
NerdCore::VAR toString(NerdCore::VAR* args, int _length) const;
NerdCore::VAR unshift(NerdCore::VAR* args, int _length);
NerdCore::VAR values(NerdCore::VAR* args, int _length) const;
};
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/base_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "_meta.h"
namespace NerdCore::Class
{
class Base
{
public:
#ifdef __NERD_ENV_ESP32
virtual ~Base() { }
#endif
virtual void Delete() noexcept{};
virtual void* Copy() noexcept{ return nullptr; };
virtual explicit operator bool() const noexcept{ return true;};
virtual explicit operator std::string() const noexcept{ return "";};
virtual explicit operator int() const noexcept {return 0;};
virtual explicit operator double() const noexcept {return 0.0;};
virtual explicit operator long long() const noexcept {return 0;};
virtual NerdCore::VAR &operator[](NerdCore::VAR key){ return NerdCore::Global::null; };
virtual NerdCore::VAR &operator[](int key){ return NerdCore::Global::null; };
virtual NerdCore::VAR &operator[](double key){ return NerdCore::Global::null; };
virtual NerdCore::VAR &operator[](const char* key){ return NerdCore::Global::null; };
};
}
================================================
FILE: compiler/native/nerdcore/src/class/fixed_array.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "array_header.h"
#include <sstream>
#include <limits>
namespace NerdCore::Class
{
// Constructors
FixedArray::FixedArray()
{
length = 8;
value = new NerdCore::VAR[8];
}
FixedArray::FixedArray(NerdCore::VAR _length)
{
length = _length;
value = new NerdCore::VAR[(int)_length];
}
FixedArray::FixedArray(int _length)
{
length = _length;
value = new NerdCore::VAR[_length];
}
FixedArray::FixedArray(NerdCore::VAR* _var, int _length)
{
length = _length;
value = new NerdCore::VAR[_length];
for(int i = 0; i < _length; i++)
{
value[i] = _var[i];
}
}
// Methods
inline void FixedArray::Delete() noexcept
{
if (--counter == 0)
{
delete[] value;
delete this;
}
}
inline void* FixedArray::Copy() noexcept
{
counter++;
return this;
}
// Native cast
FixedArray::operator bool() const noexcept { return true; }
FixedArray::operator double() const noexcept
{
if ((int)length == 1)
{
return (double)value[0];
}
else
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<double>::quiet_NaN();
#endif
}
}
FixedArray::operator int() const noexcept
{
if ((int)length == 1)
{
return (int)value[0];
}
else
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<int>::quiet_NaN();
#endif
}
}
FixedArray::operator long long() const noexcept
{
if ((int)length == 1)
{
return (long long)value[0];
}
else
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<long long>::quiet_NaN();
#endif
}
}
FixedArray::operator std::string() const noexcept
{
auto l = (int)length;
std::stringstream stream;
stream << (std::string)value[0];
for (auto i = 1; i < l; i++)
{
stream << "," << (std::string)value[i];
}
return stream.str();
}
// Main operators
NerdCore::VAR const FixedArray::operator[](NerdCore::VAR key) const
{
if (key.type == NerdCore::Enum::Type::Number)
{
auto i = (int)key;
if (i >= 0 && i <= (int)length)
{
return value[i];
}
}
return NerdCore::Global::null;
}
NerdCore::VAR const FixedArray::operator[](int key) const
{
if (key >= 0 && key <= (int)length)
{
return value[key];
}
return NerdCore::Global::null;
}
NerdCore::VAR &FixedArray::operator[](NerdCore::VAR key)
{
if (key.type == NerdCore::Enum::Type::Number)
{
auto i = (int)key;
if (i < 0)
{
return NerdCore::Global::null;
}
else
{
if (i >= (int)length)
{
return NerdCore::Global::null;
}
}
return value[i];
}
return NerdCore::Global::null;
}
NerdCore::VAR &FixedArray::operator[](int key)
{
if (key < 0)
{
return NerdCore::Global::null;
}
else
{
if (key >= (int)length)
{
return NerdCore::Global::null;
}
}
return value[key];
}
NerdCore::VAR &FixedArray::operator[](double key)
{
if (key < 0)
{
return NerdCore::Global::null;
}
else
{
if (key >= (int)length)
{
return NerdCore::Global::null;
}
}
return value[(int)key];
}
NerdCore::VAR &FixedArray::operator[](const char* key)
{
return NerdCore::Global::null;
}
// Comparation operators
FixedArray FixedArray::operator!() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
// Numeric operators
FixedArray FixedArray::operator+() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator-() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator++(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator--(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator+(const FixedArray &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator+=(const FixedArray &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator-(const FixedArray &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator-=(const FixedArray &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator*(const FixedArray &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator*=(const FixedArray &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
// TODO: "**" and "**=" operators
FixedArray FixedArray::operator/(const FixedArray &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator/=(const FixedArray &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator%(const FixedArray &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator%=(const FixedArray &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator&(const FixedArray &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator|(const FixedArray &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator^(const FixedArray &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator~() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator>>(const FixedArray &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator<<(const FixedArray &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator&=(const FixedArray &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator|=(const FixedArray &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator^=(const FixedArray &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator>>=(const FixedArray &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
FixedArray FixedArray::operator<<=(const FixedArray &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return FixedArray();
}
// TODO: ">>>" and ">>>=" operators
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/fixed_array_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "_meta.h"
namespace NerdCore::Class
{
class FixedArray : public virtual Base
{
public:
// Constructors
FixedArray();
FixedArray(NerdCore::VAR length);
FixedArray(int length);
FixedArray(NerdCore::VAR* value, int length);
// Properties
count_t counter = 0;
NerdCore::VAR length;
NerdCore::VAR* value;
// Methods
inline void Delete() noexcept;
inline void* Copy() noexcept;
// Native cast
explicit operator bool() const noexcept;
explicit operator double() const noexcept;
explicit operator int() const noexcept;
explicit operator long long() const noexcept;
explicit operator std::string() const noexcept;
// Main operators
NerdCore::VAR const operator[](NerdCore::VAR key) const;
NerdCore::VAR const operator[](int key) const;
NerdCore::VAR &operator[](NerdCore::VAR key);
NerdCore::VAR &operator[](int key);
NerdCore::VAR &operator[](double key);
NerdCore::VAR &operator[](const char* key);
// Comparation operators
FixedArray operator!() const;
template <typename t>
bool operator==(const t &_v1) const { return false; }
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
template <typename t>
bool operator!=(const t &_v1) const { return true; }
template <typename t>
bool operator<(const t &_v1) const { return (*this)[0] < _v1;}
template <typename t>
bool operator<=(const t &_v1) const { return (*this)[0] <= _v1; }
template <typename t>
bool operator>(const t &_v1) const { return (*this)[0] > _v1; }
template <typename t>
bool operator>=(const t &_v1) const { return (*this)[0] >= _v1; }
// Numeric operators
FixedArray operator+() const;
FixedArray operator-() const;
FixedArray operator++(const int _v1);
FixedArray operator--(const int _v1);
FixedArray operator+(const FixedArray &_v1) const;
FixedArray operator+=(const FixedArray &_v1);
FixedArray operator-(const FixedArray &_v1) const;
FixedArray operator-=(const FixedArray &_v1);
FixedArray operator*(const FixedArray &_v1) const;
FixedArray operator*=(const FixedArray &_v1);
// TODO: "**" and "**=" operators
FixedArray operator/(const FixedArray &_v1) const;
FixedArray operator/=(const FixedArray &_v1);
FixedArray operator%(const FixedArray &_v1) const;
FixedArray operator%=(const FixedArray &_v1);
FixedArray operator&(const FixedArray &_v1) const;
FixedArray operator|(const FixedArray &_v1) const;
FixedArray operator^(const FixedArray &_v1) const;
FixedArray operator~() const;
FixedArray operator>>(const FixedArray &_v1) const;
FixedArray operator<<(const FixedArray &_v1) const;
FixedArray operator&=(const FixedArray &_v1);
FixedArray operator|=(const FixedArray &_v1);
FixedArray operator^=(const FixedArray &_v1);
FixedArray operator>>=(const FixedArray &_v1);
FixedArray operator<<=(const FixedArray &_v1);
// TODO: ">>>" and ">>>=" operators
};
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/function.h
================================================
/*
Copyright (c) 2022 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "function_header.h"
#include <functional>
#include <limits>
namespace NerdCore::Class
{
// Constructors
Function::Function()
{
(*this)["prototype"] = new NerdCore::Class::Object();
}
Function::Function(void *val)
{
counter++;
value = (NerdCore::Type::function_t*)val;
if((*this)["prototype"].type == NerdCore::Enum::Type::Null)
{
(*this)["prototype"] = new NerdCore::Class::Object();
}
}
Function::Function(void *val, NerdCore::VAR __this)
{
counter++;
(*this)["this"] = __this;
value = (NerdCore::Type::function_t*)val;
if((*this)["prototype"].type == NerdCore::Enum::Type::Null)
{
(*this)["prototype"] = new NerdCore::Class::Object();
}
}
// Methods
inline void Function::Delete() noexcept
{
if (--counter < 1)
{
delete (NerdCore::Type::function_t*)value;
delete this;
}
}
inline void Function::jsDelete(const std::string _key) noexcept
{
}
inline void* Function::Copy() noexcept
{
counter++;
return this;
}
// Main operators
NerdCore::VAR const Function::operator[](NerdCore::VAR key) const
{
return NerdCore::Global::null;
}
#ifndef __NERD__OBJECT_VECTOR
NerdCore::VAR &Function::operator[](NerdCore::VAR key)
{
/*
if(hasLazy && LazyRTM.count(key) && !object.count(key))
{
object[key] = LazyRTM[key];
}
*/
return object[key];
}
#else
NerdCore::VAR &Function::operator[](NerdCore::VAR key)
{
std::string _str = ((std::string)key);
NerdCore::Type::StringView _sview = _str;
if (key.type == NerdCore::Enum::Type::Number)
{
auto i = (int)key;
if (i < 0)
{
return NerdCore::Global::null;
}
else
{
if (i >= object.size())
{
object.reserve(i + 1);
object.resize(i + 1);
}
}
return object[i].second;
}
for (auto & search : object)
{
if (_sview.compare(search.first) == 0)
{
return search.second;
}
}
object.push_back(NerdCore::Type::pair_t(_str, NerdCore::Global::null));
return object[object.size() - 1].second;
}
#endif
#ifndef __NERD__OBJECT_VECTOR
NerdCore::VAR &Function::operator[](int key)
{
std::string _str = std::to_string(key);
NerdCore::Type::StringView _sview = _str;
return object[_str];
}
#else
NerdCore::VAR &Function::operator[](int key)
{
std::string _str = std::to_string(key);
NerdCore::Type::StringView _sview = _str;
for (auto & search : object)
{
if (_sview.compare(search.first) == 0)
{
return search.second;
}
}
object.push_back(NerdCore::Type::pair_t(_str, NerdCore::Global::null));
return object[object.size() - 1].second;
}
#endif
#ifndef __NERD__OBJECT_VECTOR
NerdCore::VAR &Function::operator[](double key)
{
std::string _str = std::to_string(key);
NerdCore::Type::StringView _sview = _str;
return object[_str];
}
#else
NerdCore::VAR &Function::operator[](double key)
{
std::string _str = std::to_string(key);
NerdCore::Type::StringView _sview = _str;
for (auto & search : object)
{
if (_sview.compare(search.first) == 0)
{
return search.second;
}
}
object.push_back(NerdCore::Type::pair_t(_str, NerdCore::Global::null));
return object[object.size() - 1].second;
}
#endif
#ifndef __NERD__OBJECT_VECTOR
NerdCore::VAR &Function::operator[](const char* key)
{
/*
if(hasLazy && LazyRTM.count(key) && !object.count(key))
{
object[key] = LazyRTM[key];
}
*/
return object[key];
}
#else
NerdCore::VAR &Function::operator[](const char* key)
{
std::string _str = key;
NerdCore::Type::StringView _sview = _str;
for (auto & search : object)
{
if (_sview.compare(search.first) == 0)
{
return search.second;
}
}
object.push_back(NerdCore::Type::pair_t(_str, NerdCore::Global::null));
return object[object.size() - 1].second;
}
#endif
// Comparation operators
NerdCore::VAR Function::operator!() const
{
return __NERD_Boolean_FALSE;
}
bool Function::operator==(const Function &_v1) const { return false; }
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
bool Function::operator!=(const Function &_v1) const { return true; }
bool Function::operator<(const Function &_v1) const { return false; }
bool Function::operator<=(const Function &_v1) const { return true; }
bool Function::operator>(const Function &_v1) const { return false; }
bool Function::operator>=(const Function &_v1) const { return true; }
// Numeric operators
Function Function::operator+() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator-() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator++(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator--(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator+(const Function &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator+=(const Function &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator-(const Function &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator-=(const Function &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator*(const Function &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator*=(const Function &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
// TODO: "**" and "**=" operators
Function Function::operator/(const Function &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator/=(const Function &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator%(const Function &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator%=(const Function &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator&(const Function &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator|(const Function &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator^(const Function &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator~() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator>>(const Function &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator<<(const Function &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator&=(const Function &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator|=(const Function &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator^=(const Function &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator>>=(const Function &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
Function Function::operator<<=(const Function &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Function();
}
// TODO: ">>>" and ">>>=" operators
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/function_header.h
================================================
/*
Copyright (c) 2022 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "_meta.h"
namespace NerdCore::Class
{
class Function : public virtual Base
{
public:
// Constructors
Function();
Function(void* val);
Function(void* val, NerdCore::VAR __this);
// Properties
count_t counter = 0;
NerdCore::Type::function_t* value = nullptr;
NerdCore::Type::object_t object;
NerdCore::VAR This;
//void* bind = nullptr;
// Methods
inline void Delete() noexcept;
inline void jsDelete(std::string _key) noexcept;
inline void* Copy() noexcept;
inline NerdCore::VAR Call(NerdCore::VAR __NERD_THIS, NerdCore::VAR* _args, int i)
{
#ifndef __NERD__OBJECT_VECTOR
if(__NERD_THIS.type == NerdCore::Enum::Type::Null)
{
return std::invoke((*static_cast<NerdCore::Type::function_t *>(value)), This, _args, i);
}
else
{
return std::invoke((*static_cast<NerdCore::Type::function_t *>(value)), __NERD_THIS, _args, i);
}
#else
return (*static_cast<NerdCore::Type::function_t *>(value))(__NERD_THIS, _args, i);
#endif
}
template <class... Args>
NerdCore::VAR operator()(NerdCore::VAR __NERD_THIS, Args... args)
{
NerdCore::VAR _args[] = {args...};
int i = sizeof...(args);
#ifndef __NERD__OBJECT_VECTOR
if(__NERD_THIS.type == NerdCore::Enum::Type::Null)
{
return std::invoke((*static_cast<NerdCore::Type::function_t *>(value)), This, _args, i);
}
else
{
return std::invoke((*static_cast<NerdCore::Type::function_t *>(value)), __NERD_THIS, _args, i);
}
#else
return (*static_cast<NerdCore::Type::function_t *>(value))(__NERD_THIS, _args, i);
#endif
}
template <class... Args>
NerdCore::VAR New(NerdCore::VAR __NERD_THIS, Args... args)
{
NerdCore::VAR _args[] = {args...};
int i = sizeof...(args);
NerdCore::VAR _this = new NerdCore::Class::Object(); //__NERD_Object_Clone((*this)["this"]);
if(_this.type == NerdCore::Enum::Type::Null) _this = new NerdCore::Class::Object();
//((NerdCore::Class::Object*)_this.data.ptr)->bind = bind;
NerdCore::VAR _return = this->Call(_this, _args, i);
if(_return.type == NerdCore::Enum::Type::Object)
{
_this = _return;
}
_this["__proto__"] = object["prototype"];
return _this;
}
// Main operators
NerdCore::VAR const operator[](NerdCore::VAR key) const;
NerdCore::VAR &operator[](NerdCore::VAR key);
NerdCore::VAR &operator[](int key);
NerdCore::VAR &operator[](double key);
NerdCore::VAR &operator[](const char* key);
// Comparation operators
NerdCore::VAR operator!() const;
bool operator==(const Function &_v1) const;
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
bool operator!=(const Function &_v1) const;
bool operator<(const Function &_v1) const;
bool operator<=(const Function &_v1) const;
bool operator>(const Function &_v1) const;
bool operator>=(const Function &_v1) const;
// Numeric operators
Function operator+() const;
Function operator-() const;
Function operator++(const int _v1);
Function operator--(const int _v1);
Function operator+(const Function &_v1) const;
Function operator+=(const Function &_v1);
Function operator-(const Function &_v1) const;
Function operator-=(const Function &_v1);
Function operator*(const Function &_v1) const;
Function operator*=(const Function &_v1);
// TODO: "**" and "**=" operators
Function operator/(const Function &_v1) const;
Function operator/=(const Function &_v1);
Function operator%(const Function &_v1) const;
Function operator%=(const Function &_v1);
Function operator&(const Function &_v1) const;
Function operator|(const Function &_v1) const;
Function operator^(const Function &_v1) const;
Function operator~() const;
Function operator>>(const Function &_v1) const;
Function operator<<(const Function &_v1) const;
Function operator&=(const Function &_v1);
Function operator|=(const Function &_v1);
Function operator^=(const Function &_v1);
Function operator>>=(const Function &_v1);
Function operator<<=(const Function &_v1);
// TODO: ">>>" and ">>>=" operators
};
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/native.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "native_header.h"
#include <functional>
#include <limits>
namespace NerdCore::Class
{
// Constructors
Native::Native() {}
Native::Native(void *val)
{
value = val;
}
// Methods
inline void Native::Delete() noexcept
{
if (--counter < 1)
{
if((*this)["__NERD_On_Destroy"]) (*this)["__NERD_On_Destroy"](NerdCore::Global::null);
delete this;
}
}
inline void* Native::Copy() noexcept
{
counter++;
return this;
}
// Native cast
Native::operator bool() const noexcept { return true; }
Native::operator double() const noexcept
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<double>::quiet_NaN();
#endif
}
Native::operator int() const noexcept
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<int>::quiet_NaN();
#endif
}
Native::operator long long() const noexcept
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<long long>::quiet_NaN();
#endif
}
Native::operator std::string() const noexcept
{
return "[native code]";
}
// Main operators
NerdCore::VAR const Native::operator[](NerdCore::VAR key) const
{
return NerdCore::Global::null;
}
NerdCore::VAR &Native::operator[](NerdCore::VAR key)
{
return NerdCore::Global::null;
}
NerdCore::VAR &Native::operator[](int key)
{
return NerdCore::Global::null;
}
NerdCore::VAR &Native::operator[](double key)
{
return NerdCore::Global::null;
}
NerdCore::VAR &Native::operator[](const char* key)
{
return NerdCore::Global::null;
}
// Comparation operators
Native Native::operator!() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
bool Native::operator==(const Native &_v1) const { return false; }
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
bool Native::operator!=(const Native &_v1) const { return true; }
bool Native::operator<(const Native &_v1) const { return false; }
bool Native::operator<=(const Native &_v1) const { return true; }
bool Native::operator>(const Native &_v1) const { return false; }
bool Native::operator>=(const Native &_v1) const { return true; }
// Numeric operators
Native Native::operator+() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator-() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator++(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator--(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator+(const Native &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator+=(const Native &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator-(const Native &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator-=(const Native &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator*(const Native &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator*=(const Native &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
// TODO: "**" and "**=" operators
Native Native::operator/(const Native &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator/=(const Native &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator%(const Native &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator%=(const Native &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator&(const Native &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator|(const Native &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator^(const Native &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator~() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator>>(const Native &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator<<(const Native &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator&=(const Native &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator|=(const Native &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator^=(const Native &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator>>=(const Native &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
Native Native::operator<<=(const Native &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Native();
}
// TODO: ">>>" and ">>>=" operators
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/native_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "_meta.h"
namespace NerdCore::Class
{
class Native : public virtual Base
{
public:
// Constructors
Native();
Native(void* val);
// Properties
count_t counter = 1;
int length = 0;
void* value = nullptr;
// Methods
inline void Delete() noexcept;
inline void* Copy() noexcept;
// Native cast
explicit operator bool() const noexcept;
explicit operator double() const noexcept;
explicit operator int() const noexcept;
explicit operator long long() const noexcept;
explicit operator std::string() const noexcept;
// Main operators
NerdCore::VAR const operator[](NerdCore::VAR key) const;
NerdCore::VAR &operator[](NerdCore::VAR key);
NerdCore::VAR &operator[](int key);
NerdCore::VAR &operator[](double key);
NerdCore::VAR &operator[](const char* key);
// Comparation operators
Native operator!() const;
bool operator==(const Native &_v1) const;
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
bool operator!=(const Native &_v1) const;
bool operator<(const Native &_v1) const;
bool operator<=(const Native &_v1) const;
bool operator>(const Native &_v1) const;
bool operator>=(const Native &_v1) const;
// Numeric operators
Native operator+() const;
Native operator-() const;
Native operator++(const int _v1);
Native operator--(const int _v1);
Native operator+(const Native &_v1) const;
Native operator+=(const Native &_v1);
Native operator-(const Native &_v1) const;
Native operator-=(const Native &_v1);
Native operator*(const Native &_v1) const;
Native operator*=(const Native &_v1);
// TODO: "**" and "**=" operators
Native operator/(const Native &_v1) const;
Native operator/=(const Native &_v1);
Native operator%(const Native &_v1) const;
Native operator%=(const Native &_v1);
Native operator&(const Native &_v1) const;
Native operator|(const Native &_v1) const;
Native operator^(const Native &_v1) const;
Native operator~() const;
Native operator>>(const Native &_v1) const;
Native operator<<(const Native &_v1) const;
Native operator&=(const Native &_v1);
Native operator|=(const Native &_v1);
Native operator^=(const Native &_v1);
Native operator>>=(const Native &_v1);
Native operator<<=(const Native &_v1);
// TODO: ">>>" and ">>>=" operators
};
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/native_tpl_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "_meta.h"
namespace NerdCore::Class
{
template<typename T>
class NativeTPL : public virtual Base
{
private:
inline void internalDelete()
{
if(is_ptr)
{
delete value;
}
}
public:
// Constructors
bool is_ptr = true;
int length = 0;
std::string type;
NativeTPL(T val)
{
is_ptr = true;
value = val;
type = "undef";
}
NativeTPL(T val, const char str[])
{
is_ptr = true;
type = str;
value = val;
}
NativeTPL(T val, bool isPtr)
{
is_ptr = isPtr;
value = val;
type = "undef";
}
NativeTPL(T val, const char str[], bool isPtr)
{
is_ptr = isPtr;
value = val;
type = str;
}
// Properties
count_t counter = 1;
T value;
NerdCore::Type::object_t object;
// Methods
inline void Delete() noexcept
{
if (--counter == 0)
{
internalDelete();
delete this;
}
}
inline void* Copy() noexcept
{
counter++;
return this;
}
template<typename Cast>
const inline T operator()(Cast& c) const
{
static_assert(std::is_same<decltype(c), T>::value, "Casting must be same as NativeType");
return value;
}
inline T operator()() const
{
return value;
}
operator bool() const noexcept { return true; }
operator double() const noexcept
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<double>::quiet_NaN();
#endif
}
operator int() const noexcept
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<int>::quiet_NaN();
#endif
}
operator long long() const noexcept
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<long long>::quiet_NaN();
#endif
}
operator std::string() const noexcept
{
return std::string("[native ") + type + std::string("]");
}
// Main operators
NerdCore::VAR const operator[](NerdCore::VAR key) const
{
return NerdCore::Global::null;
}
NerdCore::VAR &operator[](NerdCore::VAR key)
{
return NerdCore::Global::null;
}
NerdCore::VAR &operator[](int key)
{
return NerdCore::Global::null;
}
NerdCore::VAR &operator[](double key)
{
return NerdCore::Global::null;
}
NerdCore::VAR &operator[](const char* key)
{
return NerdCore::Global::null;
}
// Comparation operators
NativeTPL operator!() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
bool operator==(const NativeTPL<T> &_v1) const { return false; }
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
bool operator!=(const NativeTPL<T> &_v1) const { return true; }
bool operator<(const NativeTPL<T> &_v1) const { return false; }
bool operator<=(const NativeTPL<T> &_v1) const { return true; }
bool operator>(const NativeTPL<T> &_v1) const { return false; }
bool operator>=(const NativeTPL<T> &_v1) const { return true; }
// Numeric operators
NativeTPL operator+() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator-() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator++(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator--(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator+(const NativeTPL<T> &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator+=(const NativeTPL<T> &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator-(const NativeTPL<T> &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator-=(const NativeTPL<T> &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator*(const NativeTPL<T> &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator*=(const NativeTPL<T> &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
// TODO: "**" and "**=" operators
NativeTPL operator/(const NativeTPL<T> &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator/=(const NativeTPL<T> &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator%(const NativeTPL<T> &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator%=(const NativeTPL<T> &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator&(const NativeTPL<T> &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator|(const NativeTPL<T> &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator^(const NativeTPL<T> &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator~() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator>>(const NativeTPL<T> &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator<<(const NativeTPL<T> &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator&=(const NativeTPL<T> &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator|=(const NativeTPL<T> &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator^=(const NativeTPL<T> &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator>>=(const NativeTPL<T> &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
NativeTPL operator<<=(const NativeTPL<T> &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NativeTPL();
}
// TODO: ">>>" and ">>>=" operators
};
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/number.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
namespace NerdCore::Class::NUMBER
{
}
================================================
FILE: compiler/native/nerdcore/src/class/number_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
namespace NerdCore::Class::NUMBER
{
}
================================================
FILE: compiler/native/nerdcore/src/class/object.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "object_header.h"
#include <limits>
namespace NerdCore::Class
{
NerdCore::VAR __proxy;
// Constructors
Object::Object() { }
/*
Object::Object(const char* _key, NerdCore::VAR _value)
{
object[_key] = _value;
}
*/
/*
Object::Object(NerdCore::VAR _obj)
{
object = ((NerdCore::Class::Object*)_obj.data.ptr)->object;
}
*/
Object::Object(NerdCore::Type::object_t obj)
{
object = obj;
}
Object::Object(std::initializer_list<NerdCore::Type::pair_t> obj)
{
for (NerdCore::Type::pair_t p : obj)
{
object[p.first] = p.second;
}
}
// Methods
double Object::Size()
{
return object.size();
}
inline void Object::Delete() noexcept
{
if (--counter < 1)
{
delete this;
}
}
inline void Object::jsDelete(const std::string _key) noexcept
{
#ifndef __NERD__OBJECT_VECTOR
object.erase(_key);
#else
for (NerdCore::Type::object_t::iterator it = object.begin() ; it != object.end(); ++it)
{
if (_key.compare(it->first) == 0)
{
object.erase(it);
return;
}
}
#endif
}
inline void* Object::Copy() noexcept
{
counter++;
return this;
}
// Native cast
Object::operator bool() const noexcept { return true; }
Object::operator double() const noexcept
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<double>::quiet_NaN();
#endif
}
Object::operator int() const noexcept
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<int>::quiet_NaN();
#endif
}
Object::operator long long() const noexcept
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<long long>::quiet_NaN();
#endif
}
Object::operator std::string() const noexcept
{
return "[object Object]";
}
// Main operators
NerdCore::VAR const Object::operator[](NerdCore::VAR key) const
{
return NerdCore::Global::null;
}
NerdCore::VAR &Object::GetSet(std::string key)
{
#ifndef __NERD__OBJECT_VECTOR
// if current object[key] is null, we look for the prototypal chain
if(object[key].type == NerdCore::Enum::Type::Null)
{
NerdCore::VAR __proto = object["__proto__"];
while(__proto.type != NerdCore::Enum::Type::Null)
{
if(__proto[key].type != NerdCore::Enum::Type::Null)
{
object[key] = __proto[key];
break;
}
__proto = __proto["__proto__"];
}
}
/*
if(object[key].type == NerdCore::Enum::Type::Function)
{
(__NERD_FUNCTION(object[key]))->object["this"] = NerdCore::VAR(this);
__NERD_FUNCTION(object[key])->bind = bind;
}
*/
return object[key];
#else
for (auto & search : object)
{
if (key.compare(search.first) == 0)
{
return search.second;
}
}
object.push_back(NerdCore::Type::pair_t(key, NerdCore::Global::null));
return object[object.size() - 1].second;
#endif
}
NerdCore::VAR &Object::operator[](NerdCore::VAR key)
{
return Object::GetSet(key);
}
NerdCore::VAR &Object::operator[](int key)
{
std::string _str = std::to_string(key);
return Object::GetSet(_str);
}
NerdCore::VAR &Object::operator[](double key)
{
std::string _str = std::to_string(key);
return Object::GetSet(_str);
}
NerdCore::VAR &Object::operator[](const char* key)
{
return Object::GetSet(key);
}
// Comparation operators
Object Object::operator!() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
bool Object::operator==(const Object &_v1) const { return false; }
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
bool Object::operator!=(const Object &_v1) const { return true; }
bool Object::operator<(const Object &_v1) const { return false; }
bool Object::operator<=(const Object &_v1) const { return true; }
bool Object::operator>(const Object &_v1) const { return false; }
bool Object::operator>=(const Object &_v1) const { return true; }
// Numeric operators
Object Object::operator+() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator-() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator++(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator--(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator+(const Object &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator+=(const Object &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator-(const Object &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator-=(const Object &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator*(const Object &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator*=(const Object &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
// TODO: "**" and "**=" operators
Object Object::operator/(const Object &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator/=(const Object &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator%(const Object &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator%=(const Object &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator&(const Object &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator|(const Object &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator^(const Object &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator~() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator>>(const Object &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator<<(const Object &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator&=(const Object &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator|=(const Object &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator^=(const Object &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator>>=(const Object &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
Object Object::operator<<=(const Object &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return Object();
}
// TODO: ">>>" and ">>>=" operators
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/object_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "_meta.h"
namespace NerdCore::Class
{
class Object : public virtual Base
{
public:
// Constructors
Object();
Object(NerdCore::Type::object_t obj);
Object(std::initializer_list<NerdCore::Type::pair_t>);
//Object(NerdCore::VAR _obj);
// Properties
count_t counter = 0;
bool deleted = false;
//bool hasLazy = false;
NerdCore::Type::object_t object;
void* bind = nullptr;
// Methods
double Size();
inline void Delete() noexcept;
inline void jsDelete(const std::string _key) noexcept;
inline void* Copy() noexcept;
// Native cast
explicit operator bool() const noexcept;
explicit operator double() const noexcept;
explicit operator int() const noexcept;
explicit operator long long() const noexcept;
explicit operator std::string() const noexcept;
// Main operators
inline NerdCore::VAR& GetSet(std::string key);
NerdCore::VAR const operator[](NerdCore::VAR key) const;
NerdCore::VAR &operator[](NerdCore::VAR key);
NerdCore::VAR &operator[](int key);
NerdCore::VAR &operator[](double key);
NerdCore::VAR &operator[](const char* key);
// Comparation operators
Object operator!() const;
bool operator==(const Object &_v1) const;
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
bool operator!=(const Object &_v1) const;
bool operator<(const Object &_v1) const;
bool operator<=(const Object &_v1) const;
bool operator>(const Object &_v1) const;
bool operator>=(const Object &_v1) const;
// Numeric operators
Object operator+() const;
Object operator-() const;
Object operator++(const int _v1);
Object operator--(const int _v1);
Object operator+(const Object &_v1) const;
Object operator+=(const Object &_v1);
Object operator-(const Object &_v1) const;
Object operator-=(const Object &_v1);
Object operator*(const Object &_v1) const;
Object operator*=(const Object &_v1);
// TODO: "**" and "**=" operators
Object operator/(const Object &_v1) const;
Object operator/=(const Object &_v1);
Object operator%(const Object &_v1) const;
Object operator%=(const Object &_v1);
Object operator&(const Object &_v1) const;
Object operator|(const Object &_v1) const;
Object operator^(const Object &_v1) const;
Object operator~() const;
Object operator>>(const Object &_v1) const;
Object operator<<(const Object &_v1) const;
Object operator&=(const Object &_v1);
Object operator|=(const Object &_v1);
Object operator^=(const Object &_v1);
Object operator>>=(const Object &_v1);
Object operator<<=(const Object &_v1);
// TODO: ">>>" and ">>>=" operators
};
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/string.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "string_header.h"
#include <string>
#include <limits>
namespace NerdCore::Class
{
// Constructors
String::String()
{
object["__proto__"] = NerdCore::Global::String["prototype"];
}
String::String(std::string val)
{
object["__proto__"] = NerdCore::Global::String["prototype"];
value = val;
}
String::String(const char* val)
{
object["__proto__"] = NerdCore::Global::String["prototype"];
value = val;
}
// Methods
inline void String::Delete() noexcept
{
if (--counter < 1)
{
delete this;
}
}
inline void* String::Copy() noexcept
{
return new String(value);
}
// Native cast
String::operator bool() const noexcept { return value.size() > 0; }
String::operator double() const noexcept
{
std::string::size_type end;
double res;
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
try
{
res = std::stod(value, &end);
}catch(...){}
#else
res = std::stod(value, &end);
#endif
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return end == value.size() ? res : std::numeric_limits<double>::quiet_NaN();
#endif
}
String::operator int() const noexcept
{
std::string::size_type end;
int res;
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
try
{
res = std::stoi(value, &end, 10);
}catch(...){}
#else
res = std::stoi(value, &end, 10);
#endif
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return end == value.size() ? res : std::numeric_limits<int>::quiet_NaN();
#endif
}
String::operator long long() const noexcept
{
std::string::size_type end;
long long res;
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
try
{
res = std::stoll(value, &end, 10);
}catch(...){}
#else
res = std::stoll(value, &end, 10);
#endif
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return end == value.size() ? res : std::numeric_limits<long long>::quiet_NaN();
#endif
}
String::operator std::string() const noexcept { return value; }
// Main operators
NerdCore::VAR const String::operator[](NerdCore::VAR key) const
{
return NerdCore::Global::null;
}
static NerdCore::Global::var _char = "";
NerdCore::VAR &String::GetSet(NerdCore::VAR keyVar)
{
if(keyVar.type == NerdCore::Enum::Type::Number)
{
int key = (int)keyVar;
if(key > value.size() - 1)
{
return NerdCore::Global::null;
}
else
{
_char = std::string(1, value[key]);
return _char;
}
}
else if(keyVar.type == NerdCore::Enum::Type::String)
{
std::string key = ((NerdCore::Class::String*)(keyVar.data.ptr))->value;
#ifndef __NERD__OBJECT_VECTOR
// if current object[key] is null, we look for the prototypal chain
if(object[key].type == NerdCore::Enum::Type::Null)
{
NerdCore::VAR __proto = object["__proto__"];
while(__proto.type != NerdCore::Enum::Type::Null)
{
if(__proto[key].type != NerdCore::Enum::Type::Null)
{
object[key] = __proto[key];
break;
}
__proto = __proto["__proto__"];
}
}
/*
if(object[key].type == NerdCore::Enum::Type::Function)
{
value.copy((char*)__NERD_FUNCTION(object[key])->bind, value.length());
}
*/
return object[key];
#else
for (auto & search : object)
{
if (key.compare(search.first) == 0)
{
return search.second;
}
}
object.push_back(NerdCore::Type::pair_t(key, NerdCore::Global::null));
return object[object.size() - 1].second;
#endif
}
else
{
return NerdCore::Global::null;
}
}
NerdCore::VAR &String::operator[](NerdCore::VAR key)
{
return String::GetSet(key);
}
NerdCore::VAR &String::operator[](int key)
{
return String::GetSet(key);
}
NerdCore::VAR &String::operator[](double key)
{
return String::GetSet(key);
}
NerdCore::VAR &String::operator[](const char* key)
{
#ifndef __NERD__OBJECT_VECTOR
// if current object[key] is null, we look for the prototypal chain
if(object[key].type == NerdCore::Enum::Type::Null)
{
NerdCore::VAR __proto = object["__proto__"];
while(__proto.type != NerdCore::Enum::Type::Null)
{
if(__proto[key].type != NerdCore::Enum::Type::Null)
{
object[key] = __proto[key];
break;
}
__proto = __proto["__proto__"];
}
}
/*
if(object[key].type == NerdCore::Enum::Type::Function)
{
//__NERD_FUNCTION(object[key])->bind = value.data();
//value.copy((char*)__NERD_FUNCTION(object[key])->bind, value.length());
}
*/
return object[key];
#else
for (auto & search : object)
{
if (key.compare(search.first) == 0)
{
return search.second;
}
}
object.push_back(NerdCore::Type::pair_t(key, NerdCore::Global::null));
return object[object.size() - 1].second;
#endif
}
// Comparation operators
String String::operator!() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
bool String::operator==(const String &_v1) const { return value.compare(_v1.value) == 0; }
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
bool String::operator!=(const String &_v1) const { return value.compare(_v1.value) != 0; }
bool String::operator<(const String &_v1) const { return value.at(0) < _v1.value.at(0); }
bool String::operator<=(const String &_v1) const { return value.at(0) <= _v1.value.at(0); }
bool String::operator>(const String &_v1) const { return value.at(0) > _v1.value.at(0); }
bool String::operator>=(const String &_v1) const { return value.at(0) >= _v1.value.at(0); }
// Numeric operators
String String::operator+() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator-() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator++(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator--(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator+(const String &_v1) const { return value + _v1.value; }
String String::operator+=(const String &_v1) { value += _v1.value; return *this; }
String String::operator-(const String &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator-=(const String &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator*(const String &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator*=(const String &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
// TODO: "**" and "**=" operators
String String::operator/(const String &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator/=(const String &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator%(const String &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator%=(const String &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator&(const String &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator|(const String &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator^(const String &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator~() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator>>(const String &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator<<(const String &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator&=(const String &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator|=(const String &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator^=(const String &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator>>=(const String &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
String String::operator<<=(const String &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return String();
}
// TODO: ">>>" and ">>>=" operators
/*** STRING METHODS ***/
NerdCore::VAR String::toString(NerdCore::VAR* _args, int _length) const
{
return value;
}
NerdCore::VAR String::split(NerdCore::VAR* _args, int _length) const
{
NerdCore::VAR _needle;
if (_length > 0)
_needle = _args[0];
else
return NerdCore::VAR(this->value);
NerdCore::VAR _arr = new NerdCore::Class::Array();
char *_v = (char *)malloc(strlen(this->value.c_str()) + 1);
strcpy(_v, this->value.c_str());
char *delim = (char *)malloc(strlen(((std::string)_needle).c_str()) + 1);
strcpy(delim, ((std::string)_needle).c_str());
char *ptr = strtok(_v, delim);
int i = 0;
char *_new;
while (ptr != NULL)
{
_new = (char *)malloc(strlen(ptr) + 1);
strcpy(_new, ptr);
__NERD_Object_Set(i, _new, _arr);
free(_new);
ptr = strtok(NULL, delim);
i++;
}
free(delim);
return _arr;
}
NerdCore::VAR String::indexOf(NerdCore::VAR* _args, int _length) const
{
NerdCore::VAR _needle;
if (_length > 0)
_needle = _args[0];
else
return NerdCore::VAR(-1);
std::string::size_type loc = this->value.find((std::string)_needle, 0);
if (loc != std::string::npos)
{
return NerdCore::VAR((int)loc);
}
return NerdCore::VAR(-1);
}
NerdCore::VAR String::lastIndexOf(NerdCore::VAR* _args, int _length) const
{
NerdCore::VAR _needle;
if (_length > 0)
_needle = _args[0];
else
return NerdCore::VAR(-1);
std::string::size_type loc = this->value.find_last_of((std::string)_needle, 0);
if (loc != std::string::npos)
{
return NerdCore::VAR((int)loc);
}
return NerdCore::VAR(-1);
}
NerdCore::VAR String::search(NerdCore::VAR* _args, int _length) const
{
NerdCore::VAR _needle;
if (_length > 0)
_needle = _args[0];
else
return NerdCore::VAR(-1);
std::string::size_type loc = this->value.find((std::string)_needle, 0);
if (loc != std::string::npos)
{
return NerdCore::VAR((int)loc);
}
return NerdCore::VAR(-1);
}
NerdCore::VAR String::slice(NerdCore::VAR* _args, int _length) const
{
NerdCore::VAR _start;
NerdCore::VAR _end;
if (_length > 0)
_start = _args[0];
else
return NerdCore::VAR(this->value);
if (_length > 1)
_end = _args[1];
if (_end.type == NerdCore::Enum::Type::Null)
return NerdCore::VAR(this->value.substr((int)_start, std::string::npos));
int _endIndex = (int)_end - (int)_start;
return NerdCore::VAR(this->value.substr((int)_start, _endIndex));
}
NerdCore::VAR String::substr(NerdCore::VAR* _args, int _length) const
{
NerdCore::VAR _start;
NerdCore::VAR _end;
if (_length > 0)
_start = _args[0];
else
return NerdCore::VAR(this->value);
if (_length > 1)
_end = _args[1];
if (_end.type == NerdCore::Enum::Type::Null)
return NerdCore::VAR(this->value.substr((int)_start, std::string::npos));
return NerdCore::VAR(this->value.substr((int)_start, (int)_end));
}
NerdCore::VAR String::replace(NerdCore::VAR* _args, int _length) const
{
NerdCore::VAR _search;
NerdCore::VAR _replace;
if (_length > 0)
_search = _args[0];
else
return NerdCore::VAR(this->value);
if (_length > 1)
_replace = _args[1];
size_t start_pos = this->value.find((std::string)_search);
if (start_pos == std::string::npos)
{
return NerdCore::VAR(value);
}
std::string _new = value;
return NerdCore::VAR(_new.replace(start_pos, ((std::string)_search).length(), (std::string)_replace));
}
/* END STRING METHODS */
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/string_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "_meta.h"
namespace NerdCore::Class
{
class String : public virtual Base
{
public:
// Constructors
String();
String(std::string val);
String(const char* val);
// Properties
std::string value;
NerdCore::Type::object_t object;
NerdCore::VAR length;
void* bind = nullptr;
count_t counter = 1;
// Methods
inline void Delete() noexcept;
inline void* Copy() noexcept;
// Native cast
explicit operator bool() const noexcept;
explicit operator double() const noexcept;
explicit operator int() const noexcept;
explicit operator long long() const noexcept;
explicit operator std::string() const noexcept;
// Main operators
inline NerdCore::VAR& GetSet(NerdCore::VAR keyVar);
NerdCore::VAR const operator[](NerdCore::VAR key) const;
NerdCore::VAR &operator[](NerdCore::VAR key);
NerdCore::VAR &operator[](int key);
NerdCore::VAR &operator[](double key);
NerdCore::VAR &operator[](const char* key);
// Comparation operators
template <class... Args>
NerdCore::VAR operator() (Args... args)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::Global::null;
}
String operator!() const;
bool operator==(const String &_v1) const;
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
bool operator!=(const String &_v1) const;
bool operator<(const String &_v1) const;
bool operator<=(const String &_v1) const;
bool operator>(const String &_v1) const;
bool operator>=(const String &_v1) const;
// Numeric operators
String operator+() const;
String operator-() const;
String operator++(const int _v1);
String operator--(const int _v1);
String operator+(const String &_v1) const;
String operator+=(const String &_v1);
String operator-(const String &_v1) const;
String operator-=(const String &_v1);
String operator*(const String &_v1) const;
String operator*=(const String &_v1);
// TODO: "**" and "**=" operators
String operator/(const String &_v1) const;
String operator/=(const String &_v1);
String operator%(const String &_v1) const;
String operator%=(const String &_v1);
String operator&(const String &_v1) const;
String operator|(const String &_v1) const;
String operator^(const String &_v1) const;
String operator~() const;
String operator>>(const String &_v1) const;
String operator<<(const String &_v1) const;
String operator&=(const String &_v1);
String operator|=(const String &_v1);
String operator^=(const String &_v1);
String operator>>=(const String &_v1);
String operator<<=(const String &_v1);
// TODO: ">>>" and ">>>=" operators
/*** STRING METHODS ***/
NerdCore::VAR toString(NerdCore::VAR* _args, int _length) const;
NerdCore::VAR split(NerdCore::VAR* _args, int _length) const;
NerdCore::VAR indexOf(NerdCore::VAR* _args, int _length) const;
NerdCore::VAR lastIndexOf(NerdCore::VAR* _args, int _length) const;
NerdCore::VAR search(NerdCore::VAR* _args, int _length) const;
NerdCore::VAR slice(NerdCore::VAR* _args, int _length) const;
NerdCore::VAR substr(NerdCore::VAR* _args, int _length) const;
NerdCore::VAR replace(NerdCore::VAR* _args, int _length) const;
/* END STRING METHODS */
};
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/struct.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "struct_header.h"
#include <functional>
#include <limits>
namespace NerdCore::Class
{
// Constructors
Struct::Struct() {}
Struct::Struct(void *val)
{
value = val;
}
Struct::Struct(void *val, void* fn)
{
value = val;
Clean = (NerdCore::Type::clean_struct*)fn;
}
// Methods
inline void Struct::Delete() noexcept
{
if (--counter == 0)
{
(*static_cast<NerdCore::Type::clean_struct *>(Clean))(value);
delete Clean;
delete this;
}
}
inline void* Struct::Copy() noexcept
{
counter++;
return this;
}
// Native cast
Struct::operator bool() const noexcept { return true; }
Struct::operator double() const noexcept
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<double>::quiet_NaN();
#endif
}
Struct::operator int() const noexcept
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<int>::quiet_NaN();
#endif
}
Struct::operator long long() const noexcept
{
#ifdef __NERD_ENV_ARDUINO
return 0;
#else
return std::numeric_limits<long long>::quiet_NaN();
#endif
}
Struct::operator std::string() const noexcept
{
return "[native struct]";
}
// Main operators
NerdCore::VAR const Struct::operator[](NerdCore::VAR key) const
{
return NerdCore::Global::null;
}
NerdCore::VAR &Struct::operator[](NerdCore::VAR key)
{
#ifndef __NERD__OBJECT_VECTOR
return object[(std::string)key];
#else
for (auto & search : object)
{
if (((std::string)key).compare(search.first) == 0)
{
return search.second;
}
}
object.push_back(NerdCore::Type::pair_t((std::string)key, NerdCore::VAR()));
return object[object.size() - 1].second;
#endif
}
NerdCore::VAR &Struct::operator[](int key)
{
#ifndef __NERD__OBJECT_VECTOR
return object[std::to_string(key)];
#else
std::string _str = std::to_string(key);
for (auto & search : object)
{
if (_str.compare(search.first) == 0)
{
return search.second;
}
}
object.push_back(NerdCore::Type::pair_t(_str, NerdCore::VAR()));
return object[object.size() - 1].second;
#endif
}
NerdCore::VAR &Struct::operator[](double key)
{
#ifndef __NERD__OBJECT_VECTOR
return object[std::to_string(key)];
#else
std::string _str = std::to_string(key);
for (auto & search : object)
{
if (_str.compare(search.first) == 0)
{
return search.second;
}
}
object.push_back(NerdCore::Type::pair_t(_str, NerdCore::VAR()));
return object[object.size() - 1].second;
#endif
}
NerdCore::VAR &Struct::operator[](const char* key)
{
std::string str = key;
#ifndef __NERD__OBJECT_VECTOR
return object[str];
#else
for (auto & search : object)
{
if (str.compare(search.first) == 0)
{
return search.second;
}
}
object.push_back(NerdCore::Type::pair_t(str, NerdCore::VAR()));
return object[object.size() - 1].second;
#endif
}
// Comparation operators
NerdCore::VAR Struct::operator!() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
bool Struct::operator==(const NerdCore::VAR &_v1) const { return false; }
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
bool Struct::operator!=(const NerdCore::VAR &_v1) const { return true; }
bool Struct::operator<(const NerdCore::VAR &_v1) const { return false; }
bool Struct::operator<=(const NerdCore::VAR &_v1) const { return true; }
bool Struct::operator>(const NerdCore::VAR &_v1) const { return false; }
bool Struct::operator>=(const NerdCore::VAR &_v1) const { return true; }
// Numeric operators
NerdCore::VAR Struct::operator+() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator-() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator++(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator--(const int _v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator+(const NerdCore::VAR &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator+=(const NerdCore::VAR &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator-(const NerdCore::VAR &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator-=(const NerdCore::VAR &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator*(const NerdCore::VAR &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator*=(const NerdCore::VAR &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
// TODO: "**" and "**=" operators
NerdCore::VAR Struct::operator/(const NerdCore::VAR &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator/=(const NerdCore::VAR &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator%(const NerdCore::VAR &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator%=(const NerdCore::VAR &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator&(const NerdCore::VAR &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator|(const NerdCore::VAR &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator^(const NerdCore::VAR &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator~() const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator>>(const NerdCore::VAR &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator<<(const NerdCore::VAR &_v1) const
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator&=(const NerdCore::VAR &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator|=(const NerdCore::VAR &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator^=(const NerdCore::VAR &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator>>=(const NerdCore::VAR &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
NerdCore::VAR Struct::operator<<=(const NerdCore::VAR &_v1)
{
#if !defined(__NERD_ENV_ARDUINO) && !defined(__NERD_ENV_ESP32)
throw InvalidTypeException();
#endif
return NerdCore::VAR();
}
// TODO: ">>>" and ">>>=" operators
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/class/struct_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "_meta.h"
namespace NerdCore::Class
{
class Struct : public virtual Base
{
public:
// Constructors
Struct();
Struct(void* val);
Struct(void* val, void* fn);
// Properties
count_t counter = 1;
void* value = nullptr;
NerdCore::Type::object_t object;
NerdCore::Type::clean_struct* Clean;
// Methods
inline void Delete() noexcept;
inline void StructDelete() noexcept;
inline void* Copy() noexcept;
// Struct cast
explicit operator bool() const noexcept;
explicit operator double() const noexcept;
explicit operator int() const noexcept;
explicit operator long long() const noexcept;
explicit operator std::string() const noexcept;
// Main operators
NerdCore::VAR const operator[](NerdCore::VAR key) const;
NerdCore::VAR &operator[](NerdCore::VAR key);
NerdCore::VAR &operator[](int key);
NerdCore::VAR &operator[](double key);
NerdCore::VAR &operator[](const char* key);
template <class... Args>
NerdCore::VAR operator()(Args... args) const
{
auto _args = NerdCore::Type::vector_t{(NerdCore::VAR)args...};
return (*static_cast<std::function<NerdCore::VAR(NerdCore::Type::vector_t)> *>(value))(_args);
}
// Comparation operators
NerdCore::VAR operator!() const;
bool operator==(const NerdCore::VAR &_v1) const;
// === emulated with __NERD_EQUAL_VALUE_AND_TYPE
// !== emulated with __NERD_NOT_EQUAL_VALUE_AND_TYPE
bool operator!=(const NerdCore::VAR &_v1) const;
bool operator<(const NerdCore::VAR &_v1) const;
bool operator<=(const NerdCore::VAR &_v1) const;
bool operator>(const NerdCore::VAR &_v1) const;
bool operator>=(const NerdCore::VAR &_v1) const;
// Numeric operators
NerdCore::VAR operator+() const;
NerdCore::VAR operator-() const;
NerdCore::VAR operator++(const int _v1);
NerdCore::VAR operator--(const int _v1);
NerdCore::VAR operator+(const NerdCore::VAR &_v1) const;
NerdCore::VAR operator+=(const NerdCore::VAR &_v1);
NerdCore::VAR operator-(const NerdCore::VAR &_v1) const;
NerdCore::VAR operator-=(const NerdCore::VAR &_v1);
NerdCore::VAR operator*(const NerdCore::VAR &_v1) const;
NerdCore::VAR operator*=(const NerdCore::VAR &_v1);
// TODO: "**" and "**=" operators
NerdCore::VAR operator/(const NerdCore::VAR &_v1) const;
NerdCore::VAR operator/=(const NerdCore::VAR &_v1);
NerdCore::VAR operator%(const NerdCore::VAR &_v1) const;
NerdCore::VAR operator%=(const NerdCore::VAR &_v1);
NerdCore::VAR operator&(const NerdCore::VAR &_v1) const;
NerdCore::VAR operator|(const NerdCore::VAR &_v1) const;
NerdCore::VAR operator^(const NerdCore::VAR &_v1) const;
NerdCore::VAR operator~() const;
NerdCore::VAR operator>>(const NerdCore::VAR &_v1) const;
NerdCore::VAR operator<<(const NerdCore::VAR &_v1) const;
NerdCore::VAR operator&=(const NerdCore::VAR &_v1);
NerdCore::VAR operator|=(const NerdCore::VAR &_v1);
NerdCore::VAR operator^=(const NerdCore::VAR &_v1);
NerdCore::VAR operator>>=(const NerdCore::VAR &_v1);
NerdCore::VAR operator<<=(const NerdCore::VAR &_v1);
// TODO: ">>>" and ">>>=" operators
};
} // namespace NerdCore::Class
================================================
FILE: compiler/native/nerdcore/src/classes.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#include "./class/array.h"
#include "./class/function.h"
#include "./class/native.h"
#include "./class/struct.h"
#include "./class/fixed_array.h"
#include "./class/object.h"
#include "./class/string.h"
================================================
FILE: compiler/native/nerdcore/src/classes_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#pragma once
#define __INC_Nerd_CLASSES_HEADER
#include "./class/base_header.h"
#include "./class/array_header.h"
#include "./class/object_header.h"
#include "./class/function_header.h"
#include "./class/native_header.h"
//#include "./class/native_tpl_header.h"
#include "./class/struct_header.h"
#include "./class/fixed_array_header.h"
#include "./class/string_header.h"
================================================
FILE: compiler/native/nerdcore/src/enum.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
namespace NerdCore::Enum
{
enum Type
{
Null,
Boolean,
Number,
String,
Native,
NativeTPL,
Struct,
FixedArray,
Array,
Object,
Function,
};
}
================================================
FILE: compiler/native/nerdcore/src/functions.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
NerdCore::VAR getArguments(int argc, char** argv)
{
NerdCore::VAR __NJS_ARGS = new NerdCore::Class::Array();
for( int i = 0; i < argc; i++)
{
__NJS_ARGS[i] = argv[i];
}
return __NJS_ARGS;
}
================================================
FILE: compiler/native/nerdcore/src/functions_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
NerdCore::VAR __NERD_Log_Console(NerdCore::VAR _var);
NerdCore::VAR __NERD_Object_Keys(NerdCore::VAR _var);
NerdCore::VAR __NERD_Object_Stringify(NerdCore::VAR _var);
NerdCore::VAR __NERD_Object_Stringify(NerdCore::VAR _var, bool _bracket);
NerdCore::VAR __NERD_Object_Clone(NerdCore::VAR& _var);
NerdCore::VAR __NERD_Object_Set(std::string _index, NerdCore::VAR _value, NerdCore::Type::object_t *_obj);
std::string __NERD_DOUBLE_TO_STRING(double _var);
/*** String MANIPULATION ***/
#ifdef __NERD_ENV_ARDUINO
namespace std
{
template <typename m>
string to_string(m _var)
{
std::stringstream output;
output << _var;
return output.str();
}
int isnan(double __x)
{
return ::isnan(__x);
}
inline int isfinite(double __x)
{
return ::isfinite(__x);
}
inline int signbit(double __x)
{
return ::signbit(__x);
}
inline double stod(std::string _str, std::string::size_type* sz)
{
*sz = _str.length();
return String(_str.c_str()).toFloat();
}
inline int stoi(std::string _str, std::string::size_type* sz, int _base)
{
*sz = _str.length();
return String(_str.c_str()).toInt();
}
inline long long stoll(std::string _str, std::string::size_type* sz, int _base)
{
*sz = _str.length();
return atol(_str.c_str());
}
}
template <typename m, typename n>
m remainder(m _dividend, n _divisor)
{
m quotient = (int)_dividend / (int)_divisor;
m remainder = (int)_dividend % (int)_divisor;
return remainder;
}
#endif
template <typename m, typename n>
std::string __NERD_Concat_To_Str(m _left, n _right)
{
std::stringstream output;
output << _left << _right;
return output.str();
}
/* END String MANIPULATION */
/*** Number MANIPULATION ***/
template <typename m>
int __NERD_Str_To_Int(m _left)
{
int out;
std::stringstream output;
output << _left;
output >> out;
return out;
}
template <typename m>
double __NERD_Str_To_Double(m _left)
{
double out;
std::stringstream output;
output << _left;
output >> out;
return out;
}
/* END Number MANIPULATION */
NerdCore::VAR getArguments(int argc, char** argv);
================================================
FILE: compiler/native/nerdcore/src/macro.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
/*** HELPERS ***/
#define __NERD_GET_String(_var) _var.get().s->value
#define __NERD_Create_Boolean(_value) NerdCore::VAR(NerdCore::Enum::Type::Boolean, _value)
#define __NERD_Create_Number(_value) NerdCore::VAR(_value)
#define __NERD_Create_Function(_value) NerdCore::VAR(NerdCore::Enum::Type::Function, _value)
#define __NERD_Create_Undefined() NerdCore::VAR()
#define __NERD_Create_String(_value) NerdCore::VAR(_value)
#define __NERD_Create_Infinity() NerdCore::VAR(std::numeric_limits<double>::infinity)
#define __NERD_Create_Null() NerdCore::VAR(NerdCore::Enum::Type::Null, 0)
#define __NERD_Create_Struct(_value) NerdCore::VAR(new _value(), new NerdCore::Type::clean_struct([](void* _ptr){ delete (_value*)_ptr;}))
#define __NERD_Create_FixedArray(_length) NerdCore::VAR(new NerdCore::Class::FixedArray(_length))
#define __NERD_Create_Lambda(name) NerdCore::Type::function_t* name = new NerdCore::Type::function_t([](NerdCore::VAR& __NERD_THIS, NerdCore::VAR* __NERD_VARARGS, int __NERD_VARLENGTH)
#define __NERD_Create_Ptr_Scoped_Anon(__CONTENT__) new NerdCore::Type::function_t([&](NerdCore::VAR& __NERD_THIS, NerdCore::VAR* __NERD_VARARGS, int __NERD_VARLENGTH) mutable -> NerdCore::Global::var { __CONTENT__ })
#define __NERD_Create_Ptr_Scoped_Copy_Anon(__CONTENT__) new NerdCore::Type::function_t([=](NerdCore::VAR& __NERD_THIS, NerdCore::VAR* __NERD_VARARGS, int __NERD_VARLENGTH) mutable -> NerdCore::Global::var { __CONTENT__ })
#define __NERD_Create_Ptr_Scoped_Copy_Anon_With_Ref(__FN__, __CONTENT__) new NerdCore::Type::function_t([=, &__FN__](NerdCore::VAR& __NERD_THIS, NerdCore::VAR* __NERD_VARARGS, int __NERD_VARLENGTH) mutable -> NerdCore::Global::var { __CONTENT__ })
#define __NERD_Create_Ptr_Unscoped_With_Copy(__FN__, __CONTENT__) new NerdCore::Type::function_t([__FN__](NerdCore::VAR& __NERD_THIS, NerdCore::VAR* __NERD_VARARGS, int __NERD_VARLENGTH) mutable -> NerdCore::Global::var { __CONTENT__ })
#define __NERD_Create_Ptr_Unscoped_Anon(__CONTENT__) new NerdCore::Type::function_t([](NerdCore::VAR& __NERD_THIS, NerdCore::VAR* __NERD_VARARGS, int __NERD_VARLENGTH) -> NerdCore::Global::var{ __CONTENT__ })
#define __NERD_Create_Var_Scoped_Anon(__CONTENT__) NerdCore::VAR(NerdCore::Enum::Type::Function, __NERD_Create_Ptr_Scoped_Anon(__CONTENT__))
#define __NERD_Create_Var_Unscoped_Anon(__CONTENT__) NerdCore::VAR(NerdCore::Enum::Type::Function, __NERD_Create_Ptr_Unscoped_Anon(__CONTENT__))
#define __NERD_Create_Var_Scoped_Copy_Anon(__CONTENT__) NerdCore::VAR(NerdCore::Enum::Type::Function, __NERD_Create_Ptr_Scoped_Copy_Anon(__CONTENT__))
#define __NERD_Create_Var_Unscoped_With_Copy(__FN__, __CONTENT__) NerdCore::VAR(NerdCore::Enum::Type::Function, __NERD_Create_Ptr_Unscoped_With_Copy(__FN__, __CONTENT__))
#define __NERD_Create_Var_Scoped_Copy_Anon_With_Ref(__FN__, __CONTENT__) NerdCore::VAR(NerdCore::Enum::Type::Function, __NERD_Create_Ptr_Scoped_Copy_Anon_With_Ref(__FN__, __CONTENT__))
#define __NERD_Init_Int(_name, _value) int _name = _value
#define __NERD_Init_Double(_name, _value) double _name = _value
#define __NERD_Init_String(_name, _value) std::string _name = _value
#define __NERD_EXCEPTION_PARAMETER NerdCore::VAR &e
#define finally ;
#define __NERD_Throw_Error(_err) NerdCore::VAR(NerdCore::VAR(_err) + NerdCore::VAR(", line: ") + std::to_string(__LINE__) + NerdCore::VAR(", file: ") + NerdCore::VAR(__FILE__))
#define __NERD_Boolean_TRUE __NERD_Create_Boolean(true)
#define __NERD_Boolean_FALSE __NERD_Create_Boolean(false)
#define __NERD_FAST_INT double
#define __NERD_CreateMethodToClass(_name, _fn) __NERD_Object_Set(_name, __NERD_Create_Var_Scoped_Anon( return _fn(NerdCore::VAR& __NERD_THIS, __NERD_VARARGS, __NERD_VARLENGTH); ), &object);
#define __NERD_NEW(_fn) ((NerdCore::Class::Function*)_fn.data.ptr)->New
#define __NERD_Access_Struct(_exp, _name) (*(_name*)((NerdCore::Class::Struct*)_exp.data.ptr)->value)
#define arguments() new NerdCore::Class::FixedArray(__NERD_VARARGS, __NERD_VARLENGTH);
//#define __NERD_Native_Ptr(_var, _type) ((_type)((NerdCore::Class::NativeTPL<_type>*)_var.data.ptr)->value)
#define __NERD_OBJECT(_var) ((NerdCore::Class::Object*)_var.data.ptr)
#define __NERD_ARRAY(_var) ((NerdCore::Class::Array*)_var.data.ptr)
#define __NERD_FUNCTION(_var) ((NerdCore::Class::Function*)_var.data.ptr)
#define __NERD_BIND(_var, _function, _bind) _var = _function;((NerdCore::Class::Function*)_var.data.ptr)->bind = _bind;
#define Prototype() __NERD_Create_Var_Scoped_Copy_Anon( return __NERD_THIS; )
================================================
FILE: compiler/native/nerdcore/src/native/double.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
NerdCore::VAR operator+(double _i, NerdCore::VAR _v)
{
if(_v.type == NerdCore::Enum::Type::String) return __NERD_DOUBLE_TO_STRING(_i) + (std::string)_v;
else return _i + (double)_v;
}
void operator+=(double& _i, NerdCore::VAR _v)
{
_i += (double)_v;
}
double operator-(double _i, NerdCore::VAR _v)
{
if(_v.type == NerdCore::Enum::Type::String) return std::numeric_limits<double>::quiet_NaN();
return _i - (double)_v;
}
void operator-=(double& _i, NerdCore::VAR _v)
{
_i -= (double)_v;
}
double operator*(double _i, NerdCore::VAR _v)
{
if(_v.type == NerdCore::Enum::Type::String) return std::numeric_limits<double>::quiet_NaN();
return _i * (double)_v;
}
void operator*=(double& _i, NerdCore::VAR _v)
{
_i *= (double)_v;
}
double operator/(double _i, NerdCore::VAR _v)
{
if(_v.type == NerdCore::Enum::Type::String) return std::numeric_limits<double>::quiet_NaN();
return _i / (double)_v;
}
void operator/=(double& _i, NerdCore::VAR _v)
{
_i /= _v;
}
double operator%(double _i, NerdCore::VAR _v)
{
return (int)_i % (int)_v;
}
void operator%=(double& _i, NerdCore::VAR _v)
{
_i %= _v;
}
double operator==(double _i, NerdCore::VAR _v)
{
return _i == (double)_v;
}
double operator!=(double _i, NerdCore::VAR _v)
{
return _i != (double)_v;
}
double operator>(double _i, NerdCore::VAR _v)
{
return _i > (double)_v;
}
double operator>=(double _i, NerdCore::VAR _v)
{
return _i >= (double)_v;
}
double operator<(double _i, NerdCore::VAR _v)
{
return _i < (double)_v;
}
double operator<=(double _i, NerdCore::VAR _v)
{
return _i <= (double)_v;
}
================================================
FILE: compiler/native/nerdcore/src/native/double_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
NerdCore::VAR operator+(double _i, NerdCore::VAR _v);
void operator+=(double& _i, NerdCore::VAR _v);
double operator-(double _i, NerdCore::VAR _v);
void operator-=(double& _i, NerdCore::VAR _v);
double operator*(double _i, NerdCore::VAR _v);
void operator*=(double& _i, NerdCore::VAR _v);
double operator/(double _i, NerdCore::VAR _v);
void operator/=(double& _i, NerdCore::VAR _v);
double operator%(double _i, NerdCore::VAR _v);
void operator%=(double& _i, NerdCore::VAR _v);
double operator==(double _i, NerdCore::VAR _v);
double operator!=(double _i, NerdCore::VAR _v);
double operator>(double _i, NerdCore::VAR _v);
double operator>=(double _i, NerdCore::VAR _v);
double operator<(double _i, NerdCore::VAR _v);
double operator<=(double _i, NerdCore::VAR _v);
================================================
FILE: compiler/native/nerdcore/src/native/int.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
NerdCore::VAR operator+(int _i, NerdCore::VAR _v)
{
if(_v.type == NerdCore::Enum::Type::String) return __NERD_DOUBLE_TO_STRING(_i) + (std::string)_v;
else return _i + (double)_v;
}
void operator+=(int& _i, NerdCore::VAR _v)
{
_i += (double)_v;
}
double operator-(int _i, NerdCore::VAR _v)
{
return _i - (double)_v;
}
void operator-=(int& _i, NerdCore::VAR _v)
{
_i -= (double)_v;
}
double operator*(int _i, NerdCore::VAR _v)
{
return _i * (double)_v;
}
void operator*=(int& _i, NerdCore::VAR _v)
{
_i *= _v;
}
double operator/(int _i, NerdCore::VAR _v)
{
return _i / (double)_v;
}
void operator/=(int& _i, NerdCore::VAR _v)
{
_i /= _v;
}
double operator%(int _i, NerdCore::VAR _v)
{
return (int)_i % (int)_v;
}
void operator%=(int& _i, NerdCore::VAR _v)
{
_i %= _v;
}
double operator==(int _i, NerdCore::VAR _v)
{
return _i == (double)_v;
}
double operator!=(int _i, NerdCore::VAR _v)
{
return _i != (double)_v;
}
double operator>(int _i, NerdCore::VAR _v)
{
return _i > (double)_v;
}
double operator>=(int _i, NerdCore::VAR _v)
{
return _i >= (double)_v;
}
double operator<(int _i, NerdCore::VAR _v)
{
return _i < (double)_v;
}
double operator<=(int _i, NerdCore::VAR _v)
{
return _i <= (double)_v;
}
================================================
FILE: compiler/native/nerdcore/src/native/int_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
NerdCore::VAR operator+(int _i, NerdCore::VAR _v);
void operator+=(int& _i, NerdCore::VAR _v);
double operator-(int _i, NerdCore::VAR _v);
void operator-=(int& _i, NerdCore::VAR _v);
double operator*(int _i, NerdCore::VAR _v);
void operator*=(int& _i, NerdCore::VAR _v);
double operator/(int _i, NerdCore::VAR _v);
void operator/=(int& _i, NerdCore::VAR _v);
double operator%(int _i, NerdCore::VAR _v);
void operator%=(int& _i, NerdCore::VAR _v);
double operator==(int _i, NerdCore::VAR _v);
double operator!=(int _i, NerdCore::VAR _v);
double operator>(int _i, NerdCore::VAR _v);
double operator>=(int _i, NerdCore::VAR _v);
double operator<(int _i, NerdCore::VAR _v);
double operator<=(int _i, NerdCore::VAR _v);
================================================
FILE: compiler/native/nerdcore/src/native.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#include "native/int.h"
#include "native/double.h"
================================================
FILE: compiler/native/nerdcore/src/native_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#include "native/int_header.h"
#include "native/double_header.h"
================================================
FILE: compiler/native/nerdcore/src/nerd.cpp
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#include "nerd.hpp"
#include "functions.h"
#include "native.h"
#include "values.h"
#include "class/number.h"
#include "var.h"
#include "objmgmt.h"
#include "classes.h"
#include "operator.h"
#include "stdfn.h"
================================================
FILE: compiler/native/nerdcore/src/nerd.hpp
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#define _USE_MATH_DEFINES
#include <cmath>
#include <string>
#include <iostream>
#include <cstring>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sstream>
#include <vector>
#include <memory>
#include <iomanip>
#define _USE_MATH_DEFINES
#include <stdarg.h>
#include <tuple>
#include <bitset>
#ifdef __NERD_ENV_ARDUINO
#include <util/delay.h>
#include <WString.h>
#include <new.h>
#include <time.h>
#include <nonstd-function.h>
#include <string_view>
#include <math.h>
#undef max
#undef min
#include <limits>
#else
#include <functional>
#include <cmath>
#include <limits>
#include <mutex>
#include <chrono>
#include <thread>
#endif
#include "enum.h"
#include "macro.h"
namespace NerdCore
{
struct VAR;
namespace Class
{
class Base;
class Undefined;
class Boolean;
class String;
class Array;
class Object;
class Function;
class Native;
class Struct;
class FixedArray;
//template<typename T>
//class NativeTPL;
}
} // namespace NerdCore
#include "type_header.h"
#include "var_header.h"
#include "values_header.h"
#include "functions_header.h"
#include "classes_header.h"
#include "native_header.h"
#include "class/number_header.h"
#include "objmgmt_header.h"
#include "operator_header.h"
#include "stdfn_header.h"
================================================
FILE: compiler/native/nerdcore/src/objmgmt.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
NerdCore::VAR __NERD_delete(NerdCore::VAR _left, NerdCore::VAR _right)
{
if(_left.type == NerdCore::Enum::Type::Object)
{
((NerdCore::Class::Object*)_left.data.ptr)->jsDelete(_right);
return __NERD_Boolean_TRUE;
}
else if(_left.type == NerdCore::Enum::Type::Array)
{
((NerdCore::Class::Array*)_left.data.ptr)->jsDelete(_right);
return __NERD_Boolean_TRUE;
}
else if(_left.type == NerdCore::Enum::Type::Function)
{
((NerdCore::Class::Function*)_left.data.ptr)->jsDelete(_right);
return __NERD_Boolean_TRUE;
}
return __NERD_Boolean_FALSE;
}
/*** ***/
#ifndef __NERD__OBJECT_VECTOR
NerdCore::VAR __NERD_Object_Set(std::string _index, NerdCore::VAR _value, NerdCore::Type::object_t *_obj)
{
if (_value.type == NerdCore::Enum::Type::String)
{
(*_obj)[_index] = new NerdCore::Class::String((std::string)_value);
}
else
{
(*_obj)[_index].data.ptr = _value.data.ptr;
}
return NerdCore::Global::null;
}
#else
NerdCore::VAR __NERD_Object_Set(std::string _index, NerdCore::VAR _value, NerdCore::Type::object_t *_obj)
{
int _j = (*_obj).size();
for (int _i = 0; _i < _j; _i++)
{
if (_index.compare((*_obj)[_i].first) == 0)
{
if (_value.type == NerdCore::Enum::Type::String)
{
(*_obj)[_i].second = new NerdCore::Class::String((std::string)_value);
}
else
{
(*_obj)[_i].second.data.ptr = _value.data.ptr;
}
return NerdCore::Global::null;
}
}
(*_obj).push_back(NerdCore::Type::pair_t(_index, _value));
return NerdCore::Global::null;
}
#endif
/**/
NerdCore::VAR __NERD_Object_Set(NerdCore::VAR _index, NerdCore::VAR _value, NerdCore::VAR _array)
{
if (_array.type == NerdCore::Enum::Type::Array && _index.type == NerdCore::Enum::Type::Number)
{
if (((NerdCore::Class::Array*)_array.data.ptr)->value.size() <= (int)_index.data.number)
{
((NerdCore::Class::Array*)_array.data.ptr)->value.resize( (int)_index.data.number + 1);
}
((NerdCore::Class::Array*)_array.data.ptr)->value.at( (int)_index.data.number ) = _value;
return NerdCore::Global::null;
}
else if (_array.type == NerdCore::Enum::Type::Object || _array.type == NerdCore::Enum::Type::String || _array.type == NerdCore::Enum::Type::Function || _array.type == NerdCore::Enum::Type::Array || _array.type == NerdCore::Enum::Type::Native)
{
NerdCore::Type::object_t *_obj;
if (_array.type == NerdCore::Enum::Type::Object)
_obj = &((NerdCore::Class::Object*)_array.data.ptr)->object;
else
return NerdCore::Global::null;
return __NERD_Object_Set((std::string)_index, _value, _obj);
}
return NerdCore::Global::null;
}
/* typeof */
const std::string _array[] = {"null", "boolean", "number", "string", "native", "native", "struct", "fixed_array", "array", "object", "function" };
std::string type_of(NerdCore::Global::var _var)
{
return _array[_var.type];
}
std::string typeof(NerdCore::Global::var _var)
{
return _array[_var.type];
}
================================================
FILE: compiler/native/nerdcore/src/objmgmt_header.h
================================================
/*
Copyright (c) 2021 NerdLang - Adrien THIERRY and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
NerdCore::VAR __NERD_delete(NerdCore::VAR _left, NerdCore::VAR _right);
NerdCore::VAR __NERD_Object_Set(std::string _index, NerdCore::VAR _value, NerdCore::Type::object_t *_obj);
NerdCore::VAR __NERD_Object_Set(NerdCore::VAR _index, NerdCore::VAR _value, NerdCore::VAR _array);
std::string type_of(NerdCore::Global::var _var);
std::string typeof(NerdCore::Global::var _var);
/*
inline NerdCore::Global::var Object()
{
return NerdCore::VAR((NerdCore::Class::Object *)new NerdCore::Class::Object());
}
*/
/*
inline NerdCore::Global::var Object(NerdCore::Type::object_t _obj)
{
return new NerdCore::Class::Object(_obj);
}
*/
inline NerdCore::Global::var NewArray()
{
return new NerdCore::Class::Array();
}
inline NerdCore::Global::var FixedArray()
{
return new NerdCore::Class::FixedArray();
}
gitextract_918hrja8/
├── .gitignore
├── LICENSE
├── README.md
├── base/
│ ├── cli/
│ │ └── cliParser.js
│ ├── compiler/
│ │ └── target.js
│ └── util/
│ ├── copyDirSync.js
│ ├── copyRecursive.js
│ ├── flash.js
│ ├── getExt.js
│ └── getTips.js
├── compiler/
│ ├── native/
│ │ ├── compiler.js
│ │ ├── env/
│ │ │ ├── arduino.js
│ │ │ ├── js.js
│ │ │ ├── std.js
│ │ │ └── wasm.js
│ │ ├── nerdcore/
│ │ │ ├── src/
│ │ │ │ ├── class/
│ │ │ │ │ ├── _meta.h
│ │ │ │ │ ├── array.h
│ │ │ │ │ ├── array_header.h
│ │ │ │ │ ├── base_header.h
│ │ │ │ │ ├── fixed_array.h
│ │ │ │ │ ├── fixed_array_header.h
│ │ │ │ │ ├── function.h
│ │ │ │ │ ├── function_header.h
│ │ │ │ │ ├── native.h
│ │ │ │ │ ├── native_header.h
│ │ │ │ │ ├── native_tpl_header.h
│ │ │ │ │ ├── number.h
│ │ │ │ │ ├── number_header.h
│ │ │ │ │ ├── object.h
│ │ │ │ │ ├── object_header.h
│ │ │ │ │ ├── string.h
│ │ │ │ │ ├── string_header.h
│ │ │ │ │ ├── struct.h
│ │ │ │ │ └── struct_header.h
│ │ │ │ ├── classes.h
│ │ │ │ ├── classes_header.h
│ │ │ │ ├── enum.h
│ │ │ │ ├── functions.h
│ │ │ │ ├── functions_header.h
│ │ │ │ ├── macro.h
│ │ │ │ ├── native/
│ │ │ │ │ ├── double.h
│ │ │ │ │ ├── double_header.h
│ │ │ │ │ ├── int.h
│ │ │ │ │ └── int_header.h
│ │ │ │ ├── native.h
│ │ │ │ ├── native_header.h
│ │ │ │ ├── nerd.cpp
│ │ │ │ ├── nerd.hpp
│ │ │ │ ├── objmgmt.h
│ │ │ │ ├── objmgmt_header.h
│ │ │ │ ├── operator.h
│ │ │ │ ├── operator_header.h
│ │ │ │ ├── stdfn.h
│ │ │ │ ├── stdfn_header.h
│ │ │ │ ├── tsl/
│ │ │ │ │ ├── robin_growth_policy.h
│ │ │ │ │ ├── robin_hash.h
│ │ │ │ │ ├── robin_map.h
│ │ │ │ │ └── robin_set.h
│ │ │ │ ├── type_header.h
│ │ │ │ ├── values.h
│ │ │ │ ├── values_header.h
│ │ │ │ ├── var.h
│ │ │ │ └── var_header.h
│ │ │ └── test/
│ │ │ ├── array.cpp
│ │ │ ├── cast.cpp
│ │ │ ├── native.cpp
│ │ │ ├── object.cpp
│ │ │ └── operators.cpp
│ │ └── squel/
│ │ ├── arduino.cpp
│ │ ├── js.cpp
│ │ ├── std.cpp
│ │ └── wasm.cpp
│ └── self/
│ ├── base/
│ │ ├── cli/
│ │ │ └── cliParser.ng
│ │ ├── compiler/
│ │ │ └── target.js
│ │ └── util/
│ │ ├── copyDirSync.js
│ │ ├── copyRecursive.js
│ │ ├── flash.js
│ │ ├── getExt.js
│ │ ├── getTips.js
│ │ ├── httpUtils.js
│ │ └── rmdir.js
│ └── nerd.ng
├── example/
│ ├── arduino-lcd.ng
│ ├── arduino.ng
│ ├── args.ng
│ ├── circular_array.ng
│ ├── circular_fixed_array.ng
│ ├── circular_object.ng
│ ├── const.ng
│ ├── date.ng
│ ├── exec.ng
│ ├── exit.ng
│ ├── fibo.ng
│ ├── fiboit.ng
│ ├── functional.ng
│ ├── hello.ng
│ ├── http.ng
│ ├── http_post.ng
│ ├── json.ng
│ ├── loop.ng
│ ├── match.ng
│ ├── native.ng
│ ├── nested_object.ng
│ ├── new.ng
│ ├── object_keys.ng
│ ├── os.ng
│ ├── path.ng
│ ├── readfile.ng
│ ├── thread.ng
│ ├── throw.ng
│ ├── wasm.html
│ └── wasm_binding.ng
├── external/
│ ├── arduino/
│ │ ├── avr/
│ │ │ ├── LICENSE.txt
│ │ │ ├── boards.txt
│ │ │ ├── bootloaders/
│ │ │ │ ├── atmega/
│ │ │ │ │ ├── ATmegaBOOT_168.c
│ │ │ │ │ ├── ATmegaBOOT_168_atmega1280.hex
│ │ │ │ │ ├── ATmegaBOOT_168_atmega328.hex
│ │ │ │ │ ├── ATmegaBOOT_168_atmega328_pro_8MHz.hex
│ │ │ │ │ ├── ATmegaBOOT_168_diecimila.hex
│ │ │ │ │ ├── ATmegaBOOT_168_ng.hex
│ │ │ │ │ ├── ATmegaBOOT_168_pro_8MHz.hex
│ │ │ │ │ └── Makefile
│ │ │ │ ├── atmega8/
│ │ │ │ │ ├── ATmegaBOOT-prod-firmware-2009-11-07.hex
│ │ │ │ │ ├── ATmegaBOOT.c
│ │ │ │ │ ├── ATmegaBOOT.hex
│ │ │ │ │ ├── ATmegaBOOT.txt
│ │ │ │ │ └── Makefile
│ │ │ │ ├── bt/
│ │ │ │ │ ├── ATmegaBOOT_168.c
│ │ │ │ │ ├── ATmegaBOOT_168.hex
│ │ │ │ │ ├── ATmegaBOOT_168_atmega328_bt.hex
│ │ │ │ │ └── Makefile
│ │ │ │ ├── caterina/
│ │ │ │ │ ├── Caterina-Circuitplay32u4.hex
│ │ │ │ │ ├── Caterina-Esplora.hex
│ │ │ │ │ ├── Caterina-Esplora.txt
│ │ │ │ │ ├── Caterina-Industrial101.hex
│ │ │ │ │ ├── Caterina-Leonardo.hex
│ │ │ │ │ ├── Caterina-Leonardo.txt
│ │ │ │ │ ├── Caterina-LeonardoEthernet.hex
│ │ │ │ │ ├── Caterina-LininoOne.hex
│ │ │ │ │ ├── Caterina-Micro.hex
│ │ │ │ │ ├── Caterina-Micro.txt
│ │ │ │ │ ├── Caterina-Yun-noblink.hex
│ │ │ │ │ ├── Caterina-Yun.hex
│ │ │ │ │ ├── Caterina-YunMini.hex
│ │ │ │ │ ├── Caterina.c
│ │ │ │ │ ├── Caterina.h
│ │ │ │ │ ├── Descriptors.c
│ │ │ │ │ ├── Descriptors.h
│ │ │ │ │ ├── Esplora-prod-firmware-2012-12-10.hex
│ │ │ │ │ ├── Esplora-prod-firmware-2012-12-10.txt
│ │ │ │ │ ├── Leonardo-prod-firmware-2012-04-26.hex
│ │ │ │ │ ├── Leonardo-prod-firmware-2012-04-26.txt
│ │ │ │ │ ├── Leonardo-prod-firmware-2012-12-10.hex
│ │ │ │ │ ├── Leonardo-prod-firmware-2012-12-10.txt
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── Micro-prod-firmware-2012-11-23.hex
│ │ │ │ │ ├── Micro-prod-firmware-2012-11-23.txt
│ │ │ │ │ ├── Micro-prod-firmware-2012-12-10.hex
│ │ │ │ │ └── Micro-prod-firmware-2012-12-10.txt
│ │ │ │ ├── caterina-Arduino_Robot/
│ │ │ │ │ ├── Caterina-Robot-Control.hex
│ │ │ │ │ ├── Caterina-Robot-Motor.hex
│ │ │ │ │ ├── Caterina-Robot.txt
│ │ │ │ │ ├── Caterina.c
│ │ │ │ │ ├── Caterina.h
│ │ │ │ │ ├── Descriptors.c
│ │ │ │ │ ├── Descriptors.h
│ │ │ │ │ ├── Makefile
│ │ │ │ │ └── README.md
│ │ │ │ ├── caterina-LilyPadUSB/
│ │ │ │ │ ├── Caterina-LilyPadUSB.hex
│ │ │ │ │ ├── Caterina.c
│ │ │ │ │ ├── Caterina.h
│ │ │ │ │ ├── Descriptors.c
│ │ │ │ │ ├── Descriptors.h
│ │ │ │ │ ├── Makefile
│ │ │ │ │ └── Readme.txt
│ │ │ │ ├── gemma/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── avrdude.conf
│ │ │ │ │ ├── gemma_v1.hex
│ │ │ │ │ ├── usbconfig.h
│ │ │ │ │ └── usbconfig.patch
│ │ │ │ ├── lilypad/
│ │ │ │ │ ├── LilyPadBOOT_168.hex
│ │ │ │ │ └── src/
│ │ │ │ │ ├── ATmegaBOOT.c
│ │ │ │ │ └── Makefile
│ │ │ │ ├── optiboot/
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── README.TXT
│ │ │ │ │ ├── boot.h
│ │ │ │ │ ├── makeall
│ │ │ │ │ ├── omake
│ │ │ │ │ ├── omake.bat
│ │ │ │ │ ├── optiboot.c
│ │ │ │ │ ├── optiboot_atmega168.hex
│ │ │ │ │ ├── optiboot_atmega168.lst
│ │ │ │ │ ├── optiboot_atmega328-Mini.hex
│ │ │ │ │ ├── optiboot_atmega328.hex
│ │ │ │ │ ├── optiboot_atmega328.lst
│ │ │ │ │ ├── optiboot_atmega8.hex
│ │ │ │ │ ├── optiboot_atmega8.lst
│ │ │ │ │ ├── pin_defs.h
│ │ │ │ │ └── stk500.h
│ │ │ │ └── stk500v2/
│ │ │ │ ├── License.txt
│ │ │ │ ├── Makefile
│ │ │ │ ├── Mega2560-prod-firmware-2011-06-29.hex
│ │ │ │ ├── STK500V2.pnproj
│ │ │ │ ├── STK500V2.pnps
│ │ │ │ ├── avr_cpunames.h
│ │ │ │ ├── avrinterruptnames.h
│ │ │ │ ├── command.h
│ │ │ │ ├── stk500boot.c
│ │ │ │ ├── stk500boot.ppg
│ │ │ │ └── stk500boot_v2_mega2560.hex
│ │ │ ├── cores/
│ │ │ │ └── arduino/
│ │ │ │ ├── Arduino.h
│ │ │ │ ├── CDC.cpp
│ │ │ │ ├── Client.h
│ │ │ │ ├── HardwareSerial.cpp
│ │ │ │ ├── HardwareSerial.h
│ │ │ │ ├── HardwareSerial0.cpp
│ │ │ │ ├── HardwareSerial1.cpp
│ │ │ │ ├── HardwareSerial2.cpp
│ │ │ │ ├── HardwareSerial3.cpp
│ │ │ │ ├── HardwareSerial_private.h
│ │ │ │ ├── IPAddress.cpp
│ │ │ │ ├── IPAddress.h
│ │ │ │ ├── PluggableUSB.cpp
│ │ │ │ ├── PluggableUSB.h
│ │ │ │ ├── Print.cpp
│ │ │ │ ├── Print.h
│ │ │ │ ├── Printable.h
│ │ │ │ ├── Server.h
│ │ │ │ ├── Stream.cpp
│ │ │ │ ├── Stream.h
│ │ │ │ ├── Tone.cpp
│ │ │ │ ├── USBAPI.h
│ │ │ │ ├── USBCore.cpp
│ │ │ │ ├── USBCore.h
│ │ │ │ ├── USBDesc.h
│ │ │ │ ├── Udp.h
│ │ │ │ ├── WCharacter.h
│ │ │ │ ├── WInterrupts.c
│ │ │ │ ├── WMath.cpp
│ │ │ │ ├── WString.cpp
│ │ │ │ ├── WString.h
│ │ │ │ ├── abi.cpp
│ │ │ │ ├── binary.h
│ │ │ │ ├── hooks.c
│ │ │ │ ├── main.cpp
│ │ │ │ ├── new.cpp
│ │ │ │ ├── new.h
│ │ │ │ ├── wiring.c
│ │ │ │ ├── wiring_analog.c
│ │ │ │ ├── wiring_digital.c
│ │ │ │ ├── wiring_private.h
│ │ │ │ ├── wiring_pulse.S
│ │ │ │ ├── wiring_pulse.c
│ │ │ │ └── wiring_shift.c
│ │ │ ├── extras/
│ │ │ │ ├── pack.hourlybuild.bash
│ │ │ │ ├── pack.pullrequest.bash
│ │ │ │ ├── pack.release.bash
│ │ │ │ ├── package_index.json.Hourly.template
│ │ │ │ └── package_index.json.PR.template
│ │ │ ├── firmwares/
│ │ │ │ ├── arduinoISP/
│ │ │ │ │ └── readme.txt
│ │ │ │ ├── atmegaxxu2/
│ │ │ │ │ ├── Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex
│ │ │ │ │ ├── Arduino-COMBINED-dfu-usbserial-atmega16u2-MegaADK-Rev3.hex
│ │ │ │ │ ├── Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex
│ │ │ │ │ ├── Genuino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-R3.hex
│ │ │ │ │ ├── Genuino-COMBINED-dfu-usbserial-atmega16u2-Uno-R3.hex
│ │ │ │ │ ├── MEGA-dfu_and_usbserial_combined.hex
│ │ │ │ │ ├── README.txt
│ │ │ │ │ ├── UNO-dfu_and_usbserial_combined.hex
│ │ │ │ │ ├── arduino-usbdfu/
│ │ │ │ │ │ ├── Arduino-usbdfu.c
│ │ │ │ │ │ ├── Arduino-usbdfu.h
│ │ │ │ │ │ ├── Board/
│ │ │ │ │ │ │ └── LEDs.h
│ │ │ │ │ │ ├── Descriptors.c
│ │ │ │ │ │ ├── Descriptors.h
│ │ │ │ │ │ ├── makefile
│ │ │ │ │ │ └── readme.txt
│ │ │ │ │ └── arduino-usbserial/
│ │ │ │ │ ├── Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex
│ │ │ │ │ ├── Arduino-usbserial-atmega16u2-MegaADK-Rev3.hex
│ │ │ │ │ ├── Arduino-usbserial-atmega16u2-Uno-Rev3.hex
│ │ │ │ │ ├── Arduino-usbserial-mega.hex
│ │ │ │ │ ├── Arduino-usbserial-uno.hex
│ │ │ │ │ ├── Arduino-usbserial.c
│ │ │ │ │ ├── Arduino-usbserial.h
│ │ │ │ │ ├── Board/
│ │ │ │ │ │ └── LEDs.h
│ │ │ │ │ ├── Descriptors.c
│ │ │ │ │ ├── Descriptors.h
│ │ │ │ │ ├── Genuino-usbserial-atmega16u2-Mega2560-R3.hex
│ │ │ │ │ ├── Genuino-usbserial-atmega16u2-Uno-R3.hex
│ │ │ │ │ ├── Lib/
│ │ │ │ │ │ └── LightweightRingBuff.h
│ │ │ │ │ ├── makefile
│ │ │ │ │ └── readme.txt
│ │ │ │ └── wifishield/
│ │ │ │ ├── binary/
│ │ │ │ │ ├── wifiHD.elf
│ │ │ │ │ ├── wifiHD.hex
│ │ │ │ │ ├── wifiHD_2_1.elf
│ │ │ │ │ ├── wifi_dnld.elf
│ │ │ │ │ ├── wifi_dnld.hex
│ │ │ │ │ └── wifi_dnld_2_1.elf
│ │ │ │ ├── scripts/
│ │ │ │ │ ├── ArduinoWifiShield_upgrade.sh
│ │ │ │ │ └── ArduinoWifiShield_upgrade_mac.sh
│ │ │ │ ├── wifiHD/
│ │ │ │ │ ├── .cproject
│ │ │ │ │ ├── .project
│ │ │ │ │ ├── Release/
│ │ │ │ │ │ ├── wifiHD.elf
│ │ │ │ │ │ └── wifiHD.hex
│ │ │ │ │ ├── src/
│ │ │ │ │ │ ├── CONFIG/
│ │ │ │ │ │ │ ├── conf_access.h
│ │ │ │ │ │ │ ├── conf_at45dbx.h
│ │ │ │ │ │ │ ├── conf_ebi.h
│ │ │ │ │ │ │ └── conf_sd_mmc_spi.h
│ │ │ │ │ │ ├── SOFTWARE_FRAMEWORK/
│ │ │ │ │ │ │ ├── ASM/
│ │ │ │ │ │ │ │ └── trampoline.x
│ │ │ │ │ │ │ ├── BOARDS/
│ │ │ │ │ │ │ │ ├── ARDUINO/
│ │ │ │ │ │ │ │ │ ├── arduino.h
│ │ │ │ │ │ │ │ │ ├── led.c
│ │ │ │ │ │ │ │ │ └── led.h
│ │ │ │ │ │ │ │ ├── EVK1105/
│ │ │ │ │ │ │ │ │ ├── evk1105.h
│ │ │ │ │ │ │ │ │ ├── led.c
│ │ │ │ │ │ │ │ │ └── led.h
│ │ │ │ │ │ │ │ ├── board.h
│ │ │ │ │ │ │ │ └── board.h.my
│ │ │ │ │ │ │ ├── COMPONENTS/
│ │ │ │ │ │ │ │ ├── MEMORY/
│ │ │ │ │ │ │ │ │ └── DATA_FLASH/
│ │ │ │ │ │ │ │ │ └── AT45DBX/
│ │ │ │ │ │ │ │ │ ├── at45dbx.c
│ │ │ │ │ │ │ │ │ ├── at45dbx.h
│ │ │ │ │ │ │ │ │ ├── at45dbx_mem.c
│ │ │ │ │ │ │ │ │ └── at45dbx_mem.h
│ │ │ │ │ │ │ │ └── WIFI/
│ │ │ │ │ │ │ │ └── HD/
│ │ │ │ │ │ │ │ ├── v2.7.0/
│ │ │ │ │ │ │ │ │ ├── UCR1/
│ │ │ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ │ │ ├── lib_ucr1_hd_sdio_v2.7.0.a
│ │ │ │ │ │ │ │ │ │ ├── lib_ucr1_hd_spi_v2.7.0.a
│ │ │ │ │ │ │ │ │ │ └── lib_ucr1_hd_wl_sta_intwpa_v2.7.0.a
│ │ │ │ │ │ │ │ │ ├── UCR2/
│ │ │ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ │ │ ├── lib_ucr2_hd_sdio_v2.7.0.a
│ │ │ │ │ │ │ │ │ │ ├── lib_ucr2_hd_spi_v2.7.0.a
│ │ │ │ │ │ │ │ │ │ └── lib_ucr2_hd_wl_sta_intwpa_v2.7.0.a
│ │ │ │ │ │ │ │ │ └── revision.txt
│ │ │ │ │ │ │ │ ├── wl_api.h
│ │ │ │ │ │ │ │ ├── wl_fw.h
│ │ │ │ │ │ │ │ ├── wl_os.h
│ │ │ │ │ │ │ │ ├── wl_sdio.h
│ │ │ │ │ │ │ │ ├── wl_spi.h
│ │ │ │ │ │ │ │ └── wlap_api.h
│ │ │ │ │ │ │ ├── DRIVERS/
│ │ │ │ │ │ │ │ ├── CPU/
│ │ │ │ │ │ │ │ │ └── CYCLE_COUNTER/
│ │ │ │ │ │ │ │ │ └── cycle_counter.h
│ │ │ │ │ │ │ │ ├── EBI/
│ │ │ │ │ │ │ │ │ └── SMC/
│ │ │ │ │ │ │ │ │ ├── smc.c
│ │ │ │ │ │ │ │ │ └── smc.h
│ │ │ │ │ │ │ │ ├── EIC/
│ │ │ │ │ │ │ │ │ ├── eic.c
│ │ │ │ │ │ │ │ │ └── eic.h
│ │ │ │ │ │ │ │ ├── FLASHC/
│ │ │ │ │ │ │ │ │ ├── flashc.c
│ │ │ │ │ │ │ │ │ └── flashc.h
│ │ │ │ │ │ │ │ ├── GPIO/
│ │ │ │ │ │ │ │ │ ├── gpio.c
│ │ │ │ │ │ │ │ │ └── gpio.h
│ │ │ │ │ │ │ │ ├── INTC/
│ │ │ │ │ │ │ │ │ ├── exception.x
│ │ │ │ │ │ │ │ │ ├── intc.c
│ │ │ │ │ │ │ │ │ └── intc.h
│ │ │ │ │ │ │ │ ├── PDCA/
│ │ │ │ │ │ │ │ │ ├── pdca.c
│ │ │ │ │ │ │ │ │ └── pdca.h
│ │ │ │ │ │ │ │ ├── PM/
│ │ │ │ │ │ │ │ │ ├── pm.c
│ │ │ │ │ │ │ │ │ ├── pm.h
│ │ │ │ │ │ │ │ │ ├── pm_conf_clocks.c
│ │ │ │ │ │ │ │ │ ├── power_clocks_lib.c
│ │ │ │ │ │ │ │ │ └── power_clocks_lib.h
│ │ │ │ │ │ │ │ ├── RTC/
│ │ │ │ │ │ │ │ │ ├── rtc.c
│ │ │ │ │ │ │ │ │ └── rtc.h
│ │ │ │ │ │ │ │ ├── SPI/
│ │ │ │ │ │ │ │ │ ├── spi.c
│ │ │ │ │ │ │ │ │ └── spi.h
│ │ │ │ │ │ │ │ ├── TC/
│ │ │ │ │ │ │ │ │ ├── tc.c
│ │ │ │ │ │ │ │ │ └── tc.h
│ │ │ │ │ │ │ │ └── USART/
│ │ │ │ │ │ │ │ ├── usart.c
│ │ │ │ │ │ │ │ └── usart.h
│ │ │ │ │ │ │ ├── SERVICES/
│ │ │ │ │ │ │ │ ├── DELAY/
│ │ │ │ │ │ │ │ │ ├── delay.c
│ │ │ │ │ │ │ │ │ └── delay.h
│ │ │ │ │ │ │ │ ├── LWIP/
│ │ │ │ │ │ │ │ │ ├── lwip-1.3.2/
│ │ │ │ │ │ │ │ │ │ └── src/
│ │ │ │ │ │ │ │ │ │ ├── core/
│ │ │ │ │ │ │ │ │ │ │ ├── dhcp.c
│ │ │ │ │ │ │ │ │ │ │ ├── dns.c
│ │ │ │ │ │ │ │ │ │ │ ├── init.c
│ │ │ │ │ │ │ │ │ │ │ ├── ipv4/
│ │ │ │ │ │ │ │ │ │ │ │ ├── autoip.c
│ │ │ │ │ │ │ │ │ │ │ │ ├── icmp.c
│ │ │ │ │ │ │ │ │ │ │ │ ├── igmp.c
│ │ │ │ │ │ │ │ │ │ │ │ ├── inet.c
│ │ │ │ │ │ │ │ │ │ │ │ ├── inet_chksum.c
│ │ │ │ │ │ │ │ │ │ │ │ ├── ip.c
│ │ │ │ │ │ │ │ │ │ │ │ ├── ip_addr.c
│ │ │ │ │ │ │ │ │ │ │ │ └── ip_frag.c
│ │ │ │ │ │ │ │ │ │ │ ├── mem.c
│ │ │ │ │ │ │ │ │ │ │ ├── memp.c
│ │ │ │ │ │ │ │ │ │ │ ├── netif.c
│ │ │ │ │ │ │ │ │ │ │ ├── pbuf.c
│ │ │ │ │ │ │ │ │ │ │ ├── raw.c
│ │ │ │ │ │ │ │ │ │ │ ├── stats.c
│ │ │ │ │ │ │ │ │ │ │ ├── tcp.c
│ │ │ │ │ │ │ │ │ │ │ ├── tcp_in.c
│ │ │ │ │ │ │ │ │ │ │ ├── tcp_out.c
│ │ │ │ │ │ │ │ │ │ │ └── udp.c
│ │ │ │ │ │ │ │ │ │ ├── include/
│ │ │ │ │ │ │ │ │ │ │ ├── ipv4/
│ │ │ │ │ │ │ │ │ │ │ │ └── lwip/
│ │ │ │ │ │ │ │ │ │ │ │ ├── autoip.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── icmp.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── igmp.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── inet.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── inet_chksum.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── ip.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── ip_addr.h
│ │ │ │ │ │ │ │ │ │ │ │ └── ip_frag.h
│ │ │ │ │ │ │ │ │ │ │ ├── lwip/
│ │ │ │ │ │ │ │ │ │ │ │ ├── api.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── api_msg.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── arch.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── debug.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── def.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── dhcp.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── dns.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── err.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── init.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── mem.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── memp.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── memp_std.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── netbuf.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── netdb.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── netif.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── netifapi.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── opt.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── pbuf.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── raw.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── sio.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── snmp.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── snmp_asn1.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── snmp_msg.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── snmp_structs.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── sockets.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── stats.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── sys.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── tcp.h
│ │ │ │ │ │ │ │ │ │ │ │ ├── tcpip.h
│ │ │ │ │ │ │ │ │ │ │ │ └── udp.h
│ │ │ │ │ │ │ │ │ │ │ └── netif/
│ │ │ │ │ │ │ │ │ │ │ ├── etharp.h
│ │ │ │ │ │ │ │ │ │ │ ├── loopif.h
│ │ │ │ │ │ │ │ │ │ │ ├── ppp_oe.h
│ │ │ │ │ │ │ │ │ │ │ └── slipif.h
│ │ │ │ │ │ │ │ │ │ └── netif/
│ │ │ │ │ │ │ │ │ │ ├── etharp.c
│ │ │ │ │ │ │ │ │ │ └── loopif.c
│ │ │ │ │ │ │ │ │ └── lwip-port-1.3.2/
│ │ │ │ │ │ │ │ │ └── HD/
│ │ │ │ │ │ │ │ │ ├── if/
│ │ │ │ │ │ │ │ │ │ ├── include/
│ │ │ │ │ │ │ │ │ │ │ ├── arch/
│ │ │ │ │ │ │ │ │ │ │ │ ├── cc.h
│ │ │ │ │ │ │ │ │ │ │ │ └── perf.h
│ │ │ │ │ │ │ │ │ │ │ ├── lwipopts.h
│ │ │ │ │ │ │ │ │ │ │ └── netif/
│ │ │ │ │ │ │ │ │ │ │ └── wlif.h
│ │ │ │ │ │ │ │ │ │ └── netif/
│ │ │ │ │ │ │ │ │ │ └── wlif.c
│ │ │ │ │ │ │ │ │ └── readme.txt
│ │ │ │ │ │ │ │ └── MEMORY/
│ │ │ │ │ │ │ │ └── CTRL_ACCESS/
│ │ │ │ │ │ │ │ ├── ctrl_access.c
│ │ │ │ │ │ │ │ └── ctrl_access.h
│ │ │ │ │ │ │ └── UTILS/
│ │ │ │ │ │ │ ├── DEBUG/
│ │ │ │ │ │ │ │ ├── debug.c
│ │ │ │ │ │ │ │ ├── debug.h
│ │ │ │ │ │ │ │ ├── print_funcs.c
│ │ │ │ │ │ │ │ └── print_funcs.h
│ │ │ │ │ │ │ ├── LIBS/
│ │ │ │ │ │ │ │ └── NEWLIB_ADDONS/
│ │ │ │ │ │ │ │ ├── INCLUDE/
│ │ │ │ │ │ │ │ │ ├── nlao_cpu.h
│ │ │ │ │ │ │ │ │ ├── nlao_exceptions.h
│ │ │ │ │ │ │ │ │ ├── nlao_interrupts.h
│ │ │ │ │ │ │ │ │ ├── nlao_io.h
│ │ │ │ │ │ │ │ │ └── nlao_usart.h
│ │ │ │ │ │ │ │ └── libnewlib_addons-at32ucr2-speed_opt.a
│ │ │ │ │ │ │ ├── LINKER_SCRIPTS/
│ │ │ │ │ │ │ │ └── AT32UC3A/
│ │ │ │ │ │ │ │ ├── 0512/
│ │ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ │ └── link_uc3a0512.lds
│ │ │ │ │ │ │ │ └── 1256/
│ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ └── link_uc3a1256.lds
│ │ │ │ │ │ │ ├── PREPROCESSOR/
│ │ │ │ │ │ │ │ ├── mrepeat.h
│ │ │ │ │ │ │ │ ├── preprocessor.h
│ │ │ │ │ │ │ │ ├── stringz.h
│ │ │ │ │ │ │ │ └── tpaste.h
│ │ │ │ │ │ │ ├── STARTUP_FILES/
│ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ └── crt0.x
│ │ │ │ │ │ │ ├── compiler.h
│ │ │ │ │ │ │ ├── conf_isp.h
│ │ │ │ │ │ │ └── parts.h
│ │ │ │ │ │ ├── ard_spi.c
│ │ │ │ │ │ ├── ard_spi.h
│ │ │ │ │ │ ├── ard_tcp.c
│ │ │ │ │ │ ├── ard_tcp.h
│ │ │ │ │ │ ├── ard_utils.c
│ │ │ │ │ │ ├── ard_utils.h
│ │ │ │ │ │ ├── avr32_spi.c
│ │ │ │ │ │ ├── board_init.c
│ │ │ │ │ │ ├── board_init.h
│ │ │ │ │ │ ├── cmd_wl.c
│ │ │ │ │ │ ├── cmd_wl.h
│ │ │ │ │ │ ├── console.c
│ │ │ │ │ │ ├── console.h
│ │ │ │ │ │ ├── debug.h
│ │ │ │ │ │ ├── fw_download.h
│ │ │ │ │ │ ├── fw_download_extflash.c
│ │ │ │ │ │ ├── license.txt
│ │ │ │ │ │ ├── lwip_setup.c
│ │ │ │ │ │ ├── lwip_setup.h
│ │ │ │ │ │ ├── lwipopts.h
│ │ │ │ │ │ ├── main.c
│ │ │ │ │ │ ├── nvram.c
│ │ │ │ │ │ ├── nvram.h
│ │ │ │ │ │ ├── owl_os.c
│ │ │ │ │ │ ├── ping.c
│ │ │ │ │ │ ├── ping.h
│ │ │ │ │ │ ├── printf-stdarg.c
│ │ │ │ │ │ ├── printf-stdarg.h
│ │ │ │ │ │ ├── timer.c
│ │ │ │ │ │ ├── timer.h
│ │ │ │ │ │ ├── top_defs.h
│ │ │ │ │ │ ├── trace.h
│ │ │ │ │ │ ├── util.c
│ │ │ │ │ │ ├── util.h
│ │ │ │ │ │ ├── wifi_spi.h
│ │ │ │ │ │ ├── wl_cm.c
│ │ │ │ │ │ ├── wl_cm.h
│ │ │ │ │ │ └── wl_definitions.h
│ │ │ │ │ └── wifiHD.cproj
│ │ │ │ ├── wifi_dnld/
│ │ │ │ │ ├── .cproject
│ │ │ │ │ ├── .project
│ │ │ │ │ ├── Release/
│ │ │ │ │ │ └── wifi_dnld.elf
│ │ │ │ │ ├── src/
│ │ │ │ │ │ ├── CONFIG/
│ │ │ │ │ │ │ ├── conf_access.h
│ │ │ │ │ │ │ └── conf_at45dbx.h
│ │ │ │ │ │ ├── SOFTWARE_FRAMEWORK/
│ │ │ │ │ │ │ ├── ASM/
│ │ │ │ │ │ │ │ └── trampoline.x
│ │ │ │ │ │ │ ├── BOARDS/
│ │ │ │ │ │ │ │ ├── ARDUINO/
│ │ │ │ │ │ │ │ │ ├── arduino.h
│ │ │ │ │ │ │ │ │ ├── led.c
│ │ │ │ │ │ │ │ │ └── led.h
│ │ │ │ │ │ │ │ ├── EVK1105/
│ │ │ │ │ │ │ │ │ ├── evk1105.h
│ │ │ │ │ │ │ │ │ ├── led.c
│ │ │ │ │ │ │ │ │ └── led.h
│ │ │ │ │ │ │ │ ├── board.h
│ │ │ │ │ │ │ │ └── board.h.ori
│ │ │ │ │ │ │ ├── COMPONENTS/
│ │ │ │ │ │ │ │ └── MEMORY/
│ │ │ │ │ │ │ │ └── DATA_FLASH/
│ │ │ │ │ │ │ │ └── AT45DBX/
│ │ │ │ │ │ │ │ ├── at45dbx.c
│ │ │ │ │ │ │ │ ├── at45dbx.h
│ │ │ │ │ │ │ │ ├── at45dbx_mem.c
│ │ │ │ │ │ │ │ └── at45dbx_mem.h
│ │ │ │ │ │ │ ├── DRIVERS/
│ │ │ │ │ │ │ │ ├── FLASHC/
│ │ │ │ │ │ │ │ │ ├── flashc.c
│ │ │ │ │ │ │ │ │ └── flashc.h
│ │ │ │ │ │ │ │ ├── GPIO/
│ │ │ │ │ │ │ │ │ ├── gpio.c
│ │ │ │ │ │ │ │ │ └── gpio.h
│ │ │ │ │ │ │ │ ├── INTC/
│ │ │ │ │ │ │ │ │ ├── exception.x
│ │ │ │ │ │ │ │ │ ├── intc.c
│ │ │ │ │ │ │ │ │ └── intc.h
│ │ │ │ │ │ │ │ ├── PM/
│ │ │ │ │ │ │ │ │ ├── pm.c
│ │ │ │ │ │ │ │ │ ├── pm.h
│ │ │ │ │ │ │ │ │ ├── pm_conf_clocks.c
│ │ │ │ │ │ │ │ │ ├── power_clocks_lib.c
│ │ │ │ │ │ │ │ │ └── power_clocks_lib.h
│ │ │ │ │ │ │ │ ├── SPI/
│ │ │ │ │ │ │ │ │ ├── spi.c
│ │ │ │ │ │ │ │ │ └── spi.h
│ │ │ │ │ │ │ │ └── USART/
│ │ │ │ │ │ │ │ ├── usart.c
│ │ │ │ │ │ │ │ └── usart.h
│ │ │ │ │ │ │ ├── SERVICES/
│ │ │ │ │ │ │ │ └── MEMORY/
│ │ │ │ │ │ │ │ └── CTRL_ACCESS/
│ │ │ │ │ │ │ │ ├── ctrl_access.c
│ │ │ │ │ │ │ │ └── ctrl_access.h
│ │ │ │ │ │ │ └── UTILS/
│ │ │ │ │ │ │ ├── DEBUG/
│ │ │ │ │ │ │ │ ├── debug.c
│ │ │ │ │ │ │ │ ├── debug.h
│ │ │ │ │ │ │ │ ├── print_funcs.c
│ │ │ │ │ │ │ │ └── print_funcs.h
│ │ │ │ │ │ │ ├── LIBS/
│ │ │ │ │ │ │ │ └── NEWLIB_ADDONS/
│ │ │ │ │ │ │ │ ├── INCLUDE/
│ │ │ │ │ │ │ │ │ ├── nlao_cpu.h
│ │ │ │ │ │ │ │ │ ├── nlao_exceptions.h
│ │ │ │ │ │ │ │ │ ├── nlao_interrupts.h
│ │ │ │ │ │ │ │ │ ├── nlao_io.h
│ │ │ │ │ │ │ │ │ └── nlao_usart.h
│ │ │ │ │ │ │ │ └── libnewlib_addons-at32ucr2-speed_opt.a
│ │ │ │ │ │ │ ├── LINKER_SCRIPTS/
│ │ │ │ │ │ │ │ └── AT32UC3A/
│ │ │ │ │ │ │ │ ├── 0512/
│ │ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ │ └── link_uc3a0512.lds
│ │ │ │ │ │ │ │ └── 1256/
│ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ └── link_uc3a1256.lds
│ │ │ │ │ │ │ ├── PREPROCESSOR/
│ │ │ │ │ │ │ │ ├── mrepeat.h
│ │ │ │ │ │ │ │ ├── preprocessor.h
│ │ │ │ │ │ │ │ ├── stringz.h
│ │ │ │ │ │ │ │ └── tpaste.h
│ │ │ │ │ │ │ ├── STARTUP_FILES/
│ │ │ │ │ │ │ │ └── GCC/
│ │ │ │ │ │ │ │ └── crt0.x
│ │ │ │ │ │ │ ├── compiler.h
│ │ │ │ │ │ │ ├── conf_isp.h
│ │ │ │ │ │ │ └── parts.h
│ │ │ │ │ │ ├── clocks.c
│ │ │ │ │ │ ├── clocks.h
│ │ │ │ │ │ ├── flash_fw.c
│ │ │ │ │ │ ├── license.txt
│ │ │ │ │ │ ├── nor_flash.c
│ │ │ │ │ │ ├── nor_flash.h
│ │ │ │ │ │ ├── printf-stdarg.c
│ │ │ │ │ │ ├── printf-stdarg.h
│ │ │ │ │ │ ├── startup.c
│ │ │ │ │ │ ├── startup.h
│ │ │ │ │ │ └── wl_fw.h
│ │ │ │ │ └── wifi_dnld.cproj
│ │ │ │ └── wifishield.atsln
│ │ │ ├── libraries/
│ │ │ │ ├── EEPROM/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── examples/
│ │ │ │ │ │ ├── eeprom_clear/
│ │ │ │ │ │ │ └── eeprom_clear.ino
│ │ │ │ │ │ ├── eeprom_crc/
│ │ │ │ │ │ │ └── eeprom_crc.ino
│ │ │ │ │ │ ├── eeprom_get/
│ │ │ │ │ │ │ └── eeprom_get.ino
│ │ │ │ │ │ ├── eeprom_iteration/
│ │ │ │ │ │ │ └── eeprom_iteration.ino
│ │ │ │ │ │ ├── eeprom_put/
│ │ │ │ │ │ │ └── eeprom_put.ino
│ │ │ │ │ │ ├── eeprom_read/
│ │ │ │ │ │ │ └── eeprom_read.ino
│ │ │ │ │ │ ├── eeprom_update/
│ │ │ │ │ │ │ └── eeprom_update.ino
│ │ │ │ │ │ └── eeprom_write/
│ │ │ │ │ │ └── eeprom_write.ino
│ │ │ │ │ ├── keywords.txt
│ │ │ │ │ ├── library.properties
│ │ │ │ │ └── src/
│ │ │ │ │ └── EEPROM.h
│ │ │ │ ├── HID/
│ │ │ │ │ ├── keywords.txt
│ │ │ │ │ ├── library.properties
│ │ │ │ │ └── src/
│ │ │ │ │ ├── HID.cpp
│ │ │ │ │ └── HID.h
│ │ │ │ ├── SPI/
│ │ │ │ │ ├── examples/
│ │ │ │ │ │ ├── BarometricPressureSensor/
│ │ │ │ │ │ │ └── BarometricPressureSensor.ino
│ │ │ │ │ │ └── DigitalPotControl/
│ │ │ │ │ │ └── DigitalPotControl.ino
│ │ │ │ │ ├── keywords.txt
│ │ │ │ │ ├── library.properties
│ │ │ │ │ └── src/
│ │ │ │ │ ├── SPI.cpp
│ │ │ │ │ └── SPI.h
│ │ │ │ ├── SoftwareSerial/
│ │ │ │ │ ├── examples/
│ │ │ │ │ │ ├── SoftwareSerialExample/
│ │ │ │ │ │ │ └── SoftwareSerialExample.ino
│ │ │ │ │ │ └── TwoPortReceive/
│ │ │ │ │ │ └── TwoPortReceive.ino
│ │ │ │ │ ├── keywords.txt
│ │ │ │ │ ├── library.properties
│ │ │ │ │ └── src/
│ │ │ │ │ ├── SoftwareSerial.cpp
│ │ │ │ │ └── SoftwareSerial.h
│ │ │ │ └── Wire/
│ │ │ │ ├── examples/
│ │ │ │ │ ├── SFRRanger_reader/
│ │ │ │ │ │ └── SFRRanger_reader.ino
│ │ │ │ │ ├── digital_potentiometer/
│ │ │ │ │ │ └── digital_potentiometer.ino
│ │ │ │ │ ├── i2c_scanner/
│ │ │ │ │ │ └── i2c_scanner.ino
│ │ │ │ │ ├── master_reader/
│ │ │ │ │ │ └── master_reader.ino
│ │ │ │ │ ├── master_writer/
│ │ │ │ │ │ └── master_writer.ino
│ │ │ │ │ ├── slave_receiver/
│ │ │ │ │ │ └── slave_receiver.ino
│ │ │ │ │ └── slave_sender/
│ │ │ │ │ └── slave_sender.ino
│ │ │ │ ├── keywords.txt
│ │ │ │ ├── library.properties
│ │ │ │ └── src/
│ │ │ │ ├── Wire.cpp
│ │ │ │ ├── Wire.h
│ │ │ │ └── utility/
│ │ │ │ ├── twi.c
│ │ │ │ └── twi.h
│ │ │ ├── platform.txt
│ │ │ ├── programmers.txt
│ │ │ └── variants/
│ │ │ ├── circuitplay32u4/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── eightanaloginputs/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── ethernet/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── gemma/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── leonardo/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── mega/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── micro/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── robot_control/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── robot_motor/
│ │ │ │ └── pins_arduino.h
│ │ │ ├── standard/
│ │ │ │ └── pins_arduino.h
│ │ │ └── yun/
│ │ │ └── pins_arduino.h
│ │ └── stlarduino/
│ │ ├── ArduinoSTL.cpp
│ │ ├── ArduinoSTL.h
│ │ ├── LICENSE
│ │ ├── abi/
│ │ │ ├── abi.cpp
│ │ │ ├── libgcc_eh/
│ │ │ │ ├── Makefile
│ │ │ │ └── Makefile.in
│ │ │ └── libsupc/
│ │ │ ├── Makefile
│ │ │ └── Makefile.in
│ │ ├── algorithm
│ │ ├── algorithm.cpp
│ │ ├── associative_base
│ │ ├── associative_base.cpp
│ │ ├── basic_definitions
│ │ ├── bitset
│ │ ├── bitset.cpp
│ │ ├── cassert
│ │ ├── cctype
│ │ ├── cerrno
│ │ ├── cfloat
│ │ ├── char_traits
│ │ ├── char_traits.cpp
│ │ ├── climits
│ │ ├── clocale
│ │ ├── cmath
│ │ ├── complex
│ │ ├── complex.cpp
│ │ ├── csetjmp
│ │ ├── csignal
│ │ ├── cstdarg
│ │ ├── cstddef
│ │ ├── cstdio
│ │ ├── cstdlib
│ │ ├── cstring
│ │ ├── ctime
│ │ ├── cwchar
│ │ ├── cwctype
│ │ ├── del_op.cpp
│ │ ├── del_opnt.cpp
│ │ ├── del_ops.cpp
│ │ ├── del_opv.cpp
│ │ ├── del_opvnt.cpp
│ │ ├── del_opvs.cpp
│ │ ├── deque
│ │ ├── deque.cpp
│ │ ├── eh_alloc.cpp
│ │ ├── eh_globals.cpp
│ │ ├── exception
│ │ ├── exception.cpp
│ │ ├── func_exception
│ │ ├── func_exception.cpp
│ │ ├── functional
│ │ ├── initializer_list
│ │ ├── iomanip
│ │ ├── iomanip.cpp
│ │ ├── ios
│ │ ├── ios.cpp
│ │ ├── iosfwd
│ │ ├── iostream
│ │ ├── iostream.cpp
│ │ ├── istream
│ │ ├── istream.cpp
│ │ ├── istream_helpers
│ │ ├── iterator
│ │ ├── iterator.cpp
│ │ ├── iterator_base
│ │ ├── limits
│ │ ├── limits.cpp
│ │ ├── list
│ │ ├── list.cpp
│ │ ├── locale
│ │ ├── locale.cpp
│ │ ├── map
│ │ ├── map.cpp
│ │ ├── memory
│ │ ├── new
│ │ ├── new_handler.cpp
│ │ ├── new_op.cpp
│ │ ├── new_opnt.cpp
│ │ ├── new_opv.cpp
│ │ ├── new_opvnt.cpp
│ │ ├── nonstd-function.h
│ │ ├── numeric
│ │ ├── numeric.cpp
│ │ ├── ostream
│ │ ├── ostream.cpp
│ │ ├── ostream_helpers
│ │ ├── ostream_helpers.cpp
│ │ ├── queue
│ │ ├── queue.cpp
│ │ ├── serstream
│ │ ├── set
│ │ ├── set.cpp
│ │ ├── sstream
│ │ ├── sstream.cpp
│ │ ├── stack
│ │ ├── stack.cpp
│ │ ├── stdexcept
│ │ ├── stdexcept.cpp
│ │ ├── streambuf
│ │ ├── streambuf.cpp
│ │ ├── string
│ │ ├── string.cpp
│ │ ├── string_iostream
│ │ ├── string_view
│ │ ├── support
│ │ ├── support.cpp
│ │ ├── system_configuration.h
│ │ ├── tuple
│ │ ├── type_traits
│ │ ├── typeinfo
│ │ ├── typeinfo.cpp
│ │ ├── unwind-cxx.h
│ │ ├── utility
│ │ ├── utility.cpp
│ │ ├── valarray
│ │ ├── valarray.cpp
│ │ ├── vector
│ │ └── vector.cpp
│ └── libuv/
│ ├── LICENSE
│ ├── include/
│ │ ├── uv/
│ │ │ ├── aix.h
│ │ │ ├── android-ifaddrs.h
│ │ │ ├── bsd.h
│ │ │ ├── darwin.h
│ │ │ ├── errno.h
│ │ │ ├── linux.h
│ │ │ ├── os390.h
│ │ │ ├── posix.h
│ │ │ ├── stdint-msvc2008.h
│ │ │ ├── sunos.h
│ │ │ ├── threadpool.h
│ │ │ ├── tree.h
│ │ │ ├── unix.h
│ │ │ ├── version.h
│ │ │ └── win.h
│ │ └── uv.h
│ └── src/
│ ├── fs-poll.c
│ ├── heap-inl.h
│ ├── idna.c
│ ├── idna.h
│ ├── inet.c
│ ├── queue.h
│ ├── random.c
│ ├── strscpy.c
│ ├── strscpy.h
│ ├── threadpool.c
│ ├── timer.c
│ ├── unix/
│ │ ├── aix-common.c
│ │ ├── aix.c
│ │ ├── android-ifaddrs.c
│ │ ├── async.c
│ │ ├── atomic-ops.h
│ │ ├── bsd-ifaddrs.c
│ │ ├── bsd-proctitle.c
│ │ ├── core.c
│ │ ├── cygwin.c
│ │ ├── darwin-proctitle.c
│ │ ├── darwin-stub.h
│ │ ├── darwin.c
│ │ ├── dl.c
│ │ ├── freebsd.c
│ │ ├── fs.c
│ │ ├── fsevents.c
│ │ ├── getaddrinfo.c
│ │ ├── getnameinfo.c
│ │ ├── haiku.c
│ │ ├── ibmi.c
│ │ ├── internal.h
│ │ ├── kqueue.c
│ │ ├── linux-core.c
│ │ ├── linux-inotify.c
│ │ ├── linux-syscalls.c
│ │ ├── linux-syscalls.h
│ │ ├── loop-watcher.c
│ │ ├── loop.c
│ │ ├── netbsd.c
│ │ ├── no-fsevents.c
│ │ ├── no-proctitle.c
│ │ ├── openbsd.c
│ │ ├── os390-syscalls.c
│ │ ├── os390-syscalls.h
│ │ ├── os390.c
│ │ ├── pipe.c
│ │ ├── poll.c
│ │ ├── posix-hrtime.c
│ │ ├── posix-poll.c
│ │ ├── process.c
│ │ ├── procfs-exepath.c
│ │ ├── proctitle.c
│ │ ├── pthread-fixes.c
│ │ ├── random-devurandom.c
│ │ ├── random-getentropy.c
│ │ ├── random-getrandom.c
│ │ ├── random-sysctl-linux.c
│ │ ├── signal.c
│ │ ├── spinlock.h
│ │ ├── stream.c
│ │ ├── sunos.c
│ │ ├── sysinfo-loadavg.c
│ │ ├── sysinfo-memory.c
│ │ ├── tcp.c
│ │ ├── thread.c
│ │ ├── tty.c
│ │ └── udp.c
│ ├── uv-common.c
│ ├── uv-common.h
│ ├── uv-data-getter-setters.c
│ ├── version.c
│ └── win/
│ ├── async.c
│ ├── atomicops-inl.h
│ ├── core.c
│ ├── detect-wakeup.c
│ ├── dl.c
│ ├── error.c
│ ├── fs-event.c
│ ├── fs-fd-hash-inl.h
│ ├── fs.c
│ ├── getaddrinfo.c
│ ├── getnameinfo.c
│ ├── handle-inl.h
│ ├── handle.c
│ ├── internal.h
│ ├── loop-watcher.c
│ ├── pipe.c
│ ├── poll.c
│ ├── process-stdio.c
│ ├── process.c
│ ├── req-inl.h
│ ├── signal.c
│ ├── snprintf.c
│ ├── stream-inl.h
│ ├── stream.c
│ ├── tcp.c
│ ├── thread.c
│ ├── tty.c
│ ├── udp.c
│ ├── util.c
│ ├── winapi.c
│ ├── winapi.h
│ ├── winsock.c
│ └── winsock.h
├── lib/
│ ├── check/
│ │ ├── isAssignment.js
│ │ ├── isBoolean.js
│ │ ├── isDelimiter.js
│ │ ├── isIncrement.js
│ │ ├── isInitOperator.js
│ │ ├── isKeyword.js
│ │ ├── isNative.js
│ │ ├── isNumber.js
│ │ ├── isObjectOperator.js
│ │ ├── isOperator.js
│ │ ├── isRegExp.js
│ │ ├── isSemi.js
│ │ ├── isString.js
│ │ ├── isUnary.js
│ │ └── isVariable.js
│ ├── env.js
│ ├── include.js
│ ├── package.js
│ ├── parser.js
│ ├── require.js
│ └── verify.js
├── nerd.js
├── nerd_modules/
│ ├── JSON/
│ │ ├── index.ng
│ │ ├── lib/
│ │ │ ├── jsmn.h
│ │ │ └── json.h
│ │ └── package.json
│ ├── Module/
│ │ └── index.ng
│ ├── RegExp/
│ │ └── index.ng
│ ├── String/
│ │ └── index.ng
│ ├── arduino/
│ │ └── index.ng
│ ├── arduino-lcd/
│ │ ├── index.ng
│ │ ├── lib/
│ │ │ ├── LiquidCrystal.cpp
│ │ │ └── LiquidCrystal.h
│ │ └── package.json
│ ├── child_process/
│ │ ├── index.ng
│ │ └── package.json
│ ├── console/
│ │ └── index.ng
│ ├── date/
│ │ └── index.ng
│ ├── error/
│ │ └── index.ng
│ ├── fs/
│ │ ├── index.ng
│ │ └── package.json
│ ├── http/
│ │ ├── httpStruct.h
│ │ ├── httplib/
│ │ │ ├── uSockets/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── bsd.c
│ │ │ │ ├── context.c
│ │ │ │ ├── crypto/
│ │ │ │ │ ├── openssl.c
│ │ │ │ │ ├── sni_tree.cpp
│ │ │ │ │ └── wolfssl.c
│ │ │ │ ├── eventing/
│ │ │ │ │ ├── epoll_kqueue.c
│ │ │ │ │ ├── gcd.c
│ │ │ │ │ └── libuv.c
│ │ │ │ ├── internal/
│ │ │ │ │ ├── eventing/
│ │ │ │ │ │ ├── epoll_kqueue.h
│ │ │ │ │ │ ├── gcd.h
│ │ │ │ │ │ └── libuv.h
│ │ │ │ │ ├── internal.h
│ │ │ │ │ ├── loop_data.h
│ │ │ │ │ └── networking/
│ │ │ │ │ └── bsd.h
│ │ │ │ ├── libusockets.h
│ │ │ │ ├── loop.c
│ │ │ │ └── socket.c
│ │ │ └── uWS/
│ │ │ ├── App.h
│ │ │ ├── AsyncSocket.h
│ │ │ ├── AsyncSocketData.h
│ │ │ ├── BloomFilter.h
│ │ │ ├── HttpContext.h
│ │ │ ├── HttpContextData.h
│ │ │ ├── HttpParser.h
│ │ │ ├── HttpResponse.h
│ │ │ ├── HttpResponseData.h
│ │ │ ├── HttpRouter.h
│ │ │ ├── LICENSE
│ │ │ ├── Loop.h
│ │ │ ├── LoopData.h
│ │ │ ├── MessageParser.h
│ │ │ ├── MoveOnlyFunction.h
│ │ │ ├── Multipart.h
│ │ │ ├── PerMessageDeflate.h
│ │ │ ├── ProxyParser.h
│ │ │ ├── QueryParser.h
│ │ │ ├── TopicTree.h
│ │ │ ├── Utilities.h
│ │ │ ├── WebSocket.h
│ │ │ ├── WebSocketContext.h
│ │ │ ├── WebSocketContextData.h
│ │ │ ├── WebSocketData.h
│ │ │ ├── WebSocketExtensions.h
│ │ │ ├── WebSocketHandshake.h
│ │ │ └── WebSocketProtocol.h
│ │ ├── index.ng
│ │ └── package.json
│ ├── math/
│ │ └── index.ng
│ ├── object/
│ │ └── index.ng
│ ├── os/
│ │ └── index.ng
│ ├── path/
│ │ └── index.ng
│ ├── process/
│ │ └── index.ng
│ ├── querystring/
│ │ └── index.ng
│ ├── thread/
│ │ └── index.ng
│ └── wasm/
│ ├── index.ng
│ ├── lib/
│ │ └── wasm.hpp
│ └── package.json
├── package.json
├── self/
│ ├── base/
│ │ ├── cli/
│ │ │ └── cliParser.js
│ │ ├── compiler/
│ │ │ └── target.js
│ │ └── util/
│ │ ├── copyDirSync.js
│ │ ├── copyRecursive.js
│ │ ├── flash.js
│ │ ├── getExt.js
│ │ ├── getTips.js
│ │ └── rmdir.js
│ ├── compiler/
│ │ ├── native/
│ │ │ ├── compiler.js
│ │ │ ├── env/
│ │ │ │ ├── arduino.js
│ │ │ │ ├── js.js
│ │ │ │ ├── std.js
│ │ │ │ └── wasm.js
│ │ │ ├── nerdcore/
│ │ │ │ ├── src/
│ │ │ │ │ ├── class/
│ │ │ │ │ │ ├── _meta.h
│ │ │ │ │ │ ├── array.h
│ │ │ │ │ │ ├── array_header.h
│ │ │ │ │ │ ├── base_header.h
│ │ │ │ │ │ ├── fixed_array.h
│ │ │ │ │ │ ├── fixed_array_header.h
│ │ │ │ │ │ ├── function.h
│ │ │ │ │ │ ├── function_header.h
│ │ │ │ │ │ ├── native.h
│ │ │ │ │ │ ├── native_header.h
│ │ │ │ │ │ ├── native_tpl_header.h
│ │ │ │ │ │ ├── number.h
│ │ │ │ │ │ ├── number_header.h
│ │ │ │ │ │ ├── object.h
│ │ │ │ │ │ ├── object_header.h
│ │ │ │ │ │ ├── string.h
│ │ │ │ │ │ ├── string_header.h
│ │ │ │ │ │ ├── struct.h
│ │ │ │ │ │ └── struct_header.h
│ │ │ │ │ ├── classes.h
│ │ │ │ │ ├── classes_header.h
│ │ │ │ │ ├── enum.h
│ │ │ │ │ ├── functions.h
│ │ │ │ │ ├── functions_header.h
│ │ │ │ │ ├── macro.h
│ │ │ │ │ ├── native/
│ │ │ │ │ │ ├── double.h
│ │ │ │ │ │ ├── double_header.h
│ │ │ │ │ │ ├── int.h
│ │ │ │ │ │ └── int_header.h
│ │ │ │ │ ├── native.h
│ │ │ │ │ ├── native_header.h
│ │ │ │ │ ├── nerd.cpp
│ │ │ │ │ ├── nerd.hpp
│ │ │ │ │ ├── objmgmt.h
│ │ │ │ │ ├── objmgmt_header.h
│ │ │ │ │ ├── operator.h
│ │ │ │ │ ├── operator_header.h
│ │ │ │ │ ├── stdfn.h
│ │ │ │ │ ├── stdfn_header.h
│ │ │ │ │ ├── tsl/
│ │ │ │ │ │ ├── robin_growth_policy.h
│ │ │ │ │ │ ├── robin_hash.h
│ │ │ │ │ │ ├── robin_map.h
│ │ │ │ │ │ └── robin_set.h
│ │ │ │ │ ├── type_header.h
│ │ │ │ │ ├── values.h
│ │ │ │ │ ├── values_header.h
│ │ │ │ │ ├── var.h
│ │ │ │ │ └── var_header.h
│ │ │ │ └── test/
│ │ │ │ ├── array.cpp
│ │ │ │ ├── cast.cpp
│ │ │ │ ├── native.cpp
│ │ │ │ ├── object.cpp
│ │ │ │ └── operators.cpp
│ │ │ └── squel/
│ │ │ ├── arduino.cpp
│ │ │ ├── js.cpp
│ │ │ ├── std.cpp
│ │ │ └── wasm.cpp
│ │ └── self/
│ │ ├── base/
│ │ │ ├── cli/
│ │ │ │ └── cliParser.ng
│ │ │ ├── compiler/
│ │ │ │ └── target.js
│ │ │ └── util/
│ │ │ ├── copyDirSync.js
│ │ │ ├── copyRecursive.js
│ │ │ ├── flash.js
│ │ │ ├── getExt.js
│ │ │ ├── getTips.js
│ │ │ ├── httpUtils.js
│ │ │ └── rmdir.js
│ │ └── nerd.ng
│ ├── lib/
│ │ ├── check/
│ │ │ ├── isAssignment.js
│ │ │ ├── isBoolean.js
│ │ │ ├── isDelimiter.js
│ │ │ ├── isIncrement.js
│ │ │ ├── isInitOperator.js
│ │ │ ├── isKeyword.js
│ │ │ ├── isNative.js
│ │ │ ├── isNumber.js
│ │ │ ├── isObjectOperator.js
│ │ │ ├── isOperator.js
│ │ │ ├── isSemi.js
│ │ │ ├── isString.js
│ │ │ ├── isUnary.js
│ │ │ └── isVariable.js
│ │ ├── env.js
│ │ ├── include.js
│ │ ├── package.js
│ │ ├── parser.js
│ │ ├── require.js
│ │ └── verify.js
│ ├── nerd.js
│ └── package.json
└── test/
├── accessor.ng
├── builtin.ng
├── comments.ng
├── conditionals.ng
├── function.ng
├── loop.ng
├── native.ng
└── var.ng
Showing preview only (469K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (5837 symbols across 574 files)
FILE: compiler/native/compiler.js
function loadEnv (line 25) | function loadEnv()
function Compiler (line 39) | function Compiler()
FILE: compiler/native/env/arduino.js
function getOptions (line 13) | function getOptions()
FILE: compiler/native/nerdcore/src/class/_meta.h
function namespace (line 27) | namespace NerdCore::Class
FILE: compiler/native/nerdcore/src/class/array.h
function namespace (line 29) | namespace NerdCore::Class
function Delete (line 47) | inline void Array::Delete() noexcept
function Size (line 54) | double Array::Size()
function jsDelete (line 58) | inline void Array::jsDelete(NerdCore::VAR _key) noexcept
FILE: compiler/native/nerdcore/src/class/array_header.h
function namespace (line 27) | namespace NerdCore::Class
FILE: compiler/native/nerdcore/src/class/base_header.h
function namespace (line 27) | namespace NerdCore::Class
FILE: compiler/native/nerdcore/src/class/fixed_array.h
function namespace (line 29) | namespace NerdCore::Class
function Delete (line 58) | inline void FixedArray::Delete() noexcept
function FixedArray (line 214) | FixedArray FixedArray::operator!() const
function FixedArray (line 223) | FixedArray FixedArray::operator+() const
function FixedArray (line 230) | FixedArray FixedArray::operator-() const
function FixedArray (line 258) | FixedArray FixedArray::operator+=(const FixedArray &_v1)
function FixedArray (line 272) | FixedArray FixedArray::operator-=(const FixedArray &_v1)
function FixedArray (line 279) | FixedArray FixedArray::operator*(const FixedArray &_v1) const
function FixedArray (line 286) | FixedArray FixedArray::operator*=(const FixedArray &_v1)
function FixedArray (line 294) | FixedArray FixedArray::operator/(const FixedArray &_v1) const
function FixedArray (line 301) | FixedArray FixedArray::operator/=(const FixedArray &_v1)
function FixedArray (line 308) | FixedArray FixedArray::operator%(const FixedArray &_v1) const
function FixedArray (line 315) | FixedArray FixedArray::operator%=(const FixedArray &_v1)
function FixedArray (line 329) | FixedArray FixedArray::operator|(const FixedArray &_v1) const
function FixedArray (line 336) | FixedArray FixedArray::operator^(const FixedArray &_v1) const
function FixedArray (line 343) | FixedArray FixedArray::operator~() const
function FixedArray (line 350) | FixedArray FixedArray::operator>>(const FixedArray &_v1) const
function FixedArray (line 357) | FixedArray FixedArray::operator<<(const FixedArray &_v1) const
function FixedArray (line 364) | FixedArray FixedArray::operator&=(const FixedArray &_v1)
function FixedArray (line 371) | FixedArray FixedArray::operator|=(const FixedArray &_v1)
function FixedArray (line 378) | FixedArray FixedArray::operator^=(const FixedArray &_v1)
function FixedArray (line 385) | FixedArray FixedArray::operator>>=(const FixedArray &_v1)
function FixedArray (line 392) | FixedArray FixedArray::operator<<=(const FixedArray &_v1)
FILE: compiler/native/nerdcore/src/class/fixed_array_header.h
function namespace (line 27) | namespace NerdCore::Class
FILE: compiler/native/nerdcore/src/class/function.h
function namespace (line 29) | namespace NerdCore::Class
function Function (line 233) | Function Function::operator+() const
function Function (line 240) | Function Function::operator-() const
function Function (line 268) | Function Function::operator+=(const Function &_v1)
function Function (line 282) | Function Function::operator-=(const Function &_v1)
function Function (line 289) | Function Function::operator*(const Function &_v1) const
function Function (line 296) | Function Function::operator*=(const Function &_v1)
function Function (line 304) | Function Function::operator/(const Function &_v1) const
function Function (line 311) | Function Function::operator/=(const Function &_v1)
function Function (line 318) | Function Function::operator%(const Function &_v1) const
function Function (line 325) | Function Function::operator%=(const Function &_v1)
function Function (line 339) | Function Function::operator|(const Function &_v1) const
function Function (line 346) | Function Function::operator^(const Function &_v1) const
function Function (line 353) | Function Function::operator~() const
function Function (line 360) | Function Function::operator>>(const Function &_v1) const
function Function (line 367) | Function Function::operator<<(const Function &_v1) const
function Function (line 374) | Function Function::operator&=(const Function &_v1)
function Function (line 381) | Function Function::operator|=(const Function &_v1)
function Function (line 388) | Function Function::operator^=(const Function &_v1)
function Function (line 395) | Function Function::operator>>=(const Function &_v1)
function Function (line 402) | Function Function::operator<<=(const Function &_v1)
FILE: compiler/native/nerdcore/src/class/function_header.h
function namespace (line 27) | namespace NerdCore::Class
FILE: compiler/native/nerdcore/src/class/native.h
function namespace (line 29) | namespace NerdCore::Class
FILE: compiler/native/nerdcore/src/class/native_header.h
function namespace (line 27) | namespace NerdCore::Class
FILE: compiler/native/nerdcore/src/class/native_tpl_header.h
function namespace (line 28) | namespace NerdCore::Class
function Delete (line 79) | inline void Delete() noexcept
function operator (line 132) | operator std::string() const noexcept
function NativeTPL (line 229) | NativeTPL operator-=(const NativeTPL<T> &_v1)
function NativeTPL (line 243) | NativeTPL operator*=(const NativeTPL<T> &_v1)
function NativeTPL (line 251) | NativeTPL operator/(const NativeTPL<T> &_v1) const
function NativeTPL (line 258) | NativeTPL operator/=(const NativeTPL<T> &_v1)
function NativeTPL (line 265) | NativeTPL operator%(const NativeTPL<T> &_v1) const
function NativeTPL (line 272) | NativeTPL operator%=(const NativeTPL<T> &_v1)
function NativeTPL (line 286) | NativeTPL operator|(const NativeTPL<T> &_v1) const
function NativeTPL (line 293) | NativeTPL operator^(const NativeTPL<T> &_v1) const
function NativeTPL (line 314) | NativeTPL operator<<(const NativeTPL<T> &_v1) const
function NativeTPL (line 321) | NativeTPL operator&=(const NativeTPL<T> &_v1)
function NativeTPL (line 328) | NativeTPL operator|=(const NativeTPL<T> &_v1)
function NativeTPL (line 335) | NativeTPL operator^=(const NativeTPL<T> &_v1)
function NativeTPL (line 342) | NativeTPL operator>>=(const NativeTPL<T> &_v1)
function NativeTPL (line 349) | NativeTPL operator<<=(const NativeTPL<T> &_v1)
FILE: compiler/native/nerdcore/src/class/number.h
function namespace (line 24) | namespace NerdCore::Class::NUMBER
FILE: compiler/native/nerdcore/src/class/number_header.h
function namespace (line 24) | namespace NerdCore::Class::NUMBER
FILE: compiler/native/nerdcore/src/class/object.h
function namespace (line 28) | namespace NerdCore::Class
function Size (line 61) | double Object::Size()
function Delete (line 66) | inline void Object::Delete() noexcept
function jsDelete (line 73) | inline void Object::jsDelete(const std::string _key) noexcept
function _v1 (line 200) | bool Object::operator==(const Object &_v1) const { return false; }
function _v1 (line 203) | bool Object::operator!=(const Object &_v1) const { return true; }
function _v1 (line 204) | bool Object::operator<(const Object &_v1) const { return false; }
function _v1 (line 205) | bool Object::operator<=(const Object &_v1) const { return true; }
function _v1 (line 206) | bool Object::operator>(const Object &_v1) const { return false; }
function _v1 (line 207) | bool Object::operator>=(const Object &_v1) const { return true; }
FILE: compiler/native/nerdcore/src/class/object_header.h
function namespace (line 27) | namespace NerdCore::Class
FILE: compiler/native/nerdcore/src/class/string.h
function namespace (line 29) | namespace NerdCore::Class
function Delete (line 50) | inline void String::Delete() noexcept
function else (line 147) | else if(keyVar.type == NerdCore::Enum::Type::String)
function _v1 (line 258) | bool String::operator==(const String &_v1) const { return value.compare(...
function _v1 (line 261) | bool String::operator!=(const String &_v1) const { return value.compare(...
function _v1 (line 262) | bool String::operator<(const String &_v1) const { return value.at(0) < _...
function _v1 (line 263) | bool String::operator<=(const String &_v1) const { return value.at(0) <=...
function _v1 (line 264) | bool String::operator>(const String &_v1) const { return value.at(0) > _...
function _v1 (line 265) | bool String::operator>=(const String &_v1) const { return value.at(0) >=...
FILE: compiler/native/nerdcore/src/class/string_header.h
function namespace (line 27) | namespace NerdCore::Class
FILE: compiler/native/nerdcore/src/class/struct.h
function namespace (line 29) | namespace NerdCore::Class
function _v1 (line 177) | bool Struct::operator==(const NerdCore::VAR &_v1) const { return false; }
function _v1 (line 180) | bool Struct::operator!=(const NerdCore::VAR &_v1) const { return true; }
function _v1 (line 181) | bool Struct::operator<(const NerdCore::VAR &_v1) const { return false; }
function _v1 (line 182) | bool Struct::operator<=(const NerdCore::VAR &_v1) const { return true; }
function _v1 (line 183) | bool Struct::operator>(const NerdCore::VAR &_v1) const { return false; }
function _v1 (line 184) | bool Struct::operator>=(const NerdCore::VAR &_v1) const { return true; }
FILE: compiler/native/nerdcore/src/class/struct_header.h
function namespace (line 27) | namespace NerdCore::Class
FILE: compiler/native/nerdcore/src/enum.h
function namespace (line 24) | namespace NerdCore::Enum
FILE: compiler/native/nerdcore/src/functions_header.h
function namespace (line 35) | namespace std
function string (line 82) | string __NERD_Concat_To_Str(m _left, n _right)
FILE: compiler/native/nerdcore/src/nerd.hpp
type NerdCore (line 65) | namespace NerdCore
type VAR (line 67) | struct VAR
type Class (line 69) | namespace Class
class Base (line 71) | class Base
class Undefined (line 72) | class Undefined
class Boolean (line 73) | class Boolean
class String (line 74) | class String
class Array (line 75) | class Array
class Object (line 76) | class Object
class Function (line 77) | class Function
class Native (line 78) | class Native
class Struct (line 79) | class Struct
class FixedArray (line 80) | class FixedArray
FILE: compiler/native/nerdcore/src/objmgmt.h
function else (line 31) | else if(_left.type == NerdCore::Enum::Type::Array)
function else (line 36) | else if(_left.type == NerdCore::Enum::Type::Function)
function else (line 102) | else if (_array.type == NerdCore::Enum::Type::Object || _array.type == N...
FILE: compiler/native/nerdcore/src/objmgmt_header.h
function NerdCore (line 44) | inline NerdCore::Global::var NewArray()
function NerdCore (line 49) | inline NerdCore::Global::var FixedArray()
function NerdCore (line 54) | inline NerdCore::Global::var FixedArray(NerdCore::Global::var _length)
function NerdCore (line 59) | inline NerdCore::Global::var FixedArray(int _length)
FILE: compiler/native/nerdcore/src/operator.h
function else (line 503) | else if (_t == NerdCore::Enum::Type::Array)
function __NERD_Object_Construct (line 624) | void __NERD_Object_Construct(NerdCore::VAR _this, NerdCore::VAR _prototype)
function __NERD_Create_Lambda (line 669) | __NERD_Create_Lambda(__IMPL_EVAL)
function operator (line 731) | void operator+= (NerdCore::VAR& _left, std::string right)
function operator (line 738) | void operator+= (NerdCore::VAR& _left, const char* right)
function operator (line 745) | void operator+= (NerdCore::VAR& _left, int right)
function operator (line 756) | void operator+= (NerdCore::VAR& _left, double right)
FILE: compiler/native/nerdcore/src/operator_header.h
function operator (line 75) | inline bool operator< (NerdCore::VAR _left, const int right) noexcept
function operator (line 79) | inline bool operator< (NerdCore::VAR _left, const long long int right) n...
function operator (line 83) | inline bool operator< (NerdCore::VAR _left, const double right) noexcept
function operator (line 91) | inline bool operator<= (NerdCore::VAR _left, const int right) noexcept
function operator (line 95) | inline bool operator<= (NerdCore::VAR _left, const long long int right) ...
function operator (line 99) | inline bool operator<= (NerdCore::VAR _left, const double right) noexcept
function operator (line 107) | inline bool operator> (NerdCore::VAR _left, const int right) noexcept
function operator (line 111) | inline bool operator> (NerdCore::VAR _left, const long long int right) n...
function operator (line 115) | inline bool operator> (NerdCore::VAR _left, const double right) noexcept
function operator (line 123) | inline const bool operator>= (NerdCore::VAR _left, const int right) noex...
function operator (line 127) | inline bool operator>= (NerdCore::VAR _left, const long long int right) ...
function operator (line 131) | inline bool operator>= (NerdCore::VAR _left, const double right) noexcept
FILE: compiler/native/nerdcore/src/stdfn.h
function namespace (line 24) | namespace NerdCore::Functions
FILE: compiler/native/nerdcore/src/stdfn_header.h
function namespace (line 24) | namespace NerdCore::Functions
FILE: compiler/native/nerdcore/src/tsl/robin_growth_policy.h
function namespace (line 74) | namespace tsl {
function clear (line 221) | void clear() noexcept { m_mod = 1; }
function namespace (line 236) | namespace detail {
function class (line 359) | class prime_growth_policy {
function clear (line 393) | void clear() noexcept { m_iprime = 0; }
FILE: compiler/native/nerdcore/src/tsl/robin_hash.h
function namespace (line 45) | namespace tsl {
function clear (line 242) | void clear() noexcept {
function set_as_last_bucket (line 279) | void set_as_last_bucket() noexcept { m_last_bucket = true; }
function truncated_hash_type (line 315) | static truncated_hash_type truncate_hash(std::size_t hash) noexcept {
function USE_STORED_HASH_ON_REHASH (line 422) | static bool USE_STORED_HASH_ON_REHASH(size_type bucket_count) {
function m_bucket (line 465) | robin_iterator(bucket_entry_ptr bucket) noexcept : m_bucket(bucket) {}
function reference (line 505) | reference operator*() const { return m_bucket->value(); }
function pointer (line 507) | pointer operator->() const { return std::addressof(m_bucket->value()); }
function iterator (line 688) | iterator begin() noexcept {
function const_iterator (line 697) | const_iterator begin() const noexcept { return cbegin(); }
function iterator (line 708) | iterator end() noexcept { return iterator(m_buckets + m_bucket_count); }
function const_iterator (line 710) | const_iterator end() const noexcept { return cend(); }
function clear (line 728) | void clear() noexcept {
function iterator (line 828) | iterator erase(iterator pos) {
function iterator (line 845) | iterator erase(const_iterator pos) { return erase(mutable_iterator(pos)); }
function iterator (line 847) | iterator erase(const_iterator first, const_iterator last) {
function swap (line 928) | void swap(robin_hash& other) {
function typename (line 963) | typename U::value_type& at(const K& key) const {
function typename (line 969) | typename U::value_type& at(const K& key, std::size_t hash) const {
function hash (line 1004) | size_t hash) {
function size_type (line 1056) | size_type max_bucket_count() const {
function min_load_factor (line 1076) | void min_load_factor(float ml) {
function max_load_factor (line 1081) | void max_load_factor(float ml) {
function rehash (line 1088) | void rehash(size_type count_) {
function reserve (line 1094) | void reserve(size_type count_) {
function iterator (line 1108) | iterator mutable_iterator(const_iterator pos) {
function next_bucket (line 1144) | size_t next_bucket(std::size_t index) const noexcept {
function next_bucket (line 1153) | size_t next_bucket(std::size_t index) const noexcept {
function hash (line 1161) | size_t hash) {
function erase_from_bucket (line 1187) | void erase_from_bucket(iterator pos) {
function insert_value (line 1273) | void insert_value(std::size_t ibucket, distance_type dist_from_ideal_buc...
function insert_value_impl (line 1286) | void insert_value_impl(std::size_t ibucket,
function rehash_impl (line 1320) | void rehash_impl(size_type count_) {
function clear_and_shrink (line 1346) | void clear_and_shrink() noexcept {
function insert_value_on_rehash (line 1357) | void insert_value_on_rehash(std::size_t ibucket,
function rehash_on_extreme_load (line 1385) | bool rehash_on_extreme_load() {
FILE: compiler/native/nerdcore/src/tsl/robin_map.h
function namespace (line 36) | namespace tsl {
function iterator (line 213) | iterator begin() noexcept { return m_ht.begin(); }
function iterator (line 217) | iterator end() noexcept { return m_ht.end(); }
function clear (line 231) | void clear() noexcept { m_ht.clear(); }
function iterator (line 247) | iterator insert(const_iterator hint, const value_type& value) {
function iterator (line 257) | iterator insert(const_iterator hint, value_type&& value) {
function insert (line 266) | void insert(std::initializer_list<value_type> ilist) {
function iterator (line 335) | iterator erase(iterator pos) { return m_ht.erase(pos); }
function iterator (line 336) | iterator erase(const_iterator pos) { return m_ht.erase(pos); }
function iterator (line 337) | iterator erase(const_iterator first, const_iterator last) {
function size_type (line 340) | size_type erase(const key_type& key) { return m_ht.erase(key); }
function size_type (line 347) | size_type erase(const key_type& key, std::size_t precalculated_hash) {
function precalculated_hash (line 373) | size_t precalculated_hash) {
function swap (line 377) | void swap(robin_map& other) { other.m_ht.swap(m_ht); }
function T (line 393) | const T& at(const Key& key) const { return m_ht.at(key); }
function T (line 398) | const T& at(const Key& key, std::size_t precalculated_hash) const {
function size_type (line 451) | size_type count(const Key& key) const { return m_ht.count(key); }
function size_type (line 458) | size_type count(const Key& key, std::size_t precalculated_hash) const {
function iterator (line 488) | iterator find(const Key& key) { return m_ht.find(key); }
function iterator (line 495) | iterator find(const Key& key, std::size_t precalculated_hash) {
function const_iterator (line 499) | const_iterator find(const Key& key) const { return m_ht.find(key); }
function const_iterator (line 504) | const_iterator find(const Key& key, std::size_t precalculated_hash) const {
function precalculated_hash (line 530) | size_t precalculated_hash) {
function contains (line 558) | bool contains(const Key& key) const { return m_ht.contains(key); }
function contains (line 565) | bool contains(const Key& key, std::size_t precalculated_hash) const {
function min_load_factor (line 692) | void min_load_factor(float ml) { m_ht.min_load_factor(ml); }
function max_load_factor (line 693) | void max_load_factor(float ml) { m_ht.max_load_factor(ml); }
function rehash (line 695) | void rehash(size_type count_) { m_ht.rehash(count_); }
function reserve (line 696) | void reserve(size_type count_) { m_ht.reserve(count_); }
function iterator (line 711) | iterator mutable_iterator(const_iterator pos) {
FILE: compiler/native/nerdcore/src/tsl/robin_set.h
function namespace (line 36) | namespace tsl {
function iterator (line 190) | iterator begin() noexcept { return m_ht.begin(); }
function iterator (line 194) | iterator end() noexcept { return m_ht.end(); }
function clear (line 208) | void clear() noexcept { m_ht.clear(); }
function iterator (line 218) | iterator insert(const_iterator hint, const value_type& value) {
function iterator (line 222) | iterator insert(const_iterator hint, value_type&& value) {
function insert (line 231) | void insert(std::initializer_list<value_type> ilist) {
function iterator (line 259) | iterator erase(iterator pos) { return m_ht.erase(pos); }
function iterator (line 260) | iterator erase(const_iterator pos) { return m_ht.erase(pos); }
function iterator (line 261) | iterator erase(const_iterator first, const_iterator last) {
function size_type (line 264) | size_type erase(const key_type& key) { return m_ht.erase(key); }
function size_type (line 271) | size_type erase(const key_type& key, std::size_t precalculated_hash) {
function precalculated_hash (line 297) | size_t precalculated_hash) {
function swap (line 301) | void swap(robin_set& other) { other.m_ht.swap(m_ht); }
function size_type (line 306) | size_type count(const Key& key) const { return m_ht.count(key); }
function size_type (line 313) | size_type count(const Key& key, std::size_t precalculated_hash) const {
function iterator (line 343) | iterator find(const Key& key) { return m_ht.find(key); }
function iterator (line 350) | iterator find(const Key& key, std::size_t precalculated_hash) {
function const_iterator (line 354) | const_iterator find(const Key& key) const { return m_ht.find(key); }
function const_iterator (line 359) | const_iterator find(const Key& key, std::size_t precalculated_hash) const {
function precalculated_hash (line 385) | size_t precalculated_hash) {
function contains (line 413) | bool contains(const Key& key) const { return m_ht.contains(key); }
function contains (line 420) | bool contains(const Key& key, std::size_t precalculated_hash) const {
function min_load_factor (line 547) | void min_load_factor(float ml) { m_ht.min_load_factor(ml); }
function max_load_factor (line 548) | void max_load_factor(float ml) { m_ht.max_load_factor(ml); }
function rehash (line 550) | void rehash(size_type count_) { m_ht.rehash(count_); }
function reserve (line 551) | void reserve(size_type count_) { m_ht.reserve(count_); }
function iterator (line 566) | iterator mutable_iterator(const_iterator pos) {
FILE: compiler/native/nerdcore/src/type_header.h
function namespace (line 27) | namespace NerdCore
FILE: compiler/native/nerdcore/src/values.h
function namespace (line 24) | namespace NerdCore::Global
FILE: compiler/native/nerdcore/src/values_header.h
function namespace (line 24) | namespace NerdCore::Global
FILE: compiler/native/nerdcore/src/var.h
function namespace (line 24) | namespace NerdCore
function VAR (line 507) | VAR VAR::operator==(const VAR &_v1) const
function VAR (line 539) | VAR VAR::operator!=(const VAR &_v1)
function VAR (line 546) | VAR VAR::operator<(const VAR &_v1)
function VAR (line 551) | VAR VAR::operator<=(const VAR &_v1)
function VAR (line 555) | VAR VAR::operator>(const VAR &_v1)
function VAR (line 559) | VAR VAR::operator>=(const VAR &_v1)
function VAR (line 573) | VAR VAR::operator|(const VAR &_v1)
function VAR (line 577) | VAR VAR::operator|=(const VAR &_v1)
function VAR (line 589) | VAR VAR::operator^(const VAR &_v1) { return (int)*this ^ (int)_v1; }
function VAR (line 590) | VAR VAR::operator^=(const VAR &_v1)
FILE: compiler/native/nerdcore/src/var_header.h
function namespace (line 24) | namespace NerdCore
FILE: compiler/native/nerdcore/test/array.cpp
function main (line 7) | int main(int argc, char** argv)
FILE: compiler/native/nerdcore/test/cast.cpp
function main (line 8) | int main()
FILE: compiler/native/nerdcore/test/native.cpp
type s (line 7) | struct s
function main (line 15) | int main(int argc, char** argv)
FILE: compiler/native/nerdcore/test/object.cpp
function main (line 7) | int main(int argc, char** argv)
FILE: compiler/native/nerdcore/test/operators.cpp
function main (line 8) | int main()
FILE: compiler/native/squel/arduino.cpp
function atexit (line 38) | int atexit(void (* /*func*/ )()) { return 0; }
function initVariant (line 42) | void initVariant() { }
function setupUSB (line 45) | void setupUSB() { }
function main (line 50) | int main(int argc, char* argv[])
FILE: compiler/native/squel/js.cpp
function ToFixed (line 46) | std::string ToFixed(double number, size_t digits)
function main (line 55) | int main(int __NERD_VARLENGTH, char* __Nerd_Argv[])
FILE: compiler/native/squel/std.cpp
function main (line 47) | int main(int __NERD_VARLENGTH, char* __Nerd_Argv[])
FILE: compiler/native/squel/wasm.cpp
function main (line 13) | int main(int __NERD_VARLENGTH, char* __Nerd_Argv[])
FILE: compiler/self/base/util/copyDirSync.js
function copyDirSync (line 24) | function copyDirSync( source, target )
function copyFolderRecursiveSync (line 37) | function copyFolderRecursiveSync( source, target, _root )
FILE: compiler/self/base/util/flash.js
function Flash (line 28) | function Flash(from, to, target, verb)
function execFlashArduino (line 51) | function execFlashArduino(from, to, model, driver, bauds, verb)
function execFlashSTM32 (line 78) | function execFlashSTM32(from, to)
FILE: compiler/self/base/util/getExt.js
function getExt (line 26) | function getExt(target)
FILE: compiler/self/base/util/getTips.js
function getTips (line 26) | function getTips(target, file)
FILE: compiler/self/base/util/httpUtils.js
function httpUtil (line 37) | function httpUtil(httpHandler)
FILE: compiler/self/base/util/rmdir.js
function recursiveRm (line 49) | function recursiveRm(from, i, j, list, cb)
FILE: external/arduino/avr/bootloaders/atmega/ATmegaBOOT_168.c
type flags_struct (line 258) | struct flags_struct {
function main (line 277) | int main(void)
function gethexnib (line 884) | char gethexnib(void) {
function gethex (line 896) | char gethex(void) {
function puthex (line 901) | void puthex(char ch) {
function putch (line 923) | void putch(char ch)
function getch (line 945) | char getch(void)
function getNch (line 997) | void getNch(uint8_t count)
function byte_response (line 1022) | void byte_response(uint8_t val)
function nothing_response (line 1035) | void nothing_response(void)
function flash_led (line 1046) | void flash_led(uint8_t count)
FILE: external/arduino/avr/bootloaders/atmega8/ATmegaBOOT.c
type flags_struct (line 112) | struct flags_struct {
function main (line 128) | int main(void)
function putch (line 456) | void putch(char ch)
function getch (line 463) | char getch(void)
function getNch (line 476) | void getNch(uint8_t count)
function byte_response (line 487) | void byte_response(uint8_t val)
function nothing_response (line 496) | void nothing_response(void)
FILE: external/arduino/avr/bootloaders/bt/ATmegaBOOT_168.c
type flags_struct (line 250) | struct flags_struct {
function main (line 267) | int main(void)
function gethex (line 879) | char gethex(void) {
function puthex (line 898) | void puthex(char ch) {
function putch (line 918) | void putch(char ch)
function getch (line 940) | char getch(void)
function getNch (line 977) | void getNch(uint8_t count)
function byte_response (line 1007) | void byte_response(uint8_t val)
function nothing_response (line 1017) | void nothing_response(void)
function flash_led (line 1025) | void flash_led(uint8_t count)
FILE: external/arduino/avr/bootloaders/caterina-Arduino_Robot/Caterina.c
function StartSketch (line 98) | void StartSketch(void)
function main (line 124) | int main(void)
function EVENT_USB_Device_ConfigurationChanged (line 282) | void EVENT_USB_Device_ConfigurationChanged(void)
function EVENT_USB_Device_ControlRequest (line 302) | void EVENT_USB_Device_ControlRequest(void)
function ReadWriteMemoryBlock (line 345) | static void ReadWriteMemoryBlock(const uint8_t Command)
function FetchNextCommandByte (line 467) | static uint8_t FetchNextCommandByte(void)
function WriteNextResponseByte (line 493) | static void WriteNextResponseByte(const uint8_t Response)
function CDC_Task (line 534) | void CDC_Task(void)
FILE: external/arduino/avr/bootloaders/caterina-Arduino_Robot/Descriptors.c
function CALLBACK_USB_GetDescriptor (line 228) | uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
FILE: external/arduino/avr/bootloaders/caterina-Arduino_Robot/Descriptors.h
type USB_Descriptor_Configuration_t (line 115) | typedef struct
FILE: external/arduino/avr/bootloaders/caterina-LilyPadUSB/Caterina.c
function StartSketch (line 98) | void StartSketch(void)
function main (line 124) | int main(void)
function EVENT_USB_Device_ConfigurationChanged (line 282) | void EVENT_USB_Device_ConfigurationChanged(void)
function EVENT_USB_Device_ControlRequest (line 302) | void EVENT_USB_Device_ControlRequest(void)
function ReadWriteMemoryBlock (line 345) | static void ReadWriteMemoryBlock(const uint8_t Command)
function FetchNextCommandByte (line 467) | static uint8_t FetchNextCommandByte(void)
function WriteNextResponseByte (line 493) | static void WriteNextResponseByte(const uint8_t Response)
function CDC_Task (line 534) | void CDC_Task(void)
FILE: external/arduino/avr/bootloaders/caterina-LilyPadUSB/Descriptors.c
function CALLBACK_USB_GetDescriptor (line 218) | uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
FILE: external/arduino/avr/bootloaders/caterina-LilyPadUSB/Descriptors.h
type USB_Descriptor_Configuration_t (line 115) | typedef struct
FILE: external/arduino/avr/bootloaders/caterina/Caterina.c
function StartSketch (line 71) | void StartSketch(void)
function LEDPulse (line 95) | void LEDPulse(void)
function main (line 111) | int main(void)
function SetupHardware (line 162) | void SetupHardware(void)
function EVENT_USB_Device_ConfigurationChanged (line 216) | void EVENT_USB_Device_ConfigurationChanged(void)
function EVENT_USB_Device_ControlRequest (line 236) | void EVENT_USB_Device_ControlRequest(void)
function ReadWriteMemoryBlock (line 279) | static void ReadWriteMemoryBlock(const uint8_t Command)
function FetchNextCommandByte (line 401) | static uint8_t FetchNextCommandByte(void)
function WriteNextResponseByte (line 427) | static void WriteNextResponseByte(const uint8_t Response)
function CDC_Task (line 468) | void CDC_Task(void)
FILE: external/arduino/avr/bootloaders/caterina/Descriptors.c
function CALLBACK_USB_GetDescriptor (line 224) | uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
FILE: external/arduino/avr/bootloaders/caterina/Descriptors.h
type USB_Descriptor_Configuration_t (line 115) | typedef struct
FILE: external/arduino/avr/bootloaders/lilypad/src/ATmegaBOOT.c
type flags_struct (line 228) | struct flags_struct {
function main (line 247) | int main(void)
function gethex (line 805) | char gethex(void) {
function puthex (line 824) | void puthex(char ch) {
function putch (line 844) | void putch(char ch)
function getch (line 866) | char getch(void)
function getNch (line 903) | void getNch(uint8_t count)
function byte_response (line 933) | void byte_response(uint8_t val)
function nothing_response (line 946) | void nothing_response(void)
function flash_led (line 957) | void flash_led(uint8_t count)
FILE: external/arduino/avr/bootloaders/optiboot/optiboot.c
function main (line 261) | int main(void) {
function putch (line 503) | void putch(char ch) {
function getch (line 533) | uint8_t getch(void) {
function uartDelay (line 605) | void uartDelay() {
function getNch (line 616) | void getNch(uint8_t count) {
function verifySpace (line 621) | void verifySpace() {
function flash_led (line 631) | void flash_led(uint8_t count) {
function watchdogReset (line 647) | void watchdogReset() {
function watchdogConfig (line 653) | void watchdogConfig(uint8_t x) {
function appStart (line 658) | void appStart() {
FILE: external/arduino/avr/bootloaders/stk500v2/stk500boot.c
type address_t (line 408) | typedef uint32_t address_t;
type address_t (line 410) | typedef uint16_t address_t;
function __jumpMain (line 430) | void __jumpMain(void)
function delay_ms (line 452) | void delay_ms(unsigned int timedelay)
function sendchar (line 466) | static void sendchar(char c)
function Serial_Available (line 475) | static int Serial_Available(void)
function recchar (line 485) | static unsigned char recchar(void)
function recchar_timeout (line 496) | static unsigned char recchar_timeout(void)
function main (line 531) | int main(void)
function PrintFromPROGMEM (line 1289) | void PrintFromPROGMEM(const void *dataPtr, unsigned char offset)
function PrintNewLine (line 1309) | void PrintNewLine(void)
function PrintFromPROGMEMln (line 1317) | void PrintFromPROGMEMln(const void *dataPtr, unsigned char offset)
function PrintString (line 1326) | void PrintString(char *textString)
function PrintHexByte (line 1345) | void PrintHexByte(unsigned char theByte)
function PrintDecInt (line 1365) | void PrintDecInt(int theNumber, int digitCnt)
function PrintCPUstats (line 1391) | static void PrintCPUstats(void)
function BlinkLED (line 1452) | static void BlinkLED(void)
function DumpHex (line 1475) | static void DumpHex(unsigned char dumpWhat, unsigned long startAddress, ...
function VectorDisplay (line 1625) | static void VectorDisplay(void)
function PrintAvailablePort (line 1747) | static void PrintAvailablePort(char thePortLetter)
function ListAvailablePorts (line 1755) | static void ListAvailablePorts(void)
function AVR_PortOutput (line 1809) | static void AVR_PortOutput(void)
function PrintHelp (line 1988) | static void PrintHelp(void)
function RunMonitor (line 2006) | static void RunMonitor(void)
FILE: external/arduino/avr/cores/arduino/Arduino.h
type word (line 122) | typedef unsigned int word;
type boolean (line 126) | typedef bool boolean;
type byte (line 127) | typedef uint8_t byte;
FILE: external/arduino/avr/cores/arduino/CDC.cpp
function isLUFAbootloader (line 60) | bool isLUFAbootloader()
function CDC_GetInterface (line 65) | int CDC_GetInterface(u8* interfaceNum)
function CDC_Setup (line 71) | bool CDC_Setup(USBSetup& setup)
function ATOMIC_BLOCK (line 263) | ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
function ATOMIC_BLOCK (line 293) | ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
FILE: external/arduino/avr/cores/arduino/Client.h
function class (line 26) | class Client : public Stream {
FILE: external/arduino/avr/cores/arduino/HardwareSerial.cpp
function serialEventRun (line 64) | void serialEventRun(void)
function ATOMIC_BLOCK (line 241) | ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
function ATOMIC_BLOCK (line 273) | ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
FILE: external/arduino/avr/cores/arduino/HardwareSerial.h
type tx_buffer_index_t (line 57) | typedef uint16_t tx_buffer_index_t;
type tx_buffer_index_t (line 59) | typedef uint8_t tx_buffer_index_t;
type rx_buffer_index_t (line 62) | typedef uint16_t rx_buffer_index_t;
type rx_buffer_index_t (line 64) | typedef uint8_t rx_buffer_index_t;
function class (line 93) | class HardwareSerial : public Stream
FILE: external/arduino/avr/cores/arduino/HardwareSerial0.cpp
function Serial0_available (line 75) | bool Serial0_available() {
FILE: external/arduino/avr/cores/arduino/HardwareSerial1.cpp
function Serial1_available (line 65) | bool Serial1_available() {
FILE: external/arduino/avr/cores/arduino/HardwareSerial2.cpp
function ISR (line 39) | ISR(USART2_RX_vect)
function ISR (line 44) | ISR(USART2_UDRE_vect)
function Serial2_available (line 53) | bool Serial2_available() {
FILE: external/arduino/avr/cores/arduino/HardwareSerial3.cpp
function ISR (line 39) | ISR(USART3_RX_vect)
function ISR (line 44) | ISR(USART3_UDRE_vect)
function Serial3_available (line 53) | bool Serial3_available() {
FILE: external/arduino/avr/cores/arduino/IPAddress.cpp
function IPAddress (line 86) | IPAddress& IPAddress::operator=(const uint8_t *address)
function IPAddress (line 92) | IPAddress& IPAddress::operator=(uint32_t address)
FILE: external/arduino/avr/cores/arduino/IPAddress.h
function class (line 29) | class IPAddress : public Printable {
FILE: external/arduino/avr/cores/arduino/PluggableUSB.cpp
function PluggableUSB_ (line 100) | PluggableUSB_& PluggableUSB()
FILE: external/arduino/avr/cores/arduino/PluggableUSB.h
function class (line 28) | class PluggableUSBModule {
function class (line 52) | class PluggableUSB_ {
FILE: external/arduino/avr/cores/arduino/Print.h
function class (line 37) | class Print
function getWriteError (line 48) | int getWriteError() { return write_error; }
function clearWriteError (line 49) | void clearWriteError() { setWriteError(0); }
function write (line 52) | size_t write(const char *str) {
function write (line 57) | size_t write(const char *buffer, size_t size) {
function virtual (line 63) | virtual int availableForWrite() { return 0; }
function virtual (line 90) | virtual void flush() { /* Empty implementation for backward compatibilit...
FILE: external/arduino/avr/cores/arduino/Printable.h
function class (line 33) | class Printable
FILE: external/arduino/avr/cores/arduino/Server.h
function class (line 25) | class Server : public Print {
FILE: external/arduino/avr/cores/arduino/Stream.cpp
function String (line 231) | String Stream::readString()
function String (line 243) | String Stream::readStringUntil(char terminator)
type Stream::MultiTarget (line 255) | struct Stream::MultiTarget
type MultiTarget (line 258) | struct MultiTarget
type MultiTarget (line 268) | struct MultiTarget
FILE: external/arduino/avr/cores/arduino/Stream.h
type LookaheadMode (line 41) | enum LookaheadMode{
function class (line 49) | class Stream : public Print
FILE: external/arduino/avr/cores/arduino/Tone.cpp
function toneBegin (line 128) | static int8_t toneBegin(uint8_t _pin)
function tone (line 243) | void tone(uint8_t _pin, unsigned int frequency, unsigned long duration)
function disableTimer (line 426) | void disableTimer(uint8_t _timer)
function noTone (line 480) | void noTone(uint8_t _pin)
function ISR (line 498) | ISR(TIMER0_COMPA_vect)
function ISR (line 518) | ISR(TIMER1_COMPA_vect)
function ISR (line 538) | ISR(TIMER2_COMPA_vect)
function ISR (line 563) | ISR(TIMER3_COMPA_vect)
function ISR (line 583) | ISR(TIMER4_COMPA_vect)
function ISR (line 603) | ISR(TIMER5_COMPA_vect)
FILE: external/arduino/avr/cores/arduino/USBAPI.h
type u8 (line 29) | typedef unsigned char u8;
type u16 (line 30) | typedef unsigned short u16;
type u32 (line 31) | typedef unsigned long u32;
function class (line 58) | class USBDevice_
type ring_buffer (line 77) | struct ring_buffer
function class (line 90) | class Serial_ : public Stream
type USBSetup (line 162) | typedef struct
FILE: external/arduino/avr/cores/arduino/USBCore.cpp
function WaitIN (line 82) | static inline void WaitIN(void)
function ClearIN (line 88) | static inline void ClearIN(void)
function WaitOUT (line 93) | static inline void WaitOUT(void)
function u8 (line 99) | static inline u8 WaitForINOrOUT()
function ClearOUT (line 106) | static inline void ClearOUT(void)
function Recv (line 111) | static inline void Recv(volatile u8* data, u8 count)
function u8 (line 120) | static inline u8 Recv8()
function Send8 (line 128) | static inline void Send8(u8 d)
function SetEP (line 133) | static inline void SetEP(u8 ep)
function u8 (line 138) | static inline u8 FifoByteCount()
function u8 (line 143) | static inline u8 ReceivedSetupInt()
function ClearSetupInt (line 148) | static inline void ClearSetupInt()
function Stall (line 153) | static inline void Stall()
function u8 (line 158) | static inline u8 ReadWriteAllowed()
function u8 (line 163) | static inline u8 Stalled()
function u8 (line 168) | static inline u8 FifoFree()
function ReleaseRX (line 173) | static inline void ReleaseRX()
function ReleaseTX (line 178) | static inline void ReleaseTX()
function u8 (line 183) | static inline u8 FrameNumber()
function u8 (line 191) | u8 USBGetConfiguration(void)
class LockEP (line 197) | class LockEP
method LockEP (line 201) | LockEP(u8 ep) : _sreg(SREG)
function u8 (line 213) | u8 USB_Available(u8 ep)
function USB_Recv (line 221) | int USB_Recv(u8 ep, void* d, int len)
function USB_Recv (line 240) | int USB_Recv(u8 ep)
function u8 (line 249) | u8 USB_SendSpace(u8 ep)
function USB_Send (line 258) | int USB_Send(u8 ep, const void* d, int len)
function InitEP (line 343) | static
function InitEndpoints (line 352) | static
function ClassInterfaceRequest (line 373) | static
function InitControl (line 389) | void InitControl(int end)
function SendControl (line 396) | static
function USB_SendControl (line 412) | int USB_SendControl(u8 flags, const void* d, int len)
function USB_SendStringDescriptor (line 429) | static bool USB_SendStringDescriptor(const u8*string_P, u8 string_len, u...
function USB_RecvControl (line 444) | int USB_RecvControl(void* d, int len)
function u8 (line 465) | static u8 SendInterfaces()
function SendConfiguration (line 481) | static
function SendDescriptor (line 496) | static
function ISR (line 547) | ISR(USB_COM_vect)
function USB_Flush (line 647) | void USB_Flush(u8 ep)
function USB_ClockDisable (line 654) | static inline void USB_ClockDisable()
function USB_ClockEnable (line 664) | static inline void USB_ClockEnable()
function ISR (line 741) | ISR(USB_GEN_vect)
function u8 (line 793) | u8 USBConnected()
FILE: external/arduino/avr/cores/arduino/USBCore.h
type DeviceDescriptor (line 137) | typedef struct {
type ConfigDescriptor (line 155) | typedef struct {
type InterfaceDescriptor (line 169) | typedef struct
type EndpointDescriptor (line 183) | typedef struct
type IADDescriptor (line 195) | typedef struct
type CDCCSInterfaceDescriptor (line 208) | typedef struct
type CDCCSInterfaceDescriptor4 (line 217) | typedef struct
type CMFunctionalDescriptor (line 225) | typedef struct
type ACMFunctionalDescriptor (line 234) | typedef struct
type CDCDescriptor (line 242) | typedef struct
type MSCDescriptor (line 261) | typedef struct
FILE: external/arduino/avr/cores/arduino/Udp.h
function class (line 41) | class UDP : public Stream {
FILE: external/arduino/avr/cores/arduino/WCharacter.h
function boolean (line 46) | inline boolean isAlphaNumeric(int c)
function boolean (line 54) | inline boolean isAlpha(int c)
function boolean (line 62) | inline boolean isAscii(int c)
function boolean (line 69) | inline boolean isWhitespace(int c)
function boolean (line 76) | inline boolean isControl(int c)
function boolean (line 83) | inline boolean isDigit(int c)
function boolean (line 90) | inline boolean isGraph(int c)
function boolean (line 97) | inline boolean isLowerCase(int c)
function boolean (line 104) | inline boolean isPrintable(int c)
function boolean (line 112) | inline boolean isPunct(int c)
function boolean (line 121) | inline boolean isSpace(int c)
function boolean (line 128) | inline boolean isUpperCase(int c)
function boolean (line 136) | inline boolean isHexadecimalDigit(int c)
function toAscii (line 144) | inline int toAscii(int c)
function toLowerCase (line 156) | inline int toLowerCase(int c)
function toUpperCase (line 163) | inline int toUpperCase(int c)
FILE: external/arduino/avr/cores/arduino/WInterrupts.c
function nothing (line 35) | static void nothing(void) {
function attachInterrupt (line 69) | void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int m...
function detachInterrupt (line 219) | void detachInterrupt(uint8_t interruptNum) {
FILE: external/arduino/avr/cores/arduino/WMath.cpp
function randomSeed (line 28) | void randomSeed(unsigned long seed)
function random (line 35) | long random(long howbig)
function random (line 43) | long random(long howsmall, long howbig)
function map (line 52) | long map(long x, long in_min, long in_max, long out_min, long out_max)
function makeWord (line 57) | unsigned int makeWord(unsigned int w) { return w; }
function makeWord (line 58) | unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8...
FILE: external/arduino/avr/cores/arduino/WString.cpp
function String (line 170) | String & String::copy(const char *cstr, unsigned int length)
function String (line 181) | String & String::copy(const __FlashStringHelper *pstr, unsigned int length)
function String (line 214) | String & String::operator = (const String &rhs)
function String (line 225) | String & String::operator = (String &&rval)
function String (line 231) | String & String::operator = (StringSumHelper &&rval)
function String (line 238) | String & String::operator = (const char *cstr)
function String (line 246) | String & String::operator = (const __FlashStringHelper *pstr)
function StringSumHelper (line 353) | StringSumHelper & operator + (const StringSumHelper &lhs, const String &...
function StringSumHelper (line 360) | StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr)
function StringSumHelper (line 367) | StringSumHelper & operator + (const StringSumHelper &lhs, char c)
function StringSumHelper (line 374) | StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char ...
function StringSumHelper (line 381) | StringSumHelper & operator + (const StringSumHelper &lhs, int num)
function StringSumHelper (line 388) | StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num)
function StringSumHelper (line 395) | StringSumHelper & operator + (const StringSumHelper &lhs, long num)
function StringSumHelper (line 402) | StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long ...
function StringSumHelper (line 409) | StringSumHelper & operator + (const StringSumHelper &lhs, float num)
function StringSumHelper (line 416) | StringSumHelper & operator + (const StringSumHelper &lhs, double num)
function StringSumHelper (line 423) | StringSumHelper & operator + (const StringSumHelper &lhs, const __FlashS...
function String (line 614) | String String::substring(unsigned int left, unsigned int right) const
FILE: external/arduino/avr/cores/arduino/WString.h
function class (line 45) | class String
function operator (line 142) | unsigned char operator == (const String &rhs) const {return equals(rhs);}
function operator (line 143) | unsigned char operator == (const char *cstr) const {return equals(cstr);}
function operator (line 144) | unsigned char operator != (const String &rhs) const {return !equals(rhs);}
function operator (line 145) | unsigned char operator != (const char *cstr) const {return !equals(cstr);}
function String (line 178) | String substring( unsigned int beginIndex ) const { return substring(beg...
function class (line 213) | class StringSumHelper : public String
FILE: external/arduino/avr/cores/arduino/abi.cpp
function __cxa_pure_virtual (line 24) | void __cxa_pure_virtual(void) {
function __cxa_deleted_virtual (line 30) | void __cxa_deleted_virtual(void) {
FILE: external/arduino/avr/cores/arduino/hooks.c
function __empty (line 28) | static void __empty() {
function yield (line 32) | void yield() {__empty();}
FILE: external/arduino/avr/cores/arduino/main.cpp
function atexit (line 23) | int atexit(void (* /*func*/ )()) { return 0; }
function initVariant (line 28) | void initVariant() { }
function setupUSB (line 31) | void setupUSB() { }
function main (line 33) | int main(void)
FILE: external/arduino/avr/cores/arduino/wiring.c
function millis (line 65) | unsigned long millis()
function micros (line 79) | unsigned long micros() {
function delay (line 106) | void delay(unsigned long ms)
function delayMicroseconds (line 120) | void delayMicroseconds(unsigned int us)
function init (line 241) | void init()
FILE: external/arduino/avr/cores/arduino/wiring_analog.c
function analogReference (line 30) | void analogReference(uint8_t mode)
function analogRead (line 38) | int analogRead(uint8_t pin)
function analogWrite (line 104) | void analogWrite(uint8_t pin, int val)
FILE: external/arduino/avr/cores/arduino/wiring_digital.c
function pinMode (line 29) | void pinMode(uint8_t pin, uint8_t mode)
function turnOffPWM (line 75) | static void turnOffPWM(uint8_t timer)
function digitalWrite (line 138) | void digitalWrite(uint8_t pin, uint8_t val)
function digitalRead (line 165) | int digitalRead(uint8_t pin)
FILE: external/arduino/avr/cores/arduino/wiring_pulse.c
function pulseIn (line 33) | unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout)
function pulseInLong (line 63) | unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long time...
FILE: external/arduino/avr/cores/arduino/wiring_shift.c
function shiftIn (line 25) | uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) {
function shiftOut (line 40) | void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8...
FILE: external/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Arduino-usbdfu.c
function main (line 102) | int main(void)
function SetupHardware (line 122) | void SetupHardware(void)
function ResetHardware (line 142) | void ResetHardware(void)
function EVENT_USB_Device_UnhandledControlRequest (line 156) | void EVENT_USB_Device_UnhandledControlRequest(void)
function DiscardFillerBytes (line 491) | static void DiscardFillerBytes(uint8_t NumberOfBytes)
function ProcessBootloaderCommand (line 517) | static void ProcessBootloaderCommand(void)
function LoadStartEndAddresses (line 564) | static void LoadStartEndAddresses(void)
function ProcessMemProgCommand (line 581) | static void ProcessMemProgCommand(void)
function ProcessMemReadCommand (line 612) | static void ProcessMemReadCommand(void)
function ProcessWriteCommand (line 655) | static void ProcessWriteCommand(void)
function ProcessReadCommand (line 717) | static void ProcessReadCommand(void)
FILE: external/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Arduino-usbdfu.h
type DFU_Command_t (line 159) | typedef struct
type DFU_State_t (line 168) | enum DFU_State_t
type DFU_Status_t (line 184) | enum DFU_Status_t
FILE: external/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Board/LEDs.h
function LEDs_Init (line 67) | static inline void LEDs_Init(void)
function LEDs_TurnOnLEDs (line 73) | static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
function LEDs_TurnOffLEDs (line 78) | static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
function LEDs_SetAllLEDs (line 83) | static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
function LEDs_ChangeLEDs (line 88) | static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ...
function LEDs_ToggleLEDs (line 93) | static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
function LEDs_GetLEDs (line 99) | static inline uint8_t LEDs_GetLEDs(void)
FILE: external/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Descriptors.c
function CALLBACK_USB_GetDescriptor (line 152) | uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
FILE: external/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Descriptors.h
type USB_DFU_Functional_Descriptor_t (line 142) | typedef struct
type USB_Descriptor_Configuration_t (line 165) | typedef struct
FILE: external/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial.c
function main (line 80) | int main(void)
function SetupHardware (line 139) | void SetupHardware(void)
function EVENT_USB_Device_ConfigurationChanged (line 159) | void EVENT_USB_Device_ConfigurationChanged(void)
function EVENT_USB_Device_UnhandledControlRequest (line 165) | void EVENT_USB_Device_UnhandledControlRequest(void)
function EVENT_CDC_Device_LineEncodingChanged (line 174) | void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* co...
function EVENT_CDC_Device_ControLineStateChanged (line 234) | void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t*...
FILE: external/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Board/LEDs.h
function LEDs_Init (line 67) | static inline void LEDs_Init(void)
function LEDs_TurnOnLEDs (line 73) | static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
function LEDs_TurnOffLEDs (line 78) | static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
function LEDs_SetAllLEDs (line 83) | static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
function LEDs_ChangeLEDs (line 88) | static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ...
function LEDs_ToggleLEDs (line 93) | static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
function LEDs_GetLEDs (line 99) | static inline uint8_t LEDs_GetLEDs(void)
FILE: external/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Descriptors.c
function CALLBACK_USB_GetDescriptor (line 235) | uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
FILE: external/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Lib/LightweightRingBuff.h
type RingBuff_t (line 70) | typedef struct
function RingBuffer_InitBuffer (line 85) | static inline void RingBuffer_InitBuffer(RingBuff_t* const Buffer)
function RingBuff_Count_t (line 107) | static inline RingBuff_Count_t RingBuffer_GetCount(RingBuff_t* const Buf...
function RingBuffer_IsFull (line 127) | static inline bool RingBuffer_IsFull(RingBuff_t* const Buffer)
function RingBuffer_IsEmpty (line 144) | static inline bool RingBuffer_IsEmpty(RingBuff_t* const Buffer)
function RingBuffer_Insert (line 158) | static inline void RingBuffer_Insert(RingBuff_t* const Buffer,
function RingBuff_Data_t (line 182) | static inline RingBuff_Data_t RingBuffer_Remove(RingBuff_t* const Buffer)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.c
type tLED_DESCRIPTOR (line 59) | typedef const struct
function U32 (line 91) | U32 LED_Read_Display(void)
function LED_Display (line 97) | void LED_Display(U32 leds)
function U32 (line 131) | U32 LED_Read_Display_Mask(U32 mask)
function LED_Display_Mask (line 137) | void LED_Display_Mask(U32 mask, U32 leds)
function Bool (line 174) | Bool LED_Test(U32 leds)
function LED_Off (line 180) | void LED_Off(U32 leds)
function LED_On (line 208) | void LED_On(U32 leds)
function LED_Toggle (line 236) | void LED_Toggle(U32 leds)
function U32 (line 264) | U32 LED_Read_Display_Field(U32 field)
function LED_Display_Field (line 270) | void LED_Display_Field(U32 field, U32 leds)
function U8 (line 277) | U8 LED_Get_Intensity(U32 led)
function LED_Set_Intensity (line 292) | void LED_Set_Intensity(U32 leds, U8 intensity)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/led.c
type tLED_DESCRIPTOR (line 59) | typedef const struct
function U32 (line 91) | U32 LED_Read_Display(void)
function LED_Display (line 97) | void LED_Display(U32 leds)
function U32 (line 131) | U32 LED_Read_Display_Mask(U32 mask)
function LED_Display_Mask (line 137) | void LED_Display_Mask(U32 mask, U32 leds)
function Bool (line 174) | Bool LED_Test(U32 leds)
function LED_Off (line 180) | void LED_Off(U32 leds)
function LED_On (line 208) | void LED_On(U32 leds)
function LED_Toggle (line 236) | void LED_Toggle(U32 leds)
function U32 (line 264) | U32 LED_Read_Display_Field(U32 field)
function LED_Display_Field (line 270) | void LED_Display_Field(U32 field, U32 leds)
function U8 (line 277) | U8 LED_Get_Intensity(U32 led)
function LED_Set_Intensity (line 292) | void LED_Set_Intensity(U32 leds, U8 intensity)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx.c
function Bool (line 221) | Bool at45dbx_init(spi_options_t spiOptions, unsigned int pba_hz)
function at45dbx_chipselect_df (line 243) | static void at45dbx_chipselect_df(U8 memidx, Bool bSelect)
function Bool (line 258) | Bool at45dbx_mem_check(void)
function at45dbx_wait_ready (line 289) | static void at45dbx_wait_ready(void)
function Bool (line 312) | Bool at45dbx_read_open(U32 sector)
function at45dbx_read_close (line 353) | void at45dbx_read_close(void)
function Bool (line 363) | Bool at45dbx_write_open(U32 sector)
function at45dbx_write_close (line 425) | void at45dbx_write_close(void)
function U8 (line 450) | U8 at45dbx_read_byte(void)
function Bool (line 487) | Bool at45dbx_write_byte(U8 b)
function Bool (line 526) | Bool at45dbx_read_multiple_sector(U16 nb_sector)
function Bool (line 539) | Bool at45dbx_write_multiple_sector(U16 nb_sector)
function Bool (line 560) | Bool at45dbx_read_sector_2_ram(void *ram)
function Bool (line 608) | Bool at45dbx_write_sector_from_ram(const void *ram)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx_mem.c
function Ctrl_status (line 79) | Ctrl_status at45dbx_test_unit_ready(void)
function Ctrl_status (line 85) | Ctrl_status at45dbx_read_capacity(U32 *u32_nb_sector)
function Bool (line 93) | Bool at45dbx_wr_protect(void)
function Bool (line 99) | Bool at45dbx_removal(void)
function Ctrl_status (line 119) | Ctrl_status at45dbx_usb_read_10(U32 addr, U16 nb_sector)
function at45dbx_read_multiple_sector_callback (line 131) | void at45dbx_read_multiple_sector_callback(const void *psector)
function Ctrl_status (line 152) | Ctrl_status at45dbx_usb_write_10(U32 addr, U16 nb_sector)
function at45dbx_write_multiple_sector_callback (line 168) | void at45dbx_write_multiple_sector_callback(void *psector)
function Ctrl_status (line 201) | Ctrl_status at45dbx_df_2_ram(U32 addr, void *ram)
function Ctrl_status (line 213) | Ctrl_status at45dbx_ram_2_df(U32 addr, const void *ram)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wl_api.h
type wl_err_t (line 157) | typedef enum {
type wl_event_id_t (line 179) | enum wl_event_id_t {
type wl_auth_mode (line 190) | enum wl_auth_mode {
type wl_enc_type (line 203) | enum wl_enc_type { /* Values map to 802.11 encryption suites... */
type wl_host_attention_mode (line 212) | enum wl_host_attention_mode {
type wl_event_t (line 220) | struct wl_event_t {
type wl_conn_type_t (line 228) | enum wl_conn_type_t {
type wl_ssid_t (line 265) | struct wl_ssid_t
type wl_mac_addr_t (line 278) | struct wl_mac_addr_t
type wl_network_t (line 290) | struct wl_network_t
type wl_network_list_t (line 311) | struct wl_network_list_t
type wl_rate_t (line 339) | typedef uint8_t wl_rate_t;
type wl_event_t (line 464) | struct wl_event_t
type wl_host_attention_mode (line 519) | enum wl_host_attention_mode
type wl_network_list_t (line 763) | struct wl_network_list_t
type wl_ssid_t (line 802) | struct wl_ssid_t
type wl_auth_mode (line 804) | enum wl_auth_mode
type wl_mac_addr_t (line 865) | struct wl_mac_addr_t
type wl_mac_addr_t (line 907) | struct wl_mac_addr_t
type wl_mac_addr_t (line 932) | struct wl_mac_addr_t
type wl_network_t (line 962) | struct wl_network_t
type wl_enc_type (line 965) | enum wl_enc_type
type wl_auth_mode (line 966) | enum wl_auth_mode
type wl_network_t (line 979) | struct wl_network_t
type wl_network_t (line 1061) | struct wl_network_t
type wl_host_attention_mode (line 1485) | enum wl_host_attention_mode
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/COMPONENTS/WIFI/HD/wlap_api.h
type wl_sta_t (line 54) | struct wl_sta_t
type wl_sta_list_t (line 64) | struct wl_sta_list_t
type wl_sta_list_t (line 84) | struct wl_sta_list_t
type wl_auth_mode (line 138) | enum wl_auth_mode
type wl_enc_type (line 139) | enum wl_enc_type
type wl_mac_addr_t (line 148) | struct wl_mac_addr_t
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/CPU/CYCLE_COUNTER/cycle_counter.h
type t_cpu_time (line 56) | typedef struct
function U32 (line 81) | __attribute__((__always_inline__))
function U32 (line 98) | __attribute__((__always_inline__))
function U32 (line 115) | __attribute__((__always_inline__))
function U32 (line 132) | __attribute__((__always_inline__))
function cpu_set_timeout (line 153) | __attribute__((__always_inline__))
function cpu_is_timeout (line 180) | __attribute__((__always_inline__))
function cpu_stop_timeout (line 227) | __attribute__((__always_inline__))
function cpu_is_timer_stopped (line 243) | __attribute__((__always_inline__))
function cpu_delay_ms (line 262) | __attribute__((__always_inline__))
function cpu_delay_us (line 278) | __attribute__((__always_inline__))
function cpu_delay_cy (line 293) | __attribute__((__always_inline__))
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EBI/SMC/smc.c
function smc_init (line 125) | void smc_init(unsigned long hsb_hz)
function smc_enable_muxed_pins (line 738) | static void smc_enable_muxed_pins(void)
function smc_get_cs_size (line 992) | unsigned char smc_get_cs_size(unsigned char cs)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EIC/eic.c
function eic_init (line 57) | void eic_init(volatile avr32_eic_t *eic, const eic_options_t *opt, unsig...
function eic_enable_lines (line 75) | void eic_enable_lines(volatile avr32_eic_t *eic, unsigned int mask_lines)
function eic_enable_line (line 80) | void eic_enable_line(volatile avr32_eic_t *eic, unsigned int line_number)
function eic_disable_lines (line 86) | void eic_disable_lines(volatile avr32_eic_t *eic, unsigned int mask_lines)
function eic_disable_line (line 91) | void eic_disable_line(volatile avr32_eic_t *eic, unsigned int line_number)
function Bool (line 97) | Bool eic_is_line_enabled(volatile avr32_eic_t *eic, unsigned int line_nu...
function eic_enable_interrupt_lines (line 102) | void eic_enable_interrupt_lines(volatile avr32_eic_t *eic, unsigned int ...
function eic_enable_interrupt_line (line 107) | void eic_enable_interrupt_line(volatile avr32_eic_t *eic, unsigned int l...
function eic_disable_interrupt_lines (line 113) | void eic_disable_interrupt_lines(volatile avr32_eic_t *eic, unsigned int...
function eic_disable_interrupt_line (line 123) | void eic_disable_interrupt_line(volatile avr32_eic_t *eic, unsigned int ...
function Bool (line 134) | Bool eic_is_interrupt_line_enabled(volatile avr32_eic_t *eic, unsigned i...
function eic_clear_interrupt_lines (line 139) | void eic_clear_interrupt_lines(volatile avr32_eic_t *eic, unsigned int m...
function eic_clear_interrupt_line (line 149) | void eic_clear_interrupt_line(volatile avr32_eic_t *eic, unsigned int li...
function Bool (line 160) | Bool eic_is_interrupt_line_pending(volatile avr32_eic_t *eic, unsigned i...
function eic_enable_interrupt_scan (line 166) | void eic_enable_interrupt_scan(volatile avr32_eic_t *eic,unsigned int pr...
function eic_disable_interrupt_scan (line 172) | void eic_disable_interrupt_scan(volatile avr32_eic_t *eic)
function eic_get_interrupt_pad_scan (line 178) | unsigned long eic_get_interrupt_pad_scan(volatile avr32_eic_t *eic)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/EIC/eic.h
type eic_options_t (line 119) | typedef struct
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC/flashc.c
type u_avr32_flashc_fcr_t (line 60) | typedef union
type u_avr32_flashc_fcmd_t (line 66) | typedef union
function flashc_get_flash_size (line 80) | unsigned int flashc_get_flash_size(void)
function flashc_get_page_count (line 112) | unsigned int flashc_get_page_count(void)
function flashc_get_page_count_per_region (line 118) | unsigned int flashc_get_page_count_per_region(void)
function flashc_get_page_region (line 124) | unsigned int flashc_get_page_region(int page_number)
function flashc_get_region_first_page_number (line 130) | unsigned int flashc_get_region_first_page_number(unsigned int region)
function flashc_get_wait_state (line 144) | unsigned int flashc_get_wait_state(void)
function flashc_set_wait_state (line 150) | void flashc_set_wait_state(unsigned int wait_state)
function Bool (line 158) | Bool flashc_is_ready_int_enabled(void)
function flashc_enable_ready_int (line 164) | void flashc_enable_ready_int(Bool enable)
function Bool (line 172) | Bool flashc_is_lock_error_int_enabled(void)
function flashc_enable_lock_error_int (line 178) | void flashc_enable_lock_error_int(Bool enable)
function Bool (line 186) | Bool flashc_is_prog_error_int_enabled(void)
function flashc_enable_prog_error_int (line 192) | void flashc_enable_prog_error_int(Bool enable)
function Bool (line 208) | Bool flashc_is_ready(void)
function flashc_default_wait_until_ready (line 214) | void flashc_default_wait_until_ready(void)
function flashc_get_error_status (line 233) | static unsigned int flashc_get_error_status(void)
function Bool (line 247) | Bool flashc_is_lock_error(void)
function Bool (line 253) | Bool flashc_is_programming_error(void)
function flashc_get_command (line 267) | unsigned int flashc_get_command(void)
function flashc_get_page_number (line 273) | unsigned int flashc_get_page_number(void)
function flashc_issue_command (line 279) | void flashc_issue_command(unsigned int command, int page_number)
function flashc_no_operation (line 301) | void flashc_no_operation(void)
function flashc_erase_all (line 307) | void flashc_erase_all(void)
function Bool (line 321) | Bool flashc_is_security_bit_active(void)
function flashc_activate_security_bit (line 327) | void flashc_activate_security_bit(void)
function flashc_get_bootloader_protected_size (line 333) | unsigned int flashc_get_bootloader_protected_size(void)
function flashc_set_bootloader_protected_size (line 342) | unsigned int flashc_set_bootloader_protected_size(unsigned int bootprot_...
function Bool (line 358) | Bool flashc_is_external_privileged_fetch_locked(void)
function flashc_lock_external_privileged_fetch (line 364) | void flashc_lock_external_privileged_fetch(Bool lock)
function Bool (line 370) | Bool flashc_is_page_region_locked(int page_number)
function Bool (line 376) | Bool flashc_is_region_locked(unsigned int region)
function flashc_lock_page_region (line 382) | void flashc_lock_page_region(int page_number, Bool lock)
function flashc_lock_region (line 388) | void flashc_lock_region(unsigned int region, Bool lock)
function flashc_lock_all_regions (line 394) | void flashc_lock_all_regions(Bool lock)
function Bool (line 415) | Bool flashc_read_gp_fuse_bit(unsigned int gp_fuse_bit)
function U64 (line 421) | U64 flashc_read_gp_fuse_bitfield(unsigned int pos, unsigned int width)
function U8 (line 427) | U8 flashc_read_gp_fuse_byte(unsigned int gp_fuse_byte)
function U64 (line 433) | U64 flashc_read_all_gp_fuses(void)
function Bool (line 439) | Bool flashc_erase_gp_fuse_bit(unsigned int gp_fuse_bit, Bool check)
function Bool (line 446) | Bool flashc_erase_gp_fuse_bitfield(unsigned int pos, unsigned int width,...
function Bool (line 462) | Bool flashc_erase_gp_fuse_byte(unsigned int gp_fuse_byte, Bool check)
function Bool (line 482) | Bool flashc_erase_all_gp_fuses(Bool check)
function flashc_write_gp_fuse_bit (line 489) | void flashc_write_gp_fuse_bit(unsigned int gp_fuse_bit, Bool value)
function flashc_write_gp_fuse_bitfield (line 496) | void flashc_write_gp_fuse_bitfield(unsigned int pos, unsigned int width,...
function flashc_write_gp_fuse_byte (line 511) | void flashc_write_gp_fuse_byte(unsigned int gp_fuse_byte, U8 value)
function flashc_write_all_gp_fuses (line 517) | void flashc_write_all_gp_fuses(U64 value)
function flashc_set_gp_fuse_bit (line 530) | void flashc_set_gp_fuse_bit(unsigned int gp_fuse_bit, Bool value)
function flashc_set_gp_fuse_bitfield (line 539) | void flashc_set_gp_fuse_bitfield(unsigned int pos, unsigned int width, U...
function flashc_set_gp_fuse_byte (line 554) | void flashc_set_gp_fuse_byte(unsigned int gp_fuse_byte, U8 value)
function flashc_set_all_gp_fuses (line 574) | void flashc_set_all_gp_fuses(U64 value)
function flashc_clear_page_buffer (line 602) | void flashc_clear_page_buffer(void)
function Bool (line 608) | Bool flashc_is_page_erased(void)
function Bool (line 614) | Bool flashc_quick_page_read(int page_number)
function Bool (line 621) | Bool flashc_erase_page(int page_number, Bool check)
function Bool (line 635) | Bool flashc_erase_all_pages(Bool check)
function flashc_write_page (line 650) | void flashc_write_page(int page_number)
function Bool (line 656) | Bool flashc_quick_user_page_read(void)
function Bool (line 663) | Bool flashc_erase_user_page(Bool check)
function flashc_write_user_page (line 670) | void flashc_write_user_page(void)
function flashc_set_flash_waitstate_and_readmode (line 1076) | void flashc_set_flash_waitstate_and_readmode(unsigned long cpu_f_hz)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.c
function gpio_enable_module (line 61) | int gpio_enable_module(const gpio_map_t gpiomap, unsigned int size)
function gpio_enable_module_pin (line 76) | int gpio_enable_module_pin(unsigned int pin, unsigned int function)
function gpio_enable_gpio (line 152) | void gpio_enable_gpio(const gpio_map_t gpiomap, unsigned int size)
function gpio_enable_gpio_pin (line 164) | void gpio_enable_gpio_pin(unsigned int pin)
function gpio_enable_pin_open_drain (line 182) | void gpio_enable_pin_open_drain(unsigned int pin)
function gpio_disable_pin_open_drain (line 189) | void gpio_disable_pin_open_drain(unsigned int pin)
function gpio_enable_pin_pull_up (line 199) | void gpio_enable_pin_pull_up(unsigned int pin)
function gpio_disable_pin_pull_up (line 209) | void gpio_disable_pin_pull_up(unsigned int pin)
function gpio_enable_pin_pull_down (line 222) | void gpio_enable_pin_pull_down(unsigned int pin)
function gpio_disable_pin_pull_down (line 233) | void gpio_disable_pin_pull_down(unsigned int pin)
function gpio_enable_pin_buskeeper (line 243) | void gpio_enable_pin_buskeeper(unsigned int pin)
function gpio_disable_pin_buskeeper (line 254) | void gpio_disable_pin_buskeeper(unsigned int pin)
function gpio_get_pin_value (line 263) | int gpio_get_pin_value(unsigned int pin)
function gpio_get_gpio_pin_output_value (line 270) | int gpio_get_gpio_pin_output_value(unsigned int pin)
function gpio_get_gpio_open_drain_pin_output_value (line 277) | int gpio_get_gpio_open_drain_pin_output_value(unsigned int pin)
function gpio_set_gpio_pin (line 284) | void gpio_set_gpio_pin(unsigned int pin)
function gpio_clr_gpio_pin (line 294) | void gpio_clr_gpio_pin(unsigned int pin)
function gpio_tgl_gpio_pin (line 304) | void gpio_tgl_gpio_pin(unsigned int pin)
function gpio_set_gpio_open_drain_pin (line 314) | void gpio_set_gpio_open_drain_pin(unsigned int pin)
function gpio_clr_gpio_open_drain_pin (line 323) | void gpio_clr_gpio_open_drain_pin(unsigned int pin)
function gpio_tgl_gpio_open_drain_pin (line 333) | void gpio_tgl_gpio_open_drain_pin(unsigned int pin)
function gpio_enable_pin_glitch_filter (line 343) | void gpio_enable_pin_glitch_filter(unsigned int pin)
function gpio_disable_pin_glitch_filter (line 350) | void gpio_disable_pin_glitch_filter(unsigned int pin)
function gpio_configure_edge_detector (line 364) | static int gpio_configure_edge_detector(unsigned int pin, unsigned int m...
function gpio_enable_pin_interrupt (line 394) | int gpio_enable_pin_interrupt(unsigned int pin, unsigned int mode)
function gpio_disable_pin_interrupt (line 412) | void gpio_disable_pin_interrupt(unsigned int pin)
function gpio_get_pin_interrupt_flag (line 419) | int gpio_get_pin_interrupt_flag(unsigned int pin)
function gpio_clear_pin_interrupt_flag (line 426) | void gpio_clear_pin_interrupt_flag(unsigned int pin)
function gpio_configure_pin_periph_event_mode (line 437) | int gpio_configure_pin_periph_event_mode(unsigned int pin, unsigned int ...
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.h
function gpio_local_init (line 346) | __attribute__((__always_inline__))
function gpio_local_enable_pin_output_driver (line 364) | __attribute__((__always_inline__))
function gpio_local_disable_pin_output_driver (line 378) | __attribute__((__always_inline__))
function gpio_local_get_pin_value (line 394) | __attribute__((__always_inline__))
function gpio_local_set_gpio_pin (line 413) | __attribute__((__always_inline__))
function gpio_local_clr_gpio_pin (line 432) | __attribute__((__always_inline__))
function gpio_local_tgl_gpio_pin (line 451) | __attribute__((__always_inline__))
function gpio_local_init_gpio_open_drain_pin (line 467) | __attribute__((__always_inline__))
function gpio_local_set_gpio_open_drain_pin (line 485) | __attribute__((__always_inline__))
function gpio_local_clr_gpio_open_drain_pin (line 503) | __attribute__((__always_inline__))
function gpio_local_tgl_gpio_open_drain_pin (line 521) | __attribute__((__always_inline__))
function gpio_enable_pin_periph_event (line 547) | __attribute__((__always_inline__))
function gpio_disable_pin_periph_event (line 561) | __attribute__((__always_inline__))
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/intc.c
function _unhandled_interrupt (line 97) | static void _unhandled_interrupt(void)
function __int_handler (line 113) | __int_handler _get_interrupt_handler(unsigned int int_level)
function INTC_init_evba (line 170) | static __inline__ void INTC_init_evba(void)
function INTC_init_interrupts (line 175) | void INTC_init_interrupts(void)
function INTC_register_interrupt (line 199) | void INTC_register_interrupt(__int_handler handler, unsigned int irq, un...
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA/pdca.c
function avr32_pdca_channel_t (line 55) | volatile avr32_pdca_channel_t *pdca_get_handler(unsigned int pdca_ch_num...
function pdca_get_channel_status (line 96) | unsigned int pdca_get_channel_status(unsigned int pdca_ch_number)
function pdca_disable (line 105) | void pdca_disable(unsigned int pdca_ch_number)
function pdca_enable (line 116) | void pdca_enable(unsigned int pdca_ch_number)
function pdca_get_load_size (line 126) | unsigned int pdca_get_load_size(unsigned int pdca_ch_number)
function pdca_load_channel (line 135) | void pdca_load_channel(unsigned int pdca_ch_number, volatile void *addr,...
function pdca_get_reload_size (line 151) | unsigned int pdca_get_reload_size(unsigned int pdca_ch_number)
function pdca_reload_channel (line 160) | void pdca_reload_channel(unsigned int pdca_ch_number, volatile void *add...
function pdca_set_peripheral_select (line 178) | void pdca_set_peripheral_select(unsigned int pdca_ch_number, unsigned in...
function pdca_set_transfer_size (line 187) | void pdca_set_transfer_size(unsigned int pdca_ch_number, unsigned int tr...
function pdca_disable_event_trigger (line 200) | void pdca_disable_event_trigger(unsigned int pdca_ch_number)
function pdca_enable_event_trigger (line 209) | void pdca_enable_event_trigger(unsigned int pdca_ch_number)
function pdca_disable_interrupt_transfer_error (line 221) | void pdca_disable_interrupt_transfer_error(unsigned int pdca_ch_number)
function pdca_enable_interrupt_transfer_error (line 235) | void pdca_enable_interrupt_transfer_error(unsigned int pdca_ch_number)
function pdca_disable_interrupt_transfer_complete (line 244) | void pdca_disable_interrupt_transfer_complete(unsigned int pdca_ch_number)
function pdca_enable_interrupt_transfer_complete (line 258) | void pdca_enable_interrupt_transfer_complete(unsigned int pdca_ch_number)
function pdca_disable_interrupt_reload_counter_zero (line 267) | void pdca_disable_interrupt_reload_counter_zero(unsigned int pdca_ch_num...
function pdca_enable_interrupt_reload_counter_zero (line 281) | void pdca_enable_interrupt_reload_counter_zero(unsigned int pdca_ch_number)
function pdca_get_transfer_status (line 290) | unsigned long pdca_get_transfer_status(unsigned int pdca_ch_number)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PDCA/pdca.h
type pdca_channel_options_t (line 83) | typedef struct
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm.c
type u_avr32_pm_mcctrl_t (line 57) | typedef union
type u_avr32_pm_cksel_t (line 63) | typedef union
type u_avr32_pm_pll_t (line 69) | typedef union
type u_avr32_pm_oscctrl0_t (line 75) | typedef union
type u_avr32_pm_oscctrl1_t (line 81) | typedef union
type u_avr32_pm_oscctrl32_t (line 87) | typedef union
type u_avr32_pm_ier_t (line 93) | typedef union
type u_avr32_pm_idr_t (line 99) | typedef union
type u_avr32_pm_icr_t (line 105) | typedef union
type u_avr32_pm_gcctrl_t (line 111) | typedef union
type u_avr32_pm_rccr_t (line 117) | typedef union
type u_avr32_pm_bgcr_t (line 123) | typedef union
type u_avr32_pm_vregcr_t (line 129) | typedef union
type u_avr32_pm_bod_t (line 135) | typedef union
function pm_set_osc0_mode (line 149) | static void pm_set_osc0_mode(volatile avr32_pm_t *pm, unsigned int mode)
function pm_enable_osc0_ext_clock (line 160) | void pm_enable_osc0_ext_clock(volatile avr32_pm_t *pm)
function pm_enable_osc0_crystal (line 166) | void pm_enable_osc0_crystal(volatile avr32_pm_t *pm, unsigned int fosc0)
function pm_enable_clk0 (line 175) | void pm_enable_clk0(volatile avr32_pm_t *pm, unsigned int startup)
function pm_disable_clk0 (line 182) | void pm_disable_clk0(volatile avr32_pm_t *pm)
function pm_enable_clk0_no_wait (line 188) | void pm_enable_clk0_no_wait(volatile avr32_pm_t *pm, unsigned int startup)
function pm_wait_for_clk0_ready (line 201) | void pm_wait_for_clk0_ready(volatile avr32_pm_t *pm)
function pm_set_osc1_mode (line 212) | static void pm_set_osc1_mode(volatile avr32_pm_t *pm, unsigned int mode)
function pm_enable_osc1_ext_clock (line 223) | void pm_enable_osc1_ext_clock(volatile avr32_pm_t *pm)
function pm_enable_osc1_crystal (line 229) | void pm_enable_osc1_crystal(volatile avr32_pm_t *pm, unsigned int fosc1)
function pm_enable_clk1 (line 238) | void pm_enable_clk1(volatile avr32_pm_t *pm, unsigned int startup)
function pm_disable_clk1 (line 245) | void pm_disable_clk1(volatile avr32_pm_t *pm)
function pm_enable_clk1_no_wait (line 251) | void pm_enable_clk1_no_wait(volatile avr32_pm_t *pm, unsigned int startup)
function pm_wait_for_clk1_ready (line 264) | void pm_wait_for_clk1_ready(volatile avr32_pm_t *pm)
function pm_set_osc32_mode (line 275) | static void pm_set_osc32_mode(volatile avr32_pm_t *pm, unsigned int mode)
function pm_enable_osc32_ext_clock (line 286) | void pm_enable_osc32_ext_clock(volatile avr32_pm_t *pm)
function pm_enable_osc32_crystal (line 292) | void pm_enable_osc32_crystal(volatile avr32_pm_t *pm)
function pm_enable_clk32 (line 298) | void pm_enable_clk32(volatile avr32_pm_t *pm, unsigned int startup)
function pm_disable_clk32 (line 305) | void pm_disable_clk32(volatile avr32_pm_t *pm)
function pm_enable_clk32_no_wait (line 311) | void pm_enable_clk32_no_wait(volatile avr32_pm_t *pm, unsigned int startup)
function pm_wait_for_clk32_ready (line 323) | void pm_wait_for_clk32_ready(volatile avr32_pm_t *pm)
function pm_cksel (line 329) | void pm_cksel(volatile avr32_pm_t *pm,
function pm_gc_setup (line 355) | void pm_gc_setup(volatile avr32_pm_t *pm,
function pm_gc_enable (line 373) | void pm_gc_enable(volatile avr32_pm_t *pm,
function pm_gc_disable (line 380) | void pm_gc_disable(volatile avr32_pm_t *pm,
function pm_pll_setup (line 387) | void pm_pll_setup(volatile avr32_pm_t *pm,
function pm_pll_set_option (line 405) | void pm_pll_set_option(volatile avr32_pm_t *pm,
function pm_pll_get_option (line 417) | unsigned int pm_pll_get_option(volatile avr32_pm_t *pm,
function pm_pll_enable (line 424) | void pm_pll_enable(volatile avr32_pm_t *pm,
function pm_pll_disable (line 431) | void pm_pll_disable(volatile avr32_pm_t *pm,
function pm_wait_for_pll0_locked (line 438) | void pm_wait_for_pll0_locked(volatile avr32_pm_t *pm)
function pm_wait_for_pll1_locked (line 444) | void pm_wait_for_pll1_locked(volatile avr32_pm_t *pm)
function pm_switch_to_clock (line 450) | void pm_switch_to_clock(volatile avr32_pm_t *pm, unsigned long clock)
function pm_switch_to_osc0 (line 461) | void pm_switch_to_osc0(volatile avr32_pm_t *pm, unsigned int fosc0, unsi...
function pm_bod_enable_irq (line 469) | void pm_bod_enable_irq(volatile avr32_pm_t *pm)
function pm_bod_disable_irq (line 475) | void pm_bod_disable_irq(volatile avr32_pm_t *pm)
function pm_bod_clear_irq (line 486) | void pm_bod_clear_irq(volatile avr32_pm_t *pm)
function pm_bod_get_irq_status (line 492) | unsigned long pm_bod_get_irq_status(volatile avr32_pm_t *pm)
function pm_bod_get_irq_enable_bit (line 498) | unsigned long pm_bod_get_irq_enable_bit(volatile avr32_pm_t *pm)
function pm_bod_get_level (line 504) | unsigned long pm_bod_get_level(volatile avr32_pm_t *pm)
function pm_read_gplp (line 510) | unsigned long pm_read_gplp(volatile avr32_pm_t *pm, unsigned long gplp)
function pm_write_gplp (line 516) | void pm_write_gplp(volatile avr32_pm_t *pm, unsigned long gplp, unsigned...
function pm_enable_module (line 522) | long pm_enable_module(volatile avr32_pm_t *pm, unsigned long module)
function pm_disable_module (line 535) | long pm_disable_module(volatile avr32_pm_t *pm, unsigned long module)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm.h
type pm_freq_param_t (line 71) | typedef struct
function pm_get_reset_cause (line 98) | __attribute__((__always_inline__))
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm_conf_clocks.c
function pm_configure_clocks (line 62) | int pm_configure_clocks(pm_freq_param_t *param)
function pm_configure_usb_clock (line 229) | void pm_configure_usb_clock(void)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/power_clocks_lib.c
function pcl_configure_clocks (line 62) | long int pcl_configure_clocks(pcl_freq_param_t *param)
function pcl_configure_clocks_rcsys (line 86) | long int pcl_configure_clocks_rcsys(pcl_freq_param_t *param)
function pcl_configure_clocks_rc120m (line 113) | long int pcl_configure_clocks_rc120m(pcl_freq_param_t *param)
function pcl_configure_clocks_osc0 (line 143) | long int pcl_configure_clocks_osc0(pcl_freq_param_t *param)
function pcl_configure_clocks_dfll0 (line 179) | long int pcl_configure_clocks_dfll0(pcl_freq_param_t *param)
function pcl_configure_clocks_uc3l (line 220) | static long int pcl_configure_clocks_uc3l(pcl_freq_param_t *param)
function pcl_configure_synchronous_clocks (line 266) | static long int pcl_configure_synchronous_clocks(pm_clk_src_t main_clk_s...
function pcl_configure_clocks_uc3c (line 295) | static long int pcl_configure_clocks_uc3c(pcl_freq_param_t *param)
function pcl_switch_to_osc (line 459) | long int pcl_switch_to_osc(pcl_osc_t osc, unsigned int fcrystal, unsigne...
function pcl_configure_usb_clock (line 502) | long int pcl_configure_usb_clock(void)
function pcl_write_gplp (line 547) | void pcl_write_gplp(unsigned long gplp, unsigned long value)
function pcl_read_gplp (line 557) | unsigned long pcl_read_gplp(unsigned long gplp)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/power_clocks_lib.h
type pcl_osc_t (line 82) | typedef enum
type pcl_dfll_t (line 89) | typedef enum
type pcl_mainclk_t (line 96) | typedef enum
type pcl_freq_param_t (line 119) | typedef struct
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/RTC/rtc.c
function rtc_is_busy (line 56) | int rtc_is_busy(volatile avr32_rtc_t *rtc)
function rtc_init (line 62) | int rtc_init(volatile avr32_rtc_t *rtc, unsigned char osc_type, unsigned...
function rtc_set_value (line 98) | void rtc_set_value(volatile avr32_rtc_t *rtc, unsigned long val)
function rtc_get_value (line 109) | unsigned long rtc_get_value(volatile avr32_rtc_t *rtc)
function rtc_enable_wake_up (line 115) | void rtc_enable_wake_up(volatile avr32_rtc_t *rtc)
function rtc_disable_wake_up (line 126) | void rtc_disable_wake_up(volatile avr32_rtc_t *rtc)
function rtc_enable (line 137) | void rtc_enable(volatile avr32_rtc_t *rtc)
function rtc_disable (line 148) | void rtc_disable(volatile avr32_rtc_t *rtc)
function rtc_enable_interrupt (line 159) | void rtc_enable_interrupt(volatile avr32_rtc_t *rtc)
function rtc_disable_interrupt (line 165) | void rtc_disable_interrupt(volatile avr32_rtc_t *rtc)
function rtc_clear_interrupt (line 176) | void rtc_clear_interrupt(volatile avr32_rtc_t *rtc)
function rtc_set_top_value (line 187) | void rtc_set_top_value(volatile avr32_rtc_t *rtc, unsigned long top)
function rtc_get_top_value (line 198) | unsigned long rtc_get_top_value(volatile avr32_rtc_t *rtc)
function rtc_interrupt_enabled (line 204) | int rtc_interrupt_enabled(volatile avr32_rtc_t *rtc)
function rtc_is_interrupt (line 210) | int rtc_is_interrupt(volatile avr32_rtc_t *rtc)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/SPI/spi.c
type u_avr32_spi_cr_t (line 65) | typedef union
type u_avr32_spi_mr_t (line 71) | typedef union
type u_avr32_spi_tdr_t (line 77) | typedef union
type u_avr32_spi_ier_t (line 83) | typedef union
type u_avr32_spi_idr_t (line 89) | typedef union
type u_avr32_spi_csr_t (line 95) | typedef union
function getBaudDiv (line 122) | static int getBaudDiv(const spi_options_t *options, unsigned int pba_hz)
function spi_reset (line 134) | void spi_reset(volatile avr32_spi_t *spi)
function spi_status_t (line 140) | spi_status_t spi_initSlave(volatile avr32_spi_t *spi,
function spi_status_t (line 161) | spi_status_t spi_initTest(volatile avr32_spi_t *spi)
function spi_status_t (line 172) | spi_status_t spi_initMaster(volatile avr32_spi_t *spi, const spi_options...
function spi_status_t (line 195) | spi_status_t spi_selectionMode(volatile avr32_spi_t *spi,
function spi_status_t (line 217) | spi_status_t spi_selectChip(volatile avr32_spi_t *spi, unsigned char chip)
function spi_status_t (line 245) | spi_status_t spi_unselectChip(volatile avr32_spi_t *spi, unsigned char c...
function spi_status_t (line 269) | spi_status_t spi_setupChipReg(volatile avr32_spi_t *spi,
function spi_enable (line 330) | void spi_enable(volatile avr32_spi_t *spi)
function spi_disable (line 336) | void spi_disable(volatile avr32_spi_t *spi)
function spi_is_enabled (line 342) | int spi_is_enabled(volatile avr32_spi_t *spi)
function spi_writeRegisterEmptyCheck (line 348) | inline unsigned char spi_writeRegisterEmptyCheck(volatile avr32_spi_t *spi)
function spi_status_t (line 354) | inline spi_status_t spi_write(volatile avr32_spi_t *spi, unsigned short ...
function spi_status_t (line 370) | spi_status_t spi_variableSlaveWrite(volatile avr32_spi_t *spi, unsigned ...
function spi_writeEndCheck (line 393) | inline unsigned char spi_writeEndCheck(volatile avr32_spi_t *spi)
function spi_readRegisterFullCheck (line 399) | unsigned char spi_readRegisterFullCheck(volatile avr32_spi_t *spi)
function spi_status_t (line 405) | inline spi_status_t spi_read(volatile avr32_spi_t *spi, unsigned short *...
function spi_getStatus (line 422) | unsigned char spi_getStatus(volatile avr32_spi_t *spi)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/SPI/spi.h
type spi_status_t (line 62) | typedef enum
type spi_options_t (line 74) | typedef struct
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/TC/tc.c
function tc_get_interrupt_settings (line 55) | int tc_get_interrupt_settings(volatile avr32_tc_t *tc, unsigned int chan...
function tc_configure_interrupts (line 65) | int tc_configure_interrupts(volatile avr32_tc_t *tc, unsigned int channe...
function tc_select_external_clock (line 100) | int tc_select_external_clock(volatile avr32_tc_t *tc, unsigned int chann...
function tc_init_capture (line 114) | int tc_init_capture(volatile avr32_tc_t *tc, const tc_capture_opt_t *opt)
function tc_init_waveform (line 137) | int tc_init_waveform(volatile avr32_tc_t *tc, const tc_waveform_opt_t *opt)
function tc_start (line 167) | int tc_start(volatile avr32_tc_t *tc, unsigned int channel)
function tc_stop (line 180) | int tc_stop(volatile avr32_tc_t *tc, unsigned int channel)
function tc_software_trigger (line 193) | int tc_software_trigger(volatile avr32_tc_t *tc, unsigned int channel)
function tc_sync_trigger (line 206) | void tc_sync_trigger(volatile avr32_tc_t *tc)
function tc_sync_start (line 213) | void tc_sync_start(volatile avr32_tc_t *tc)
function tc_read_sr (line 225) | int tc_read_sr(volatile avr32_tc_t *tc, unsigned int channel)
function tc_read_tc (line 235) | int tc_read_tc(volatile avr32_tc_t *tc, unsigned int channel)
function tc_read_ra (line 245) | int tc_read_ra(volatile avr32_tc_t *tc, unsigned int channel)
function tc_read_rb (line 255) | int tc_read_rb(volatile avr32_tc_t *tc, unsigned int channel)
function tc_read_rc (line 265) | int tc_read_rc(volatile avr32_tc_t *tc, unsigned int channel)
function tc_write_ra (line 275) | int tc_write_ra(volatile avr32_tc_t *tc, unsigned int channel, unsigned ...
function tc_write_rb (line 289) | int tc_write_rb(volatile avr32_tc_t *tc, unsigned int channel, unsigned ...
function tc_write_rc (line 303) | int tc_write_rc(volatile avr32_tc_t *tc, unsigned int channel, unsigned ...
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/TC/tc.h
type tc_interrupt_t (line 170) | typedef struct
type tc_capture_opt_t (line 200) | typedef struct
type tc_waveform_opt_t (line 277) | typedef struct
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/USART/usart.c
function usart_mode_is_multidrop (line 68) | __attribute__((__always_inline__))
function usart_set_async_baudrate (line 91) | static int usart_set_async_baudrate(volatile avr32_usart_t *usart, unsig...
function usart_set_sync_master_baudrate (line 128) | static int usart_set_sync_master_baudrate(volatile avr32_usart_t *usart,...
function usart_set_sync_slave_baudrate (line 152) | static int usart_set_sync_slave_baudrate(volatile avr32_usart_t *usart)
function usart_set_iso7816_clock (line 175) | static int usart_set_iso7816_clock(volatile avr32_usart_t *usart, unsign...
function usart_set_spi_master_baudrate (line 214) | static int usart_set_spi_master_baudrate(volatile avr32_usart_t *usart, ...
function usart_set_spi_slave_baudrate (line 237) | static int usart_set_spi_slave_baudrate(volatile avr32_usart_t *usart)
function usart_reset (line 258) | void usart_reset(volatile avr32_usart_t *usart)
function usart_init_rs232 (line 289) | int usart_init_rs232(volatile avr32_usart_t *usart, const usart_options_...
function usart_init_rs232_tx_only (line 341) | int usart_init_rs232_tx_only(volatile avr32_usart_t *usart, const usart_...
function usart_init_hw_handshaking (line 393) | int usart_init_hw_handshaking(volatile avr32_usart_t *usart, const usart...
function usart_init_modem (line 407) | int usart_init_modem(volatile avr32_usart_t *usart, const usart_options_...
function usart_init_sync_master (line 421) | int usart_init_sync_master(volatile avr32_usart_t *usart, const usart_op...
function usart_init_sync_slave (line 474) | int usart_init_sync_slave(volatile avr32_usart_t *usart, const usart_opt...
function usart_init_rs485 (line 526) | int usart_init_rs485(volatile avr32_usart_t *usart, const usart_options_...
function usart_init_IrDA (line 540) | int usart_init_IrDA(volatile avr32_usart_t *usart, const usart_options_t...
function usart_init_iso7816 (line 559) | int usart_init_iso7816(volatile avr32_usart_t *usart, const usart_iso781...
function usart_init_lin_master (line 620) | int usart_init_lin_master(volatile avr32_usart_t *usart, unsigned long b...
function usart_init_lin_slave (line 640) | int usart_init_lin_slave(volatile avr32_usart_t *usart, unsigned long ba...
function usart_init_spi_master (line 660) | int usart_init_spi_master(volatile avr32_usart_t *usart, const usart_spi...
function usart_init_spi_slave (line 699) | int usart_init_spi_slave(volatile avr32_usart_t *usart, const usart_spi_...
function usart_spi_selectChip (line 756) | int usart_spi_selectChip(volatile avr32_usart_t *usart)
function usart_spi_unselectChip (line 765) | int usart_spi_unselectChip(volatile avr32_usart_t *usart)
function usart_send_address (line 793) | int usart_send_address(volatile avr32_usart_t *usart, int address)
function usart_write_char (line 808) | int usart_write_char(volatile avr32_usart_t *usart, int c)
function usart_putchar (line 820) | int usart_putchar(volatile avr32_usart_t *usart, int c)
function usart_read_char (line 843) | int usart_read_char(volatile avr32_usart_t *usart, int *c)
function usart_getchar (line 863) | int usart_getchar(volatile avr32_usart_t *usart)
function usart_write_line (line 876) | void usart_write_line(volatile avr32_usart_t *usart, const char *string)
function usart_get_echo_line (line 883) | int usart_get_echo_line(volatile avr32_usart_t *usart)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/DRIVERS/USART/usart.h
type usart_options_t (line 127) | typedef struct
type usart_iso7816_options_t (line 152) | typedef struct
type usart_spi_options_t (line 194) | typedef struct
function usart_reset_status (line 405) | __attribute__((__always_inline__))
function usart_parity_error (line 419) | __attribute__((__always_inline__))
function usart_framing_error (line 433) | __attribute__((__always_inline__))
function usart_overrun_error (line 447) | __attribute__((__always_inline__))
function usart_lin_get_error (line 467) | __attribute__((__always_inline__))
function usart_iso7816_enable_receiver (line 495) | __attribute__((__always_inline__))
function usart_iso7816_enable_transmitter (line 509) | __attribute__((__always_inline__))
function usart_lin_set_node_action (line 538) | __attribute__((__always_inline__))
function usart_lin_enable_parity (line 552) | __attribute__((__always_inline__))
function usart_lin_enable_checksum (line 566) | __attribute__((__always_inline__))
function usart_lin_set_checksum (line 581) | __attribute__((__always_inline__))
function usart_lin_get_data_length (line 596) | __attribute__((__always_inline__))
function usart_lin_set_data_length_lin1x (line 616) | __attribute__((__always_inline__))
function usart_lin_set_data_length_lin2x (line 629) | __attribute__((__always_inline__))
function usart_lin_enable_frameslot (line 645) | __attribute__((__always_inline__))
function usart_lin_get_id_char (line 660) | __attribute__((__always_inline__))
function usart_lin_set_id_char (line 673) | __attribute__((__always_inline__))
function usart_tx_ready (line 746) | __attribute__((__always_inline__))
function usart_bw_write_char (line 769) | __attribute__((__always_inline__))
function usart_tx_empty (line 794) | __attribute__((__always_inline__))
function usart_test_hit (line 808) | __attribute__((__always_inline__))
function usart_lin_abort (line 863) | __attribute__((__always_inline__))
function usart_lin_transfer_completed (line 877) | __attribute__((__always_inline__))
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/DELAY/delay.c
function delay_init (line 70) | void delay_init(unsigned long fcpu_hz)
function delay_ms (line 78) | void delay_ms(unsigned long delay)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/dhcp.c
type netif (line 110) | struct netif
type netif (line 111) | struct netif
type netif (line 112) | struct netif
type netif (line 114) | struct netif
type netif (line 115) | struct netif
type netif (line 116) | struct netif
type netif (line 118) | struct netif
type netif (line 119) | struct netif
type netif (line 121) | struct netif
type netif (line 122) | struct netif
type dhcp (line 123) | struct dhcp
type udp_pcb (line 126) | struct udp_pcb
type pbuf (line 126) | struct pbuf
type ip_addr (line 126) | struct ip_addr
type dhcp (line 127) | struct dhcp
type pbuf (line 127) | struct pbuf
type dhcp (line 128) | struct dhcp
type dhcp (line 134) | struct dhcp
type netif (line 137) | struct netif
type netif (line 138) | struct netif
type netif (line 139) | struct netif
type netif (line 143) | struct netif
type netif (line 145) | struct netif
type dhcp (line 147) | struct dhcp
type dhcp (line 149) | struct dhcp
type dhcp (line 150) | struct dhcp
type dhcp (line 151) | struct dhcp
type dhcp (line 153) | struct dhcp
function dhcp_handle_nak (line 167) | static void
function dhcp_check (line 195) | static void
function dhcp_handle_offer (line 222) | static void
function err_t (line 249) | static err_t
function dhcp_coarse_tmr (line 316) | void
function dhcp_fine_tmr (line 349) | void
function dhcp_timeout (line 382) | static void
function dhcp_t1_timeout (line 445) | static void
function dhcp_t2_timeout (line 463) | static void
function dhcp_handle_ack (line 480) | static void
function err_t (line 584) | err_t
function dhcp_inform (line 665) | void
function dhcp_network_changed (line 723) | void
function dhcp_arp_reply (line 755) | void dhcp_arp_reply(struct netif *netif, struct ip_addr *addr)
function err_t (line 782) | static err_t
function err_t (line 825) | static err_t
function dhcp_bind (line 882) | static void
function err_t (line 970) | err_t
function err_t (line 1036) | static err_t
function err_t (line 1099) | static err_t
function err_t (line 1145) | err_t
function dhcp_stop (line 1198) | void
function dhcp_set_state (line 1234) | static void
function dhcp_option (line 1248) | static void
function dhcp_option_byte (line 1259) | static void
function dhcp_option_short (line 1266) | static void
function dhcp_option_long (line 1274) | static void
function err_t (line 1294) | static err_t
function dhcp_free_reply (line 1345) | static void dhcp_free_reply(struct dhcp *dhcp)
function dhcp_recv (line 1362) | static void dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, st...
function err_t (line 1470) | static err_t
function dhcp_delete_request (line 1552) | static void
function dhcp_option_trailer (line 1576) | static void
function u8_t (line 1601) | static u8_t *dhcp_get_option_ptr(struct dhcp *dhcp, u8_t option_type)
function u8_t (line 1678) | static u8_t
function u16_t (line 1694) | static u16_t
function u32_t (line 1713) | static u32_t dhcp_get_option_long(u8_t *ptr)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/dns.c
function PACK_STRUCT_BEGIN (line 129) | PACK_STRUCT_BEGIN
function PACK_STRUCT_BEGIN (line 149) | PACK_STRUCT_BEGIN
function PACK_STRUCT_BEGIN (line 166) | PACK_STRUCT_BEGIN
type dns_table_entry (line 183) | struct dns_table_entry {
type local_hostlist_entry (line 200) | struct local_hostlist_entry {
type local_hostlist_entry (line 211) | struct local_hostlist_entry
type udp_pcb (line 234) | struct udp_pcb
type pbuf (line 234) | struct pbuf
type ip_addr (line 234) | struct ip_addr
type udp_pcb (line 242) | struct udp_pcb
type dns_table_entry (line 244) | struct dns_table_entry
type ip_addr (line 245) | struct ip_addr
function dns_init (line 255) | void
function dns_setserver (line 294) | void
function dns_getserver (line 310) | struct ip_addr
function dns_tmr (line 324) | void
function dns_init_local (line 334) | static void
function u32_t (line 363) | static u32_t
function dns_local_removehost (line 394) | int
function err_t (line 429) | err_t
function u32_t (line 459) | static u32_t
function u8_t (line 502) | static u8_t
function err_t (line 569) | static err_t
function dns_check_entry (line 645) | static void
function dns_check_entries (line 718) | static void
function dns_recv (line 733) | static void
function err_t (line 880) | static err_t
function err_t (line 952) | err_t
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/init.c
function lwip_sanity_check (line 205) | static void
function lwip_init (line 235) | void
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/autoip.c
type netif (line 110) | struct netif
type netif (line 113) | struct netif
type ip_addr (line 113) | struct ip_addr
type netif (line 116) | struct netif
type netif (line 119) | struct netif
type netif (line 122) | struct netif
type netif (line 125) | struct netif
function autoip_init (line 130) | void
function autoip_handle_arp_conflict (line 139) | static void
function autoip_create_addr (line 175) | static void
function err_t (line 207) | static err_t
function err_t (line 220) | static err_t
function err_t (line 233) | static err_t
function err_t (line 261) | err_t
function autoip_start_probing (line 310) | static void
function autoip_network_changed (line 340) | void
function err_t (line 354) | err_t
function autoip_tmr (line 365) | void
function autoip_arp_reply (line 443) | void
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/icmp.c
type pbuf (line 68) | struct pbuf
function icmp_input (line 79) | void
function icmp_dest_unreach (line 256) | void
function icmp_time_exceeded (line 270) | void
function icmp_send_response (line 286) | static void
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/igmp.c
type igmp_group (line 105) | struct igmp_group
type ip_addr (line 106) | struct ip_addr
type ip_addr (line 107) | struct ip_addr
function igmp_init (line 112) | void
function igmp_dump_group_list (line 125) | void
function err_t (line 147) | err_t
function err_t (line 179) | err_t
function igmp_report_groups (line 223) | void
type igmp_group (line 246) | struct igmp_group
type netif (line 247) | struct netif
type ip_addr (line 247) | struct ip_addr
type igmp_group (line 249) | struct igmp_group
type igmp_group (line 272) | struct igmp_group
type netif (line 273) | struct netif
type ip_addr (line 273) | struct ip_addr
type igmp_group (line 275) | struct igmp_group
function err_t (line 311) | err_t
function igmp_input (line 345) | void
function err_t (line 461) | err_t
function err_t (line 531) | err_t
function igmp_tmr (line 601) | void
function igmp_timeout (line 623) | void
function igmp_start_timer (line 643) | void
function igmp_stop_timer (line 657) | void
function igmp_delaying_member (line 669) | void
function err_t (line 698) | err_t
function igmp_send (line 715) | void
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/inet.c
function u32_t (line 62) | u32_t
function inet_aton (line 84) | int
type in_addr (line 185) | struct in_addr
function u16_t (line 235) | u16_t
function u16_t (line 247) | u16_t
function u32_t (line 259) | u32_t
function u32_t (line 274) | u32_t
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/inet_chksum.c
function u16_t (line 93) | static u16_t
function u16_t (line 147) | static u16_t
function u16_t (line 203) | static u16_t
function u16_t (line 284) | u16_t
function u16_t (line 343) | u16_t
function u16_t (line 405) | u16_t
function u16_t (line 418) | u16_t
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip.c
type netif (line 67) | struct netif
type ip_hdr (line 72) | struct ip_hdr
type netif (line 83) | struct netif
type ip_addr (line 84) | struct ip_addr
type netif (line 86) | struct netif
type netif (line 119) | struct netif
type pbuf (line 120) | struct pbuf
type ip_hdr (line 120) | struct ip_hdr
type netif (line 120) | struct netif
type netif (line 122) | struct netif
type ip_addr (line 126) | struct ip_addr
type netif (line 131) | struct netif
type netif (line 138) | struct netif
type netif (line 152) | struct netif
type ip_addr (line 171) | struct ip_addr
type pbuf (line 191) | struct pbuf
type netif (line 191) | struct netif
type ip_hdr (line 193) | struct ip_hdr
type netif (line 194) | struct netif
type udp_hdr (line 318) | struct udp_hdr
type udp_hdr (line 319) | struct udp_hdr
function err_t (line 497) | err_t
function err_t (line 512) | err_t ip_output_if_opt(struct pbuf *p, struct ip_addr *src, struct ip_ad...
function err_t (line 625) | err_t
function err_t (line 659) | err_t
function ip_debug_print (line 684) | void
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip_addr.c
type ip_addr (line 50) | struct ip_addr
type ip_addr (line 51) | struct ip_addr
function u8_t (line 60) | u8_t ip_addr_isbroadcast(struct ip_addr *addr, struct netif *netif)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/ipv4/ip_frag.c
function PACK_STRUCT_BEGIN (line 91) | PACK_STRUCT_BEGIN
type ip_reassdata (line 108) | struct ip_reassdata
type ip_reassdata (line 112) | struct ip_reassdata
type ip_reassdata (line 112) | struct ip_reassdata
type ip_reassdata (line 113) | struct ip_reassdata
type ip_reassdata (line 113) | struct ip_reassdata
function ip_reass_tmr (line 121) | void
function ip_reass_free_complete_datagram (line 157) | static int
function ip_reass_remove_oldest_datagram (line 215) | static int
type ip_reassdata (line 263) | struct ip_reassdata
type ip_hdr (line 264) | struct ip_hdr
type ip_reassdata (line 266) | struct ip_reassdata
type ip_reassdata (line 282) | struct ip_reassdata
function ip_reass_dequeue_datagram (line 298) | static void
function ip_reass_chain_frag_into_datagram_and_validate (line 325) | static int
type pbuf (line 470) | struct pbuf
type pbuf (line 471) | struct pbuf
type pbuf (line 473) | struct pbuf
type ip_hdr (line 474) | struct ip_hdr
type ip_reassdata (line 475) | struct ip_reassdata
type ip_reass_helper (line 476) | struct ip_reass_helper
type ip_reassdata (line 479) | struct ip_reassdata
type ip_hdr (line 484) | struct ip_hdr
type ip_reass_helper (line 568) | struct ip_reass_helper
type ip_hdr (line 571) | struct ip_hdr
type ip_reass_helper (line 583) | struct ip_reass_helper
function err_t (line 629) | err_t
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/mem.c
type memp_malloc_helper (line 82) | struct memp_malloc_helper
type memp_malloc_helper (line 84) | struct memp_malloc_helper
type memp_malloc_helper (line 100) | struct memp_malloc_helper
function mem_free (line 129) | void
type mem (line 156) | struct mem {
type mem (line 181) | struct mem
type mem (line 183) | struct mem
function plug_holes (line 225) | static void
function mem_init (line 263) | void
function mem_free (line 298) | void
type mem (line 363) | struct mem
type mem (line 393) | struct mem
type mem (line 413) | struct mem
type mem (line 422) | struct mem
type mem (line 424) | struct mem
type mem (line 436) | struct mem
type mem (line 448) | struct mem
type mem (line 457) | struct mem
type mem (line 487) | struct mem
type mem (line 523) | struct mem
type mem (line 524) | struct mem
type mem (line 554) | struct mem
type mem (line 563) | struct mem
type mem (line 584) | struct mem
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/memp.c
type memp (line 63) | struct memp {
type memp (line 114) | struct memp
function memp_sanity (line 157) | static int
function memp_overflow_check_element (line 184) | static void
function memp_overflow_check_all (line 212) | static void
function memp_overflow_init (line 231) | static void
function memp_init (line 261) | void
function memp_malloc_fn (line 309) | memp_malloc(memp_t type)
function memp_free (line 353) | void
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/netif.c
type netif (line 76) | struct netif
type netif (line 77) | struct netif
type netif (line 93) | struct netif
type netif (line 94) | struct netif
type ip_addr (line 94) | struct ip_addr
type ip_addr (line 94) | struct ip_addr
type ip_addr (line 95) | struct ip_addr
type netif (line 97) | struct netif
type pbuf (line 98) | struct pbuf
type netif (line 98) | struct netif
function netif_set_addr (line 179) | void
function netif_remove (line 193) | void netif_remove(struct netif * netif)
type netif (line 237) | struct netif
type netif (line 240) | struct netif
function netif_set_ipaddr (line 270) | void
function netif_set_gw (line 331) | void
function netif_set_netmask (line 352) | void
function netif_set_default (line 373) | void
function netif_set_up (line 400) | void netif_set_up(struct netif *netif)
function netif_set_down (line 436) | void netif_set_down(struct netif *netif)
function u8_t (line 453) | u8_t netif_is_up(struct netif *netif)
function netif_set_status_callback (line 462) | void netif_set_status_callback(struct netif *netif, void (* status_callb...
function netif_set_link_up (line 473) | void netif_set_link_up(struct netif *netif )
function netif_set_link_down (line 510) | void netif_set_link_down(struct netif *netif )
function u8_t (line 519) | u8_t netif_is_link_up(struct netif *netif)
function netif_set_link_callback (line 527) | void netif_set_link_callback(struct netif *netif, void (* link_callback)...
function err_t (line 550) | err_t
function netif_poll (line 618) | void
function netif_poll_all (line 671) | void
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/pbuf.c
function pbuf_free_ooseq (line 106) | static void
function pbuf_pool_is_empty (line 129) | static void
type pbuf (line 183) | struct pbuf
type pbuf (line 186) | struct pbuf
type pbuf (line 285) | struct pbuf
function pbuf_realloc (line 344) | void
function u8_t (line 425) | u8_t
function u8_t (line 532) | u8_t
function u8_t (line 608) | u8_t
function pbuf_ref (line 627) | void
function pbuf_cat (line 649) | void
function pbuf_chain (line 690) | void
type pbuf (line 707) | struct pbuf
type pbuf (line 708) | struct pbuf
type pbuf (line 710) | struct pbuf
function err_t (line 756) | err_t
function u16_t (line 822) | u16_t
function err_t (line 870) | err_t
type pbuf (line 914) | struct pbuf
type pbuf (line 915) | struct pbuf
type pbuf (line 917) | struct pbuf
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/raw.c
type raw_pcb (line 60) | struct raw_pcb
function u8_t (line 79) | u8_t
function err_t (line 143) | err_t
function err_t (line 163) | err_t
function raw_recv (line 184) | void
function err_t (line 207) | err_t
function err_t (line 291) | err_t
function raw_remove (line 305) | void
type raw_pcb (line 336) | struct raw_pcb
type raw_pcb (line 338) | struct raw_pcb
type raw_pcb (line 346) | struct raw_pcb
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/stats.c
type stats_ (line 51) | struct stats_
function stats_display_proto (line 54) | void
function stats_display_igmp (line 73) | void
function stats_display_mem (line 90) | void
function stats_display_memp (line 101) | void
function stats_display_sys (line 116) | void
function stats_display (line 129) | void
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp.c
type tcp_pcb (line 83) | struct tcp_pcb
type tcp_pcb (line 88) | struct tcp_pcb
type tcp_pcb (line 90) | struct tcp_pcb
type tcp_pcb (line 92) | struct tcp_pcb
function tcp_tmr (line 101) | void
function err_t (line 128) | err_t
function tcp_abandon (line 214) | void
function err_t (line 277) | err_t
function err_t (line 342) | static err_t
type tcp_pcb (line 367) | struct tcp_pcb
type tcp_pcb (line 368) | struct tcp_pcb
type tcp_pcb_listen (line 370) | struct tcp_pcb_listen
type tcp_pcb (line 401) | struct tcp_pcb
function u32_t (line 410) | u32_t tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb)
function tcp_recved (line 439) | void
function u16_t (line 470) | static u16_t
function err_t (line 515) | err_t
function tcp_slowtmr (line 578) | void
function tcp_fasttmr (line 818) | void
function u8_t (line 850) | u8_t
function u8_t (line 869) | u8_t
function tcp_setprio (line 892) | void
type tcp_seg (line 906) | struct tcp_seg
type tcp_seg (line 907) | struct tcp_seg
type tcp_seg (line 909) | struct tcp_seg
type tcp_seg (line 915) | struct tcp_seg
function err_t (line 926) | err_t
function tcp_kill_prio (line 945) | static void
function tcp_kill_timewait (line 978) | static void
type tcp_pcb (line 1006) | struct tcp_pcb
type tcp_pcb (line 1009) | struct tcp_pcb
type tcp_pcb (line 1036) | struct tcp_pcb
type tcp_pcb (line 1090) | struct tcp_pcb
function tcp_arg (line 1103) | void
function tcp_recv (line 1117) | void
function tcp_sent (line 1131) | void
function tcp_err (line 1146) | void
function tcp_accept (line 1161) | void
function tcp_poll (line 1176) | void
function tcp_pcb_purge (line 1192) | void
function tcp_pcb_remove (line 1257) | void
function u32_t (line 1290) | u32_t
function u16_t (line 1305) | u16_t
type tcp_state (line 1326) | enum tcp_state
function tcp_debug_print (line 1337) | void
function tcp_debug_print_state (line 1373) | void
function tcp_debug_print_flags (line 1384) | void
function tcp_debug_print_pcbs (line 1417) | void
function s16_t (line 1447) | s16_t
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp_in.c
type tcp_seg (line 65) | struct tcp_seg
type tcp_hdr (line 66) | struct tcp_hdr
type ip_hdr (line 67) | struct ip_hdr
type pbuf (line 73) | struct pbuf
type tcp_pcb (line 75) | struct tcp_pcb
type tcp_pcb (line 78) | struct tcp_pcb
type tcp_pcb (line 79) | struct tcp_pcb
type tcp_pcb (line 80) | struct tcp_pcb
type tcp_pcb_listen (line 82) | struct tcp_pcb_listen
type tcp_pcb (line 83) | struct tcp_pcb
function tcp_input (line 94) | void
function err_t (line 391) | static err_t
function err_t (line 480) | static err_t
function err_t (line 526) | static err_t
function tcp_oos_insert_segment (line 745) | static void
function tcp_receive (line 792) | static void
function tcp_parseopt (line 1430) | static void
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/tcp_out.c
type tcp_seg (line 62) | struct tcp_seg
type tcp_pcb (line 62) | struct tcp_pcb
type tcp_hdr (line 64) | struct tcp_hdr
type tcp_pcb (line 65) | struct tcp_pcb
type pbuf (line 65) | struct pbuf
type tcp_hdr (line 68) | struct tcp_hdr
function err_t (line 92) | err_t
function err_t (line 117) | err_t
function err_t (line 156) | err_t
function tcp_build_timestamp_option (line 449) | static void
function err_t (line 463) | err_t
function err_t (line 519) | err_t
function tcp_output_segment (line 667) | static void
function tcp_rst (line 786) | void
function tcp_rexmit_rto (line 831) | void
function tcp_rexmit (line 866) | void
function tcp_rexmit_fast (line 906) | void
function tcp_keepalive (line 948) | void
function tcp_zero_window_probe (line 1002) | void
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/core/udp.c
type udp_pcb (line 72) | struct udp_pcb
type pbuf (line 87) | struct pbuf
type netif (line 87) | struct netif
type udp_hdr (line 89) | struct udp_hdr
type udp_pcb (line 90) | struct udp_pcb
type udp_pcb (line 91) | struct udp_pcb
type ip_hdr (line 92) | struct ip_hdr
type udp_hdr (line 116) | struct udp_hdr
type udp_hdr (line 228) | struct udp_hdr
type ip_addr (line 243) | struct ip_addr
type ip_addr (line 244) | struct ip_addr
type ip_addr (line 260) | struct ip_addr
type ip_addr (line 261) | struct ip_addr
function err_t (line 337) | err_t
function err_t (line 361) | err_t
function err_t (line 404) | err_t
function err_t (line 580) | err_t
function err_t (line 680) | err_t
function udp_disconnect (line 738) | void
function udp_recv (line 757) | void
function udp_remove (line 776) | void
type udp_pcb (line 806) | struct udp_pcb
type udp_pcb (line 809) | struct udp_pcb
type udp_pcb (line 817) | struct udp_pcb
function udp_debug_print (line 829) | void
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/autoip.h
type autoip (line 83) | struct autoip
type netif (line 98) | struct netif
type netif (line 101) | struct netif
type netif (line 104) | struct netif
type etharp_hdr (line 104) | struct etharp_hdr
type netif (line 110) | struct netif
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/icmp.h
type icmp_dur_type (line 58) | enum icmp_dur_type {
type icmp_te_type (line 67) | enum icmp_te_type {
function PACK_STRUCT_BEGIN (line 80) | PACK_STRUCT_BEGIN
type pbuf (line 103) | struct pbuf
type netif (line 103) | struct netif
type pbuf (line 104) | struct pbuf
type icmp_dur_type (line 104) | enum icmp_dur_type
type pbuf (line 105) | struct pbuf
type icmp_te_type (line 105) | enum icmp_te_type
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/igmp.h
function PACK_STRUCT_BEGIN (line 88) | PACK_STRUCT_BEGIN
type igmp_group (line 112) | struct igmp_group {
type netif (line 126) | struct netif
type netif (line 128) | struct netif
type netif (line 130) | struct netif
type igmp_group (line 132) | struct igmp_group
type netif (line 132) | struct netif
type ip_addr (line 132) | struct ip_addr
type igmp_group (line 134) | struct igmp_group
type netif (line 134) | struct netif
type ip_addr (line 134) | struct ip_addr
type igmp_group (line 136) | struct igmp_group
type pbuf (line 138) | struct pbuf
type netif (line 138) | struct netif
type ip_addr (line 138) | struct ip_addr
type ip_addr (line 140) | struct ip_addr
type ip_addr (line 140) | struct ip_addr
type ip_addr (line 142) | struct ip_addr
type ip_addr (line 142) | struct ip_addr
type igmp_group (line 146) | struct igmp_group
type igmp_group (line 148) | struct igmp_group
type igmp_group (line 150) | struct igmp_group
type igmp_group (line 152) | struct igmp_group
type pbuf (line 154) | struct pbuf
type ip_addr (line 154) | struct ip_addr
type ip_addr (line 154) | struct ip_addr
type netif (line 154) | struct netif
type igmp_group (line 156) | struct igmp_group
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/inet.h
type in_addr (line 44) | struct in_addr {
type in_addr (line 54) | struct in_addr
type in_addr (line 55) | struct in_addr
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/inet_chksum.h
type pbuf (line 47) | struct pbuf
type pbuf (line 48) | struct pbuf
type ip_addr (line 49) | struct ip_addr
type ip_addr (line 49) | struct ip_addr
type pbuf (line 52) | struct pbuf
type ip_addr (line 53) | struct ip_addr
type ip_addr (line 53) | struct ip_addr
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip.h
type ip_pcb (line 90) | struct ip_pcb {
function PACK_STRUCT_BEGIN (line 113) | PACK_STRUCT_BEGIN
type netif (line 159) | struct netif
type ip_hdr (line 161) | struct ip_hdr
type netif (line 164) | struct netif
type ip_addr (line 164) | struct ip_addr
type pbuf (line 165) | struct pbuf
type netif (line 165) | struct netif
type pbuf (line 166) | struct pbuf
type ip_addr (line 166) | struct ip_addr
type ip_addr (line 166) | struct ip_addr
type pbuf (line 168) | struct pbuf
type ip_addr (line 168) | struct ip_addr
type ip_addr (line 168) | struct ip_addr
type netif (line 170) | struct netif
type pbuf (line 172) | struct pbuf
type ip_addr (line 172) | struct ip_addr
type ip_addr (line 172) | struct ip_addr
type pbuf (line 176) | struct pbuf
type ip_addr (line 176) | struct ip_addr
type ip_addr (line 176) | struct ip_addr
type netif (line 177) | struct netif
type pbuf (line 189) | struct pbuf
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip_addr.h
function PACK_STRUCT_BEGIN (line 48) | PACK_STRUCT_BEGIN
function PACK_STRUCT_BEGIN (line 64) | PACK_STRUCT_BEGIN
type netif (line 73) | struct netif
type ip_addr (line 75) | struct ip_addr
type ip_addr (line 76) | struct ip_addr
type ip_addr (line 142) | struct ip_addr
type netif (line 142) | struct netif
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/ipv4/lwip/ip_frag.h
type ip_reassdata (line 56) | struct ip_reassdata {
type pbuf (line 67) | struct pbuf
type pbuf (line 67) | struct pbuf
type pbuf (line 71) | struct pbuf
type netif (line 71) | struct netif
type ip_addr (line 71) | struct ip_addr
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/api.h
type netconn_type (line 66) | enum netconn_type {
type netconn_state (line 78) | enum netconn_state {
type netconn_evt (line 86) | enum netconn_evt {
type netconn_igmp (line 94) | enum netconn_igmp {
type ip_pcb (line 101) | struct ip_pcb
type tcp_pcb (line 102) | struct tcp_pcb
type udp_pcb (line 103) | struct udp_pcb
type raw_pcb (line 104) | struct raw_pcb
type netconn (line 105) | struct netconn
type netconn (line 108) | struct netconn
type netconn_evt (line 108) | enum netconn_evt
type netconn (line 111) | struct netconn {
type netconn (line 171) | struct
type netconn_type (line 172) | enum netconn_type
type netconn (line 174) | struct netconn
type netconn (line 178) | struct netconn
type ip_addr (line 179) | struct ip_addr
type netconn (line 185) | struct netconn
type ip_addr (line 186) | struct ip_addr
type netconn (line 188) | struct netconn
type ip_addr (line 189) | struct ip_addr
type netconn (line 191) | struct netconn
type netconn (line 192) | struct netconn
type netconn (line 194) | struct netconn
type netconn (line 194) | struct netconn
type netbuf (line 195) | struct netbuf
type netconn (line 195) | struct netconn
type netconn (line 196) | struct netconn
type netbuf (line 197) | struct netbuf
type ip_addr (line 197) | struct ip_addr
type netconn (line 198) | struct netconn
type netbuf (line 199) | struct netbuf
type netconn (line 200) | struct netconn
type netconn (line 203) | struct netconn
type netconn (line 206) | struct netconn
type ip_addr (line 207) | struct ip_addr
type ip_addr (line 208) | struct ip_addr
type netconn_igmp (line 209) | enum netconn_igmp
type ip_addr (line 212) | struct ip_addr
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/api_msg.h
type api_msg_msg (line 59) | struct api_msg_msg {
type api_msg (line 111) | struct api_msg {
type dns_api_msg (line 123) | struct dns_api_msg {
type api_msg_msg (line 136) | struct api_msg_msg
type api_msg_msg (line 137) | struct api_msg_msg
type api_msg_msg (line 138) | struct api_msg_msg
type api_msg_msg (line 139) | struct api_msg_msg
type api_msg_msg (line 140) | struct api_msg_msg
type api_msg_msg (line 141) | struct api_msg_msg
type api_msg_msg (line 142) | struct api_msg_msg
type api_msg_msg (line 143) | struct api_msg_msg
type api_msg_msg (line 144) | struct api_msg_msg
type api_msg_msg (line 145) | struct api_msg_msg
type api_msg_msg (line 146) | struct api_msg_msg
type api_msg_msg (line 148) | struct api_msg_msg
type netconn (line 155) | struct netconn
type netconn_type (line 155) | enum netconn_type
type netconn (line 156) | struct netconn
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/dhcp.h
type dhcp (line 27) | struct dhcp
function PACK_STRUCT_BEGIN (line 78) | PACK_STRUCT_BEGIN
type netif (line 118) | struct netif
type netif (line 120) | struct netif
type netif (line 122) | struct netif
type netif (line 124) | struct netif
type netif (line 126) | struct netif
type netif (line 128) | struct netif
type netif (line 132) | struct netif
type ip_addr (line 132) | struct ip_addr
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/dns.h
type ip_addr (line 78) | struct ip_addr
type ip_addr (line 85) | struct ip_addr
type ip_addr (line 87) | struct ip_addr
type ip_addr (line 89) | struct ip_addr
type ip_addr (line 93) | struct ip_addr
type ip_addr (line 94) | struct ip_addr
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/err.h
type LWIP_ERR_T (line 47) | typedef LWIP_ERR_T err_t;
type s8_t (line 49) | typedef s8_t err_t;
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/mem.h
type mem_size_t (line 47) | typedef size_t mem_size_t;
type u32_t (line 76) | typedef u32_t mem_size_t;
type u16_t (line 78) | typedef u16_t mem_size_t;
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/memp.h
type memp_pool_helper_t (line 53) | typedef enum {
type memp_malloc_helper (line 96) | struct memp_malloc_helper
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/memp_std.h
type raw_pcb (line 36) | struct raw_pcb
type udp_pcb (line 40) | struct udp_pcb
type tcp_pcb (line 44) | struct tcp_pcb
type tcp_pcb_listen (line 45) | struct tcp_pcb_listen
type tcp_seg (line 46) | struct tcp_seg
type ip_reassdata (line 50) | struct ip_reassdata
type netbuf (line 54) | struct netbuf
type netconn (line 55) | struct netconn
type tcpip_msg (line 59) | struct tcpip_msg
type tcpip_msg (line 60) | struct tcpip_msg
type etharp_q_entry (line 64) | struct etharp_q_entry
type igmp_group (line 68) | struct igmp_group
type sys_timeo (line 72) | struct sys_timeo
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netbuf.h
type netbuf (line 45) | struct netbuf {
type netbuf (line 56) | struct netbuf
type netbuf (line 57) | struct netbuf
type netbuf (line 58) | struct netbuf
type netbuf (line 59) | struct netbuf
type netbuf (line 60) | struct netbuf
type netbuf (line 62) | struct netbuf
type netbuf (line 63) | struct netbuf
type netbuf (line 65) | struct netbuf
type netbuf (line 66) | struct netbuf
type netbuf (line 68) | struct netbuf
type netbuf (line 69) | struct netbuf
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netdb.h
type hostent (line 67) | struct hostent {
type addrinfo (line 78) | struct addrinfo {
type hostent (line 95) | struct hostent
type hostent (line 96) | struct hostent
type hostent (line 97) | struct hostent
type addrinfo (line 98) | struct addrinfo
type addrinfo (line 101) | struct addrinfo
type addrinfo (line 102) | struct addrinfo
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netif.h
type dhcp (line 48) | struct dhcp
type autoip (line 51) | struct autoip
type netif (line 90) | struct netif {
type netif (line 203) | struct netif
type netif (line 205) | struct netif
type netif (line 209) | struct netif
type netif (line 209) | struct netif
type ip_addr (line 209) | struct ip_addr
type ip_addr (line 209) | struct ip_addr
type ip_addr (line 210) | struct ip_addr
type netif (line 212) | struct netif
type pbuf (line 213) | struct pbuf
type netif (line 213) | struct netif
type netif (line 216) | struct netif
type ip_addr (line 216) | struct ip_addr
type ip_addr (line 216) | struct ip_addr
type ip_addr (line 217) | struct ip_addr
type netif (line 218) | struct netif
type netif (line 224) | struct netif
type netif (line 226) | struct netif
type netif (line 228) | struct netif
type ip_addr (line 228) | struct ip_addr
type netif (line 229) | struct netif
type ip_addr (line 229) | struct ip_addr
type netif (line 230) | struct netif
type ip_addr (line 230) | struct ip_addr
type netif (line 232) | struct netif
type netif (line 233) | struct netif
type netif (line 234) | struct netif
type netif (line 240) | struct netif
type netif (line 240) | struct netif
type netif (line 244) | struct netif
type netif (line 245) | struct netif
type netif (line 246) | struct netif
type netif (line 250) | struct netif
type netif (line 250) | struct netif
type netif (line 258) | struct netif
type pbuf (line 258) | struct pbuf
type ip_addr (line 258) | struct ip_addr
type netif (line 259) | struct netif
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/netifapi.h
type netifapi_msg_msg (line 46) | struct netifapi_msg_msg {
type netifapi_msg (line 68) | struct netifapi_msg {
type netif (line 75) | struct netif
type ip_addr (line 76) | struct ip_addr
type ip_addr (line 77) | struct ip_addr
type ip_addr (line 78) | struct ip_addr
type netif (line 80) | struct netif
type pbuf (line 81) | struct pbuf
type netif (line 81) | struct netif
type netif (line 83) | struct netif
type ip_addr (line 84) | struct ip_addr
type ip_addr (line 85) | struct ip_addr
type ip_addr (line 86) | struct ip_addr
type netif (line 88) | struct netif
type netif (line 89) | struct netif
type netif (line 90) | struct netif
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/pbuf.h
type pbuf_layer (line 48) | typedef enum {
type pbuf_type (line 55) | typedef enum {
type pbuf (line 66) | struct pbuf {
type pbuf (line 103) | struct pbuf
type pbuf (line 104) | struct pbuf
type pbuf (line 105) | struct pbuf
type pbuf (line 106) | struct pbuf
type pbuf (line 107) | struct pbuf
type pbuf (line 108) | struct pbuf
type pbuf (line 109) | struct pbuf
type pbuf (line 110) | struct pbuf
type pbuf (line 110) | struct pbuf
type pbuf (line 111) | struct pbuf
type pbuf (line 111) | struct pbuf
type pbuf (line 112) | struct pbuf
type pbuf (line 112) | struct pbuf
type pbuf (line 113) | struct pbuf
type pbuf (line 113) | struct pbuf
type pbuf (line 114) | struct pbuf
type pbuf (line 115) | struct pbuf
type pbuf (line 116) | struct pbuf
type pbuf (line 116) | struct pbuf
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/raw.h
type raw_pcb (line 50) | struct raw_pcb {
type raw_pcb (line 76) | struct raw_pcb
type raw_pcb (line 77) | struct raw_pcb
type raw_pcb (line 78) | struct raw_pcb
type ip_addr (line 78) | struct ip_addr
type raw_pcb (line 79) | struct raw_pcb
type ip_addr (line 79) | struct ip_addr
type raw_pcb (line 81) | struct raw_pcb
type raw_pcb (line 82) | struct raw_pcb
type pbuf (line 83) | struct pbuf
type ip_addr (line 84) | struct ip_addr
type raw_pcb (line 86) | struct raw_pcb
type pbuf (line 86) | struct pbuf
type ip_addr (line 86) | struct ip_addr
type raw_pcb (line 87) | struct raw_pcb
type pbuf (line 87) | struct pbuf
type pbuf (line 90) | struct pbuf
type netif (line 90) | struct netif
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp.h
type snmp_ifType (line 49) | enum snmp_ifType {
type snmp_obj_id (line 93) | struct snmp_obj_id
type snmp_obj_id (line 101) | struct snmp_obj_id
type snmp_obj_id (line 102) | struct snmp_obj_id
type netif (line 111) | struct netif
type netif (line 112) | struct netif
type netif (line 113) | struct netif
type netif (line 114) | struct netif
type netif (line 115) | struct netif
type netif (line 116) | struct netif
type netif (line 117) | struct netif
type netif (line 118) | struct netif
type netif (line 123) | struct netif
type ip_addr (line 123) | struct ip_addr
type netif (line 124) | struct netif
type ip_addr (line 124) | struct ip_addr
type netif (line 144) | struct netif
type netif (line 145) | struct netif
type netif (line 146) | struct netif
type netif (line 147) | struct netif
type udp_pcb (line 193) | struct udp_pcb
type udp_pcb (line 194) | struct udp_pcb
type snmp_obj_id (line 224) | struct snmp_obj_id
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_asn1.h
type pbuf (line 79) | struct pbuf
type pbuf (line 80) | struct pbuf
type pbuf (line 81) | struct pbuf
type pbuf (line 82) | struct pbuf
type pbuf (line 83) | struct pbuf
type snmp_obj_id (line 83) | struct snmp_obj_id
type pbuf (line 84) | struct pbuf
type pbuf (line 90) | struct pbuf
type pbuf (line 91) | struct pbuf
type pbuf (line 92) | struct pbuf
type pbuf (line 93) | struct pbuf
type pbuf (line 94) | struct pbuf
type pbuf (line 95) | struct pbuf
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_msg.h
type snmp_varbind (line 77) | struct snmp_varbind
type snmp_varbind_root (line 110) | struct snmp_varbind_root
type snmp_resp_header_lengths (line 123) | struct snmp_resp_header_lengths
type snmp_trap_header_lengths (line 157) | struct snmp_trap_header_lengths
type snmp_msg_pstat (line 219) | struct snmp_msg_pstat
type snmp_msg_trap (line 258) | struct snmp_msg_trap
type snmp_msg_trap (line 286) | struct snmp_msg_trap
type ip_addr (line 291) | struct ip_addr
type snmp_varbind (line 294) | struct snmp_varbind
type snmp_obj_id (line 294) | struct snmp_obj_id
type snmp_varbind (line 295) | struct snmp_varbind
type snmp_varbind_root (line 296) | struct snmp_varbind_root
type snmp_varbind_root (line 297) | struct snmp_varbind_root
type snmp_varbind (line 297) | struct snmp_varbind
type snmp_varbind (line 298) | struct snmp_varbind
type snmp_varbind_root (line 298) | struct snmp_varbind_root
type snmp_msg_pstat (line 302) | struct snmp_msg_pstat
type snmp_obj_id (line 303) | struct snmp_obj_id
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/snmp_structs.h
type obj_def (line 68) | struct obj_def
type snmp_name_ptr (line 84) | struct snmp_name_ptr
type mib_node (line 102) | struct mib_node
type mib_scalar_node (line 120) | typedef struct mib_node mib_scalar_node;
type mib_array_node (line 124) | struct mib_array_node
type mib_ram_array_node (line 142) | struct mib_ram_array_node
type mib_list_node (line 158) | struct mib_list_node
type mib_list_rootnode (line 168) | struct mib_list_rootnode
type mib_external_node (line 188) | struct mib_external_node
type mib_array_node (line 231) | struct mib_array_node
type obj_def (line 234) | struct obj_def
type obj_def (line 235) | struct obj_def
type obj_def (line 236) | struct obj_def
type obj_def (line 237) | struct obj_def
type ip_addr (line 239) | struct ip_addr
type ip_addr (line 240) | struct ip_addr
type netif (line 241) | struct netif
type netif (line 242) | struct netif
type mib_list_node (line 244) | struct mib_list_node
type mib_list_node (line 245) | struct mib_list_node
type mib_list_rootnode (line 246) | struct mib_list_rootnode
type mib_list_rootnode (line 247) | struct mib_list_rootnode
type mib_list_rootnode (line 249) | struct mib_list_rootnode
type mib_list_node (line 249) | struct mib_list_node
type mib_list_rootnode (line 250) | struct mib_list_rootnode
type mib_list_node (line 250) | struct mib_list_node
type mib_list_rootnode (line 251) | struct mib_list_rootnode
type mib_list_rootnode (line 251) | struct mib_list_rootnode
type mib_list_node (line 251) | struct mib_list_node
type mib_node (line 253) | struct mib_node
type mib_node (line 253) | struct mib_node
type snmp_name_ptr (line 253) | struct snmp_name_ptr
type mib_node (line 254) | struct mib_node
type mib_node (line 254) | struct mib_node
type snmp_obj_id (line 254) | struct snmp_obj_id
type snmp_obj_id (line 256) | struct snmp_obj_id
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sockets.h
type sockaddr_in (line 53) | struct sockaddr_in {
type sockaddr (line 61) | struct sockaddr {
type linger (line 110) | struct linger {
type ip_mreq (line 175) | typedef struct ip_mreq {
type fd_set (line 282) | typedef struct fd_set {
type timeval (line 295) | struct timeval {
type sockaddr (line 303) | struct sockaddr
type sockaddr (line 304) | struct sockaddr
type sockaddr (line 306) | struct sockaddr
type sockaddr (line 307) | struct sockaddr
type sockaddr (line 311) | struct sockaddr
type sockaddr (line 316) | struct sockaddr
type sockaddr (line 319) | struct sockaddr
type timeval (line 323) | struct timeval
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/stats.h
type stats_proto (line 60) | struct stats_proto {
type stats_igmp (line 75) | struct stats_igmp {
type stats_mem (line 87) | struct stats_mem {
type stats_syselem (line 95) | struct stats_syselem {
type stats_sys (line 101) | struct stats_sys {
type stats_ (line 106) | struct stats_ {
type stats_ (line 142) | struct stats_
type stats_proto (line 267) | struct stats_proto
type stats_igmp (line 268) | struct stats_igmp
type stats_mem (line 269) | struct stats_mem
type stats_mem (line 270) | struct stats_mem
type stats_sys (line 271) | struct stats_sys
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/sys.h
type u8_t (line 47) | typedef u8_t sys_sem_t;
type u8_t (line 48) | typedef u8_t sys_mbox_t;
type sys_timeo (line 49) | struct sys_timeo {u8_t dummy;}
type sys_timeo (line 84) | struct sys_timeo {
type sys_timeouts (line 91) | struct sys_timeouts {
type sys_timeouts (line 109) | struct sys_timeouts
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/tcp.h
type tcp_pcb (line 52) | struct tcp_pcb
type tcp_pcb (line 62) | struct tcp_pcb
type tcp_pcb (line 63) | struct tcp_pcb
type tcp_pcb (line 65) | struct tcp_pcb
type tcp_pcb (line 66) | struct tcp_pcb
type tcp_pcb (line 67) | struct tcp_pcb
type tcp_pcb (line 69) | struct tcp_pcb
type tcp_pcb (line 70) | struct tcp_pcb
type pbuf (line 71) | struct pbuf
type tcp_pcb (line 72) | struct tcp_pcb
type tcp_pcb (line 73) | struct tcp_pcb
type tcp_pcb (line 75) | struct tcp_pcb
type tcp_pcb (line 76) | struct tcp_pcb
type tcp_pcb (line 78) | struct tcp_pcb
type tcp_pcb (line 93) | struct tcp_pcb
type tcp_pcb (line 94) | struct tcp_pcb
type ip_addr (line 94) | struct ip_addr
type tcp_pcb (line 96) | struct tcp_pcb
type ip_addr (line 96) | struct ip_addr
type tcp_pcb (line 98) | struct tcp_pcb
type tcp_pcb (line 101) | struct tcp_pcb
type tcp_pcb (line 101) | struct tcp_pcb
type tcp_pcb (line 104) | struct tcp_pcb
type tcp_pcb (line 106) | struct tcp_pcb
type tcp_pcb (line 112) | struct tcp_pcb
type tcp_pcb (line 115) | struct tcp_pcb
type pbuf (line 128) | struct pbuf
type netif (line 128) | struct netif
type tcp_pcb (line 130) | struct tcp_pcb
type tcp_pcb (line 131) | struct tcp_pcb
type tcp_pcb (line 132) | struct tcp_pcb
type tcp_pcb (line 133) | struct tcp_pcb
type tcp_pcb (line 134) | struct tcp_pcb
type tcp_pcb (line 135) | struct tcp_pcb
function PACK_STRUCT_BEGIN (line 219) | PACK_STRUCT_BEGIN
type tcp_state (line 247) | enum tcp_state {
type tcp_state (line 286) | enum tcp_state
function DEF_ACCEPT_CALLBACK (line 292) | DEF_ACCEPT_CALLBACK
type tcp_pcb_listen (line 437) | struct tcp_pcb_listen {
type lwip_event (line 451) | enum lwip_event {
type tcp_pcb (line 460) | struct tcp_pcb
type lwip_event (line 461) | enum lwip_event
type pbuf (line 462) | struct pbuf
type tcp_seg (line 526) | struct tcp_seg {
type tcp_pcb (line 548) | struct tcp_pcb
type tcp_pcb (line 548) | struct tcp_pcb
type tcp_pcb (line 549) | struct tcp_pcb
type tcp_pcb (line 550) | struct tcp_pcb
type tcp_pcb (line 550) | struct tcp_pcb
type tcp_seg (line 552) | struct tcp_seg
type tcp_seg (line 553) | struct tcp_seg
type tcp_seg (line 554) | struct tcp_seg
type tcp_seg (line 554) | struct tcp_seg
type tcp_pcb (line 574) | struct tcp_pcb
type tcp_pcb (line 575) | struct tcp_pcb
type tcp_pcb (line 578) | struct tcp_pcb
type tcp_seg (line 578) | struct tcp_seg
type ip_addr (line 581) | struct ip_addr
type ip_addr (line 581) | struct ip_addr
type tcp_pcb (line 586) | struct tcp_pcb
type tcp_pcb (line 587) | struct tcp_pcb
type ip_addr (line 590) | struct ip_addr
type tcp_pcb (line 594) | struct tcp_pcb
type pbuf (line 594) | struct pbuf
type tcp_pcb (line 597) | struct tcp_pcb
type tcp_state (line 600) | enum tcp_state
type tcp_hdr (line 602) | struct tcp_hdr
type tcp_state (line 604) | enum tcp_state
type tcp_pcb_listen (line 623) | struct tcp_pcb_listen
type tcp_pcb (line 624) | struct tcp_pcb
type tcp_pcb (line 627) | struct tcp_pcb
type tcp_pcb (line 630) | struct tcp_pcb
type tcp_pcb (line 632) | struct tcp_pcb
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/tcpip.h
type api_msg (line 73) | struct api_msg
type api_msg (line 75) | struct api_msg
type pbuf (line 79) | struct pbuf
type netif (line 79) | struct netif
type netifapi_msg (line 82) | struct netifapi_msg
type netifapi_msg (line 84) | struct netifapi_msg
type pbuf (line 92) | struct pbuf
type tcpip_msg_type (line 98) | enum tcpip_msg_type {
type tcpip_msg (line 111) | struct tcpip_msg {
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/lwip/udp.h
function PACK_STRUCT_BEGIN (line 56) | PACK_STRUCT_BEGIN
type udp_pcb (line 72) | struct udp_pcb {
type udp_pcb (line 114) | struct udp_pcb
type udp_pcb (line 118) | struct udp_pcb
type udp_pcb (line 119) | struct udp_pcb
type udp_pcb (line 120) | struct udp_pcb
type ip_addr (line 120) | struct ip_addr
type udp_pcb (line 122) | struct udp_pcb
type ip_addr (line 122) | struct ip_addr
type udp_pcb (line 124) | struct udp_pcb
type udp_pcb (line 125) | struct udp_pcb
type udp_pcb (line 126) | struct udp_pcb
type pbuf (line 127) | struct pbuf
type ip_addr (line 128) | struct ip_addr
type udp_pcb (line 131) | struct udp_pcb
type pbuf (line 131) | struct pbuf
type ip_addr (line 131) | struct ip_addr
type netif (line 131) | struct netif
type udp_pcb (line 132) | struct udp_pcb
type pbuf (line 132) | struct pbuf
type ip_addr (line 132) | struct ip_addr
type udp_pcb (line 133) | struct udp_pcb
type pbuf (line 133) | struct pbuf
type pbuf (line 139) | struct pbuf
type netif (line 139) | struct netif
type udp_hdr (line 144) | struct udp_hdr
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/etharp.h
function PACK_STRUCT_BEGIN (line 64) | PACK_STRUCT_BEGIN
function PACK_STRUCT_BEGIN (line 76) | PACK_STRUCT_BEGIN
function PACK_STRUCT_BEGIN (line 97) | PACK_STRUCT_BEGIN
function PACK_STRUCT_BEGIN (line 115) | PACK_STRUCT_BEGIN
type etharp_q_entry (line 152) | struct etharp_q_entry {
type netif (line 160) | struct netif
type ip_addr (line 160) | struct ip_addr
type eth_addr (line 161) | struct eth_addr
type ip_addr (line 161) | struct ip_addr
type netif (line 162) | struct netif
type pbuf (line 162) | struct pbuf
type netif (line 163) | struct netif
type eth_addr (line 163) | struct eth_addr
type pbuf (line 164) | struct pbuf
type netif (line 165) | struct netif
type pbuf (line 165) | struct pbuf
type ip_addr (line 165) | struct ip_addr
type netif (line 166) | struct netif
type ip_addr (line 166) | struct ip_addr
type pbuf (line 166) | struct pbuf
type netif (line 167) | struct netif
type ip_addr (line 167) | struct ip_addr
type pbuf (line 174) | struct pbuf
type netif (line 174) | struct netif
type netif (line 177) | struct netif
type eth_addr (line 177) | struct eth_addr
type eth_addr (line 178) | struct eth_addr
type eth_addr (line 179) | struct eth_addr
type ip_addr (line 179) | struct ip_addr
type eth_addr (line 180) | struct eth_addr
type ip_addr (line 180) | struct ip_addr
type eth_addr (line 186) | struct eth_addr
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/loopif.h
type netif (line 49) | struct netif
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/ppp_oe.h
function PACK_STRUCT_BEGIN (line 82) | PACK_STRUCT_BEGIN
function PACK_STRUCT_BEGIN (line 97) | PACK_STRUCT_BEGIN
type pppoe_softc (line 143) | struct pppoe_softc
type netif (line 148) | struct netif
type pppoe_softc (line 148) | struct pppoe_softc
type netif (line 149) | struct netif
type pppoe_softc (line 151) | struct pppoe_softc
type pppoe_softc (line 152) | struct pppoe_softc
type netif (line 154) | struct netif
type pbuf (line 154) | struct pbuf
type netif (line 155) | struct netif
type pbuf (line 155) | struct pbuf
type pppoe_softc (line 157) | struct pppoe_softc
type pbuf (line 157) | struct pbuf
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/include/netif/slipif.h
type netif (line 45) | struct netif
type netif (line 46) | struct netif
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/netif/etharp.c
type etharp_state (line 88) | enum etharp_state {
type etharp_entry (line 94) | struct etharp_entry {
type eth_addr (line 108) | struct eth_addr
type eth_addr (line 109) | struct eth_addr
type etharp_entry (line 110) | struct etharp_entry
type ip_addr (line 124) | struct ip_addr
type netif (line 124) | struct netif
type ip_addr (line 126) | struct ip_addr
type netif (line 129) | struct netif
type ip_addr (line 129) | struct ip_addr
type eth_addr (line 129) | struct eth_addr
function free_etharp_q (line 144) | static void
function etharp_tmr (line 166) | void
type ip_addr (line 230) | struct ip_addr
type ip_addr (line 232) | struct ip_addr
function err_t (line 429) | static err_t
function err_t (line 468) | static err_t
function s8_t (line 545) | s8_t
function etharp_ip_input (line 581) | void
function etharp_arp_input (line 626) | void
function err_t (line 802) | err_t
function err_t (line 893) | err_t
function err_t (line 1047) | err_t
function err_t (line 1131) | err_t
function err_t (line 1148) | err_t
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-1.3.2/src/netif/loopif.c
function err_t (line 54) | err_t
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/arch/cc.h
type u8_t (line 41) | typedef unsigned char u8_t;
type s8_t (line 42) | typedef signed char s8_t;
type u16_t (line 43) | typedef unsigned short u16_t;
type s16_t (line 44) | typedef signed short s16_t;
type u32_t (line 45) | typedef unsigned long u32_t;
type s32_t (line 46) | typedef signed long s32_t;
type u32_t (line 48) | typedef u32_t mem_ptr_t;
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/include/netif/wlif.h
type netif (line 7) | struct netif
type netif (line 8) | struct netif
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/LWIP/lwip-port-1.3.2/HD/if/netif/wlif.c
type wlif_t (line 27) | struct wlif_t {
function err_t (line 53) | static err_t process_pqueue(struct netif* netif)
function rx_isr (line 110) | static void
function err_t (line 126) | static err_t
function err_t (line 164) | static err_t
type pbuf (line 194) | struct pbuf
type netif (line 195) | struct netif
type pbuf (line 197) | struct pbuf
type wlif_t (line 198) | struct wlif_t
type wlif_t (line 198) | struct wlif_t
function wlif_input (line 255) | static void
function pkt_read_cb (line 295) | static ssize_t pkt_read_cb(char *dst,
function err_t (line 324) | err_t
function wlif_poll (line 360) | void
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS/ctrl_access.c
function Bool (line 227) | Bool ctrl_access_init(void)
function Bool (line 247) | static Bool ctrl_access_lock(void)
function U8 (line 261) | U8 get_nb_lun(void)
function U8 (line 279) | U8 get_cur_lun(void)
function Ctrl_status (line 285) | Ctrl_status mem_test_unit_ready(U8 lun)
function Ctrl_status (line 307) | Ctrl_status mem_read_capacity(U8 lun, U32 *u32_nb_sector)
function U8 (line 329) | U8 mem_sector_size(U8 lun)
function Bool (line 351) | Bool mem_wr_protect(U8 lun)
function Bool (line 373) | Bool mem_removal(U8 lun)
function Ctrl_status (line 419) | Ctrl_status memory_2_usb(U8 lun, U32 addr, U16 nb_sector)
function Ctrl_status (line 439) | Ctrl_status usb_2_memory(U8 lun, U32 addr, U16 nb_sector)
function Ctrl_status (line 471) | Ctrl_status memory_2_ram(U8 lun, U32 addr, void *ram)
function Ctrl_status (line 495) | Ctrl_status ram_2_memory(U8 lun, U32 addr, const void *ram)
function Ctrl_status (line 535) | Ctrl_status stream_mem_to_mem(U8 src_lun, U32 src_addr, U8 dest_lun, U32...
function Ctrl_status (line 557) | Ctrl_status stream_state(U8 id)
function U16 (line 563) | U16 stream_stop(U8 id)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/SERVICES/MEMORY/CTRL_ACCESS/ctrl_access.h
type Ctrl_status (line 67) | typedef enum
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/debug.c
function U32 (line 55) | U32 get_heap_curr_used_size( void )
function U32 (line 61) | U32 get_heap_total_used_size( void )
function U32 (line 68) | U32 get_heap_free_size( void )
function uc3_round_trace_init (line 100) | void uc3_round_trace_init(void* buf, U32 size)
function uc3_round_trace (line 107) | void uc3_round_trace(U32 val)
function dump (line 122) | void dump(char* _buf, uint16_t _count) {
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/DEBUG/print_funcs.c
function init_dbg_rs232 (line 57) | void init_dbg_rs232(long pba_hz)
function init_dbg_rs232_ex (line 63) | void init_dbg_rs232_ex(unsigned long baudrate, long pba_hz)
function print_dbg (line 90) | void print_dbg(const char *str)
function print_dbg_char (line 97) | void print_dbg_char(int c)
function print_dbg_ulong (line 104) | void print_dbg_ulong(unsigned long n)
function print_dbg_char_hex (line 111) | void print_dbg_char_hex(unsigned char n)
function print_dbg_short_hex (line 118) | void print_dbg_short_hex(unsigned short n)
function print_dbg_hex (line 125) | void print_dbg_hex(unsigned long n)
function print (line 132) | void print(volatile avr32_usart_t *usart, const char *str)
function print_char (line 139) | void print_char(volatile avr32_usart_t *usart, int c)
function print_ulong (line 146) | void print_ulong(volatile avr32_usart_t *usart, unsigned long n)
function print_char_hex (line 164) | void print_char_hex(volatile avr32_usart_t *usart, unsigned char n)
function print_short_hex (line 182) | void print_short_hex(volatile avr32_usart_t *usart, unsigned short n)
function print_hex (line 200) | void print_hex(volatile avr32_usart_t *usart, unsigned long n)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_io.h
type u32 (line 56) | typedef unsigned int u32;
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE/nlao_usart.h
function _BEGIN_STD_C (line 55) | _BEGIN_STD_C
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/compiler.h
type Bool (line 90) | typedef unsigned char Bool;
type S8 (line 96) | typedef signed char S8 ;
type U8 (line 97) | typedef unsigned char U8 ;
type S16 (line 98) | typedef signed short int S16;
type U16 (line 99) | typedef unsigned short int U16;
type S32 (line 100) | typedef signed long int S32;
type U32 (line 101) | typedef unsigned long int U32;
type S64 (line 102) | typedef signed long long int S64;
type U64 (line 103) | typedef unsigned long long int U64;
type F32 (line 104) | typedef float F32;
type F64 (line 105) | typedef double F64;
type Bool (line 112) | typedef Bool Status_bool_t;
type U8 (line 113) | typedef U8 Status_t;
type Union16 (line 122) | typedef union
type Union32 (line 131) | typedef union
type Union64 (line 142) | typedef union
type UnionPtr (line 155) | typedef union
type UnionVPtr (line 168) | typedef union
type UnionCPtr (line 181) | typedef union
type UnionCVPtr (line 194) | typedef union
type StructPtr (line 207) | typedef struct
type StructVPtr (line 220) | typedef struct
type StructCPtr (line 233) | typedef struct
type StructCVPtr (line 246) | typedef struct
type U8 (line 1124) | typedef U8 Byte;
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/ard_spi.c
type tCmd_spi_list (line 99) | typedef struct sCmd_spi_list{
type tStatSpi (line 110) | typedef struct sStatSpi
function initStatSpi (line 126) | void initStatSpi()
function printStatSpi (line 140) | void printStatSpi()
function cmd_state_t (line 155) | cmd_state_t
function cmd_state_t (line 162) | cmd_state_t
function setRemoteClient (line 181) | void setRemoteClient(uint16_t sock, uint32_t _ipaddr, uint16_t _port)
function tRemoteClient (line 190) | tRemoteClient* getRemoteClient(uint16_t sock)
type netif (line 199) | struct netif
type wl_network_list_t (line 202) | struct wl_network_list_t
type ip_addr (line 204) | struct ip_addr
function getSock (line 215) | int getSock(void * _ttcp)
function setMapSockMode (line 229) | void setMapSockMode(uint8_t sock, void* _ttcp, uint8_t _tcp_mode)
function setMapSock (line 236) | void setMapSock(uint8_t sock, void* _ttcp)
function clearMapSockTcp (line 241) | void clearMapSockTcp(uint8_t sock, uint8_t mode)
function initMapSockTcp (line 251) | void initMapSockTcp()
function ard_tcp_print_stats (line 260) | static void ard_tcp_print_stats(struct ttcp *ttcp) {
function showTTCPstatus (line 274) | void showTTCPstatus()
function write_stream (line 326) | int write_stream(volatile avr32_spi_t *spi, const char *stream, uint16_t...
function sendError (line 354) | void sendError()
function spi_add_cmd (line 386) | int spi_add_cmd(char _cmd_id, cmd_spi_cb_t cb, cmd_spi_rcb_t rcb, void* ...
function set_net_cmd_cb (line 406) | int set_net_cmd_cb(int numParam, char* buf, void* ctx) {
type wl_ssid_t (line 429) | struct wl_ssid_t
type wl_mac_addr_t (line 430) | struct wl_mac_addr_t
type wl_network_t (line 491) | struct wl_network_t
function set_ip_config_cmd_cb (line 539) | int set_ip_config_cmd_cb(int numParam, char* buf, void* ctx) {
function set_dns_config_cmd_cb (line 601) | int set_dns_config_cmd_cb(int numParam, char* buf, void* ctx) {
function set_result (line 647) | void set_result(wl_status_t _status)
function set_result_cmd (line 653) | void set_result_cmd(int err)
type ip_addr (line 680) | struct ip_addr
function start_server_tcp (line 684) | int start_server_tcp(uint16_t port, uint8_t sock, uint8_t protMode)
function start_server_tcp_cmd_cb (line 730) | int start_server_tcp_cmd_cb(int numParam, char* buf, void* ctx) {
function start_client_tcp (line 743) | int start_client_tcp(uint32_t _addr, uint16_t port, uint8_t sock, uint8_...
function start_client_tcp_cmd_cb (line 789) | int start_client_tcp_cmd_cb(int numParam, char* buf, void* ctx) {
function stop_client_tcp_cmd_cb (line 803) | int stop_client_tcp_cmd_cb(int numParam, char* buf, void* ctx) {
function insert_data_cmd_cb (line 824) | int insert_data_cmd_cb(int numParam, char* buf, void* ctx) {
function send_data_udp_cmd_cb (line 837) | int send_data_udp_cmd_cb(int numParam, char* buf, void* ctx) {
function send_data_tcp_cmd_cb (line 855) | int send_data_tcp_cmd_cb(int numParam, char* buf, void* ctx) {
function ack_cmd_cb (line 870) | int ack_cmd_cb(int numParam, char* buf, void* ctx) {
function get_result_cmd_cb (line 874) | int get_result_cmd_cb(int numParam, char* buf, void* ctx) {
function disconnect_cmd_cb (line 879) | int disconnect_cmd_cb(int numParam, char* buf, void* ctx)
function cmd_spi_state_t (line 885) | cmd_spi_state_t get_reply_cb(char* recv, char* reply, void* ctx, uint16_...
function cmd_spi_state_t (line 902) | cmd_spi_state_t ack_reply_cb(char* recv, char* reply, void* ctx, uint16_...
function cmd_spi_state_t (line 918) | cmd_spi_state_t get_reply_ipaddr_cb(char* recv, char* reply, void* ctx, ...
function getRemoteData (line 933) | void getRemoteData(uint8_t sock, uint8_t mode, tRemoteClient* remoteData)
function cmd_spi_state_t (line 957) | cmd_spi_state_t get_reply_remote_data_cb(char* recv, char* reply, void* ...
function foundHostByName (line 978) | void foundHostByName(const char *name, struct ip_addr *ipaddr, void *cal...
function cmd_spi_state_t (line 1027) | cmd_spi_state_t get_reply_mac_cb(char* recv, char* reply, void* ctx, uin...
function cmd_spi_state_t (line 1050) | cmd_spi_state_t get_reply_curr_net_cb(char* recv, char* reply, void* ctx...
function cmd_spi_state_t (line 1102) | cmd_spi_state_t get_reply_idx_net_cb(char* recv, char* reply, void* ctx,...
function copy_network_list (line 1153) | static void copy_network_list(struct wl_network_list_t *dst,
function start_scan_net_cmd_cb (line 1184) | int start_scan_net_cmd_cb(int numParam, char* buf, void* ctx) {
function cmd_spi_state_t (line 1201) | cmd_spi_state_t get_reply_scan_networks_cb(char* recv, char* reply, void...
function cmd_spi_state_t (line 1256) | cmd_spi_state_t get_state_tcp_cmd_cb(char* recv, char* reply, void* ctx,...
function cmd_spi_state_t (line 1274) | cmd_spi_state_t get_client_state_tcp_cmd_cb(char* recv, char* reply, voi...
function cmd_spi_state_t (line 1299) | cmd_spi_state_t avail_data_tcp_cmd_cb(char* recv, char* reply, void* ctx...
function cmd_spi_state_t (line 1317) | cmd_spi_state_t test_cmd_cb(char* recv, char* reply, void* ctx, uint16_t...
function cmd_spi_state_t (line 1328) | cmd_spi_state_t data_sent_tcp_cmd_cb(char* recv, char* reply, void* ctx,...
function cmd_spi_state_t (line 1344) | cmd_spi_state_t get_data_tcp_cmd_cb(char* recv, char* reply, void* ctx, ...
function cmd_spi_state_t (line 1373) | cmd_spi_state_t get_databuf_tcp_cmd_cb(char* recv, char* reply, void* ct...
function cmd_spi_state_t (line 1397) | cmd_spi_state_t get_firmware_version_cmd_cb(char* recv, char* reply, voi...
function cmd_spi_state_t (line 1412) | cmd_spi_state_t get_test_cmd_cb(char* recv, char* reply, void* ctx, uint...
function sendReply (line 1435) | int sendReply(int cmdIdx, char* recv, char* reply, void* resultCmd)
function spiMsg8 (line 1486) | inline bool spiMsg8(uint8_t cmd)
function call_reply_cb (line 1491) | int call_reply_cb(char* recv, char* reply) {
function init_spi_cmds (line 1564) | void init_spi_cmds(void* ctx) {
function checkMsgParam8 (line 1603) | int checkMsgParam8(unsigned char* buf)
function checkMsgParam16 (line 1619) | int checkMsgParam16(unsigned char* buf)
function checkMsgFormat (line 1635) | bool checkMsgFormat(uint8_t* _recv, int len, int* offset)
function spi_poll (line 1679) | void spi_poll(struct netif* netif) {
function spi_slaveReceiveInt (line 1735) | inline int spi_slaveReceiveInt(volatile avr32_spi_t *spi)
function spi_int_handler (line 1819) | static void spi_int_handler(void)
function spi_status_t (line 1840) | inline spi_status_t spi_read8(volatile avr32_spi_t *spi, unsigned char *...
function eic_int_handler1 (line 1865) | static void eic_int_handler1(void)
function initExtInt (line 1874) | void initExtInt()
function initSpi (line 1904) | int initSpi(void* ctx)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/ard_spi.h
type cmd_spi_state_t (line 16) | typedef enum {
type reply_err_t (line 25) | typedef enum {
type cmd_flags (line 34) | typedef enum {
type tProtMode (line 40) | typedef enum eProtMode {TCP_MODE, UDP_MODE}tProtMode;
type cmd_spi_state_t (line 49) | typedef cmd_spi_state_t (*cmd_spi_rcb_t)(char* recv, char* reply, void* ...
type tRemoteClient (line 51) | typedef struct eRemoteClient{
type netif (line 64) | struct netif
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/ard_tcp.c
type tcp_pcb (line 35) | struct tcp_pcb
function atcp_init_pend_flags (line 37) | static void atcp_init_pend_flags(struct ttcp* _ttcp)
function ard_tcp_destroy (line 49) | static void ard_tcp_destroy(struct ttcp* ttcp) {
function ard_tcp_done (line 91) | static void ard_tcp_done(struct ttcp* ttcp, int result) {
function err_t (line 108) | static err_t tcp_send_data_pcb(struct ttcp *ttcp, struct tcp_pcb *pcb) {
function err_t (line 149) | static err_t tcp_connect_cb(void *arg, struct tcp_pcb *tpcb, err_t err) {
function cleanSockState_cb (line 165) | static void cleanSockState_cb(void *ctx) {
function err_t (line 181) | static err_t close_conn_pcb(struct tcp_pcb* tpcb) {
function atcp_conn_err_cb (line 195) | static void atcp_conn_err_cb(void *arg, err_t err) {
function atcp_conn_cli_err_cb (line 211) | static void atcp_conn_cli_err_cb(void *arg, err_t err) {
function err_t (line 233) | static err_t close_conn(struct ttcp *_ttcp, struct tcp_pcb* tpcb) {
function closeConnections (line 255) | void closeConnections()
function err_t (line 280) | static err_t atcp_recv_cb(void *arg, struct tcp_pcb *pcb, struct pbuf *p,
function ack_recved (line 313) | void ack_recved(void* pcb, int len) {
function err_t (line 319) | static err_t atcp_poll(void *arg, struct tcp_pcb *pcb) {
function err_t (line 371) | static err_t atcp_poll_conn(void *arg, struct tcp_pcb *pcb) {
function getCurrClientConnId (line 419) | int8_t getCurrClientConnId() { return currConnId;}
function getNewClientConnId (line 421) | int8_t getNewClientConnId(struct ttcp* _ttcp, struct tcp_pcb *newpcb)
type tcp_pcb (line 440) | struct tcp_pcb
type ttcp (line 440) | struct ttcp
function setNewClientConn (line 460) | int8_t setNewClientConn(struct ttcp* _ttcp, struct tcp_pcb *newpcb, uint...
function insertNewClientConn (line 470) | int8_t insertNewClientConn(struct ttcp* _ttcp, struct tcp_pcb *newpcb)
function removeNewClientConn (line 488) | int8_t removeNewClientConn(struct ttcp* _ttcp, struct tcp_pcb *newpcb)
function cleanNewClientConn (line 506) | bool cleanNewClientConn(struct ttcp* _ttcp)
function err_t (line 521) | static err_t atcp_accept_cb(void *arg, struct tcp_pcb *newpcb, err_t err) {
function atcp_start (line 553) | static int atcp_start(struct ttcp* ttcp) {
function audp_recv_cb (line 616) | static void audp_recv_cb(void *arg, struct udp_pcb *upcb, struct pbuf *p,
function udp_start (line 640) | static int udp_start(struct ttcp* ttcp) {
function ard_tcp_start (line 679) | int ard_tcp_start(struct ip_addr addr, uint16_t port, void *opaque,
function ard_tcp_stop (line 739) | void ard_tcp_stop(void* ttcp) {
function getStateTcp (line 766) | uint8_t getStateTcp(void* p, bool client) {
function getModeTcp (line 791) | uint8_t getModeTcp(void* p) {
function isDataSent (line 799) | uint8_t isDataSent(void* p) {
function err_t (line 811) | static err_t tcp_data_sent(void *arg, struct tcp_pcb *pcb, u16_t len) {
function sendTcpData (line 834) | int sendTcpData(void* p, uint8_t* buf, uint16_t len)
function sendUdpData (line 870) | int sendUdpData(void* ttcp, uint8_t* buf, uint16_t len) {
function cmd_state_t (line 910) | cmd_state_t cmd_ttcp(int argc, char* argv[], void* ctx) {
function testlwip (line 972) | void testlwip()
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/ard_tcp.h
type ttcp_t (line 54) | typedef struct ttcp {
type ip_addr (line 91) | struct ip_addr
type ttcp (line 108) | struct ttcp
type tcp_pcb (line 108) | struct tcp_pcb
type ttcp (line 110) | struct ttcp
type tcp_pcb (line 110) | struct tcp_pcb
type ttcp (line 112) | struct ttcp
type tcp_pcb (line 112) | struct tcp_pcb
type ttcp (line 114) | struct ttcp
type ttcp (line 116) | struct ttcp
type tcp_pcb (line 116) | struct tcp_pcb
type tcp_pcb (line 120) | struct tcp_pcb
type ttcp (line 120) | struct ttcp
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/ard_utils.c
function init_pBuf (line 26) | void init_pBuf()
function calcMergeLen (line 72) | uint16_t calcMergeLen(uint8_t sock)
function clearBuf (line 91) | uint16_t clearBuf(uint8_t sock)
type pbuf (line 135) | struct pbuf
function dumpPbuf (line 177) | void dumpPbuf(uint8_t sock)
function tData (line 193) | tData* get_pBuf(uint8_t sock)
function freetData (line 207) | void freetData(void * buf, uint8_t sock)
function freetDataIdx (line 226) | void freetDataIdx(uint8_t idxBuf, uint8_t sock)
function ackAndFreeData (line 249) | void ackAndFreeData(void* pcb, int len, uint8_t sock, uint8_t* data)
function isAvailTcpDataByte (line 259) | bool isAvailTcpDataByte(uint8_t sock)
function getAvailTcpDataByte (line 279) | uint16_t getAvailTcpDataByte(uint8_t sock)
function getTcpDataByte (line 287) | bool getTcpDataByte(uint8_t sock, uint8_t* payload, uint8_t peek)
function getTcpData (line 312) | bool getTcpData(uint8_t sock, void** payload, uint16_t* len)
function freeTcpData (line 325) | bool freeTcpData(uint8_t sock)
function freeAllTcpData (line 337) | void freeAllTcpData(uint8_t sock)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/ard_utils.h
type tData (line 255) | typedef struct sData
type pbuf (line 263) | struct pbuf
type pbuf (line 267) | struct pbuf
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/avr32_spi.c
function owl_spi_init (line 42) | int owl_spi_init(U8 *flags)
function dma_txrx (line 202) | static void dma_txrx(const U8* in, U8* out, U16 len)
function fifo_txrx (line 246) | static void fifo_txrx(const U8 *in, U8* out, U16 len)
function owl_spi_txrx (line 301) | void owl_spi_txrx(const U8 *in, U8* out, U16 len)
function owl_spi_irq (line 323) | void owl_spi_irq(U8 enable)
function owl_spi_cs (line 334) | void owl_spi_cs(U8 enable)
function owl_spi_mdelay (line 360) | void owl_spi_mdelay(uint32_t ms)
function avr32_irq_handler (line 368) | __attribute__((__interrupt__)) void avr32_irq_handler(void)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/board_init.c
function board_putchar (line 44) | int board_putchar(char c)
function init_sys_clocks (line 68) | static void
function init_exceptions (line 133) | static void init_exceptions(void)
function init_hmatrix (line 140) | static void init_hmatrix(void)
function init_interrupts (line 154) | static void init_interrupts(void)
function init_rs232 (line 226) | static void init_rs232(void)
function init_printk (line 266) | static void init_printk(void)
function board_init (line 282) | void board_init(void)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/cmd_wl.c
function cmd_state_t (line 56) | cmd_state_t
function cmd_state_t (line 67) | cmd_state_t
function cmd_state_t (line 87) | cmd_state_t
function cmd_state_t (line 113) | cmd_state_t
function cmd_state_t (line 182) | cmd_state_t
function cmd_state_t (line 223) | cmd_state_t
function cmd_state_t (line 257) | cmd_state_t
function foundHost (line 297) | void foundHost(const char *name, struct ip_addr *ipaddr, void *callback_...
function cmd_state_t (line 305) | cmd_state_t
function cmd_state_t (line 334) | cmd_state_t
function cmd_state_t (line 365) | cmd_state_t
function cmd_state_t (line 397) | cmd_state_t
function cmd_state_t (line 434) | cmd_state_t
function cmd_state_t (line 489) | cmd_state_t
function cmd_state_t (line 523) | cmd_state_t
function cmd_state_t (line 571) | cmd_state_t
function cmd_state_t (line 617) | cmd_state_t
function cmd_state_t (line 664) | cmd_state_t
function cmd_state_t (line 693) | cmd_state_t
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/console.c
function io_getc (line 49) | int io_getc(char *c)
function console_add_cmd (line 107) | int console_add_cmd(const char* str, cmd_cb_t cb, void* ctx)
function console_init (line 123) | void console_init(void)
function console_init_silent (line 129) | void console_init_silent(void) {
function console_schedule_cmd (line 133) | int console_schedule_cmd(char *cmd, int interactive) {
function console_poll (line 207) | void console_poll(void)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/console.h
type cmd_state_t (line 32) | typedef enum {
type cmd_state_t (line 37) | typedef cmd_state_t (*cmd_cb_t)(int argc, char* argv[], void* ctx);
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/fw_download_extflash.c
function fw_download_init (line 34) | int fw_download_init(void)
function fw_read_cb (line 43) | size_t fw_read_cb(void* ctx,
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/lwip_setup.c
function tcp_tmr_cb (line 54) | static void
function ip_tmr_cb (line 63) | static void
function dns_tmr_cb (line 72) | static void
function etharp_tmr_cb (line 81) | static void
function dhcp_fine_tmr_cb (line 91) | static void
function dhcp_coarse_tmr_cb (line 100) | static void
function start_ip_stack (line 106) | int start_ip_stack(struct net_cfg *cfg,
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/lwip_setup.h
type net_cfg (line 8) | struct net_cfg {
type ctx_server (line 14) | struct ctx_server {
type net_cfg (line 25) | struct net_cfg
type ip_addr (line 26) | struct ip_addr
type ip_addr (line 27) | struct ip_addr
type ip_addr (line 28) | struct ip_addr
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/main.c
function fw_download_init (line 48) | int fw_download_init(void) { return 0;}
function fw_download_cb (line 49) | void fw_download_cb(void* ctx, uint8_t** buf, uint32_t* len)
function wl_cm_scan_cb (line 92) | static void
function wl_cm_conn_cb (line 102) | static void
function wl_cm_disconn_cb (line 131) | static void
function wl_cm_err_cb (line 153) | static void wl_cm_err_cb(void* ctx)
function ip_status_cb (line 164) | static void
function led_init (line 183) | void
function tc_init (line 195) | void tc_init(void)
function poll (line 246) | void
function initShell (line 268) | void initShell(void* ctx)
function wl_init_complete_cb (line 309) | void
function startup_init (line 351) | void startup_init(void)
function main (line 368) | int
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/nvram.c
type nvram (line 42) | struct nvram {
function nvram_init (line 49) | int nvram_init(void)
function at45dbx_read_multiple_sector_callback (line 71) | void at45dbx_read_multiple_sector_callback(const void *psector)
function at45dbx_write_multiple_sector_callback (line 87) | void at45dbx_write_multiple_sector_callback(void *psector)
function nvram_rw (line 101) | static int nvram_rw(uint32_t addr, void *data, uint16_t len, int write)
function nvram_write (line 140) | int nvram_write(uint32_t addr, const void *data, uint32_t len)
function nvram_read (line 150) | int nvram_read(uint32_t addr, void *data, uint32_t len)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/owl_os.c
function owl_os_free (line 18) | void owl_os_free(void *p)
function owl_os_strlen (line 38) | size_t owl_os_strlen(char *s)
function owl_os_strncmp (line 48) | int owl_os_strncmp(const char *s1, const char *s2, size_t n)
function owl_os_strcmp (line 53) | int owl_os_strcmp(const char *s1, const char *s2)
function owl_os_memcmp (line 73) | int owl_os_memcmp(const void *s1, const void *s2, size_t n)
function owl_os_strtol (line 78) | long int owl_os_strtol(const char *nptr, char **endptr, int base)
function owl_os_strcasecmp (line 93) | int owl_os_strcasecmp(const char *s1, const char *s2)
function owl_os_snprintf (line 103) | int owl_os_snprintf(char *str, size_t size, const char *format, ...)
function owl_os_printf (line 116) | int owl_os_printf(const char *fmt, ...)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/ping.c
type ping_info_t (line 52) | struct ping_info_t {
type ping_info_t (line 73) | struct ping_info_t
function ping_prepare_echo (line 76) | static void ping_prepare_echo(struct icmp_echo_hdr *iecho,
function u8_t (line 97) | static u8_t ping_recv(void *arg, struct raw_pcb *pcb, struct pbuf *p,
function ping_send (line 132) | static void ping_send(struct raw_pcb *raw, struct ping_info_t* ping_info)
function ping_set_callback (line 154) | void ping_set_callback(ping_complete_cb_t cb, void *ctx) {
function ping_stop (line 159) | void ping_stop(uint32_t *tx_cnt, uint32_t *rx_cnt) {
function init_ping_info (line 170) | static int init_ping_info(int argc, char* argv[], struct ping_info_t* pi...
function print_stats (line 230) | static void print_stats(struct ping_info_t* ping_info)
function ping_finalize (line 242) | static void ping_finalize(struct ping_info_t* ping_info) {
function cmd_state_t (line 249) | cmd_state_t cmd_ping(int argc, char* argv[], void* ctx)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/printf-stdarg.c
function printchar (line 74) | static void printchar(char **str, int c)
function prints (line 88) | static int prints(char **out, const char *string, int width, int pad)
function printi (line 121) | static int printi(char **out, int i, int b, int sg, int width, int pad, ...
function fprintf (line 165) | int fprintf(__FILE *stream, const char *format, ...)
function printk_va (line 171) | int printk_va(char **out, const char *format, va_list args )
function printk (line 240) | int printk(const char *format, ...)
function sprintf (line 249) | int sprintf(char *out, const char *format, ...)
function main (line 259) | int main(void)
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/timer.c
type timeout_t (line 41) | struct timeout_t {
type timer_t (line 50) | struct timer_t {
type timer_t (line 61) | struct timer_t
function vApplicationTickHook (line 73) | void vApplicationTickHook( void ) {
function irq_handler (line 83) | static __attribute__((__interrupt__)) void irq_handler(void)
function timer_init (line 98) | void timer_init(void (*tick_isr) (void* ctx), void* ctx)
function U32 (line 122) | U32 timer_get_ms(void)
function timer_delay (line 128) | void timer_delay(U32 ms)
function timer_poll (line 141) | void timer_poll(void)
function U32 (line 164) | static U32 timer_sched_timeout(U32 ms, U8 type)
function U32 (line 187) | U32 timer_sched_timeout_cb(U32 ms, U8 type, void (*cb)(void *ctx), void*...
function U32 (line 203) | U32 timer_mod(U32 id, U32 ms, U8 type, void (*cb)(void *ctx), void* ctx)
function timer_cancel_timeout (line 213) | void timer_cancel_timeout(U32 id)
function timer_interval_passed (line 222) | int timer_interval_passed(U32 old, U32 new, U32 diff) {
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/top_defs.h
type ip_addr (line 103) | struct ip_addr {
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/util.c
type ip_addr (line 41) | struct ip_addr
function str2ip (line 62) | struct ip_addr str2ip(const char* str)
function ascii_to_key (line 87) | uint8_t ascii_to_key(char *outp, const char *inp) {
function printbuf (line 111) | void printbuf(const char *prefix, const void *data, size_t len)
function print_network (line 139) | void print_network(struct wl_network_t* wl_network)
function print_network_list (line 168) | void print_network_list(void)
function join_argv (line 182) | int join_argv(char *dst, size_t dst_len, int argc, char* argv[]) {
type wl_ssid_t (line 210) | struct wl_ssid_t
type wl_enc_type (line 229) | enum wl_enc_type
function equal_ssid (line 243) | int equal_ssid(const struct wl_ssid_t* ssid1,
function equal_bssid (line 252) | int equal_bssid(const struct wl_mac_addr_t* bssid1,
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/util.h
type ip_addr (line 36) | struct ip_addr
type ip_addr (line 38) | struct ip_addr
type wl_network_t (line 42) | struct wl_network_t
type wl_ssid_t (line 50) | struct wl_ssid_t
type wl_enc_type (line 54) | enum wl_enc_type
type wl_ssid_t (line 56) | struct wl_ssid_t
type wl_ssid_t (line 57) | struct wl_ssid_t
type wl_mac_addr_t (line 59) | struct wl_mac_addr_t
type wl_mac_addr_t (line 60) | struct wl_mac_addr_t
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/wifi_spi.h
type wl_tcp_state (line 75) | enum wl_tcp_state {
type numParams (line 90) | enum numParams{
type tParam (line 103) | typedef struct __attribute__((__packed__))
type tDataParam (line 109) | typedef struct __attribute__((__packed__))
type tSpiMsg (line 116) | typedef struct __attribute__((__packed__))
type tSpiMsgData (line 124) | typedef struct __attribute__((__packed__))
type tSpiHdr (line 133) | typedef struct __attribute__((__packed__))
type tLongParam (line 141) | typedef struct __attribute__((__packed__))
type tIntParam (line 147) | typedef struct __attribute__((__packed__))
type tByteParam (line 153) | typedef struct __attribute__((__packed__))
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/wl_cm.c
type cm_candidate (line 75) | struct cm_candidate {
type cm (line 80) | struct cm {
type wl_network_t (line 99) | struct wl_network_t
type cm (line 100) | struct cm
type wl_network_list_t (line 102) | struct wl_network_list_t
type wl_network_t (line 103) | struct wl_network_t
function select_net (line 140) | static void
function wl_scan_complete_cb (line 233) | static void
function wl_media_connected_cb (line 252) | static void
function wl_conn_failure_cb (line 268) | static void
function wl_conn_lost_cb (line 288) | static void
function wl_event_cb (line 309) | static void
type cm (line 337) | struct cm
function wl_err_t (line 345) | wl_err_t
function wl_err_t (line 375) | wl_err_t
function wl_err_t (line 384) | wl_err_t
function wl_err_t (line 407) | wl_err_t
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/wl_cm.h
type wl_network_t (line 38) | struct wl_network_t
type wl_ssid_t (line 41) | struct wl_ssid_t
type wl_mac_addr_t (line 41) | struct wl_mac_addr_t
FILE: external/arduino/avr/firmwares/wifishield/wifiHD/src/wl_definitions.h
type wl_status_t (line 28) | typedef enum {
FILE: external/arduino/avr/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/BOARDS/ARDUINO/led.c
type tLED_DESCRIPTOR (line 59) | typedef const struct
function U32 (line 91) | U32 LED_Read_Display(void)
function LED_Display (line 97) | void LED_Display(U32 leds)
function U32 (line 131) | U32 LED_Read_Display_Mask(U32 mask)
function LED_Display_Mask (line 137) | void LED_Display_Mask(U32 mask, U32 leds)
function Bool (line 174) | Bool LED_Test(U32 leds)
function LED_Off (line 180) | void LED_Off(U32 leds)
function LED_On (line 208) | void LED_On(U32 leds)
function LED_Toggle (line 236) | void LED_Toggle(U32 leds)
function U32 (line 264) | U32 LED_Read_Display_Field(U32 field)
function LED_Display_Field (line 270) | void LED_Display_Field(U32 field, U32 leds)
function U8 (line 277) | U8 LED_Get_Intensity(U32 led)
function LED_Set_Intensity (line 292) | void LED_Set_Intensity(U32 leds, U8 intensity)
FILE: external/arduino/avr/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/BOARDS/EVK1105/led.c
type tLED_DESCRIPTOR (line 59) | typedef const struct
function U32 (line 91) | U32 LED_Read_Display(void)
function LED_Display (line 97) | void LED_Display(U32 leds)
function U32 (line 131) | U32 LED_Read_Display_Mask(U32 mask)
function LED_Display_Mask (line 137) | void LED_Display_Mask(U32 mask, U32 leds)
function Bool (line 174) | Bool LED_Test(U32 leds)
function LED_Off (line 180) | void LED_Off(U32 leds)
function LED_On (line 208) | void LED_On(U32 leds)
function LED_Toggle (line 236) | void LED_Toggle(U32 leds)
function U32 (line 264) | U32 LED_Read_Display_Field(U32 field)
function LED_Display_Field (line 270) | void LED_Display_Field(U32 field, U32 leds)
function U8 (line 277) | U8 LED_Get_Intensity(U32 led)
function LED_Set_Intensity (line 292) | void LED_Set_Intensity(U32 leds, U8 intensity)
FILE: external/arduino/avr/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx.c
function Bool (line 236) | Bool at45dbx_init(spi_options_t spiOptions, unsigned int pba_hz)
function at45dbx_chipselect_df (line 258) | static void at45dbx_chipselect_df(U8 memidx, Bool bSelect)
function Bool (line 273) | Bool at45dbx_mem_check(void)
function at45dbx_wait_ready (line 308) | static void at45dbx_wait_ready(void)
function Bool (line 331) | Bool at45dbx_read_open(U32 sector)
function at45dbx_read_close (line 372) | void at45dbx_read_close(void)
function Bool (line 382) | Bool at45dbx_write_open(U32 sector)
function at45dbx_write_close (line 444) | void at45dbx_write_close(void)
function U8 (line 469) | U8 at45dbx_read_byte(void)
function Bool (line 506) | Bool at45dbx_write_byte(U8 b)
function Bool (line 545) | Bool at45dbx_read_multiple_sector(U16 nb_sector)
function Bool (line 558) | Bool at45dbx_write_multiple_sector(U16 nb_sector)
function Bool (line 579) | Bool at45dbx_read_sector_2_ram(void *ram)
function Bool (line 627) | Bool at45dbx_write_sector_from_ram(const void *ram)
FILE: external/arduino/avr/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX/at45dbx_mem.c
function Ctrl_status (line 79) | Ctrl_status at45dbx_test_unit_ready(void)
function Ctrl_status (line 85) | Ctrl_status at45dbx_read_capacity(U32 *u32_nb_sector)
function Bool (line 93) | Bool at45dbx_wr_protect(void)
function Bool (line 99) | Bool at45dbx_removal(void)
function Ctrl_status (line 119) | Ctrl_status at45dbx_usb_read_10(U32 addr, U16 nb_sector)
function at45dbx_read_multiple_sector_callback (line 131) | void at45dbx_read_multiple_sector_callback(const void *psector)
function Ctrl_status (line 152) | Ctrl_status at45dbx_usb_write_10(U32 addr, U16 nb_sector)
function at45dbx_write_multiple_sector_callback (line 168) | void at45dbx_write_multiple_sector_callback(void *psector)
function Ctrl_status (line 201) | Ctrl_status at45dbx_df_2_ram(U32 addr, void *ram)
function Ctrl_status (line 213) | Ctrl_status at45dbx_ram_2_df(U32 addr, const void *ram)
FILE: external/arduino/avr/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/DRIVERS/FLASHC/flashc.c
type u_avr32_flashc_fcr_t (line 60) | typedef union
type u_avr32_flashc_fcmd_t (line 66) | typedef union
function flashc_get_flash_size (line 80) | unsigned int flashc_get_flash_size(void)
function flashc_get_page_count (line 112) | unsigned int flashc_get_page_count(void)
function flashc_get_page_count_per_region (line 118) | unsigned int flashc_get_page_count_per_region(void)
function flashc_get_page_region (line 124) | unsigned int flashc_get_page_region(int page_number)
function flashc_get_region_first_page_number (line 130) | unsigned int flashc_get_region_first_page_number(unsigned int region)
function flashc_get_wait_state (line 144) | unsigned int flashc_get_wait_state(void)
function flashc_set_wait_state (line 150) | void flashc_set_wait_state(unsigned int wait_state)
function Bool (line 158) | Bool flashc_is_ready_int_enabled(void)
function flashc_enable_ready_int (line 164) | void flashc_enable_ready_int(Bool enable)
function Bool (line 172) | Bool flashc_is_lock_error_int_enabled(void)
function flashc_enable_lock_error_int (line 178) | void flashc_enable_lock_error_int(Bool enable)
function Bool (line 186) | Bool flashc_is_prog_error_int_enabled(void)
function flashc_enable_prog_error_int (line 192) | void flashc_enable_prog_error_int(Bool enable)
function Bool (line 208) | Bool flashc_is_ready(void)
function flashc_default_wait_until_ready (line 214) | void flashc_default_wait_until_ready(void)
function flashc_get_error_status (line 233) | static unsigned int flashc_get_error_status(void)
function Bool (line 247) | Bool flashc_is_lock_error(void)
function Bool (line 253) | Bool flashc_is_programming_error(void)
function flashc_get_command (line 267) | unsigned int flashc_get_command(void)
function flashc_get_page_number (line 273) | unsigned int flashc_get_page_number(void)
function flashc_issue_command (line 279) | void flashc_issue_command(unsigned int command, int page_number)
function flashc_no_operation (line 301) | void flashc_no_operation(void)
function flashc_erase_all (line 307) | void flashc_erase_all(void)
function Bool (line 321) | Bool flashc_is_security_bit_active(void)
function flashc_activate_security_bit (line 327) | void flashc_activate_security_bit(void)
function flashc_get_bootloader_protected_size (line 333) | unsigned int flashc_get_bootloader_protected_size(void)
function flashc_set_bootloader_protected_size (line 342) | unsigned int flashc_set_bootloader_protected_size(unsigned int bootprot_...
function Bool (line 358) | Bool flashc_is_external_privileged_fetch_locked(void)
function flashc_lock_external_privileged_fetch (line 364) | void flashc_lock_external_privileged_fetch(Bool lock)
function Bool (line 370) | Bool flashc_is_page_region_locked(int page_number)
function Bool (line 376) | Bool flashc_is_region_locked(unsigned int region)
function flashc_lock_page_region (line 382) | void flashc_lock_page_region(int page_number, Bool lock)
function flashc_lock_region (line 388) | void flashc_lock_region(unsigned int region, Bool lock)
function flashc_lock_all_regions (line 394) | void flashc_lock_all_regions(Bool lock)
function Bool (line 415) | Bool flashc_read_gp_fuse_bit(unsigned int gp_fuse_bit)
function U64 (line 421) | U64 flashc_read_gp_fuse_bitfield(unsigned int pos, unsigned int width)
function U8 (line 427) | U8 flashc_read_gp_fuse_byte(unsigned int gp_fuse_byte)
function U64 (line 433) | U64 flashc_read_all_gp_fuses(void)
function Bool (line 439) | Bool flashc_erase_gp_fuse_bit(unsigned int gp_fuse_bit, Bool check)
function Bool (line 446) | Bool flashc_erase_gp_fuse_bitfield(unsigned int pos, unsigned int width,...
function Bool (line 462) | Bool flashc_erase_gp_fuse_byte(unsigned int gp_fuse_byte, Bool check)
function Bool (line 482) | Bool flashc_erase_all_gp_fuses(Bool check)
function flashc_write_gp_fuse_bit (line 489) | void flashc_write_gp_fuse_bit(unsigned int gp_fuse_bit, Bool value)
function flashc_write_gp_fuse_bitfield (line 496) | void flashc_write_gp_fuse_bitfield(unsigned int pos, unsigned int width,...
function flashc_write_gp_fuse_byte (line 511) | void flashc_write_gp_fuse_byte(unsigned int gp_fuse_byte, U8 value)
function flashc_write_all_gp_fuses (line 517) | void flashc_write_all_gp_fuses(U64 value)
function flashc_set_gp_fuse_bit (line 530) | void flashc_set_gp_fuse_bit(unsigned int gp_fuse_bit, Bool value)
function flashc_set_gp_fuse_bitfield (line 539) | void flashc_set_gp_fuse_bitfield(unsigned int pos, unsigned int width, U...
function flashc_set_gp_fuse_byte (line 554) | void flashc_set_gp_fuse_byte(unsigned int gp_fuse_byte, U8 value)
function flashc_set_all_gp_fuses (line 574) | void flashc_set_all_gp_fuses(U64 value)
function flashc_clear_page_buffer (line 602) | void flashc_clear_page_buffer(void)
function Bool (line 608) | Bool flashc_is_page_erased(void)
function Bool (line 614) | Bool flashc_quick_page_read(int page_number)
function Bool (line 621) | Bool flashc_erase_page(int page_number, Bool check)
function Bool (line 635) | Bool flashc_erase_all_pages(Bool check)
function flashc_write_page (line 650) | void flashc_write_page(int page_number)
function Bool (line 656) | Bool flashc_quick_user_page_read(void)
function Bool (line 663) | Bool flashc_erase_user_page(Bool check)
function flashc_write_user_page (line 670) | void flashc_write_user_page(void)
function flashc_set_flash_waitstate_and_readmode (line 1076) | void flashc_set_flash_waitstate_and_readmode(unsigned long cpu_f_hz)
FILE: external/arduino/avr/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.c
function gpio_enable_module (line 61) | int gpio_enable_module(const gpio_map_t gpiomap, unsigned int size)
function gpio_enable_module_pin (line 76) | int gpio_enable_module_pin(unsigned int pin, unsigned int function)
function gpio_enable_gpio (line 152) | void gpio_enable_gpio(const gpio_map_t gpiomap, unsigned int size)
function gpio_enable_gpio_pin (line 164) | void gpio_enable_gpio_pin(unsigned int pin)
function gpio_enable_pin_open_drain (line 182) | void gpio_enable_pin_open_drain(unsigned int pin)
function gpio_disable_pin_open_drain (line 189) | void gpio_disable_pin_open_drain(unsigned int pin)
function gpio_enable_pin_pull_up (line 199) | void gpio_enable_pin_pull_up(unsigned int pin)
function gpio_disable_pin_pull_up (line 209) | void gpio_disable_pin_pull_up(unsigned int pin)
function gpio_enable_pin_pull_down (line 222) | void gpio_enable_pin_pull_down(unsigned int pin)
function gpio_disable_pin_pull_down (line 233) | void gpio_disable_pin_pull_down(unsigned int pin)
function gpio_enable_pin_buskeeper (line 243) | void gpio_enable_pin_buskeeper(unsigned int pin)
function gpio_disable_pin_buskeeper (line 254) | void gpio_disable_pin_buskeeper(unsigned int pin)
function gpio_get_pin_value (line 263) | int gpio_get_pin_value(unsigned int pin)
function gpio_get_gpio_pin_output_value (line 270) | int gpio_get_gpio_pin_output_value(unsigned int pin)
function gpio_get_gpio_open_drain_pin_output_value (line 277) | int gpio_get_gpio_open_drain_pin_output_value(unsigned int pin)
function gpio_set_gpio_pin (line 284) | void gpio_set_gpio_pin(unsigned int pin)
function gpio_clr_gpio_pin (line 294) | void gpio_clr_gpio_pin(unsigned int pin)
function gpio_tgl_gpio_pin (line 304) | void gpio_tgl_gpio_pin(unsigned int pin)
function gpio_set_gpio_open_drain_pin (line 314) | void gpio_set_gpio_open_drain_pin(unsigned int pin)
function gpio_clr_gpio_open_drain_pin (line 323) | void gpio_clr_gpio_open_drain_pin(unsigned int pin)
function gpio_tgl_gpio_open_drain_pin (line 333) | void gpio_tgl_gpio_open_drain_pin(unsigned int pin)
function gpio_enable_pin_glitch_filter (line 343) | void gpio_enable_pin_glitch_filter(unsigned int pin)
function gpio_disable_pin_glitch_filter (line 350) | void gpio_disable_pin_glitch_filter(unsigned int pin)
function gpio_configure_edge_detector (line 364) | static int gpio_configure_edge_detector(unsigned int pin, unsigned int m...
function gpio_enable_pin_interrupt (line 394) | int gpio_enable_pin_interrupt(unsigned int pin, unsigned int mode)
function gpio_disable_pin_interrupt (line 412) | void gpio_disable_pin_interrupt(unsigned int pin)
function gpio_get_pin_interrupt_flag (line 419) | int gpio_get_pin_interrupt_flag(unsigned int pin)
function gpio_clear_pin_interrupt_flag (line 426) | void gpio_clear_pin_interrupt_flag(unsigned int pin)
function gpio_configure_pin_periph_event_mode (line 437) | int gpio_configure_pin_periph_event_mode(unsigned int pin, unsigned int ...
FILE: external/arduino/avr/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO/gpio.h
function gpio_local_init (line 346) | __attribute__((__always_inline__))
function gpio_local_enable_pin_output_driver (line 364) | __attribute__((__always_inline__))
function gpio_local_disable_pin_output_driver (line 378) | __attribute__((__always_inline__))
function gpio_local_get_pin_value (line 394) | __attribute__((__always_inline__))
function gpio_local_set_gpio_pin (line 413) | __attribute__((__always_inline__))
function gpio_local_clr_gpio_pin (line 432) | __attribute__((__always_inline__))
function gpio_local_tgl_gpio_pin (line 451) | __attribute__((__always_inline__))
function gpio_local_init_gpio_open_drain_pin (line 467) | __attribute__((__always_inline__))
function gpio_local_set_gpio_open_drain_pin (line 485) | __attribute__((__always_inline__))
function gpio_local_clr_gpio_open_drain_pin (line 503) | __attribute__((__always_inline__))
function gpio_local_tgl_gpio_open_drain_pin (line 521) | __attribute__((__always_inline__))
function gpio_enable_pin_periph_event (line 547) | __attribute__((__always_inline__))
function gpio_disable_pin_periph_event (line 561) | __attribute__((__always_inline__))
FILE: external/arduino/avr/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/DRIVERS/INTC/intc.c
function _unhandled_interrupt (line 97) | static void _unhandled_interrupt(void)
function __int_handler (line 113) | __int_handler _get_interrupt_handler(unsigned int int_level)
function INTC_init_evba (line 170) | static __inline__ void INTC_init_evba(void)
function INTC_init_interrupts (line 175) | void INTC_init_interrupts(void)
function INTC_register_interrupt (line 199) | void INTC_register_interrupt(__int_handler handler, unsigned int irq, un...
FILE: external/arduino/avr/firmwares/wifishield/wifi_dnld/src/SOFTWARE_FRAMEWORK/DRIVERS/PM/pm.c
type u_avr32_pm_mcctrl_t (line 57) | typedef union
type u_avr32_pm_cksel_t (line 63) | typedef union
type u_avr32_pm_pll_t (line 69) | typedef union
type u_avr32_pm_oscctrl0_t (line 75) | typedef union
type u_avr32_pm_oscctrl1_t (line 81) | typedef union
type u_avr32_pm_oscctrl32_t (line 87) | typedef union
type u_avr32_pm_ier_t (line 93) | typedef union
type u_avr32_pm_idr_t (line 99) | typedef union
type u_avr32_pm_icr_t (line 105) | typedef union
type u_avr32_pm_gcctrl_t (line 111) | typedef union
type u_avr32_pm_rccr_t (line 117) | typedef union
type u_avr32_pm_bgcr_t (line 123) | typedef union
type u_avr32_pm_vregcr_t (line 129) | typedef union
type u_avr32_pm_bod_t (line 135) | typedef union
function pm_set_osc0_mode (line 149) | static void pm_set_osc0_mode(volatile avr32_pm_t *pm, unsigned int mode)
function pm_enable_osc0_ext_clock (line 160) | void pm_enable_osc0_ext_clock(volatile avr32_pm_t *pm)
function pm_enable_osc0_crystal (line 166) | void pm_enable_osc0_crystal(volatile avr32_pm_t *pm, unsigned int fosc0)
function pm_enable_clk0 (line 175) | void pm_enable_clk0(volatile avr32_pm_t *pm, unsigned int startup)
function pm_disable_clk0 (line 182) | void pm_disable_clk0(volatile avr32_pm_t *pm)
function pm_enable_clk0_no_wait (line 188) | void pm_enable_clk0_no_wait(volatile avr32_pm_t *pm, unsigned int startup)
function pm_wait_for_clk0_ready (line 201) | void pm_wait_for_clk0_ready(volatile avr32_pm_t *pm)
function pm_set_osc1_mode (line 212) | static void pm_set_osc1_mode(volatile avr32_pm_t *pm, unsigned int mode)
function pm_enable_osc1_ext_clock (line 223) | void pm_enable_osc1_ext_clock(volatile avr32_pm_t *pm)
function pm_enable_osc1_crystal (line 229) | void pm_enable_osc1_crystal(volatile avr32_pm_t *pm, unsigned int fosc1)
function pm_enable_clk1 (line 238) | void pm_enable_clk1(volatile avr32_pm_t *pm, unsigned int startup)
function pm_disable_clk1 (line 245) | void pm_disable_clk1(volatile avr32_pm_t *pm)
function pm_enable_clk1_no_wait (line 251) | void pm_enable_clk1_no_wait(volatile avr32_pm_t *pm, unsigned int startup)
function pm_wait_for_clk1_ready (line 264) | void pm_wait_for_clk1_ready(volatile avr32_pm_t *pm)
function pm_set_osc32_mode (line 275) | static void pm_set_osc32_mode(volatile avr32_pm_t *pm, unsigned int mode)
function pm_enable_osc32_ext_clock (line 286) | void pm_enable_osc32_ext_clock(volatile avr32_pm_t *pm)
function pm_enable_osc32_crystal (line 292) | void pm_enable_osc32_crystal(volatile avr32_pm_t *pm)
function pm_enable_clk32 (line 298) | void pm_enable_clk32(volatile avr32_pm_t *pm, unsigned int startup)
function pm_disable_clk32 (line 305) | void pm_disable_clk32(volatile avr32_pm_t *pm)
function pm_enable_clk32_no_wait (line 311) | void pm_enable_clk32_no_wait(volatile avr32_pm_t *pm, unsigned int startup)
function pm_wait_for_clk32_ready (line 323) | void pm_wait_for_clk32_ready(volatile avr32_pm_t *pm)
function pm_cksel (line 329) | void pm_cksel(volatile avr32_pm_t *pm,
function pm_gc_setup (line 355) | void pm_gc_setup(volatile avr32_pm_t *pm,
function pm_gc_enable (line 373) | void pm_gc_enable(volatile avr32_pm_t *pm,
function pm_gc_disable (line 380) | void pm_gc_disable(volatile avr32_pm_t *pm,
function pm_pll_se
Copy disabled (too large)
Download .json
Condensed preview — 1067 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (14,224K chars).
[
{
"path": ".gitignore",
"chars": 5,
"preview": ".nerd"
},
{
"path": "LICENSE",
"chars": 1099,
"preview": "MIT License\n\nCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\nPermission is hereby granted, free of charge"
},
{
"path": "README.md",
"chars": 5316,
"preview": "<p>\nNo VM. No Bytecode. No packaging. No Garbage Collector. Fully compiled to native binaries.\n</p>\n\n# NectarJS becomes "
},
{
"path": "base/cli/cliParser.js",
"chars": 2867,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "base/compiler/target.js",
"chars": 1423,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "base/util/copyDirSync.js",
"chars": 2292,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "base/util/copyRecursive.js",
"chars": 777,
"preview": "var fs = require(\"fs\");\nvar path = require(\"path\");\n\nvar copyRecursiveSync = function(src, dest) \n{\n\tif(!fs.existsSync(s"
},
{
"path": "base/util/flash.js",
"chars": 2656,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "base/util/getExt.js",
"chars": 1921,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "base/util/getTips.js",
"chars": 2424,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/compiler.js",
"chars": 4642,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/env/arduino.js",
"chars": 2482,
"preview": "var OPTIONS = \n{\n\t\"mega\": { preset: \"-DF_CPU=16000000UL -mmcu=atmega2560\", variant: \"mega\"},\n\t\"mega2560\": { preset: \"-DF"
},
{
"path": "compiler/native/env/js.js",
"chars": 5028,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/env/std.js",
"chars": 4976,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/env/wasm.js",
"chars": 1805,
"preview": "var WASM =\n{\n name: \"wasm\",\n main: \"wasm.cpp\",\n compiler: \"em++\",\n out: function(_name)\n {\n\t\tif(CLI.cli[\"--target\"]"
},
{
"path": "compiler/native/nerdcore/src/class/_meta.h",
"chars": 1517,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/array.h",
"chars": 9931,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/array_header.h",
"chars": 6180,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/base_header.h",
"chars": 2020,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/fixed_array.h",
"chars": 9565,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/fixed_array_header.h",
"chars": 4112,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/function.h",
"chars": 10353,
"preview": "/*\n\tCopyright (c) 2022 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/function_header.h",
"chars": 5266,
"preview": "/*\n\tCopyright (c) 2022 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/native.h",
"chars": 7959,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/native_header.h",
"chars": 3495,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/native_tpl_header.h",
"chars": 8974,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/number.h",
"chars": 1151,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/number_header.h",
"chars": 1150,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/object.h",
"chars": 9668,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/object_header.h",
"chars": 3795,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/string.h",
"chars": 14586,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/string_header.h",
"chars": 4444,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/struct.h",
"chars": 9839,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/class/struct_header.h",
"chars": 4234,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/classes.h",
"chars": 1326,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/classes_header.h",
"chars": 1483,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/enum.h",
"chars": 1273,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/functions.h",
"chars": 1307,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/functions_header.h",
"chars": 3156,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/macro.h",
"chars": 5600,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/native/double.h",
"chars": 2683,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/native/double_header.h",
"chars": 1873,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/native/int.h",
"chars": 2346,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/native/int_header.h",
"chars": 1825,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/native.h",
"chars": 1161,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/native_header.h",
"chars": 1175,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/nerd.cpp",
"chars": 1319,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/nerd.hpp",
"chars": 2383,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/objmgmt.h",
"chars": 4006,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/objmgmt_header.h",
"chars": 2142,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/operator.h",
"chars": 20370,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/operator_header.h",
"chars": 8649,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/stdfn.h",
"chars": 2619,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/stdfn_header.h",
"chars": 1387,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/tsl/robin_growth_policy.h",
"chars": 11776,
"preview": "/**\n * MIT License\n *\n * Copyright (c) 2017 Thibaut Goetghebuer-Planchon <tessil@gmx.com>\n *\n * Permission is hereby gra"
},
{
"path": "compiler/native/nerdcore/src/tsl/robin_hash.h",
"chars": 54480,
"preview": "/**\n * MIT License\n *\n * Copyright (c) 2017 Thibaut Goetghebuer-Planchon <tessil@gmx.com>\n *\n * Permission is hereby gra"
},
{
"path": "compiler/native/nerdcore/src/tsl/robin_map.h",
"chars": 28414,
"preview": "/**\n * MIT License\n *\n * Copyright (c) 2017 Thibaut Goetghebuer-Planchon <tessil@gmx.com>\n *\n * Permission is hereby gra"
},
{
"path": "compiler/native/nerdcore/src/tsl/robin_set.h",
"chars": 23593,
"preview": "/**\n * MIT License\n *\n * Copyright (c) 2017 Thibaut Goetghebuer-Planchon <tessil@gmx.com>\n *\n * Permission is hereby gra"
},
{
"path": "compiler/native/nerdcore/src/type_header.h",
"chars": 1755,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/values.h",
"chars": 1803,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/values_header.h",
"chars": 1506,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/var.h",
"chars": 16952,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/src/var_header.h",
"chars": 6472,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/nerdcore/test/array.cpp",
"chars": 374,
"preview": "#include \"../src/nerd.hpp\"\nusing namespace NerdCore;\nusing namespace NerdCore::Global;\nusing namespace NerdCore::Class;\n"
},
{
"path": "compiler/native/nerdcore/test/cast.cpp",
"chars": 843,
"preview": "#include \"../src/nerd.hpp\"\n\nusing namespace NerdCore;\nusing namespace NerdCore::Global;\nusing namespace NerdCore::Class;"
},
{
"path": "compiler/native/nerdcore/test/native.cpp",
"chars": 704,
"preview": "#include \"../src/nerd.hpp\"\nusing namespace NerdCore;\nusing namespace NerdCore::Global;\nusing namespace NerdCore::Class;\n"
},
{
"path": "compiler/native/nerdcore/test/object.cpp",
"chars": 686,
"preview": "#include \"../src/nerd.hpp\"\nusing namespace NerdCore;\nusing namespace NerdCore::Global;\nusing namespace NerdCore::Class;\n"
},
{
"path": "compiler/native/nerdcore/test/operators.cpp",
"chars": 1195,
"preview": "#include \"../src/nerd.hpp\"\n\nusing namespace NerdCore;\nusing namespace NerdCore::Global;\nusing namespace NerdCore::Class;"
},
{
"path": "compiler/native/squel/arduino.cpp",
"chars": 1274,
"preview": " #define _USE_MATH_DEFINES\n #include <string>\n #include <avr/io.h>\n #include <wiring_digital.c>\n #include <Arduino.h>\n #"
},
{
"path": "compiler/native/squel/js.cpp",
"chars": 4512,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/squel/std.cpp",
"chars": 3109,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/native/squel/wasm.cpp",
"chars": 756,
"preview": " #define __NERD_ENV_WASM\n #include \"nerdcore/src/nerd.hpp\"\n \n using namespace NerdCore::Global;\n using namespace NerdCor"
},
{
"path": "compiler/self/base/cli/cliParser.ng",
"chars": 1702,
"preview": "var parseCLI = function(args)\n{\n var result = \n {\n\terror: false,\n\tmsg: \"\",\n\tcli: {},\n\tstack: [],\n\tuseless: []\n };\n v"
},
{
"path": "compiler/self/base/compiler/target.js",
"chars": 1423,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/self/base/util/copyDirSync.js",
"chars": 2211,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/self/base/util/copyRecursive.js",
"chars": 710,
"preview": "var copyRecursiveSync = function(src, dest) \n{\n\tif(!fs.existsSync(src))\n\t{\n\t\t\tconsole.log(\"[!] Warning: \" + src + \" does"
},
{
"path": "compiler/self/base/util/flash.js",
"chars": 2631,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/self/base/util/getExt.js",
"chars": 1917,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/self/base/util/getTips.js",
"chars": 2415,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/self/base/util/httpUtils.js",
"chars": 3091,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/self/base/util/rmdir.js",
"chars": 2708,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "compiler/self/nerd.ng",
"chars": 1542,
"preview": "/*\n\tCopyright (c) 2021 NerdLang - Adrien THIERRY and contributors\n\n\tPermission is hereby granted, free of charge, to any"
},
{
"path": "example/arduino-lcd.ng",
"chars": 262,
"preview": "var arduino = require(\"arduino\");\nvar LCD = require(\"arduino-lcd\");\n\nvar lcd = LCD(8, 9, 4, 5, 6, 7);\n\nlcd.clear();\nlcd."
},
{
"path": "example/arduino.ng",
"chars": 260,
"preview": "var arduino = require(\"arduino\");\n\narduino.pinMode(arduino.led_builtin, arduino.output);\n\nwhile(true)\n{\n\tarduino.digital"
},
{
"path": "example/args.ng",
"chars": 561,
"preview": "var console = require(\"console\");\n\nvar cliAgs = arguments(); // cli args \n\nconsole.log();\nconsole.log(\"Cli Args:\");\nfor("
},
{
"path": "example/circular_array.ng",
"chars": 147,
"preview": "var console = require(\"console\");\n\nwhile (true) \n{\n var x = [\"Hello Circular Array\"];\n var y = [x];\n x[1] = y;\n "
},
{
"path": "example/circular_fixed_array.ng",
"chars": 174,
"preview": "var console = require(\"console\");\n\nwhile (true) \n{\n var x = FixedArray();\n x[0] = \"Hello Circular Fixed Array\";\n v"
},
{
"path": "example/circular_object.ng",
"chars": 218,
"preview": "var console = require(\"console\");\n\nwhile (true) \n{\n var x =\n {\n\t\ta: \"Hello Circular Object\"\n\t}; // x = 1\n var y = "
},
{
"path": "example/const.ng",
"chars": 182,
"preview": "var _world = \"world\";\nvar _console = require(\"console\");\n\nvar _fn = function(_const, assignable )\n{\n\tassignable = _world"
},
{
"path": "example/date.ng",
"chars": 87,
"preview": "var date = require(\"date\");\nvar console = require(\"console\");\n\nconsole.log(date.now());"
},
{
"path": "example/exec.ng",
"chars": 260,
"preview": "var console = require(\"console\");\nvar cp = require(\"child_process\");\n\nvar _args = arguments();\n\nif(_args[1])\n{\n\tconsole."
},
{
"path": "example/exit.ng",
"chars": 26,
"preview": "var zero = 0;\n\nexit(zero);"
},
{
"path": "example/fibo.ng",
"chars": 174,
"preview": "var console = require(\"console\");\n\nvar fibonacci = function(n)\n{\n if (n < 2) \n {\n\treturn n;\n }\n\n\treturn fibonacci(n -"
},
{
"path": "example/fiboit.ng",
"chars": 145,
"preview": "var _console = require(\"console\");\nvar a = 1;\nvar b = 0;\nvar c = 0;\nvar n = 102;\nwhile (n > 0)\n{\nc = a;\na = b + a;\nb = c"
},
{
"path": "example/functional.ng",
"chars": 310,
"preview": "var console = require(\"console\");\n\nvar Functional = function()\n{\n\tvar obj = {};\n\tobj.fn = function(_arg)\n\t{\n\t\tconsole.wr"
},
{
"path": "example/hello.ng",
"chars": 69,
"preview": "var console = require(\"console\");\nconsole.log(\"Hello\", \"World\", \"!\");"
},
{
"path": "example/http.ng",
"chars": 486,
"preview": "var console = require(\"console\");\nvar http = require(\"http\");\n\nvar _port = 8080;\n\nvar _cb = function(req, res)\n{\n\t/* API"
},
{
"path": "example/http_post.ng",
"chars": 595,
"preview": "var console = require(\"console\");\nvar http = require(\"http\");\n\nvar _port = 8080;\n\nvar _endCB = function(req, res)\n{\n\tres"
},
{
"path": "example/json.ng",
"chars": 206,
"preview": "var _json = require(\"JSON\");\nvar _console = require(\"console\");\n\nvar obj = \n{\n\t\"key\": \"value\",\n};\n\nvar str = \"{\\\"name\\\":"
},
{
"path": "example/loop.ng",
"chars": 297,
"preview": "var console = require(\"console\");\nvar a = 10;\n\nvar obj = \n{\n\ta: \"a\",\n\tb: \"b\",\n\tc: \"c\",\n\td: \"d\",\n};\n\nwhile(a--)\n{\n\tconsol"
},
{
"path": "example/match.ng",
"chars": 108,
"preview": "var console = require(\"console\");\nvar regexp = require(\"regexp\");\n\nconsole.log(regexp.match(\".*.\", \"1234\"));"
},
{
"path": "example/native.ng",
"chars": 86,
"preview": "var inNative = \"Hello from native\";\n\n{{\n\tstd::cout << inNative << \"!\" << std::endl;\n}}"
},
{
"path": "example/nested_object.ng",
"chars": 142,
"preview": "var console = require(\"console\");\n\nvar a = {\n\tb: \"ok\",\n\tc: \"hello\",\n\td: {\n\t\tx: \"z\",\n\t\ty: {},\n\t\tp: \"q\",\n\t},\n\te: \"e\",\n};\t\n"
},
{
"path": "example/new.ng",
"chars": 289,
"preview": "var console = require(\"console\");\n\nvar a = function()\n{\n\tthis.dic = \"Hello\";\n\treturn this;\n};\na.prototype.dic = \"ok\";\na."
},
{
"path": "example/object_keys.ng",
"chars": 155,
"preview": "var console = require(\"console\");\nvar object = require(\"object\");\n\nvar obj = \n{\n\t\"a\": 0,\n\t\"b\": 1,\n\t\"c\": 8,\n\t\"d\": \"ahah\","
},
{
"path": "example/os.ng",
"chars": 97,
"preview": "var os = require(\"os\");\nvar console = require(\"console\");\n\n\nconsole.log(os.version(), os.arch());"
},
{
"path": "example/path.ng",
"chars": 105,
"preview": "var _path = require(\"path\");\nvar _console = require(\"console\");\n\n_console.log(_path.join(\"a\", \"b\", \"c\"));"
},
{
"path": "example/readfile.ng",
"chars": 202,
"preview": "var console = require(\"console\");\nvar fs = require(\"fs\");\n\nvar args = arguments();\n\nif(args[1])\n{\n\tconsole.log(fs.readFi"
},
{
"path": "example/thread.ng",
"chars": 318,
"preview": "var _thread = require(\"thread\");\nvar thread = _thread();\n\nvar console = require(\"console\");\n\nvar fn1 = function()\n{\n\tfor"
},
{
"path": "example/throw.ng",
"chars": 128,
"preview": "var console = require(\"console\");\nvar error = require(\"error\");\n\ntry\n{\n\terror.throw(\"An error\");\n}\ncatch(e)\n{\n\tconsole.l"
},
{
"path": "example/wasm.html",
"chars": 218,
"preview": "<!doctype html>\n<html>\n <script>\n var Module = {};\n\t\n\tfunction WasmLoaded()\n\t{\n\t\tconsole.log(Module.call(\"callFromNe"
},
{
"path": "example/wasm_binding.ng",
"chars": 503,
"preview": "var wasm = require(\"wasm\");\n\n// function proto for binding : string(string)\nvar callFromNerd = function(_data)\n{\n\tif(_da"
},
{
"path": "external/arduino/avr/LICENSE.txt",
"chars": 2480,
"preview": "The contents of avr-libc are licensed with a Modified BSD License.\n\nAll of this is supposed to be Free Software, Open So"
},
{
"path": "external/arduino/avr/boards.txt",
"chars": 31718,
"preview": "# See: http://code.google.com/p/arduino/wiki/Platforms\n\nmenu.cpu=Processor\n\n############################################"
},
{
"path": "external/arduino/avr/bootloaders/atmega/ATmegaBOOT_168.c",
"chars": 29185,
"preview": "/**********************************************************/\n/* Serial Bootloader for Atmel megaAVR Controllers *"
},
{
"path": "external/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1280.hex",
"chars": 10676,
"preview": ":020000021000EC\n:10F000000C9472F80C9492F80C9492F80C9492F878\n:10F010000C9492F80C9492F80C9492F80C9492F848\n:10F020000C9492F"
},
{
"path": "external/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex",
"chars": 5408,
"preview": ":107800000C94343C0C94513C0C94513C0C94513CE1\n:107810000C94513C0C94513C0C94513C0C94513CB4\n:107820000C94513C0C94513C0C94513"
},
{
"path": "external/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex",
"chars": 5360,
"preview": ":107800000C94343C0C94513C0C94513C0C94513CE1\n:107810000C94513C0C94513C0C94513C0C94513CB4\n:107820000C94513C0C94513C0C94513"
},
{
"path": "external/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_diecimila.hex",
"chars": 5436,
"preview": ":103800000C94341C0C94511C0C94511C0C94511CA1\n:103810000C94511C0C94511C0C94511C0C94511C74\n:103820000C94511C0C94511C0C94511"
},
{
"path": "external/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_ng.hex",
"chars": 4732,
"preview": ":103800000C94341C0C94511C0C94511C0C94511CA1\n:103810000C94511C0C94511C0C94511C0C94511C74\n:103820000C94511C0C94511C0C94511"
},
{
"path": "external/arduino/avr/bootloaders/atmega/ATmegaBOOT_168_pro_8MHz.hex",
"chars": 5456,
"preview": ":103800000C94341C0C94511C0C94511C0C94511CA1\n:103810000C94511C0C94511C0C94511C0C94511C74\n:103820000C94511C0C94511C0C94511"
},
{
"path": "external/arduino/avr/bootloaders/atmega/Makefile",
"chars": 6647,
"preview": "# Makefile for ATmegaBOOT\n# E.Lins, 18.7.2005\n#\n# Instructions\n#\n# To make bootloader .hex file:\n# make diecimila\n# make"
},
{
"path": "external/arduino/avr/bootloaders/atmega8/ATmegaBOOT-prod-firmware-2009-11-07.hex",
"chars": 2804,
"preview": ":101C000012C02BC02AC029C028C027C026C025C0AA\n:101C100024C023C022C021C020C01FC01EC01DC0C0\n:101C20001CC01BC01AC011241FBECFE"
},
{
"path": "external/arduino/avr/bootloaders/atmega8/ATmegaBOOT.c",
"chars": 15478,
"preview": "/**********************************************************/\n/* Serial Bootloader for Atmel mega8 AVR Controller *"
},
{
"path": "external/arduino/avr/bootloaders/atmega8/ATmegaBOOT.hex",
"chars": 2624,
"preview": ":101C000012C02CC02BC02AC029C028C027C026C0A3\n:101C100025C024C023C022C021C020C01FC01EC0B8\n:101C20001DC01CC01BC011241FBECFE"
},
{
"path": "external/arduino/avr/bootloaders/atmega8/ATmegaBOOT.txt",
"chars": 423,
"preview": "Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr/lib --infodir=/usr/share/info --mandir=/usr/"
},
{
"path": "external/arduino/avr/bootloaders/atmega8/Makefile",
"chars": 1894,
"preview": "# Makefile for ATmegaBOOT\n# E.Lins, 2004-10-14\n\n# program name should not be changed...\nPROGRAM = ATmegaBOOT\n\nPRODUCT"
},
{
"path": "external/arduino/avr/bootloaders/bt/ATmegaBOOT_168.c",
"chars": 27075,
"preview": "/**********************************************************/\n/* Serial Bootloader for Atmel megaAVR Controllers *"
},
{
"path": "external/arduino/avr/bootloaders/bt/ATmegaBOOT_168.hex",
"chars": 5240,
"preview": ":103800000C94341C0C944F1C0C944F1C0C944F1CA7\n:103810000C944F1C0C944F1C0C944F1C0C944F1C7C\n:103820000C944F1C0C944F1C0C944F1"
},
{
"path": "external/arduino/avr/bootloaders/bt/ATmegaBOOT_168_atmega328_bt.hex",
"chars": 7020,
"preview": ":107000000C9434380C9451380C9451380C945138F9\n:107010000C9451380C9451380C9451380C945138CC\n:107020000C9451380C9451380C94513"
},
{
"path": "external/arduino/avr/bootloaders/bt/Makefile",
"chars": 2889,
"preview": "# Makefile for ATmegaBOOT\n# E.Lins, 18.7.2005\n#\n# Instructions\n#\n# To make bootloader .hex file:\n# make diecimila\n# make"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-Circuitplay32u4.hex",
"chars": 10964,
"preview": ":1070000055C000006EC000006CC000006AC00000E7\n:1070100068C0000066C0000064C0000062C00000DC\n:1070200060C000005EC00000B2C4000"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-Esplora.hex",
"chars": 77748,
"preview": ":200000000C946E010C9496010C9496010C9496010C9496010C9496010C9496010C94960150\n:200020000C9496010C9496010C94F6040C947D050C9"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-Esplora.txt",
"chars": 89,
"preview": "LUFA: 111009\nmake: 3.81\navrdude: 5.11.1\navr-libc: 1.6.7\nbinutils-avr: 2.19\ngcc-avr 4.3.3\n"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-Industrial101.hex",
"chars": 10900,
"preview": ":107000005FC0000078C0000076C0000074C00000BF\n:1070100072C0000070C000006EC000006CC00000B4\n:107020006AC0000068C00000DAC4000"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-Leonardo.hex",
"chars": 77748,
"preview": ":200000000C946E010C9496010C9496010C9496010C9496010C9496010C9496010C94960150\n:200020000C9496010C9496010C94F6040C947D050C9"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-Leonardo.txt",
"chars": 445,
"preview": "Builds against LUFA version 111009\nmake version 3.81\navrdude version 5.11\n\nAll AVR tools except avrdude were installed b"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-LeonardoEthernet.hex",
"chars": 10892,
"preview": ":107000005FC0000078C0000076C0000074C00000BF\n:1070100072C0000070C000006EC000006CC00000B4\n:107020006AC0000068C00000DAC4000"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-LininoOne.hex",
"chars": 10860,
"preview": ":107000005FC0000078C0000076C0000074C00000BF\n:1070100072C0000070C000006EC000006CC00000B4\n:107020006AC0000068C00000DAC4000"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-Micro.hex",
"chars": 77748,
"preview": ":200000000C946E010C9496010C9496010C9496010C9496010C9496010C9496010C94960150\n:200020000C9496010C9496010C94F8040C947F050C9"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-Micro.txt",
"chars": 445,
"preview": "Builds against LUFA version 111009\nmake version 3.81\navrdude version 5.11\n\nAll AVR tools except avrdude were installed b"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-Yun-noblink.hex",
"chars": 11256,
"preview": ":1070000055C000006EC000006CC000006AC00000E7\n:1070100068C0000066C0000064C0000062C00000DC\n:1070200060C000005EC00000FCC4000"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-Yun.hex",
"chars": 77796,
"preview": ":200000000C9475010C949D010C949D010C949D010C949D010C949D010C949D010C949D0118\n:200020000C949D010C949D010C940C050C9493050C9"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina-YunMini.hex",
"chars": 10900,
"preview": ":107000005FC0000078C0000076C0000074C00000BF\n:1070100072C0000070C000006EC000006CC00000B4\n:107020006AC0000068C00000D1C4000"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina.c",
"chars": 20431,
"preview": "/*\n LUFA Library\n Copyright (C) Dean Camera, 2011.\n\n dean [at] fourwalledcubicle [dot] com\n w"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Caterina.h",
"chars": 3396,
"preview": "/*\n LUFA Library\n Copyright (C) Dean Camera, 2011.\n\n dean [at] fourwalledcubicle [dot] com\n w"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Descriptors.c",
"chars": 9058,
"preview": "/*\n LUFA Library\n Copyright (C) Dean Camera, 2011.\n\n dean [at] fourwalledcubicle [dot] com\n w"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Descriptors.h",
"chars": 5462,
"preview": "/*\n LUFA Library\n Copyright (C) Dean Camera, 2011.\n\n dean [at] fourwalledcubicle [dot] com\n w"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Esplora-prod-firmware-2012-12-10.hex",
"chars": 77748,
"preview": ":200000000C946E010C9496010C9496010C9496010C9496010C9496010C9496010C94960150\n:200020000C9496010C9496010C94F6040C947D050C9"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Esplora-prod-firmware-2012-12-10.txt",
"chars": 89,
"preview": "LUFA: 111009\nmake: 3.81\navrdude: 5.11.1\navr-libc: 1.6.7\nbinutils-avr: 2.19\ngcc-avr 4.3.3\n"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Leonardo-prod-firmware-2012-04-26.hex",
"chars": 77732,
"preview": ":200000000C946E010C9496010C9496010C9496010C9496010C9496010C9496010C94960150\n:200020000C9496010C9496010C9410050C949B050C9"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Leonardo-prod-firmware-2012-04-26.txt",
"chars": 445,
"preview": "Builds against LUFA version 111009\nmake version 3.81\navrdude version 5.11\n\nAll AVR tools except avrdude were installed b"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Leonardo-prod-firmware-2012-12-10.hex",
"chars": 77748,
"preview": ":200000000C946E010C9496010C9496010C9496010C9496010C9496010C9496010C94960150\n:200020000C9496010C9496010C94F6040C947D050C9"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Leonardo-prod-firmware-2012-12-10.txt",
"chars": 445,
"preview": "Builds against LUFA version 111009\nmake version 3.81\navrdude version 5.11\n\nAll AVR tools except avrdude were installed b"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Makefile",
"chars": 21328,
"preview": "# Hey Emacs, this is a -*- makefile -*-\n#----------------------------------------------------------------------------\n# "
},
{
"path": "external/arduino/avr/bootloaders/caterina/Micro-prod-firmware-2012-11-23.hex",
"chars": 77732,
"preview": ":200000000C946E010C9496010C9496010C9496010C9496010C9496010C9496010C94960150\n:200020000C9496010C9496010C94F8040C947F050C9"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Micro-prod-firmware-2012-11-23.txt",
"chars": 445,
"preview": "Builds against LUFA version 111009\nmake version 3.81\navrdude version 5.11\n\nAll AVR tools except avrdude were installed b"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Micro-prod-firmware-2012-12-10.hex",
"chars": 77748,
"preview": ":200000000C946E010C9496010C9496010C9496010C9496010C9496010C9496010C94960150\n:200020000C9496010C9496010C94F8040C947F050C9"
},
{
"path": "external/arduino/avr/bootloaders/caterina/Micro-prod-firmware-2012-12-10.txt",
"chars": 445,
"preview": "Builds against LUFA version 111009\nmake version 3.81\navrdude version 5.11\n\nAll AVR tools except avrdude were installed b"
},
{
"path": "external/arduino/avr/bootloaders/caterina-Arduino_Robot/Caterina-Robot-Control.hex",
"chars": 11268,
"preview": ":1070000055C000006EC000006CC000006AC00000E7\n:1070100068C0000066C0000064C0000062C00000DC\n:1070200060C000005EC00000FCC4000"
},
{
"path": "external/arduino/avr/bootloaders/caterina-Arduino_Robot/Caterina-Robot-Motor.hex",
"chars": 11268,
"preview": ":1070000055C000006EC000006CC000006AC00000E7\n:1070100068C0000066C0000064C0000062C00000DC\n:1070200060C000005EC00000FCC4000"
},
{
"path": "external/arduino/avr/bootloaders/caterina-Arduino_Robot/Caterina-Robot.txt",
"chars": 445,
"preview": "Builds against LUFA version 111009\nmake version 3.81\navrdude version 5.11\n\nAll AVR tools except avrdude were installed b"
},
{
"path": "external/arduino/avr/bootloaders/caterina-Arduino_Robot/Caterina.c",
"chars": 25197,
"preview": "/*\n LUFA Library\n Copyright (C) Dean Camera, 2011.\n\n dean [at] fourwalledcubicle [dot] com\n w"
},
{
"path": "external/arduino/avr/bootloaders/caterina-Arduino_Robot/Caterina.h",
"chars": 3396,
"preview": "/*\n LUFA Library\n Copyright (C) Dean Camera, 2011.\n\n dean [at] fourwalledcubicle [dot] com\n w"
},
{
"path": "external/arduino/avr/bootloaders/caterina-Arduino_Robot/Descriptors.c",
"chars": 9209,
"preview": "/*\n LUFA Library\n Copyright (C) Dean Camera, 2011.\n\n dean [at] fourwalledcubicle [dot] com\n w"
},
{
"path": "external/arduino/avr/bootloaders/caterina-Arduino_Robot/Descriptors.h",
"chars": 5462,
"preview": "/*\n LUFA Library\n Copyright (C) Dean Camera, 2011.\n\n dean [at] fourwalledcubicle [dot] com\n w"
},
{
"path": "external/arduino/avr/bootloaders/caterina-Arduino_Robot/Makefile",
"chars": 21593,
"preview": "# Hey Emacs, this is a -*- makefile -*-\n#----------------------------------------------------------------------------\n# "
},
{
"path": "external/arduino/avr/bootloaders/caterina-Arduino_Robot/README.md",
"chars": 2029,
"preview": "Building the bootloader for the Arduino Robot\n=============================================\n\nThe Arduino Robot has two b"
},
{
"path": "external/arduino/avr/bootloaders/caterina-LilyPadUSB/Caterina-LilyPadUSB.hex",
"chars": 11296,
"preview": ":1070000055C000006EC000006CC000006AC00000E7\n:1070100068C0000066C0000064C0000062C00000DC\n:1070200060C000005EC00000FCC4000"
},
{
"path": "external/arduino/avr/bootloaders/caterina-LilyPadUSB/Caterina.c",
"chars": 25197,
"preview": "/*\n LUFA Library\n Copyright (C) Dean Camera, 2011.\n\n dean [at] fourwalledcubicle [dot] com\n w"
},
{
"path": "external/arduino/avr/bootloaders/caterina-LilyPadUSB/Caterina.h",
"chars": 3123,
"preview": "/*\n LUFA Library\n Copyright (C) Dean Camera, 2011.\n\n dean [at] fourwalledcubicle [dot] com\n w"
},
{
"path": "external/arduino/avr/bootloaders/caterina-LilyPadUSB/Descriptors.c",
"chars": 8937,
"preview": "/*\n LUFA Library\n Copyright (C) Dean Camera, 2011.\n\n dean [at] fourwalledcubicle [dot] com\n w"
},
{
"path": "external/arduino/avr/bootloaders/caterina-LilyPadUSB/Descriptors.h",
"chars": 5462,
"preview": "/*\n LUFA Library\n Copyright (C) Dean Camera, 2011.\n\n dean [at] fourwalledcubicle [dot] com\n w"
},
{
"path": "external/arduino/avr/bootloaders/caterina-LilyPadUSB/Makefile",
"chars": 21337,
"preview": "# Hey Emacs, this is a -*- makefile -*-\n#----------------------------------------------------------------------------\n# "
},
{
"path": "external/arduino/avr/bootloaders/caterina-LilyPadUSB/Readme.txt",
"chars": 564,
"preview": "Building the bootloader for the LilyPadUSB\n1. Download the LUFA-111009 file (http://fourwalledcubicle.com/blog/2011/10/l"
},
{
"path": "external/arduino/avr/bootloaders/gemma/README.md",
"chars": 869,
"preview": "Arduino Gemma Bootloader\n========================\n\nThe Arduino Gemma Bootloader is based on the Adafruit Trinket/Gemma B"
},
{
"path": "external/arduino/avr/bootloaders/gemma/avrdude.conf",
"chars": 463478,
"preview": "# AVRDUDE Configuration File\n#\n# This file contains configuration data used by AVRDUDE which describes\n# the programming"
},
{
"path": "external/arduino/avr/bootloaders/gemma/gemma_v1.hex",
"chars": 7920,
"preview": ":100000005FCA5FCA5FCA5FCA5FCA5FCA5FCA5FCAA8\n:1014C00033C05FC08BC05DC05CC05BC05AC059C038\n:1014D00058C057C056C055C054C053C"
},
{
"path": "external/arduino/avr/bootloaders/gemma/usbconfig.h",
"chars": 16683,
"preview": "/* Name: usbconfig.h\n * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers\n * Author: Christian Sta"
},
{
"path": "external/arduino/avr/bootloaders/gemma/usbconfig.patch",
"chars": 817,
"preview": "203c203\n< #define USB_CFG_VENDOR_ID\t\t0x81, 0x17 /* = 0x16c0 = 5824 = voti.nl */\n---\n> #define USB_CFG_VENDOR_ID\t\t0x41, 0"
},
{
"path": "external/arduino/avr/bootloaders/lilypad/LilyPadBOOT_168.hex",
"chars": 5048,
"preview": ":103800000C94341C0C944F1C0C944F1C0C944F1CA7\n:103810000C944F1C0C944F1C0C944F1C0C944F1C7C\n:103820000C944F1C0C944F1C0C944F1"
},
{
"path": "external/arduino/avr/bootloaders/lilypad/src/ATmegaBOOT.c",
"chars": 26123,
"preview": "/**********************************************************/\n/* Serial Bootloader for Atmel megaAVR Controllers *"
},
{
"path": "external/arduino/avr/bootloaders/lilypad/src/Makefile",
"chars": 2433,
"preview": "# Makefile for ATmegaBOOT\n# E.Lins, 18.7.2005\n\n# Instructions\n#\n# To build the bootloader for the LilyPad:\n# make lily\n\n"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/Makefile",
"chars": 13187,
"preview": "# Makefile for ATmegaBOOT\n# E.Lins, 18.7.2005\n#\n# Instructions\n#\n# To make bootloader .hex file:\n# make diecimila\n# make"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/README.TXT",
"chars": 3438,
"preview": "This directory contains the Optiboot small bootloader for AVR\nmicrocontrollers, somewhat modified specifically for the A"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/boot.h",
"chars": 33947,
"preview": "/* Modified to use out for SPM access\n** Peter Knight, Optiboot project http://optiboot.googlecode.com\n**\n** Todo: Tidy "
},
{
"path": "external/arduino/avr/bootloaders/optiboot/makeall",
"chars": 324,
"preview": "#!/bin/bash\nmake clean\n#\n# The \"big three\" standard bootloaders.\nmake atmega8\nmake atmega168\nmake atmega328\n#\n# addition"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/omake",
"chars": 111,
"preview": "echo ../../../tools/avr/bin/make OS=macosx ENV=arduino $*\n../../../tools/avr/bin/make OS=macosx ENV=arduino $*\n"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/omake.bat",
"chars": 60,
"preview": "..\\..\\..\\tools\\avr\\utils\\bin\\make OS=windows ENV=arduino %*\n"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/optiboot.c",
"chars": 22374,
"preview": "/**********************************************************/\n/* Optiboot bootloader for Arduino *"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/optiboot_atmega168.hex",
"chars": 1432,
"preview": ":103E0000112484B714BE81FFF0D085E08093810037\n:103E100082E08093C00088E18093C10086E08093B7\n:103E2000C20080E18093C4008EE0C9D"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/optiboot_atmega168.lst",
"chars": 19585,
"preview": "\noptiboot_atmega168.elf: file format elf32-avr\n\nSections:\nIdx Name Size VMA LMA File off "
},
{
"path": "external/arduino/avr/bootloaders/optiboot/optiboot_atmega328-Mini.hex",
"chars": 1388,
"preview": ":107E000085E08093810082E08093C00088E18093C8\n:107E1000C10086E08093C20080E18093C40084B7F3\n:107E200014BE81FFD0D089E2C8D0259"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/optiboot_atmega328.hex",
"chars": 1432,
"preview": ":107E0000112484B714BE81FFF0D085E080938100F7\n:107E100082E08093C00088E18093C10086E0809377\n:107E2000C20080E18093C4008EE0C9D"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/optiboot_atmega328.lst",
"chars": 19588,
"preview": "\noptiboot_atmega328.elf: file format elf32-avr\n\nSections:\nIdx Name Size VMA LMA File off "
},
{
"path": "external/arduino/avr/bootloaders/optiboot/optiboot_atmega8.hex",
"chars": 1368,
"preview": ":101E000011248FE594E09EBF8DBF84B714BE81FF7F\n:101E1000E2D085E08EBD82E08BB988E18AB986E8A0\n:101E200080BD80E189B98EE0C2D0BD9"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/optiboot_atmega8.lst",
"chars": 19802,
"preview": "\noptiboot_atmega8.elf: file format elf32-avr\n\nSections:\nIdx Name Size VMA LMA File off Al"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/pin_defs.h",
"chars": 1962,
"preview": "#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) || defined(__AVR_ATmega88) |"
},
{
"path": "external/arduino/avr/bootloaders/optiboot/stk500.h",
"chars": 1636,
"preview": "/* STK500 constants list, from AVRDUDE */\n#define STK_OK 0x10\n#define STK_FAILED 0x11 // Not used"
},
{
"path": "external/arduino/avr/bootloaders/stk500v2/License.txt",
"chars": 15144,
"preview": "\t\t GNU GENERAL PUBLIC LICENSE\n\t\t Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc."
}
]
// ... and 867 more files (download for full content)
About this extraction
This page contains the full source code of the NerdLang/nerd GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1067 files (13.0 MB), approximately 3.5M tokens, and a symbol index with 5837 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.