/*
* token.h
*
* Copyright 1995-2004 Timo Rossi, <trossi@iki.fi>
* See the file LICENSE for license terms.
*
*/
#define TOKSIZE 256
/*
* token codes
*/
/**/
enum {
TOK_INVALID,
TOK_EOF,
TOK_NEWLINE,
TOK_COLON,
TOK_PERIOD,
TOK_DOLLAR,
TOK_COMMA,
TOK_LEFTPAR,
TOK_RIGHTPAR,
TOK_LEFTBRAK,
TOK_RIGHTBRAK,
TOK_EQUAL,
TOK_EQ,
TOK_NOT_EQ,
TOK_LESS,
TOK_LESS_EQ,
TOK_GREATER,
TOK_GT_EQ,
TOK_PLUS,
TOK_MINUS,
TOK_ASTERISK,
TOK_SLASH,
TOK_PERCENT,
TOK_BITAND,
TOK_BITOR,
TOK_BITXOR,
TOK_BITNOT,
TOK_LSHIFT,
TOK_RSHIFT,
TOK_BACKSLASH,
TOK_IDENTIFIER,
TOK_LOCAL_ID,
TOK_INTCONST,
TOK_STRCONST, /* used as file name with include, and in EDATA */
KW_INCLUDE,
KW_MACRO,
KW_ENDM,
KW_EXITM,
KW_IF,
KW_ELSE,
KW_ENDIF,
KW_EQU,
KW_SET,
KW_END,
KW_ORG,
KW_DS,
KW_EDATA,
KW_DT,
KW_DATA,
KW_CBLOCK,
KW_ENDC,
KW_CONFIG,
KW_PICID,
KW_DEVICE,
KW_DEFINED,
KW_HIBYTE,
KW_STREQ,
KW_STREQCASE,
KW_ISSTR,
KW_CHRVAL,
KW_OPT,
KW_LOCAL,
KW_ENDLOCAL,
KW_ERROR,
KW_ADDLW,
KW_ADDWF,
KW_ANDLW,
KW_ANDWF,
KW_BCF,
KW_BSF,
KW_BTFSC,
KW_BTFSS,
KW_CALL,
KW_CLRF,
KW_CLRW,
KW_CLRWDT,
KW_COMF,
KW_DECF,
KW_DECFSZ,
KW_GOTO,
KW_INCF,
KW_INCFSZ,
KW_IORLW,
KW_IORWF,
KW_MOVLW,
KW_MOVF,
KW_MOVWF,
KW_NOP,
KW_OPTION,
KW_RETFIE,
KW_RETLW,
KW_RETURN,
KW_RLF,
KW_RRF,
KW_SLEEP,
KW_SUBLW,
KW_SUBWF,
KW_SWAPF,
KW_TRIS,
KW_XORLW,
KW_XORWF,
KW_ADDWFC,
KW_BTG,
KW_CPFSEQ,
KW_CPFSGT,
KW_CPFSLT,
KW_DAW,
KW_DCFSNZ,
KW_INFSNZ,
KW_LCALL,
KW_MOVFP,
KW_MOVPF,
KW_MOVLB,
KW_MOVLR,
KW_MULLW,
KW_MULWF,
KW_NEGW,
KW_RLCF,
KW_RLNCF,
KW_RRCF,
KW_RRNCF,
KW_SETF,
KW_SUBWFB,
KW_TABLRD,
KW_TABLWT,
KW_TLRD,
KW_TLWT,
KW_TSTFSZ,
KW_SET_PIC_TYPE,
KW_END_POS /* end marker */
};
#define FIRST_KW KW_INCLUDE
#define NUM_KEYWORDS (KW_END_POS-FIRST_KW)
extern int token_type, line_buf_off;
extern char token_string[TOKSIZE];
extern long token_int_val;
extern int tok_char;
extern int ifskip_mode;
/*prototypes*/
void get_token(void), skip_eol(void);
void expand_macro(struct symbol *sym);
void expand_macro_with_args(struct symbol *, char **, int, int);
void begin_include(char *fname, int, int), end_include(void);
void read_src_char(void);
void init_includes(void), add_include_path(char *);
syntax highlighted by Code2HTML, v. 0.9.1