{
if ( exportList.length() > 0 ) {
for ( ExportList::Iter ex = exportList; ex.lte(); ex++ ) {
- out << "#define " << DATA_PREFIX() << ex->name << " " <<
+ out << "#define " << DATA_PREFIX() << "ex_" << ex->name << " " <<
KEY(ex->key) << "\n";
}
out << "\n";
{
if ( exportList.length() > 0 ) {
for ( ExportList::Iter ex = exportList; ex.lte(); ex++ ) {
- STATIC_VAR( ALPH_TYPE(), DATA_PREFIX() + ex->name )
- << " = " << KEY(ex->key) << "\n";
+ STATIC_VAR( ALPH_TYPE(), DATA_PREFIX() + "ex_" + ex->name )
+ << " = " << KEY(ex->key) << ";\n";
}
out << "\n";
}
{
if ( exportList.length() > 0 ) {
for ( ExportList::Iter ex = exportList; ex.lte(); ex++ ) {
- STATIC_VAR( ALPH_TYPE(), DATA_PREFIX() + ex->name )
+ STATIC_VAR( ALPH_TYPE(), DATA_PREFIX() + "ex_" + ex->name )
<< " = " << KEY(ex->key) << "\n";
}
out << "\n";
--- /dev/null
+/*
+ * @LANG: c
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+%%{
+ machine test;
+
+ export c1 = 'c';
+ export c2 = 'z';
+ export c3 = 't';
+
+ commands := (
+ c1 . digit* '\n' @{ printf( "c1\n" );} |
+ c2 . alpha* '\n' @{ printf( "c2\n" );}|
+ c3 . '.'* '\n' @{ printf( "c3\n" );}
+ )*;
+
+ main := any*;
+}%%
+
+%% write exports;
+%% write data;
+
+int test( const char *data, int len )
+{
+ int cs;
+ const char *p = data, *pe = data + len;
+
+ cs = test_en_commands;
+ %% write exec;
+
+ if ( cs >= test_first_final )
+ printf("ACCEPT\n");
+ else
+ printf("ERROR\n");
+ return 0;
+}
+
+char data[] = {
+ test_ex_c1, '1', '2', '\n',
+ test_ex_c2, 'a', 'b', '\n',
+ test_ex_c3, '.', '.', '\n', 0
+};
+
+int main()
+{
+ test( data, strlen( data ) );
+ return 0;
+}
+
+#ifdef _____OUTPUT_____
+c1
+c2
+c3
+ACCEPT
+#endif
--- /dev/null
+/*
+ * @LANG: java
+ * @ALLOW_GENFLAGS: -T0
+ */
+
+class export2
+{
+ %%{
+ machine test;
+
+ export c1 = 'c';
+ export c2 = 'z';
+ export c3 = 't';
+
+ commands := (
+ c1 . digit* '\n' @{ System.out.println( "c1" );} |
+ c2 . alpha* '\n' @{ System.out.println( "c2" );}|
+ c3 . '.'* '\n' @{ System.out.println( "c3" );}
+ )*;
+
+ main := any*;
+ }%%
+
+ %% write exports;
+ %% write data;
+
+ static void test( char data[] )
+ {
+ int cs, p = 0, pe = data.length;
+ int top;
+
+ cs = test_en_commands;
+ %% write exec;
+
+ if ( cs >= test_first_final )
+ System.out.println( "ACCEPT" );
+ else
+ System.out.println( "FAIL" );
+ }
+
+ public static void main( String args[] )
+ {
+ char data[] = {
+ test_ex_c1, '1', '2', '\n',
+ test_ex_c2, 'a', 'b', '\n',
+ test_ex_c3, '.', '.', '\n',
+ };
+ test( data );
+ }
+}
+
+
+/* _____OUTPUT_____
+c1
+c2
+c3
+ACCEPT
+*/
--- /dev/null
+#
+# @LANG: ruby
+# @ALLOW_GENFLAGS: -T0
+#
+
+%%{
+ machine test;
+
+ export c1 = 'c';
+ export c2 = 'z';
+ export c3 = 't';
+
+ commands := (
+ c1 . digit* '\n' @{ puts "c1"; } |
+ c2 . alpha* '\n' @{ puts "c2"; }|
+ c3 . '.'* '\n' @{ puts "c3"; }
+ )*;
+
+ main := any*;
+}%%
+
+%% write exports;
+%% write data;
+
+def run_machine( data )
+ p = 0;
+ pe = data.length
+ cs = 0
+ cs = 0
+ val = 0;
+ neg = false;
+
+ cs = test_en_commands;
+ %% write exec;
+ %% write eof;
+ if cs >= test_first_final
+ puts "ACCEPT"
+ else
+ puts "FAIL"
+ end
+end
+
+inp = [
+ test_ex_c1, ?1, ?2, ?\n,
+ test_ex_c2, ?a, ?b, ?\n,
+ test_ex_c3, ?., ?., ?\n
+]
+
+run_machine( inp );
+
+=begin _____OUTPUT_____
+c1
+c2
+c3
+ACCEPT
+=end _____OUTPUT_____