<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.1" xml:lang="en-US">
  <compounddef id="tokenizer_8h" kind="file" language="C++">
    <compoundname>tokenizer.h</compoundname>
    <includes refid="kernel_8h" local="no">kernel.h</includes>
    <includedby refid="kernel_8h" local="yes">kernel.h</includedby>
    <incdepgraph>
      <node id="26">
        <label>ata.h</label>
        <link refid="ata_8h"/>
        <childnode refid="3" relation="include">
        </childnode>
      </node>
      <node id="4">
        <label>stdbool.h</label>
      </node>
      <node id="29">
        <label>ramdisk.h</label>
        <link refid="ramdisk_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="41">
        <label>acpi.h</label>
        <link refid="acpi_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="45">
        <label>arp.h</label>
        <link refid="arp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="52">
        <label>dns.h</label>
        <link refid="dns_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="32">
        <label>fat32.h</label>
        <link refid="fat32_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="50">
        <label>udp.h</label>
        <link refid="udp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="30">
        <label>iso9660.h</label>
        <link refid="iso9660_8h"/>
      </node>
      <node id="9">
        <label>spinlock.h</label>
        <link refid="spinlock_8h"/>
      </node>
      <node id="48">
        <label>tcp.h</label>
        <link refid="tcp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="23">
        <label>devicename.h</label>
        <link refid="devicename_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="8">
        <label>idt.h</label>
        <link refid="idt_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="3">
        <label>stdint.h</label>
      </node>
      <node id="53">
        <label>drawing.h</label>
        <link refid="drawing_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="43">
        <label>rtl8139.h</label>
        <link refid="rtl8139_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="18">
        <label>ioapic.h</label>
        <link refid="ioapic_8h"/>
      </node>
      <node id="5">
        <label>stddef.h</label>
      </node>
      <node id="1">
        <label>tokenizer.h</label>
        <link refid="tokenizer_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="6">
        <label>limits.h</label>
      </node>
      <node id="35">
        <label>keyboard.h</label>
        <link refid="keyboard_8h"/>
      </node>
      <node id="15">
        <label>io.h</label>
        <link refid="io_8h"/>
      </node>
      <node id="10">
        <label>printf.h</label>
        <link refid="printf_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="44">
        <label>e1000.h</label>
        <link refid="e1000_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="38">
        <label>lapic_timer.h</label>
        <link refid="lapic__timer_8h"/>
      </node>
      <node id="7">
        <label>limine.h</label>
      </node>
      <node id="36">
        <label>input.h</label>
        <link refid="input_8h"/>
      </node>
      <node id="54">
        <label>fpu.h</label>
        <link refid="fpu_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="13">
        <label>video.h</label>
        <link refid="video_8h"/>
      </node>
      <node id="49">
        <label>icmp.h</label>
        <link refid="icmp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="46">
        <label>ip.h</label>
        <link refid="ip_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="27">
        <label>filesystem.h</label>
        <link refid="filesystem_8h"/>
      </node>
      <node id="22">
        <label>maths.h</label>
        <link refid="maths_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="31">
        <label>devfs.h</label>
        <link refid="devfs_8h"/>
      </node>
      <node id="34">
        <label>errorhandler.h</label>
        <link refid="errorhandler_8h"/>
      </node>
      <node id="39">
        <label>ubasic.h</label>
        <link refid="ubasic_8h"/>
      </node>
      <node id="47">
        <label>ethernet.h</label>
        <link refid="ethernet_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
        <childnode refid="3" relation="include">
        </childnode>
      </node>
      <node id="2">
        <label>kernel.h</label>
        <link refid="kernel_8h"/>
        <childnode refid="3" relation="include">
        </childnode>
        <childnode refid="4" relation="include">
        </childnode>
        <childnode refid="5" relation="include">
        </childnode>
        <childnode refid="6" relation="include">
        </childnode>
        <childnode refid="7" relation="include">
        </childnode>
        <childnode refid="8" relation="include">
        </childnode>
        <childnode refid="9" relation="include">
        </childnode>
        <childnode refid="10" relation="include">
        </childnode>
        <childnode refid="11" relation="include">
        </childnode>
        <childnode refid="12" relation="include">
        </childnode>
        <childnode refid="13" relation="include">
        </childnode>
        <childnode refid="14" relation="include">
        </childnode>
        <childnode refid="15" relation="include">
        </childnode>
        <childnode refid="16" relation="include">
        </childnode>
        <childnode refid="17" relation="include">
        </childnode>
        <childnode refid="18" relation="include">
        </childnode>
        <childnode refid="19" relation="include">
        </childnode>
        <childnode refid="20" relation="include">
        </childnode>
        <childnode refid="21" relation="include">
        </childnode>
        <childnode refid="22" relation="include">
        </childnode>
        <childnode refid="23" relation="include">
        </childnode>
        <childnode refid="24" relation="include">
        </childnode>
        <childnode refid="25" relation="include">
        </childnode>
        <childnode refid="26" relation="include">
        </childnode>
        <childnode refid="27" relation="include">
        </childnode>
        <childnode refid="28" relation="include">
        </childnode>
        <childnode refid="29" relation="include">
        </childnode>
        <childnode refid="30" relation="include">
        </childnode>
        <childnode refid="31" relation="include">
        </childnode>
        <childnode refid="32" relation="include">
        </childnode>
        <childnode refid="33" relation="include">
        </childnode>
        <childnode refid="34" relation="include">
        </childnode>
        <childnode refid="35" relation="include">
        </childnode>
        <childnode refid="36" relation="include">
        </childnode>
        <childnode refid="37" relation="include">
        </childnode>
        <childnode refid="38" relation="include">
        </childnode>
        <childnode refid="39" relation="include">
        </childnode>
        <childnode refid="1" relation="include">
        </childnode>
        <childnode refid="40" relation="include">
        </childnode>
        <childnode refid="41" relation="include">
        </childnode>
        <childnode refid="42" relation="include">
        </childnode>
        <childnode refid="43" relation="include">
        </childnode>
        <childnode refid="44" relation="include">
        </childnode>
        <childnode refid="45" relation="include">
        </childnode>
        <childnode refid="46" relation="include">
        </childnode>
        <childnode refid="47" relation="include">
        </childnode>
        <childnode refid="48" relation="include">
        </childnode>
        <childnode refid="49" relation="include">
        </childnode>
        <childnode refid="50" relation="include">
        </childnode>
        <childnode refid="51" relation="include">
        </childnode>
        <childnode refid="52" relation="include">
        </childnode>
        <childnode refid="53" relation="include">
        </childnode>
        <childnode refid="54" relation="include">
        </childnode>
      </node>
      <node id="16">
        <label>memcpy.h</label>
        <link refid="memcpy_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="28">
        <label>partition.h</label>
        <link refid="partition_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="12">
        <label>random.h</label>
        <link refid="random_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="40">
        <label>taskswitch.h</label>
        <link refid="taskswitch_8h"/>
      </node>
      <node id="11">
        <label>hashmap.h</label>
        <link refid="hashmap_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
        <childnode refid="4" relation="include">
        </childnode>
        <childnode refid="5" relation="include">
        </childnode>
        <childnode refid="3" relation="include">
        </childnode>
      </node>
      <node id="42">
        <label>net.h</label>
        <link refid="net_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="19">
        <label>timer.h</label>
        <link refid="timer_8h"/>
        <childnode refid="3" relation="include">
        </childnode>
      </node>
      <node id="33">
        <label>debugger.h</label>
        <link refid="debugger_8h"/>
      </node>
      <node id="24">
        <label>interrupt.h</label>
        <link refid="interrupt_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="20">
        <label>kmalloc.h</label>
        <link refid="kmalloc_8h"/>
        <childnode refid="5" relation="include">
        </childnode>
      </node>
      <node id="21">
        <label>pci.h</label>
        <link refid="pci_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="17">
        <label>apic.h</label>
        <link refid="apic_8h"/>
      </node>
      <node id="14">
        <label>string.h</label>
        <link refid="string_8h"/>
      </node>
      <node id="25">
        <label>ahci.h</label>
        <link refid="ahci_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="51">
        <label>dhcp.h</label>
        <link refid="dhcp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="37">
        <label>clock.h</label>
        <link refid="clock_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
        <childnode refid="3" relation="include">
        </childnode>
      </node>
    </incdepgraph>
    <invincdepgraph>
      <node id="27">
        <label>ramdisk.h</label>
        <link refid="ramdisk_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="3">
        <label>acpi.h</label>
        <link refid="acpi_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="5">
        <label>arp.h</label>
        <link refid="arp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="9">
        <label>dns.h</label>
        <link refid="dns_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="13">
        <label>fat32.h</label>
        <link refid="fat32_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="31">
        <label>udp.h</label>
        <link refid="udp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="30">
        <label>tcp.h</label>
        <link refid="tcp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="7">
        <label>devicename.h</label>
        <link refid="devicename_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="17">
        <label>idt.h</label>
        <link refid="idt_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="10">
        <label>drawing.h</label>
        <link refid="drawing_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="29">
        <label>rtl8139.h</label>
        <link refid="rtl8139_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="1">
        <label>tokenizer.h</label>
        <link refid="tokenizer_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="26">
        <label>printf.h</label>
        <link refid="printf_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="11">
        <label>e1000.h</label>
        <link refid="e1000_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="18">
        <label>initialisation-functions.h</label>
        <link refid="initialisation-functions_8h"/>
      </node>
      <node id="14">
        <label>fpu.h</label>
        <link refid="fpu_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="16">
        <label>icmp.h</label>
        <link refid="icmp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="20">
        <label>ip.h</label>
        <link refid="ip_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="21">
        <label>maths.h</label>
        <link refid="maths_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="12">
        <label>ethernet.h</label>
        <link refid="ethernet_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="2">
        <label>kernel.h</label>
        <link refid="kernel_8h"/>
        <childnode refid="3" relation="include">
        </childnode>
        <childnode refid="4" relation="include">
        </childnode>
        <childnode refid="5" relation="include">
        </childnode>
        <childnode refid="6" relation="include">
        </childnode>
        <childnode refid="7" relation="include">
        </childnode>
        <childnode refid="8" relation="include">
        </childnode>
        <childnode refid="9" relation="include">
        </childnode>
        <childnode refid="10" relation="include">
        </childnode>
        <childnode refid="11" relation="include">
        </childnode>
        <childnode refid="12" relation="include">
        </childnode>
        <childnode refid="13" relation="include">
        </childnode>
        <childnode refid="14" relation="include">
        </childnode>
        <childnode refid="15" relation="include">
        </childnode>
        <childnode refid="16" relation="include">
        </childnode>
        <childnode refid="17" relation="include">
        </childnode>
        <childnode refid="18" relation="include">
        </childnode>
        <childnode refid="19" relation="include">
        </childnode>
        <childnode refid="20" relation="include">
        </childnode>
        <childnode refid="21" relation="include">
        </childnode>
        <childnode refid="22" relation="include">
        </childnode>
        <childnode refid="23" relation="include">
        </childnode>
        <childnode refid="24" relation="include">
        </childnode>
        <childnode refid="25" relation="include">
        </childnode>
        <childnode refid="26" relation="include">
        </childnode>
        <childnode refid="27" relation="include">
        </childnode>
        <childnode refid="28" relation="include">
        </childnode>
        <childnode refid="29" relation="include">
        </childnode>
        <childnode refid="30" relation="include">
        </childnode>
        <childnode refid="1" relation="include">
        </childnode>
        <childnode refid="31" relation="include">
        </childnode>
      </node>
      <node id="22">
        <label>memcpy.h</label>
        <link refid="memcpy_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="24">
        <label>partition.h</label>
        <link refid="partition_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="28">
        <label>random.h</label>
        <link refid="random_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="15">
        <label>hashmap.h</label>
        <link refid="hashmap_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="23">
        <label>net.h</label>
        <link refid="net_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="19">
        <label>interrupt.h</label>
        <link refid="interrupt_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="25">
        <label>pci.h</label>
        <link refid="pci_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="4">
        <label>ahci.h</label>
        <link refid="ahci_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="8">
        <label>dhcp.h</label>
        <link refid="dhcp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="6">
        <label>clock.h</label>
        <link refid="clock_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
    </invincdepgraph>
      <sectiondef kind="define">
      <memberdef kind="define" id="tokenizer_8h_1ad004bd52426bd91bc9d41b6efb6ea35d" prot="public" static="no">
        <name>MAX_VARNAME</name>
        <initializer>50</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="23" column="9" bodyfile="include/tokenizer.h" bodystart="23" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="tokenizer_8h_1aed8760364c7992625d06c93d12b2496d" prot="public" static="no">
        <name>GENERATE_ENUM</name>
        <param><defname>ENUM</defname></param>
        <initializer>ENUM,</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>These macros generate both an enum and an array of strings, these are used as part of the tokenizer to parse the names of the keywords out of the BASIC program without having to remember to match up a string and its token enum value in two places. It is also used for error reporting. </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="32" column="9" bodyfile="include/tokenizer.h" bodystart="32" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="tokenizer_8h_1adf58d994c35f18ec84b628d8321f52e5" prot="public" static="no">
        <name>GENERATE_STRING</name>
        <param><defname>STRING</defname></param>
        <initializer>#<ref refid="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaee847e634a4297b274316de8a8ca9921" kindref="member">STRING</ref>,</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="33" column="9" bodyfile="include/tokenizer.h" bodystart="33" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="tokenizer_8h_1a5550a757a3d33ed38ce7298c1d190ba7" prot="public" static="no">
        <name>GENERATE_ENUM_LIST</name>
        <param><defname>MACRO</defname></param>
        <param><defname>NAME</defname></param>
        <initializer>enum NAME { MACRO(<ref refid="tokenizer_8h_1aed8760364c7992625d06c93d12b2496d" kindref="member">GENERATE_ENUM</ref>) };</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="34" column="9" bodyfile="include/tokenizer.h" bodystart="34" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="tokenizer_8h_1a9ed1b1ec376180d8103a22b86dde3ad8" prot="public" static="no">
        <name>GENERATE_ENUM_STRING_NAMES</name>
        <param><defname>MACRO</defname></param>
        <param><defname>NAME</defname></param>
        <initializer>const char* NAME [] = { MACRO(<ref refid="tokenizer_8h_1adf58d994c35f18ec84b628d8321f52e5" kindref="member">GENERATE_STRING</ref>) };</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="35" column="9" bodyfile="include/tokenizer.h" bodystart="35" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="tokenizer_8h_1ae61303e288a41f0e25ff8cd0c6296957" prot="public" static="no">
        <name>TOKEN</name>
        <param><defname>T</defname></param>
        <briefdescription>
<para>All tokens recognised by the interpreter. Note that built in function names are NOT tokens, they are parsed like user functions, just with a hard coded handler instead of redirecting into the user program. </para>
        </briefdescription>
        <detaileddescription>
<para>The #define below builds an enum, and can also build an array of strings of the names in the enum, which is built and used within ubasic.c for tokenization. </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="45" column="9" bodyfile="include/tokenizer.h" bodystart="45" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="enum">
      <memberdef kind="enum" id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfe" prot="public" static="no" strong="no">
        <type></type>
        <name>token_t</name>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea2fd6f336d08340583bd620a7f5694c90" prot="public">
          <name>ERROR</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeac1134699adacb9ef38af73c816283ec8" prot="public">
          <name>ENDOFINPUT</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea12a90dfe20486bbe3e075afcd19ef2d0" prot="public">
          <name>NUMBER</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeab41295c7909ca312a97caf0738fb98bb" prot="public">
          <name>HEXNUMBER</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaee847e634a4297b274316de8a8ca9921" prot="public">
          <name>STRING</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea39031ce5df6f91d3778590d6d644b9ea" prot="public">
          <name>VARIABLE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeafb72619a5a922e816967c4aa49301754" prot="public">
          <name>LET</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeab107229d44d042caa8ab8df4c8acaa1f" prot="public">
          <name>PRINT</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea252802eda493fb6b4a279c4452acb547" prot="public">
          <name>IF</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeabb40477a291c07277e13d096645f4305" prot="public">
          <name>THEN</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea90d649d830ea440c8b8a56c7ef23c426" prot="public">
          <name>ELSE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea84abcfd92dfa0c7274f800080bbbd035" prot="public">
          <name>CHAIN</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaa809654855caa62449850d9122fd77a8" prot="public">
          <name>FOR</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeac0ba526afb7f54207517b48a892961c2" prot="public">
          <name>STEP</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea7a745bf8e4299d36823f18d0c317cee8" prot="public">
          <name>TO</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeab13b96bf99a409e019f70dc1602532fd" prot="public">
          <name>NEXT</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea63cd5d9b665699b0b17c898a414c63d5" prot="public">
          <name>CURSOR</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeadf1256e4198172eedfbf12c770d11589" prot="public">
          <name>GOTO</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea8612419d5828ef882ea333f8684fcb94" prot="public">
          <name>GOSUB</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea520e09ffec033636dba711f3441cc600" prot="public">
          <name>RETURN</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeabd0ebc08c262bab82a1882256d2d66e8" prot="public">
          <name>CALL</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeae310c909d76b003d016bef8bdf16936a" prot="public">
          <name>INPUT</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeae9f7feee75ca2c376b044b67bc693d9f" prot="public">
          <name>COLOUR</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea7a5ecb5193db2d5f258ae1abd33714b9" prot="public">
          <name>COLOR</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaa44b734476c2f3d073ee7aca08660a0e" prot="public">
          <name>BACKGROUND</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea60ad4e9e08d2f606cd6a3f233c7c3777" prot="public">
          <name>EVAL</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeadaafc8212c6fd7e0adeaa5e0f3fdd178" prot="public">
          <name>OPENIN</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeacb9be765f361bb7efb9073730aac92c6" prot="public">
          <name>READ</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea685f73194ad125cbc784c3210cdb3449" prot="public">
          <name>CLOSE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaea6ac6f7e89234d17d6cd8d3bc10dd7b" prot="public">
          <name>EOF</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea4ec32ebb3d661f27da6aff17d460ac94" prot="public">
          <name>DEF</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea616db68dab196835059ff976d67fac33" prot="public">
          <name>PROC</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeac61a0be39db3e2f70423b02985bd4b63" prot="public">
          <name>RETPROC</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea2b3998cd87e8262d24320d944567c991" prot="public">
          <name>FN</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeadc6f24fd6915a3f2786a1b7045406924" prot="public">
          <name>END</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea6fa560d597fa4329bfbfecaa750f9d51" prot="public">
          <name>REM</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaf81277bcd86412fe04bb68718ea09392" prot="public">
          <name>COMMA</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea55eebe3c7e08b49cd5969442f4f8c4ce" prot="public">
          <name>SEMICOLON</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea87fe59ef12c3d13dc2a4d14c9b16c1f9" prot="public">
          <name>PLUS</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaf613d73b4e7b570ffd967df4a13c4225" prot="public">
          <name>MINUS</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea865555c9f2e0458a7078486aa1b3254f" prot="public">
          <name>AND</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea96727447c0ad447987df1c6415aef074" prot="public">
          <name>OR</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea7a48eb0b5d5a758daa1bfac07896eccb" prot="public">
          <name>ASTERISK</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaaabdfe7000ca535236502bb0c87ad944" prot="public">
          <name>SLASH</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea140fcc89db148e5975f1486e794675ba" prot="public">
          <name>MOD</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeafe809946a48c76d7ccda8e5bd1e389b7" prot="public">
          <name>OPENBRACKET</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea48b044f523c3b1a98190b9cd3dfeff10" prot="public">
          <name>CLOSEBRACKET</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea8ce9b27601f653ddc597894a1018c55d" prot="public">
          <name>LESSTHAN</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea484f1aeccc501366d064c353cf4b3c05" prot="public">
          <name>GREATERTHAN</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea949310f9cb536c15919e133f7e7316f3" prot="public">
          <name>EQUALS</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea59d02b47a666732cc6577f158272b099" prot="public">
          <name>NEWLINE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea95e91c94e7307b0b02d6278061a3aaa8" prot="public">
          <name>AMPERSAND</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfead66592048e633b05bcb00ea408b39a47" prot="public">
          <name>TILDE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeafde1bb5ef04b28059e61df449501f1c0" prot="public">
          <name>GLOBAL</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea6a4e1ff15bc0daed40ab38b3ebdc923f" prot="public">
          <name>SOCKREAD</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaaf9d42232a00c13fdacd612e4dfcb812" prot="public">
          <name>SOCKWRITE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea20391dd2915a0e64343d24c2f2e40b95" prot="public">
          <name>CONNECT</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea0f06a4daf1c339047d49e224733000ec" prot="public">
          <name>SOCKCLOSE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaa5e0d06ffc1b0ee32eda539e6528a3e6" prot="public">
          <name>CLS</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaeada68b9f24186e84531a9ea174a6d54" prot="public">
          <name>GCOL</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeab023460c84f774a219d46ccf4665994c" prot="public">
          <name>LINE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea2fd33892864d1c342d3bead2f2d9ad56" prot="public">
          <name>TRIANGLE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeae552ab0a96c0384a6e918e726b7f6102" prot="public">
          <name>RECTANGLE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaa79c827759ea48f0735386c4b1188911" prot="public">
          <name>CIRCLE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea15108ccafa3232b9067f889b6156f565" prot="public">
          <name>POINT</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea4129fbc9099a38a45236ef001ac88f7b" prot="public">
          <name>OPENOUT</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea5d40d07a11694bcaa920c76927d4518c" prot="public">
          <name>OPENUP</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea61aa7ff70b76bff0fda378cf61d6afbc" prot="public">
          <name>WRITE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaa38c102cd5f16bce8688265f3fcd0898" prot="public">
          <name>MKDIR</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaca55b35eb23ace758d275b9201760016" prot="public">
          <name>RMDIR</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea9d61e82a9a12752f10aece1b22183913" prot="public">
          <name>DELETE</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea972f3df9d279a3d3acc88bcbe4452d51" prot="public">
          <name>REPEAT</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeaa4f38f5001aff1b45ecf511715d587d4" prot="public">
          <name>UNTIL</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea6c8e5f290be4be86fd5e7048654b4a50" prot="public">
          <name>DIM</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea1afe969dfc59ae506f1b734e08bf6e96" prot="public">
          <name>REDIM</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfead263caec619c4d99e4684ba0fabd9493" prot="public">
          <name>PUSH</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea061dcf4785583d8653942f2d252174fa" prot="public">
          <name>POP</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfead0ef00e708ed18ba004480dceb79ecfb" prot="public">
          <name>LOCAL</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfea2b6ce73e76e23d54b62e59fba07b6616" prot="public">
          <name>CHDIR</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <enumvalue id="tokenizer_8h_1a4ebc26c81c029670805b51af165f9cfeabe8c81f9db8320b327f4fe513a1a873b" prot="public">
          <name>MOUNT</name>
          <briefdescription>
          </briefdescription>
          <detaileddescription>
          </detaileddescription>
        </enumvalue>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="130" column="1" bodyfile="include/tokenizer.h" bodystart="130" bodyend="130"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="tokenizer_8h_1a8b20eecbf3cb305174870ee0732f3e38" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>*brief Initialise tokenizer **param program program text *param ctx context *void</type>
        <definition>* brief Initialise tokenizer* * param program program text* param ctx context* void tokenizer_init</definition>
        <argsstring>(const char *program, struct ubasic_ctx *ctx)</argsstring>
        <name>tokenizer_init</name>
        <param>
          <type>const char *</type>
          <declname>program</declname>
        </param>
        <param>
          <type>struct <ref refid="structubasic__ctx" kindref="compound">ubasic_ctx</ref> *</type>
          <declname>ctx</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="136" column="6" declfile="include/tokenizer.h" declline="136" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="tokenizer_8h_1ab95d257fd507afd722006b98f701aac4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void tokenizer_next</definition>
        <argsstring>(struct ubasic_ctx *ctx)</argsstring>
        <name>tokenizer_next</name>
        <param>
          <type>struct <ref refid="structubasic__ctx" kindref="compound">ubasic_ctx</ref> *</type>
          <declname>ctx</declname>
        </param>
        <briefdescription>
<para>advance to next token </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ctx</parametername>
</parameternamelist>
<parameterdescription>
<para>context </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="143" column="6" declfile="include/tokenizer.h" declline="143" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="tokenizer_8h_1a79ca032550e6866dee021d3da651dbad" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int tokenizer_token</definition>
        <argsstring>(struct ubasic_ctx *ctx)</argsstring>
        <name>tokenizer_token</name>
        <param>
          <type>struct <ref refid="structubasic__ctx" kindref="compound">ubasic_ctx</ref> *</type>
          <declname>ctx</declname>
        </param>
        <briefdescription>
<para>peek to next token </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ctx</parametername>
</parameternamelist>
<parameterdescription>
<para>context </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int token </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="151" column="5" declfile="include/tokenizer.h" declline="151" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="tokenizer_8h_1a269601b38635279d07cffaa53be980d7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int64_t</type>
        <definition>int64_t tokenizer_num</definition>
        <argsstring>(struct ubasic_ctx *ctx, int token)</argsstring>
        <name>tokenizer_num</name>
        <param>
          <type>struct <ref refid="structubasic__ctx" kindref="compound">ubasic_ctx</ref> *</type>
          <declname>ctx</declname>
        </param>
        <param>
          <type>int</type>
          <declname>token</declname>
        </param>
        <briefdescription>
<para>Get integer number as next token (do not advance the pointer) </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ctx</parametername>
</parameternamelist>
<parameterdescription>
<para>context </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>token</parametername>
</parameternamelist>
<parameterdescription>
<para>token (NUMBER or HEXNUMBER) </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int64_t number read from program </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="161" column="9" declfile="include/tokenizer.h" declline="161" declcolumn="9"/>
      </memberdef>
      <memberdef kind="function" id="tokenizer_8h_1a30b4e02b1252eb4688912a965c8a458f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void tokenizer_fnum</definition>
        <argsstring>(struct ubasic_ctx *ctx, int token, double *f)</argsstring>
        <name>tokenizer_fnum</name>
        <param>
          <type>struct <ref refid="structubasic__ctx" kindref="compound">ubasic_ctx</ref> *</type>
          <declname>ctx</declname>
        </param>
        <param>
          <type>int</type>
          <declname>token</declname>
        </param>
        <param>
          <type>double *</type>
          <declname>f</declname>
        </param>
        <briefdescription>
<para>Get real number as next token (do not advance the pointer) </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ctx</parametername>
</parameternamelist>
<parameterdescription>
<para>context </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>token</parametername>
</parameternamelist>
<parameterdescription>
<para>token (NUMBER) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>f</parametername>
</parameternamelist>
<parameterdescription>
<para>number read from program </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="171" column="6" declfile="include/tokenizer.h" declline="171" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="tokenizer_8h_1af8052b7a25debd60b06bd873b4a7f430" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>const char *</type>
        <definition>const char* tokenizer_variable_name</definition>
        <argsstring>(struct ubasic_ctx *ctx)</argsstring>
        <name>tokenizer_variable_name</name>
        <param>
          <type>struct <ref refid="structubasic__ctx" kindref="compound">ubasic_ctx</ref> *</type>
          <declname>ctx</declname>
        </param>
        <briefdescription>
<para>Get a variable name as next token (do not advance the pointer) </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ctx</parametername>
</parameternamelist>
<parameterdescription>
<para>context </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>const char* variable name </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="180" column="12" declfile="include/tokenizer.h" declline="180" declcolumn="12"/>
      </memberdef>
      <memberdef kind="function" id="tokenizer_8h_1aea837c7f0165fca0472bc82305e2779c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>bool</type>
        <definition>bool tokenizer_string</definition>
        <argsstring>(char *dest, int len, struct ubasic_ctx *ctx)</argsstring>
        <name>tokenizer_string</name>
        <param>
          <type>char *</type>
          <declname>dest</declname>
        </param>
        <param>
          <type>int</type>
          <declname>len</declname>
        </param>
        <param>
          <type>struct <ref refid="structubasic__ctx" kindref="compound">ubasic_ctx</ref> *</type>
          <declname>ctx</declname>
        </param>
        <briefdescription>
<para>Get a string constant as the next token (do not advance the pointer) </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dest</parametername>
</parameternamelist>
<parameterdescription>
<para>destination string buffer </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>len</parametername>
</parameternamelist>
<parameterdescription>
<para>length of destination buffer </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ctx</parametername>
</parameternamelist>
<parameterdescription>
<para>context </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>true if succesfully found a string constant </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="191" column="6" declfile="include/tokenizer.h" declline="191" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="tokenizer_8h_1a4e09edb731e8ff60d65cc1296b17f5c6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int tokenizer_finished</definition>
        <argsstring>(struct ubasic_ctx *ctx)</argsstring>
        <name>tokenizer_finished</name>
        <param>
          <type>struct <ref refid="structubasic__ctx" kindref="compound">ubasic_ctx</ref> *</type>
          <declname>ctx</declname>
        </param>
        <briefdescription>
<para>Returns true if the program is finished (does not advance the pointer) </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ctx</parametername>
</parameternamelist>
<parameterdescription>
<para>context </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int true if the program has finished </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="200" column="5" declfile="include/tokenizer.h" declline="200" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="tokenizer_8h_1aaddfae9451e992d402cbaab9550329a4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void tokenizer_error_print</definition>
        <argsstring>(struct ubasic_ctx *ctx, const char *error)</argsstring>
        <name>tokenizer_error_print</name>
        <param>
          <type>struct <ref refid="structubasic__ctx" kindref="compound">ubasic_ctx</ref> *</type>
          <declname>ctx</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>error</declname>
        </param>
        <briefdescription>
<para>display an error to the terminal and end the program </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="note"><para>If the program is running an EVAL, the error is printed but the program is not ended, instead ERROR$ and ERROR are set.</para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ctx</parametername>
</parameternamelist>
<parameterdescription>
<para>context </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>error</parametername>
</parameternamelist>
<parameterdescription>
<para>error message </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="210" column="6" declfile="include/tokenizer.h" declline="210" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="tokenizer_8h_1abadcb4f19d80e60be45f20bbad01e779" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int get_next_token</definition>
        <argsstring>(struct ubasic_ctx *ctx)</argsstring>
        <name>get_next_token</name>
        <param>
          <type>struct <ref refid="structubasic__ctx" kindref="compound">ubasic_ctx</ref> *</type>
          <declname>ctx</declname>
        </param>
        <briefdescription>
<para>Get the next token (advances the pointer past the end of the token) </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ctx</parametername>
</parameternamelist>
<parameterdescription>
<para>context </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>int token found </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="219" column="5" declfile="include/tokenizer.h" declline="219" declcolumn="5"/>
      </memberdef>
      <memberdef kind="function" id="tokenizer_8h_1adce229f0f08dc3e9a6b0035b30e6ad3c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>bool</type>
        <definition>bool tokenizer_decimal_number</definition>
        <argsstring>(struct ubasic_ctx *ctx)</argsstring>
        <name>tokenizer_decimal_number</name>
        <param>
          <type>struct <ref refid="structubasic__ctx" kindref="compound">ubasic_ctx</ref> *</type>
          <declname>ctx</declname>
        </param>
        <briefdescription>
<para>Check if a decimal number is at the current program pointer. (does not advance the pointer) </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ctx</parametername>
</parameternamelist>
<parameterdescription>
<para>context </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>true if pointer points at a decimal number </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/tokenizer.h" line="229" column="6" declfile="include/tokenizer.h" declline="229" declcolumn="6"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
<para>BBC BASIC interpreter, Retro Rocket OS Project (C) Craig Edwards 2012. loosely based on uBASIC (Copyright (c) 2006, Adam Dunkels, All rights reserved).</para>
<para>THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS `<lsquo/>AS IS<rsquo/>&apos; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. </para>
    </detaileddescription>
    <location file="include/tokenizer.h"/>
  </compounddef>
</doxygen>
