/***************************************************************************

    supportware
    Copyright (C) 2001-2008 by c.holzheuer
    c.holzheuer@sourceworx.org

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

***************************************************************************/


#include <ddtoken.h>


using namespace std;


const char* ddtoken::id[] = 
{
	"op_nop",

	// data types
	"invalid",	
	
	"void",	
	"ddstring",			
	"int",
	"double",	

	"object",	
	"date",			
	"currency",
	"seq",
	
	"bool",	
	
	"page",
	"module",
	"domain",
	"table",
	"section",
	"form",
	"tagblock",
	
	// "token types
	"op_id",
	"op_val",
	"op_ref",
	"op_type",
	"op_fun",
	"op_efn",
	"op_block",
	"op_eblk",
	"op_loop",
	"op_elop",
	"op_emd",
	"op_oprt",			
	"op_keywd",

	// keywords	
	
	"do",
	"while",
	"for",
	"if",
	"else",			
	"switch",
	"default",
	"break",			
	"continue",
	"return",
	
	"try",
	"throw",
	"catch",
	"assert",
	"op_system",
	//"print",
	//"println",
	//"now",
	//"millis",
	//"timer_start",
	//"timer_elapsed",
	//"set_alarm",
	
	// primitiv operators
	",", //"op_comma,
	".", //"op_dot,
	":", //"op_colon,
	";", //"op_semicolon,
	"?", //"op_questionmark,

	"(", //"op_open_brace1
	")", //"op_close_brace1
	"[", //"op_open_brace2
	"]", //"op_close_brace2
	"{", //"op_open_brace3
	"}", //"op_close_brace3

	// operators	
	"=",	//tok_assign",

	"+", //"op_add",
	"-", //"op_sub",
	"*", //"op_mul",
	"/", //"op_div",
	"%", //"op_mod",
	"|", //"op_int_div",
	"&", //"op_concat",

	"+=", //"op_add_assign",
	"-=", //"op_sub_assign",
	"*=", //"op_mul_assign",
	"/=", //"op_div_assign",
	"%=", //"op_mod_assign",			
	"|=",	//"op_int_div_assign",
	"&=",	//"op_concat_assign",

	">", //"op_greater",
	">=", //"op_greater_eq",
	"==", //"op_equal",
	"!=", //"op_not_equal",
	"<", //"op_less",
	"<=", //"op_less_eq",

	"&&", //"op_log_and",
	"||", //"op_log_or",

	"!", //"op_not",	
	"++",
	"--",
	"op_preop",
	"op_umin",

	// vm instructions that are no keywords but in source code
	//"op_sys_millis",

	// vm instructions
	"op_sav_sp",
	"op_rst_sp",
	"op_psh",
	"op_cstr",
	"op_call",
	"op_apply", 
	"op_jp",
	"op_jpf",
	"op_jpe",		
	"op_jpef"

};

