CVersionInfoDr. Detlef Meyer-EltzPParsergenerator and Interpreter1.6.2.0  Tetra.exe+Copyright 2002 - 09 Dr. Detlef Meyer-Eltz Tetra.exeTextTransformernormal BODYCTokenBODY@preferred to the TAG-token, because of an additional parenthesis]|"[^"]*"|'[^']*')*>EMAILCTokenEMAILEine gewhnliche E-Mail Adresse][\w\.-]+ \// local part @ \ ([\w-]+\.)+ \ // sub domains [a-zA-Z]{2,4} // top level domainENTITYCTokenENTITY&[[:alpha:]]+; LINK_BEGINCToken LINK_BEGIN?e.g. "@]+(\.[^\r\n\t <>"@?]+)+SPECIALCTokenSPECIAL{not '&', which is the begin of HTML special characters not '<' and '>' as HTML markers not '=' which is begin of a STRING[^[:alpha:]<>&"]+STRINGCToken\STRING "([^"\\\r\n]*(\\.[^"\\\r\n]*)*)"WORDCTokenWORD [[:alpha:]]+ BodyCProduction_LINK\>Bodyj BODY ( tag | HtmlLink | TextToCheck | "&" | "\"" | ENTITY )* ""  CommentCProduction_LINK Comment"" HtmlCProduction_LINKRNHtml."" HtmlCodeCProduction_LINK@QHtmlCode tag | SKIP  HtmlLinkCProduction_LINKHtmlLinkRLINK_BEGIN ( "\"" Link ( "?" SKIP )? "\"" | Link ) SKIP? ">" HTMLTextCProduction_LINKHiHTMLTexth{{ m_iResult = 0; }} ( "<" // without look-ahead not to decide whether less-character or the begin of a tag in not well formed HTML | ">" // greater-character or end of a tag | TextToCheck | "&" | "\"" | Html // well formed HTML )* {{ out << m_iResult; // has to be called before CopyToDisk //CopyToDisk(false); }} LinkCProduction_LINKpLink% NORMAL_LINK | "mailto:"? EMAIL tagCProduction_LINKtag"<" SKIP ">" TextToCheckCProduction_LINK~E TextToCheck0 WORD | STRING | SPECIAL | Link  CopyToDiskCElementScript8 CopyToDiskBy this function the text of the e-mail can bo copied to C:\\impfilter\\HTML, if '/' and '/ are removed, !! the function has to be called, after m_iResult has been written{{{ /* if(!ExtraParam().empty()) { str sTestDir = "C:\\impfilter\\HTML"; str sTestFile = append_path(sTestDir, ExtraParam() + ".txt"); if(exists(sTestDir)) { RedirectOutputBinary(sTestFile); if(xbParseError) out << xState.text(0) << xState.str(-2); else out << xState.text(0); //ResetOutput(); } } */ }} bool xbParseError GetSpecCharCElementScriptX؊ GetSpecChar{{ if(m_mSpecialChar.findKey(xState.str())) { return m_mSpecialChar.value(); } else { log << "special char not found to: " << xState.str() << endl; throw CTT_Error("special char not found"); return str(); // to prevent an error message } }} str m_iResultCElementScript؊ m_iResultintm_mSpecialCharCElementScriptيm_mSpecialCharK {{ m_mSpecialChar["<"] = "<"; m_mSpecialChar[">"] = ">"; m_mSpecialChar["&"] = "&"; m_mSpecialChar["""] = "\""; m_mSpecialChar[" "] = ""; m_mSpecialChar["¡"] = ""; m_mSpecialChar["¢"] = ""; m_mSpecialChar["£"] = ""; m_mSpecialChar["¤"] = ""; m_mSpecialChar["¥"] = ""; m_mSpecialChar["¦"] = ""; m_mSpecialChar["§"] = ""; m_mSpecialChar["¨"] = ""; m_mSpecialChar["©"] = ""; m_mSpecialChar["ª"] = ""; m_mSpecialChar["«"] = ""; m_mSpecialChar["¬"] = ""; m_mSpecialChar["­"] = ""; m_mSpecialChar["®"] = ""; m_mSpecialChar["¯"] = ""; m_mSpecialChar["°"] = ""; m_mSpecialChar["±"] = ""; m_mSpecialChar["²"] = ""; m_mSpecialChar["³"] = ""; m_mSpecialChar["´"] = ""; m_mSpecialChar["µ"] = ""; m_mSpecialChar["¶"] = ""; m_mSpecialChar["·"] = ""; m_mSpecialChar["¸"] = ""; m_mSpecialChar["¹"] = ""; m_mSpecialChar["º"] = ""; m_mSpecialChar["»"] = ""; m_mSpecialChar["¼"] = ""; m_mSpecialChar["½"] = ""; m_mSpecialChar["¾"] = ""; m_mSpecialChar["¿"] = ""; m_mSpecialChar["À"] = ""; m_mSpecialChar["Á"] = ""; m_mSpecialChar["Â"] = ""; m_mSpecialChar["Ã"] = ""; m_mSpecialChar["Ä"] = ""; m_mSpecialChar["Å"] = ""; m_mSpecialChar["Æ"] = ""; m_mSpecialChar["Ç"] = ""; m_mSpecialChar["È"] = ""; m_mSpecialChar["É"] = ""; m_mSpecialChar["Ê"] = ""; m_mSpecialChar["Ë"] = ""; m_mSpecialChar["Ì"] = ""; m_mSpecialChar["Í"] = ""; m_mSpecialChar["Î"] = ""; m_mSpecialChar["Ï"] = ""; m_mSpecialChar["Ð"] = ""; m_mSpecialChar["Ñ"] = ""; m_mSpecialChar["Ò"] = ""; m_mSpecialChar["Ó"] = ""; m_mSpecialChar["Ô"] = ""; m_mSpecialChar["Õ"] = ""; m_mSpecialChar["Ö"] = ""; m_mSpecialChar["×"] = ""; m_mSpecialChar["Ø"] = ""; m_mSpecialChar["Ù"] = ""; m_mSpecialChar["Ú"] = ""; m_mSpecialChar["Û"] = ""; m_mSpecialChar["Ü"] = ""; m_mSpecialChar["Ý"] = ""; m_mSpecialChar["Þ"] = ""; m_mSpecialChar["ß"] = ""; m_mSpecialChar["à"] = ""; m_mSpecialChar["á"] = ""; m_mSpecialChar["â"] = ""; m_mSpecialChar["ã"] = ""; m_mSpecialChar["ä"] = ""; m_mSpecialChar["å"] = ""; m_mSpecialChar["æ"] = ""; m_mSpecialChar["ç"] = ""; m_mSpecialChar["è"] = ""; m_mSpecialChar["é"] = ""; m_mSpecialChar["ê"] = ""; m_mSpecialChar["ë"] = ""; m_mSpecialChar["ì"] = ""; m_mSpecialChar["í"] = ""; m_mSpecialChar["î"] = ""; m_mSpecialChar["ï"] = ""; m_mSpecialChar["ð"] = ""; m_mSpecialChar["ñ"] = ""; m_mSpecialChar["ò"] = ""; m_mSpecialChar["ó"] = ""; m_mSpecialChar["ô"] = ""; m_mSpecialChar["õ"] = ""; m_mSpecialChar["ö"] = ""; m_mSpecialChar["÷"] = ""; m_mSpecialChar["ø"] = ""; m_mSpecialChar["ù"] = ""; m_mSpecialChar["ú"] = ""; m_mSpecialChar["û"] = ""; m_mSpecialChar["ü"] = ""; m_mSpecialChar["ý"] = ""; m_mSpecialChar["þ"] = ""; m_mSpecialChar["ÿ"] = ""; }} mstrstr OnParseErrorCElementScriptDڊ OnParseError{{ //CopyToDisk(true); }} COptionsProjectProjectOptionsProjectOptionsCOptionSectionHOProjectOptions0 CaseSensitiveCScriptH~ CaseSensitive0CharTypeTemplateCScript lECharTypeTemplate1 CommentToCodeCScriptR CommentToCode0 ConfigParamCScript` ConfigParam""CopyCodeCScript@SCopyCode0CreateConstProductionsCScript ]CreateConstProductions0CreateInterfaceCScripttۊCreateInterface0CreateWideCharRegexCScriptۊCreateWideCharRegex0DOMDefaultLabelCScript܊DOMDefaultLabel default_labelDOMDocTypeNameCScriptp܊DOMDocTypeName DOMPublicIDCScript܊ DOMPublicID DOMRootLabelCScriptt~ DOMRootLabelroot DOMSystemIDCScriptt~ DOMSystemID ExportableCScript4u~ Exportable1 ExtraParamCScriptu~ ExtraParam""GlobalLiteralScannerCScriptGlobalLiteralScanner1GlobalRegexScannerCScript0GlobalRegexScanner0 IgnoreCharsCScript IgnoreChars\t\n\rIgnoreWhiteSpaceCScriptIgnoreWhiteSpace1InclusionOverlapWarningCScript,InclusionOverlapWarning1 InclusionProdCScript InclusionProdComment IndentCharCScript IndentCharws IndentDeltaCScript( IndentDelta2 InterpretableCScript| Interpretable1IsNullableWarningCScriptIsNullableWarning0 LATokenBufferCScript$ LATokenBuffer0LookAheadOverlapWarningCScriptxLookAheadOverlapWarning0 MaxStackSizeCScript MaxStackSize100NeatlessCScript Neatless1 NoAnyFailAltCScriptt NoAnyFailAlt1 NoSkipFailAltCScript NoSkipFailAlt1OpSystemCScriptOpSystem0 PluginTypeCScriptp PluginTypeCTT_ParseStatePluginPossibleAttrMismatchWarningCScriptPossibleAttrMismatchWarning1 SeparatedCScript Separated1SourceEncodingCScriptlSourceEncoding0SourceOpenModeCScriptSourceOpenMode0StartSuccNullableWarningCScriptStartSuccNullableWarning1 StartruleCScripth StartruleHTMLTextSubParserOverlapWarningCScriptSubParserOverlapWarning0TargetEncodingCScriptTargetEncoding0TargetOpenModeCScriptdTargetOpenMode0TestAllLiteralsCScriptTestAllLiterals0TestAllLiteralsAlwaysCScript TestAllLiteralsAlways0TestAllRegexsAlwaysCScript`TestAllRegexsAlways0TestFileCScriptTestFileUseIgnoreRegexCScriptUseIgnoreRegex0UseLocalOptionsCScript\UseLocalOptions0