+
    Ngj}
                       R t ^ RIHt ^ RIHtHt  ! R R]4      t0 RkRkRkRkR	kR
kRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkRkR kR!kR"kR#kR$kR%kR&kR'kR(kR)kt0 R.mt. R/Ot	]
! R*4      t ! R+ R,4      tR-# )0a  Token types for the MicroBasic lexer.

Keyword and operator lists are taken directly from the Roboteq MicroBasic
Scripting Language User & Reference Manual (V2.0, July 8, 2019), "Keywords"
and "Operators" sections. That grammar is publicly documented and is a
reliable source of truth for tokenizing/parsing .mb source. (The bytecode
this eventually compiles to is NOT publicly documented -- see
docs/reverse_engineering.md.)
)annotations)Enumautoc                      ] tR t^t]! 4       t]! 4       t]! 4       t]! 4       t]! 4       t	]! 4       t
]! 4       t]! 4       t]! 4       t]! 4       t]! 4       t]! 4       t]! 4       t]! 4       tRtR# )	TokenType N)__name__
__module____qualname____firstlineno__r   INTEGERSTRINGIDENTLABELKEYWORDOPLPARENRPARENLBRACKETRBRACKETCOMMACOLONNEWLINEEOF__static_attributes__r       l\\thalassa.shore.mbari.org\ProjectLibrary\ESP\FIDO\PumpController\compiler\src\microbasic_compiler\tokens.pyr   r      sh    fGVFFEFE fG 
BVFVFvHvHFEFEfG
&Cr   r   z#defineandandwhileasbooleancontinuedimdoelseelseifendevaluateexitexplicitfalseforgosubgotoifintegerloopmodnextnotoptionorprintreturnstep	terminatethentotobooltrueuntilwhilexorz+-*/=<>c                  >    ] tR t^ItR	tR R ltR R ltR R ltRtR# )
Tokenc               (    V ^8  d   QhRRRRRRRR/# )   type_r   valuestrlineintcolr   )formats   "r   __annotate__Token.__annotate__L   s(      i  3 S r   c                	6    Wn         W n        W0n        W@n        R # NtyperF   rH   rJ   )selfrE   rF   rH   rJ   s   &&&&&r   __init__Token.__init__L   s    	
	r   c                   V ^8  d   QhRR/# )rD   r7   rG   r   )rK   s   "r   rL   rM   R   s     \ \# \r   c           	     	    R V P                   P                   RV P                  : RV P                   RV P                   R2	# )zToken(z, z, line=z, col=))rQ   namerF   rH   rJ   )rR   s   &r   __repr__Token.__repr__R   s<    		'r$**wtyykPTPXPXzYZ[[r   c                   V ^8  d   QhRR/# )rD   r7   boolr   )rK   s   "r   rL   rM   U   s     D Dt Dr   c                	    \        V\        4      '       g   \        # V P                  V P                  3VP                  VP                  38H  # rO   )
isinstancerB   NotImplementedrQ   rF   )rR   others   &&r   __eq__Token.__eq__U   s:    %''!!		4::&5::u{{*CCCr   )rJ   rH   rQ   rF   NrP   )	r   r	   r
   r   	__slots__rS   rY   ra   r   r   r   r   rB   rB   I   s    0I\D Dr   rB   N>   abscossinatansqrtwaitgetvalue	getconfig	setconfig
setcommandgettimercountgettimerstatesettimercountsettimerstate)z<<=z>>=z++z--z<<z>>z<=z>=z<>z+=z-=z*=z/=)__doc__
__future__r   enumr   r   r   KEYWORDSBUILTIN_FUNCTIONSMULTI_CHAR_OPERATORSsetSINGLE_CHAR_OPERATORSrB   r   r   r   <module>rz      s   #  0			 	"&	(1				#	%-	 
	 	 	  *	 ,3	 
		 		 		 !		 #,		
 	
 	
 	
 !	
 #+	 		 	 	 $	 &1	 	 	 	 #	 %,	 	 	   I D Dr   