// filename.c
// Angshuman Guha
// aguha
// Nov 16, 2001

#include "common.h"
#include "filename.h"
#include "fsa.h"

/* The windows help topic "file names, forbidden characters in file names" lists forbidden characters as

\ / : * ? " < > |

*/

// text generated by re2fsa at Tue Apr 09 09:56:45 2002

// the input-file of rules:
// filenamechar = "!#$%&'()+,-.0123456789;=@[]^_`{}~€£";
// alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzŠŒšœŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ";
// wildchar = "*?";
// start = "\\" "\\";
// start = [alpha ":"] ["\\"];
// filename = start ( (filenamechar | alpha)+ "\\")* (filenamechar | alpha | wildchar)*;
// = filename

// 5 states

static const unsigned char gaSFILENAME[] = 
	/* gaStringFILENAME+0 */	"!#$%&'()+,-.0123456789;=@[\\]^_`{}~£€\000"
	/* gaStringFILENAME+37 */	"*?\000"
	/* gaStringFILENAME+40 */	"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿŒœŠšŸ\000"
	/* gaStringFILENAME+160 */	"!#$%&'()+,-.0123456789;=@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{}~£ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿŒœŠšŸ€\000"
	/* gaStringFILENAME+315 */	"\\\000"
	/* gaStringFILENAME+317 */	"!#$%&'()*+,-.0123456789;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{}~£ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿŒœŠšŸ€\000"
	/* gaStringFILENAME+474 */	"!#$%&'()+,-.0123456789:;=@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{}~£ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿŒœŠšŸ€\000"
;

static const STATE_TRANSITION gaTFILENAME[] = {
	{gaSFILENAME+0,	1}, // +0: state 0 transitions
	{gaSFILENAME+37,	2},
	{gaSFILENAME+40,	3},
	{gaSFILENAME+160,	1}, // +3: state 1 transitions
	{gaSFILENAME+37,	2},
	{gaSFILENAME+315,	4},
	{gaSFILENAME+317,	2}, // +6: state 2 transitions
	{gaSFILENAME+474,	1}, // +7: state 3 transitions
	{gaSFILENAME+37,	2},
	{gaSFILENAME+315,	4},
	{gaSFILENAME+160,	1}, // +10: state 4 transitions
	{gaSFILENAME+37,	2},
};

const STATE_DESCRIPTION aStateDescFILENAME[5] = {
	/* state valid cTrans Trans */
	/*   0 */ {1, 3, gaTFILENAME+0},
	/*   1 */ {1, 3, gaTFILENAME+3},
	/*   2 */ {1, 1, gaTFILENAME+6},
	/*   3 */ {1, 3, gaTFILENAME+7},
	/*   4 */ {1, 2, gaTFILENAME+10},
};

// end of text generated by re2fsa
