main.cpp

来自「我的一个利用有限状态机的正则表达式的实现。」· C++ 代码 · 共 39 行

CPP
39
字号
#include "myreg.h"
#include <stdio.h>


int main(void) {

	char* regexp =  "(a|b)*c";
	int i = 0;

	REG_INTERP* inter= CompileReg( regexp );
	REG_DFA* dfa = inter->dfa;

	for ( i = 0; i< dfa->count; i++ ) {
		PrintDState( dfa->dstates[i] );
	}

	char* samples[] = {
		"abb0c", "abababb1c", "ccaaaabbc", "bb", "aaa", "ab"
	};
	char* expect[] = {
		"MATCH", "MATCH", "MATCH", "MISMATCH", "MISMATCH", "MISMATCH"
	};

	int size = sizeof(samples)/sizeof(char*);
	for( i = 0; i < size; i++ ) {
		if ( MatchReg( inter, samples[i] ) ) {
			printf( "%s MATCH %s\n", samples[i], regexp );
		} else {
			printf( "%s MISMATCH %s\n", samples[i], regexp );
		}
		printf( "EXPECTING %s\n", expect[i] );
	}

	ReleaseReg( inter );

	scanf("Press Enter...");

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?