[ create a new paste ] login | about

Link: http://codepad.org/huyO8ERx    [ raw code | fork | 1 comment ]

C++, pasted on Dec 3:
#include <string>
#include <iostream>

%%{
	machine ADC;
	
	separator = ' ';
	eol = '\n';
	simple_alphanum = [A-Z0-9];
	simple_alpha = [A-Z];
	escape = '\';
	escaped_letter = [^ \n] | escape 's' | escape 'n' | escape escape;
	feature_name = simple_alpha simple_alphanum{3};
	base32_character = simple_alpha | [2-7];
	encoded_cid = base32_character+;
	my_cid = encoded_cid;
	encoded_sid = base32_character{4};
	my_sid = encoded_sid;
	target_sid = encoded_sid;
	parameter_value = escaped_letter+;
	parameter_name = simple_alpha simple_alphanum;
	named_parameter = parameter_name parameter_value?;
	positional_parameter = parameter_value;
	command_name = simple_alpha simple_alphanum{2};
	u_message_header = 'U' command_name separator my_cid;
	f_message_header = 'F' command_name separator my_sid separator (('+'|'-') feature_name)+;
	de_message_header = ('D' | 'E') command_name separator my_sid separator (('+' | '-') feature_name)+;
	cih_message_header = ('C' | 'I' | 'H') command_name;
	b_message_header = 'B' command_name separator my_sid;
	message_body = (
		b_message_header
		| cih_message_header
		| de_message_header
		| f_message_header
		| u_message_header
		| message_header
	) (separator positional_parameter)* (separator named_parameter)*;
	message = message_body? eol;
	
	main: = message;
	write data;
}%%

int main()
{
	return 0;
}


Create a new paste based on this one


Comments:
posted by qkeen on Dec 4
line 11, slash escapes closing single quote, then quoted string eats up to the end of the file causing ragel to report error at the end of the file.
reply