// $Id$ $use Apply Class Convert List; $use "cpp_specific"; // import $func? Reserved-Word?; // import $const Namespace-Delimeter; $const Conv_Table = ('!' 'e') ('?' 'q') ('_' '') ('-' 'm') ('+' 'p') ('<' 'lt') ('>' 'gt') ('=' 'eq') ('*' 'a') ('/' 's') (' ' 'sp') ('\\' 'bs') ('|' 'bar') ('~' 'tilde') ('@' 'at') ('#' 'num') ('$' 'dollar') ('%' 'percnt') ('^' 'circ') ('&' 'amp') ('(' 'lpar') (')' 'rpar') ('[' 'lsqb') (']' 'rsqb') ('{' 'lcub') ('}' 'rcub') ('`' 'grave') ('\'' 'apos') ('\"' 'quot') (',' 'comma') ('.' 'period') (':' 'colon') (';' 'semi'); //$func Qualifier2Cpp s.qualifier = e.cpp-namespace; $func Qualifier2Cpp e = e; $func Chars2Cpp e.name = e.cpp_identifier; //$func A-Char2Cpp s.char = e.char-representation; $func A_Char2Cpp e = e; $func Char_To_Unicode s.char = e.unicode; Rfp2Cpp e.rfp_obj, { e.rfp_obj : \{ (s.tag e.ns (e.name s.last)), , s.tag : \{ EVAR = 'e'; VVAR = 'v'; TVAR = 't'; SVAR = 's'; } :: s.t = ('_g's.t e.ns'_') e.name s.last; (VAR e.ns (e.name)) = ('_v'e.ns'_') e.name; (EVAR e.ns (e.name)) = ('_ve'e.ns'_') e.name; (VVAR e.ns (e.name)) = ('_vv'e.ns'_') e.name; (TVAR e.ns (e.name)) = ('_vt'e.ns'_') e.name; (SVAR e.ns (e.name)) = ('_vs'e.ns'_') e.name; (STATIC (e.name)) = ('_c_') e.name; (LABEL (e.name)) = ('_') e.name; } :: (e.prefix) e.name = e.prefix ; e.rfp_obj : (INT t.var) = ; e.rfp_obj : { (OBJ e.names) = e.names; (e.names) = e.names; e.names = e.names; } :: e.name = ; } :: e.ident, { : e = '_r_' e.ident; e.ident; }; Qualifier2Cpp s.qualifier = &NamespaceDelimeter; Chars2Cpp e.name = )>; A_Char2Cpp s.char, { = s.char; , # \{ '?!' : e s.char e; } = s.char; &Conv_Table : e (s.char e.code) e = '_' e.code '_'; '_' '_'; }; Char_To_Unicode { // '\a' = '07'; '\b' = '08'; '\t' = '09'; '\n' = '0A'; '\v' = '0B'; '\f' = '0C'; '\r' = '0D'; }; $func? Qualifiers2Rfp e.qualifiers = e.words; $func? Chars2Rfp e.name = s.word; $func? Codes2Rfp e.codes = e.chars; Cpp2Rfp e.ident = : { '_r_' e.name = e.name; e.name = e.name; } : \{ '_ve_' e.name = (EVAR ()); '_vv_' e.name = (VVAR ()); '_vt_' e.name = (TVAR ()); '_vs_' e.name = (SVAR ()); e.name = ; }; Qualifiers2Rfp { e.qualifier &NamespaceDelimeter e.rest = ; e.name = ; }; Chars2Rfp e.name = >; Codes2Rfp { '_' e.code '_' e.rest = &Conv_Table : e (s.char e.code) e = s.char ; s.char e.rest = \{ ; , # \{ s.char : '?'; }; } = s.char ; /*empty*/ = /*empty*/; };