#!/usr/bin/awk -f # # sgmlproc - normalize and process SGML documents # # Copyright 2019 Marcus Reichardt (contact: ) # # sgmlproc is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License at # for more details. # function populate_from_globals(args) { if (suppress_warnings) args["suppress_warnings"] = suppress_warnings if (treat_recoverable_as_fatal_errors) args["treat_recoverable_as_fatal_errors"] = treat_recoverable_as_fatal_errors if (roundtrip) args["roundtrip"] = roundtrip if (output_format) args["output_format"] = output_format if (dtd_handling) args["dtd_handling"] = dtd_handling if (forward_link_attributes) args["forward_link_attributes"] = forward_link_attributes if (text_before_citekey) args["text_before_citekey"] = text_before_citekey if (text_after_citekey) args["text_after_citekey"] = text_after_citekey if (bibliography_rdf_graph_location) { args["bibliography_rdf_graph_location"] = bibliography_rdf_graph_location args["bibliography_rdf_graph_location_parameter_specified"] = "true" } if (bibliography_rdf_graph_ns) { args["bibliography_rdf_graph_ns"] = bibliography_rdf_graph_ns args["bibliography_rdf_graph_ns_parameter_specified"] = "true" } if (sparql_endpoint) { args["sparql_endpoint"] = sparql_endpoint args["sparql_endpoint_parameter_specified"] = "true" } if (active_lpd_names) args["active_lpd_names"] = active_lpd_names if (system_specific_entity_path) args["system_specific_entity_path"] = system_specific_entity_path if (running_as_template_subprocessing_context) args["running_as_template_subprocessing_context"] = running_as_template_subprocessing_context if (expected_external_dtd_subset_identifier) args["expected_external_dtd_subset_identifier"] = expected_external_dtd_subset_identifier if (disable_referential_attributes) args["disable_referential_attributes"] = disable_referential_attributes if (disable_data_entity_references) args["disable_data_entity_references"] = disable_data_entity_references if (enable_lax_templates) args["enable_lax_templates"] = enable_lax_templates if (sgmldecl_syntax_namecase_general) args["sgmldecl_syntax_namecase_general"] = sgmldecl_syntax_namecase_general if (sgmldecl_syntax_namecase_entity) args["sgmldecl_syntax_namecase_entity"] = sgmldecl_syntax_namecase_entity if (sgmldecl_features_minimize_omittag) args["sgmldecl_features_minimize_omittag"] = sgmldecl_features_minimize_omittag if (sgmldecl_features_minimize_rank) args["sgmldecl_features_minimize_rank"] = sgmldecl_features_minimize_rank if (sgmldecl_features_minimize_implydef_doctype) args["sgmldecl_features_minimize_implydef_doctype"] = sgmldecl_features_minimize_implydef_doctype if (sgmldecl_features_minimize_implydef_element) args["sgmldecl_features_minimize_implydef_element"] = sgmldecl_features_minimize_implydef_element if (sgmldecl_features_minimize_implydef_element_anyother) args["sgmldecl_features_minimize_implydef_element_anyother"] = sgmldecl_features_minimize_implydef_element_anyother if (sgmldecl_features_minimize_implydef_attlist) args["sgmldecl_features_minimize_implydef_attlist"] = sgmldecl_features_minimize_implydef_attlist if (sgmldecl_features_minimize_implydef_entity) args["sgmldecl_features_minimize_implydef_entity"] = sgmldecl_features_minimize_implydef_entity if (sgmldecl_features_minimize_emptynrm) args["sgmldecl_features_minimize_emptynrm"] = sgmldecl_features_minimize_emptynrm if (sgmldecl_features_minimize_shorttag_starttag_empty) args["sgmldecl_features_minimize_shorttag_starttag_empty"] = sgmldecl_features_minimize_shorttag_starttag_empty if (sgmldecl_features_minimize_shorttag_endtag_empty) args["sgmldecl_features_minimize_shorttag_endtag_empty"] = sgmldecl_features_minimize_shorttag_endtag_empty if (sgmldecl_features_minimize_shorttag_attrib_omitname) args["sgmldecl_features_minimize_shorttag_attrib_omitname"] = sgmldecl_features_minimize_shorttag_attrib_omitname if (sgmldecl_features_minimize_shorttag_starttag_netenabl) args["sgmldecl_features_minimize_shorttag_starttag_netenabl"] = sgmldecl_features_minimize_shorttag_starttag_netenabl if (sgmldecl_features_other_validity) args["sgmldecl_features_other_validity"] = sgmldecl_features_other_validity if (sgmldecl_features_other_formal) args["sgmldecl_features_other_formal"] = sgmldecl_features_other_formal if (sgmldecl_features_other_urn) args["sgmldecl_features_other_urn"] = sgmldecl_features_other_urn if (sgmldecl_public_declaration_reference) args["sgmldecl_public_declaration_reference"] = sgmldecl_public_declaration_reference if (disable_path_relativization) args["disable_path_relativization"] = disable_path_relativization if (strict_markdown_pl_compatibility) args["strict_markdown_pl_compatibility"] = strict_markdown_pl_compatibility if (keep_trailing_codeblock_newlines) args["keep_trailing_codeblock_newlines"] = keep_trailing_codeblock_newlines if (prune_singleton_html_paras_in_listitems) args["prune_singleton_html_paras_in_listitems"] = prune_singleton_html_paras_in_listitems if (restrict_parameter_entity_expansion) args["restrict_parameter_entity_expansion"] = restrict_parameter_entity_expansion if (sax_event_tracing) args["sax_event_tracing"] = sax_event_tracing if (sax_error_context_info_collection) args["sax_error_context_info_collection"] = sax_error_context_info_collection if (strict_iso8879_compatibility) args["strict_iso8879_compatibility"] = strict_iso8879_compatibility if (system_specific_implied_lpd_names) args["system_specific_implied_lpd_names"] = system_specific_implied_lpd_names if (target_document_type_name) args["target_document_type_name"] = target_document_type_name } function usage(msg) { if (msg) { console_error(msg) console_error("Usage: sgmlproc ( [-v ] [-- [ -e =] [ -o ]] ) | -- -h | -- -V") exit(22) } else { console_info("Usage: sgmlproc ( [-v ] [-- [ -e =] [ -o ]] ) | -- -h | -- -V") exit(0) } } function version( feature_string) { feature_string = "" feature_string = "disable-sgmldecl enable-markdown enable-biblio" feature_string = concat(feature_string, " enable-utf8syntax") feature_string = concat(feature_string, " disable-xml") feature_string = concat(feature_string, " enable-markdownentities") feature_string = concat(feature_string, " disable-dsdl9") feature_string = concat(feature_string, " enable-amplytaggedvalidation") feature_string = concat(feature_string, " enable-execstoragemanager") feature_string = concat(feature_string, " enable-strpftimestoragemanager") feature_string = concat(feature_string, " enable-bundledmodules") feature_string = concat(feature_string, " disable-bundledfunctions") feature_string = concat(feature_string, " enable-htmlforminputvalidation") feature_string = concat(feature_string, " enable-shortref") feature_string = concat(feature_string, " disable-explicitlinkpipelining") feature_string = concat(feature_string, " enable-implicitlinkpipelining") feature_string = concat(" [", feature_string, "]") console_info(concat("sgmlproc ", "0.0.28-alpha", feature_string)) exit(0) } function initialize_permitted_commandline_v_variable_names() { permitted_commandline_v_variable_names["suppress_warnings"] = "" permitted_commandline_v_variable_names["treat_recoverable_as_fatal_errors"] = "" permitted_commandline_v_variable_names["roundtrip"] = "" permitted_commandline_v_variable_names["output_format"] = "" permitted_commandline_v_variable_names["dtd_handling"] = "" permitted_commandline_v_variable_names["forward_link_attributes"] = "" permitted_commandline_v_variable_names["text_before_citekey"] = "" permitted_commandline_v_variable_names["text_after_citekey"] = "" permitted_commandline_v_variable_names["bibliography_rdf_graph_location"] = "" permitted_commandline_v_variable_names["bibliography_rdf_graph_location_parameter_specified"] = "" permitted_commandline_v_variable_names["bibliography_rdf_graph_ns"] = "" permitted_commandline_v_variable_names["bibliography_rdf_graph_ns_parameter_specified"] = "" permitted_commandline_v_variable_names["sparql_endpoint"] = "" permitted_commandline_v_variable_names["sparql_endpoint_parameter_specified"] = "" permitted_commandline_v_variable_names["active_lpd_names"] = "" permitted_commandline_v_variable_names["system_specific_entity_path"] = "" permitted_commandline_v_variable_names["running_as_template_subprocessing_context"] = "" permitted_commandline_v_variable_names["expected_external_dtd_subset_identifier"] = "" permitted_commandline_v_variable_names["disable_referential_attributes"] = "" permitted_commandline_v_variable_names["disable_data_entity_references"] = "" permitted_commandline_v_variable_names["enable_lax_templates"] = "" permitted_commandline_v_variable_names["sgmldecl_syntax_namecase_general"] = "" permitted_commandline_v_variable_names["sgmldecl_syntax_namecase_entity"] = "" permitted_commandline_v_variable_names["sgmldecl_features_minimize_omittag"] = "" permitted_commandline_v_variable_names["sgmldecl_features_minimize_rank"] = "" permitted_commandline_v_variable_names["sgmldecl_features_minimize_implydef_doctype"] = "" permitted_commandline_v_variable_names["sgmldecl_features_minimize_implydef_element"] = "" permitted_commandline_v_variable_names["sgmldecl_features_minimize_implydef_element_anyother"] = "" permitted_commandline_v_variable_names["sgmldecl_features_minimize_implydef_attlist"] = "" permitted_commandline_v_variable_names["sgmldecl_features_minimize_implydef_entity"] = "" permitted_commandline_v_variable_names["sgmldecl_features_minimize_shorttag_starttag_empty"] = "" permitted_commandline_v_variable_names["sgmldecl_features_minimize_shorttag_endtag_empty"] = "" permitted_commandline_v_variable_names["sgmldecl_features_minimize_emptynrm"] = "" permitted_commandline_v_variable_names["sgmldecl_features_minimize_shorttag_attrib_omitname"] = "" permitted_commandline_v_variable_names["sgmldecl_features_minimize_shorttag_starttag_netenabl"] = "" permitted_commandline_v_variable_names["sgmldecl_features_other_validity"] = "" permitted_commandline_v_variable_names["sgmldecl_features_other_formal"] = "" permitted_commandline_v_variable_names["sgmldecl_features_other_urn"] = "" permitted_commandline_v_variable_names["sgmldecl_public_declaration_reference"] = "" permitted_commandline_v_variable_names["disable_path_relativization"] = "" permitted_commandline_v_variable_names["strict_markdown_pl_compatibility"] = "" permitted_commandline_v_variable_names["keep_trailing_codeblock_newlines"] = "" permitted_commandline_v_variable_names["prune_singleton_html_paras_in_listitems"] = "" permitted_commandline_v_variable_names["restrict_parameter_entity_expansion"] = "" permitted_commandline_v_variable_names["sax_event_tracing"] = "" permitted_commandline_v_variable_names["sax_error_context_info_collection"] = "" permitted_commandline_v_variable_names["strict_iso8879_compatibility"] = "" permitted_commandline_v_variable_names["system_specific_implied_lpd_names"] = "" permitted_commandline_v_variable_names["target_document_type_name"] = "" } function populate_commandline_arguments(argv, args, p,filename,i,argc,a) { filename = "" a = "" for (a in argv) argc++ ; for (i = 1; i < argc; i++) { ; if (argv[i] == "-h") usage("") if (argv[i] == "-V") version("") if (argv[i] == "-o") { if (i + 1 == argc) usage(concat("arg #",i,": -o option requires a file argument")) i++ rawstream1_filename = argv[i] continue } if (argv[i] == "--") continue if (argv[i] == "-v") continue if (argv[i] == "-e") continue if (substr(argv[i], 1, 1) == "-") usage(concat("'", argv[i], "': unrecognized command line option")) if (i > 0 && argv[i - 1] != "-v" && argv[i - 1] != "-e") { ; if (1 + i != argc) { usage(concat("arg #",i,": invalid property option: ", argv[i])) } filename = argv[i] break } p = index(argv[i], "=") if (!p) usage(("invalid property option: " argv[i])) if (argv[i - 1] == "-v") { if (!(substr(argv[i], 1, p-1) in permitted_commandline_v_variable_names)) usage(concat("'", substr(argv[i], 1, p-1), "': invalid -v parameter name")) args[substr(argv[i], 1, p-1)] = substr(argv[i], p+1) ; } else if ((substr(argv[i], p+1) ~ /^<[Oo][Ss][Ff][Ii][Ll][Ee]>/)) { systemspecificentityresolver1_put_system_specific_external_entity_replacement_file(substr(argv[i], 1, p-1), substr(argv[i], p+1+length(""))) } else { systemspecificentityresolver1_put_system_specific_external_entity_replacement_text(substr(argv[i], 1, p-1), substr(argv[i], p+1)) } } if (!filename) { locator1_set_system_id("-") ; } else { locator1_set_system_id(filename) ; } } function check_commandline_arguments(argv, args, p,i,argc,a) { a = "" for (a in argv) argc++ ; for (i = 3; i < argc; i++) { ; if (argv[i] == "-h") usage("") if (argv[i] == "-V") version("") if (argv[i] == "-o") { if (i + 1 == argc) usage(concat("arg #",i,": -o option requires a file argument")) i++ continue } if (argv[i] == "--") continue if (argv[i] == "-v") continue if (argv[i] == "-e") continue if (substr(argv[i], 1, 1) == "-") usage(concat("'", argv[i], "': unrecognized command line option")) if (i > 0 && argv[i - 1] != "-v" && argv[i - 1] != "-e") { ; if (1 + i != argc) { usage(concat("arg #",i,": invalid property option: ", argv[i])) } break } p = index(argv[i], "=") if (argv[i - 1] == "-v") { if (p != 0) { if (!(substr(argv[i], 1, p-1) in permitted_commandline_v_variable_names)) usage(concat("'", substr(argv[i], 1, p-1), "': invalid -v parameter name")) } } } } function get_commandline_arguments(args_array, args, errno,line,psresult,nargs,i,j) { errno = "" line = "" psresult = "" while ((errno = ("ps -ww -p $PPID -o args=" | getline line)) > 0) if (psresult) psresult = psresult line else psresult = line close("ps -ww -p $PPID -o args=") if (errno < 0) usage("error parsing command line arguments") ; while (match(psresult, / -v [A-Za-z0-9_]+ /)) { psresult = concat(substr(psresult, 1, RSTART-1), substr(psresult, RSTART, RLENGTH-1), "=", substr(psresult, RSTART+RLENGTH)) } ; nargs = split(psresult, args_array, " ") for (i = 1; i <= nargs; i++) { args_array[i - 1] = args_array[i] ; } delete args_array[nargs] for (i = 3; i < nargs; i++) if (args_array[i] == "--" || args_array[i] == "-e" || (i > 3 && (i % 2 == 0) && args_array[i - 1] != "-v")) { for (j = 0; 1 + j < ARGC; j++) { args_array[i + j] = ARGV[1 + j] ; } for (; nargs - 1 >= i + j; nargs--) { ; delete args_array[nargs - 1] } break } if (3 in args && nargs > 3 && nargs != 4 && substr(args[3], 1, 1) != "-") usage("internal error while determining sgmlproc executable name") args["sgmlproc_cmd"] = concat(args_array[0], " ", args_array[1], " ", args_array[2]) ; } function reassemble_commandline_arguments( i) { for (i = ARGC; i >= 1; i--) { if (i == 1 && locator1_get_system_id() == "-") { ; if (ARGV[i] != "" && substr(ARGV[i], 1, 1) != "-") { locator1_set_system_id(ARGV[i]) break } } ; delete ARGV[i] } if (locator1_get_system_id() != "-") { ARGV[1] = locator1_get_system_id() ; } } function check_arguments(args) { if (args["sgmldecl_syntax_namecase_general"]) { if (toupper(args["sgmldecl_syntax_namecase_general"]) != "YES" && toupper(args["sgmldecl_syntax_namecase_general"]) != "NO") usage(concat("'", args["sgmldecl_syntax_namecase_general"], "': invalid option value for sgmldecl_syntax_namecase_general")) args["sgmldecl_syntax_namecase_general"] = toupper(args["sgmldecl_syntax_namecase_general"]) } if (args["sgmldecl_syntax_namecase_entity"]) { if (toupper(args["sgmldecl_syntax_namecase_entity"]) != "YES" && toupper(args["sgmldecl_syntax_namecase_entity"]) != "NO") usage(concat("'", args["sgmldecl_syntax_namecase_general"], "': invalid option value for sgmldecl_syntax_namecase_entity")) args["sgmldecl_syntax_namecase_entity"] = toupper(args["sgmldecl_syntax_namecase_entity"]) } if (args["sgmldecl_features_minimize_omittag"]) { if (toupper(args["sgmldecl_features_minimize_omittag"]) != "YES" && toupper(args["sgmldecl_features_minimize_omittag"]) != "NO") usage(concat("'", args["sgmldecl_features_minimize_omittag"], "': invalid option value for sgmldecl_fetures_minimize_omittag")) args["sgmldecl_features_minimize_omittag"] = toupper(args["sgmldecl_features_minimize_omittag"]) } if (args["sgmldecl_features_minimize_rank"]) { if (toupper(args["sgmldecl_features_minimize_rank"]) != "YES" && toupper(args["sgmldecl_features_minimize_rank"]) != "NO") usage(concat("'", args["sgmldecl_features_minimize_rank"], "': invalid option value for sgmldecl_fetures_minimize_rank")) args["sgmldecl_features_minimize_rank"] = toupper(args["sgmldecl_features_minimize_rank"]) } if (args["sgmldecl_features_minimize_implydef_doctype"]) { if (toupper(args["sgmldecl_features_minimize_implydef_doctype"]) != "YES" && toupper(args["sgmldecl_features_minimize_implydef_doctype"]) != "NO") usage(concat("'", args["sgmldecl_features_minimize_implydef_doctype"], "': invalid option value for sgmldecl_features_minimize_implydef_doctype")) args["sgmldecl_features_minimize_implydef_doctype"] = toupper(args["sgmldecl_features_minimize_implydef_doctype"]) } if (args["sgmldecl_features_minimize_implydef_element"]) { if (toupper(args["sgmldecl_features_minimize_implydef_element"]) != "YES" && toupper(args["sgmldecl_features_minimize_implydef_element"]) != "NO") usage(concat("'", args["sgmldecl_features_minimize_implydef_element"], "': invalid option value for sgmldecl_features_minimize_implydef_element")) args["sgmldecl_features_minimize_implydef_element"] = toupper(args["sgmldecl_features_minimize_implydef_element"]) } if (args["sgmldecl_features_minimize_implydef_element_anyother"]) { if (toupper(args["sgmldecl_features_minimize_implydef_element_anyother"]) != "YES" && toupper(args["sgmldecl_features_minimize_implydef_element_anyother"]) != "NO") usage(concat("'", args["sgmldecl_features_minimize_implydef_element_anyother"], "': invalid option value for sgmldecl_features_minimize_implydef_element_anyother")) args["sgmldecl_features_minimize_implydef_element_anyother"] = toupper(args["sgmldecl_features_minimize_implydef_element_anyother"]) } if (args["sgmldecl_features_minimize_implydef_attlist"]) { if (toupper(args["sgmldecl_features_minimize_implydef_attlist"]) != "YES" && toupper(args["sgmldecl_features_minimize_implydef_attlist"]) != "NO") usage(concat("'", args["sgmldecl_features_minimize_implydef_attlist"], "': invalid option value for sgmldecl_features_minimize_implydef_attlist")) args["sgmldecl_features_minimize_implydef_attlist"] = toupper(args["sgmldecl_features_minimize_implydef_attlist"]) } if (args["sgmldecl_features_minimize_implydef_entity"]) { if (toupper(args["sgmldecl_features_minimize_implydef_entity"]) != "YES" && toupper(args["sgmldecl_features_minimize_implydef_entity"]) != "NO") usage(concat("'", args["sgmldecl_features_minimize_implydef_entity"], "': invalid option value for sgmldecl_features_minimize_implydef_entity")) args["sgmldecl_features_minimize_implydef_entity"] = toupper(args["sgmldecl_features_minimize_implydef_entity"]) } if (args["sgmldecl_features_minimize_emptynrm"]) { if (toupper(args["sgmldecl_features_minimize_emptynrm"]) != "YES" && toupper(args["sgmldecl_features_minimize_emptynrm"]) != "NO") usage(concat("'", args["sgmldecl_features_minimize_emptynrm"], "': invalid option value for sgmldecl_features_minimize_emptynrm")) args["sgmldecl_features_minimize_emptynrm"] = toupper(args["sgmldecl_features_minimize_emptynrm"]) } if (args["sgmldecl_features_minimize_shorttag_starttag_empty"]) { if (toupper(args["sgmldecl_features_minimize_shorttag_starttag_empty"]) != "YES" && toupper(args["sgmldecl_features_minimize_shorttag_starttag_empty"]) != "NO") usage(concat("'", args["sgmldecl_features_minimize_shorttag_starttag_empty"], "': invalid option value for sgmldecl_features_minimize_shorttag_starttag_empty")) } if (args["sgmldecl_features_minimize_shorttag_endtag_empty"]) { if (toupper(args["sgmldecl_features_minimize_shorttag_endtag_empty"]) != "YES" && toupper(args["sgmldecl_features_minimize_shorttag_endtag_empty"]) != "NO") usage(concat("'", args["sgmldecl_features_minimize_shorttag_endtag_empty"], "': invalid option value for sgmldecl_features_minimize_shorttag_endtag_empty")) } if (args["sgmldecl_features_minimize_shorttag_attrib_omitname"]) { if (toupper(args["sgmldecl_features_minimize_shorttag_attrib_omitname"]) != "YES" && toupper(args["sgmldecl_features_minimize_shorttag_attrib_omitname"]) != "NO") usage(concat("'", args["sgmldecl_features_minimize_shorttag_attrib_omitname"], "': invalid option value for sgmldecl_features_minimize_shorttag_attrib_omitname")) args["sgmldecl_features_minimize_shorttag_attrib_omitname"] = toupper(args["sgmldecl_features_minimize_shorttag_attrib_omitname"]) } if (args["sgmldecl_features_minimize_shorttag_starttag_netenabl"]) { if (toupper(args["sgmldecl_features_minimize_shorttag_starttag_netenabl"]) != "YES" && toupper(args["sgmldecl_features_minimize_shorttag_starttag_netenabl"]) != "NO") usage(concat("'", args["sgmldecl_features_minimize_shorttag_starttag_netenabl"], "': invalid option value for sgmldecl_features_minimize_shorttag_attrib_starttag_netenabl")) args["sgmldecl_features_minimize_shorttag_starttag_netenabl"] = toupper(args["sgmldecl_features_minimize_shorttag_starttag_netenabl"]) } if (args["sgmldecl_features_other_validity"]) { if (toupper(args["sgmldecl_features_other_validity"]) != "TYPE" && toupper(args["sgmldecl_features_other_validity"]) != "NOASSERT") usage(concat("'", args["sgmldecl_features_other_validity"], "': invalid option value for sgmldecl_features_other_validity")) args["sgmldecl_features_other_validity"] = toupper(args["sgmldecl_features_other_validity"]) } if (args["sgmldecl_features_other_formal"]) { if (toupper(args["sgmldecl_features_other_formal"]) != "YES" && toupper(args["sgmldecl_features_other_formal"]) != "NO") usage(concat("'", args["sgmldecl_features_other_formal"], "': invalid option value for sgmldecl_features_other_formal")) args["sgmldecl_features_other_formal"] = toupper(args["sgmldecl_features_other_formal"]) } if (args["sgmldecl_features_other_urn"]) { if (toupper(args["sgmldecl_features_other_urn"]) != "YES" && toupper(args["sgmldecl_features_other_urn"]) != "NO") usage(concat("'", args["sgmldecl_features_other_urn"], "': invalid option value for sgmldecl_features_other_urn")) args["sgmldecl_features_other_urn"] = toupper(args["sgmldecl_features_other_urn"]) } if ("strict_markdown_pl_compatibility" in args) { if (toupper(args["strict_markdown_pl_compatibility"]) == "YES") args["strict_markdown_pl_compatibility"] = toupper(args["strict_markdown_pl_compatibility"]) else if (toupper(args["strict_markdown_pl_compatibility"]) == "NO") delete args["strict_markdown_pl_compatibility"] else usage(concat("'", args["strict_markdown_pl_compatibility"], "': invalid option value for strict_markdown_pl_compatibility")) } if ("keep_trailing_codeblock_newlines" in args) { if (toupper(args["keep_trailing_codeblock_newlines"]) == "YES") args["keep_trailing_codeblock_newlines"] = toupper(args["keep_trailing_codeblock_newlines"]) else if (toupper(args["keep_trailing_codeblock_newlines"]) == "NO") delete args["keep_trailing_codeblock_newlines"] else usage(concat("'", args["keep_trailing_codeblock_newlines"], "': invalid option value for keep_trailing_codeblock_newlines")) } if ("restrict_parameter_entity_expansion" in args) { if (toupper(args["restrict_parameter_entity_expansion"]) == "YES") args["restrict_parameter_entity_expansion"] = toupper(args["restrict_parameter_entity_expansion"]) else if (toupper(args["restrict_parameter_entity_expansion"]) == "NO") args["restrict_parameter_entity_expansion"] = toupper(args["restrict_parameter_entity_expansion"]) else usage(concat("'", args["restrict_parameter_entity_expansion"], "': invalid option value for restrict_parameter_entity_expansion")) } } function configure_from_arguments(args) { platformerrorhandler1_configure(args) outputhandler1_configure(args) markupencoder1_configure(args) chain1_configure(args) systemspecificentityresolver1_configure(args) platformentitymanager1_configure(args) } function system_stdout_write(s) { stdout_buffer = concat(stdout_buffer, s) } function system_stdout_end() { } function concat(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) { return a b c d e f g h i j k l m n o p q r } function process_cwd( r) { r = "" if (!("PWD" in ENVIRON)) { "sh -c pwd" | getline r if (r == "") { print "fatal: can't determine current working directory" >> "/dev/fd/2" exit(1) } ENVIRON["PWD"] = r } return ENVIRON["PWD"] } function system_print(s) { stdout_buffer = stdout_buffer s "\n" } BEGIN { split("", env) stdout_buffer = "" } function console_debug(msg) { print msg >> "/dev/fd/2" } function console_info(msg) { print msg } function console_error(msg) { print msg >> "/dev/fd/2" } function console_warn(msg) { print msg >> "/dev/fd/2" } function console_trace(msg) { print msg >> "/dev/fd/2" } function console_assert(condition, msg) { if (!(condition)) console_error(msg) } function fs_host_system_type( tmp) { if (("uname" | getline tmp) != 1) { print "error obtaining host system type (" tmp ")" >> "/dev/fd/2" close("uname") exit(1) } close("uname") return tmp } function fs_readFileSync(filename, encoding, line,buf) { if (!encoding) { ERRNO = "runtime exception: unspecified encoding" return } ERRNO = "" if (system("[ -e " filename " ]") != 0) ERRNO = "No such file or directory" else while ((getline line < filename) > 0) buf = buf line "\n" if (ERRNO) { print "'" filename "': " ERRNO >> "/dev/fd/2" exit(1) } close(filename) return buf } function fs_writeFileSync(filename, data) { ERRNO = "" print data > filename if (ERRNO) { print "'" filename "': " ERRNO >> "/dev/fd/2" exit(1) } close(filename) } function fs_existsSync(path) { return system("[ -e " path " ]") == 0 } function fs_mkdirSync(path, mode, rc) { rc = system("mkdir " path) if (rc != 0) { print "'" path "': unable to create directory" >> "/dev/fd/2" exit(rc) } } function fs_rmdirSync(path, rc) { rc = system("rmdir " path) if (rc != 0) { print "'" path "': unable to remove directory" >> "/dev/fd/2" exit(rc) } } function fs_mkdtempSync(prefix_or_template, dirname,random_num,attempts) { dirname = "" random_num = "" if (!match(prefix_or_template, /X+$/)) { RSTART = length(prefix_or_template) + 1 RLENGTH = 6 prefix_or_template = prefix_or_template "XXXXXX" } do { if (attempts > 10) { print "'" prefix_or_template "': failed to create unique temporary directory" >> "/dev/fd/2" exit(2) } random_num = sprintf("%d", rand() * (10 ^ RLENGTH)) dirname = substr(prefix_or_template, 1, RSTART - 1) substr(random_num, 1, RLENGTH) attempts++ } while (fs_existsSync(dirname)) fs_mkdirSync(dirname) return dirname } BEGIN { markupencoder1_output_format = "html" } function markupencoder1_reset() { markupencoder1_output_format = "html" } function markupencoder1_configure(args) { if ("output_format" in args) markupencoder1_output_format = args["output_format"] } function markupencoder1_encode_content(text) { ;(concat("encode_content: (in) text=",text)) if (markupencoder1_output_format == "xml") { gsub(/&/, "\\" "&", text) gsub(//, "\\" ">", text) } else if (markupencoder1_output_format == "html") { gsub(/&/, "\\" "&", text) gsub(//, "\\" ">", text) } ;(concat("encode_content: (out) text=",text)) return text } function markupencoder1_decode_content(text) { ;(concat("decode_content: (in) text=",text)) if (markupencoder1_output_format == "xml") { gsub(/&/, "\\" "&", text) gsub(/</, "<", text) gsub(/>/, ">", text) } else if (markupencoder1_output_format == "html") { gsub(/&/, "\\" "&", text) gsub(/</, "<", text) gsub(/>/, ">", text) } ;(concat("decode_content: (out) text=",text)) return text } function markupencoder1_encode_attribute(text) { return markupencoder1_encode_content(text) } function markupencoder1_decode_attribute(text) { return markupencoder1_decode_content(text) } function markupencoder1_encode_markdown(text) { ;(concat("encode_markdown: text=", text)) gsub(/\*/, "\\" "*", text) gsub(/_/, "\\" "_", text) gsub(/\[/, "\\" "[", text) gsub(/\]/, "\\" "]", text) gsub(/\\/, "\\" "\", text) ;(concat("encode_markdown: return=", text)) return text } function markupencoder1_decode_markdown(text) { ;(concat("decode_markdown: text=", text)) gsub(/*/, "*", text) gsub(/_/, "_", text) gsub(/[/, "[", text) gsub(/]/, "]", text) gsub(/\/, "\\", text) ;(concat("decode_markdown: return=", text)) return text } BEGIN { platformerrorhandler1_suppress_warnings = 0 platformerrorhandler1_suppress_errors = 0 platformerrorhandler1_error_called = "" platformerrorhandler1_system_specific_entity_path = "" platformerrorhandler1_treat_recoverable_as_fatal_errors = "1" } function platformerrorhandler1_configure(args) { if (args["suppress_warnings"]) platformerrorhandler1_suppress_warnings = args["suppress_warnings"] if (args["treat_recoverable_as_fatal_errors"]) platformerrorhandler1_treat_recoverable_as_fatal_errors = args["treat_recoverable_as_fatal_errors"] } function platformerrorhandler1_fatalError(errmsg, systemid, publicid, lineno, colno) { if (lineno == 0) lineno = 1 logger_error(concat("\"", systemid, "\": line ", lineno, ": fatal: ", errmsg)) if (platformerrorhandler1_system_specific_entity_path) { if (ENVIRON["SGMLJS_KEEP_TEMP_SYSTEM_SPECIFIC_ENTITY_DIR"] != "YES") rimraf_rimraf(platformerrorhandler1_system_specific_entity_path) platformerrorhandler1_system_specific_entity_path = "" } platformerrorhandler1_error_called = "1" } function platformerrorhandler1_error(errmsg, systemid, publicid, lineno, colno) { if (platformerrorhandler1_treat_recoverable_as_fatal_errors == "YES") { platformerrorhandler1_fatalError(errmsg, systemid, publicid, lineno, colno) exit(1) } if (lineno == 0) lineno = 1 if (!platformerrorhandler1_suppress_errors) logger_error(concat("\"", systemid, "\": line ", lineno, ": ", errmsg)) platformerrorhandler1_error_called = "1" } function platformerrorhandler1_warning(errmsg, systemid, publicid, lineno, colno) { if (lineno == 0) lineno = 1 if (!platformerrorhandler1_suppress_warnings) logger_warn(concat("\"", systemid, "\": line ", lineno, ": warning: ", errmsg)) } BEGIN { locator1_toplevel_line_number_adjust = 0 } function locator1_reset() { stack1_clear() stack2_clear() stack3_clear() locator1_toplevel_line_number_adjust = 0 } function locator1_set_system_id(sysid) { locator1_reset() stack2_push(sysid) stack3_push(0) } function locator1_set_line_number(lineno) { ; stack3_pop() stack3_push(lineno) } function locator1_set_line_number_adjust(adjust) { if (stack3_len > 1) return locator1_toplevel_line_number_adjust = adjust } function locator1_push_context(ref, system_id) { ; stack1_push(ref) stack2_push(system_id) stack3_push(1) } function locator1_pop_context() { ; stack1_pop() stack2_pop() stack3_pop() } function locator1_set_line_number_at_context(contextno, lineno) { if (contextno > stack3_len) { if (contextno != 1) { print(("set_line_number_at_context: contextno not on stack: contextno=" contextno)) exit(1) } stack3_push(0) } ; stack3_stack[contextno] = lineno } function locator1_get_line_number_at_context(contextno) { ; return stack3_stack[contextno] } function locator1_get_system_id() { if ((stack2_stack[stack2_len] ~ /^ 0) return r return 0 } function locator1_get_adjusted_line_number( r) { r = stack3_stack[stack3_len] if (stack3_len == 1) r = r + locator1_toplevel_line_number_adjust if (r > 0) return r return 0 } function locator1_push_entity_reference(ref) { ; stack1_push(ref) stack2_push(stack2_stack[stack2_len]) stack3_push(stack3_stack[stack3_len]) } function locator1_pop_entity_reference() { ; stack1_pop() stack2_pop() stack3_pop() } function locator1_is_open_entity_reference(ref) { return (stack1_stackindex(ref, 1) <= stack1_len) } function locator1_clear_open_entities() { stack1_clear() } function locator1_get_number_of_open_entities() { return stack1_len } BEGIN { sgmldecl1_syntax_namecase_general = "" sgmldecl1_syntax_namecase_entity = "" sgmldecl1_features_minimize_omittag = "" sgmldecl1_features_minimize_rank = "" sgmldecl1_features_minimize_implydef_doctype = "" sgmldecl1_features_minimize_implydef_element = "" sgmldecl1_features_minimize_implydef_element_anyother = "" sgmldecl1_features_minimize_implydef_attlist = "" sgmldecl1_features_minimize_implydef_entity = "" sgmldecl1_features_minimize_emptynrm = "" sgmldecl1_features_minimize_shorttag_starttag_empty = "" sgmldecl1_features_minimize_shorttag_endtag_empty = "" sgmldecl1_features_minimize_shorttag_starttag_netenabl = "" sgmldecl1_features_minimize_shorttag_attrib_default = "" sgmldecl1_features_minimize_shorttag_attrib_omitname = "" sgmldecl1_features_minimize_shorttag_attrib_values = "" sgmldecl1_features_other_validity = "" sgmldecl1_features_other_keeprsre = "" sgmldecl1_features_other_formal = "" sgmldecl1_features_other_urn = "" sgmldecl1_public_declaration_reference = "" split("", sgmldecl1_added_requirement_public_ids) split("", sgmldecl1_predefined_entity_replacement_text) split("", sgmldecl1_declared_shortref_delimiters) sgmldecl1_declared_shortref_delimiters["&#TAB;"] = "" sgmldecl1_declared_shortref_delimiters["&#RE;"] = "" sgmldecl1_declared_shortref_delimiters["&#RS;"] = "" sgmldecl1_declared_shortref_delimiters["&#RS;B"] = "" sgmldecl1_declared_shortref_delimiters["&#RS;&#RE;"] = "" sgmldecl1_declared_shortref_delimiters["&#RS;B&#RE;"] = "" sgmldecl1_declared_shortref_delimiters["B&#RE;"] = "" sgmldecl1_declared_shortref_delimiters["&#SPACE;"] = "" sgmldecl1_declared_shortref_delimiters["BB"] = "" sgmldecl1_declared_shortref_delimiters["\""] = "" sgmldecl1_declared_shortref_delimiters["#"] = "" sgmldecl1_declared_shortref_delimiters["%"] = "" sgmldecl1_declared_shortref_delimiters["'"] = "" sgmldecl1_declared_shortref_delimiters["("] = "" sgmldecl1_declared_shortref_delimiters[")"] = "" sgmldecl1_declared_shortref_delimiters["*"] = "" sgmldecl1_declared_shortref_delimiters["+"] = "" sgmldecl1_declared_shortref_delimiters[","] = "" sgmldecl1_declared_shortref_delimiters["-"] = "" sgmldecl1_declared_shortref_delimiters["--"] = "" sgmldecl1_declared_shortref_delimiters[":"] = "" sgmldecl1_declared_shortref_delimiters[";"] = "" sgmldecl1_declared_shortref_delimiters["="] = "" sgmldecl1_declared_shortref_delimiters["@"] = "" sgmldecl1_declared_shortref_delimiters["["] = "" sgmldecl1_declared_shortref_delimiters["]"] = "" sgmldecl1_declared_shortref_delimiters["^"] = "" sgmldecl1_declared_shortref_delimiters["_"] = "" sgmldecl1_declared_shortref_delimiters["{"] = "" sgmldecl1_declared_shortref_delimiters["|"] = "" sgmldecl1_declared_shortref_delimiters["}"] = "" sgmldecl1_declared_shortref_delimiters["~"] = "" sgmldecl1_declared_shortref_delimiters["B"] = "" } function sgmldecl1_save_to_arguments(args) { if (sgmldecl1_syntax_namecase_general) args["sgmldecl_syntax_namecase_general"] = sgmldecl1_syntax_namecase_general if (sgmldecl1_syntax_namecase_entity) args["sgmldecl_syntax_namecase_entity"] = sgmldecl1_syntax_namecase_entity if (sgmldecl1_features_minimize_omittag) args["sgmldecl_features_minimize_omittag"] = sgmldecl1_features_minimize_omittag if (sgmldecl1_features_minimize_rank) args["sgmldecl_features_minimize_rank"] = sgmldecl1_features_minimize_rank if (sgmldecl1_features_minimize_implydef_doctype) args["sgmldecl_features_minimize_implydef_doctype"] = sgmldecl1_features_minimize_implydef_doctype if (sgmldecl1_features_minimize_implydef_element) args["sgmldecl_features_minimize_implydef_element"] = sgmldecl1_features_minimize_implydef_element if (sgmldecl1_features_minimize_implydef_element_anyother) args["sgmldecl_features_minimize_implydef_element_anyother"] = sgmldecl1_features_minimize_implydef_element_anyother if (sgmldecl1_features_minimize_implydef_attlist) args["sgmldecl_features_minimize_implydef_attlist"] = sgmldecl1_features_minimize_implydef_attlist if (sgmldecl1_features_minimize_implydef_entity) args["sgmldecl_features_minimize_implydef_entity"] = sgmldecl1_features_minimize_implydef_entity if (sgmldecl1_features_minimize_emptynrm) args["sgmldecl_features_minimize_emptynrm"] = sgmldecl1_features_minimize_emptynrm if (sgmldecl1_features_minimize_shorttag_attrib_default) args["sgmldecl_features_minimize_shorttag_attrib_default"] = sgmldecl1_features_minimize_shorttag_attrib_default if (sgmldecl1_features_minimize_shorttag_attrib_omitname) args["sgmldecl_features_minimize_shorttag_attrib_omitname"] = sgmldecl1_features_minimize_shorttag_attrib_omitname if (sgmldecl1_features_minimize_shorttag_attrib_values) args["sgmldecl_features_minimize_shorttag_attrib_values"] = sgmldecl1_features_minimize_shorttag_attrib_values if (sgmldecl1_features_minimize_shorttag_starttag_empty) args["sgmldecl_features_minimize_shorttag_starttag_empty"] = sgmldecl1_features_minimize_shorttag_starttag_empty if (sgmldecl1_features_minimize_shorttag_endtag_empty) args["sgmldecl_features_minimize_shorttag_endtag_empty"] = sgmldecl1_features_minimize_shorttag_endtag_empty if (sgmldecl1_features_minimize_shorttag_starttag_netenabl) args["sgmldecl_features_minimize_shorttag_starttag_netenabl"] = sgmldecl1_features_minimize_shorttag_starttag_netenabl if (sgmldecl1_features_other_validity) args["sgmldecl_features_other_validity"] = sgmldecl1_features_other_validity if (sgmldecl1_features_other_keeprsre) args["sgmldecl_features_other_keeprsre"] = sgmldecl1_features_other_keeprsre if (sgmldecl1_features_other_formal) args["sgmldecl_features_other_formal"] = sgmldecl1_features_other_formal if (sgmldecl1_features_other_urn) args["sgmldecl_features_other_urn"] = sgmldecl1_features_other_urn if (sgmldecl1_public_declaration_reference) args["sgmldecl_public_declaration_reference"] = sgmldecl1_public_declaration_reference } function sgmldecl1_initialize_from_arguments(args) { if (args["sgmldecl_syntax_namecase_general"]) { ; sgmldecl1_syntax_namecase_general = args["sgmldecl_syntax_namecase_general"] } else { ; } if (args["sgmldecl_syntax_namecase_entity"]) sgmldecl1_syntax_namecase_entity = args["sgmldecl_syntax_namecase_entity"] if (args["sgmldecl_features_minimize_omittag"]) { ; sgmldecl1_features_minimize_omittag = args["sgmldecl_features_minimize_omittag"] } else { ; } if (args["sgmldecl_features_minimize_rank"]) sgmldecl1_features_minimize_rank = args["sgmldecl_features_minimize_rank"] if (args["sgmldecl_features_minimize_implydef_doctype"]) sgmldecl1_features_minimize_implydef_doctype = args["sgmldecl_features_minimize_implydef_doctype"] if (args["sgmldecl_features_minimize_implydef_element"]) sgmldecl1_features_minimize_implydef_element = args["sgmldecl_features_minimize_implydef_element"] if (args["sgmldecl_features_minimize_implydef_element_anyother"]) sgmldecl1_features_minimize_implydef_element_anyother = args["sgmldecl_features_minimize_implydef_element_anyother"] if (args["sgmldecl_features_minimize_implydef_attlist"]) sgmldecl1_features_minimize_implydef_attlist = args["sgmldecl_features_minimize_implydef_attlist"] if (args["sgmldecl_features_minimize_implydef_entity"]) sgmldecl1_features_minimize_implydef_entity = args["sgmldecl_features_minimize_implydef_entity"] if (args["sgmldecl_features_minimize_emptynrm"]) sgmldecl1_features_minimize_emptynrm = args["sgmldecl_features_minimize_emptynrm"] if (args["sgmldecl_features_minimize_shorttag_attrib_omitname"]) sgmldecl1_features_minimize_shorttag_attrib_omitname = args["sgmldecl_features_minimize_shorttag_attrib_omitname"] if (args["sgmldecl_features_minimize_shorttag_starttag_empty"]) sgmldecl1_features_minimize_shorttag_starttag_empty = args["sgmldecl_features_minimize_shorttag_starttag_empty"] if (args["sgmldecl_features_minimize_shorttag_endtag_empty"]) sgmldecl1_features_minimize_shorttag_endtag_empty = args["sgmldecl_features_minimize_shorttag_endtag_empty"] if (args["sgmldecl_features_minimize_shorttag_starttag_netenabl"]) sgmldecl1_features_minimize_shorttag_starttag_netenabl = args["sgmldecl_features_minimize_shorttag_starttag_netenabl"] if (args["sgmldecl_features_other_validity"]) sgmldecl1_features_other_validity = args["sgmldecl_features_other_validity"] if (args["sgmldecl_features_other_formal"]) sgmldecl1_features_other_formal = args["sgmldecl_features_other_formal"] if (args["sgmldecl_features_other_urn"]) sgmldecl1_features_other_urn = args["sgmldecl_features_other_urn"] if (args["sgmldecl_public_declaration_reference"]) sgmldecl1_public_declaration_reference = args["sgmldecl_public_declaration_reference"] } function sgmldecl1_initialize_defaults() { ; if (!sgmldecl1_syntax_namecase_general) sgmldecl1_syntax_namecase_general = "YES" if (!sgmldecl1_syntax_namecase_entity) sgmldecl1_syntax_namecase_entity = "NO" if (!sgmldecl1_features_minimize_omittag) sgmldecl1_features_minimize_omittag = "YES" if (!sgmldecl1_features_minimize_rank) sgmldecl1_features_minimize_rank = "YES" if (!sgmldecl1_features_minimize_implydef_doctype) sgmldecl1_features_minimize_implydef_doctype = "NO" if (!sgmldecl1_features_minimize_implydef_element) sgmldecl1_features_minimize_implydef_element = "YES" if (!sgmldecl1_features_minimize_implydef_attlist) sgmldecl1_features_minimize_implydef_attlist = "YES" if (!sgmldecl1_features_minimize_implydef_entity) sgmldecl1_features_minimize_implydef_entity = "NO" if (!sgmldecl1_features_minimize_emptynrm) sgmldecl1_features_minimize_emptynrm = "YES" if (!sgmldecl1_features_minimize_shorttag_attrib_default) sgmldecl1_features_minimize_shorttag_attrib_default = "YES" if (!sgmldecl1_features_minimize_shorttag_attrib_omitname) sgmldecl1_features_minimize_shorttag_attrib_omitname = "YES" if (!sgmldecl1_features_minimize_shorttag_attrib_values) sgmldecl1_features_minimize_shorttag_attrib_values = "YES" if (!sgmldecl1_features_minimize_shorttag_starttag_empty) sgmldecl1_features_minimize_shorttag_starttag_empty = "NO" if (!sgmldecl1_features_minimize_shorttag_endtag_empty) sgmldecl1_features_minimize_shorttag_endtag_empty = "NO" if (!sgmldecl1_features_minimize_shorttag_starttag_netenabl) sgmldecl1_features_minimize_shorttag_starttag_netenabl = "IMMEDNET" if (!sgmldecl1_features_other_validity) sgmldecl1_features_other_validity = "TYPE" if (!sgmldecl1_features_other_keeprsre) sgmldecl1_features_other_keeprsre = "YES" if (!sgmldecl1_features_other_formal) sgmldecl1_features_other_formal = "YES" if (!sgmldecl1_features_other_urn) sgmldecl1_features_other_urn = "YES" } function sgmldecl1_initialize_for_xml10( v,d) { v = "" d = "" ; if (!sgmldecl1_syntax_namecase_general) sgmldecl1_syntax_namecase_general = "NO" else if (sgmldecl1_syntax_namecase_general != "NO") { platformerrorhandler1_warning("overriding SYNTAX NAMECASE GENERAL implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_syntax_namecase_entity) sgmldecl1_syntax_namecase_entity = "NO" else if (sgmldecl1_syntax_namecase_entity != "NO") { platformerrorhandler1_warning("overriding SYNTAX NAMECASE ENTITY setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_minimize_omittag) sgmldecl1_features_minimize_omittag = "NO" else if (sgmldecl1_features_minimize_omittag != "NO") { platformerrorhandler1_warning("overriding FEATURES MINIMIZE OMITTAG setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_minimize_rank) sgmldecl1_features_minimize_rank = "NO" else if (sgmldecl1_features_minimize_rank != "NO") { platformerrorhandler1_warning("overriding FEATURES MINIMIZE RANK setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_minimize_implydef_doctype) sgmldecl1_features_minimize_implydef_doctype = "NO" else if (sgmldecl1_features_minimize_implydef_doctype != "NO") { platformerrorhandler1_warning("overriding FEATURES MINIMIZE IMPLYDEF DOCTYPE setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_minimize_implydef_element) sgmldecl1_features_minimize_implydef_element = "YES" else if (sgmldecl1_features_minimize_implydef_element != "YES") { platformerrorhandler1_warning("overriding FEATURES MINIMIZE IMPLYDEF ELEMENT setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_minimize_implydef_attlist) sgmldecl1_features_minimize_implydef_attlist = "YES" else if (sgmldecl1_features_minimize_implydef_attlist != "YES") { platformerrorhandler1_warning("overriding FEATURES MINIMIZE IMPLYDEF ATTLIST setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_minimize_implydef_entity) sgmldecl1_features_minimize_implydef_entity = "NO" else if (sgmldecl1_features_minimize_implydef_entity != "NO") { platformerrorhandler1_warning("overriding FEATURES MINIMIZE IMPLYDEF ENTITY setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_minimize_emptynrm) sgmldecl1_features_minimize_emptynrm = "YES" else if (sgmldecl1_features_minimize_emptynrm != "YES") { platformerrorhandler1_warning("overriding FEATURES MINIMIZE EMPTYNRM setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_minimize_shorttag_attrib_omitname) sgmldecl1_features_minimize_shorttag_attrib_omitname = "NO" else if (sgmldecl1_features_minimize_shorttag_attrib_omitname != "NO") { platformerrorhandler1_warning("overriding FEATURES MINIMIZE SHORTTAG ATTRIB OMITNAME setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_minimize_shorttag_attrib_values) sgmldecl1_features_minimize_shorttag_attrib_values = "YES" else if (sgmldecl1_features_minimize_shorttag_attrib_values != "YES") { platformerrorhandler1_warning("overriding FEATURES MINIMIZE SHORTTAG ATTRIB VALUES setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_minimize_shorttag_starttag_empty) sgmldecl1_features_minimize_shorttag_starttag_empty = "NO" else if (sgmldecl1_features_minimize_shorttag_starttag_empty != "NO") { platformerrorhandler1_warning("overriding FEATURES MINIMIZE SHORTTAG STARTTAG EMPTY setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_minimize_shorttag_endtag_empty) sgmldecl1_features_minimize_shorttag_endtag_empty = "NO" if (sgmldecl1_features_minimize_shorttag_endtag_empty != "NO") { platformerrorhandler1_warning("overriding FEATURES MINIMIZE SHORTTAG ENDTAG EMPTY setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_minimize_shorttag_starttag_netenabl) sgmldecl1_features_minimize_shorttag_starttag_netenabl = "IMMEDNET" else if (sgmldecl1_features_minimize_shorttag_starttag_netenabl != "IMMEDNET") { platformerrorhandler1_warning("overriding FEATURES MINIMIZE SHORTTAG STARTTAG NETENABL setting implied by resource name or XML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!sgmldecl1_features_other_validity) sgmldecl1_features_other_validity = "NOASSERT" if (!sgmldecl1_features_other_keeprsre) sgmldecl1_features_other_keeprsre = "YES" sgmldecl1_added_requirement_public_ids["ISO 8879/NOTATION Extensible Markup Language (XML) 1.0//EN"] = "" sgmldecl1_initialize_predefined_entities_for_xml() for (d in sgmldecl1_declared_shortref_delimiters) delete sgmldecl1_declared_shortref_delimiters[d] } function sgmldecl1_initialize_from_decl_or_decl_reference(decl, pubid,sysid,msg,tmp1,tmp2,tmp3) { pubid = "" sysid = "" msg = "" tmp1 = "" tmp2 = "" ; sub(/^[[:space:]]*$/, "", decl) { tmp1 = decl ; while (match(tmp1, /(--([^-]|(-[^-]))*--)/)) { tmp3 = substr(tmp1, 1, RSTART - 1); if ((gsub("\"", "\"", tmp3) % 2) == 0) { tmp1 = (substr(tmp1, 1, RSTART - 1) substr(tmp1, RSTART + RLENGTH)); decl = (substr(decl, 1, RSTART - 1) substr(decl, RSTART + RLENGTH)); } else { tmp2 = sgmlutil_sgml_index3(tmp1, "\"", RSTART); if (!tmp2) { msg = "unbalanced quote in declaration"; break; } tmp1 = (sprintf(concat("%", tmp2 + 1, "s"), "") substr(tmp1, tmp2 + 2)); } } } if (msg) { platformerrorhandler1_fatalError(msg, locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (substr(decl, 1, 1) != "\"") { if (!match(decl, /[^[:space:]]+/)) { platformerrorhandler1_fatalError(concat("'",substr(decl, 1, 10),"': invalid SGML declaration reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } decl = substr(decl, RLENGTH + 1) sub(/^[[:space:]]+/, "", decl) if ((substr(decl, 1, 6) ~ /^[Ss][Yy][Ss][Tt][Ee][Mm]$/)) { decl = substr(decl, 7); sub(/^[ \t\n]+/, "", decl); if (substr(decl, 1, 1) == "%") { decl = (decl); sub(/^[ \t\n]+/, "", decl); } if (decl == "") { ; } else if (substr(decl, 1, 1) == "\"") { decl = substr(decl, 2); if (!index(decl, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(decl, 1, index(decl, "\"") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = substr(decl, index(decl, "\"") + 1); } else if (substr(decl, 1, 1) == "'") { decl = substr(decl, 2); if (!index(decl, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(decl, 1, index(decl, "'") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = substr(decl, index(decl, "'") + 1); } sub(/^[ \t\n]+/, "", decl); } else if ((substr(decl, 1, 6) ~ /^[Pp][Uu][Bb][Ll][Ii][Cc]$/)) { decl = substr(decl, 7); sub(/^[ \t\n]+/, "", decl); if (substr(decl, 1, 1) == "%") { decl = (decl); sub(/^[ \t\n]+/, "", decl); } if (decl == "") { { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': incomplete public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; } else if (substr(decl, 1, 1) == "\"") { decl = substr(decl, 2); if (!index(decl, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unqualified public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; pubid = substr(decl, 1, index(decl, "\"") - 1); decl = substr(decl, index(decl, "\"") + 1); } else if (substr(decl, 1, 1) == "'") { decl = substr(decl, 2); if (!index(decl, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; pubid = substr(decl, 1, index(decl, "'") - 1); decl = substr(decl, index(decl, "'") + 1); } else { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': invalid public identifier specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; if (pubid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sub(/^[ \t\n]+/, "", decl); if (decl != "") { if (substr(decl, 1, 1) == "\"") { decl = substr(decl, 2); if (!index(decl, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(decl, 1, index(decl, "\"") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = substr(decl, index(decl, "\"") + 1); } else if (substr(decl, 1, 1) == "'") { decl = substr(decl, 2); if (!index(decl, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(decl, 1, index(decl, "'") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = substr(decl, index(decl, "'") + 1); } sub(/^[ \t\n]+/, "", decl); } } else { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 10), "...': invalid external identifier specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sysid != "") { platformerrorhandler1_fatalError(concat("'",substr(decl, 1, 10),"': SYSTEM external declaration reference unsupported"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (pubid == "") { platformerrorhandler1_fatalError(concat("'",substr(decl, 1, 10),"': internal error: undefined public external declaration reference identifer"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } pubid = concat("\"",pubid,"\"") if (sgmldecl1_is_markdown_sgmldecl_publicid(pubid)) { sgmldecl1_initialize_for_markdown() sgmldecl1_public_declaration_reference = "+//IDN sgmljs.net//SD Markdown//EN" } else if (sgmldecl1_is_xml_sgmldecl_publicid(pubid)) sgmldecl1_public_declaration_reference = "+//IDN www.w3c.org//SD SGML declaration body for XML//EN" else if (sgmldecl1_is_html_sgmldecl_publicid(pubid)) { sgmldecl1_public_declaration_reference = "+//IDN sgmljs.net//SD SGML declaration body for HTML//EN" sgmldecl1_initialize_for_html() } else { platformerrorhandler1_fatalError(concat("'",pubid,"': unrecognized public external declaration reference identifer"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { { platformerrorhandler1_fatalError("SGML declarations not supported in this build; use SGML declaration reference", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } function sgmldecl1_dump( buf) { buf = ("features_minimize_omittag=" sgmldecl1_features_minimize_omittag) buf = ("features_minimize_rank=" sgmldecl1_features_minimize_rank) buf = concat(buf,"\nfeatures_minimize_implydef_doctype=",sgmldecl1_features_minimize_implydef_doctype) buf = concat(buf,"\nfeatures_minimize_implydef_element=",sgmldecl1_features_minimize_implydef_element) buf = concat(buf,"\nfeatures_minimize_implydef_attlist=",sgmldecl1_features_minimize_implydef_attlist) buf = concat(buf,"\nfeatures_minimize_implydef_entity=",sgmldecl1_features_minimize_implydef_entity) buf = concat(buf,"\nthis.features_minimize_emptynrm=",sgmldecl1_features_minimize_emptynrm) buf = concat(buf,"\nfeatures_minimize_shorttag_attrib_omitname=",sgmldecl1_features_minimize_shorttag_attrib_omitname) buf = concat(buf,"\nfeatures_minimize_shorttag_attrib_values=",sgmldecl1_features_minimize_shorttag_attrib_values) buf = concat(buf,"\nfeatures_minimize_shorttag_starttag_netenabl=",sgmldecl1_features_minimize_shorttag_starttag_netenabl) buf = concat(buf,"\nfeatures_other_validity=",sgmldecl1_features_other_validity) buf = concat(buf,"\nfeatures_other_keeprsre=",sgmldecl1_features_other_keeprsre) return buf } function sgmldecl1_is_supported_xml_decl(decl) { return (decl ~ /^<\?xml([[:space:]]+version[[:space:]]*=[[:space:]]*(('1.0')|("1.0")))?([[:space:]]+encoding[[:space:]]*=[[:space:]]*(('utf-8')|('iso8859-[[:digit:]]')|('UTF-8')|('ISO8859-[[:digit:]]')|("utf-8")|("UTF-8")|("iso8859-[[:digit:]]")|("ISO8859-[[:digit:]]")))?([[:space:]]+standalone[[:space:]]*=[[:space:]]*(('yes')|('no')|("yes")|("no")|('YES')|('NO')|("YES")|("NO")))?[[:space:]]*\?>$/) } function sgmldecl1_is_markdown_sgmldecl_publicid(s) { return (s ~ /^"[[:space:]]*\+\/\/IDN[[:space:]]+sgmljs.net[[:space:]]*\/\/SD[[:space:]]+Markdown[[:space:]]*\/\/[[:space:]]*EN[[:space:]]*"[[:space:]]*$/) } function sgmldecl1_is_xml_sgmldecl_publicid(s) { return (s ~ /^"[[:space:]]*\+\/\/IDN[[:space:]]+www.w3c.org[[:space:]]*\/\/SD[[:space:]]+SGML declaration body for XML[[:space:]]*\/\/[[:space:]]*EN[[:space:]]*"[[:space:]]*$/) } function sgmldecl1_is_html_sgmldecl_publicid(s) { return (s ~ /^"[[:space:]]*\+\/\/IDN[[:space:]]+sgmljs.net[[:space:]]*\/\/SD[[:space:]]+SGML declaration body for HTML[[:space:]]*\/\/[[:space:]]*EN[[:space:]]*"[[:space:]]*$/) } function sgmldecl1_initialize_for_html() { ; if (!sgmldecl1_features_minimize_implydef_element_anyother) sgmldecl1_features_minimize_implydef_element_anyother = "YES" sgmldecl1_initialize_defaults() sgmldecl1_initialize_predefined_entities_for_html() } function sgmldecl1_initialize_for_markdown() { ; sgmldecl1_initialize_for_html() } function sgmldecl1_initialize_for_markdown_fragment() { ; sgmldecl1_initialize_for_html() } function sgmldecl1_initialize_predefined_entities_for_xml() { sgmldecl1_predefined_entity_replacement_text["amp"] = "&" sgmldecl1_predefined_entity_replacement_text["lt"] = "<" sgmldecl1_predefined_entity_replacement_text["gt"] = ">" sgmldecl1_predefined_entity_replacement_text["quot"] = """ } function sgmldecl1_initialize_predefined_entities_for_html() { sgmldecl1_predefined_entity_replacement_text["Aacute"] = "Á" sgmldecl1_predefined_entity_replacement_text["aacute"] = "á" sgmldecl1_predefined_entity_replacement_text["Abreve"] = "Ă" sgmldecl1_predefined_entity_replacement_text["abreve"] = "ă" sgmldecl1_predefined_entity_replacement_text["ac"] = "∾" sgmldecl1_predefined_entity_replacement_text["acd"] = "∿" sgmldecl1_predefined_entity_replacement_text["acE"] = "∾̳" sgmldecl1_predefined_entity_replacement_text["Acirc"] = "Â" sgmldecl1_predefined_entity_replacement_text["acirc"] = "â" sgmldecl1_predefined_entity_replacement_text["acute"] = "´" sgmldecl1_predefined_entity_replacement_text["Acy"] = "А" sgmldecl1_predefined_entity_replacement_text["acy"] = "а" sgmldecl1_predefined_entity_replacement_text["AElig"] = "Æ" sgmldecl1_predefined_entity_replacement_text["aelig"] = "æ" sgmldecl1_predefined_entity_replacement_text["af"] = "⁡" sgmldecl1_predefined_entity_replacement_text["Afr"] = "𝔄" sgmldecl1_predefined_entity_replacement_text["afr"] = "𝔞" sgmldecl1_predefined_entity_replacement_text["Agrave"] = "À" sgmldecl1_predefined_entity_replacement_text["agrave"] = "à" sgmldecl1_predefined_entity_replacement_text["alefsym"] = "ℵ" sgmldecl1_predefined_entity_replacement_text["aleph"] = "ℵ" sgmldecl1_predefined_entity_replacement_text["Alpha"] = "Α" sgmldecl1_predefined_entity_replacement_text["alpha"] = "α" sgmldecl1_predefined_entity_replacement_text["Amacr"] = "Ā" sgmldecl1_predefined_entity_replacement_text["amacr"] = "ā" sgmldecl1_predefined_entity_replacement_text["amalg"] = "⨿" sgmldecl1_predefined_entity_replacement_text["amp"] = "&" sgmldecl1_predefined_entity_replacement_text["AMP"] = "&" sgmldecl1_predefined_entity_replacement_text["andand"] = "⩕" sgmldecl1_predefined_entity_replacement_text["And"] = "⩓" sgmldecl1_predefined_entity_replacement_text["and"] = "∧" sgmldecl1_predefined_entity_replacement_text["andd"] = "⩜" sgmldecl1_predefined_entity_replacement_text["andslope"] = "⩘" sgmldecl1_predefined_entity_replacement_text["andv"] = "⩚" sgmldecl1_predefined_entity_replacement_text["ang"] = "∠" sgmldecl1_predefined_entity_replacement_text["ange"] = "⦤" sgmldecl1_predefined_entity_replacement_text["angle"] = "∠" sgmldecl1_predefined_entity_replacement_text["angmsdaa"] = "⦨" sgmldecl1_predefined_entity_replacement_text["angmsdab"] = "⦩" sgmldecl1_predefined_entity_replacement_text["angmsdac"] = "⦪" sgmldecl1_predefined_entity_replacement_text["angmsdad"] = "⦫" sgmldecl1_predefined_entity_replacement_text["angmsdae"] = "⦬" sgmldecl1_predefined_entity_replacement_text["angmsdaf"] = "⦭" sgmldecl1_predefined_entity_replacement_text["angmsdag"] = "⦮" sgmldecl1_predefined_entity_replacement_text["angmsdah"] = "⦯" sgmldecl1_predefined_entity_replacement_text["angmsd"] = "∡" sgmldecl1_predefined_entity_replacement_text["angrt"] = "∟" sgmldecl1_predefined_entity_replacement_text["angrtvb"] = "⊾" sgmldecl1_predefined_entity_replacement_text["angrtvbd"] = "⦝" sgmldecl1_predefined_entity_replacement_text["angsph"] = "∢" sgmldecl1_predefined_entity_replacement_text["angst"] = "Å" sgmldecl1_predefined_entity_replacement_text["angzarr"] = "⍼" sgmldecl1_predefined_entity_replacement_text["Aogon"] = "Ą" sgmldecl1_predefined_entity_replacement_text["aogon"] = "ą" sgmldecl1_predefined_entity_replacement_text["Aopf"] = "𝔸" sgmldecl1_predefined_entity_replacement_text["aopf"] = "𝕒" sgmldecl1_predefined_entity_replacement_text["apacir"] = "⩯" sgmldecl1_predefined_entity_replacement_text["ap"] = "≈" sgmldecl1_predefined_entity_replacement_text["apE"] = "⩰" sgmldecl1_predefined_entity_replacement_text["ape"] = "≊" sgmldecl1_predefined_entity_replacement_text["apid"] = "≋" sgmldecl1_predefined_entity_replacement_text["apos"] = "'" sgmldecl1_predefined_entity_replacement_text["ApplyFunction"] = "⁡" sgmldecl1_predefined_entity_replacement_text["approx"] = "≈" sgmldecl1_predefined_entity_replacement_text["approxeq"] = "≊" sgmldecl1_predefined_entity_replacement_text["Aring"] = "Å" sgmldecl1_predefined_entity_replacement_text["aring"] = "å" sgmldecl1_predefined_entity_replacement_text["Ascr"] = "𝒜" sgmldecl1_predefined_entity_replacement_text["ascr"] = "𝒶" sgmldecl1_predefined_entity_replacement_text["Assign"] = "≔" sgmldecl1_predefined_entity_replacement_text["ast"] = "*" sgmldecl1_predefined_entity_replacement_text["asymp"] = "≈" sgmldecl1_predefined_entity_replacement_text["asympeq"] = "≍" sgmldecl1_predefined_entity_replacement_text["Atilde"] = "Ã" sgmldecl1_predefined_entity_replacement_text["atilde"] = "ã" sgmldecl1_predefined_entity_replacement_text["Auml"] = "Ä" sgmldecl1_predefined_entity_replacement_text["auml"] = "ä" sgmldecl1_predefined_entity_replacement_text["awconint"] = "∳" sgmldecl1_predefined_entity_replacement_text["awint"] = "⨑" sgmldecl1_predefined_entity_replacement_text["backcong"] = "≌" sgmldecl1_predefined_entity_replacement_text["backepsilon"] = "϶" sgmldecl1_predefined_entity_replacement_text["backprime"] = "‵" sgmldecl1_predefined_entity_replacement_text["backsim"] = "∽" sgmldecl1_predefined_entity_replacement_text["backsimeq"] = "⋍" sgmldecl1_predefined_entity_replacement_text["Backslash"] = "∖" sgmldecl1_predefined_entity_replacement_text["Barv"] = "⫧" sgmldecl1_predefined_entity_replacement_text["barvee"] = "⊽" sgmldecl1_predefined_entity_replacement_text["barwed"] = "⌅" sgmldecl1_predefined_entity_replacement_text["Barwed"] = "⌆" sgmldecl1_predefined_entity_replacement_text["barwedge"] = "⌅" sgmldecl1_predefined_entity_replacement_text["bbrk"] = "⎵" sgmldecl1_predefined_entity_replacement_text["bbrktbrk"] = "⎶" sgmldecl1_predefined_entity_replacement_text["bcong"] = "≌" sgmldecl1_predefined_entity_replacement_text["Bcy"] = "Б" sgmldecl1_predefined_entity_replacement_text["bcy"] = "б" sgmldecl1_predefined_entity_replacement_text["bdquo"] = "„" sgmldecl1_predefined_entity_replacement_text["becaus"] = "∵" sgmldecl1_predefined_entity_replacement_text["because"] = "∵" sgmldecl1_predefined_entity_replacement_text["Because"] = "∵" sgmldecl1_predefined_entity_replacement_text["bemptyv"] = "⦰" sgmldecl1_predefined_entity_replacement_text["bepsi"] = "϶" sgmldecl1_predefined_entity_replacement_text["bernou"] = "ℬ" sgmldecl1_predefined_entity_replacement_text["Bernoullis"] = "ℬ" sgmldecl1_predefined_entity_replacement_text["Beta"] = "Β" sgmldecl1_predefined_entity_replacement_text["beta"] = "β" sgmldecl1_predefined_entity_replacement_text["beth"] = "ℶ" sgmldecl1_predefined_entity_replacement_text["between"] = "≬" sgmldecl1_predefined_entity_replacement_text["Bfr"] = "𝔅" sgmldecl1_predefined_entity_replacement_text["bfr"] = "𝔟" sgmldecl1_predefined_entity_replacement_text["bigcap"] = "⋂" sgmldecl1_predefined_entity_replacement_text["bigcirc"] = "◯" sgmldecl1_predefined_entity_replacement_text["bigcup"] = "⋃" sgmldecl1_predefined_entity_replacement_text["bigodot"] = "⨀" sgmldecl1_predefined_entity_replacement_text["bigoplus"] = "⨁" sgmldecl1_predefined_entity_replacement_text["bigotimes"] = "⨂" sgmldecl1_predefined_entity_replacement_text["bigsqcup"] = "⨆" sgmldecl1_predefined_entity_replacement_text["bigstar"] = "★" sgmldecl1_predefined_entity_replacement_text["bigtriangledown"] = "▽" sgmldecl1_predefined_entity_replacement_text["bigtriangleup"] = "△" sgmldecl1_predefined_entity_replacement_text["biguplus"] = "⨄" sgmldecl1_predefined_entity_replacement_text["bigvee"] = "⋁" sgmldecl1_predefined_entity_replacement_text["bigwedge"] = "⋀" sgmldecl1_predefined_entity_replacement_text["bkarow"] = "⤍" sgmldecl1_predefined_entity_replacement_text["blacklozenge"] = "⧫" sgmldecl1_predefined_entity_replacement_text["blacksquare"] = "▪" sgmldecl1_predefined_entity_replacement_text["blacktriangle"] = "▴" sgmldecl1_predefined_entity_replacement_text["blacktriangledown"] = "▾" sgmldecl1_predefined_entity_replacement_text["blacktriangleleft"] = "◂" sgmldecl1_predefined_entity_replacement_text["blacktriangleright"] = "▸" sgmldecl1_predefined_entity_replacement_text["blank"] = "␣" sgmldecl1_predefined_entity_replacement_text["blk12"] = "▒" sgmldecl1_predefined_entity_replacement_text["blk14"] = "░" sgmldecl1_predefined_entity_replacement_text["blk34"] = "▓" sgmldecl1_predefined_entity_replacement_text["block"] = "█" sgmldecl1_predefined_entity_replacement_text["bne"] = "=⃥" sgmldecl1_predefined_entity_replacement_text["bnequiv"] = "≡⃥" sgmldecl1_predefined_entity_replacement_text["bNot"] = "⫭" sgmldecl1_predefined_entity_replacement_text["bnot"] = "⌐" sgmldecl1_predefined_entity_replacement_text["Bopf"] = "𝔹" sgmldecl1_predefined_entity_replacement_text["bopf"] = "𝕓" sgmldecl1_predefined_entity_replacement_text["bot"] = "⊥" sgmldecl1_predefined_entity_replacement_text["bottom"] = "⊥" sgmldecl1_predefined_entity_replacement_text["bowtie"] = "⋈" sgmldecl1_predefined_entity_replacement_text["boxbox"] = "⧉" sgmldecl1_predefined_entity_replacement_text["boxdl"] = "┐" sgmldecl1_predefined_entity_replacement_text["boxdL"] = "╕" sgmldecl1_predefined_entity_replacement_text["boxDl"] = "╖" sgmldecl1_predefined_entity_replacement_text["boxDL"] = "╗" sgmldecl1_predefined_entity_replacement_text["boxdr"] = "┌" sgmldecl1_predefined_entity_replacement_text["boxdR"] = "╒" sgmldecl1_predefined_entity_replacement_text["boxDr"] = "╓" sgmldecl1_predefined_entity_replacement_text["boxDR"] = "╔" sgmldecl1_predefined_entity_replacement_text["boxh"] = "─" sgmldecl1_predefined_entity_replacement_text["boxH"] = "═" sgmldecl1_predefined_entity_replacement_text["boxhd"] = "┬" sgmldecl1_predefined_entity_replacement_text["boxHd"] = "╤" sgmldecl1_predefined_entity_replacement_text["boxhD"] = "╥" sgmldecl1_predefined_entity_replacement_text["boxHD"] = "╦" sgmldecl1_predefined_entity_replacement_text["boxhu"] = "┴" sgmldecl1_predefined_entity_replacement_text["boxHu"] = "╧" sgmldecl1_predefined_entity_replacement_text["boxhU"] = "╨" sgmldecl1_predefined_entity_replacement_text["boxHU"] = "╩" sgmldecl1_predefined_entity_replacement_text["boxminus"] = "⊟" sgmldecl1_predefined_entity_replacement_text["boxplus"] = "⊞" sgmldecl1_predefined_entity_replacement_text["boxtimes"] = "⊠" sgmldecl1_predefined_entity_replacement_text["boxul"] = "┘" sgmldecl1_predefined_entity_replacement_text["boxuL"] = "╛" sgmldecl1_predefined_entity_replacement_text["boxUl"] = "╜" sgmldecl1_predefined_entity_replacement_text["boxUL"] = "╝" sgmldecl1_predefined_entity_replacement_text["boxur"] = "└" sgmldecl1_predefined_entity_replacement_text["boxuR"] = "╘" sgmldecl1_predefined_entity_replacement_text["boxUr"] = "╙" sgmldecl1_predefined_entity_replacement_text["boxUR"] = "╚" sgmldecl1_predefined_entity_replacement_text["boxv"] = "│" sgmldecl1_predefined_entity_replacement_text["boxV"] = "║" sgmldecl1_predefined_entity_replacement_text["boxvh"] = "┼" sgmldecl1_predefined_entity_replacement_text["boxvH"] = "╪" sgmldecl1_predefined_entity_replacement_text["boxVh"] = "╫" sgmldecl1_predefined_entity_replacement_text["boxVH"] = "╬" sgmldecl1_predefined_entity_replacement_text["boxvl"] = "┤" sgmldecl1_predefined_entity_replacement_text["boxvL"] = "╡" sgmldecl1_predefined_entity_replacement_text["boxVl"] = "╢" sgmldecl1_predefined_entity_replacement_text["boxVL"] = "╣" sgmldecl1_predefined_entity_replacement_text["boxvr"] = "├" sgmldecl1_predefined_entity_replacement_text["boxvR"] = "╞" sgmldecl1_predefined_entity_replacement_text["boxVr"] = "╟" sgmldecl1_predefined_entity_replacement_text["boxVR"] = "╠" sgmldecl1_predefined_entity_replacement_text["bprime"] = "‵" sgmldecl1_predefined_entity_replacement_text["breve"] = "˘" sgmldecl1_predefined_entity_replacement_text["Breve"] = "˘" sgmldecl1_predefined_entity_replacement_text["brvbar"] = "¦" sgmldecl1_predefined_entity_replacement_text["bscr"] = "𝒷" sgmldecl1_predefined_entity_replacement_text["Bscr"] = "ℬ" sgmldecl1_predefined_entity_replacement_text["bsemi"] = "⁏" sgmldecl1_predefined_entity_replacement_text["bsim"] = "∽" sgmldecl1_predefined_entity_replacement_text["bsime"] = "⋍" sgmldecl1_predefined_entity_replacement_text["bsolb"] = "⧅" sgmldecl1_predefined_entity_replacement_text["bsol"] = "\" sgmldecl1_predefined_entity_replacement_text["bsolhsub"] = "⟈" sgmldecl1_predefined_entity_replacement_text["bull"] = "•" sgmldecl1_predefined_entity_replacement_text["bullet"] = "•" sgmldecl1_predefined_entity_replacement_text["bump"] = "≎" sgmldecl1_predefined_entity_replacement_text["bumpE"] = "⪮" sgmldecl1_predefined_entity_replacement_text["bumpe"] = "≏" sgmldecl1_predefined_entity_replacement_text["Bumpeq"] = "≎" sgmldecl1_predefined_entity_replacement_text["bumpeq"] = "≏" sgmldecl1_predefined_entity_replacement_text["Cacute"] = "Ć" sgmldecl1_predefined_entity_replacement_text["cacute"] = "ć" sgmldecl1_predefined_entity_replacement_text["capand"] = "⩄" sgmldecl1_predefined_entity_replacement_text["capbrcup"] = "⩉" sgmldecl1_predefined_entity_replacement_text["capcap"] = "⩋" sgmldecl1_predefined_entity_replacement_text["cap"] = "∩" sgmldecl1_predefined_entity_replacement_text["Cap"] = "⋒" sgmldecl1_predefined_entity_replacement_text["capcup"] = "⩇" sgmldecl1_predefined_entity_replacement_text["capdot"] = "⩀" sgmldecl1_predefined_entity_replacement_text["CapitalDifferentialD"] = "ⅅ" sgmldecl1_predefined_entity_replacement_text["caps"] = "∩︀" sgmldecl1_predefined_entity_replacement_text["caret"] = "⁁" sgmldecl1_predefined_entity_replacement_text["caron"] = "ˇ" sgmldecl1_predefined_entity_replacement_text["Cayleys"] = "ℭ" sgmldecl1_predefined_entity_replacement_text["ccaps"] = "⩍" sgmldecl1_predefined_entity_replacement_text["Ccaron"] = "Č" sgmldecl1_predefined_entity_replacement_text["ccaron"] = "č" sgmldecl1_predefined_entity_replacement_text["Ccedil"] = "Ç" sgmldecl1_predefined_entity_replacement_text["ccedil"] = "ç" sgmldecl1_predefined_entity_replacement_text["Ccirc"] = "Ĉ" sgmldecl1_predefined_entity_replacement_text["ccirc"] = "ĉ" sgmldecl1_predefined_entity_replacement_text["Cconint"] = "∰" sgmldecl1_predefined_entity_replacement_text["ccups"] = "⩌" sgmldecl1_predefined_entity_replacement_text["ccupssm"] = "⩐" sgmldecl1_predefined_entity_replacement_text["Cdot"] = "Ċ" sgmldecl1_predefined_entity_replacement_text["cdot"] = "ċ" sgmldecl1_predefined_entity_replacement_text["cedil"] = "¸" sgmldecl1_predefined_entity_replacement_text["Cedilla"] = "¸" sgmldecl1_predefined_entity_replacement_text["cemptyv"] = "⦲" sgmldecl1_predefined_entity_replacement_text["cent"] = "¢" sgmldecl1_predefined_entity_replacement_text["centerdot"] = "·" sgmldecl1_predefined_entity_replacement_text["CenterDot"] = "·" sgmldecl1_predefined_entity_replacement_text["cfr"] = "𝔠" sgmldecl1_predefined_entity_replacement_text["Cfr"] = "ℭ" sgmldecl1_predefined_entity_replacement_text["CHcy"] = "Ч" sgmldecl1_predefined_entity_replacement_text["chcy"] = "ч" sgmldecl1_predefined_entity_replacement_text["check"] = "✓" sgmldecl1_predefined_entity_replacement_text["checkmark"] = "✓" sgmldecl1_predefined_entity_replacement_text["Chi"] = "Χ" sgmldecl1_predefined_entity_replacement_text["chi"] = "χ" sgmldecl1_predefined_entity_replacement_text["circ"] = "ˆ" sgmldecl1_predefined_entity_replacement_text["circeq"] = "≗" sgmldecl1_predefined_entity_replacement_text["circlearrowleft"] = "↺" sgmldecl1_predefined_entity_replacement_text["circlearrowright"] = "↻" sgmldecl1_predefined_entity_replacement_text["circledast"] = "⊛" sgmldecl1_predefined_entity_replacement_text["circledcirc"] = "⊚" sgmldecl1_predefined_entity_replacement_text["circleddash"] = "⊝" sgmldecl1_predefined_entity_replacement_text["CircleDot"] = "⊙" sgmldecl1_predefined_entity_replacement_text["circledR"] = "®" sgmldecl1_predefined_entity_replacement_text["circledS"] = "Ⓢ" sgmldecl1_predefined_entity_replacement_text["CircleMinus"] = "⊖" sgmldecl1_predefined_entity_replacement_text["CirclePlus"] = "⊕" sgmldecl1_predefined_entity_replacement_text["CircleTimes"] = "⊗" sgmldecl1_predefined_entity_replacement_text["cir"] = "○" sgmldecl1_predefined_entity_replacement_text["cirE"] = "⧃" sgmldecl1_predefined_entity_replacement_text["cire"] = "≗" sgmldecl1_predefined_entity_replacement_text["cirfnint"] = "⨐" sgmldecl1_predefined_entity_replacement_text["cirmid"] = "⫯" sgmldecl1_predefined_entity_replacement_text["cirscir"] = "⧂" sgmldecl1_predefined_entity_replacement_text["ClockwiseContourIntegral"] = "∲" sgmldecl1_predefined_entity_replacement_text["CloseCurlyDoubleQuote"] = "”" sgmldecl1_predefined_entity_replacement_text["CloseCurlyQuote"] = "’" sgmldecl1_predefined_entity_replacement_text["clubs"] = "♣" sgmldecl1_predefined_entity_replacement_text["clubsuit"] = "♣" sgmldecl1_predefined_entity_replacement_text["colon"] = ":" sgmldecl1_predefined_entity_replacement_text["Colon"] = "∷" sgmldecl1_predefined_entity_replacement_text["Colone"] = "⩴" sgmldecl1_predefined_entity_replacement_text["colone"] = "≔" sgmldecl1_predefined_entity_replacement_text["coloneq"] = "≔" sgmldecl1_predefined_entity_replacement_text["comma"] = "," sgmldecl1_predefined_entity_replacement_text["commat"] = "@" sgmldecl1_predefined_entity_replacement_text["comp"] = "∁" sgmldecl1_predefined_entity_replacement_text["compfn"] = "∘" sgmldecl1_predefined_entity_replacement_text["complement"] = "∁" sgmldecl1_predefined_entity_replacement_text["complexes"] = "ℂ" sgmldecl1_predefined_entity_replacement_text["cong"] = "≅" sgmldecl1_predefined_entity_replacement_text["congdot"] = "⩭" sgmldecl1_predefined_entity_replacement_text["Congruent"] = "≡" sgmldecl1_predefined_entity_replacement_text["conint"] = "∮" sgmldecl1_predefined_entity_replacement_text["Conint"] = "∯" sgmldecl1_predefined_entity_replacement_text["ContourIntegral"] = "∮" sgmldecl1_predefined_entity_replacement_text["copf"] = "𝕔" sgmldecl1_predefined_entity_replacement_text["Copf"] = "ℂ" sgmldecl1_predefined_entity_replacement_text["coprod"] = "∐" sgmldecl1_predefined_entity_replacement_text["Coproduct"] = "∐" sgmldecl1_predefined_entity_replacement_text["copy"] = "©" sgmldecl1_predefined_entity_replacement_text["COPY"] = "©" sgmldecl1_predefined_entity_replacement_text["copysr"] = "℗" sgmldecl1_predefined_entity_replacement_text["CounterClockwiseContourIntegral"] = "∳" sgmldecl1_predefined_entity_replacement_text["crarr"] = "↵" sgmldecl1_predefined_entity_replacement_text["cross"] = "✗" sgmldecl1_predefined_entity_replacement_text["Cross"] = "⨯" sgmldecl1_predefined_entity_replacement_text["Cscr"] = "𝒞" sgmldecl1_predefined_entity_replacement_text["cscr"] = "𝒸" sgmldecl1_predefined_entity_replacement_text["csub"] = "⫏" sgmldecl1_predefined_entity_replacement_text["csube"] = "⫑" sgmldecl1_predefined_entity_replacement_text["csup"] = "⫐" sgmldecl1_predefined_entity_replacement_text["csupe"] = "⫒" sgmldecl1_predefined_entity_replacement_text["ctdot"] = "⋯" sgmldecl1_predefined_entity_replacement_text["cudarrl"] = "⤸" sgmldecl1_predefined_entity_replacement_text["cudarrr"] = "⤵" sgmldecl1_predefined_entity_replacement_text["cuepr"] = "⋞" sgmldecl1_predefined_entity_replacement_text["cuesc"] = "⋟" sgmldecl1_predefined_entity_replacement_text["cularr"] = "↶" sgmldecl1_predefined_entity_replacement_text["cularrp"] = "⤽" sgmldecl1_predefined_entity_replacement_text["cupbrcap"] = "⩈" sgmldecl1_predefined_entity_replacement_text["cupcap"] = "⩆" sgmldecl1_predefined_entity_replacement_text["CupCap"] = "≍" sgmldecl1_predefined_entity_replacement_text["cup"] = "∪" sgmldecl1_predefined_entity_replacement_text["Cup"] = "⋓" sgmldecl1_predefined_entity_replacement_text["cupcup"] = "⩊" sgmldecl1_predefined_entity_replacement_text["cupdot"] = "⊍" sgmldecl1_predefined_entity_replacement_text["cupor"] = "⩅" sgmldecl1_predefined_entity_replacement_text["cups"] = "∪︀" sgmldecl1_predefined_entity_replacement_text["curarr"] = "↷" sgmldecl1_predefined_entity_replacement_text["curarrm"] = "⤼" sgmldecl1_predefined_entity_replacement_text["curlyeqprec"] = "⋞" sgmldecl1_predefined_entity_replacement_text["curlyeqsucc"] = "⋟" sgmldecl1_predefined_entity_replacement_text["curlyvee"] = "⋎" sgmldecl1_predefined_entity_replacement_text["curlywedge"] = "⋏" sgmldecl1_predefined_entity_replacement_text["curren"] = "¤" sgmldecl1_predefined_entity_replacement_text["curvearrowleft"] = "↶" sgmldecl1_predefined_entity_replacement_text["curvearrowright"] = "↷" sgmldecl1_predefined_entity_replacement_text["cuvee"] = "⋎" sgmldecl1_predefined_entity_replacement_text["cuwed"] = "⋏" sgmldecl1_predefined_entity_replacement_text["cwconint"] = "∲" sgmldecl1_predefined_entity_replacement_text["cwint"] = "∱" sgmldecl1_predefined_entity_replacement_text["cylcty"] = "⌭" sgmldecl1_predefined_entity_replacement_text["dagger"] = "†" sgmldecl1_predefined_entity_replacement_text["Dagger"] = "‡" sgmldecl1_predefined_entity_replacement_text["daleth"] = "ℸ" sgmldecl1_predefined_entity_replacement_text["darr"] = "↓" sgmldecl1_predefined_entity_replacement_text["Darr"] = "↡" sgmldecl1_predefined_entity_replacement_text["dArr"] = "⇓" sgmldecl1_predefined_entity_replacement_text["dash"] = "‐" sgmldecl1_predefined_entity_replacement_text["Dashv"] = "⫤" sgmldecl1_predefined_entity_replacement_text["dashv"] = "⊣" sgmldecl1_predefined_entity_replacement_text["dbkarow"] = "⤏" sgmldecl1_predefined_entity_replacement_text["dblac"] = "˝" sgmldecl1_predefined_entity_replacement_text["Dcaron"] = "Ď" sgmldecl1_predefined_entity_replacement_text["dcaron"] = "ď" sgmldecl1_predefined_entity_replacement_text["Dcy"] = "Д" sgmldecl1_predefined_entity_replacement_text["dcy"] = "д" sgmldecl1_predefined_entity_replacement_text["ddagger"] = "‡" sgmldecl1_predefined_entity_replacement_text["ddarr"] = "⇊" sgmldecl1_predefined_entity_replacement_text["DD"] = "ⅅ" sgmldecl1_predefined_entity_replacement_text["dd"] = "ⅆ" sgmldecl1_predefined_entity_replacement_text["DDotrahd"] = "⤑" sgmldecl1_predefined_entity_replacement_text["ddotseq"] = "⩷" sgmldecl1_predefined_entity_replacement_text["deg"] = "°" sgmldecl1_predefined_entity_replacement_text["Del"] = "∇" sgmldecl1_predefined_entity_replacement_text["Delta"] = "Δ" sgmldecl1_predefined_entity_replacement_text["delta"] = "δ" sgmldecl1_predefined_entity_replacement_text["demptyv"] = "⦱" sgmldecl1_predefined_entity_replacement_text["dfisht"] = "⥿" sgmldecl1_predefined_entity_replacement_text["Dfr"] = "𝔇" sgmldecl1_predefined_entity_replacement_text["dfr"] = "𝔡" sgmldecl1_predefined_entity_replacement_text["dHar"] = "⥥" sgmldecl1_predefined_entity_replacement_text["dharl"] = "⇃" sgmldecl1_predefined_entity_replacement_text["dharr"] = "⇂" sgmldecl1_predefined_entity_replacement_text["DiacriticalAcute"] = "´" sgmldecl1_predefined_entity_replacement_text["DiacriticalDot"] = "˙" sgmldecl1_predefined_entity_replacement_text["DiacriticalDoubleAcute"] = "˝" sgmldecl1_predefined_entity_replacement_text["DiacriticalGrave"] = "`" sgmldecl1_predefined_entity_replacement_text["DiacriticalTilde"] = "˜" sgmldecl1_predefined_entity_replacement_text["diam"] = "⋄" sgmldecl1_predefined_entity_replacement_text["diamond"] = "⋄" sgmldecl1_predefined_entity_replacement_text["Diamond"] = "⋄" sgmldecl1_predefined_entity_replacement_text["diamondsuit"] = "♦" sgmldecl1_predefined_entity_replacement_text["diams"] = "♦" sgmldecl1_predefined_entity_replacement_text["die"] = "¨" sgmldecl1_predefined_entity_replacement_text["DifferentialD"] = "ⅆ" sgmldecl1_predefined_entity_replacement_text["digamma"] = "ϝ" sgmldecl1_predefined_entity_replacement_text["disin"] = "⋲" sgmldecl1_predefined_entity_replacement_text["div"] = "÷" sgmldecl1_predefined_entity_replacement_text["divide"] = "÷" sgmldecl1_predefined_entity_replacement_text["divideontimes"] = "⋇" sgmldecl1_predefined_entity_replacement_text["divonx"] = "⋇" sgmldecl1_predefined_entity_replacement_text["DJcy"] = "Ђ" sgmldecl1_predefined_entity_replacement_text["djcy"] = "ђ" sgmldecl1_predefined_entity_replacement_text["dlcorn"] = "⌞" sgmldecl1_predefined_entity_replacement_text["dlcrop"] = "⌍" sgmldecl1_predefined_entity_replacement_text["dollar"] = "$" sgmldecl1_predefined_entity_replacement_text["Dopf"] = "𝔻" sgmldecl1_predefined_entity_replacement_text["dopf"] = "𝕕" sgmldecl1_predefined_entity_replacement_text["Dot"] = "¨" sgmldecl1_predefined_entity_replacement_text["dot"] = "˙" sgmldecl1_predefined_entity_replacement_text["DotDot"] = "⃜" sgmldecl1_predefined_entity_replacement_text["doteq"] = "≐" sgmldecl1_predefined_entity_replacement_text["doteqdot"] = "≑" sgmldecl1_predefined_entity_replacement_text["DotEqual"] = "≐" sgmldecl1_predefined_entity_replacement_text["dotminus"] = "∸" sgmldecl1_predefined_entity_replacement_text["dotplus"] = "∔" sgmldecl1_predefined_entity_replacement_text["dotsquare"] = "⊡" sgmldecl1_predefined_entity_replacement_text["doublebarwedge"] = "⌆" sgmldecl1_predefined_entity_replacement_text["DoubleContourIntegral"] = "∯" sgmldecl1_predefined_entity_replacement_text["DoubleDot"] = "¨" sgmldecl1_predefined_entity_replacement_text["DoubleDownArrow"] = "⇓" sgmldecl1_predefined_entity_replacement_text["DoubleLeftArrow"] = "⇐" sgmldecl1_predefined_entity_replacement_text["DoubleLeftRightArrow"] = "⇔" sgmldecl1_predefined_entity_replacement_text["DoubleLeftTee"] = "⫤" sgmldecl1_predefined_entity_replacement_text["DoubleLongLeftArrow"] = "⟸" sgmldecl1_predefined_entity_replacement_text["DoubleLongLeftRightArrow"] = "⟺" sgmldecl1_predefined_entity_replacement_text["DoubleLongRightArrow"] = "⟹" sgmldecl1_predefined_entity_replacement_text["DoubleRightArrow"] = "⇒" sgmldecl1_predefined_entity_replacement_text["DoubleRightTee"] = "⊨" sgmldecl1_predefined_entity_replacement_text["DoubleUpArrow"] = "⇑" sgmldecl1_predefined_entity_replacement_text["DoubleUpDownArrow"] = "⇕" sgmldecl1_predefined_entity_replacement_text["DoubleVerticalBar"] = "∥" sgmldecl1_predefined_entity_replacement_text["DownArrowBar"] = "⤓" sgmldecl1_predefined_entity_replacement_text["downarrow"] = "↓" sgmldecl1_predefined_entity_replacement_text["DownArrow"] = "↓" sgmldecl1_predefined_entity_replacement_text["Downarrow"] = "⇓" sgmldecl1_predefined_entity_replacement_text["DownArrowUpArrow"] = "⇵" sgmldecl1_predefined_entity_replacement_text["DownBreve"] = "̑" sgmldecl1_predefined_entity_replacement_text["downdownarrows"] = "⇊" sgmldecl1_predefined_entity_replacement_text["downharpoonleft"] = "⇃" sgmldecl1_predefined_entity_replacement_text["downharpoonright"] = "⇂" sgmldecl1_predefined_entity_replacement_text["DownLeftRightVector"] = "⥐" sgmldecl1_predefined_entity_replacement_text["DownLeftTeeVector"] = "⥞" sgmldecl1_predefined_entity_replacement_text["DownLeftVectorBar"] = "⥖" sgmldecl1_predefined_entity_replacement_text["DownLeftVector"] = "↽" sgmldecl1_predefined_entity_replacement_text["DownRightTeeVector"] = "⥟" sgmldecl1_predefined_entity_replacement_text["DownRightVectorBar"] = "⥗" sgmldecl1_predefined_entity_replacement_text["DownRightVector"] = "⇁" sgmldecl1_predefined_entity_replacement_text["DownTeeArrow"] = "↧" sgmldecl1_predefined_entity_replacement_text["DownTee"] = "⊤" sgmldecl1_predefined_entity_replacement_text["drbkarow"] = "⤐" sgmldecl1_predefined_entity_replacement_text["drcorn"] = "⌟" sgmldecl1_predefined_entity_replacement_text["drcrop"] = "⌌" sgmldecl1_predefined_entity_replacement_text["Dscr"] = "𝒟" sgmldecl1_predefined_entity_replacement_text["dscr"] = "𝒹" sgmldecl1_predefined_entity_replacement_text["DScy"] = "Ѕ" sgmldecl1_predefined_entity_replacement_text["dscy"] = "ѕ" sgmldecl1_predefined_entity_replacement_text["dsol"] = "⧶" sgmldecl1_predefined_entity_replacement_text["Dstrok"] = "Đ" sgmldecl1_predefined_entity_replacement_text["dstrok"] = "đ" sgmldecl1_predefined_entity_replacement_text["dtdot"] = "⋱" sgmldecl1_predefined_entity_replacement_text["dtri"] = "▿" sgmldecl1_predefined_entity_replacement_text["dtrif"] = "▾" sgmldecl1_predefined_entity_replacement_text["duarr"] = "⇵" sgmldecl1_predefined_entity_replacement_text["duhar"] = "⥯" sgmldecl1_predefined_entity_replacement_text["dwangle"] = "⦦" sgmldecl1_predefined_entity_replacement_text["DZcy"] = "Џ" sgmldecl1_predefined_entity_replacement_text["dzcy"] = "џ" sgmldecl1_predefined_entity_replacement_text["dzigrarr"] = "⟿" sgmldecl1_predefined_entity_replacement_text["Eacute"] = "É" sgmldecl1_predefined_entity_replacement_text["eacute"] = "é" sgmldecl1_predefined_entity_replacement_text["easter"] = "⩮" sgmldecl1_predefined_entity_replacement_text["Ecaron"] = "Ě" sgmldecl1_predefined_entity_replacement_text["ecaron"] = "ě" sgmldecl1_predefined_entity_replacement_text["Ecirc"] = "Ê" sgmldecl1_predefined_entity_replacement_text["ecirc"] = "ê" sgmldecl1_predefined_entity_replacement_text["ecir"] = "≖" sgmldecl1_predefined_entity_replacement_text["ecolon"] = "≕" sgmldecl1_predefined_entity_replacement_text["Ecy"] = "Э" sgmldecl1_predefined_entity_replacement_text["ecy"] = "э" sgmldecl1_predefined_entity_replacement_text["eDDot"] = "⩷" sgmldecl1_predefined_entity_replacement_text["Edot"] = "Ė" sgmldecl1_predefined_entity_replacement_text["edot"] = "ė" sgmldecl1_predefined_entity_replacement_text["eDot"] = "≑" sgmldecl1_predefined_entity_replacement_text["ee"] = "ⅇ" sgmldecl1_predefined_entity_replacement_text["efDot"] = "≒" sgmldecl1_predefined_entity_replacement_text["Efr"] = "𝔈" sgmldecl1_predefined_entity_replacement_text["efr"] = "𝔢" sgmldecl1_predefined_entity_replacement_text["eg"] = "⪚" sgmldecl1_predefined_entity_replacement_text["Egrave"] = "È" sgmldecl1_predefined_entity_replacement_text["egrave"] = "è" sgmldecl1_predefined_entity_replacement_text["egs"] = "⪖" sgmldecl1_predefined_entity_replacement_text["egsdot"] = "⪘" sgmldecl1_predefined_entity_replacement_text["el"] = "⪙" sgmldecl1_predefined_entity_replacement_text["Element"] = "∈" sgmldecl1_predefined_entity_replacement_text["elinters"] = "⏧" sgmldecl1_predefined_entity_replacement_text["ell"] = "ℓ" sgmldecl1_predefined_entity_replacement_text["els"] = "⪕" sgmldecl1_predefined_entity_replacement_text["elsdot"] = "⪗" sgmldecl1_predefined_entity_replacement_text["Emacr"] = "Ē" sgmldecl1_predefined_entity_replacement_text["emacr"] = "ē" sgmldecl1_predefined_entity_replacement_text["empty"] = "∅" sgmldecl1_predefined_entity_replacement_text["emptyset"] = "∅" sgmldecl1_predefined_entity_replacement_text["EmptySmallSquare"] = "◻" sgmldecl1_predefined_entity_replacement_text["emptyv"] = "∅" sgmldecl1_predefined_entity_replacement_text["EmptyVerySmallSquare"] = "▫" sgmldecl1_predefined_entity_replacement_text["emsp13"] = " " sgmldecl1_predefined_entity_replacement_text["emsp14"] = " " sgmldecl1_predefined_entity_replacement_text["emsp"] = " " sgmldecl1_predefined_entity_replacement_text["ENG"] = "Ŋ" sgmldecl1_predefined_entity_replacement_text["eng"] = "ŋ" sgmldecl1_predefined_entity_replacement_text["ensp"] = " " sgmldecl1_predefined_entity_replacement_text["Eogon"] = "Ę" sgmldecl1_predefined_entity_replacement_text["eogon"] = "ę" sgmldecl1_predefined_entity_replacement_text["Eopf"] = "𝔼" sgmldecl1_predefined_entity_replacement_text["eopf"] = "𝕖" sgmldecl1_predefined_entity_replacement_text["epar"] = "⋕" sgmldecl1_predefined_entity_replacement_text["eparsl"] = "⧣" sgmldecl1_predefined_entity_replacement_text["eplus"] = "⩱" sgmldecl1_predefined_entity_replacement_text["epsi"] = "ε" sgmldecl1_predefined_entity_replacement_text["Epsilon"] = "Ε" sgmldecl1_predefined_entity_replacement_text["epsilon"] = "ε" sgmldecl1_predefined_entity_replacement_text["epsiv"] = "ϵ" sgmldecl1_predefined_entity_replacement_text["eqcirc"] = "≖" sgmldecl1_predefined_entity_replacement_text["eqcolon"] = "≕" sgmldecl1_predefined_entity_replacement_text["eqsim"] = "≂" sgmldecl1_predefined_entity_replacement_text["eqslantgtr"] = "⪖" sgmldecl1_predefined_entity_replacement_text["eqslantless"] = "⪕" sgmldecl1_predefined_entity_replacement_text["Equal"] = "⩵" sgmldecl1_predefined_entity_replacement_text["equals"] = "=" sgmldecl1_predefined_entity_replacement_text["EqualTilde"] = "≂" sgmldecl1_predefined_entity_replacement_text["equest"] = "≟" sgmldecl1_predefined_entity_replacement_text["Equilibrium"] = "⇌" sgmldecl1_predefined_entity_replacement_text["equiv"] = "≡" sgmldecl1_predefined_entity_replacement_text["equivDD"] = "⩸" sgmldecl1_predefined_entity_replacement_text["eqvparsl"] = "⧥" sgmldecl1_predefined_entity_replacement_text["erarr"] = "⥱" sgmldecl1_predefined_entity_replacement_text["erDot"] = "≓" sgmldecl1_predefined_entity_replacement_text["escr"] = "ℯ" sgmldecl1_predefined_entity_replacement_text["Escr"] = "ℰ" sgmldecl1_predefined_entity_replacement_text["esdot"] = "≐" sgmldecl1_predefined_entity_replacement_text["Esim"] = "⩳" sgmldecl1_predefined_entity_replacement_text["esim"] = "≂" sgmldecl1_predefined_entity_replacement_text["Eta"] = "Η" sgmldecl1_predefined_entity_replacement_text["eta"] = "η" sgmldecl1_predefined_entity_replacement_text["ETH"] = "Ð" sgmldecl1_predefined_entity_replacement_text["eth"] = "ð" sgmldecl1_predefined_entity_replacement_text["Euml"] = "Ë" sgmldecl1_predefined_entity_replacement_text["euml"] = "ë" sgmldecl1_predefined_entity_replacement_text["euro"] = "€" sgmldecl1_predefined_entity_replacement_text["excl"] = "!" sgmldecl1_predefined_entity_replacement_text["exist"] = "∃" sgmldecl1_predefined_entity_replacement_text["Exists"] = "∃" sgmldecl1_predefined_entity_replacement_text["expectation"] = "ℰ" sgmldecl1_predefined_entity_replacement_text["exponentiale"] = "ⅇ" sgmldecl1_predefined_entity_replacement_text["ExponentialE"] = "ⅇ" sgmldecl1_predefined_entity_replacement_text["fallingdotseq"] = "≒" sgmldecl1_predefined_entity_replacement_text["Fcy"] = "Ф" sgmldecl1_predefined_entity_replacement_text["fcy"] = "ф" sgmldecl1_predefined_entity_replacement_text["female"] = "♀" sgmldecl1_predefined_entity_replacement_text["ffilig"] = "ffi" sgmldecl1_predefined_entity_replacement_text["fflig"] = "ff" sgmldecl1_predefined_entity_replacement_text["ffllig"] = "ffl" sgmldecl1_predefined_entity_replacement_text["Ffr"] = "𝔉" sgmldecl1_predefined_entity_replacement_text["ffr"] = "𝔣" sgmldecl1_predefined_entity_replacement_text["filig"] = "fi" sgmldecl1_predefined_entity_replacement_text["FilledSmallSquare"] = "◼" sgmldecl1_predefined_entity_replacement_text["FilledVerySmallSquare"] = "▪" sgmldecl1_predefined_entity_replacement_text["fjlig"] = "fj" sgmldecl1_predefined_entity_replacement_text["flat"] = "♭" sgmldecl1_predefined_entity_replacement_text["fllig"] = "fl" sgmldecl1_predefined_entity_replacement_text["fltns"] = "▱" sgmldecl1_predefined_entity_replacement_text["fnof"] = "ƒ" sgmldecl1_predefined_entity_replacement_text["Fopf"] = "𝔽" sgmldecl1_predefined_entity_replacement_text["fopf"] = "𝕗" sgmldecl1_predefined_entity_replacement_text["forall"] = "∀" sgmldecl1_predefined_entity_replacement_text["ForAll"] = "∀" sgmldecl1_predefined_entity_replacement_text["fork"] = "⋔" sgmldecl1_predefined_entity_replacement_text["forkv"] = "⫙" sgmldecl1_predefined_entity_replacement_text["Fouriertrf"] = "ℱ" sgmldecl1_predefined_entity_replacement_text["fpartint"] = "⨍" sgmldecl1_predefined_entity_replacement_text["frac12"] = "½" sgmldecl1_predefined_entity_replacement_text["frac13"] = "⅓" sgmldecl1_predefined_entity_replacement_text["frac14"] = "¼" sgmldecl1_predefined_entity_replacement_text["frac15"] = "⅕" sgmldecl1_predefined_entity_replacement_text["frac16"] = "⅙" sgmldecl1_predefined_entity_replacement_text["frac18"] = "⅛" sgmldecl1_predefined_entity_replacement_text["frac23"] = "⅔" sgmldecl1_predefined_entity_replacement_text["frac25"] = "⅖" sgmldecl1_predefined_entity_replacement_text["frac34"] = "¾" sgmldecl1_predefined_entity_replacement_text["frac35"] = "⅗" sgmldecl1_predefined_entity_replacement_text["frac38"] = "⅜" sgmldecl1_predefined_entity_replacement_text["frac45"] = "⅘" sgmldecl1_predefined_entity_replacement_text["frac56"] = "⅚" sgmldecl1_predefined_entity_replacement_text["frac58"] = "⅝" sgmldecl1_predefined_entity_replacement_text["frac78"] = "⅞" sgmldecl1_predefined_entity_replacement_text["frasl"] = "⁄" sgmldecl1_predefined_entity_replacement_text["frown"] = "⌢" sgmldecl1_predefined_entity_replacement_text["fscr"] = "𝒻" sgmldecl1_predefined_entity_replacement_text["Fscr"] = "ℱ" sgmldecl1_predefined_entity_replacement_text["gacute"] = "ǵ" sgmldecl1_predefined_entity_replacement_text["Gamma"] = "Γ" sgmldecl1_predefined_entity_replacement_text["gamma"] = "γ" sgmldecl1_predefined_entity_replacement_text["Gammad"] = "Ϝ" sgmldecl1_predefined_entity_replacement_text["gammad"] = "ϝ" sgmldecl1_predefined_entity_replacement_text["gap"] = "⪆" sgmldecl1_predefined_entity_replacement_text["Gbreve"] = "Ğ" sgmldecl1_predefined_entity_replacement_text["gbreve"] = "ğ" sgmldecl1_predefined_entity_replacement_text["Gcedil"] = "Ģ" sgmldecl1_predefined_entity_replacement_text["Gcirc"] = "Ĝ" sgmldecl1_predefined_entity_replacement_text["gcirc"] = "ĝ" sgmldecl1_predefined_entity_replacement_text["Gcy"] = "Г" sgmldecl1_predefined_entity_replacement_text["gcy"] = "г" sgmldecl1_predefined_entity_replacement_text["Gdot"] = "Ġ" sgmldecl1_predefined_entity_replacement_text["gdot"] = "ġ" sgmldecl1_predefined_entity_replacement_text["ge"] = "≥" sgmldecl1_predefined_entity_replacement_text["gE"] = "≧" sgmldecl1_predefined_entity_replacement_text["gEl"] = "⪌" sgmldecl1_predefined_entity_replacement_text["gel"] = "⋛" sgmldecl1_predefined_entity_replacement_text["geq"] = "≥" sgmldecl1_predefined_entity_replacement_text["geqq"] = "≧" sgmldecl1_predefined_entity_replacement_text["geqslant"] = "⩾" sgmldecl1_predefined_entity_replacement_text["gescc"] = "⪩" sgmldecl1_predefined_entity_replacement_text["ges"] = "⩾" sgmldecl1_predefined_entity_replacement_text["gesdot"] = "⪀" sgmldecl1_predefined_entity_replacement_text["gesdoto"] = "⪂" sgmldecl1_predefined_entity_replacement_text["gesdotol"] = "⪄" sgmldecl1_predefined_entity_replacement_text["gesl"] = "⋛︀" sgmldecl1_predefined_entity_replacement_text["gesles"] = "⪔" sgmldecl1_predefined_entity_replacement_text["Gfr"] = "𝔊" sgmldecl1_predefined_entity_replacement_text["gfr"] = "𝔤" sgmldecl1_predefined_entity_replacement_text["gg"] = "≫" sgmldecl1_predefined_entity_replacement_text["Gg"] = "⋙" sgmldecl1_predefined_entity_replacement_text["ggg"] = "⋙" sgmldecl1_predefined_entity_replacement_text["gimel"] = "ℷ" sgmldecl1_predefined_entity_replacement_text["GJcy"] = "Ѓ" sgmldecl1_predefined_entity_replacement_text["gjcy"] = "ѓ" sgmldecl1_predefined_entity_replacement_text["gla"] = "⪥" sgmldecl1_predefined_entity_replacement_text["gl"] = "≷" sgmldecl1_predefined_entity_replacement_text["glE"] = "⪒" sgmldecl1_predefined_entity_replacement_text["glj"] = "⪤" sgmldecl1_predefined_entity_replacement_text["gnap"] = "⪊" sgmldecl1_predefined_entity_replacement_text["gnapprox"] = "⪊" sgmldecl1_predefined_entity_replacement_text["gne"] = "⪈" sgmldecl1_predefined_entity_replacement_text["gnE"] = "≩" sgmldecl1_predefined_entity_replacement_text["gneq"] = "⪈" sgmldecl1_predefined_entity_replacement_text["gneqq"] = "≩" sgmldecl1_predefined_entity_replacement_text["gnsim"] = "⋧" sgmldecl1_predefined_entity_replacement_text["Gopf"] = "𝔾" sgmldecl1_predefined_entity_replacement_text["gopf"] = "𝕘" sgmldecl1_predefined_entity_replacement_text["grave"] = "`" sgmldecl1_predefined_entity_replacement_text["GreaterEqual"] = "≥" sgmldecl1_predefined_entity_replacement_text["GreaterEqualLess"] = "⋛" sgmldecl1_predefined_entity_replacement_text["GreaterFullEqual"] = "≧" sgmldecl1_predefined_entity_replacement_text["GreaterGreater"] = "⪢" sgmldecl1_predefined_entity_replacement_text["GreaterLess"] = "≷" sgmldecl1_predefined_entity_replacement_text["GreaterSlantEqual"] = "⩾" sgmldecl1_predefined_entity_replacement_text["GreaterTilde"] = "≳" sgmldecl1_predefined_entity_replacement_text["Gscr"] = "𝒢" sgmldecl1_predefined_entity_replacement_text["gscr"] = "ℊ" sgmldecl1_predefined_entity_replacement_text["gsim"] = "≳" sgmldecl1_predefined_entity_replacement_text["gsime"] = "⪎" sgmldecl1_predefined_entity_replacement_text["gsiml"] = "⪐" sgmldecl1_predefined_entity_replacement_text["gtcc"] = "⪧" sgmldecl1_predefined_entity_replacement_text["gtcir"] = "⩺" sgmldecl1_predefined_entity_replacement_text["gt"] = ">" sgmldecl1_predefined_entity_replacement_text["GT"] = ">" sgmldecl1_predefined_entity_replacement_text["Gt"] = "≫" sgmldecl1_predefined_entity_replacement_text["gtdot"] = "⋗" sgmldecl1_predefined_entity_replacement_text["gtlPar"] = "⦕" sgmldecl1_predefined_entity_replacement_text["gtquest"] = "⩼" sgmldecl1_predefined_entity_replacement_text["gtrapprox"] = "⪆" sgmldecl1_predefined_entity_replacement_text["gtrarr"] = "⥸" sgmldecl1_predefined_entity_replacement_text["gtrdot"] = "⋗" sgmldecl1_predefined_entity_replacement_text["gtreqless"] = "⋛" sgmldecl1_predefined_entity_replacement_text["gtreqqless"] = "⪌" sgmldecl1_predefined_entity_replacement_text["gtrless"] = "≷" sgmldecl1_predefined_entity_replacement_text["gtrsim"] = "≳" sgmldecl1_predefined_entity_replacement_text["gvertneqq"] = "≩︀" sgmldecl1_predefined_entity_replacement_text["gvnE"] = "≩︀" sgmldecl1_predefined_entity_replacement_text["Hacek"] = "ˇ" sgmldecl1_predefined_entity_replacement_text["hairsp"] = " " sgmldecl1_predefined_entity_replacement_text["half"] = "½" sgmldecl1_predefined_entity_replacement_text["hamilt"] = "ℋ" sgmldecl1_predefined_entity_replacement_text["HARDcy"] = "Ъ" sgmldecl1_predefined_entity_replacement_text["hardcy"] = "ъ" sgmldecl1_predefined_entity_replacement_text["harrcir"] = "⥈" sgmldecl1_predefined_entity_replacement_text["harr"] = "↔" sgmldecl1_predefined_entity_replacement_text["hArr"] = "⇔" sgmldecl1_predefined_entity_replacement_text["harrw"] = "↭" sgmldecl1_predefined_entity_replacement_text["Hat"] = "^" sgmldecl1_predefined_entity_replacement_text["hbar"] = "ℏ" sgmldecl1_predefined_entity_replacement_text["Hcirc"] = "Ĥ" sgmldecl1_predefined_entity_replacement_text["hcirc"] = "ĥ" sgmldecl1_predefined_entity_replacement_text["hearts"] = "♥" sgmldecl1_predefined_entity_replacement_text["heartsuit"] = "♥" sgmldecl1_predefined_entity_replacement_text["hellip"] = "…" sgmldecl1_predefined_entity_replacement_text["hercon"] = "⊹" sgmldecl1_predefined_entity_replacement_text["hfr"] = "𝔥" sgmldecl1_predefined_entity_replacement_text["Hfr"] = "ℌ" sgmldecl1_predefined_entity_replacement_text["HilbertSpace"] = "ℋ" sgmldecl1_predefined_entity_replacement_text["hksearow"] = "⤥" sgmldecl1_predefined_entity_replacement_text["hkswarow"] = "⤦" sgmldecl1_predefined_entity_replacement_text["hoarr"] = "⇿" sgmldecl1_predefined_entity_replacement_text["homtht"] = "∻" sgmldecl1_predefined_entity_replacement_text["hookleftarrow"] = "↩" sgmldecl1_predefined_entity_replacement_text["hookrightarrow"] = "↪" sgmldecl1_predefined_entity_replacement_text["hopf"] = "𝕙" sgmldecl1_predefined_entity_replacement_text["Hopf"] = "ℍ" sgmldecl1_predefined_entity_replacement_text["horbar"] = "―" sgmldecl1_predefined_entity_replacement_text["HorizontalLine"] = "─" sgmldecl1_predefined_entity_replacement_text["hscr"] = "𝒽" sgmldecl1_predefined_entity_replacement_text["Hscr"] = "ℋ" sgmldecl1_predefined_entity_replacement_text["hslash"] = "ℏ" sgmldecl1_predefined_entity_replacement_text["Hstrok"] = "Ħ" sgmldecl1_predefined_entity_replacement_text["hstrok"] = "ħ" sgmldecl1_predefined_entity_replacement_text["HumpDownHump"] = "≎" sgmldecl1_predefined_entity_replacement_text["HumpEqual"] = "≏" sgmldecl1_predefined_entity_replacement_text["hybull"] = "⁃" sgmldecl1_predefined_entity_replacement_text["hyphen"] = "‐" sgmldecl1_predefined_entity_replacement_text["Iacute"] = "Í" sgmldecl1_predefined_entity_replacement_text["iacute"] = "í" sgmldecl1_predefined_entity_replacement_text["ic"] = "⁣" sgmldecl1_predefined_entity_replacement_text["Icirc"] = "Î" sgmldecl1_predefined_entity_replacement_text["icirc"] = "î" sgmldecl1_predefined_entity_replacement_text["Icy"] = "И" sgmldecl1_predefined_entity_replacement_text["icy"] = "и" sgmldecl1_predefined_entity_replacement_text["Idot"] = "İ" sgmldecl1_predefined_entity_replacement_text["IEcy"] = "Е" sgmldecl1_predefined_entity_replacement_text["iecy"] = "е" sgmldecl1_predefined_entity_replacement_text["iexcl"] = "¡" sgmldecl1_predefined_entity_replacement_text["iff"] = "⇔" sgmldecl1_predefined_entity_replacement_text["ifr"] = "𝔦" sgmldecl1_predefined_entity_replacement_text["Ifr"] = "ℑ" sgmldecl1_predefined_entity_replacement_text["Igrave"] = "Ì" sgmldecl1_predefined_entity_replacement_text["igrave"] = "ì" sgmldecl1_predefined_entity_replacement_text["ii"] = "ⅈ" sgmldecl1_predefined_entity_replacement_text["iiiint"] = "⨌" sgmldecl1_predefined_entity_replacement_text["iiint"] = "∭" sgmldecl1_predefined_entity_replacement_text["iinfin"] = "⧜" sgmldecl1_predefined_entity_replacement_text["iiota"] = "℩" sgmldecl1_predefined_entity_replacement_text["IJlig"] = "IJ" sgmldecl1_predefined_entity_replacement_text["ijlig"] = "ij" sgmldecl1_predefined_entity_replacement_text["Imacr"] = "Ī" sgmldecl1_predefined_entity_replacement_text["imacr"] = "ī" sgmldecl1_predefined_entity_replacement_text["image"] = "ℑ" sgmldecl1_predefined_entity_replacement_text["ImaginaryI"] = "ⅈ" sgmldecl1_predefined_entity_replacement_text["imagline"] = "ℐ" sgmldecl1_predefined_entity_replacement_text["imagpart"] = "ℑ" sgmldecl1_predefined_entity_replacement_text["imath"] = "ı" sgmldecl1_predefined_entity_replacement_text["Im"] = "ℑ" sgmldecl1_predefined_entity_replacement_text["imof"] = "⊷" sgmldecl1_predefined_entity_replacement_text["imped"] = "Ƶ" sgmldecl1_predefined_entity_replacement_text["Implies"] = "⇒" sgmldecl1_predefined_entity_replacement_text["incare"] = "℅" sgmldecl1_predefined_entity_replacement_text["in"] = "∈" sgmldecl1_predefined_entity_replacement_text["infin"] = "∞" sgmldecl1_predefined_entity_replacement_text["infintie"] = "⧝" sgmldecl1_predefined_entity_replacement_text["inodot"] = "ı" sgmldecl1_predefined_entity_replacement_text["intcal"] = "⊺" sgmldecl1_predefined_entity_replacement_text["int"] = "∫" sgmldecl1_predefined_entity_replacement_text["Int"] = "∬" sgmldecl1_predefined_entity_replacement_text["integers"] = "ℤ" sgmldecl1_predefined_entity_replacement_text["Integral"] = "∫" sgmldecl1_predefined_entity_replacement_text["intercal"] = "⊺" sgmldecl1_predefined_entity_replacement_text["Intersection"] = "⋂" sgmldecl1_predefined_entity_replacement_text["intlarhk"] = "⨗" sgmldecl1_predefined_entity_replacement_text["intprod"] = "⨼" sgmldecl1_predefined_entity_replacement_text["InvisibleComma"] = "⁣" sgmldecl1_predefined_entity_replacement_text["InvisibleTimes"] = "⁢" sgmldecl1_predefined_entity_replacement_text["IOcy"] = "Ё" sgmldecl1_predefined_entity_replacement_text["iocy"] = "ё" sgmldecl1_predefined_entity_replacement_text["Iogon"] = "Į" sgmldecl1_predefined_entity_replacement_text["iogon"] = "į" sgmldecl1_predefined_entity_replacement_text["Iopf"] = "𝕀" sgmldecl1_predefined_entity_replacement_text["iopf"] = "𝕚" sgmldecl1_predefined_entity_replacement_text["Iota"] = "Ι" sgmldecl1_predefined_entity_replacement_text["iota"] = "ι" sgmldecl1_predefined_entity_replacement_text["iprod"] = "⨼" sgmldecl1_predefined_entity_replacement_text["iquest"] = "¿" sgmldecl1_predefined_entity_replacement_text["iscr"] = "𝒾" sgmldecl1_predefined_entity_replacement_text["Iscr"] = "ℐ" sgmldecl1_predefined_entity_replacement_text["isin"] = "∈" sgmldecl1_predefined_entity_replacement_text["isindot"] = "⋵" sgmldecl1_predefined_entity_replacement_text["isinE"] = "⋹" sgmldecl1_predefined_entity_replacement_text["isins"] = "⋴" sgmldecl1_predefined_entity_replacement_text["isinsv"] = "⋳" sgmldecl1_predefined_entity_replacement_text["isinv"] = "∈" sgmldecl1_predefined_entity_replacement_text["it"] = "⁢" sgmldecl1_predefined_entity_replacement_text["Itilde"] = "Ĩ" sgmldecl1_predefined_entity_replacement_text["itilde"] = "ĩ" sgmldecl1_predefined_entity_replacement_text["Iukcy"] = "І" sgmldecl1_predefined_entity_replacement_text["iukcy"] = "і" sgmldecl1_predefined_entity_replacement_text["Iuml"] = "Ï" sgmldecl1_predefined_entity_replacement_text["iuml"] = "ï" sgmldecl1_predefined_entity_replacement_text["Jcirc"] = "Ĵ" sgmldecl1_predefined_entity_replacement_text["jcirc"] = "ĵ" sgmldecl1_predefined_entity_replacement_text["Jcy"] = "Й" sgmldecl1_predefined_entity_replacement_text["jcy"] = "й" sgmldecl1_predefined_entity_replacement_text["Jfr"] = "𝔍" sgmldecl1_predefined_entity_replacement_text["jfr"] = "𝔧" sgmldecl1_predefined_entity_replacement_text["jmath"] = "ȷ" sgmldecl1_predefined_entity_replacement_text["Jopf"] = "𝕁" sgmldecl1_predefined_entity_replacement_text["jopf"] = "𝕛" sgmldecl1_predefined_entity_replacement_text["Jscr"] = "𝒥" sgmldecl1_predefined_entity_replacement_text["jscr"] = "𝒿" sgmldecl1_predefined_entity_replacement_text["Jsercy"] = "Ј" sgmldecl1_predefined_entity_replacement_text["jsercy"] = "ј" sgmldecl1_predefined_entity_replacement_text["Jukcy"] = "Є" sgmldecl1_predefined_entity_replacement_text["jukcy"] = "є" sgmldecl1_predefined_entity_replacement_text["Kappa"] = "Κ" sgmldecl1_predefined_entity_replacement_text["kappa"] = "κ" sgmldecl1_predefined_entity_replacement_text["kappav"] = "ϰ" sgmldecl1_predefined_entity_replacement_text["Kcedil"] = "Ķ" sgmldecl1_predefined_entity_replacement_text["kcedil"] = "ķ" sgmldecl1_predefined_entity_replacement_text["Kcy"] = "К" sgmldecl1_predefined_entity_replacement_text["kcy"] = "к" sgmldecl1_predefined_entity_replacement_text["Kfr"] = "𝔎" sgmldecl1_predefined_entity_replacement_text["kfr"] = "𝔨" sgmldecl1_predefined_entity_replacement_text["kgreen"] = "ĸ" sgmldecl1_predefined_entity_replacement_text["KHcy"] = "Х" sgmldecl1_predefined_entity_replacement_text["khcy"] = "х" sgmldecl1_predefined_entity_replacement_text["KJcy"] = "Ќ" sgmldecl1_predefined_entity_replacement_text["kjcy"] = "ќ" sgmldecl1_predefined_entity_replacement_text["Kopf"] = "𝕂" sgmldecl1_predefined_entity_replacement_text["kopf"] = "𝕜" sgmldecl1_predefined_entity_replacement_text["Kscr"] = "𝒦" sgmldecl1_predefined_entity_replacement_text["kscr"] = "𝓀" sgmldecl1_predefined_entity_replacement_text["lAarr"] = "⇚" sgmldecl1_predefined_entity_replacement_text["Lacute"] = "Ĺ" sgmldecl1_predefined_entity_replacement_text["lacute"] = "ĺ" sgmldecl1_predefined_entity_replacement_text["laemptyv"] = "⦴" sgmldecl1_predefined_entity_replacement_text["lagran"] = "ℒ" sgmldecl1_predefined_entity_replacement_text["Lambda"] = "Λ" sgmldecl1_predefined_entity_replacement_text["lambda"] = "λ" sgmldecl1_predefined_entity_replacement_text["lang"] = "⟨" sgmldecl1_predefined_entity_replacement_text["Lang"] = "⟪" sgmldecl1_predefined_entity_replacement_text["langd"] = "⦑" sgmldecl1_predefined_entity_replacement_text["langle"] = "⟨" sgmldecl1_predefined_entity_replacement_text["lap"] = "⪅" sgmldecl1_predefined_entity_replacement_text["Laplacetrf"] = "ℒ" sgmldecl1_predefined_entity_replacement_text["laquo"] = "«" sgmldecl1_predefined_entity_replacement_text["larrb"] = "⇤" sgmldecl1_predefined_entity_replacement_text["larrbfs"] = "⤟" sgmldecl1_predefined_entity_replacement_text["larr"] = "←" sgmldecl1_predefined_entity_replacement_text["Larr"] = "↞" sgmldecl1_predefined_entity_replacement_text["lArr"] = "⇐" sgmldecl1_predefined_entity_replacement_text["larrfs"] = "⤝" sgmldecl1_predefined_entity_replacement_text["larrhk"] = "↩" sgmldecl1_predefined_entity_replacement_text["larrlp"] = "↫" sgmldecl1_predefined_entity_replacement_text["larrpl"] = "⤹" sgmldecl1_predefined_entity_replacement_text["larrsim"] = "⥳" sgmldecl1_predefined_entity_replacement_text["larrtl"] = "↢" sgmldecl1_predefined_entity_replacement_text["latail"] = "⤙" sgmldecl1_predefined_entity_replacement_text["lAtail"] = "⤛" sgmldecl1_predefined_entity_replacement_text["lat"] = "⪫" sgmldecl1_predefined_entity_replacement_text["late"] = "⪭" sgmldecl1_predefined_entity_replacement_text["lates"] = "⪭︀" sgmldecl1_predefined_entity_replacement_text["lbarr"] = "⤌" sgmldecl1_predefined_entity_replacement_text["lBarr"] = "⤎" sgmldecl1_predefined_entity_replacement_text["lbbrk"] = "❲" sgmldecl1_predefined_entity_replacement_text["lbrace"] = "{" sgmldecl1_predefined_entity_replacement_text["lbrack"] = "[" sgmldecl1_predefined_entity_replacement_text["lbrke"] = "⦋" sgmldecl1_predefined_entity_replacement_text["lbrksld"] = "⦏" sgmldecl1_predefined_entity_replacement_text["lbrkslu"] = "⦍" sgmldecl1_predefined_entity_replacement_text["Lcaron"] = "Ľ" sgmldecl1_predefined_entity_replacement_text["lcaron"] = "ľ" sgmldecl1_predefined_entity_replacement_text["Lcedil"] = "Ļ" sgmldecl1_predefined_entity_replacement_text["lcedil"] = "ļ" sgmldecl1_predefined_entity_replacement_text["lceil"] = "⌈" sgmldecl1_predefined_entity_replacement_text["lcub"] = "{" sgmldecl1_predefined_entity_replacement_text["Lcy"] = "Л" sgmldecl1_predefined_entity_replacement_text["lcy"] = "л" sgmldecl1_predefined_entity_replacement_text["ldca"] = "⤶" sgmldecl1_predefined_entity_replacement_text["ldquo"] = "“" sgmldecl1_predefined_entity_replacement_text["ldquor"] = "„" sgmldecl1_predefined_entity_replacement_text["ldrdhar"] = "⥧" sgmldecl1_predefined_entity_replacement_text["ldrushar"] = "⥋" sgmldecl1_predefined_entity_replacement_text["ldsh"] = "↲" sgmldecl1_predefined_entity_replacement_text["le"] = "≤" sgmldecl1_predefined_entity_replacement_text["lE"] = "≦" sgmldecl1_predefined_entity_replacement_text["LeftAngleBracket"] = "⟨" sgmldecl1_predefined_entity_replacement_text["LeftArrowBar"] = "⇤" sgmldecl1_predefined_entity_replacement_text["leftarrow"] = "←" sgmldecl1_predefined_entity_replacement_text["LeftArrow"] = "←" sgmldecl1_predefined_entity_replacement_text["Leftarrow"] = "⇐" sgmldecl1_predefined_entity_replacement_text["LeftArrowRightArrow"] = "⇆" sgmldecl1_predefined_entity_replacement_text["leftarrowtail"] = "↢" sgmldecl1_predefined_entity_replacement_text["LeftCeiling"] = "⌈" sgmldecl1_predefined_entity_replacement_text["LeftDoubleBracket"] = "⟦" sgmldecl1_predefined_entity_replacement_text["LeftDownTeeVector"] = "⥡" sgmldecl1_predefined_entity_replacement_text["LeftDownVectorBar"] = "⥙" sgmldecl1_predefined_entity_replacement_text["LeftDownVector"] = "⇃" sgmldecl1_predefined_entity_replacement_text["LeftFloor"] = "⌊" sgmldecl1_predefined_entity_replacement_text["leftharpoondown"] = "↽" sgmldecl1_predefined_entity_replacement_text["leftharpoonup"] = "↼" sgmldecl1_predefined_entity_replacement_text["leftleftarrows"] = "⇇" sgmldecl1_predefined_entity_replacement_text["leftrightarrow"] = "↔" sgmldecl1_predefined_entity_replacement_text["LeftRightArrow"] = "↔" sgmldecl1_predefined_entity_replacement_text["Leftrightarrow"] = "⇔" sgmldecl1_predefined_entity_replacement_text["leftrightarrows"] = "⇆" sgmldecl1_predefined_entity_replacement_text["leftrightharpoons"] = "⇋" sgmldecl1_predefined_entity_replacement_text["leftrightsquigarrow"] = "↭" sgmldecl1_predefined_entity_replacement_text["LeftRightVector"] = "⥎" sgmldecl1_predefined_entity_replacement_text["LeftTeeArrow"] = "↤" sgmldecl1_predefined_entity_replacement_text["LeftTee"] = "⊣" sgmldecl1_predefined_entity_replacement_text["LeftTeeVector"] = "⥚" sgmldecl1_predefined_entity_replacement_text["leftthreetimes"] = "⋋" sgmldecl1_predefined_entity_replacement_text["LeftTriangleBar"] = "⧏" sgmldecl1_predefined_entity_replacement_text["LeftTriangle"] = "⊲" sgmldecl1_predefined_entity_replacement_text["LeftTriangleEqual"] = "⊴" sgmldecl1_predefined_entity_replacement_text["LeftUpDownVector"] = "⥑" sgmldecl1_predefined_entity_replacement_text["LeftUpTeeVector"] = "⥠" sgmldecl1_predefined_entity_replacement_text["LeftUpVectorBar"] = "⥘" sgmldecl1_predefined_entity_replacement_text["LeftUpVector"] = "↿" sgmldecl1_predefined_entity_replacement_text["LeftVectorBar"] = "⥒" sgmldecl1_predefined_entity_replacement_text["LeftVector"] = "↼" sgmldecl1_predefined_entity_replacement_text["lEg"] = "⪋" sgmldecl1_predefined_entity_replacement_text["leg"] = "⋚" sgmldecl1_predefined_entity_replacement_text["leq"] = "≤" sgmldecl1_predefined_entity_replacement_text["leqq"] = "≦" sgmldecl1_predefined_entity_replacement_text["leqslant"] = "⩽" sgmldecl1_predefined_entity_replacement_text["lescc"] = "⪨" sgmldecl1_predefined_entity_replacement_text["les"] = "⩽" sgmldecl1_predefined_entity_replacement_text["lesdot"] = "⩿" sgmldecl1_predefined_entity_replacement_text["lesdoto"] = "⪁" sgmldecl1_predefined_entity_replacement_text["lesdotor"] = "⪃" sgmldecl1_predefined_entity_replacement_text["lesg"] = "⋚︀" sgmldecl1_predefined_entity_replacement_text["lesges"] = "⪓" sgmldecl1_predefined_entity_replacement_text["lessapprox"] = "⪅" sgmldecl1_predefined_entity_replacement_text["lessdot"] = "⋖" sgmldecl1_predefined_entity_replacement_text["lesseqgtr"] = "⋚" sgmldecl1_predefined_entity_replacement_text["lesseqqgtr"] = "⪋" sgmldecl1_predefined_entity_replacement_text["LessEqualGreater"] = "⋚" sgmldecl1_predefined_entity_replacement_text["LessFullEqual"] = "≦" sgmldecl1_predefined_entity_replacement_text["LessGreater"] = "≶" sgmldecl1_predefined_entity_replacement_text["lessgtr"] = "≶" sgmldecl1_predefined_entity_replacement_text["LessLess"] = "⪡" sgmldecl1_predefined_entity_replacement_text["lesssim"] = "≲" sgmldecl1_predefined_entity_replacement_text["LessSlantEqual"] = "⩽" sgmldecl1_predefined_entity_replacement_text["LessTilde"] = "≲" sgmldecl1_predefined_entity_replacement_text["lfisht"] = "⥼" sgmldecl1_predefined_entity_replacement_text["lfloor"] = "⌊" sgmldecl1_predefined_entity_replacement_text["Lfr"] = "𝔏" sgmldecl1_predefined_entity_replacement_text["lfr"] = "𝔩" sgmldecl1_predefined_entity_replacement_text["lg"] = "≶" sgmldecl1_predefined_entity_replacement_text["lgE"] = "⪑" sgmldecl1_predefined_entity_replacement_text["lHar"] = "⥢" sgmldecl1_predefined_entity_replacement_text["lhard"] = "↽" sgmldecl1_predefined_entity_replacement_text["lharu"] = "↼" sgmldecl1_predefined_entity_replacement_text["lharul"] = "⥪" sgmldecl1_predefined_entity_replacement_text["lhblk"] = "▄" sgmldecl1_predefined_entity_replacement_text["LJcy"] = "Љ" sgmldecl1_predefined_entity_replacement_text["ljcy"] = "љ" sgmldecl1_predefined_entity_replacement_text["llarr"] = "⇇" sgmldecl1_predefined_entity_replacement_text["ll"] = "≪" sgmldecl1_predefined_entity_replacement_text["Ll"] = "⋘" sgmldecl1_predefined_entity_replacement_text["llcorner"] = "⌞" sgmldecl1_predefined_entity_replacement_text["Lleftarrow"] = "⇚" sgmldecl1_predefined_entity_replacement_text["llhard"] = "⥫" sgmldecl1_predefined_entity_replacement_text["lltri"] = "◺" sgmldecl1_predefined_entity_replacement_text["Lmidot"] = "Ŀ" sgmldecl1_predefined_entity_replacement_text["lmidot"] = "ŀ" sgmldecl1_predefined_entity_replacement_text["lmoustache"] = "⎰" sgmldecl1_predefined_entity_replacement_text["lmoust"] = "⎰" sgmldecl1_predefined_entity_replacement_text["lnap"] = "⪉" sgmldecl1_predefined_entity_replacement_text["lnapprox"] = "⪉" sgmldecl1_predefined_entity_replacement_text["lne"] = "⪇" sgmldecl1_predefined_entity_replacement_text["lnE"] = "≨" sgmldecl1_predefined_entity_replacement_text["lneq"] = "⪇" sgmldecl1_predefined_entity_replacement_text["lneqq"] = "≨" sgmldecl1_predefined_entity_replacement_text["lnsim"] = "⋦" sgmldecl1_predefined_entity_replacement_text["loang"] = "⟬" sgmldecl1_predefined_entity_replacement_text["loarr"] = "⇽" sgmldecl1_predefined_entity_replacement_text["lobrk"] = "⟦" sgmldecl1_predefined_entity_replacement_text["longleftarrow"] = "⟵" sgmldecl1_predefined_entity_replacement_text["LongLeftArrow"] = "⟵" sgmldecl1_predefined_entity_replacement_text["Longleftarrow"] = "⟸" sgmldecl1_predefined_entity_replacement_text["longleftrightarrow"] = "⟷" sgmldecl1_predefined_entity_replacement_text["LongLeftRightArrow"] = "⟷" sgmldecl1_predefined_entity_replacement_text["Longleftrightarrow"] = "⟺" sgmldecl1_predefined_entity_replacement_text["longmapsto"] = "⟼" sgmldecl1_predefined_entity_replacement_text["longrightarrow"] = "⟶" sgmldecl1_predefined_entity_replacement_text["LongRightArrow"] = "⟶" sgmldecl1_predefined_entity_replacement_text["Longrightarrow"] = "⟹" sgmldecl1_predefined_entity_replacement_text["looparrowleft"] = "↫" sgmldecl1_predefined_entity_replacement_text["looparrowright"] = "↬" sgmldecl1_predefined_entity_replacement_text["lopar"] = "⦅" sgmldecl1_predefined_entity_replacement_text["Lopf"] = "𝕃" sgmldecl1_predefined_entity_replacement_text["lopf"] = "𝕝" sgmldecl1_predefined_entity_replacement_text["loplus"] = "⨭" sgmldecl1_predefined_entity_replacement_text["lotimes"] = "⨴" sgmldecl1_predefined_entity_replacement_text["lowast"] = "∗" sgmldecl1_predefined_entity_replacement_text["lowbar"] = "_" sgmldecl1_predefined_entity_replacement_text["LowerLeftArrow"] = "↙" sgmldecl1_predefined_entity_replacement_text["LowerRightArrow"] = "↘" sgmldecl1_predefined_entity_replacement_text["loz"] = "◊" sgmldecl1_predefined_entity_replacement_text["lozenge"] = "◊" sgmldecl1_predefined_entity_replacement_text["lozf"] = "⧫" sgmldecl1_predefined_entity_replacement_text["lpar"] = "(" sgmldecl1_predefined_entity_replacement_text["lparlt"] = "⦓" sgmldecl1_predefined_entity_replacement_text["lrarr"] = "⇆" sgmldecl1_predefined_entity_replacement_text["lrcorner"] = "⌟" sgmldecl1_predefined_entity_replacement_text["lrhar"] = "⇋" sgmldecl1_predefined_entity_replacement_text["lrhard"] = "⥭" sgmldecl1_predefined_entity_replacement_text["lrm"] = "‎" sgmldecl1_predefined_entity_replacement_text["lrtri"] = "⊿" sgmldecl1_predefined_entity_replacement_text["lsaquo"] = "‹" sgmldecl1_predefined_entity_replacement_text["lscr"] = "𝓁" sgmldecl1_predefined_entity_replacement_text["Lscr"] = "ℒ" sgmldecl1_predefined_entity_replacement_text["lsh"] = "↰" sgmldecl1_predefined_entity_replacement_text["Lsh"] = "↰" sgmldecl1_predefined_entity_replacement_text["lsim"] = "≲" sgmldecl1_predefined_entity_replacement_text["lsime"] = "⪍" sgmldecl1_predefined_entity_replacement_text["lsimg"] = "⪏" sgmldecl1_predefined_entity_replacement_text["lsqb"] = "[" sgmldecl1_predefined_entity_replacement_text["lsquo"] = "‘" sgmldecl1_predefined_entity_replacement_text["lsquor"] = "‚" sgmldecl1_predefined_entity_replacement_text["Lstrok"] = "Ł" sgmldecl1_predefined_entity_replacement_text["lstrok"] = "ł" sgmldecl1_predefined_entity_replacement_text["ltcc"] = "⪦" sgmldecl1_predefined_entity_replacement_text["ltcir"] = "⩹" sgmldecl1_predefined_entity_replacement_text["lt"] = "<" sgmldecl1_predefined_entity_replacement_text["LT"] = "<" sgmldecl1_predefined_entity_replacement_text["Lt"] = "≪" sgmldecl1_predefined_entity_replacement_text["ltdot"] = "⋖" sgmldecl1_predefined_entity_replacement_text["lthree"] = "⋋" sgmldecl1_predefined_entity_replacement_text["ltimes"] = "⋉" sgmldecl1_predefined_entity_replacement_text["ltlarr"] = "⥶" sgmldecl1_predefined_entity_replacement_text["ltquest"] = "⩻" sgmldecl1_predefined_entity_replacement_text["ltri"] = "◃" sgmldecl1_predefined_entity_replacement_text["ltrie"] = "⊴" sgmldecl1_predefined_entity_replacement_text["ltrif"] = "◂" sgmldecl1_predefined_entity_replacement_text["ltrPar"] = "⦖" sgmldecl1_predefined_entity_replacement_text["lurdshar"] = "⥊" sgmldecl1_predefined_entity_replacement_text["luruhar"] = "⥦" sgmldecl1_predefined_entity_replacement_text["lvertneqq"] = "≨︀" sgmldecl1_predefined_entity_replacement_text["lvnE"] = "≨︀" sgmldecl1_predefined_entity_replacement_text["macr"] = "¯" sgmldecl1_predefined_entity_replacement_text["male"] = "♂" sgmldecl1_predefined_entity_replacement_text["malt"] = "✠" sgmldecl1_predefined_entity_replacement_text["maltese"] = "✠" sgmldecl1_predefined_entity_replacement_text["Map"] = "⤅" sgmldecl1_predefined_entity_replacement_text["map"] = "↦" sgmldecl1_predefined_entity_replacement_text["mapsto"] = "↦" sgmldecl1_predefined_entity_replacement_text["mapstodown"] = "↧" sgmldecl1_predefined_entity_replacement_text["mapstoleft"] = "↤" sgmldecl1_predefined_entity_replacement_text["mapstoup"] = "↥" sgmldecl1_predefined_entity_replacement_text["marker"] = "▮" sgmldecl1_predefined_entity_replacement_text["mcomma"] = "⨩" sgmldecl1_predefined_entity_replacement_text["Mcy"] = "М" sgmldecl1_predefined_entity_replacement_text["mcy"] = "м" sgmldecl1_predefined_entity_replacement_text["mdash"] = "—" sgmldecl1_predefined_entity_replacement_text["mDDot"] = "∺" sgmldecl1_predefined_entity_replacement_text["measuredangle"] = "∡" sgmldecl1_predefined_entity_replacement_text["MediumSpace"] = " " sgmldecl1_predefined_entity_replacement_text["Mellintrf"] = "ℳ" sgmldecl1_predefined_entity_replacement_text["Mfr"] = "𝔐" sgmldecl1_predefined_entity_replacement_text["mfr"] = "𝔪" sgmldecl1_predefined_entity_replacement_text["mho"] = "℧" sgmldecl1_predefined_entity_replacement_text["micro"] = "µ" sgmldecl1_predefined_entity_replacement_text["midast"] = "*" sgmldecl1_predefined_entity_replacement_text["midcir"] = "⫰" sgmldecl1_predefined_entity_replacement_text["mid"] = "∣" sgmldecl1_predefined_entity_replacement_text["middot"] = "·" sgmldecl1_predefined_entity_replacement_text["minusb"] = "⊟" sgmldecl1_predefined_entity_replacement_text["minus"] = "−" sgmldecl1_predefined_entity_replacement_text["minusd"] = "∸" sgmldecl1_predefined_entity_replacement_text["minusdu"] = "⨪" sgmldecl1_predefined_entity_replacement_text["MinusPlus"] = "∓" sgmldecl1_predefined_entity_replacement_text["mlcp"] = "⫛" sgmldecl1_predefined_entity_replacement_text["mldr"] = "…" sgmldecl1_predefined_entity_replacement_text["mnplus"] = "∓" sgmldecl1_predefined_entity_replacement_text["models"] = "⊧" sgmldecl1_predefined_entity_replacement_text["Mopf"] = "𝕄" sgmldecl1_predefined_entity_replacement_text["mopf"] = "𝕞" sgmldecl1_predefined_entity_replacement_text["mp"] = "∓" sgmldecl1_predefined_entity_replacement_text["mscr"] = "𝓂" sgmldecl1_predefined_entity_replacement_text["Mscr"] = "ℳ" sgmldecl1_predefined_entity_replacement_text["mstpos"] = "∾" sgmldecl1_predefined_entity_replacement_text["Mu"] = "Μ" sgmldecl1_predefined_entity_replacement_text["mu"] = "μ" sgmldecl1_predefined_entity_replacement_text["multimap"] = "⊸" sgmldecl1_predefined_entity_replacement_text["mumap"] = "⊸" sgmldecl1_predefined_entity_replacement_text["nabla"] = "∇" sgmldecl1_predefined_entity_replacement_text["Nacute"] = "Ń" sgmldecl1_predefined_entity_replacement_text["nacute"] = "ń" sgmldecl1_predefined_entity_replacement_text["nang"] = "∠⃒" sgmldecl1_predefined_entity_replacement_text["nap"] = "≉" sgmldecl1_predefined_entity_replacement_text["napE"] = "⩰̸" sgmldecl1_predefined_entity_replacement_text["napid"] = "≋̸" sgmldecl1_predefined_entity_replacement_text["napos"] = "ʼn" sgmldecl1_predefined_entity_replacement_text["napprox"] = "≉" sgmldecl1_predefined_entity_replacement_text["natural"] = "♮" sgmldecl1_predefined_entity_replacement_text["naturals"] = "ℕ" sgmldecl1_predefined_entity_replacement_text["natur"] = "♮" sgmldecl1_predefined_entity_replacement_text["nbsp"] = " " sgmldecl1_predefined_entity_replacement_text["nbump"] = "≎̸" sgmldecl1_predefined_entity_replacement_text["nbumpe"] = "≏̸" sgmldecl1_predefined_entity_replacement_text["ncap"] = "⩃" sgmldecl1_predefined_entity_replacement_text["Ncaron"] = "Ň" sgmldecl1_predefined_entity_replacement_text["ncaron"] = "ň" sgmldecl1_predefined_entity_replacement_text["Ncedil"] = "Ņ" sgmldecl1_predefined_entity_replacement_text["ncedil"] = "ņ" sgmldecl1_predefined_entity_replacement_text["ncong"] = "≇" sgmldecl1_predefined_entity_replacement_text["ncongdot"] = "⩭̸" sgmldecl1_predefined_entity_replacement_text["ncup"] = "⩂" sgmldecl1_predefined_entity_replacement_text["Ncy"] = "Н" sgmldecl1_predefined_entity_replacement_text["ncy"] = "н" sgmldecl1_predefined_entity_replacement_text["ndash"] = "–" sgmldecl1_predefined_entity_replacement_text["nearhk"] = "⤤" sgmldecl1_predefined_entity_replacement_text["nearr"] = "↗" sgmldecl1_predefined_entity_replacement_text["neArr"] = "⇗" sgmldecl1_predefined_entity_replacement_text["nearrow"] = "↗" sgmldecl1_predefined_entity_replacement_text["ne"] = "≠" sgmldecl1_predefined_entity_replacement_text["nedot"] = "≐̸" sgmldecl1_predefined_entity_replacement_text["NegativeMediumSpace"] = "​" sgmldecl1_predefined_entity_replacement_text["NegativeThickSpace"] = "​" sgmldecl1_predefined_entity_replacement_text["NegativeThinSpace"] = "​" sgmldecl1_predefined_entity_replacement_text["NegativeVeryThinSpace"] = "​" sgmldecl1_predefined_entity_replacement_text["nequiv"] = "≢" sgmldecl1_predefined_entity_replacement_text["nesear"] = "⤨" sgmldecl1_predefined_entity_replacement_text["nesim"] = "≂̸" sgmldecl1_predefined_entity_replacement_text["NestedGreaterGreater"] = "≫" sgmldecl1_predefined_entity_replacement_text["NestedLessLess"] = "≪" sgmldecl1_predefined_entity_replacement_text["NewLine"] = " " sgmldecl1_predefined_entity_replacement_text["nexist"] = "∄" sgmldecl1_predefined_entity_replacement_text["nexists"] = "∄" sgmldecl1_predefined_entity_replacement_text["Nfr"] = "𝔑" sgmldecl1_predefined_entity_replacement_text["nfr"] = "𝔫" sgmldecl1_predefined_entity_replacement_text["ngE"] = "≧̸" sgmldecl1_predefined_entity_replacement_text["nge"] = "≱" sgmldecl1_predefined_entity_replacement_text["ngeq"] = "≱" sgmldecl1_predefined_entity_replacement_text["ngeqq"] = "≧̸" sgmldecl1_predefined_entity_replacement_text["ngeqslant"] = "⩾̸" sgmldecl1_predefined_entity_replacement_text["nges"] = "⩾̸" sgmldecl1_predefined_entity_replacement_text["nGg"] = "⋙̸" sgmldecl1_predefined_entity_replacement_text["ngsim"] = "≵" sgmldecl1_predefined_entity_replacement_text["nGt"] = "≫⃒" sgmldecl1_predefined_entity_replacement_text["ngt"] = "≯" sgmldecl1_predefined_entity_replacement_text["ngtr"] = "≯" sgmldecl1_predefined_entity_replacement_text["nGtv"] = "≫̸" sgmldecl1_predefined_entity_replacement_text["nharr"] = "↮" sgmldecl1_predefined_entity_replacement_text["nhArr"] = "⇎" sgmldecl1_predefined_entity_replacement_text["nhpar"] = "⫲" sgmldecl1_predefined_entity_replacement_text["ni"] = "∋" sgmldecl1_predefined_entity_replacement_text["nis"] = "⋼" sgmldecl1_predefined_entity_replacement_text["nisd"] = "⋺" sgmldecl1_predefined_entity_replacement_text["niv"] = "∋" sgmldecl1_predefined_entity_replacement_text["NJcy"] = "Њ" sgmldecl1_predefined_entity_replacement_text["njcy"] = "њ" sgmldecl1_predefined_entity_replacement_text["nlarr"] = "↚" sgmldecl1_predefined_entity_replacement_text["nlArr"] = "⇍" sgmldecl1_predefined_entity_replacement_text["nldr"] = "‥" sgmldecl1_predefined_entity_replacement_text["nlE"] = "≦̸" sgmldecl1_predefined_entity_replacement_text["nle"] = "≰" sgmldecl1_predefined_entity_replacement_text["nleftarrow"] = "↚" sgmldecl1_predefined_entity_replacement_text["nLeftarrow"] = "⇍" sgmldecl1_predefined_entity_replacement_text["nleftrightarrow"] = "↮" sgmldecl1_predefined_entity_replacement_text["nLeftrightarrow"] = "⇎" sgmldecl1_predefined_entity_replacement_text["nleq"] = "≰" sgmldecl1_predefined_entity_replacement_text["nleqq"] = "≦̸" sgmldecl1_predefined_entity_replacement_text["nleqslant"] = "⩽̸" sgmldecl1_predefined_entity_replacement_text["nles"] = "⩽̸" sgmldecl1_predefined_entity_replacement_text["nless"] = "≮" sgmldecl1_predefined_entity_replacement_text["nLl"] = "⋘̸" sgmldecl1_predefined_entity_replacement_text["nlsim"] = "≴" sgmldecl1_predefined_entity_replacement_text["nLt"] = "≪⃒" sgmldecl1_predefined_entity_replacement_text["nlt"] = "≮" sgmldecl1_predefined_entity_replacement_text["nltri"] = "⋪" sgmldecl1_predefined_entity_replacement_text["nltrie"] = "⋬" sgmldecl1_predefined_entity_replacement_text["nLtv"] = "≪̸" sgmldecl1_predefined_entity_replacement_text["nmid"] = "∤" sgmldecl1_predefined_entity_replacement_text["NoBreak"] = "⁠" sgmldecl1_predefined_entity_replacement_text["NonBreakingSpace"] = " " sgmldecl1_predefined_entity_replacement_text["nopf"] = "𝕟" sgmldecl1_predefined_entity_replacement_text["Nopf"] = "ℕ" sgmldecl1_predefined_entity_replacement_text["Not"] = "⫬" sgmldecl1_predefined_entity_replacement_text["not"] = "¬" sgmldecl1_predefined_entity_replacement_text["NotCongruent"] = "≢" sgmldecl1_predefined_entity_replacement_text["NotCupCap"] = "≭" sgmldecl1_predefined_entity_replacement_text["NotDoubleVerticalBar"] = "∦" sgmldecl1_predefined_entity_replacement_text["NotElement"] = "∉" sgmldecl1_predefined_entity_replacement_text["NotEqual"] = "≠" sgmldecl1_predefined_entity_replacement_text["NotEqualTilde"] = "≂̸" sgmldecl1_predefined_entity_replacement_text["NotExists"] = "∄" sgmldecl1_predefined_entity_replacement_text["NotGreater"] = "≯" sgmldecl1_predefined_entity_replacement_text["NotGreaterEqual"] = "≱" sgmldecl1_predefined_entity_replacement_text["NotGreaterFullEqual"] = "≧̸" sgmldecl1_predefined_entity_replacement_text["NotGreaterGreater"] = "≫̸" sgmldecl1_predefined_entity_replacement_text["NotGreaterLess"] = "≹" sgmldecl1_predefined_entity_replacement_text["NotGreaterSlantEqual"] = "⩾̸" sgmldecl1_predefined_entity_replacement_text["NotGreaterTilde"] = "≵" sgmldecl1_predefined_entity_replacement_text["NotHumpDownHump"] = "≎̸" sgmldecl1_predefined_entity_replacement_text["NotHumpEqual"] = "≏̸" sgmldecl1_predefined_entity_replacement_text["notin"] = "∉" sgmldecl1_predefined_entity_replacement_text["notindot"] = "⋵̸" sgmldecl1_predefined_entity_replacement_text["notinE"] = "⋹̸" sgmldecl1_predefined_entity_replacement_text["notinva"] = "∉" sgmldecl1_predefined_entity_replacement_text["notinvb"] = "⋷" sgmldecl1_predefined_entity_replacement_text["notinvc"] = "⋶" sgmldecl1_predefined_entity_replacement_text["NotLeftTriangleBar"] = "⧏̸" sgmldecl1_predefined_entity_replacement_text["NotLeftTriangle"] = "⋪" sgmldecl1_predefined_entity_replacement_text["NotLeftTriangleEqual"] = "⋬" sgmldecl1_predefined_entity_replacement_text["NotLess"] = "≮" sgmldecl1_predefined_entity_replacement_text["NotLessEqual"] = "≰" sgmldecl1_predefined_entity_replacement_text["NotLessGreater"] = "≸" sgmldecl1_predefined_entity_replacement_text["NotLessLess"] = "≪̸" sgmldecl1_predefined_entity_replacement_text["NotLessSlantEqual"] = "⩽̸" sgmldecl1_predefined_entity_replacement_text["NotLessTilde"] = "≴" sgmldecl1_predefined_entity_replacement_text["NotNestedGreaterGreater"] = "⪢̸" sgmldecl1_predefined_entity_replacement_text["NotNestedLessLess"] = "⪡̸" sgmldecl1_predefined_entity_replacement_text["notni"] = "∌" sgmldecl1_predefined_entity_replacement_text["notniva"] = "∌" sgmldecl1_predefined_entity_replacement_text["notnivb"] = "⋾" sgmldecl1_predefined_entity_replacement_text["notnivc"] = "⋽" sgmldecl1_predefined_entity_replacement_text["NotPrecedes"] = "⊀" sgmldecl1_predefined_entity_replacement_text["NotPrecedesEqual"] = "⪯̸" sgmldecl1_predefined_entity_replacement_text["NotPrecedesSlantEqual"] = "⋠" sgmldecl1_predefined_entity_replacement_text["NotReverseElement"] = "∌" sgmldecl1_predefined_entity_replacement_text["NotRightTriangleBar"] = "⧐̸" sgmldecl1_predefined_entity_replacement_text["NotRightTriangle"] = "⋫" sgmldecl1_predefined_entity_replacement_text["NotRightTriangleEqual"] = "⋭" sgmldecl1_predefined_entity_replacement_text["NotSquareSubset"] = "⊏̸" sgmldecl1_predefined_entity_replacement_text["NotSquareSubsetEqual"] = "⋢" sgmldecl1_predefined_entity_replacement_text["NotSquareSuperset"] = "⊐̸" sgmldecl1_predefined_entity_replacement_text["NotSquareSupersetEqual"] = "⋣" sgmldecl1_predefined_entity_replacement_text["NotSubset"] = "⊂⃒" sgmldecl1_predefined_entity_replacement_text["NotSubsetEqual"] = "⊈" sgmldecl1_predefined_entity_replacement_text["NotSucceeds"] = "⊁" sgmldecl1_predefined_entity_replacement_text["NotSucceedsEqual"] = "⪰̸" sgmldecl1_predefined_entity_replacement_text["NotSucceedsSlantEqual"] = "⋡" sgmldecl1_predefined_entity_replacement_text["NotSucceedsTilde"] = "≿̸" sgmldecl1_predefined_entity_replacement_text["NotSuperset"] = "⊃⃒" sgmldecl1_predefined_entity_replacement_text["NotSupersetEqual"] = "⊉" sgmldecl1_predefined_entity_replacement_text["NotTilde"] = "≁" sgmldecl1_predefined_entity_replacement_text["NotTildeEqual"] = "≄" sgmldecl1_predefined_entity_replacement_text["NotTildeFullEqual"] = "≇" sgmldecl1_predefined_entity_replacement_text["NotTildeTilde"] = "≉" sgmldecl1_predefined_entity_replacement_text["NotVerticalBar"] = "∤" sgmldecl1_predefined_entity_replacement_text["nparallel"] = "∦" sgmldecl1_predefined_entity_replacement_text["npar"] = "∦" sgmldecl1_predefined_entity_replacement_text["nparsl"] = "⫽⃥" sgmldecl1_predefined_entity_replacement_text["npart"] = "∂̸" sgmldecl1_predefined_entity_replacement_text["npolint"] = "⨔" sgmldecl1_predefined_entity_replacement_text["npr"] = "⊀" sgmldecl1_predefined_entity_replacement_text["nprcue"] = "⋠" sgmldecl1_predefined_entity_replacement_text["nprec"] = "⊀" sgmldecl1_predefined_entity_replacement_text["npreceq"] = "⪯̸" sgmldecl1_predefined_entity_replacement_text["npre"] = "⪯̸" sgmldecl1_predefined_entity_replacement_text["nrarrc"] = "⤳̸" sgmldecl1_predefined_entity_replacement_text["nrarr"] = "↛" sgmldecl1_predefined_entity_replacement_text["nrArr"] = "⇏" sgmldecl1_predefined_entity_replacement_text["nrarrw"] = "↝̸" sgmldecl1_predefined_entity_replacement_text["nrightarrow"] = "↛" sgmldecl1_predefined_entity_replacement_text["nRightarrow"] = "⇏" sgmldecl1_predefined_entity_replacement_text["nrtri"] = "⋫" sgmldecl1_predefined_entity_replacement_text["nrtrie"] = "⋭" sgmldecl1_predefined_entity_replacement_text["nsc"] = "⊁" sgmldecl1_predefined_entity_replacement_text["nsccue"] = "⋡" sgmldecl1_predefined_entity_replacement_text["nsce"] = "⪰̸" sgmldecl1_predefined_entity_replacement_text["Nscr"] = "𝒩" sgmldecl1_predefined_entity_replacement_text["nscr"] = "𝓃" sgmldecl1_predefined_entity_replacement_text["nshortmid"] = "∤" sgmldecl1_predefined_entity_replacement_text["nshortparallel"] = "∦" sgmldecl1_predefined_entity_replacement_text["nsim"] = "≁" sgmldecl1_predefined_entity_replacement_text["nsime"] = "≄" sgmldecl1_predefined_entity_replacement_text["nsimeq"] = "≄" sgmldecl1_predefined_entity_replacement_text["nsmid"] = "∤" sgmldecl1_predefined_entity_replacement_text["nspar"] = "∦" sgmldecl1_predefined_entity_replacement_text["nsqsube"] = "⋢" sgmldecl1_predefined_entity_replacement_text["nsqsupe"] = "⋣" sgmldecl1_predefined_entity_replacement_text["nsub"] = "⊄" sgmldecl1_predefined_entity_replacement_text["nsubE"] = "⫅̸" sgmldecl1_predefined_entity_replacement_text["nsube"] = "⊈" sgmldecl1_predefined_entity_replacement_text["nsubset"] = "⊂⃒" sgmldecl1_predefined_entity_replacement_text["nsubseteq"] = "⊈" sgmldecl1_predefined_entity_replacement_text["nsubseteqq"] = "⫅̸" sgmldecl1_predefined_entity_replacement_text["nsucc"] = "⊁" sgmldecl1_predefined_entity_replacement_text["nsucceq"] = "⪰̸" sgmldecl1_predefined_entity_replacement_text["nsup"] = "⊅" sgmldecl1_predefined_entity_replacement_text["nsupE"] = "⫆̸" sgmldecl1_predefined_entity_replacement_text["nsupe"] = "⊉" sgmldecl1_predefined_entity_replacement_text["nsupset"] = "⊃⃒" sgmldecl1_predefined_entity_replacement_text["nsupseteq"] = "⊉" sgmldecl1_predefined_entity_replacement_text["nsupseteqq"] = "⫆̸" sgmldecl1_predefined_entity_replacement_text["ntgl"] = "≹" sgmldecl1_predefined_entity_replacement_text["Ntilde"] = "Ñ" sgmldecl1_predefined_entity_replacement_text["ntilde"] = "ñ" sgmldecl1_predefined_entity_replacement_text["ntlg"] = "≸" sgmldecl1_predefined_entity_replacement_text["ntriangleleft"] = "⋪" sgmldecl1_predefined_entity_replacement_text["ntrianglelefteq"] = "⋬" sgmldecl1_predefined_entity_replacement_text["ntriangleright"] = "⋫" sgmldecl1_predefined_entity_replacement_text["ntrianglerighteq"] = "⋭" sgmldecl1_predefined_entity_replacement_text["Nu"] = "Ν" sgmldecl1_predefined_entity_replacement_text["nu"] = "ν" sgmldecl1_predefined_entity_replacement_text["num"] = "#" sgmldecl1_predefined_entity_replacement_text["numero"] = "№" sgmldecl1_predefined_entity_replacement_text["numsp"] = " " sgmldecl1_predefined_entity_replacement_text["nvap"] = "≍⃒" sgmldecl1_predefined_entity_replacement_text["nvdash"] = "⊬" sgmldecl1_predefined_entity_replacement_text["nvDash"] = "⊭" sgmldecl1_predefined_entity_replacement_text["nVdash"] = "⊮" sgmldecl1_predefined_entity_replacement_text["nVDash"] = "⊯" sgmldecl1_predefined_entity_replacement_text["nvge"] = "≥⃒" sgmldecl1_predefined_entity_replacement_text["nvgt"] = ">⃒" sgmldecl1_predefined_entity_replacement_text["nvHarr"] = "⤄" sgmldecl1_predefined_entity_replacement_text["nvinfin"] = "⧞" sgmldecl1_predefined_entity_replacement_text["nvlArr"] = "⤂" sgmldecl1_predefined_entity_replacement_text["nvle"] = "≤⃒" sgmldecl1_predefined_entity_replacement_text["nvlt"] = "<⃒" sgmldecl1_predefined_entity_replacement_text["nvltrie"] = "⊴⃒" sgmldecl1_predefined_entity_replacement_text["nvrArr"] = "⤃" sgmldecl1_predefined_entity_replacement_text["nvrtrie"] = "⊵⃒" sgmldecl1_predefined_entity_replacement_text["nvsim"] = "∼⃒" sgmldecl1_predefined_entity_replacement_text["nwarhk"] = "⤣" sgmldecl1_predefined_entity_replacement_text["nwarr"] = "↖" sgmldecl1_predefined_entity_replacement_text["nwArr"] = "⇖" sgmldecl1_predefined_entity_replacement_text["nwarrow"] = "↖" sgmldecl1_predefined_entity_replacement_text["nwnear"] = "⤧" sgmldecl1_predefined_entity_replacement_text["Oacute"] = "Ó" sgmldecl1_predefined_entity_replacement_text["oacute"] = "ó" sgmldecl1_predefined_entity_replacement_text["oast"] = "⊛" sgmldecl1_predefined_entity_replacement_text["Ocirc"] = "Ô" sgmldecl1_predefined_entity_replacement_text["ocirc"] = "ô" sgmldecl1_predefined_entity_replacement_text["ocir"] = "⊚" sgmldecl1_predefined_entity_replacement_text["Ocy"] = "О" sgmldecl1_predefined_entity_replacement_text["ocy"] = "о" sgmldecl1_predefined_entity_replacement_text["odash"] = "⊝" sgmldecl1_predefined_entity_replacement_text["Odblac"] = "Ő" sgmldecl1_predefined_entity_replacement_text["odblac"] = "ő" sgmldecl1_predefined_entity_replacement_text["odiv"] = "⨸" sgmldecl1_predefined_entity_replacement_text["odot"] = "⊙" sgmldecl1_predefined_entity_replacement_text["odsold"] = "⦼" sgmldecl1_predefined_entity_replacement_text["OElig"] = "Œ" sgmldecl1_predefined_entity_replacement_text["oelig"] = "œ" sgmldecl1_predefined_entity_replacement_text["ofcir"] = "⦿" sgmldecl1_predefined_entity_replacement_text["Ofr"] = "𝔒" sgmldecl1_predefined_entity_replacement_text["ofr"] = "𝔬" sgmldecl1_predefined_entity_replacement_text["ogon"] = "˛" sgmldecl1_predefined_entity_replacement_text["Ograve"] = "Ò" sgmldecl1_predefined_entity_replacement_text["ograve"] = "ò" sgmldecl1_predefined_entity_replacement_text["ogt"] = "⧁" sgmldecl1_predefined_entity_replacement_text["ohbar"] = "⦵" sgmldecl1_predefined_entity_replacement_text["ohm"] = "Ω" sgmldecl1_predefined_entity_replacement_text["oint"] = "∮" sgmldecl1_predefined_entity_replacement_text["olarr"] = "↺" sgmldecl1_predefined_entity_replacement_text["olcir"] = "⦾" sgmldecl1_predefined_entity_replacement_text["olcross"] = "⦻" sgmldecl1_predefined_entity_replacement_text["oline"] = "‾" sgmldecl1_predefined_entity_replacement_text["olt"] = "⧀" sgmldecl1_predefined_entity_replacement_text["Omacr"] = "Ō" sgmldecl1_predefined_entity_replacement_text["omacr"] = "ō" sgmldecl1_predefined_entity_replacement_text["Omega"] = "Ω" sgmldecl1_predefined_entity_replacement_text["omega"] = "ω" sgmldecl1_predefined_entity_replacement_text["Omicron"] = "Ο" sgmldecl1_predefined_entity_replacement_text["omicron"] = "ο" sgmldecl1_predefined_entity_replacement_text["omid"] = "⦶" sgmldecl1_predefined_entity_replacement_text["ominus"] = "⊖" sgmldecl1_predefined_entity_replacement_text["Oopf"] = "𝕆" sgmldecl1_predefined_entity_replacement_text["oopf"] = "𝕠" sgmldecl1_predefined_entity_replacement_text["opar"] = "⦷" sgmldecl1_predefined_entity_replacement_text["OpenCurlyDoubleQuote"] = "“" sgmldecl1_predefined_entity_replacement_text["OpenCurlyQuote"] = "‘" sgmldecl1_predefined_entity_replacement_text["operp"] = "⦹" sgmldecl1_predefined_entity_replacement_text["oplus"] = "⊕" sgmldecl1_predefined_entity_replacement_text["orarr"] = "↻" sgmldecl1_predefined_entity_replacement_text["Or"] = "⩔" sgmldecl1_predefined_entity_replacement_text["or"] = "∨" sgmldecl1_predefined_entity_replacement_text["ord"] = "⩝" sgmldecl1_predefined_entity_replacement_text["order"] = "ℴ" sgmldecl1_predefined_entity_replacement_text["orderof"] = "ℴ" sgmldecl1_predefined_entity_replacement_text["ordf"] = "ª" sgmldecl1_predefined_entity_replacement_text["ordm"] = "º" sgmldecl1_predefined_entity_replacement_text["origof"] = "⊶" sgmldecl1_predefined_entity_replacement_text["oror"] = "⩖" sgmldecl1_predefined_entity_replacement_text["orslope"] = "⩗" sgmldecl1_predefined_entity_replacement_text["orv"] = "⩛" sgmldecl1_predefined_entity_replacement_text["oS"] = "Ⓢ" sgmldecl1_predefined_entity_replacement_text["Oscr"] = "𝒪" sgmldecl1_predefined_entity_replacement_text["oscr"] = "ℴ" sgmldecl1_predefined_entity_replacement_text["Oslash"] = "Ø" sgmldecl1_predefined_entity_replacement_text["oslash"] = "ø" sgmldecl1_predefined_entity_replacement_text["osol"] = "⊘" sgmldecl1_predefined_entity_replacement_text["Otilde"] = "Õ" sgmldecl1_predefined_entity_replacement_text["otilde"] = "õ" sgmldecl1_predefined_entity_replacement_text["otimesas"] = "⨶" sgmldecl1_predefined_entity_replacement_text["Otimes"] = "⨷" sgmldecl1_predefined_entity_replacement_text["otimes"] = "⊗" sgmldecl1_predefined_entity_replacement_text["Ouml"] = "Ö" sgmldecl1_predefined_entity_replacement_text["ouml"] = "ö" sgmldecl1_predefined_entity_replacement_text["ovbar"] = "⌽" sgmldecl1_predefined_entity_replacement_text["OverBar"] = "‾" sgmldecl1_predefined_entity_replacement_text["OverBrace"] = "⏞" sgmldecl1_predefined_entity_replacement_text["OverBracket"] = "⎴" sgmldecl1_predefined_entity_replacement_text["OverParenthesis"] = "⏜" sgmldecl1_predefined_entity_replacement_text["para"] = "¶" sgmldecl1_predefined_entity_replacement_text["parallel"] = "∥" sgmldecl1_predefined_entity_replacement_text["par"] = "∥" sgmldecl1_predefined_entity_replacement_text["parsim"] = "⫳" sgmldecl1_predefined_entity_replacement_text["parsl"] = "⫽" sgmldecl1_predefined_entity_replacement_text["part"] = "∂" sgmldecl1_predefined_entity_replacement_text["PartialD"] = "∂" sgmldecl1_predefined_entity_replacement_text["Pcy"] = "П" sgmldecl1_predefined_entity_replacement_text["pcy"] = "п" sgmldecl1_predefined_entity_replacement_text["percnt"] = "%" sgmldecl1_predefined_entity_replacement_text["period"] = "." sgmldecl1_predefined_entity_replacement_text["permil"] = "‰" sgmldecl1_predefined_entity_replacement_text["perp"] = "⊥" sgmldecl1_predefined_entity_replacement_text["pertenk"] = "‱" sgmldecl1_predefined_entity_replacement_text["Pfr"] = "𝔓" sgmldecl1_predefined_entity_replacement_text["pfr"] = "𝔭" sgmldecl1_predefined_entity_replacement_text["Phi"] = "Φ" sgmldecl1_predefined_entity_replacement_text["phi"] = "φ" sgmldecl1_predefined_entity_replacement_text["phiv"] = "ϕ" sgmldecl1_predefined_entity_replacement_text["phmmat"] = "ℳ" sgmldecl1_predefined_entity_replacement_text["phone"] = "☎" sgmldecl1_predefined_entity_replacement_text["Pi"] = "Π" sgmldecl1_predefined_entity_replacement_text["pi"] = "π" sgmldecl1_predefined_entity_replacement_text["pitchfork"] = "⋔" sgmldecl1_predefined_entity_replacement_text["piv"] = "ϖ" sgmldecl1_predefined_entity_replacement_text["planck"] = "ℏ" sgmldecl1_predefined_entity_replacement_text["planckh"] = "ℎ" sgmldecl1_predefined_entity_replacement_text["plankv"] = "ℏ" sgmldecl1_predefined_entity_replacement_text["plusacir"] = "⨣" sgmldecl1_predefined_entity_replacement_text["plusb"] = "⊞" sgmldecl1_predefined_entity_replacement_text["pluscir"] = "⨢" sgmldecl1_predefined_entity_replacement_text["plus"] = "+" sgmldecl1_predefined_entity_replacement_text["plusdo"] = "∔" sgmldecl1_predefined_entity_replacement_text["plusdu"] = "⨥" sgmldecl1_predefined_entity_replacement_text["pluse"] = "⩲" sgmldecl1_predefined_entity_replacement_text["PlusMinus"] = "±" sgmldecl1_predefined_entity_replacement_text["plusmn"] = "±" sgmldecl1_predefined_entity_replacement_text["plussim"] = "⨦" sgmldecl1_predefined_entity_replacement_text["plustwo"] = "⨧" sgmldecl1_predefined_entity_replacement_text["pm"] = "±" sgmldecl1_predefined_entity_replacement_text["Poincareplane"] = "ℌ" sgmldecl1_predefined_entity_replacement_text["pointint"] = "⨕" sgmldecl1_predefined_entity_replacement_text["popf"] = "𝕡" sgmldecl1_predefined_entity_replacement_text["Popf"] = "ℙ" sgmldecl1_predefined_entity_replacement_text["pound"] = "£" sgmldecl1_predefined_entity_replacement_text["prap"] = "⪷" sgmldecl1_predefined_entity_replacement_text["Pr"] = "⪻" sgmldecl1_predefined_entity_replacement_text["pr"] = "≺" sgmldecl1_predefined_entity_replacement_text["prcue"] = "≼" sgmldecl1_predefined_entity_replacement_text["precapprox"] = "⪷" sgmldecl1_predefined_entity_replacement_text["prec"] = "≺" sgmldecl1_predefined_entity_replacement_text["preccurlyeq"] = "≼" sgmldecl1_predefined_entity_replacement_text["Precedes"] = "≺" sgmldecl1_predefined_entity_replacement_text["PrecedesEqual"] = "⪯" sgmldecl1_predefined_entity_replacement_text["PrecedesSlantEqual"] = "≼" sgmldecl1_predefined_entity_replacement_text["PrecedesTilde"] = "≾" sgmldecl1_predefined_entity_replacement_text["preceq"] = "⪯" sgmldecl1_predefined_entity_replacement_text["precnapprox"] = "⪹" sgmldecl1_predefined_entity_replacement_text["precneqq"] = "⪵" sgmldecl1_predefined_entity_replacement_text["precnsim"] = "⋨" sgmldecl1_predefined_entity_replacement_text["pre"] = "⪯" sgmldecl1_predefined_entity_replacement_text["prE"] = "⪳" sgmldecl1_predefined_entity_replacement_text["precsim"] = "≾" sgmldecl1_predefined_entity_replacement_text["prime"] = "′" sgmldecl1_predefined_entity_replacement_text["Prime"] = "″" sgmldecl1_predefined_entity_replacement_text["primes"] = "ℙ" sgmldecl1_predefined_entity_replacement_text["prnap"] = "⪹" sgmldecl1_predefined_entity_replacement_text["prnE"] = "⪵" sgmldecl1_predefined_entity_replacement_text["prnsim"] = "⋨" sgmldecl1_predefined_entity_replacement_text["prod"] = "∏" sgmldecl1_predefined_entity_replacement_text["Product"] = "∏" sgmldecl1_predefined_entity_replacement_text["profalar"] = "⌮" sgmldecl1_predefined_entity_replacement_text["profline"] = "⌒" sgmldecl1_predefined_entity_replacement_text["profsurf"] = "⌓" sgmldecl1_predefined_entity_replacement_text["prop"] = "∝" sgmldecl1_predefined_entity_replacement_text["Proportional"] = "∝" sgmldecl1_predefined_entity_replacement_text["Proportion"] = "∷" sgmldecl1_predefined_entity_replacement_text["propto"] = "∝" sgmldecl1_predefined_entity_replacement_text["prsim"] = "≾" sgmldecl1_predefined_entity_replacement_text["prurel"] = "⊰" sgmldecl1_predefined_entity_replacement_text["Pscr"] = "𝒫" sgmldecl1_predefined_entity_replacement_text["pscr"] = "𝓅" sgmldecl1_predefined_entity_replacement_text["Psi"] = "Ψ" sgmldecl1_predefined_entity_replacement_text["psi"] = "ψ" sgmldecl1_predefined_entity_replacement_text["puncsp"] = " " sgmldecl1_predefined_entity_replacement_text["Qfr"] = "𝔔" sgmldecl1_predefined_entity_replacement_text["qfr"] = "𝔮" sgmldecl1_predefined_entity_replacement_text["qint"] = "⨌" sgmldecl1_predefined_entity_replacement_text["qopf"] = "𝕢" sgmldecl1_predefined_entity_replacement_text["Qopf"] = "ℚ" sgmldecl1_predefined_entity_replacement_text["qprime"] = "⁗" sgmldecl1_predefined_entity_replacement_text["Qscr"] = "𝒬" sgmldecl1_predefined_entity_replacement_text["qscr"] = "𝓆" sgmldecl1_predefined_entity_replacement_text["quaternions"] = "ℍ" sgmldecl1_predefined_entity_replacement_text["quatint"] = "⨖" sgmldecl1_predefined_entity_replacement_text["quest"] = "?" sgmldecl1_predefined_entity_replacement_text["questeq"] = "≟" sgmldecl1_predefined_entity_replacement_text["quot"] = """ sgmldecl1_predefined_entity_replacement_text["QUOT"] = """ sgmldecl1_predefined_entity_replacement_text["rAarr"] = "⇛" sgmldecl1_predefined_entity_replacement_text["race"] = "∽̱" sgmldecl1_predefined_entity_replacement_text["Racute"] = "Ŕ" sgmldecl1_predefined_entity_replacement_text["racute"] = "ŕ" sgmldecl1_predefined_entity_replacement_text["radic"] = "√" sgmldecl1_predefined_entity_replacement_text["raemptyv"] = "⦳" sgmldecl1_predefined_entity_replacement_text["rang"] = "⟩" sgmldecl1_predefined_entity_replacement_text["Rang"] = "⟫" sgmldecl1_predefined_entity_replacement_text["rangd"] = "⦒" sgmldecl1_predefined_entity_replacement_text["range"] = "⦥" sgmldecl1_predefined_entity_replacement_text["rangle"] = "⟩" sgmldecl1_predefined_entity_replacement_text["raquo"] = "»" sgmldecl1_predefined_entity_replacement_text["rarrap"] = "⥵" sgmldecl1_predefined_entity_replacement_text["rarrb"] = "⇥" sgmldecl1_predefined_entity_replacement_text["rarrbfs"] = "⤠" sgmldecl1_predefined_entity_replacement_text["rarrc"] = "⤳" sgmldecl1_predefined_entity_replacement_text["rarr"] = "→" sgmldecl1_predefined_entity_replacement_text["Rarr"] = "↠" sgmldecl1_predefined_entity_replacement_text["rArr"] = "⇒" sgmldecl1_predefined_entity_replacement_text["rarrfs"] = "⤞" sgmldecl1_predefined_entity_replacement_text["rarrhk"] = "↪" sgmldecl1_predefined_entity_replacement_text["rarrlp"] = "↬" sgmldecl1_predefined_entity_replacement_text["rarrpl"] = "⥅" sgmldecl1_predefined_entity_replacement_text["rarrsim"] = "⥴" sgmldecl1_predefined_entity_replacement_text["Rarrtl"] = "⤖" sgmldecl1_predefined_entity_replacement_text["rarrtl"] = "↣" sgmldecl1_predefined_entity_replacement_text["rarrw"] = "↝" sgmldecl1_predefined_entity_replacement_text["ratail"] = "⤚" sgmldecl1_predefined_entity_replacement_text["rAtail"] = "⤜" sgmldecl1_predefined_entity_replacement_text["ratio"] = "∶" sgmldecl1_predefined_entity_replacement_text["rationals"] = "ℚ" sgmldecl1_predefined_entity_replacement_text["rbarr"] = "⤍" sgmldecl1_predefined_entity_replacement_text["rBarr"] = "⤏" sgmldecl1_predefined_entity_replacement_text["RBarr"] = "⤐" sgmldecl1_predefined_entity_replacement_text["rbbrk"] = "❳" sgmldecl1_predefined_entity_replacement_text["rbrace"] = "}" sgmldecl1_predefined_entity_replacement_text["rbrack"] = "]" sgmldecl1_predefined_entity_replacement_text["rbrke"] = "⦌" sgmldecl1_predefined_entity_replacement_text["rbrksld"] = "⦎" sgmldecl1_predefined_entity_replacement_text["rbrkslu"] = "⦐" sgmldecl1_predefined_entity_replacement_text["Rcaron"] = "Ř" sgmldecl1_predefined_entity_replacement_text["rcaron"] = "ř" sgmldecl1_predefined_entity_replacement_text["Rcedil"] = "Ŗ" sgmldecl1_predefined_entity_replacement_text["rcedil"] = "ŗ" sgmldecl1_predefined_entity_replacement_text["rceil"] = "⌉" sgmldecl1_predefined_entity_replacement_text["rcub"] = "}" sgmldecl1_predefined_entity_replacement_text["Rcy"] = "Р" sgmldecl1_predefined_entity_replacement_text["rcy"] = "р" sgmldecl1_predefined_entity_replacement_text["rdca"] = "⤷" sgmldecl1_predefined_entity_replacement_text["rdldhar"] = "⥩" sgmldecl1_predefined_entity_replacement_text["rdquo"] = "”" sgmldecl1_predefined_entity_replacement_text["rdquor"] = "”" sgmldecl1_predefined_entity_replacement_text["rdsh"] = "↳" sgmldecl1_predefined_entity_replacement_text["real"] = "ℜ" sgmldecl1_predefined_entity_replacement_text["realine"] = "ℛ" sgmldecl1_predefined_entity_replacement_text["realpart"] = "ℜ" sgmldecl1_predefined_entity_replacement_text["reals"] = "ℝ" sgmldecl1_predefined_entity_replacement_text["Re"] = "ℜ" sgmldecl1_predefined_entity_replacement_text["rect"] = "▭" sgmldecl1_predefined_entity_replacement_text["reg"] = "®" sgmldecl1_predefined_entity_replacement_text["REG"] = "®" sgmldecl1_predefined_entity_replacement_text["ReverseElement"] = "∋" sgmldecl1_predefined_entity_replacement_text["ReverseEquilibrium"] = "⇋" sgmldecl1_predefined_entity_replacement_text["ReverseUpEquilibrium"] = "⥯" sgmldecl1_predefined_entity_replacement_text["rfisht"] = "⥽" sgmldecl1_predefined_entity_replacement_text["rfloor"] = "⌋" sgmldecl1_predefined_entity_replacement_text["rfr"] = "𝔯" sgmldecl1_predefined_entity_replacement_text["Rfr"] = "ℜ" sgmldecl1_predefined_entity_replacement_text["rHar"] = "⥤" sgmldecl1_predefined_entity_replacement_text["rhard"] = "⇁" sgmldecl1_predefined_entity_replacement_text["rharu"] = "⇀" sgmldecl1_predefined_entity_replacement_text["rharul"] = "⥬" sgmldecl1_predefined_entity_replacement_text["Rho"] = "Ρ" sgmldecl1_predefined_entity_replacement_text["rho"] = "ρ" sgmldecl1_predefined_entity_replacement_text["rhov"] = "ϱ" sgmldecl1_predefined_entity_replacement_text["RightAngleBracket"] = "⟩" sgmldecl1_predefined_entity_replacement_text["RightArrowBar"] = "⇥" sgmldecl1_predefined_entity_replacement_text["rightarrow"] = "→" sgmldecl1_predefined_entity_replacement_text["RightArrow"] = "→" sgmldecl1_predefined_entity_replacement_text["Rightarrow"] = "⇒" sgmldecl1_predefined_entity_replacement_text["RightArrowLeftArrow"] = "⇄" sgmldecl1_predefined_entity_replacement_text["rightarrowtail"] = "↣" sgmldecl1_predefined_entity_replacement_text["RightCeiling"] = "⌉" sgmldecl1_predefined_entity_replacement_text["RightDoubleBracket"] = "⟧" sgmldecl1_predefined_entity_replacement_text["RightDownTeeVector"] = "⥝" sgmldecl1_predefined_entity_replacement_text["RightDownVectorBar"] = "⥕" sgmldecl1_predefined_entity_replacement_text["RightDownVector"] = "⇂" sgmldecl1_predefined_entity_replacement_text["RightFloor"] = "⌋" sgmldecl1_predefined_entity_replacement_text["rightharpoondown"] = "⇁" sgmldecl1_predefined_entity_replacement_text["rightharpoonup"] = "⇀" sgmldecl1_predefined_entity_replacement_text["rightleftarrows"] = "⇄" sgmldecl1_predefined_entity_replacement_text["rightleftharpoons"] = "⇌" sgmldecl1_predefined_entity_replacement_text["rightrightarrows"] = "⇉" sgmldecl1_predefined_entity_replacement_text["rightsquigarrow"] = "↝" sgmldecl1_predefined_entity_replacement_text["RightTeeArrow"] = "↦" sgmldecl1_predefined_entity_replacement_text["RightTee"] = "⊢" sgmldecl1_predefined_entity_replacement_text["RightTeeVector"] = "⥛" sgmldecl1_predefined_entity_replacement_text["rightthreetimes"] = "⋌" sgmldecl1_predefined_entity_replacement_text["RightTriangleBar"] = "⧐" sgmldecl1_predefined_entity_replacement_text["RightTriangle"] = "⊳" sgmldecl1_predefined_entity_replacement_text["RightTriangleEqual"] = "⊵" sgmldecl1_predefined_entity_replacement_text["RightUpDownVector"] = "⥏" sgmldecl1_predefined_entity_replacement_text["RightUpTeeVector"] = "⥜" sgmldecl1_predefined_entity_replacement_text["RightUpVectorBar"] = "⥔" sgmldecl1_predefined_entity_replacement_text["RightUpVector"] = "↾" sgmldecl1_predefined_entity_replacement_text["RightVectorBar"] = "⥓" sgmldecl1_predefined_entity_replacement_text["RightVector"] = "⇀" sgmldecl1_predefined_entity_replacement_text["ring"] = "˚" sgmldecl1_predefined_entity_replacement_text["risingdotseq"] = "≓" sgmldecl1_predefined_entity_replacement_text["rlarr"] = "⇄" sgmldecl1_predefined_entity_replacement_text["rlhar"] = "⇌" sgmldecl1_predefined_entity_replacement_text["rlm"] = "‏" sgmldecl1_predefined_entity_replacement_text["rmoustache"] = "⎱" sgmldecl1_predefined_entity_replacement_text["rmoust"] = "⎱" sgmldecl1_predefined_entity_replacement_text["rnmid"] = "⫮" sgmldecl1_predefined_entity_replacement_text["roang"] = "⟭" sgmldecl1_predefined_entity_replacement_text["roarr"] = "⇾" sgmldecl1_predefined_entity_replacement_text["robrk"] = "⟧" sgmldecl1_predefined_entity_replacement_text["ropar"] = "⦆" sgmldecl1_predefined_entity_replacement_text["ropf"] = "𝕣" sgmldecl1_predefined_entity_replacement_text["Ropf"] = "ℝ" sgmldecl1_predefined_entity_replacement_text["roplus"] = "⨮" sgmldecl1_predefined_entity_replacement_text["rotimes"] = "⨵" sgmldecl1_predefined_entity_replacement_text["RoundImplies"] = "⥰" sgmldecl1_predefined_entity_replacement_text["rpar"] = ")" sgmldecl1_predefined_entity_replacement_text["rpargt"] = "⦔" sgmldecl1_predefined_entity_replacement_text["rppolint"] = "⨒" sgmldecl1_predefined_entity_replacement_text["rrarr"] = "⇉" sgmldecl1_predefined_entity_replacement_text["Rrightarrow"] = "⇛" sgmldecl1_predefined_entity_replacement_text["rsaquo"] = "›" sgmldecl1_predefined_entity_replacement_text["rscr"] = "𝓇" sgmldecl1_predefined_entity_replacement_text["Rscr"] = "ℛ" sgmldecl1_predefined_entity_replacement_text["rsh"] = "↱" sgmldecl1_predefined_entity_replacement_text["Rsh"] = "↱" sgmldecl1_predefined_entity_replacement_text["rsqb"] = "]" sgmldecl1_predefined_entity_replacement_text["rsquo"] = "’" sgmldecl1_predefined_entity_replacement_text["rsquor"] = "’" sgmldecl1_predefined_entity_replacement_text["rthree"] = "⋌" sgmldecl1_predefined_entity_replacement_text["rtimes"] = "⋊" sgmldecl1_predefined_entity_replacement_text["rtri"] = "▹" sgmldecl1_predefined_entity_replacement_text["rtrie"] = "⊵" sgmldecl1_predefined_entity_replacement_text["rtrif"] = "▸" sgmldecl1_predefined_entity_replacement_text["rtriltri"] = "⧎" sgmldecl1_predefined_entity_replacement_text["RuleDelayed"] = "⧴" sgmldecl1_predefined_entity_replacement_text["ruluhar"] = "⥨" sgmldecl1_predefined_entity_replacement_text["rx"] = "℞" sgmldecl1_predefined_entity_replacement_text["Sacute"] = "Ś" sgmldecl1_predefined_entity_replacement_text["sacute"] = "ś" sgmldecl1_predefined_entity_replacement_text["sbquo"] = "‚" sgmldecl1_predefined_entity_replacement_text["scap"] = "⪸" sgmldecl1_predefined_entity_replacement_text["Scaron"] = "Š" sgmldecl1_predefined_entity_replacement_text["scaron"] = "š" sgmldecl1_predefined_entity_replacement_text["Sc"] = "⪼" sgmldecl1_predefined_entity_replacement_text["sc"] = "≻" sgmldecl1_predefined_entity_replacement_text["sccue"] = "≽" sgmldecl1_predefined_entity_replacement_text["sce"] = "⪰" sgmldecl1_predefined_entity_replacement_text["scE"] = "⪴" sgmldecl1_predefined_entity_replacement_text["Scedil"] = "Ş" sgmldecl1_predefined_entity_replacement_text["scedil"] = "ş" sgmldecl1_predefined_entity_replacement_text["Scirc"] = "Ŝ" sgmldecl1_predefined_entity_replacement_text["scirc"] = "ŝ" sgmldecl1_predefined_entity_replacement_text["scnap"] = "⪺" sgmldecl1_predefined_entity_replacement_text["scnE"] = "⪶" sgmldecl1_predefined_entity_replacement_text["scnsim"] = "⋩" sgmldecl1_predefined_entity_replacement_text["scpolint"] = "⨓" sgmldecl1_predefined_entity_replacement_text["scsim"] = "≿" sgmldecl1_predefined_entity_replacement_text["Scy"] = "С" sgmldecl1_predefined_entity_replacement_text["scy"] = "с" sgmldecl1_predefined_entity_replacement_text["sdotb"] = "⊡" sgmldecl1_predefined_entity_replacement_text["sdot"] = "⋅" sgmldecl1_predefined_entity_replacement_text["sdote"] = "⩦" sgmldecl1_predefined_entity_replacement_text["searhk"] = "⤥" sgmldecl1_predefined_entity_replacement_text["searr"] = "↘" sgmldecl1_predefined_entity_replacement_text["seArr"] = "⇘" sgmldecl1_predefined_entity_replacement_text["searrow"] = "↘" sgmldecl1_predefined_entity_replacement_text["sect"] = "§" sgmldecl1_predefined_entity_replacement_text["semi"] = ";" sgmldecl1_predefined_entity_replacement_text["seswar"] = "⤩" sgmldecl1_predefined_entity_replacement_text["setminus"] = "∖" sgmldecl1_predefined_entity_replacement_text["setmn"] = "∖" sgmldecl1_predefined_entity_replacement_text["sext"] = "✶" sgmldecl1_predefined_entity_replacement_text["Sfr"] = "𝔖" sgmldecl1_predefined_entity_replacement_text["sfr"] = "𝔰" sgmldecl1_predefined_entity_replacement_text["sfrown"] = "⌢" sgmldecl1_predefined_entity_replacement_text["sharp"] = "♯" sgmldecl1_predefined_entity_replacement_text["SHCHcy"] = "Щ" sgmldecl1_predefined_entity_replacement_text["shchcy"] = "щ" sgmldecl1_predefined_entity_replacement_text["SHcy"] = "Ш" sgmldecl1_predefined_entity_replacement_text["shcy"] = "ш" sgmldecl1_predefined_entity_replacement_text["ShortDownArrow"] = "↓" sgmldecl1_predefined_entity_replacement_text["ShortLeftArrow"] = "←" sgmldecl1_predefined_entity_replacement_text["shortmid"] = "∣" sgmldecl1_predefined_entity_replacement_text["shortparallel"] = "∥" sgmldecl1_predefined_entity_replacement_text["ShortRightArrow"] = "→" sgmldecl1_predefined_entity_replacement_text["ShortUpArrow"] = "↑" sgmldecl1_predefined_entity_replacement_text["shy"] = "­" sgmldecl1_predefined_entity_replacement_text["Sigma"] = "Σ" sgmldecl1_predefined_entity_replacement_text["sigma"] = "σ" sgmldecl1_predefined_entity_replacement_text["sigmaf"] = "ς" sgmldecl1_predefined_entity_replacement_text["sigmav"] = "ς" sgmldecl1_predefined_entity_replacement_text["sim"] = "∼" sgmldecl1_predefined_entity_replacement_text["simdot"] = "⩪" sgmldecl1_predefined_entity_replacement_text["sime"] = "≃" sgmldecl1_predefined_entity_replacement_text["simeq"] = "≃" sgmldecl1_predefined_entity_replacement_text["simg"] = "⪞" sgmldecl1_predefined_entity_replacement_text["simgE"] = "⪠" sgmldecl1_predefined_entity_replacement_text["siml"] = "⪝" sgmldecl1_predefined_entity_replacement_text["simlE"] = "⪟" sgmldecl1_predefined_entity_replacement_text["simne"] = "≆" sgmldecl1_predefined_entity_replacement_text["simplus"] = "⨤" sgmldecl1_predefined_entity_replacement_text["simrarr"] = "⥲" sgmldecl1_predefined_entity_replacement_text["slarr"] = "←" sgmldecl1_predefined_entity_replacement_text["SmallCircle"] = "∘" sgmldecl1_predefined_entity_replacement_text["smallsetminus"] = "∖" sgmldecl1_predefined_entity_replacement_text["smashp"] = "⨳" sgmldecl1_predefined_entity_replacement_text["smeparsl"] = "⧤" sgmldecl1_predefined_entity_replacement_text["smid"] = "∣" sgmldecl1_predefined_entity_replacement_text["smile"] = "⌣" sgmldecl1_predefined_entity_replacement_text["smt"] = "⪪" sgmldecl1_predefined_entity_replacement_text["smte"] = "⪬" sgmldecl1_predefined_entity_replacement_text["smtes"] = "⪬︀" sgmldecl1_predefined_entity_replacement_text["SOFTcy"] = "Ь" sgmldecl1_predefined_entity_replacement_text["softcy"] = "ь" sgmldecl1_predefined_entity_replacement_text["solbar"] = "⌿" sgmldecl1_predefined_entity_replacement_text["solb"] = "⧄" sgmldecl1_predefined_entity_replacement_text["sol"] = "/" sgmldecl1_predefined_entity_replacement_text["Sopf"] = "𝕊" sgmldecl1_predefined_entity_replacement_text["sopf"] = "𝕤" sgmldecl1_predefined_entity_replacement_text["spades"] = "♠" sgmldecl1_predefined_entity_replacement_text["spadesuit"] = "♠" sgmldecl1_predefined_entity_replacement_text["spar"] = "∥" sgmldecl1_predefined_entity_replacement_text["sqcap"] = "⊓" sgmldecl1_predefined_entity_replacement_text["sqcaps"] = "⊓︀" sgmldecl1_predefined_entity_replacement_text["sqcup"] = "⊔" sgmldecl1_predefined_entity_replacement_text["sqcups"] = "⊔︀" sgmldecl1_predefined_entity_replacement_text["Sqrt"] = "√" sgmldecl1_predefined_entity_replacement_text["sqsub"] = "⊏" sgmldecl1_predefined_entity_replacement_text["sqsube"] = "⊑" sgmldecl1_predefined_entity_replacement_text["sqsubset"] = "⊏" sgmldecl1_predefined_entity_replacement_text["sqsubseteq"] = "⊑" sgmldecl1_predefined_entity_replacement_text["sqsup"] = "⊐" sgmldecl1_predefined_entity_replacement_text["sqsupe"] = "⊒" sgmldecl1_predefined_entity_replacement_text["sqsupset"] = "⊐" sgmldecl1_predefined_entity_replacement_text["sqsupseteq"] = "⊒" sgmldecl1_predefined_entity_replacement_text["square"] = "□" sgmldecl1_predefined_entity_replacement_text["Square"] = "□" sgmldecl1_predefined_entity_replacement_text["SquareIntersection"] = "⊓" sgmldecl1_predefined_entity_replacement_text["SquareSubset"] = "⊏" sgmldecl1_predefined_entity_replacement_text["SquareSubsetEqual"] = "⊑" sgmldecl1_predefined_entity_replacement_text["SquareSuperset"] = "⊐" sgmldecl1_predefined_entity_replacement_text["SquareSupersetEqual"] = "⊒" sgmldecl1_predefined_entity_replacement_text["SquareUnion"] = "⊔" sgmldecl1_predefined_entity_replacement_text["squarf"] = "▪" sgmldecl1_predefined_entity_replacement_text["squ"] = "□" sgmldecl1_predefined_entity_replacement_text["squf"] = "▪" sgmldecl1_predefined_entity_replacement_text["srarr"] = "→" sgmldecl1_predefined_entity_replacement_text["Sscr"] = "𝒮" sgmldecl1_predefined_entity_replacement_text["sscr"] = "𝓈" sgmldecl1_predefined_entity_replacement_text["ssetmn"] = "∖" sgmldecl1_predefined_entity_replacement_text["ssmile"] = "⌣" sgmldecl1_predefined_entity_replacement_text["sstarf"] = "⋆" sgmldecl1_predefined_entity_replacement_text["Star"] = "⋆" sgmldecl1_predefined_entity_replacement_text["star"] = "☆" sgmldecl1_predefined_entity_replacement_text["starf"] = "★" sgmldecl1_predefined_entity_replacement_text["straightepsilon"] = "ϵ" sgmldecl1_predefined_entity_replacement_text["straightphi"] = "ϕ" sgmldecl1_predefined_entity_replacement_text["strns"] = "¯" sgmldecl1_predefined_entity_replacement_text["sub"] = "⊂" sgmldecl1_predefined_entity_replacement_text["Sub"] = "⋐" sgmldecl1_predefined_entity_replacement_text["subdot"] = "⪽" sgmldecl1_predefined_entity_replacement_text["subE"] = "⫅" sgmldecl1_predefined_entity_replacement_text["sube"] = "⊆" sgmldecl1_predefined_entity_replacement_text["subedot"] = "⫃" sgmldecl1_predefined_entity_replacement_text["submult"] = "⫁" sgmldecl1_predefined_entity_replacement_text["subnE"] = "⫋" sgmldecl1_predefined_entity_replacement_text["subne"] = "⊊" sgmldecl1_predefined_entity_replacement_text["subplus"] = "⪿" sgmldecl1_predefined_entity_replacement_text["subrarr"] = "⥹" sgmldecl1_predefined_entity_replacement_text["subset"] = "⊂" sgmldecl1_predefined_entity_replacement_text["Subset"] = "⋐" sgmldecl1_predefined_entity_replacement_text["subseteq"] = "⊆" sgmldecl1_predefined_entity_replacement_text["subseteqq"] = "⫅" sgmldecl1_predefined_entity_replacement_text["SubsetEqual"] = "⊆" sgmldecl1_predefined_entity_replacement_text["subsetneq"] = "⊊" sgmldecl1_predefined_entity_replacement_text["subsetneqq"] = "⫋" sgmldecl1_predefined_entity_replacement_text["subsim"] = "⫇" sgmldecl1_predefined_entity_replacement_text["subsub"] = "⫕" sgmldecl1_predefined_entity_replacement_text["subsup"] = "⫓" sgmldecl1_predefined_entity_replacement_text["succapprox"] = "⪸" sgmldecl1_predefined_entity_replacement_text["succ"] = "≻" sgmldecl1_predefined_entity_replacement_text["succcurlyeq"] = "≽" sgmldecl1_predefined_entity_replacement_text["Succeeds"] = "≻" sgmldecl1_predefined_entity_replacement_text["SucceedsEqual"] = "⪰" sgmldecl1_predefined_entity_replacement_text["SucceedsSlantEqual"] = "≽" sgmldecl1_predefined_entity_replacement_text["SucceedsTilde"] = "≿" sgmldecl1_predefined_entity_replacement_text["succeq"] = "⪰" sgmldecl1_predefined_entity_replacement_text["succnapprox"] = "⪺" sgmldecl1_predefined_entity_replacement_text["succneqq"] = "⪶" sgmldecl1_predefined_entity_replacement_text["succnsim"] = "⋩" sgmldecl1_predefined_entity_replacement_text["succsim"] = "≿" sgmldecl1_predefined_entity_replacement_text["SuchThat"] = "∋" sgmldecl1_predefined_entity_replacement_text["sum"] = "∑" sgmldecl1_predefined_entity_replacement_text["Sum"] = "∑" sgmldecl1_predefined_entity_replacement_text["sung"] = "♪" sgmldecl1_predefined_entity_replacement_text["sup1"] = "¹" sgmldecl1_predefined_entity_replacement_text["sup2"] = "²" sgmldecl1_predefined_entity_replacement_text["sup3"] = "³" sgmldecl1_predefined_entity_replacement_text["sup"] = "⊃" sgmldecl1_predefined_entity_replacement_text["Sup"] = "⋑" sgmldecl1_predefined_entity_replacement_text["supdot"] = "⪾" sgmldecl1_predefined_entity_replacement_text["supdsub"] = "⫘" sgmldecl1_predefined_entity_replacement_text["supE"] = "⫆" sgmldecl1_predefined_entity_replacement_text["supe"] = "⊇" sgmldecl1_predefined_entity_replacement_text["supedot"] = "⫄" sgmldecl1_predefined_entity_replacement_text["Superset"] = "⊃" sgmldecl1_predefined_entity_replacement_text["SupersetEqual"] = "⊇" sgmldecl1_predefined_entity_replacement_text["suphsol"] = "⟉" sgmldecl1_predefined_entity_replacement_text["suphsub"] = "⫗" sgmldecl1_predefined_entity_replacement_text["suplarr"] = "⥻" sgmldecl1_predefined_entity_replacement_text["supmult"] = "⫂" sgmldecl1_predefined_entity_replacement_text["supnE"] = "⫌" sgmldecl1_predefined_entity_replacement_text["supne"] = "⊋" sgmldecl1_predefined_entity_replacement_text["supplus"] = "⫀" sgmldecl1_predefined_entity_replacement_text["supset"] = "⊃" sgmldecl1_predefined_entity_replacement_text["Supset"] = "⋑" sgmldecl1_predefined_entity_replacement_text["supseteq"] = "⊇" sgmldecl1_predefined_entity_replacement_text["supseteqq"] = "⫆" sgmldecl1_predefined_entity_replacement_text["supsetneq"] = "⊋" sgmldecl1_predefined_entity_replacement_text["supsetneqq"] = "⫌" sgmldecl1_predefined_entity_replacement_text["supsim"] = "⫈" sgmldecl1_predefined_entity_replacement_text["supsub"] = "⫔" sgmldecl1_predefined_entity_replacement_text["supsup"] = "⫖" sgmldecl1_predefined_entity_replacement_text["swarhk"] = "⤦" sgmldecl1_predefined_entity_replacement_text["swarr"] = "↙" sgmldecl1_predefined_entity_replacement_text["swArr"] = "⇙" sgmldecl1_predefined_entity_replacement_text["swarrow"] = "↙" sgmldecl1_predefined_entity_replacement_text["swnwar"] = "⤪" sgmldecl1_predefined_entity_replacement_text["szlig"] = "ß" sgmldecl1_predefined_entity_replacement_text["Tab"] = " " sgmldecl1_predefined_entity_replacement_text["target"] = "⌖" sgmldecl1_predefined_entity_replacement_text["Tau"] = "Τ" sgmldecl1_predefined_entity_replacement_text["tau"] = "τ" sgmldecl1_predefined_entity_replacement_text["tbrk"] = "⎴" sgmldecl1_predefined_entity_replacement_text["Tcaron"] = "Ť" sgmldecl1_predefined_entity_replacement_text["tcaron"] = "ť" sgmldecl1_predefined_entity_replacement_text["Tcedil"] = "Ţ" sgmldecl1_predefined_entity_replacement_text["tcedil"] = "ţ" sgmldecl1_predefined_entity_replacement_text["Tcy"] = "Т" sgmldecl1_predefined_entity_replacement_text["tcy"] = "т" sgmldecl1_predefined_entity_replacement_text["tdot"] = "⃛" sgmldecl1_predefined_entity_replacement_text["telrec"] = "⌕" sgmldecl1_predefined_entity_replacement_text["Tfr"] = "𝔗" sgmldecl1_predefined_entity_replacement_text["tfr"] = "𝔱" sgmldecl1_predefined_entity_replacement_text["there4"] = "∴" sgmldecl1_predefined_entity_replacement_text["therefore"] = "∴" sgmldecl1_predefined_entity_replacement_text["Therefore"] = "∴" sgmldecl1_predefined_entity_replacement_text["Theta"] = "Θ" sgmldecl1_predefined_entity_replacement_text["theta"] = "θ" sgmldecl1_predefined_entity_replacement_text["thetasym"] = "ϑ" sgmldecl1_predefined_entity_replacement_text["thetav"] = "ϑ" sgmldecl1_predefined_entity_replacement_text["thickapprox"] = "≈" sgmldecl1_predefined_entity_replacement_text["thicksim"] = "∼" sgmldecl1_predefined_entity_replacement_text["ThickSpace"] = "  " sgmldecl1_predefined_entity_replacement_text["ThinSpace"] = " " sgmldecl1_predefined_entity_replacement_text["thinsp"] = " " sgmldecl1_predefined_entity_replacement_text["thkap"] = "≈" sgmldecl1_predefined_entity_replacement_text["thksim"] = "∼" sgmldecl1_predefined_entity_replacement_text["THORN"] = "Þ" sgmldecl1_predefined_entity_replacement_text["thorn"] = "þ" sgmldecl1_predefined_entity_replacement_text["tilde"] = "˜" sgmldecl1_predefined_entity_replacement_text["Tilde"] = "∼" sgmldecl1_predefined_entity_replacement_text["TildeEqual"] = "≃" sgmldecl1_predefined_entity_replacement_text["TildeFullEqual"] = "≅" sgmldecl1_predefined_entity_replacement_text["TildeTilde"] = "≈" sgmldecl1_predefined_entity_replacement_text["timesbar"] = "⨱" sgmldecl1_predefined_entity_replacement_text["timesb"] = "⊠" sgmldecl1_predefined_entity_replacement_text["times"] = "×" sgmldecl1_predefined_entity_replacement_text["timesd"] = "⨰" sgmldecl1_predefined_entity_replacement_text["tint"] = "∭" sgmldecl1_predefined_entity_replacement_text["toea"] = "⤨" sgmldecl1_predefined_entity_replacement_text["topbot"] = "⌶" sgmldecl1_predefined_entity_replacement_text["topcir"] = "⫱" sgmldecl1_predefined_entity_replacement_text["top"] = "⊤" sgmldecl1_predefined_entity_replacement_text["Topf"] = "𝕋" sgmldecl1_predefined_entity_replacement_text["topf"] = "𝕥" sgmldecl1_predefined_entity_replacement_text["topfork"] = "⫚" sgmldecl1_predefined_entity_replacement_text["tosa"] = "⤩" sgmldecl1_predefined_entity_replacement_text["tprime"] = "‴" sgmldecl1_predefined_entity_replacement_text["trade"] = "™" sgmldecl1_predefined_entity_replacement_text["TRADE"] = "™" sgmldecl1_predefined_entity_replacement_text["triangle"] = "▵" sgmldecl1_predefined_entity_replacement_text["triangledown"] = "▿" sgmldecl1_predefined_entity_replacement_text["triangleleft"] = "◃" sgmldecl1_predefined_entity_replacement_text["trianglelefteq"] = "⊴" sgmldecl1_predefined_entity_replacement_text["triangleq"] = "≜" sgmldecl1_predefined_entity_replacement_text["triangleright"] = "▹" sgmldecl1_predefined_entity_replacement_text["trianglerighteq"] = "⊵" sgmldecl1_predefined_entity_replacement_text["tridot"] = "◬" sgmldecl1_predefined_entity_replacement_text["trie"] = "≜" sgmldecl1_predefined_entity_replacement_text["triminus"] = "⨺" sgmldecl1_predefined_entity_replacement_text["TripleDot"] = "⃛" sgmldecl1_predefined_entity_replacement_text["triplus"] = "⨹" sgmldecl1_predefined_entity_replacement_text["trisb"] = "⧍" sgmldecl1_predefined_entity_replacement_text["tritime"] = "⨻" sgmldecl1_predefined_entity_replacement_text["trpezium"] = "⏢" sgmldecl1_predefined_entity_replacement_text["Tscr"] = "𝒯" sgmldecl1_predefined_entity_replacement_text["tscr"] = "𝓉" sgmldecl1_predefined_entity_replacement_text["TScy"] = "Ц" sgmldecl1_predefined_entity_replacement_text["tscy"] = "ц" sgmldecl1_predefined_entity_replacement_text["TSHcy"] = "Ћ" sgmldecl1_predefined_entity_replacement_text["tshcy"] = "ћ" sgmldecl1_predefined_entity_replacement_text["Tstrok"] = "Ŧ" sgmldecl1_predefined_entity_replacement_text["tstrok"] = "ŧ" sgmldecl1_predefined_entity_replacement_text["twixt"] = "≬" sgmldecl1_predefined_entity_replacement_text["twoheadleftarrow"] = "↞" sgmldecl1_predefined_entity_replacement_text["twoheadrightarrow"] = "↠" sgmldecl1_predefined_entity_replacement_text["Uacute"] = "Ú" sgmldecl1_predefined_entity_replacement_text["uacute"] = "ú" sgmldecl1_predefined_entity_replacement_text["uarr"] = "↑" sgmldecl1_predefined_entity_replacement_text["Uarr"] = "↟" sgmldecl1_predefined_entity_replacement_text["uArr"] = "⇑" sgmldecl1_predefined_entity_replacement_text["Uarrocir"] = "⥉" sgmldecl1_predefined_entity_replacement_text["Ubrcy"] = "Ў" sgmldecl1_predefined_entity_replacement_text["ubrcy"] = "ў" sgmldecl1_predefined_entity_replacement_text["Ubreve"] = "Ŭ" sgmldecl1_predefined_entity_replacement_text["ubreve"] = "ŭ" sgmldecl1_predefined_entity_replacement_text["Ucirc"] = "Û" sgmldecl1_predefined_entity_replacement_text["ucirc"] = "û" sgmldecl1_predefined_entity_replacement_text["Ucy"] = "У" sgmldecl1_predefined_entity_replacement_text["ucy"] = "у" sgmldecl1_predefined_entity_replacement_text["udarr"] = "⇅" sgmldecl1_predefined_entity_replacement_text["Udblac"] = "Ű" sgmldecl1_predefined_entity_replacement_text["udblac"] = "ű" sgmldecl1_predefined_entity_replacement_text["udhar"] = "⥮" sgmldecl1_predefined_entity_replacement_text["ufisht"] = "⥾" sgmldecl1_predefined_entity_replacement_text["Ufr"] = "𝔘" sgmldecl1_predefined_entity_replacement_text["ufr"] = "𝔲" sgmldecl1_predefined_entity_replacement_text["Ugrave"] = "Ù" sgmldecl1_predefined_entity_replacement_text["ugrave"] = "ù" sgmldecl1_predefined_entity_replacement_text["uHar"] = "⥣" sgmldecl1_predefined_entity_replacement_text["uharl"] = "↿" sgmldecl1_predefined_entity_replacement_text["uharr"] = "↾" sgmldecl1_predefined_entity_replacement_text["uhblk"] = "▀" sgmldecl1_predefined_entity_replacement_text["ulcorn"] = "⌜" sgmldecl1_predefined_entity_replacement_text["ulcorner"] = "⌜" sgmldecl1_predefined_entity_replacement_text["ulcrop"] = "⌏" sgmldecl1_predefined_entity_replacement_text["ultri"] = "◸" sgmldecl1_predefined_entity_replacement_text["Umacr"] = "Ū" sgmldecl1_predefined_entity_replacement_text["umacr"] = "ū" sgmldecl1_predefined_entity_replacement_text["uml"] = "¨" sgmldecl1_predefined_entity_replacement_text["UnderBar"] = "_" sgmldecl1_predefined_entity_replacement_text["UnderBrace"] = "⏟" sgmldecl1_predefined_entity_replacement_text["UnderBracket"] = "⎵" sgmldecl1_predefined_entity_replacement_text["UnderParenthesis"] = "⏝" sgmldecl1_predefined_entity_replacement_text["Union"] = "⋃" sgmldecl1_predefined_entity_replacement_text["UnionPlus"] = "⊎" sgmldecl1_predefined_entity_replacement_text["Uogon"] = "Ų" sgmldecl1_predefined_entity_replacement_text["uogon"] = "ų" sgmldecl1_predefined_entity_replacement_text["Uopf"] = "𝕌" sgmldecl1_predefined_entity_replacement_text["uopf"] = "𝕦" sgmldecl1_predefined_entity_replacement_text["UpArrowBar"] = "⤒" sgmldecl1_predefined_entity_replacement_text["uparrow"] = "↑" sgmldecl1_predefined_entity_replacement_text["UpArrow"] = "↑" sgmldecl1_predefined_entity_replacement_text["Uparrow"] = "⇑" sgmldecl1_predefined_entity_replacement_text["UpArrowDownArrow"] = "⇅" sgmldecl1_predefined_entity_replacement_text["updownarrow"] = "↕" sgmldecl1_predefined_entity_replacement_text["UpDownArrow"] = "↕" sgmldecl1_predefined_entity_replacement_text["Updownarrow"] = "⇕" sgmldecl1_predefined_entity_replacement_text["UpEquilibrium"] = "⥮" sgmldecl1_predefined_entity_replacement_text["upharpoonleft"] = "↿" sgmldecl1_predefined_entity_replacement_text["upharpoonright"] = "↾" sgmldecl1_predefined_entity_replacement_text["uplus"] = "⊎" sgmldecl1_predefined_entity_replacement_text["UpperLeftArrow"] = "↖" sgmldecl1_predefined_entity_replacement_text["UpperRightArrow"] = "↗" sgmldecl1_predefined_entity_replacement_text["upsi"] = "υ" sgmldecl1_predefined_entity_replacement_text["Upsi"] = "ϒ" sgmldecl1_predefined_entity_replacement_text["upsih"] = "ϒ" sgmldecl1_predefined_entity_replacement_text["Upsilon"] = "Υ" sgmldecl1_predefined_entity_replacement_text["upsilon"] = "υ" sgmldecl1_predefined_entity_replacement_text["UpTeeArrow"] = "↥" sgmldecl1_predefined_entity_replacement_text["UpTee"] = "⊥" sgmldecl1_predefined_entity_replacement_text["upuparrows"] = "⇈" sgmldecl1_predefined_entity_replacement_text["urcorn"] = "⌝" sgmldecl1_predefined_entity_replacement_text["urcorner"] = "⌝" sgmldecl1_predefined_entity_replacement_text["urcrop"] = "⌎" sgmldecl1_predefined_entity_replacement_text["Uring"] = "Ů" sgmldecl1_predefined_entity_replacement_text["uring"] = "ů" sgmldecl1_predefined_entity_replacement_text["urtri"] = "◹" sgmldecl1_predefined_entity_replacement_text["Uscr"] = "𝒰" sgmldecl1_predefined_entity_replacement_text["uscr"] = "𝓊" sgmldecl1_predefined_entity_replacement_text["utdot"] = "⋰" sgmldecl1_predefined_entity_replacement_text["Utilde"] = "Ũ" sgmldecl1_predefined_entity_replacement_text["utilde"] = "ũ" sgmldecl1_predefined_entity_replacement_text["utri"] = "▵" sgmldecl1_predefined_entity_replacement_text["utrif"] = "▴" sgmldecl1_predefined_entity_replacement_text["uuarr"] = "⇈" sgmldecl1_predefined_entity_replacement_text["Uuml"] = "Ü" sgmldecl1_predefined_entity_replacement_text["uuml"] = "ü" sgmldecl1_predefined_entity_replacement_text["uwangle"] = "⦧" sgmldecl1_predefined_entity_replacement_text["vangrt"] = "⦜" sgmldecl1_predefined_entity_replacement_text["varepsilon"] = "ϵ" sgmldecl1_predefined_entity_replacement_text["varkappa"] = "ϰ" sgmldecl1_predefined_entity_replacement_text["varnothing"] = "∅" sgmldecl1_predefined_entity_replacement_text["varphi"] = "ϕ" sgmldecl1_predefined_entity_replacement_text["varpi"] = "ϖ" sgmldecl1_predefined_entity_replacement_text["varpropto"] = "∝" sgmldecl1_predefined_entity_replacement_text["varr"] = "↕" sgmldecl1_predefined_entity_replacement_text["vArr"] = "⇕" sgmldecl1_predefined_entity_replacement_text["varrho"] = "ϱ" sgmldecl1_predefined_entity_replacement_text["varsigma"] = "ς" sgmldecl1_predefined_entity_replacement_text["varsubsetneq"] = "⊊︀" sgmldecl1_predefined_entity_replacement_text["varsubsetneqq"] = "⫋︀" sgmldecl1_predefined_entity_replacement_text["varsupsetneq"] = "⊋︀" sgmldecl1_predefined_entity_replacement_text["varsupsetneqq"] = "⫌︀" sgmldecl1_predefined_entity_replacement_text["vartheta"] = "ϑ" sgmldecl1_predefined_entity_replacement_text["vartriangleleft"] = "⊲" sgmldecl1_predefined_entity_replacement_text["vartriangleright"] = "⊳" sgmldecl1_predefined_entity_replacement_text["vBar"] = "⫨" sgmldecl1_predefined_entity_replacement_text["Vbar"] = "⫫" sgmldecl1_predefined_entity_replacement_text["vBarv"] = "⫩" sgmldecl1_predefined_entity_replacement_text["Vcy"] = "В" sgmldecl1_predefined_entity_replacement_text["vcy"] = "в" sgmldecl1_predefined_entity_replacement_text["vdash"] = "⊢" sgmldecl1_predefined_entity_replacement_text["vDash"] = "⊨" sgmldecl1_predefined_entity_replacement_text["Vdash"] = "⊩" sgmldecl1_predefined_entity_replacement_text["VDash"] = "⊫" sgmldecl1_predefined_entity_replacement_text["Vdashl"] = "⫦" sgmldecl1_predefined_entity_replacement_text["veebar"] = "⊻" sgmldecl1_predefined_entity_replacement_text["vee"] = "∨" sgmldecl1_predefined_entity_replacement_text["Vee"] = "⋁" sgmldecl1_predefined_entity_replacement_text["veeeq"] = "≚" sgmldecl1_predefined_entity_replacement_text["vellip"] = "⋮" sgmldecl1_predefined_entity_replacement_text["verbar"] = "|" sgmldecl1_predefined_entity_replacement_text["Verbar"] = "‖" sgmldecl1_predefined_entity_replacement_text["vert"] = "|" sgmldecl1_predefined_entity_replacement_text["Vert"] = "‖" sgmldecl1_predefined_entity_replacement_text["VerticalBar"] = "∣" sgmldecl1_predefined_entity_replacement_text["VerticalLine"] = "|" sgmldecl1_predefined_entity_replacement_text["VerticalSeparator"] = "❘" sgmldecl1_predefined_entity_replacement_text["VerticalTilde"] = "≀" sgmldecl1_predefined_entity_replacement_text["VeryThinSpace"] = " " sgmldecl1_predefined_entity_replacement_text["Vfr"] = "𝔙" sgmldecl1_predefined_entity_replacement_text["vfr"] = "𝔳" sgmldecl1_predefined_entity_replacement_text["vltri"] = "⊲" sgmldecl1_predefined_entity_replacement_text["vnsub"] = "⊂⃒" sgmldecl1_predefined_entity_replacement_text["vnsup"] = "⊃⃒" sgmldecl1_predefined_entity_replacement_text["Vopf"] = "𝕍" sgmldecl1_predefined_entity_replacement_text["vopf"] = "𝕧" sgmldecl1_predefined_entity_replacement_text["vprop"] = "∝" sgmldecl1_predefined_entity_replacement_text["vrtri"] = "⊳" sgmldecl1_predefined_entity_replacement_text["Vscr"] = "𝒱" sgmldecl1_predefined_entity_replacement_text["vscr"] = "𝓋" sgmldecl1_predefined_entity_replacement_text["vsubnE"] = "⫋︀" sgmldecl1_predefined_entity_replacement_text["vsubne"] = "⊊︀" sgmldecl1_predefined_entity_replacement_text["vsupnE"] = "⫌︀" sgmldecl1_predefined_entity_replacement_text["vsupne"] = "⊋︀" sgmldecl1_predefined_entity_replacement_text["Vvdash"] = "⊪" sgmldecl1_predefined_entity_replacement_text["vzigzag"] = "⦚" sgmldecl1_predefined_entity_replacement_text["Wcirc"] = "Ŵ" sgmldecl1_predefined_entity_replacement_text["wcirc"] = "ŵ" sgmldecl1_predefined_entity_replacement_text["wedbar"] = "⩟" sgmldecl1_predefined_entity_replacement_text["wedge"] = "∧" sgmldecl1_predefined_entity_replacement_text["Wedge"] = "⋀" sgmldecl1_predefined_entity_replacement_text["wedgeq"] = "≙" sgmldecl1_predefined_entity_replacement_text["weierp"] = "℘" sgmldecl1_predefined_entity_replacement_text["Wfr"] = "𝔚" sgmldecl1_predefined_entity_replacement_text["wfr"] = "𝔴" sgmldecl1_predefined_entity_replacement_text["Wopf"] = "𝕎" sgmldecl1_predefined_entity_replacement_text["wopf"] = "𝕨" sgmldecl1_predefined_entity_replacement_text["wp"] = "℘" sgmldecl1_predefined_entity_replacement_text["wr"] = "≀" sgmldecl1_predefined_entity_replacement_text["wreath"] = "≀" sgmldecl1_predefined_entity_replacement_text["Wscr"] = "𝒲" sgmldecl1_predefined_entity_replacement_text["wscr"] = "𝓌" sgmldecl1_predefined_entity_replacement_text["xcap"] = "⋂" sgmldecl1_predefined_entity_replacement_text["xcirc"] = "◯" sgmldecl1_predefined_entity_replacement_text["xcup"] = "⋃" sgmldecl1_predefined_entity_replacement_text["xdtri"] = "▽" sgmldecl1_predefined_entity_replacement_text["Xfr"] = "𝔛" sgmldecl1_predefined_entity_replacement_text["xfr"] = "𝔵" sgmldecl1_predefined_entity_replacement_text["xharr"] = "⟷" sgmldecl1_predefined_entity_replacement_text["xhArr"] = "⟺" sgmldecl1_predefined_entity_replacement_text["Xi"] = "Ξ" sgmldecl1_predefined_entity_replacement_text["xi"] = "ξ" sgmldecl1_predefined_entity_replacement_text["xlarr"] = "⟵" sgmldecl1_predefined_entity_replacement_text["xlArr"] = "⟸" sgmldecl1_predefined_entity_replacement_text["xmap"] = "⟼" sgmldecl1_predefined_entity_replacement_text["xnis"] = "⋻" sgmldecl1_predefined_entity_replacement_text["xodot"] = "⨀" sgmldecl1_predefined_entity_replacement_text["Xopf"] = "𝕏" sgmldecl1_predefined_entity_replacement_text["xopf"] = "𝕩" sgmldecl1_predefined_entity_replacement_text["xoplus"] = "⨁" sgmldecl1_predefined_entity_replacement_text["xotime"] = "⨂" sgmldecl1_predefined_entity_replacement_text["xrarr"] = "⟶" sgmldecl1_predefined_entity_replacement_text["xrArr"] = "⟹" sgmldecl1_predefined_entity_replacement_text["Xscr"] = "𝒳" sgmldecl1_predefined_entity_replacement_text["xscr"] = "𝓍" sgmldecl1_predefined_entity_replacement_text["xsqcup"] = "⨆" sgmldecl1_predefined_entity_replacement_text["xuplus"] = "⨄" sgmldecl1_predefined_entity_replacement_text["xutri"] = "△" sgmldecl1_predefined_entity_replacement_text["xvee"] = "⋁" sgmldecl1_predefined_entity_replacement_text["xwedge"] = "⋀" sgmldecl1_predefined_entity_replacement_text["Yacute"] = "Ý" sgmldecl1_predefined_entity_replacement_text["yacute"] = "ý" sgmldecl1_predefined_entity_replacement_text["YAcy"] = "Я" sgmldecl1_predefined_entity_replacement_text["yacy"] = "я" sgmldecl1_predefined_entity_replacement_text["Ycirc"] = "Ŷ" sgmldecl1_predefined_entity_replacement_text["ycirc"] = "ŷ" sgmldecl1_predefined_entity_replacement_text["Ycy"] = "Ы" sgmldecl1_predefined_entity_replacement_text["ycy"] = "ы" sgmldecl1_predefined_entity_replacement_text["yen"] = "¥" sgmldecl1_predefined_entity_replacement_text["Yfr"] = "𝔜" sgmldecl1_predefined_entity_replacement_text["yfr"] = "𝔶" sgmldecl1_predefined_entity_replacement_text["YIcy"] = "Ї" sgmldecl1_predefined_entity_replacement_text["yicy"] = "ї" sgmldecl1_predefined_entity_replacement_text["Yopf"] = "𝕐" sgmldecl1_predefined_entity_replacement_text["yopf"] = "𝕪" sgmldecl1_predefined_entity_replacement_text["Yscr"] = "𝒴" sgmldecl1_predefined_entity_replacement_text["yscr"] = "𝓎" sgmldecl1_predefined_entity_replacement_text["YUcy"] = "Ю" sgmldecl1_predefined_entity_replacement_text["yucy"] = "ю" sgmldecl1_predefined_entity_replacement_text["yuml"] = "ÿ" sgmldecl1_predefined_entity_replacement_text["Yuml"] = "Ÿ" sgmldecl1_predefined_entity_replacement_text["Zacute"] = "Ź" sgmldecl1_predefined_entity_replacement_text["zacute"] = "ź" sgmldecl1_predefined_entity_replacement_text["Zcaron"] = "Ž" sgmldecl1_predefined_entity_replacement_text["zcaron"] = "ž" sgmldecl1_predefined_entity_replacement_text["Zcy"] = "З" sgmldecl1_predefined_entity_replacement_text["zcy"] = "з" sgmldecl1_predefined_entity_replacement_text["Zdot"] = "Ż" sgmldecl1_predefined_entity_replacement_text["zdot"] = "ż" sgmldecl1_predefined_entity_replacement_text["zeetrf"] = "ℨ" sgmldecl1_predefined_entity_replacement_text["ZeroWidthSpace"] = "​" sgmldecl1_predefined_entity_replacement_text["Zeta"] = "Ζ" sgmldecl1_predefined_entity_replacement_text["zeta"] = "ζ" sgmldecl1_predefined_entity_replacement_text["zfr"] = "𝔷" sgmldecl1_predefined_entity_replacement_text["Zfr"] = "ℨ" sgmldecl1_predefined_entity_replacement_text["ZHcy"] = "Ж" sgmldecl1_predefined_entity_replacement_text["zhcy"] = "ж" sgmldecl1_predefined_entity_replacement_text["zigrarr"] = "⇝" sgmldecl1_predefined_entity_replacement_text["zopf"] = "𝕫" sgmldecl1_predefined_entity_replacement_text["Zopf"] = "ℤ" sgmldecl1_predefined_entity_replacement_text["Zscr"] = "𝒵" sgmldecl1_predefined_entity_replacement_text["zscr"] = "𝓏" sgmldecl1_predefined_entity_replacement_text["zwj"] = "‍" sgmldecl1_predefined_entity_replacement_text["zwnj"] = "‌" } BEGIN { systemspecificentityresolver1_system_specific_entity_path = "" split("", systemspecificentityresolver1_system_specific_entity_replacement_text) split("", systemspecificentityresolver1_system_specific_entity_replacement_file) split("", systemspecificentityresolver1_external_subset_entities) } function systemspecificentityresolver1_configure(args) { if (args["system_specific_entity_path"]) systemspecificentityresolver1_system_specific_entity_path = args["system_specific_entity_path"] } function systemspecificentityresolver1_set_system_specific_entity_path(system_specific_entity_path) { systemspecificentityresolver1_system_specific_entity_path = system_specific_entity_path } function systemspecificentityresolver1_put_system_specific_external_entity_replacement_text(name, text) { ; systemspecificentityresolver1_system_specific_entity_replacement_text[name] = text } function systemspecificentityresolver1_put_system_specific_external_entity_replacement_file(name, filename) { ; systemspecificentityresolver1_system_specific_entity_replacement_file[name] = filename } function systemspecificentityresolver1_resolve_system_specific_external_entity(base_system_identifier, entity_ref) { if (entity_ref in systemspecificentityresolver1_system_specific_entity_replacement_text) { ; return ("" systemspecificentityresolver1_system_specific_entity_replacement_text[entity_ref]) } else if (entity_ref in systemspecificentityresolver1_system_specific_entity_replacement_file) { ; return ("" systemspecificentityresolver1_system_specific_entity_replacement_file[entity_ref]) } else if (systemspecificentityresolver1_system_specific_entity_path) { ; ; return path_resolve(systemspecificentityresolver1_system_specific_entity_path, entity_ref) } else { ; ; return path_resolve(path_dirname(base_system_identifier), entity_ref) } } function systemspecificentityresolver1_resolve_external_subset_entity(declaration_set_type, system_identifier, declaration_set_name, e) { e = "" ; if ((declaration_set_type, declaration_set_name) in systemspecificentityresolver1_external_subset_entities) return systemspecificentityresolver1_external_subset_entities[declaration_set_type, declaration_set_name] if (declaration_set_type == "LINKTYPE") if (systemspecificentityresolver1_system_specific_entity_path) return concat(systemspecificentityresolver1_system_specific_entity_path, "/", declaration_set_name, ".lpd") else return concat(declaration_set_name, ".lpd") for (e in systemspecificentityresolver1_external_subset_entities) return "" if (systemspecificentityresolver1_system_specific_entity_path) return concat(systemspecificentityresolver1_system_specific_entity_path, "/", declaration_set_name, ".dtd") return concat(declaration_set_name, ".dtd") } function systemspecificentityresolver1_set_external_subset_entity(subset_type, subset_name, system_identifier) { ; systemspecificentityresolver1_external_subset_entities[subset_type, subset_name] = system_identifier } BEGIN { split("", entitydefinitions1_entity_replacement_text) split("", entitydefinitions1_entity_replacement_file) split("", entitydefinitions1_general_entity_type) split("", entitydefinitions1_general_entity_notation) split("", entitydefinitions1_general_entity_declaration_set_name) split("", entitydefinitions1_general_entity_declaration_line_number) split("", entitydefinitions1_general_entity_data_attributes) split("", entitydefinitions1_general_entity_bracketed_text_type) split("", entitydefinitions1_general_entity_data_text_type) split("", entitydefinitions1_parameter_entity_replacement_text) split("", entitydefinitions1_parameter_entity_system_identifier) split("", entitydefinitions1_parameter_entity_public_identifier) split("", entitydefinitions1_parameter_entity_bracketed_text_type) split("", entitydefinitions1_parameter_entity_data_text_type) split("", entitydefinitions1_system_specific_general_entities) entitydefinitions1_suppress_undeclared_parameter_entity_reference_error = "" } function entitydefinitions1_is_internal_entity_reference(entity_ref) { if (entity_ref in entitydefinitions1_entity_replacement_text) return 1 else return 0 } function entitydefinitions1_get_entity_replacement_text(entity_ref) { return entitydefinitions1_entity_replacement_text[entity_ref] } function entitydefinitions1_put_entity_replacement_text(entity_ref, repl_text) { entitydefinitions1_entity_replacement_text[entity_ref] = repl_text } function entitydefinitions1_reset() { split("", entitydefinitions1_entity_replacement_text) split("", entitydefinitions1_entity_replacement_file) split("", entitydefinitions1_general_entity_type) split("", entitydefinitions1_general_entity_notation) split("", entitydefinitions1_general_entity_declaration_set_name) split("", entitydefinitions1_general_entity_declaration_line_number) split("", entitydefinitions1_general_entity_data_attributes) split("", entitydefinitions1_general_entity_bracketed_text_type) split("", entitydefinitions1_general_entity_data_text_type) split("", entitydefinitions1_parameter_entity_replacement_text) split("", entitydefinitions1_parameter_entity_system_identifier) split("", entitydefinitions1_parameter_entity_public_identifier) split("", entitydefinitions1_parameter_entity_bracketed_text_type) split("", entitydefinitions1_parameter_entity_data_text_type) split("", entitydefinitions1_system_specific_general_entities) } function entitydefinitions1_fetch_parameter_entity(entity_ref) { if (entity_ref in entitydefinitions1_parameter_entity_replacement_text) return entitydefinitions1_parameter_entity_replacement_text[entity_ref] if (entity_ref in entitydefinitions1_parameter_entity_public_identifier) { if (!bundledresolver_resolve_entity(entitydefinitions1_parameter_entity_public_identifier[entity_ref], "")) { platformerrorhandler1_fatalError(concat(entity_ref, ": reference to parameter entity declared with unrecognized public identifier '", entitydefinitions1_parameter_entity_public_identifier[entity_ref], "'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return bundledresolver_resolve_entity(entitydefinitions1_parameter_entity_public_identifier[entity_ref], "") } if (entitydefinitions1_suppress_undeclared_parameter_entity_reference_error != "") return "" { platformerrorhandler1_error(concat("'", entity_ref, "': reference to undeclared parameter entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } return "" } function entitydefinitions1_expand_parameter_entity_references(s, name) { name = "" ; ; while (match(s, /%([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { name = substr(s, RSTART + 1, RLENGTH - 1) if (sgmldecl1_syntax_namecase_entity == "YES") name = toupper(name) ; if (!(substr(s, RSTART + RLENGTH, 1) == ";")) { if ("ISO 8879/NOTATION Extensible Markup Language (XML) 1.0//EN" in sgmldecl1_added_requirement_public_ids) { platformerrorhandler1_error(concat("'", substr(s, RSTART, 8), "': unterminated parameter entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } ; s = concat(substr(s, 1, RSTART - 1),entitydefinitions1_fetch_parameter_entity(name),substr(s, RSTART + RLENGTH)) } else { ; s = concat(substr(s, 1, RSTART - 1),entitydefinitions1_fetch_parameter_entity(name),substr(s, RSTART + RLENGTH + 1)) } } ; ; return s } BEGIN { docinfo1_target_doctype = "" split("", docinfo1_active_link_processes) split("", docinfo1_attribute_current_values) split("", docinfo1_backward_ids) split("", docinfo1_forward_idrefs) docinfo1_content_reference = "" docinfo1_exclusion_exceptions = "" split("", docinfo1_current_rank_suffixes) docinfo1_most_recently_ended_element = "" docinfo1_effective_markup_declarations = "" split("", docinfo1_effective_link_processing_declarations) split("", docinfo1_effective_link_attribute_declarations) docinfo1_effective_activated_link_processes = "" docinfo1_current_shortref_map = "" } function docinfo1_reset() { docinfo1_target_doctype = "" split("", docinfo1_attribute_current_values) split("", docinfo1_backward_ids) split("", docinfo1_forward_idrefs) docinfo1_content_reference = "" split("", docinfo1_current_rank_suffixes) docinfo1_effective_markup_declarations = "" } function docinfo1_check_idrefs_resolved( i,unresolved_idrefs_list_str) { unresolved_idrefs_list_str = "" for (i in docinfo1_forward_idrefs) if (unresolved_idrefs_list_str == "") unresolved_idrefs_list_str = i else unresolved_idrefs_list_str = concat(unresolved_idrefs_list_str,", ",i) if (unresolved_idrefs_list_str != "") { platformerrorhandler1_error((unresolved_idrefs_list_str ": unresolved ID reference(s)"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } BEGIN { docinfo2_target_doctype = "" split("", docinfo2_active_link_processes) split("", docinfo2_attribute_current_values) split("", docinfo2_backward_ids) split("", docinfo2_forward_idrefs) docinfo2_content_reference = "" docinfo2_exclusion_exceptions = "" split("", docinfo2_current_rank_suffixes) docinfo2_most_recently_ended_element = "" docinfo2_effective_markup_declarations = "" split("", docinfo2_effective_link_processing_declarations) split("", docinfo2_effective_link_attribute_declarations) docinfo2_effective_activated_link_processes = "" docinfo2_current_shortref_map = "" } function docinfo2_reset() { docinfo2_target_doctype = "" split("", docinfo2_attribute_current_values) split("", docinfo2_backward_ids) split("", docinfo2_forward_idrefs) docinfo2_content_reference = "" split("", docinfo2_current_rank_suffixes) docinfo2_effective_markup_declarations = "" } function docinfo2_check_idrefs_resolved( i,unresolved_idrefs_list_str) { unresolved_idrefs_list_str = "" for (i in docinfo2_forward_idrefs) if (unresolved_idrefs_list_str == "") unresolved_idrefs_list_str = i else unresolved_idrefs_list_str = concat(unresolved_idrefs_list_str,", ",i) if (unresolved_idrefs_list_str != "") { platformerrorhandler1_error((unresolved_idrefs_list_str ": unresolved ID reference(s)"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } BEGIN { split("", markupdefinitions1_nullable) split("", markupdefinitions1_firstpos) split("", markupdefinitions1_lastpos) split("", markupdefinitions1_followset) split("", markupdefinitions1_follow) markupdefinitions1_position_no = 1 markupdefinitions1_do_construct = "1" markupdefinitions1_input_string = "" split("", markupdefinitions1_permutation_matrices) split("", markupdefinitions1_external_subset_sysids) split("", markupdefinitions1_external_subset_pubids) split("", markupdefinitions1_link_process_source_doctype_specs) split("", markupdefinitions1_link_process_result_doctype_specs) split("", markupdefinitions1_link_sets) split("", markupdefinitions1_link_ids) split("", markupdefinitions1_link_idlink_elements) split("", markupdefinitions1_link_elements) split("", markupdefinitions1_link_rules) split("", markupdefinitions1_link_attribute_specifications) split("", markupdefinitions1_link_uselink_targets) split("", markupdefinitions1_link_postlink_targets) split("", markupdefinitions1_link_attributes) split("", markupdefinitions1_link_result_elements) split("", markupdefinitions1_link_result_attribute_specifications) split("", markupdefinitions1_element_declarations) split("", markupdefinitions1_element_rank_groups) split("", markupdefinitions1_element_stem_rank_groups) split("", markupdefinitions1_element_content_models) split("", markupdefinitions1_notation_names) split("", markupdefinitions1_storage_manager_notation_names) split("", markupdefinitions1_notation_public_identifiers) split("", markupdefinitions1_notation_system_identifiers) split("", markupdefinitions1_element_start_tag_omittable) split("", markupdefinitions1_element_end_tag_omittable) split("", markupdefinitions1_element_modelgroups) split("", markupdefinitions1_element_inclusions) split("", markupdefinitions1_element_exclusions) split("", markupdefinitions1_element_attributes) split("", markupdefinitions1_data_attributes) split("", markupdefinitions1_element_id_attributes) split("", markupdefinitions1_element_conref_attributes) split("", markupdefinitions1_attribute_declared_values) split("", markupdefinitions1_data_attribute_declared_values) split("", markupdefinitions1_attribute_declared_data_notations) split("", markupdefinitions1_attribute_data_attributes) split("", markupdefinitions1_attribute_data_attribute_values) split("", markupdefinitions1_data_attribute_declared_data_notations) split("", markupdefinitions1_data_attribute_data_attributes) split("", markupdefinitions1_data_attribute_data_attribute_values) split("", markupdefinitions1_attribute_default_semantics) split("", markupdefinitions1_data_attribute_default_semantics) split("", markupdefinitions1_attribute_default_values) split("", markupdefinitions1_data_attribute_default_values) split("", markupdefinitions1_shortref_maps) split("", markupdefinitions1_shortref_map_delimiter_literal_numbers) split("", markupdefinitions1_shortref_map_delimiter_literals) split("", markupdefinitions1_shortref_map_delimiter_regexpes) split("", markupdefinitions1_shortref_map_replacement_entities) split("", markupdefinitions1_shortref_uses) markupdefinitions1_markdown_enabled = "" markupdefinitions1_d = "" } function markupdefinitions1_fac(n, i,f) { f = 1 while (n) f = f * n-- return f } function markupdefinitions1_permutations(n, k, j,a,i,m,s,l) { split("", a) split("", i) for (j = 1; j <= n; j++) { a[1+ j-1] = 0 i[1+ j-1] = 0 } a[1+ n]=0 j=1 while (j!=0) { s=i[1+ j-1] if (s==0) i[1+ j-1]=1 while (a[1+ i[1+ j-1]-1]) i[1+ j-1]++ if (i[1+ j-1]==n+1) { i[1+ j-1]=0 a[1+ s-1]=0 j-- continue } if (s!=0) a[1+ s-1]=0 a[1+ i[1+ j-1]-1]=1 if (j==k) { m++ for (l=1; l<=k; l++) { ; markupdefinitions1_permutation_matrices[m, l] = i[1+ l-1] } continue } j++ } } function markupdefinitions1_chi(pos) { if (!match(pos, /^[0-9]+/)) { platformerrorhandler1_fatalError(concat("chi: '",pos,"': can't extract symbol"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return substr(pos, RSTART + RLENGTH) } function markupdefinitions1_phi(pos) { if (!match(pos, /^[0-9]+/)) { platformerrorhandler1_fatalError(concat("phi: '",pos,"': can't extract position number"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return +substr(pos, 1, RLENGTH) } function markupdefinitions1_find_opening_brace(s, p, nestlvl) { for (p--; p > 0; p--) if (substr(s, p, 1) == ")") nestlvl++ else if (substr(s, p, 1) == "(") if (nestlvl == 0) break else nestlvl-- return p } function markupdefinitions1_find_closing_brace(s, p, nestlvl) { for (p++; p <= length(s); p++) if (substr(s, p, 1) == "(") nestlvl++ else if (substr(s, p, 1) == ")") if (nestlvl == 0) break else nestlvl-- return p } function markupdefinitions1_expand_allgroups(s, opening_paren,closing_paren,allgroup,i,j,n,m,replacmt_expr,a,prev,prev_groupstart,suffixstart,groupstart) { replacmt_expr = "" split("", a) split("", prev) if (match(s, /&/)) { closing_paren = markupdefinitions1_find_closing_brace(s, RSTART) opening_paren = markupdefinitions1_find_opening_brace(s, RSTART) if (opening_paren == 0 && closing_paren != length(s) + 1) { platformerrorhandler1_fatalError("unbalanced AND model group expression", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (closing_paren == length(s) + 1 && opening_paren != 0) { platformerrorhandler1_fatalError("unbalanced AND model group expression", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } allgroup = substr(s, opening_paren + 1, closing_paren - opening_paren - 1) if (!allgroup) { platformerrorhandler1_fatalError("invalid model group", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; if (match(allgroup, "[*,#]")) { platformerrorhandler1_fatalError(concat("'", s, "': invalid AND model group"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } n = split(allgroup, a, /&/) ; for (i = 1; i <= n; i++) if (!(a[1+ i-1] ~ /^[[:alnum:]_]+(\?)?/) && !(a[1+ i-1] ~ /^\([[:alnum:]_]+(\|[[:alnum:]_]+)+\)\+?/)) { platformerrorhandler1_warning(concat("'",a[1+ i-1],"': unsupported AND group member"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (n > 5) { platformerrorhandler1_fatalError("AND model group too complex", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } split("", markupdefinitions1_permutation_matrices) markupdefinitions1_permutations(n, n) for (j = 1; j <= n; j++) prev[1+ j-1] = 0 prev_groupstart = 0 m = markupdefinitions1_fac(n) for (i = 1; i <= m; i++) { groupstart = 1 for (j = 1; j <= n; j++) if (prev[1+ j-1] != markupdefinitions1_permutation_matrices[i, j]) { groupstart = j break } suffixstart = n + 1 if (prev[1+ 1-1] != 0) for (j = n; j >= 1; j--) if ((a[1+ prev[1+ j-1]-1] ~ /\?$/)) suffixstart = j else break ; if (prev[1+ 1-1] != 0) { for (j = n; j >= groupstart; j--) if (j < suffixstart) replacmt_expr = (replacmt_expr ")") else replacmt_expr = (replacmt_expr ")?") replacmt_expr = (replacmt_expr "/") } for (j = groupstart; j <= n; j++) { if (j > groupstart) replacmt_expr = (replacmt_expr ",") replacmt_expr = (replacmt_expr "(") if ((a[1+ markupdefinitions1_permutation_matrices[i, j]-1] ~ /\?$/)) replacmt_expr = (replacmt_expr substr(a[1+ markupdefinitions1_permutation_matrices[i, j]-1], 1, length(a[1+ markupdefinitions1_permutation_matrices[i, j]-1]) - 1)) else replacmt_expr = (replacmt_expr a[1+ markupdefinitions1_permutation_matrices[i, j]-1]) } for (j = 1; j <= n; j++) prev[1+ j-1] = markupdefinitions1_permutation_matrices[i, j] prev_groupstart = groupstart ; } for (j = groupstart; j <= n; j++) replacmt_expr = (replacmt_expr ")") for (j = n; j > 2; j --) replacmt_expr = (replacmt_expr ")") s = (substr(s, 1, opening_paren) replacmt_expr substr(s, closing_paren)) } ; return s } function markupdefinitions1_tokenize( t) { if (match(markupdefinitions1_input_string, /^[ \t\n]+/)) markupdefinitions1_input_string = substr(markupdefinitions1_input_string, RLENGTH + 1) if (!markupdefinitions1_input_string) return "$" if (match(markupdefinitions1_input_string, "^[(),|?+*&/]") || match(markupdefinitions1_input_string, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { t = substr(markupdefinitions1_input_string, 1, RLENGTH) markupdefinitions1_input_string = substr(markupdefinitions1_input_string, RLENGTH + 1) return t } else if (match(markupdefinitions1_input_string, /^#[Pp][Cc][Dd][Aa][Tt][Aa]/)) { t = toupper(substr(markupdefinitions1_input_string, 1, RLENGTH)) markupdefinitions1_input_string = substr(markupdefinitions1_input_string, RLENGTH + 1) return t } else { { platformerrorhandler1_fatalError(concat("'",markupdefinitions1_input_string,"': invalid start of content model token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } function markupdefinitions1_is_token(s) { return s == "(" || substr(s, 1, 1) != "(" } function markupdefinitions1_precedence(a, b, r) { if (a == "$") r = -1 else if (b == "$") r = 1 else if (match(a, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*$/)) r = 1 else if (match(a, /^#?[A-Za-z]+$/)) r = 1 else if (a == "+") r = 1 else if (a == "*") r = 1 else if (a == "?") r = 1 else if (match(b, /^#?[A-Za-z]+$/)) r = -1 else if (match(b, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*$/)) r = -1 else if (a == "(") if (b == ")") r = 0 else r = -1 else if (a == ")") r = 1 else if (b == "(") r = -1 else if (b == ")") r = 1 else if (a == "/") r = 1 else if (b == "/") r = -1 else if (a == ",") if (b == ",") r = 1 else r = -1 else if (a == "&") if (b == "&") r = 1 else r = -1 else if (match(b, "^[,|?+*]$")) r = -1 else r = 1 return r } function markupdefinitions1_rename_positions(s, offset, r,after_paren_or_blank,pos,p,i) { r = "" after_paren_or_blank = 1 pos = 0 for (i = 1; i <= length(s); i++) if (substr(s, i, 1) == "(" || substr(s, i, 1) == " ") { after_paren_or_blank = 1 r = (r substr(s, i, 1)) } else if (after_paren_or_blank) { after_paren_or_blank = 0 if (match(substr(s, i, 1), /[0-9]/)) pos = i else r = (r substr(s, i, 1)) } else if (pos) { if (!match(substr(s, i, 1), /[0-9]/)) { p = (+(substr(s, pos, i - pos))) + offset r = concat(r, p, substr(s, i, 1)) pos = 0 } } else r = (r substr(s, i, 1)) if (pos) { p = (+(substr(s, pos))) + offset r = (r p) } return r } function markupdefinitions1_copy_automaton_tables(d, m, target, x,e,prefix_regexp) { x = "" e = "" prefix_regexp = "" prefix_regexp = concat("^", d, SUBSEP, m, SUBSEP) for (x in markupdefinitions1_firstpos) { ; if (!match(x, prefix_regexp)) continue e = substr(x, RLENGTH + 1) ; markupdefinitions1_copy_subautomaton_tables(m, target, e) } } function markupdefinitions1_copy_subautomaton_tables(source, target, e, pos_arr,i) { split("", pos_arr) i = "" if (((markupdefinitions1_d, source, e) in markupdefinitions1_nullable)) markupdefinitions1_nullable[markupdefinitions1_d, target, e] = markupdefinitions1_nullable[markupdefinitions1_d, source, e] markupdefinitions1_firstpos[markupdefinitions1_d, target, e] = markupdefinitions1_firstpos[markupdefinitions1_d, source, e] if (((markupdefinitions1_d, source, e) in markupdefinitions1_lastpos)) markupdefinitions1_lastpos[markupdefinitions1_d, target, e] = markupdefinitions1_lastpos[markupdefinitions1_d, source, e] markupdefinitions1_followset[markupdefinitions1_d, target, e] = markupdefinitions1_followset[markupdefinitions1_d, source, e] split(markupdefinitions1_followset[markupdefinitions1_d, source, e], pos_arr, / /) for (i in pos_arr) if (--i + 1) if (((markupdefinitions1_d, source, e, pos_arr[1+ i]) in markupdefinitions1_follow)) markupdefinitions1_follow[markupdefinitions1_d, target, e, pos_arr[1+ i]] = markupdefinitions1_follow[markupdefinitions1_d, source, e, pos_arr[1+ i]] else markupdefinitions1_follow[markupdefinitions1_d, target, e, pos_arr[1+ i]] = "" } function markupdefinitions1_copy_and_rename_automaton(m, f, e,i,startpos,endpos,offset,fp,f_f,endpos_candidate) { split("", fp) split("", f_f) ;; ;; ;; ;; split(markupdefinitions1_firstpos[markupdefinitions1_d, m, f], fp, / /) startpos = markupdefinitions1_phi(fp[1+ 0]) split(markupdefinitions1_lastpos[markupdefinitions1_d, m, f], fp, / /) endpos = 0 for (i in fp) if (--i + 1) { endpos_candidate = markupdefinitions1_phi(fp[1+ i]) if (endpos_candidate > endpos) endpos = endpos_candidate } offset = markupdefinitions1_position_no - startpos ; e = markupdefinitions1_rename_positions(f, offset) markupdefinitions1_nullable[markupdefinitions1_d, m, e] = markupdefinitions1_nullable[markupdefinitions1_d, m, f] markupdefinitions1_firstpos[markupdefinitions1_d, m, e] = markupdefinitions1_rename_positions(markupdefinitions1_firstpos[markupdefinitions1_d, m, f], offset) markupdefinitions1_lastpos[markupdefinitions1_d, m, e] = markupdefinitions1_rename_positions(markupdefinitions1_lastpos[markupdefinitions1_d, m, f], offset) markupdefinitions1_followset[markupdefinitions1_d, m, e] = markupdefinitions1_rename_positions(markupdefinitions1_followset[markupdefinitions1_d, m, f], offset) split(markupdefinitions1_followset[markupdefinitions1_d, m, f], f_f, / /) for (i in f_f) if (--i + 1) markupdefinitions1_follow[markupdefinitions1_d, m, e, f_f[1+ i]] = markupdefinitions1_follow[markupdefinitions1_d, m, f, f_f[1+ i]] markupdefinitions1_position_no = endpos + offset + 1 ;; ;; ;; ;; return e } function markupdefinitions1_unmark_positions(s, r,after_paren_or_blank,pos,i) { r = "" after_paren_or_blank = 1 pos = 0 for (i = 1; i <= length(s); i++) if (substr(s, i, 1) == "(" || substr(s, i, 1) == " ") { after_paren_or_blank = 1 r = (r substr(s, i, 1)) } else if (after_paren_or_blank) { after_paren_or_blank = 0 if (match(substr(s, i, 1), /[0-9]/)) pos = i else r = (r substr(s, i, 1)) } else if (pos) { if (!match(substr(s, i, 1), /[0-9]/)) { r = (r substr(s, i, 1)) pos = 0 } } else r = (r substr(s, i, 1)) return r } function markupdefinitions1_construct_alternation(m, l, r, e,i,f_l,f_r) { split("", f_l) split("", f_r) e = concat("(",l, "|",r,")") if (markupdefinitions1_nullable[markupdefinitions1_d, m, l] || markupdefinitions1_nullable[markupdefinitions1_d, m, r]) markupdefinitions1_nullable[markupdefinitions1_d, m, e] = "1" else markupdefinitions1_nullable[markupdefinitions1_d, m, e] = "" markupdefinitions1_firstpos[markupdefinitions1_d, m, e] = concat(markupdefinitions1_firstpos[markupdefinitions1_d, m, l], ((markupdefinitions1_firstpos[markupdefinitions1_d, m, l] && markupdefinitions1_firstpos[markupdefinitions1_d, m, r])? " " : ""), markupdefinitions1_firstpos[markupdefinitions1_d, m, r]) markupdefinitions1_lastpos[markupdefinitions1_d, m, e] = concat(markupdefinitions1_lastpos[markupdefinitions1_d, m, l], ((markupdefinitions1_lastpos[markupdefinitions1_d, m, l] && markupdefinitions1_lastpos[markupdefinitions1_d, m, r])? " " : ""), markupdefinitions1_lastpos[markupdefinitions1_d, m, r]) split(markupdefinitions1_followset[markupdefinitions1_d, m, l], f_l, / /) for (i in f_l) if (--i + 1) markupdefinitions1_follow[markupdefinitions1_d, m, e, f_l[1+ i]] = markupdefinitions1_follow[markupdefinitions1_d, m, l, f_l[1+ i]] split(markupdefinitions1_followset[markupdefinitions1_d, m, r], f_r, / /) for (i in f_r) if (--i + 1) { markupdefinitions1_follow[markupdefinitions1_d, m, e, f_r[1+ i]] = markupdefinitions1_follow[markupdefinitions1_d, m, r, f_r[1+ i]] } markupdefinitions1_followset[markupdefinitions1_d, m, e] = concat(markupdefinitions1_followset[markupdefinitions1_d, m, l], ((markupdefinitions1_followset[markupdefinitions1_d, m, l] && markupdefinitions1_followset[markupdefinitions1_d, m, r])? " " : ""), markupdefinitions1_followset[markupdefinitions1_d, m, r]) return e } function markupdefinitions1_construct_sequence(m, l, r, e,i,j,lp_l,fp_r,f_l,f_r) { split("", lp_l) split("", fp_r) split("", f_l) split("", f_r) ;; ;; ;; ;; ;; ;; ;; ;; e = concat("(",l,",",r,")") if (markupdefinitions1_nullable[markupdefinitions1_d, m, l] && markupdefinitions1_nullable[markupdefinitions1_d, m, r]) markupdefinitions1_nullable[markupdefinitions1_d, m, e] = "1" else markupdefinitions1_nullable[markupdefinitions1_d, m, e] = "" if (markupdefinitions1_nullable[markupdefinitions1_d, m, l]) markupdefinitions1_firstpos[markupdefinitions1_d, m, e] = concat(markupdefinitions1_firstpos[markupdefinitions1_d, m, l], ((markupdefinitions1_firstpos[markupdefinitions1_d, m, l] && markupdefinitions1_firstpos[markupdefinitions1_d, m, r])? " " : ""), markupdefinitions1_firstpos[markupdefinitions1_d, m, r]) else markupdefinitions1_firstpos[markupdefinitions1_d, m, e] = markupdefinitions1_firstpos[markupdefinitions1_d, m, l] if (markupdefinitions1_nullable[markupdefinitions1_d, m, r]) markupdefinitions1_lastpos[markupdefinitions1_d, m, e] = concat(markupdefinitions1_lastpos[markupdefinitions1_d, m, l], ((markupdefinitions1_lastpos[markupdefinitions1_d, m, l] && markupdefinitions1_lastpos[markupdefinitions1_d, m, r])? " " : ""), markupdefinitions1_lastpos[markupdefinitions1_d, m, r]) else markupdefinitions1_lastpos[markupdefinitions1_d, m, e] = markupdefinitions1_lastpos[markupdefinitions1_d, m, r] split(markupdefinitions1_lastpos[markupdefinitions1_d, m, l], lp_l, / /) split(markupdefinitions1_firstpos[markupdefinitions1_d, m, r], fp_r, / /) for (i in lp_l) if (--i + 1) for (j in fp_r) if (--j + 1) { markupdefinitions1_followset[markupdefinitions1_d, m, e] = concat(markupdefinitions1_followset[markupdefinitions1_d, m, e], ((markupdefinitions1_followset[markupdefinitions1_d, m, e] && lp_l[1+ i])? " " : ""), lp_l[1+ i]) ; ; markupdefinitions1_follow[markupdefinitions1_d, m, e, lp_l[1+ i]] = concat(markupdefinitions1_follow[markupdefinitions1_d, m, e, lp_l[1+ i]], ((markupdefinitions1_follow[markupdefinitions1_d, m, e, lp_l[1+ i]] && fp_r[1+ j])? " " : ""), fp_r[1+ j]) ; } split(markupdefinitions1_followset[markupdefinitions1_d, m, l], f_l, / /) for (i in f_l) if (--i + 1) { if (!index(" " markupdefinitions1_followset[markupdefinitions1_d, m, e] " ", " " f_l[1+ i] " ")) { markupdefinitions1_followset[markupdefinitions1_d, m, e] = concat(markupdefinitions1_followset[markupdefinitions1_d, m, e], ((markupdefinitions1_followset[markupdefinitions1_d, m, e] && f_l[1+ i])? " " : ""), f_l[1+ i]) ; } ; markupdefinitions1_follow[markupdefinitions1_d, m, e, f_l[1+ i]] = concat(markupdefinitions1_follow[markupdefinitions1_d, m, e, f_l[1+ i]], ((markupdefinitions1_follow[markupdefinitions1_d, m, e, f_l[1+ i]] && markupdefinitions1_follow[markupdefinitions1_d, m, l, f_l[1+ i]])? " " : ""), markupdefinitions1_follow[markupdefinitions1_d, m, l, f_l[1+ i]]) ; } split(markupdefinitions1_followset[markupdefinitions1_d, m, r], f_r, / /) for (i in f_r) if (--i + 1) { if (!index(" " markupdefinitions1_followset[markupdefinitions1_d, m, e] " ", " " f_r[1+ i] " ")) { markupdefinitions1_followset[markupdefinitions1_d, m, e] = concat(markupdefinitions1_followset[markupdefinitions1_d, m, e], ((markupdefinitions1_followset[markupdefinitions1_d, m, e] && f_r[1+ i])? " " : ""), f_r[1+ i]) ; } ; markupdefinitions1_follow[markupdefinitions1_d, m, e, f_r[1+ i]] = concat(markupdefinitions1_follow[markupdefinitions1_d, m, e, f_r[1+ i]], ((markupdefinitions1_follow[markupdefinitions1_d, m, e, f_r[1+ i]] && markupdefinitions1_follow[markupdefinitions1_d, m, r, f_r[1+ i]])? " " : ""), markupdefinitions1_follow[markupdefinitions1_d, m, r, f_r[1+ i]]) ; } ;; ;; ;; ;; return e } function markupdefinitions1_construct_star(m, c, e,i,ft_l,lp_l,f_c) { split("", ft_l) split("", lp_l) split("", f_c) e = ("(" c "*)") ; ;; ;; ;; ;; markupdefinitions1_nullable[markupdefinitions1_d, m, e] = "1" markupdefinitions1_firstpos[markupdefinitions1_d, m, e] = markupdefinitions1_firstpos[markupdefinitions1_d, m, c] markupdefinitions1_lastpos[markupdefinitions1_d, m, e] = markupdefinitions1_lastpos[markupdefinitions1_d, m, c] markupdefinitions1_followset[markupdefinitions1_d, m, e] = markupdefinitions1_followset[markupdefinitions1_d, m, c] split(markupdefinitions1_followset[markupdefinitions1_d, m, c], f_c, / /) for (i in f_c) if (--i + 1) markupdefinitions1_follow[markupdefinitions1_d, m, e, f_c[1+ i]] = markupdefinitions1_follow[markupdefinitions1_d, m, c, f_c[1+ i]] split(markupdefinitions1_lastpos[markupdefinitions1_d, m, c], lp_l, / /) for (i in lp_l) if (--i + 1) { if (!index(" " markupdefinitions1_followset[markupdefinitions1_d, m, e] " ", " " lp_l[1+ i] " ")) { markupdefinitions1_followset[markupdefinitions1_d, m, e] = concat(markupdefinitions1_followset[markupdefinitions1_d, m, e], ((markupdefinitions1_followset[markupdefinitions1_d, m, e] && lp_l[1+ i])? " " : ""), lp_l[1+ i]) markupdefinitions1_follow[markupdefinitions1_d, m, e, lp_l[1+ i]] = markupdefinitions1_firstpos[markupdefinitions1_d, m, c] } else markupdefinitions1_follow[markupdefinitions1_d, m, e, lp_l[1+ i]] = concat(markupdefinitions1_follow[markupdefinitions1_d, m, e, lp_l[1+ i]], ((markupdefinitions1_follow[markupdefinitions1_d, m, e, lp_l[1+ i]] && markupdefinitions1_firstpos[markupdefinitions1_d, m, c])? " " : ""), markupdefinitions1_firstpos[markupdefinitions1_d, m, c]) } ;; ;; ;; ;; return e } function markupdefinitions1_construct_primitive(m, x, p,e) { p = (markupdefinitions1_position_no++ x) e = ("(" p ")") markupdefinitions1_nullable[markupdefinitions1_d, m, e] = "" markupdefinitions1_firstpos[markupdefinitions1_d, m, e] = p markupdefinitions1_lastpos[markupdefinitions1_d, m, e] = p markupdefinitions1_followset[markupdefinitions1_d, m, e] = "" return e } function markupdefinitions1_construct_qmark(m, c, e,i,f_c) { split("", f_c) e = ("(" c "?)") markupdefinitions1_nullable[markupdefinitions1_d, m, e] = "1" markupdefinitions1_firstpos[markupdefinitions1_d, m, e] = markupdefinitions1_firstpos[markupdefinitions1_d, m, c] markupdefinitions1_lastpos[markupdefinitions1_d, m, e] = markupdefinitions1_lastpos[markupdefinitions1_d, m, c] markupdefinitions1_followset[markupdefinitions1_d, m, e] = markupdefinitions1_followset[markupdefinitions1_d, m, c] split(markupdefinitions1_followset[markupdefinitions1_d, m, c], f_c, / /) for (i in f_c) if (--i + 1) markupdefinitions1_follow[markupdefinitions1_d, m, e, f_c[1+ i]] = markupdefinitions1_follow[markupdefinitions1_d, m, c, f_c[1+ i]] return e } function markupdefinitions1_construct_plus(m, c) { return markupdefinitions1_construct_sequence(m, c, markupdefinitions1_construct_star(m, markupdefinitions1_copy_and_rename_automaton(m, c))) } function markupdefinitions1_copy_automaton(m, f, e,i,f_c) { split("", f_c) e = ("(" f ")") markupdefinitions1_nullable[markupdefinitions1_d, m, e] = markupdefinitions1_nullable[markupdefinitions1_d, m, f] markupdefinitions1_firstpos[markupdefinitions1_d, m, e] = markupdefinitions1_firstpos[markupdefinitions1_d, m, f] markupdefinitions1_lastpos[markupdefinitions1_d, m, e] = markupdefinitions1_lastpos[markupdefinitions1_d, m, f] markupdefinitions1_followset[markupdefinitions1_d, m, e] = markupdefinitions1_followset[markupdefinitions1_d, m, f] split(markupdefinitions1_followset[markupdefinitions1_d, m, f], f_c, / /) for (i in f_c) if (--i + 1) markupdefinitions1_follow[markupdefinitions1_d, m, e, f_c[1+ i]] = markupdefinitions1_follow[markupdefinitions1_d, m, f, f_c[1+ i]] return e } function markupdefinitions1_reduce(model, pos, nontermpos, i,reduct,stackimage,nonterm) { nonterm = stack4_stack[nontermpos] ; stackimage = "" for (i = pos; i <= stack4_len; i++) stackimage = (stackimage stack4_stack[i]) if (nonterm == "+" || nonterm == "*" || nonterm == "?") { if (nontermpos != stack4_len) { platformerrorhandler1_fatalError(concat("'",stackimage,"': invalid use of unary as binary model group operator"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (pos != nontermpos - 1) { platformerrorhandler1_fatalError(concat("'",stackimage,"': invalid operand to unary model group operator"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!markupdefinitions1_do_construct) reduct = concat("(",stack4_stack[pos],stack4_stack[pos + 1],")") else { if (nonterm == "*") reduct = markupdefinitions1_construct_star(model, stack4_stack[pos]) else if (nonterm == "+") { reduct = markupdefinitions1_construct_plus(model, stack4_stack[pos]) } else if (nonterm == "?") { reduct = markupdefinitions1_construct_qmark(model, stack4_stack[pos]) } } } else if (nonterm == "," || nonterm == "|" || nonterm == "&" || nonterm == "/") { if (nontermpos != stack4_len - 1) { platformerrorhandler1_fatalError(concat("'",stackimage,"': invalid use of binary model group operator"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (nontermpos != pos + 1) { platformerrorhandler1_fatalError(concat("'",stackimage,"': invalid use of binary model group operator"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!markupdefinitions1_do_construct) reduct = concat("(",stack4_stack[nontermpos - 1],nonterm,stack4_stack[nontermpos + 1],")") else { if (nonterm == "|" || nonterm == "/") reduct = markupdefinitions1_construct_alternation(model, stack4_stack[nontermpos - 1], stack4_stack[nontermpos + 1]) else if (nonterm == ",") { reduct = markupdefinitions1_construct_sequence(model, stack4_stack[nontermpos - 1], stack4_stack[nontermpos + 1]) } else { platformerrorhandler1_fatalError(concat("'",stackimage,"': unhandled model group construct"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } else if (nonterm == "(") { if (stack4_stack[stack4_len] != ")") { platformerrorhandler1_fatalError(concat("'",stackimage,"': unbalanced braces in model group"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (pos != nontermpos || pos != stack4_len - 2) { platformerrorhandler1_fatalError(concat("'",stackimage,"': invalid braced expression in model group"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!markupdefinitions1_do_construct) reduct = concat("(",stack4_stack[pos + 1],")") else reduct = markupdefinitions1_copy_automaton(model, stack4_stack[pos + 1]) } else if (nonterm == ")") { { platformerrorhandler1_fatalError(concat("'",stackimage,"': unbalanced braces in model group"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else if (match(nonterm, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*$/)) { if (nontermpos != pos || pos != stack4_len) { platformerrorhandler1_fatalError(concat("'",nonterm,"': invalid use of primitive content token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; if (!markupdefinitions1_do_construct) reduct = concat("(",markupdefinitions1_position_no++,nonterm,")") else reduct = markupdefinitions1_construct_primitive(model, nonterm) } else if (nonterm == "#PCDATA") { if (nontermpos != pos || pos != stack4_len) { platformerrorhandler1_fatalError(concat("'",nonterm,"': invalid use of primitive content token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!markupdefinitions1_do_construct) reduct = concat("(",markupdefinitions1_position_no++,nonterm,")") else reduct = markupdefinitions1_construct_star(model, markupdefinitions1_construct_primitive(model, nonterm)) } else { { platformerrorhandler1_fatalError(concat("'",stackimage,"': unrecognized model group construct"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; for (i = stack4_len - pos + 1; i > 0; i--) stack4_pop() stack4_push(reduct) } function markupdefinitions1_dump_modelstack( dump,p) { dump = "" for (p = 1; p <= stack4_len; p++) dump = concat(dump," ",stack4_stack[p]) return ("this.modelstack:" dump) } function markupdefinitions1_parse_modelgroup(doctype, model, s, a,b,ip,i,b_pos) { markupdefinitions1_d = doctype s = markupdefinitions1_expand_allgroups(s) stack4_clear() stack4_push("$") markupdefinitions1_input_string = s ip = markupdefinitions1_tokenize() if (!ip) return "" for (;;) { i = stack4_len do a = stack4_stack[i--]; while (!(markupdefinitions1_is_token(a))) i++ b = ip if (a == "$" && b == "$") { return stack4_stack[2] } ; if (markupdefinitions1_precedence(a, b) == 1) { do { b = a b_pos = i do --i; while (!markupdefinitions1_is_token(stack4_stack[i])) a = stack4_stack[i] } while (markupdefinitions1_precedence(a, b) != -1) markupdefinitions1_reduce(model, i + 1, b_pos) ; ; } else { stack4_push(b) ip = markupdefinitions1_tokenize() if (!ip) return "" } } } function markupdefinitions1_get_ambigous_token(d, m, e, i,j,k,n,tmp,p,fs,f,l) { split("", p) split("", fs) split("", f) split("", l) ;; ;; ;; ;; split(markupdefinitions1_followset[d, m, e], p, / /) for (i in p) if (--i + 1) { ; tmp = markupdefinitions1_follow[d, m, e, p[1+ i]] ; n = split(tmp, fs, / /) ; for (j = 0; j < n - 1; j++) for (k = j + 1; k <= n - 1; k++) if (markupdefinitions1_chi(fs[1+ j]) == markupdefinitions1_chi(fs[1+ k])) return markupdefinitions1_chi(fs[1+ j]) } tmp = markupdefinitions1_firstpos[d, m, e] n = split(tmp, f, / /) for (j = 0; j < n - 1; j++) for (k = j + 1; k <= n - 1; k++) if (markupdefinitions1_chi(f[1+ j]) == markupdefinitions1_chi(f[1+ k])) return markupdefinitions1_chi(f[1+ j]) tmp = markupdefinitions1_lastpos[d, m, e] n = split(tmp, l, / /) for (j = 0; j < n - 1; j++) for (k = j + 1; k <= n - 1; k++) if (markupdefinitions1_chi(l[1+ j]) == markupdefinitions1_chi(l[1+ k])) return markupdefinitions1_chi(l[1+ j]) return "" } function markupdefinitions1_prepare_states(dt, md, modelgroup, automaton) { ; gsub(/[[:space:]]+/, "", modelgroup) return markupdefinitions1_parse_modelgroup(dt, md, modelgroup) } function markupdefinitions1_copy_or_prepare_states(dt, md, modelgroup, copied_automaton_ref,automaton_ref_copy) { copied_automaton_ref = "" automaton_ref_copy = "" if (modelgroup == "(#PCDATA)" || !((dt, modelgroup) in markupdefinitions1_element_content_models)) { markupdefinitions1_element_content_models[dt, modelgroup] = md ; return markupdefinitions1_prepare_states(dt, md, modelgroup) } else { if ((dt, markupdefinitions1_element_content_models[dt, modelgroup]) in markupdefinitions1_element_modelgroups) { ; markupdefinitions1_copy_automaton_tables(dt, markupdefinitions1_element_content_models[dt, modelgroup], md) return markupdefinitions1_element_modelgroups[dt, markupdefinitions1_element_content_models[dt, modelgroup]] } else { { platformerrorhandler1_fatalError("internal error: inconsistent modelgroup cache", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } } function markupdefinitions1_is_optional(dt, md, automaton) { if (((dt, md, automaton) in markupdefinitions1_nullable)) return markupdefinitions1_nullable[dt, md, automaton] return "" } function markupdefinitions1_is_terminal(dt, md, automaton, s, l) { if (!(((dt, md, automaton) in markupdefinitions1_lastpos))) return "" l = markupdefinitions1_lastpos[dt, md, automaton] return index(" " l " ", " " s " ") } function markupdefinitions1_get_state_by_symbol(states, x, i,tmp) { split("", tmp) split(states, tmp, / /) for (i in tmp) if (--i + 1) if (markupdefinitions1_chi(tmp[1+ i]) == x) return tmp[1+ i] return "" } function markupdefinitions1_get_marked_symbol(dt, md, automaton, state, x, r) { r = "" if (!state) r = markupdefinitions1_get_state_by_symbol(markupdefinitions1_firstpos[dt, md, automaton], x) else if (!(((dt, md, automaton, state) in markupdefinitions1_follow))) r = "" else r = markupdefinitions1_get_state_by_symbol(markupdefinitions1_follow[dt, md, automaton, state], x) ; return r } function markupdefinitions1_get_all_marked_symbols(dt, md, automaton, state, r) { r = "" ; if (!state) r = markupdefinitions1_firstpos[dt, md, automaton] else if (!((dt, md, automaton, state) in markupdefinitions1_follow)) { r = "" } else { ; r = markupdefinitions1_follow[dt, md, automaton, state] } ; return r } function markupdefinitions1_states_symbols(states, i,r,tmp) { split("", tmp) split(states, tmp, / /) for (i in tmp) if (--i + 1) if (r) r = (r " " markupdefinitions1_chi(tmp[1+ i])) else r = markupdefinitions1_chi(tmp[1+ i]) ; return r } function markupdefinitions1_is_pcdata_only_state(states) { return (states ~ /^[[:digit:]]+#PCDATA$/) } function markupdefinitions1_state_symbol(state) { return markupdefinitions1_chi(state) } function markupdefinitions1_dump_automaton(dt, model, i,buf) { for (i in markupdefinitions1_nullable) buf = concat(buf,"\nnullable[",i,"]=",markupdefinitions1_nullable[i]) for (i in markupdefinitions1_firstpos) buf = concat(buf,"\nthis.firstpos[",i,"]=",markupdefinitions1_firstpos[i]) for (i in markupdefinitions1_lastpos) buf = concat(buf,"\nthis.lastpos[",i,"]=",markupdefinitions1_lastpos[i]) for (i in markupdefinitions1_followset) buf = concat(buf,"\nthis.followset[",i,"]=",markupdefinitions1_followset[i]) for (i in markupdefinitions1_follow) buf = concat(buf,"\nthis.follow[",i,"]=",markupdefinitions1_follow[i]) return buf } function markupdefinitions1_store_element_decl(declaration_set_name, name, decl, automaton_ref, exclusions, inclusions, start_tag_omittable, end_tag_omittable, i,j,tmp,tmp2) { split("", tmp) split("", tmp2) ; if (!match(name, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*$/)) { platformerrorhandler1_fatalError(concat("'",name,"': invalid generic identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ((declaration_set_name, name) in markupdefinitions1_element_declarations) { platformerrorhandler1_fatalError(concat("'",name,"': attempting to redefine element type"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } markupdefinitions1_element_declarations[declaration_set_name, name] = decl if (automaton_ref) markupdefinitions1_element_modelgroups[declaration_set_name, name] = automaton_ref if (exclusions) { markupdefinitions1_element_exclusions[declaration_set_name, name] = exclusions } if (inclusions) { if (exclusions) { split(exclusions, tmp, / /) split(inclusions, tmp2, / /) for (i in tmp) if (--i + 1) for (j in tmp2) if (--j + 1) if (tmp[1+ i] == tmp2[1+ j]) { platformerrorhandler1_fatalError(concat("element ",tmp[1+ i]," is both included and excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } markupdefinitions1_element_inclusions[declaration_set_name, name] = inclusions } if (start_tag_omittable == "O") markupdefinitions1_element_start_tag_omittable[declaration_set_name, name] = "1" if (end_tag_omittable == "O") markupdefinitions1_element_end_tag_omittable[declaration_set_name, name] = "1" } function markupdefinitions1_store_element_attribute_decl(declaration_set_name, elmtname, attrname, declaredval, semantics, val, data_notation_name, data_notation_attribute_values, data_data_attribute) { data_data_attribute = "" ; if (sgmldecl1_syntax_namecase_general == "YES") { elmtname = toupper(elmtname) attrname = toupper(attrname) if (data_notation_name) data_notation_name = toupper(data_notation_name) } if (data_notation_name) { if (!index(" " markupdefinitions1_notation_names[declaration_set_name] " ", " " data_notation_name " ")) { platformerrorhandler1_fatalError(concat("'", data_notation_name, "': use of undeclared notation name in attribute data specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if ((declaration_set_name, elmtname) in markupdefinitions1_element_attributes) { if (index(" " markupdefinitions1_element_attributes[declaration_set_name, elmtname] " ", " " attrname " ")) { platformerrorhandler1_fatalError(concat("declaration set ", declaration_set_name, ": element ", elmtname, ": attribute ", attrname, ": attribute already declared"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } markupdefinitions1_element_attributes[declaration_set_name, elmtname] = concat(markupdefinitions1_element_attributes[declaration_set_name, elmtname], ((markupdefinitions1_element_attributes[declaration_set_name, elmtname] && attrname)? " " : ""), attrname) } else markupdefinitions1_element_attributes[declaration_set_name, elmtname] = attrname markupdefinitions1_attribute_declared_values[declaration_set_name, elmtname, attrname] = declaredval if (semantics) markupdefinitions1_attribute_default_semantics[declaration_set_name, elmtname, attrname] = semantics if (val) markupdefinitions1_attribute_default_values[declaration_set_name, elmtname, attrname] = val if (declaredval == "ID") markupdefinitions1_element_id_attributes[declaration_set_name, elmtname] = attrname if (semantics == "#CONREF") markupdefinitions1_element_conref_attributes[declaration_set_name, elmtname] = attrname if (declaredval == "DATA") { if (data_notation_name == "") { platformerrorhandler1_fatalError("internal error - data notation name is empty/not set", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } markupdefinitions1_attribute_declared_data_notations[declaration_set_name, elmtname, attrname] = data_notation_name for (data_data_attribute in data_notation_attribute_values) { ; markupdefinitions1_attribute_data_attribute_values[declaration_set_name, elmtname, attrname, data_data_attribute] = data_notation_attribute_values[data_data_attribute] if ((declaration_set_name, elmtname, attrname) in markupdefinitions1_data_attribute_data_attributes) markupdefinitions1_attribute_data_attributes[declaration_set_name, elmtname, attrname] = (markupdefinitions1_attribute_data_attributes[declaration_set_name, elmtname, attrname] " " data_data_attribute) else markupdefinitions1_attribute_data_attributes[declaration_set_name, elmtname, attrname] = data_data_attribute } } } function markupdefinitions1_store_data_attribute_decl(declaration_set_name, notationname, attrname, declaredval, semantics, val, data_notation_name, data_notation_attribute_values, data_data_attribute) { data_data_attribute = "" ; if (sgmldecl1_syntax_namecase_general == "YES") { notationname = toupper(notationname) attrname = toupper(attrname) if (data_notation_name) data_notation_name = toupper(data_notation_name) } if ((declaration_set_name, notationname) in markupdefinitions1_data_attributes) { if (index(" " markupdefinitions1_data_attributes[declaration_set_name, notationname] " ", " " attrname " ")) return } if (data_notation_name) { if (!index(" " markupdefinitions1_notation_names[declaration_set_name] " ", " " data_notation_name " ")) { platformerrorhandler1_fatalError(concat("'", data_notation_name, "': use of undeclared notation name in attribute data specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (markupdefinitions1_data_attributes[declaration_set_name, notationname]) markupdefinitions1_data_attributes[declaration_set_name, notationname] = concat(markupdefinitions1_data_attributes[declaration_set_name, notationname], " ", attrname) else markupdefinitions1_data_attributes[declaration_set_name, notationname] = attrname markupdefinitions1_data_attribute_declared_values[declaration_set_name, notationname, attrname] = declaredval if (semantics) markupdefinitions1_data_attribute_default_semantics[declaration_set_name, notationname, attrname] = semantics if (val) markupdefinitions1_data_attribute_default_values[declaration_set_name, notationname, attrname] = val if (declaredval == "DATA") { if (data_notation_name == "") { platformerrorhandler1_fatalError("internal error - data notation name is empty/not set", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; markupdefinitions1_data_attribute_declared_data_notations[declaration_set_name, notationname, attrname] = data_notation_name for (data_data_attribute in data_notation_attribute_values) { ; markupdefinitions1_data_attribute_data_attribute_values[declaration_set_name, notationname, attrname, data_data_attribute] = data_notation_attribute_values[data_data_attribute] if ((declaration_set_name, notationname, attrname) in markupdefinitions1_data_attribute_data_attributes) markupdefinitions1_data_attribute_data_attributes[declaration_set_name, notationname, attrname] = (markupdefinitions1_attribute_data_attributes[declaration_set_name, notationname, attrname] " " data_data_attribute) else markupdefinitions1_data_attribute_data_attributes[declaration_set_name, notationname, attrname] = data_data_attribute } } } function markupdefinitions1_parse_element_decl(declaration_set_name, decl, name,name_group,start_tag_omittable,end_tag_omittable,exclusions_start,exclusions_end,inclusions_start,inclusions_end,exclusions,inclusions,automaton_ref,name_group_arr,name_group_len,rank_suffix,rank_group,i,j) { name = "" name_group = "" start_tag_omittable = "" end_tag_omittable = "" exclusions = "" inclusions = "" automaton_ref = "" split("", name_group_arr) rank_suffix = "" rank_group = "" ; sub(/^$/, "", decl) sub(/^[ \t\n]+/, "", decl) if (sgmldecl1_syntax_namecase_general == "YES") decl = toupper(decl) if (substr(decl, 1, 1) == "(") { if (!index(decl, ")")) { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': unterminated name group in ", "element declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; name_group = substr(decl, 2, index(decl, ")") - 2); gsub(/[ \t\n]+/, "", name_group); gsub(",", "|", name_group); decl = substr(decl, index(decl, ")") + 1); } else { if (match(decl, /[ \t\n]+/)) { if (RSTART == 1) { platformerrorhandler1_fatalError(("missing identifier in " "element declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; name = substr(decl, 1, RSTART - 1); decl = substr(decl, RSTART + RLENGTH - 1); } else { if (!decl) { platformerrorhandler1_fatalError(("missing identifier in " "element declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; name = decl; decl = ""; } } ; sub(/^[ \t\n]+/, "", decl) ; if (sgmldecl1_features_minimize_rank == "YES") { if (match(decl, /^[0-9]+/)) { rank_suffix = substr(decl, RSTART, RLENGTH) decl = substr(decl, RLENGTH + 1) sub(/^[ \t\n]+/, "", decl) } } if ((substr(decl, 1, 1) ~ /^[Oo]$/)) start_tag_omittable = "O" else if (substr(decl, 1, 1) == "-") start_tag_omittable = "-" if (start_tag_omittable) { decl = substr(decl, 2) if (!match(decl, /^[ \t\n]+/)) { platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid omitted tag minimization specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } decl = substr(decl, RLENGTH + 1) if ((substr(decl, 1, 1) ~ /^[Oo]$/)) end_tag_omittable = "O" else if (substr(decl, 1, 1) == "-") end_tag_omittable = "-" else { platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid omitted tag minimization specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } decl = substr(decl, 2) if (!match(decl, /^[ \t\n]+/)) { platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl), ": invalid omitted tag minimization specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } decl = substr(decl, RLENGTH + 1) } ; if (match(decl, "[ \t\n]+-\\(")) { exclusions_start = RSTART if (match(decl, "[ \t\n]+\\+\\(")) inclusions_start = RSTART } else if (match(decl, "[ \t\n]+\\+\\(")) inclusions_start = RSTART if (exclusions_start) { exclusions_start = sgmlutil_sgml_index3(decl, "(", exclusions_start) if (!(exclusions_end = sgmlutil_sgml_index3(decl, ")", exclusions_start))) { platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": unterminated exclusion name group"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } exclusions = substr(decl, exclusions_start + 1, exclusions_end - exclusions_start - 1) gsub(/[ \t\n]+/, "", exclusions) gsub(/\|/, " ", exclusions) if (!match(exclusions, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*( ([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*)*$/)) { platformerrorhandler1_fatalError(concat("'",substr(decl, exclusions_start + 1, exclusions_end - exclusions_start - 1),"': invalid exclusion name group"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (inclusions_start) { inclusions_start = sgmlutil_sgml_index3(decl, "(", inclusions_start) if (!(inclusions_end = sgmlutil_sgml_index3(decl, ")", inclusions_start))) { platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": unterminated inclusion name group"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } inclusions = substr(decl, inclusions_start + 1, inclusions_end - inclusions_start - 1) gsub(/[ \t\n]+/, "", inclusions) gsub(/\|/, " ", inclusions) if (!match(inclusions, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*( ([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*)*$/)) { platformerrorhandler1_fatalError(concat("'",substr(decl, inclusions_start + 1, inclusions_end - inclusions_start - 1),"': invalid inclusion name group"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; if (inclusions_start && exclusions_start) { if (inclusions_start < exclusions_start) { platformerrorhandler1_fatalError(concat("'",decl,"': inclusions must come after exclusions"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (inclusions_end < exclusions_end) { platformerrorhandler1_fatalError(concat("'",decl,"': unterminated exclusion name group"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!match(substr(decl, exclusions_end + 1, inclusions_start - exclusions_end - 2), /^[ \t\n]+$/)) { platformerrorhandler1_fatalError(concat("'",decl,"': unrecognized characters following exclusion name group"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!match(substr(decl, inclusions_end + 1), /^[ \t\n]*$/)) { platformerrorhandler1_fatalError(concat("'",decl,"': unrecognized characters following inclusion name group"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (exclusions_start) decl = substr(decl, 1, exclusions_start - 2) else if (inclusions_start) decl = substr(decl, 1, inclusions_start - 2) ; if ((substr(decl, 1, 5) ~ /^[Cc][Dd][Aa][Tt][Aa]$/)) { if (!match(substr(decl, 6), /^[ \t\n]*/)) { platformerrorhandler1_fatalError(concat("'",decl,"': unrecognized tokens following CDATA"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (exclusions_start || inclusions_start) { platformerrorhandler1_fatalError(concat("'",decl,"': invalid exception specification following CDATA"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } decl = "CDATA" } else if ((substr(decl, 1, 6) ~ /^[Rr][Cc][Dd][Aa][Tt][Aa]$/)) { if (!match(substr(decl, 7), /^[ \t\n]*/)) { platformerrorhandler1_fatalError(concat("'",decl,"': unrecognized tokens following RCDATA"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (exclusions_start || inclusions_start) { platformerrorhandler1_fatalError(concat("'",decl,"': invalid exception specification following RCDATA"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } decl = "RCDATA" } else if ((substr(decl, 1, 5) ~ /^[Ee][Mm][Pp][Tt][Yy]$/)) { if (!match(substr(decl, 6), /^[ \t\n]*/)) { platformerrorhandler1_fatalError(concat("'",decl,"': unrecognized tokens following EMPTY"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (exclusions_start || inclusions_start) { platformerrorhandler1_fatalError(concat("'",decl,"': invalid exception specification following EMPTY"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } decl = "EMPTY" } else if ((substr(decl, 1, 3) ~ /^[Aa][Nn][Yy]$/)) { if (!match(substr(decl, 4), /^[ \t\n]*/)) { platformerrorhandler1_fatalError(concat("'",decl,"': unrecognized tokens following ANY"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } decl = "ANY" } else { if (!(substr(decl, 1, 1) == "(")) { platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid model group specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (index(decl, "/")) { platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid model group specification, contains / character"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (name_group) { name_group_len = split(name_group, name_group_arr, /\|/) if (name_group_len < 1 || !name_group_arr[1+ 0]) { platformerrorhandler1_fatalError(concat("'",name_group,"': invalid name group in element declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } for (i = 0; i < name_group_len; i++) { ; name = name_group_arr[1+ i] if (sgmldecl1_features_minimize_rank == "YES") { if (rank_suffix != "") { if ((name ~ /[0-9]+$/)) { platformerrorhandler1_fatalError(concat("'", name, "': a ranked element must not have a name ending in a number"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } name = (name rank_suffix) } } if (substr(decl, 1, 1) == "(") automaton_ref = markupdefinitions1_copy_or_prepare_states(declaration_set_name, name, decl) else automaton_ref = "" markupdefinitions1_store_element_decl(declaration_set_name, name, decl, automaton_ref, exclusions, inclusions, start_tag_omittable, end_tag_omittable) if (sgmldecl1_features_minimize_rank == "YES") { if (rank_suffix != "") { for (j = 0; j < name_group_len; j++) rank_group = concat(rank_group, ((rank_group && name_group_arr[1+ j])? " " : ""), name_group_arr[1+ j]) markupdefinitions1_element_rank_groups[declaration_set_name, name] = rank_group markupdefinitions1_element_stem_rank_groups[declaration_set_name, name_group_arr[1+ i]] = rank_group ; rank_group = "" } } } } else { if (sgmldecl1_features_minimize_rank == "YES") { if (rank_suffix != "") { if ((name ~ /[0-9]+$/)) { platformerrorhandler1_fatalError(concat("'", name, "': a ranked element must not have a name ending in a number"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; markupdefinitions1_element_rank_groups[declaration_set_name, (name rank_suffix)] = name markupdefinitions1_element_stem_rank_groups[declaration_set_name, name] = name name = (name rank_suffix) } } if (substr(decl, 1, 1) == "(") { automaton_ref = markupdefinitions1_copy_or_prepare_states(declaration_set_name, name, decl) } else automaton_ref = "" markupdefinitions1_store_element_decl(declaration_set_name, name, decl, automaton_ref, exclusions, inclusions, start_tag_omittable, end_tag_omittable) } } function markupdefinitions1_parse_linkset_decl(declaration_set_name, decl, link_set_name,name,name_group,name_group_arr,name_group_len,attr_spec,result_name,result_attr_spec,i,uselink_target,postlink_target,id_token) { split("", name_group_arr) attr_spec = "" result_name = "" result_attr_spec = "" uselink_target = "" postlink_target = "" id_token = "" ; if (markupdefinitions1_link_process_source_doctype_specs[declaration_set_name] == "#SIMPLE") { platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": link set declaration invalid in simple link type declarations"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (match(decl, /^$/, "", decl) sub(/^[ \t\n]+/, "", decl) while (decl != "") { uselink_target = "" postlink_target = "" id_token = "" if (link_set_name == "#IDLINK") { if (!match(decl, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl), ": invalid name token for use as ID in IDLINK link rule"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } id_token = substr(decl, 1, RLENGTH) if (sgmldecl1_syntax_namecase_general == "YES") id_token = toupper(id_token) decl = substr(decl, RLENGTH + 1) sub(/^[ \t\n]+/, "", decl) } if ((decl ~ /^#[Ii][Mm][Pp][Ll][Ii][Ee][Dd]/)) { name = "#IMPLIED" decl = substr(decl, 9) ; } else { if (substr(decl, 1, 1) == "(") { if (!index(decl, ")")) { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': unterminated name group in ", "link set source element specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; name_group = substr(decl, 2, index(decl, ")") - 2); gsub(/[ \t\n]+/, "", name_group); gsub(",", "|", name_group); decl = substr(decl, index(decl, ")") + 1); } else { if (match(decl, /[ \t\n]+/)) { if (RSTART == 1) { platformerrorhandler1_fatalError(("missing identifier in " "link set source element specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; name = substr(decl, 1, RSTART - 1); decl = substr(decl, RSTART + RLENGTH - 1); } else { if (!decl) { platformerrorhandler1_fatalError(("missing identifier in " "link set source element specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; name = decl; decl = ""; } } } sub(/^[ \t\n]+/, "", decl) ; if (match(decl, /^#[Uu][Ss][Ee][Ll][Ii][Nn][Kk][[:space:]]+/)) { decl = substr(decl, RLENGTH + 1) if (match(decl, /^#[Ee][Mm][Pp][Tt][Yy]/)) { uselink_target = "#EMPTY" } else if (!match(decl, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { { platformerrorhandler1_fatalError(concat("link set ", link_set_name, ": ", sgmlutil_format_for_errormsg(decl), ": invalid #USELINK target"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { uselink_target = substr(decl, RSTART, RLENGTH) if (sgmldecl1_syntax_namecase_general == "YES") uselink_target = toupper(uselink_target) } decl = substr(decl, RLENGTH + 1) sub(/^[ \t\n]+/, "", decl) ; } if (match(decl, /^#[Pp][Oo][Ss][Tt][Ll][Ii][Nn][Kk][[:space:]]+/)) { decl = substr(decl, RLENGTH + 1) if (match(decl, /^#[Ee][Mm][Pp][Tt][Yy]/)) { postlink_target = "#EMPTY" } else if (match(decl, /^#[Rr][Ee][Ss][Tt][Oo][Rr][Ee]/)) { postlink_target = "#RESTORE" } else if (!match(decl, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { { platformerrorhandler1_fatalError(concat("link set ", link_set_name, ": ", sgmlutil_format_for_errormsg(decl), ": invalid #POSTLINK target"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { postlink_target = substr(decl, RSTART, RLENGTH) if (sgmldecl1_syntax_namecase_general == "YES") postlink_target = toupper(postlink_target) } decl = substr(decl, RLENGTH + 1) sub(/^[ \t\n]+/, "", decl) ; } ; if (name != "#IMPLIED" && substr(decl, 1, 1) == "[") { i = index(decl, "]") if (i == 0) { platformerrorhandler1_fatalError("unterminated link attribute specification", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; attr_spec = substr(decl, 2, i - 1 - 1) decl = substr(decl, i + 1) if ((attr_spec ~ /^[ \t\n]*$/)) { ; attr_spec = "" } } else attr_spec = "" ; if (markupdefinitions1_link_process_result_doctype_specs[declaration_set_name] != "#IMPLIED") { sub(/^[ \t\n]+/, "", decl) if (substr(decl, 1, 1) == "#") { if (!(decl ~ /^#[Ii][Mm][Pp][Ll][Ii][Ee][Dd]/)) { platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid link set result element specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } result_name = "#IMPLIED" result_attr_spec = "" decl = substr(decl, 9) } else { if (!match(decl, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid link set result element specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } result_name = substr(decl, RSTART, RLENGTH) decl = substr(decl, RLENGTH + 1) if (sgmldecl1_syntax_namecase_general == "YES") result_name = toupper(result_name) ; sub(/^[ \t\n]+/, "", decl) if (substr(decl, 1, 1) == "[") { i = index(decl, "]") if (i == 0) { platformerrorhandler1_fatalError("unterminated result attribute specification", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } result_attr_spec = substr(decl, 2, i - 1 - 1) decl = substr(decl, i + 1) if ((result_attr_spec ~ /^[ \t\n]*$/)) result_attr_spec = "" } else result_attr_spec = "" ; if (sgmldecl1_features_minimize_implydef_element == "NO" && !((markupdefinitions1_link_process_result_doctype_specs[declaration_set_name], result_name) in markupdefinitions1_element_declarations)) { platformerrorhandler1_fatalError(concat("'",result_name,"': result element specified in link set declaration is undeclared in result document type definition"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } else { if (name == "#IMPLIED") { platformerrorhandler1_fatalError("invalid use of #IMPLIED in implicit link rule", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } result_name = "" result_attr_spec = "" } if (name_group) { name_group_len = split(name_group, name_group_arr, /\|/) if (name_group_len < 1 || !name_group_arr[1+ 0]) { platformerrorhandler1_fatalError(concat("'",name_group,"': invalid name group in element declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } for (i = 0; i < name_group_len; i++) { ; name = name_group_arr[1+ i] if (sgmldecl1_syntax_namecase_general == "YES") name = toupper(name) if (sgmldecl1_features_minimize_implydef_element == "NO" && !((markupdefinitions1_link_process_source_doctype_specs[declaration_set_name], name) in markupdefinitions1_element_declarations)) { platformerrorhandler1_fatalError(concat("'",name,"': source element specified in link set declaration is undeclared in source document type definition"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } markupdefinitions1_store_link_rule(declaration_set_name, link_set_name, name, attr_spec, result_name, result_attr_spec, uselink_target, postlink_target, id_token) } } else { if (name != "#IMPLIED") { if (sgmldecl1_syntax_namecase_general == "YES") name = toupper(name) if (sgmldecl1_features_minimize_implydef_element == "NO" && !((markupdefinitions1_link_process_source_doctype_specs[declaration_set_name], name) in markupdefinitions1_element_declarations)) { platformerrorhandler1_fatalError(concat("'",name,"': source element specified in link set declaration is undeclared in source document type definition"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } markupdefinitions1_store_link_rule(declaration_set_name, link_set_name, name, attr_spec, result_name, result_attr_spec, uselink_target, postlink_target, id_token) } sub(/^[ \t\n]+/, "", decl) } } function markupdefinitions1_parse_shortref_map_decl(declaration_set_name, decl, shortref_map_name,decl_save,literal,entity_name,literal_number,i,regexp) { shortref_map_name = "" decl_save = "" literal = "" entity_name = "" regexp = "" decl_save = decl ; if (!match(decl, /^ 0) { for (i = markupdefinitions1_shortref_map_delimiter_literal_numbers[declaration_set_name, shortref_map_name]; i >= literal_number; i--) { ; markupdefinitions1_shortref_map_delimiter_literals[declaration_set_name, shortref_map_name, (i + 1)] = markupdefinitions1_shortref_map_delimiter_literals[declaration_set_name, shortref_map_name, i] markupdefinitions1_shortref_map_delimiter_regexpes[declaration_set_name, shortref_map_name, (i + 1)] = markupdefinitions1_shortref_map_delimiter_regexpes[declaration_set_name, shortref_map_name, i] markupdefinitions1_shortref_map_replacement_entities[declaration_set_name, shortref_map_name, (i + 1)] = markupdefinitions1_shortref_map_replacement_entities[declaration_set_name, shortref_map_name, i] } break } } markupdefinitions1_shortref_map_delimiter_literal_numbers[declaration_set_name, shortref_map_name] = markupdefinitions1_shortref_map_delimiter_literal_numbers[declaration_set_name, shortref_map_name] + 1 } else { literal_number = 1 markupdefinitions1_shortref_map_delimiter_literal_numbers[declaration_set_name, shortref_map_name] = 1 } ; markupdefinitions1_shortref_map_delimiter_literals[declaration_set_name, shortref_map_name, literal_number] = literal regexp = literal gsub(/\\/, "\\\\", regexp) gsub(/\*/, "\\*", regexp) gsub(/\+/, "\\+", regexp) gsub(/\|/, "\\|", regexp) gsub(/\[/, "\\[", regexp) gsub(/\]/, "\\]", regexp) gsub("\\(", "\\(", regexp) gsub("\\)", "\\)", regexp) gsub(/\./, "\\.", regexp) gsub(/\&#RS;&#RE;/, "\n", regexp) gsub(/\&#RS;/, "\n", regexp) gsub(/\&#RE;/, "\r", regexp) gsub(/\&#TAB;/, "\t", regexp) gsub(/\&#SPACE;/, " ", regexp) gsub(/B+/, "&+", regexp) gsub(/B/, "[ \t]", regexp) markupdefinitions1_shortref_map_delimiter_regexpes[declaration_set_name, shortref_map_name, literal_number] = regexp markupdefinitions1_shortref_map_replacement_entities[declaration_set_name, shortref_map_name, literal_number] = entity_name sub(/^[ \t\n]+/, "", decl) } while (length(decl) > 1 && substr(decl, 1, 1) != ">") return "" } function markupdefinitions1_parse_shortref_use_decl(declaration_set_name, decl, shortref_map_name,decl_save,name,name_group,name_group_arr,name_group_len,i) { shortref_map_name = "" decl_save = "" name = "" name_group = "" split("", name_group_arr) decl_save = decl ; if (!match(decl, /^$/, "", decl) if (match(decl, /^#[Ee][Mm][Pp][Tt][Yy]/)) { shortref_map_name = "#EMPTY" } else { if (!match(decl, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid short reference map name"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } shortref_map_name = substr(decl, RSTART, RLENGTH) } decl = substr(decl, RLENGTH + 1) if (sgmldecl1_syntax_namecase_general == "YES") shortref_map_name = toupper(shortref_map_name) if (shortref_map_name != "#EMPTY" && !index(" " markupdefinitions1_shortref_maps[declaration_set_name] " ", " " shortref_map_name " ")) { platformerrorhandler1_fatalError(concat("'", shortref_map_name, "': undeclared short reference map name in short reference map use declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } sub(/^[ \t\n]+/, "", decl) ; if (substr(decl, 1, 1) == "(") { if (!index(decl, ")")) { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': unterminated name group in ", "short reference use declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; name_group = substr(decl, 2, index(decl, ")") - 2); gsub(/[ \t\n]+/, "", name_group); gsub(",", "|", name_group); decl = substr(decl, index(decl, ")") + 1); } else { if (match(decl, /[ \t\n]+/)) { if (RSTART == 1) { platformerrorhandler1_fatalError(("missing identifier in " "short reference use declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; name = substr(decl, 1, RSTART - 1); decl = substr(decl, RSTART + RLENGTH - 1); } else { if (!decl) { platformerrorhandler1_fatalError(("missing identifier in " "short reference use declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; name = decl; decl = ""; } } ; if (name_group) { name_group_len = split(name_group, name_group_arr, /\|/) if (name_group_len < 1 || !name_group_arr[1+ 0]) { platformerrorhandler1_fatalError(concat("'",name_group,"': invalid name group in short reference use declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } for (i = 0; i < name_group_len; i++) { ; name = name_group_arr[1+ i] if (sgmldecl1_syntax_namecase_general == "YES") name = toupper(name) if (shortref_map_name == "#EMPTY") delete markupdefinitions1_shortref_uses[declaration_set_name, name] else markupdefinitions1_shortref_uses[declaration_set_name, name] = shortref_map_name } } else { if (sgmldecl1_syntax_namecase_general == "YES") name = toupper(name) if (shortref_map_name == "#EMPTY") delete markupdefinitions1_shortref_uses[declaration_set_name, name] else markupdefinitions1_shortref_uses[declaration_set_name, name] = shortref_map_name } if (!(decl ~ /^[[:space:]]*$/)) { platformerrorhandler1_fatalError(concat("'", decl, "': invalid tokens in short reference use declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return "" } function markupdefinitions1_compare_shortref_delimiter_literal_specificity(delim1, delim2, num_tokens_delim1,num_tokens_delim2,i,delim1_save) { delim1_save = "" ; gsub(/\&#RS;/, "\n", delim1) gsub(/\&#RE;/, "\r", delim1) gsub(/\&#TAB;/, "\t", delim1) gsub(/\&#SPACE;/, " ", delim1) num_tokens_delim1 = length(delim1) gsub(/\&#RS;/, "\n", delim2) gsub(/\&#RE;/, "\r", delim2) gsub(/\&#TAB;/, "\t", delim2) gsub(/\&#SPACE;/, " ", delim2) num_tokens_delim2 = length(delim2) ; if (num_tokens_delim1 < num_tokens_delim2) return -1 if (num_tokens_delim1 > num_tokens_delim2) return 1 delim1_save = delim1 for (i = index(delim1, "B"); i != 0; i = index(delim1, "B")) { ; if (substr(delim2, i, 1) != "B") return -1 sub(/B/, " ", delim1) } delim1 = delim1_save for (i = index(delim2, "B"); i != 0; i = index(delim2, "B")) { ; if (substr(delim1, i, 1) != "B") return 1 sub(/B/, " ", delim2) } return 0 } function markupdefinitions1_store_link_rule(declaration_set_name, link_set_name, name, attr_spec, result_name, result_attr_spec, uselink_target, postlink_target, id_token, rule_no,source_declaration_set_name,empty_map) { source_declaration_set_name = "" split("", empty_map) if ((declaration_set_name, link_set_name, name) in markupdefinitions1_link_rules) { if (name == "#IMPLIED") { platformerrorhandler1_fatalError(concat("link set ", link_set_name, ": multiple rules with #IMPLIED source element"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } rule_no = 1 + markupdefinitions1_link_rules[declaration_set_name, link_set_name, name] } else if (name == "#IMPLIED" && (declaration_set_name, link_set_name) in markupdefinitions1_link_elements) { { platformerrorhandler1_fatalError(concat("link set ", link_set_name, ": rule with #IMPLIED source element must be only rule in link set"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if ((declaration_set_name, link_set_name, "#IMPLIED") in markupdefinitions1_link_rules) { platformerrorhandler1_fatalError(concat("link set ", link_set_name, ": rule with #IMPLIED source element must be only rule in link set"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } rule_no = 1 markupdefinitions1_link_elements[declaration_set_name, link_set_name] = concat(markupdefinitions1_link_elements[declaration_set_name, link_set_name], ((markupdefinitions1_link_elements[declaration_set_name, link_set_name] && name)? " " : ""), name) } if (markupdefinitions1_link_process_result_doctype_specs[declaration_set_name] != "#IMPLIED") { if (result_name == "") { platformerrorhandler1_fatalError(concat("internal error: no result element on link set/rule of an explicit link process"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (result_name != "") { platformerrorhandler1_fatalError(concat("internal error: result element on link set/rule of an implicit link process"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (link_set_name == "#IDLINK") { if (name == "#IMPLIED") { platformerrorhandler1_fatalError(concat("IDLINK link set: attempting to declare #IDLINK rule for an #IMPLIED source element"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((markupdefinitions1_link_process_source_doctype_specs[declaration_set_name], name) in markupdefinitions1_element_id_attributes)) { platformerrorhandler1_fatalError(concat("IDLINK link set: element ", name, ": attempting to declare IDLINK rule for element which hasn't an ID attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; if (! ((declaration_set_name, name) in markupdefinitions1_element_attributes && index(" " markupdefinitions1_element_attributes[declaration_set_name, name] " ", " " markupdefinitions1_element_id_attributes[markupdefinitions1_link_process_source_doctype_specs[declaration_set_name], name] " ")) ) markupdefinitions1_store_element_attribute_decl(declaration_set_name, name, markupdefinitions1_element_id_attributes[markupdefinitions1_link_process_source_doctype_specs[declaration_set_name], name], "NAME", "#IMPLIED", "", "", empty_map) attr_spec = concat(attr_spec, " ", markupdefinitions1_element_id_attributes[markupdefinitions1_link_process_source_doctype_specs[declaration_set_name], name], "=", id_token) if (!(declaration_set_name in markupdefinitions1_link_ids)) markupdefinitions1_link_ids[declaration_set_name] = id_token else markupdefinitions1_link_ids[declaration_set_name] = concat(markupdefinitions1_link_ids[declaration_set_name], ((markupdefinitions1_link_ids[declaration_set_name] && id_token)? " " : ""), id_token) if (!(declaration_set_name in markupdefinitions1_link_idlink_elements)) markupdefinitions1_link_idlink_elements[declaration_set_name] = name else markupdefinitions1_link_idlink_elements[declaration_set_name] = concat(markupdefinitions1_link_idlink_elements[declaration_set_name], ((markupdefinitions1_link_idlink_elements[declaration_set_name] && name)? " " : ""), name) if (!(declaration_set_name in markupdefinitions1_link_sets)) markupdefinitions1_link_sets[declaration_set_name] = "#IDLINK" else if (!index(" " markupdefinitions1_link_sets[declaration_set_name] " ", " " "#IDLINK" " ")) markupdefinitions1_link_sets[declaration_set_name] = concat(markupdefinitions1_link_sets[declaration_set_name], ((markupdefinitions1_link_sets[declaration_set_name] && "#IDLINK")? " " : ""), "#IDLINK") } ; ; markupdefinitions1_link_rules[declaration_set_name, link_set_name, name] = rule_no markupdefinitions1_link_attribute_specifications[declaration_set_name, link_set_name, name, rule_no] = attr_spec if (result_name != "") { markupdefinitions1_link_result_elements[declaration_set_name, link_set_name, name, rule_no] = result_name ; if (result_attr_spec != "") markupdefinitions1_link_result_attribute_specifications[declaration_set_name, link_set_name, name, rule_no] = result_attr_spec } if (uselink_target != "") markupdefinitions1_link_uselink_targets[declaration_set_name, link_set_name, name, rule_no] = uselink_target if (postlink_target != "") markupdefinitions1_link_postlink_targets[declaration_set_name, link_set_name, name, rule_no] = postlink_target } function markupdefinitions1_enable_markdown() { markupdefinitions1_markdown_enabled = "YES" } function markupdefinitions1_reset() { stack4_clear() split("", markupdefinitions1_nullable) split("", markupdefinitions1_firstpos) split("", markupdefinitions1_lastpos) split("", markupdefinitions1_followset) split("", markupdefinitions1_follow) markupdefinitions1_position_no = 1 markupdefinitions1_do_construct = "1" markupdefinitions1_input_string = "" split("", markupdefinitions1_permutation_matrices) split("", markupdefinitions1_external_subset_sysids) split("", markupdefinitions1_external_subset_pubids) split("", markupdefinitions1_link_process_source_doctype_specs) split("", markupdefinitions1_link_process_result_doctype_specs) split("", markupdefinitions1_link_sets) split("", markupdefinitions1_link_ids) split("", markupdefinitions1_link_idlink_elements) split("", markupdefinitions1_link_elements) split("", markupdefinitions1_link_rules) split("", markupdefinitions1_link_attribute_specifications) split("", markupdefinitions1_link_uselink_targets) split("", markupdefinitions1_link_postlink_targets) split("", markupdefinitions1_link_attributes) split("", markupdefinitions1_link_result_elements) split("", markupdefinitions1_link_result_attribute_specifications) split("", markupdefinitions1_element_declarations) split("", markupdefinitions1_element_rank_groups) split("", markupdefinitions1_element_stem_rank_groups) split("", markupdefinitions1_element_content_models) split("", markupdefinitions1_element_start_tag_omittable) split("", markupdefinitions1_element_end_tag_omittable) split("", markupdefinitions1_element_modelgroups) split("", markupdefinitions1_notation_names) split("", markupdefinitions1_storage_manager_notation_names) split("", markupdefinitions1_notation_public_identifiers) split("", markupdefinitions1_notation_system_identifiers) split("", markupdefinitions1_element_inclusions) split("", markupdefinitions1_element_exclusions) split("", markupdefinitions1_element_attributes) split("", markupdefinitions1_element_id_attributes) split("", markupdefinitions1_element_conref_attributes) split("", markupdefinitions1_attribute_declared_values) split("", markupdefinitions1_attribute_declared_data_notations) split("", markupdefinitions1_attribute_data_attributes) split("", markupdefinitions1_attribute_data_attribute_values) split("", markupdefinitions1_attribute_default_semantics) split("", markupdefinitions1_attribute_default_values) markupdefinitions1_markdown_enabled = "" split("", markupdefinitions1_data_attributes) split("", markupdefinitions1_data_attribute_declared_values) split("", markupdefinitions1_data_attribute_declared_data_notations) split("", markupdefinitions1_data_attribute_data_attributes) split("", markupdefinitions1_data_attribute_data_attribute_values) split("", markupdefinitions1_data_attribute_default_semantics) split("", markupdefinitions1_data_attribute_default_values) split("", markupdefinitions1_shortref_maps) split("", markupdefinitions1_shortref_map_delimiter_literal_numbers) split("", markupdefinitions1_shortref_map_delimiter_literals) split("", markupdefinitions1_shortref_map_delimiter_regexpes) split("", markupdefinitions1_shortref_map_replacement_entities) split("", markupdefinitions1_shortref_uses) markupdefinitions1_d = "" } function noopprologhandler1_end_prolog() { } function noopprologhandler1_startContent() { } BEGIN { rawstream1_filename = "-" } function rawstream1_close() { } function rawstream1_set_filename(filename) { rawstream1_filename = filename } function textstream1_readLine( line,iostatus) { if (rawstream1_filename == "-") { if ((getline line) > 0) return line "\n" return "" } iostatus = (getline line < rawstream1_filename) if (iostatus > 0) return line "\n" else if (iostatus < 0) { ERRNO = "'" rawstream1_filename "': error reading file" } return "" } function textstream1_write(str) { if (rawstream1_filename == "-") printf("%s", str) else printf("%s", str) > rawstream1_filename } function textstream1_writeLine(line) { if (rawstream1_filename == "-") print(line) else print(line) > rawstream1_filename return } function textstream1_flush() { if (rawstream1_filename == "-") fflush() else fflush(rawstream1_filename) } function textstream1_get_filename() { return rawstream1_filename } function platformentitymanager1_set_external_subset_identifier(identifier) { platformbaseentitymanager1_set_external_subset_identifier(identifier) } function platformentitymanager1_check_no_variable_is_prefix_of_another(data_attributes_arr, v,v_org,i) { v = "" v_org = "" for (v in data_attributes_arr) { while (v != "") { v_org = v v = substr(v, 1, length(v) - 1) if (v in data_attributes_arr) { { platformerrorhandler1_fatalError(concat("'", v, "': invalid use of query parameter name which is a string prefix of another query parameter name, '", v_org, "'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } } } function platformentitymanager1_write_data_entity(entity_pubid, entity_sysid, notation_pubid, notation_sysid, data_attributes, element, link_process_name, superdcn_pubid) { ; ; ; platformbaseentitymanager1_write_data_entity(entity_pubid, entity_sysid, notation_pubid, notation_sysid, data_attributes, element, link_process_name, superdcn_pubid) } function platformentitymanager1_set_debug_emit_ctx_token(s) { platformbaseentitymanager1_set_debug_emit_ctx_token(s) } function platformentitymanager1_configure(args) { platformbaseentitymanager1_configure(args) } BEGIN { outputhandler1_is_governed_by_content_reference = "" outputhandler1_output_format = "" outputhandler1_dtd_handling = "preserve" outputhandler1_strict_markdown_pl_compat = "" outputhandler1_keep_trailing_codeblock_newlines = "" outputhandler1_dtd_serialized = "" outputhandler1_html_parent = "" outputhandler1_sgml_parent = "" outputhandler1_html_last_event_was_cdata_section = 0 outputhandler1_sgml_last_event_was_cdata_section = 0 outputhandler1_xml_last_event_was_cdata_section = 0 outputhandler1_rcdata_content = "" outputhandler1_in_rcdata_content = 0 } function outputhandler1_configure(args) { if ("output_format" in args) { if (args["output_format"] != "html" && args["output_format"] != "xml" && args["output_format"] != "sgml" && args["output_format"] != "latex" && args["output_format"] != "none") args["output_format"] = "html" } else args["output_format"] = "html" outputhandler1_output_format = args["output_format"] ; if (!args["dtd_handling"]) args["dtd_handling"] = "preserve" else if (args["dtd_handling"] != "preserve" && args["dtd_handling"] != "omit" && args["dtd_handling"] != "preserve_doctype" && args["dtd_handling"] != "generate_doctype" && args["dtd_handling"] != "force" && args["dtd_handling"] != "force_doctype") args["dtd_handling"] = "preserve" outputhandler1_dtd_handling = args["dtd_handling"] ; if ("strict_markdown_pl_compatibility" in args) { outputhandler1_strict_markdown_pl_compat = args["strict_markdown_pl_compatibility"] ; } if ("keep_trailing_codeblock_newlines" in args) { outputhandler1_keep_trailing_codeblock_newlines = args["keep_trailing_codeblock_newlines"] ; } } function outputhandler1_set_output(output) { } function outputhandler1_reset() { outputhandler1_html_parent = "" outputhandler1_sgml_parent = "" outputhandler1_html_last_event_was_cdata_section = 0 outputhandler1_xml_last_event_was_cdata_section = 0 outputhandler1_dtd_serialized = "" dataentitytracker1_reset() } function outputhandler1_html_anchor(attributes_array, title_attr) { if ("title" in attributes_array) title_attr = concat(" title=\"",attributes_array["title"],"\"") else if ("TITLE" in attributes_array) title_attr = concat(" title=\"",attributes_array["TITLE"],"\"") else title_attr = "" if ("id" in attributes_array) textstream1_write(concat("")) else if ("ID" in attributes_array) textstream1_write(concat("")) else if ("href" in attributes_array) textstream1_write(concat("")) else if ("HREF" in attributes_array) textstream1_write(concat("")) } function outputhandler1_html_other_tag(elmt, attrs, attrs_array, attrs_str) { attrs_str = "" attrs_str = sgmlutil_sgml_formatattrs(attrs_array, "true") textstream1_write("<") textstream1_write(elmt) if (attrs_str) { textstream1_write(" ") textstream1_write(attrs_str) } textstream1_write(">") } function outputhandler1_html_start_document() { } function outputhandler1_html_end_document() { ; textstream1_write("\n") } function outputhandler1_html_start_element(elmt, attrs_array, attrs, a) { a = "" if (outputhandler1_dtd_handling == "force" && !outputhandler1_dtd_serialized) { outputhandler1_dtd_serialized = "1" textstream1_write("\n") } for (a in attrs_array) { if (("HTML", elmt, a) in markupdefinitions1_attribute_declared_values) { if (substr(markupdefinitions1_attribute_declared_values["HTML", elmt, a], 1, 1) == "(") attrs_array[a] = tolower(attrs_array[a]) } else if (("HTML", "#ALL", a) in markupdefinitions1_attribute_declared_values) { if (substr(markupdefinitions1_attribute_declared_values["HTML", "#ALL", a], 1, 1) == "(") attrs_array[a] = tolower(attrs_array[a]) } } elmt = tolower(elmt) outputhandler1_html_other_tag(elmt, attrs, attrs_array) outputhandler1_html_parent = elmt } function outputhandler1_html_end_element(elmt) { if (outputhandler1_html_parent == "base" || outputhandler1_html_parent == "meta" || outputhandler1_html_parent == "link" || outputhandler1_html_parent == "img" || outputhandler1_html_parent == "hr" || outputhandler1_html_parent == "br" || outputhandler1_html_parent == "wbr" || outputhandler1_html_parent == "source" || outputhandler1_html_parent == "embed" || outputhandler1_html_parent == "param" || outputhandler1_html_parent == "track" || outputhandler1_html_parent == "area" || outputhandler1_html_parent == "col" || outputhandler1_html_parent == "input" || outputhandler1_html_parent == "keygen" || outputhandler1_html_parent == "menuitem") { outputhandler1_html_parent = "" return } elmt = tolower(elmt) textstream1_write(sprintf("", elmt)) } function outputhandler1_html_characters(text) { if (outputhandler1_html_last_event_was_cdata_section == 1) return if (outputhandler1_html_parent == "li") { textstream1_write(text) } else if (outputhandler1_html_parent == "code") { if (outputhandler1_strict_markdown_pl_compat) { gsub(/\n[ \t]*\n/, "\n\n\n", text) sub(/\n[ \t]*\n[ \t]*\n$/, "\n", text) } else if (!outputhandler1_keep_trailing_codeblock_newlines) { sub(/\n\n+$/, "\n", text) } textstream1_write(text) } else textstream1_write(text) } function outputhandler1_html_processing_instruction(name, text) { } function outputhandler1_html_comment(text) { textstream1_write(text) } function outputhandler1_html_start_dtd(name, publicid, systemid, xmltext) { ; if (outputhandler1_dtd_handling == "preserve") { if (xmltext) { textstream1_write((xmltext "\n")) ; } } } function outputhandler1_html_end_dtd() { } function outputhandler1_html_start_cdata(text) { textstream1_write(text) outputhandler1_html_last_event_was_cdata_section = 1 } function outputhandler1_html_end_cdata(text) { outputhandler1_html_last_event_was_cdata_section = 0 } function outputhandler1_html_start_entity(name, elmt, attrs_array,superdcn_value,superdcn_pubid) { split("", attrs_array) superdcn_value = "" superdcn_pubid = "" if (name in dataentitytracker1_data_entity_names_to_materialize) { textstream1_flush() if (name in dataentitytracker1_data_attributes) { ; sgmlutil_sgml_parseattrs(dataentitytracker1_data_attributes[name], attrs_array) if ("superdcn" in attrs_array) superdcn_value = attrs_array["superdcn"] else if ("SUPERDCN" in attrs_array) superdcn_value = attrs_array["SUPERDCN"] if ((dataentitytracker1_data_entity_declaration_set_names[name], superdcn_value) in dataentitytracker1_notation_public_identifiers) superdcn_pubid = dataentitytracker1_notation_public_identifiers[dataentitytracker1_data_entity_declaration_set_names[name], superdcn_value] ; } platformentitymanager1_write_data_entity(dataentitytracker1_data_entity_public_identifiers[name], dataentitytracker1_data_entity_system_identifiers[name], dataentitytracker1_data_entity_notation_public_identifiers[name], dataentitytracker1_data_entity_notation_system_identifiers[name], dataentitytracker1_data_attributes[name], elmt, dataentitytracker1_data_entity_declaration_set_names[name], superdcn_pubid) } else textstream1_write(concat("&", name, ";")) } function outputhandler1_html_end_entity(name) { } function outputhandler1_sgml_other_tag(elmt, attrs, attrs_array, attrs_str) { attrs_str = "" attrs_str = sgmlutil_sgml_formatattrs(attrs_array, "true") textstream1_write("<") textstream1_write(elmt) if (attrs_str) { textstream1_write(" ") textstream1_write(attrs_str) } textstream1_write(">") } function outputhandler1_sgml_start_document() { } function outputhandler1_sgml_end_document() { ; textstream1_write("\n") } function outputhandler1_sgml_start_element(elmt, attrs_array, attrs, attrs_str) { attrs_str = "" if (outputhandler1_dtd_handling == "force" && !outputhandler1_dtd_serialized) { outputhandler1_dtd_serialized = "1" textstream1_write("\n") } if ((dataentitytracker1_base_declaration_set_name, elmt) in markupdefinitions1_element_conref_attributes && markupdefinitions1_element_conref_attributes[dataentitytracker1_base_declaration_set_name, elmt] in attrs_array) outputhandler1_is_governed_by_content_reference = "1" else outputhandler1_is_governed_by_content_reference = "" attrs_str = sgmlutil_sgml_formatattrs(attrs_array, "true") textstream1_write("<") textstream1_write(elmt) if (attrs_str) { textstream1_write(" ") textstream1_write(attrs_str) } textstream1_write(">") outputhandler1_sgml_parent = elmt } function outputhandler1_sgml_end_element(elmt) { if ((dataentitytracker1_base_declaration_set_name, elmt) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[dataentitytracker1_base_declaration_set_name, elmt] == "EMPTY") return if (outputhandler1_is_governed_by_content_reference == "1") { outputhandler1_is_governed_by_content_reference = "" return } textstream1_write(sprintf("", elmt)) } function outputhandler1_sgml_characters(text) { if (outputhandler1_sgml_last_event_was_cdata_section == 1) return else if (outputhandler1_sgml_parent == "code") { sub(/\n[ \t]*\n[ \t]*\n$/, "\n", text) textstream1_write(text) } else textstream1_write(text) } function outputhandler1_sgml_processing_instruction(name, text) { } function outputhandler1_sgml_comment(text) { textstream1_write(text) } function outputhandler1_sgml_start_dtd(name, publicid, systemid, xmltext) { ; if (outputhandler1_dtd_handling == "preserve") { if (xmltext) { textstream1_write((xmltext "\n")) ; } } } function outputhandler1_sgml_end_dtd() { } function outputhandler1_sgml_start_cdata(text) { textstream1_write(text) outputhandler1_sgml_last_event_was_cdata_section = 1 } function outputhandler1_sgml_end_cdata(text) { outputhandler1_sgml_last_event_was_cdata_section = 0 } function outputhandler1_sgml_start_entity(name, elmt, attrs_array,superdcn_value,superdcn_pubid) { split("", attrs_array) superdcn_value = "" superdcn_pubid = "" if (name in dataentitytracker1_data_entity_names_to_materialize) { textstream1_flush() if (name in dataentitytracker1_data_attributes) { ; sgmlutil_sgml_parseattrs(dataentitytracker1_data_attributes[name], attrs_array) if ("superdcn" in attrs_array) superdcn_value = attrs_array["superdcn"] else if ("SUPERDCN" in attrs_array) superdcn_value = attrs_array["SUPERDCN"] if ((dataentitytracker1_data_entity_declaration_set_names[name], superdcn_value) in dataentitytracker1_notation_public_identifiers) superdcn_pubid = dataentitytracker1_notation_public_identifiers[dataentitytracker1_data_entity_declaration_set_names[name], superdcn_value] ; } platformentitymanager1_write_data_entity(dataentitytracker1_data_entity_public_identifiers[name], dataentitytracker1_data_entity_system_identifiers[name], dataentitytracker1_data_entity_notation_public_identifiers[name], dataentitytracker1_data_entity_notation_system_identifiers[name], dataentitytracker1_data_attributes[name], elmt, dataentitytracker1_data_entity_declaration_set_names[name], superdcn_pubid) } else textstream1_write(concat("&", name, ";")) } function outputhandler1_sgml_end_entity(name) { } function outputhandler1_xml_start_element(elmt, attrs_array, attrs, a) { textstream1_write(sprintf("<%s", elmt)) a = sgmlutil_sgml_formatattrs(attrs_array) if (a) textstream1_write((" " a)) textstream1_write(">") } function outputhandler1_xml_end_element(elmt) { textstream1_write(concat("")) } function outputhandler1_xml_characters(text) { if (outputhandler1_xml_last_event_was_cdata_section == 1) return if ((text ~ /\]\]/)) { gsub(/\]\]>/, "]]\\>", text) } if ((text ~ /") } else { textstream1_write(text) } } function outputhandler1_xml_processing_instruction(name, data) { textstream1_write(concat("\n")) } function outputhandler1_xml_start_document( xml_declaration_attrs,xmldecl) { } function outputhandler1_xml_end_document() { ; textstream1_write("\n") } function outputhandler1_xml_comment(text) { textstream1_write(text) } function outputhandler1_xml_start_dtd(name, publicid, systemid, xmltext) { if (outputhandler1_dtd_handling == "omit") return textstream1_write((xmltext "\n")) } function outputhandler1_xml_end_dtd() { } function outputhandler1_xml_start_cdata(text) { textstream1_write(text) outputhandler1_xml_last_event_was_cdata_section = 1 } function outputhandler1_xml_end_cdata(text) { outputhandler1_xml_last_event_was_cdata_section = 0 } function outputhandler1_xml_start_entity(name, elmt, attrs_array,superdcn_value,superdcn_pubid) { split("", attrs_array) superdcn_value = "" superdcn_pubid = "" if (name in dataentitytracker1_data_entity_names_to_materialize) { textstream1_flush() if (name in dataentitytracker1_data_attributes) { ; sgmlutil_sgml_parseattrs(dataentitytracker1_data_attributes[name], attrs_array) if ("superdcn" in attrs_array) superdcn_value = attrs_array["superdcn"] else if ("SUPERDCN" in attrs_array) superdcn_value = attrs_array["SUPERDCN"] if ((dataentitytracker1_data_entity_declaration_set_names[name], superdcn_value) in dataentitytracker1_notation_public_identifiers) superdcn_pubid = dataentitytracker1_notation_public_identifiers[dataentitytracker1_data_entity_declaration_set_names[name], superdcn_value] ; } platformentitymanager1_write_data_entity(dataentitytracker1_data_entity_public_identifiers[name], dataentitytracker1_data_entity_system_identifiers[name], dataentitytracker1_data_entity_notation_public_identifiers[name], dataentitytracker1_data_entity_notation_system_identifiers[name], dataentitytracker1_data_attributes[name], elmt, dataentitytracker1_data_entity_declaration_set_names[name], superdcn_pubid) } else textstream1_write(concat("&", name, ";")) } function outputhandler1_xml_end_entity(name) { } function outputhandler1_startElement(elmt, attrs_array, attrs) { if (outputhandler1_output_format == "html") outputhandler1_html_start_element(elmt, attrs_array, attrs) else if (outputhandler1_output_format == "xml") outputhandler1_xml_start_element(elmt, attrs_array, attrs) else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_start_element(elmt, attrs_array, attrs) } function outputhandler1_endElement(elmt) { if (outputhandler1_output_format == "html") outputhandler1_html_end_element(elmt) else if (outputhandler1_output_format == "xml") outputhandler1_xml_end_element(elmt) else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_end_element(elmt) } function outputhandler1_characters(text) { ; if (outputhandler1_in_rcdata_content) { outputhandler1_rcdata_content = (outputhandler1_rcdata_content text) return } if (outputhandler1_output_format == "html") outputhandler1_html_characters(text) else if (outputhandler1_output_format == "xml") outputhandler1_xml_characters(text) else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_characters(text) } function outputhandler1_startDocument() { if (outputhandler1_output_format == "html") outputhandler1_html_start_document() else if (outputhandler1_output_format == "xml") outputhandler1_xml_start_document() else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_start_document() } function outputhandler1_endDocument() { if (outputhandler1_output_format == "html") outputhandler1_html_end_document() else if (outputhandler1_output_format == "xml") outputhandler1_xml_end_document() else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_end_document() } function outputhandler1_processingInstruction(name, data) { ; if (outputhandler1_output_format == "html") outputhandler1_html_processing_instruction(name, data) else if (outputhandler1_output_format == "xml") outputhandler1_xml_processing_instruction(name, data) else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_processing_instruction(name, data) } function outputhandler1_comment(text) { ; if (outputhandler1_output_format == "html") outputhandler1_html_comment(text) else if (outputhandler1_output_format == "xml") outputhandler1_xml_comment(text) else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_comment(text) } function outputhandler1_startDTD(name, publicid, systemid, xmltext) { ; if (dataentitytracker1_base_declaration_set_name == "") { platformentitymanager1_set_external_subset_identifier(systemid) } dataentitytracker1_startDTD(name, publicid, systemid, xmltext) if (outputhandler1_output_format == "html") outputhandler1_html_start_dtd(name, publicid, systemid, xmltext) else if (outputhandler1_output_format == "xml") outputhandler1_xml_start_dtd(name, publicid, systemid, xmltext) else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_start_dtd(name, publicid, systemid, xmltext) } function outputhandler1_endDTD() { dataentitytracker1_endDTD() if (outputhandler1_output_format == "html") outputhandler1_html_end_dtd() else if (outputhandler1_output_format == "xml") outputhandler1_xml_end_dtd() else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_end_dtd() } function outputhandler1_startCDATA(text) { ; if (outputhandler1_output_format == "html") outputhandler1_html_start_cdata(text) else if (outputhandler1_output_format == "xml") outputhandler1_xml_start_cdata(text) else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_start_cdata(text) } function outputhandler1_endCDATA() { if (outputhandler1_output_format == "html") outputhandler1_html_end_cdata() else if (outputhandler1_output_format == "xml") outputhandler1_xml_end_cdata() else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_end_cdata() } function outputhandler1_startRCDATA(text) { ; outputhandler1_in_rcdata_content = 1 outputhandler1_rcdata_content = "" } function outputhandler1_endRCDATA() { outputhandler1_in_rcdata_content = 0 if (outputhandler1_output_format == "html") { outputhandler1_html_start_cdata(outputhandler1_rcdata_content) outputhandler1_characters(outputhandler1_rcdata_content) } else if (outputhandler1_output_format == "xml") { outputhandler1_xml_start_cdata(concat("")) outputhandler1_characters(outputhandler1_rcdata_content) } else if (outputhandler1_output_format == "sgml") { outputhandler1_sgml_start_cdata(concat("")) outputhandler1_characters(outputhandler1_rcdata_content) } outputhandler1_rcdata_content = "" if (outputhandler1_output_format == "html") outputhandler1_html_end_cdata() else if (outputhandler1_output_format == "xml") outputhandler1_xml_end_cdata() else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_end_cdata() } function outputhandler1_startINCLUDE(text) { ; } function outputhandler1_endINCLUDE() { ; } function outputhandler1_startIGNORE(text) { ; } function outputhandler1_endIGNORE() { ; } function outputhandler1_start_temp(text) { ; } function outputhandler1_end_temp() { ; } function outputhandler1_startEntity(name, elmt) { if (outputhandler1_output_format == "html") outputhandler1_html_start_entity(name, elmt) else if (outputhandler1_output_format == "xml") outputhandler1_xml_start_entity(name, elmt) else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_start_entity(name, elmt) } function outputhandler1_endEntity(name) { if (outputhandler1_output_format == "html") outputhandler1_html_end_entity(name) else if (outputhandler1_output_format == "xml") outputhandler1_xml_end_entity(name) else if (outputhandler1_output_format == "sgml") outputhandler1_sgml_end_entity(name) } function outputhandler1_notationDecl(name, pubid, sysid) { dataentitytracker1_notationDecl(name, pubid, sysid) } function outputhandler1_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) { ; dataentitytracker1_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) } BEGIN { chain1_pausing_events = "" chain1_disable_referential_attributes = "" } function chain1_reset() { linkhandler2_reset() stack5_clear() locator1_clear_open_entities() validator1_reset() tokenizer1_reset() diverter1_reset() markdownoutputfilter1_reset() htmlserversidesgmlfilter1_reset() suppressdocumentelementfilter1_reset() } function chain1_set_debug_emit_ctx_token(s) { tokenizer1_set_debug_emit_ctx_token(s) validator1_set_debug_emit_ctx_token(s) linkhandler2_set_debug_emit_ctx_token(s) linkhandler1_set_debug_emit_ctx_token(s) } function chain1_configure_for_simple_template(expected_document_element_name, doctype_for_markupdefinitions_lookup) { diverter1_markdown_disabled = "1" tokenizer1_running_as_template_subprocessing_context = 1 tokenizer1_expected_external_dtd_subset_identifier = "#IMPLIED" validator1_set_document_type_name(doctype_for_markupdefinitions_lookup) validator1_set_document_element_name(expected_document_element_name) attributechecker1_set_declaration_set_name(doctype_for_markupdefinitions_lookup) if (chain1_disable_referential_attributes) attributechecker1_disable_referential_attributes = chain1_disable_referential_attributes else attributechecker1_disable_referential_attributes = "1" } function chain1_configure_for_general_template(enable_lax_templates, external_subset_sysid, target_document_type_name) { diverter1_markdown_disabled = "1" tokenizer1_running_as_template_subprocessing_context = 1 tokenizer1_path_relativization_disabled = "1" ; if (!enable_lax_templates) { tokenizer1_expected_external_dtd_subset_identifier = "#IMPLIED" if (chain1_disable_referential_attributes) attributechecker1_disable_referential_attributes = chain1_disable_referential_attributes else attributechecker1_disable_referential_attributes = "YES" tokenizer1_disable_data_entity_references = "YES" } else { if (!external_subset_sysid) { platformerrorhandler1_fatalError("instance requires external DTD subset system identifier for lax templating", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tokenizer1_expected_external_dtd_subset_identifier = external_subset_sysid } if (target_document_type_name) { tokenizer1_target_document_type_name = target_document_type_name } } function chain1_configure_for_web() { tokenizer1_force_prolog_recording = "1" tokenizer1_restrict_parameter_entity_expansion = "1" htmlserversidesgmlfilter1_add_server_side_sgml_support_link_element = "1" tokenizer1_path_relativization_disabled = "1" } function chain1_record(line) { chainmanager1_record(line) } function chain1_end_records() { chainmanager1_end_records() } function chain1_start_records() {} function chain1_pause_records() { platformrecordmanager1_pause_records() } function chain1_resume_records() { platformrecordmanager1_resume_records() } function chain1_is_pausing_records() { return platformrecordmanager1_is_pausing_records() } function chain1_push_text(text) { platformrecordmanager1_push_text(text) } function chain1_pause_events() { ; chain1_pausing_events = "1" platformrecordmanager1_pause_events() } function chain1_resume_events() { ; chain1_pausing_events = "" platformrecordmanager1_resume_events() } function chain1_is_pausing_events() { return platformrecordmanager1_is_pausing_events() } function chain1_parse_content() { return } function chain1_configure(args, i,n,s,active_lpd_names) { s = "" split("", active_lpd_names) markdown1_configure(args) tokenizer1_configure(args) attributechecker1_configure(args) markdownoutputfilter1_configure(args) if ("disable_referential_attributes" in args) { chain1_disable_referential_attributes = args["disable_referential_attributes"] } if ("sax_error_context_info_collection" in args) validator1_enable_error_context_info("YES") if (args["active_lpd_names"]) { s = args["active_lpd_names"] gsub(",", " ", s) gsub(/[[:space:]][[:space:]]+/, " ", s) if (!(s ~ /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*( ([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*)*$/)) { platformerrorhandler1_fatalError(concat("'", args["active_lpd_names"], "'; invalid active_lpd_names parameter value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } delete args["active_lpd_names"] n = split(s, active_lpd_names, " ") for (i = 0; i < n; i++) { active_lpd_names[i] = active_lpd_names[i + 1] } if (i > 0) delete active_lpd_names[i] chain1_configure_link_pipeline(active_lpd_names) } linkhandler2_configure(args) linkhandler1_configure(args) } function chain1_configure_link_pipeline(active_lpd_names, n,s) { s = "" for (s in active_lpd_names) n++ ; if (n == 2) { linkhandler2_set_link_process_name(active_lpd_names[0]) linkhandler1_set_link_process_name(active_lpd_names[1]) } else if (n == 1) { linkhandler2_set_link_process_name(active_lpd_names[0]) } else if (n != 0) { { platformerrorhandler1_fatalError("attempting to activate more link processes than supported", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } function chain1_end_prolog() { chain1_configure_link_pipeline(docinfo1_active_link_processes) } function path_resolve(source, target) { if (substr(target, 1, 1) == "/") return path_internal_normalize(target) if (substr(source, 1, 1) != "/") { if (!process_cwd()) { print "fatal: can't determine current working directory" >> "/dev/fd/2" exit(1) } if (source == "") source = process_cwd() else source = process_cwd() "/" source } return path_internal_normalize(source "/" target) } function path_relative(source, target, source_path_components,target_path_components,appendix,i,j,n,m) { if (!source) return path_internal_normalize(target) if (!target) return source if (substr(source, 1, 1) != "/") { if (!process_cwd()) { print "fatal: can't determine current working directory" >> "/dev/fd/2" exit(1) } source = process_cwd() "/" source } if (substr(target, 1, 1) != "/") { if (!process_cwd()) { print "fatal: can't determine current working directory" >> "/dev/fd/2" exit(1) } target = process_cwd() "/" target } source = path_internal_normalize(source) target = path_internal_normalize(target) n = split(source, source_path_components, "/") m = split(target, target_path_components, "/") i = 1 for (;;) { if (i > n && i > m) return "." if (i > n) { for (j = i; j <= m; j++) { if (appendix) appendix = appendix "/" appendix = appendix target_path_components[j] } return appendix } else if (i > m) { for (j = i; j <= n; j++) { if (appendix) appendix = appendix "/" appendix = appendix ".." } return appendix } if (source_path_components[i] != target_path_components[i]) { for (j = i; j <= n; j++) { if (appendix) appendix = appendix "/" appendix = appendix ".." } for (j = i; j <= m; j++) { if (appendix) appendix = appendix "/" appendix = appendix target_path_components[j] } return appendix } i++ } } function path_normalize(path) { return path_internal_normalize(path) } function path_internal_normalize(path, path_components,i,n,r,result_path,result_path_length,beyond_root) { n = split(path, path_components, "/") if (n == 0) return "." if (n == 1) return path split("", result_path_components, "/") result_path = "" result_path_length = 0 for (i = 1; i <= n; i++) { if (path_components[i] == "") if (i == 1 || i != n) continue if (path_components[i] == ".") continue if (path_components[i] == "..") { if (result_path_length > 0 && result_path_components[result_path_length] != "..") result_path_length-- else if (result_path_length == 0 && path_components[1] == "") continue else result_path_components[++result_path_length] = ".." continue } result_path_components[++result_path_length] = path_components[i] } if (result_path_length == 0) if (path_components[1] == "") return "/" else return "." if (path_components[1] == "") result_path = "/" for (i = 1; i <= result_path_length; i++) { if (i > 1) result_path = result_path "/" result_path = result_path result_path_components[i] } return result_path } function path_basename(p, ext, n,path_components) { split("", path_components) n = split(p, path_components, "/") if (!n) return "" if (ext && substr(path_components[n], length(path_components[n]) - length(ext) + 1) == ext) return substr(path_components[n], 1, length(path_components[n]) - length(ext)) return path_components[n] } function path_extname(p, b) { b = path_basename(p) if (!b) return "" for (i = length(b); i > 1; i--) if (substr(b, i, 1) == ".") return substr(b, i) return "" } function path_dirname(p) { return path_internal_dirname(p) } function path_internal_dirname(p) { if (substr(p, length(p), 1) == "/") p = substr(p, 1, length(p) - 1) if (match(p, /\/[^\/]*$/)) if (RSTART == 1) return "/" else return substr(p, 1, RSTART - 1) else return "." } BEGIN { } BEGIN { rawstream2_filename = "-" } function rawstream2_close() { } function rawstream2_set_filename(filename) { rawstream2_filename = filename } function textstream2_readLine( line,iostatus) { if (rawstream2_filename == "-") { if ((getline line) > 0) return line "\n" return "" } iostatus = (getline line < rawstream2_filename) if (iostatus > 0) return line "\n" else if (iostatus < 0) { ERRNO = "'" rawstream2_filename "': error reading file" } return "" } function textstream2_write(str) { if (rawstream2_filename == "-") printf("%s", str) else printf("%s", str) > rawstream2_filename } function textstream2_writeLine(line) { if (rawstream2_filename == "-") print(line) else print(line) > rawstream2_filename return } function textstream2_flush() { if (rawstream2_filename == "-") fflush() else fflush(rawstream2_filename) } function textstream2_get_filename() { return rawstream2_filename } BEGIN { platformrecordmanager1_pushed_lines_buffer = "" } function platformrecordmanager1_start_records( line,getline_result,pos) { line = "" for (;;) { if (platformrecordmanager1_pushed_lines_buffer != "") { pos = index(platformrecordmanager1_pushed_lines_buffer, "\n") if (pos != 0) { line = substr(platformrecordmanager1_pushed_lines_buffer, 1, pos) platformrecordmanager1_pushed_lines_buffer = substr(platformrecordmanager1_pushed_lines_buffer, pos + 1) } else { line = platformrecordmanager1_pushed_lines_buffer platformrecordmanager1_pushed_lines_buffer = "" } } else line = textstream2_readLine() if (ERRNO) { platformerrorhandler1_fatalError(ERRNO, "", "", 0, 0); exit(1); } ; if (line == "") { break } else { chain1_record(substr(line, 1, length(line) - 1)) } } ; chain1_end_records() } function platformrecordmanager1_push_text(text) { platformrecordmanager1_pushed_lines_buffer = (platformrecordmanager1_pushed_lines_buffer text) } function platformrecordmanager1_pause_records() { } function platformrecordmanager1_is_pausing_records() { return "" } function platformrecordmanager1_resume_records() { } function platformrecordmanager1_pause_events() { } function platformrecordmanager1_resume_events() { } function platformrecordmanager1_is_pausing_events() { return "" } function logger_debug(msg) { if (log_level == "DEBUG" ||log_level == "TRACE") console_debug(msg) } function logger_info(msg) { if (log_level == "INFO" ||log_level == "DEBUG" ||log_level == "TRACE") console_warn(msg) } function logger_error(msg) { if (log_level != "") console_error(msg) } function logger_warn(msg) { if (log_level == "WARN" ||log_level == "NOTICE" ||log_level == "INFO" ||log_level == "DEBUG" ||log_level == "TRACE") console_warn(msg) } function logger_log(msg) { if (log_level == "NOTICE" ||log_level == "INFO" ||log_level == "DEBUG" ||log_level == "TRACE") console_warn(msg) } function logger_trace(msg) { if (log_level == "TRACE") console_warn(msg) } BEGIN { log_level = "NOTICE" } function rimraf_rimraf(path) { if (path == "/") return cp_exec("rm -rf " path) } BEGIN { split("", stack1_stack) stack1_len = 0 } function stack1_stacklength() { return stack1_len } function stack1_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack1_stacklength() for (i = 1; i <= n; i++) if (stack1_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack1_push(elmt) { ; stack1_stack[++stack1_len] = elmt } function stack1_top( l,r) { r = "" l = stack1_stacklength() if (l == 0) r = "" else r = stack1_stack[l] ; return r } function stack1_pop(n, l) { if (n == "") n = 1 l = stack1_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack1_len == 0) break delete stack1_stack[l] --stack1_len } ; } function stack1_popto(targetelmt, n) { for (n = stack1_stacklength(); n > 0 && stack1_stack[n] != targetelmt; n--) { delete stack1_stack[n] stack1_len-- } } function stack1_popall( n) { for (n = stack1_stacklength(); n > 0; n--) { delete stack1_stack[n] stack1_len-- } } function stack1_poptolevel(targetelmt, level, l,n) { n = stack1_stackindex(targetelmt, level) for (l = stack1_stacklength(); l > n; l--) { delete stack1_stack[l] stack1_len-- } } function stack1_peek(i) { return stack1_stack[i] } function stack1_clear() { split("", stack1_stack) stack1_len = 0 } BEGIN { split("", stack2_stack) stack2_len = 0 } function stack2_stacklength() { return stack2_len } function stack2_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack2_stacklength() for (i = 1; i <= n; i++) if (stack2_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack2_push(elmt) { ; stack2_stack[++stack2_len] = elmt } function stack2_top( l,r) { r = "" l = stack2_stacklength() if (l == 0) r = "" else r = stack2_stack[l] ; return r } function stack2_pop(n, l) { if (n == "") n = 1 l = stack2_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack2_len == 0) break delete stack2_stack[l] --stack2_len } ; } function stack2_popto(targetelmt, n) { for (n = stack2_stacklength(); n > 0 && stack2_stack[n] != targetelmt; n--) { delete stack2_stack[n] stack2_len-- } } function stack2_popall( n) { for (n = stack2_stacklength(); n > 0; n--) { delete stack2_stack[n] stack2_len-- } } function stack2_poptolevel(targetelmt, level, l,n) { n = stack2_stackindex(targetelmt, level) for (l = stack2_stacklength(); l > n; l--) { delete stack2_stack[l] stack2_len-- } } function stack2_peek(i) { return stack2_stack[i] } function stack2_clear() { split("", stack2_stack) stack2_len = 0 } BEGIN { split("", stack3_stack) stack3_len = 0 } function stack3_stacklength() { return stack3_len } function stack3_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack3_stacklength() for (i = 1; i <= n; i++) if (stack3_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack3_push(elmt) { ; stack3_stack[++stack3_len] = elmt } function stack3_top( l,r) { r = "" l = stack3_stacklength() if (l == 0) r = "" else r = stack3_stack[l] ; return r } function stack3_pop(n, l) { if (n == "") n = 1 l = stack3_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack3_len == 0) break delete stack3_stack[l] --stack3_len } ; } function stack3_popto(targetelmt, n) { for (n = stack3_stacklength(); n > 0 && stack3_stack[n] != targetelmt; n--) { delete stack3_stack[n] stack3_len-- } } function stack3_popall( n) { for (n = stack3_stacklength(); n > 0; n--) { delete stack3_stack[n] stack3_len-- } } function stack3_poptolevel(targetelmt, level, l,n) { n = stack3_stackindex(targetelmt, level) for (l = stack3_stacklength(); l > n; l--) { delete stack3_stack[l] stack3_len-- } } function stack3_peek(i) { return stack3_stack[i] } function stack3_clear() { split("", stack3_stack) stack3_len = 0 } function sgmlutil_sgml_index3(str, portion, offset, str2,i) { str2 = substr(str, offset) i = index(str2, portion) if (i) return offset + i - 1 return 0 } function sgmlutil_sgml_rindex(str, portion, i) { for (i = length(str) - length(portion) + 1; i > 0; i--) if (substr(str, i, length(portion)) == portion) return i return 0 } function sgmlutil_sgml_trim(s, t) { t = s if (!t) return ""; sub(/^[[:space:]]+/, "", t); sub(/[[:space:]]+$/, "", t); return t } function sgmlutil_sgml_parseattrs(attrstr, attrarray, name,value,in_name,in_value,unquoted,i,quotechar) { name = "" value = "" in_name = 0 in_value = 0 unquoted = 0 quotechar = "" for (i = 1; i <= length(attrstr); i++) { if (substr(attrstr, i, 1) == "=") { if (in_value) value = (value substr(attrstr, i, 1)) else if (in_name) in_name = 0 } else if (substr(attrstr, i, 1) == " ") { if (in_value) if (unquoted) { if (name == "") return 0 attrarray[name] = value name = "" value = "" in_name = 0 in_value = 0 unquoted = 0 } else value = (value substr(attrstr, i, 1)) else if (in_name) in_name = 0 } else if (substr(attrstr, i, 1) == "\"") if (in_name) return 0 else if (in_value && quotechar == "\"") { if (name == "") return 0 attrarray[name] = value name = "" value = "" in_name = 0 in_value = 0 unquoted = 0 quotechar = "" } else if (in_value && quotechar == "'") { value = (value substr(attrstr, i, 1)) } else { in_value = 1 quotechar = "\"" } else if (substr(attrstr, i, 1) == "'") if (in_name) return 0 else if (in_value && quotechar == "'") { if (name == "") return 0 attrarray[name] = value name = "" value = "" in_name = 0 in_value = 0 unquoted = 0 quotechar = "" } else if (in_value && quotechar == "\"") { value = (value substr(attrstr, i, 1)) } else { in_value = 1 quotechar = "'" } else { if (in_value) { value = (value substr(attrstr, i, 1)) } else if (in_name) name = (name substr(attrstr, i, 1)) else if (name != "") { value = substr(attrstr, i, 1) in_value = 1 unquoted = 1 } else { name = (name substr(attrstr, i, 1)) in_name = 1 } } } if (name != "") { if (value != "") { attrarray[name] = value } else attrarray[name] = value } return 1 } function sgmlutil_sgml_formatattrs(attrarray, force_lowercase, a,r,tmp,i,s) { split("", tmp) s = "" for (a in attrarray) tmp[1+ i++] = a asort0_n = 0; for (asort0_i in tmp) asort0_n++; for (asort0_i = 1; asort0_i < asort0_n; asort0_i++) for (asort0_j = asort0_i; asort0_j > 0 && tmp[1+ asort0_j-1] > tmp[1+ asort0_j]; asort0_j--) { asort0_t = tmp[1+ asort0_j-1]; tmp[1+ asort0_j-1] = tmp[1+ asort0_j]; tmp[1+ asort0_j] = asort0_t; } r = "" for (a = 0; a < i; a++) { if (r) r = (r " ") if (force_lowercase) if (index(attrarray[tmp[1+ a]], "\"")) if (index(attrarray[tmp[1+ a]], "'")) { s = attrarray[tmp[1+ a]] gsub("\"", "\\"", s) r = concat(r, tolower(tmp[1+ a]), "=\"", s, "\"") } else r = concat(r, tolower(tmp[1+ a]), "='", attrarray[tmp[1+ a]], "'") else r = concat(r, tolower(tmp[1+ a]), "=\"", attrarray[tmp[1+ a]], "\"") else if (index(attrarray[tmp[1+ a]], "\"")) if (index(attrarray[tmp[1+ a]], "'")) { s = attrarray[tmp[1+ a]] gsub("\"", "\\"", s) r = concat(r, tolower(tmp[1+ a]), "=\"", s, "\"") } else r = concat(r, tmp[1+ a], "='", attrarray[tmp[1+ a]], "'") else r = concat(r, tmp[1+ a], "=\"", attrarray[tmp[1+ a]], "\"") } return r } function sgmlutil_is_not_valid_xml_name_token(token, role, tmparray) { split("", tmparray) if (!match(token, /^[[:graph:]]+$/)) { return concat("'", token, "': invalid ", role, ", has non-graph characters") } if (index(token, "&") != 0) return concat("'", token, "': invalid ", role, ", contains '&' character") if (index(token, ";") != 0) return concat("'", token, "': invalid ", role, ", contains ';' character") if (match(substr(token, 1, 1), /^[0-9]/) || substr(token, 1, 1) == "-" || substr(token, 1, 1) == ".") return concat("'", token, "': invalid ", role, ", begins with a number or '.' or '-'") if (split(token, tmparray, ":") > 2) return concat("'", token, "': invalid ", role, ", has more than one ':' character") if (index(token, "/") != 0) return concat("'", token, "': invalid ", role, ", contains '/' character") return "" } function sgmlutil_is_not_valid_name_token(token, role) { if (!(token ~ /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*$/)) return concat("'", token, "': invalid ", role) return "" } function sgmlutil_is_not_valid_literal_token(token, role) { if (!(token ~ /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*$/)) return concat("'", token, "': invalid ", role) return "" } function sgmlutil_is_not_valid_xml_literal_token(token) { return sgmlutil_is_not_valid_xml_name_token(token, "XML literal") } function sgmlutil_format_for_errormsg(s) { return concat("'",substr(s,1,8),"...'") } function sgmlutil_convert_attribute_names_to_uppercase(attribute_array, attr) { attr = "" for (attr in attribute_array) { if (attr == toupper(attr)) continue attribute_array[toupper(attr)] = attribute_array[attr] delete attribute_array[attr] } } function sgmlutil_convert_attribute_names_to_lowercase(attribute_array, attr) { attr = "" for (attr in attribute_array) { if (attr == tolower(attr)) continue attribute_array[tolower(attr)] = attribute_array[attr] delete attribute_array[attr] } } function bundledresolver_resolve_entity(public_id, system_id, v) { v = "" if (system_id == "about:legacy-compat") { v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v " ") v = (v " ") v = (v " ") v = (v "]]>") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v " ") v = (v " ") v = (v " ") v = (v "]]>") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "]]>") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") return v } if (public_id == "+//IDN sgmljs.net//DTD FSISM Query parameter declaration utilities//EN") { v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") return v } if (public_id == "+//IDN sgmljs.net//DTD FSISM TSV parsing declaration utilities//EN") { v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") return v } if (public_id == "+//IDN sgmljs.net//DTD FSISM POSIX Date formatting and parsing templates//EN") { v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") return v } if (public_id == "+//IDN sgmljs.net//NOTATION SQL query formatting template for HTML table element//EN") { v = (v "\n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \">\n") v = (v " %queryparam-entity-decls\n") v = (v " \">\n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \">\n") v = (v " \">\n") v = (v " \">\n") v = (v " \">\n") v = (v " %element-decls\n") v = (v " %entity-decls\n") v = (v " %shortref-decls\n") v = (v " %usemap-decls\n") v = (v " 0\">\n") v = (v " %query\"'>\n") v = (v " \n") v = (v " \n") v = (v "]>\n") v = (v "\n") v = (v "\n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \">\n") v = (v " %notation-decls\n") v = (v " \">\n") v = (v " %linkattr-decls\n") v = (v " \">\n") v = (v " \n") v = (v "]>\n") v = (v "\n") v = (v "&query-results\n") v = (v "\n") return v } if (public_id == "+//IDN sgmljs.net//DTD FSISM System-specific FSI definition document//EN") { v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") v = (v "") return v } if (public_id == "+//IDN sgmljs.net//NOTATION SQL query formatting template for HTML tbody element//EN") { v = (v "\n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \">\n") v = (v " %queryparam-entity-decls\n") v = (v " \">\n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \">\n") v = (v " \">\n") v = (v " \">\n") v = (v " \">\n") v = (v " %element-decls\n") v = (v " %entity-decls\n") v = (v " %shortref-decls\n") v = (v " %usemap-decls\n") v = (v " 0\">\n") v = (v " %query\"'>\n") v = (v " \n") v = (v " \n") v = (v "]>\n") v = (v "\n") v = (v "\n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \n") v = (v " \">\n") v = (v " %notation-decls\n") v = (v " \">\n") v = (v " %linkattr-decls\n") v = (v " \">\n") v = (v " \n") v = (v "]>\n") v = (v "\n") v = (v "&query-results\n") v = (v "\n") return v } return "" } BEGIN { split("", stack4_stack) stack4_len = 0 } function stack4_stacklength() { return stack4_len } function stack4_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack4_stacklength() for (i = 1; i <= n; i++) if (stack4_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack4_push(elmt) { ; stack4_stack[++stack4_len] = elmt } function stack4_top( l,r) { r = "" l = stack4_stacklength() if (l == 0) r = "" else r = stack4_stack[l] ; return r } function stack4_pop(n, l) { if (n == "") n = 1 l = stack4_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack4_len == 0) break delete stack4_stack[l] --stack4_len } ; } function stack4_popto(targetelmt, n) { for (n = stack4_stacklength(); n > 0 && stack4_stack[n] != targetelmt; n--) { delete stack4_stack[n] stack4_len-- } } function stack4_popall( n) { for (n = stack4_stacklength(); n > 0; n--) { delete stack4_stack[n] stack4_len-- } } function stack4_poptolevel(targetelmt, level, l,n) { n = stack4_stackindex(targetelmt, level) for (l = stack4_stacklength(); l > n; l--) { delete stack4_stack[l] stack4_len-- } } function stack4_peek(i) { return stack4_stack[i] } function stack4_clear() { split("", stack4_stack) stack4_len = 0 } BEGIN { platformbaseentitymanager1_output_format = "" platformbaseentitymanager1_keep_trailing_codeblock_newlines = "" platformbaseentitymanager1_enable_lax_templates = "" platformbaseentitymanager1_disable_referential_attributes = "" platformbaseentitymanager1_required_external_subset_identifier_for_lax_template = "" platformbaseentitymanager1_system_specific_entity_path = "" platformbaseentitymanager1_system_specific_implied_link_process_names = "" platformbaseentitymanager1_tracing_events = "" platformbaseentitymanager1_debug_emit_ctx_token = "" platformbaseentitymanager1_sgmlproc_cmd = "" } function platformbaseentitymanager1_set_external_subset_identifier(identifier) { identifier = path_resolve(path_dirname(locator1_get_system_id()), identifier) platformbaseentitymanager1_required_external_subset_identifier_for_lax_template = identifier } function platformbaseentitymanager1_write_data_entity(entity_pubid, entity_sysid, notation_pubid, notation_sysid, data_attributes, element, link_process_name, superdcn_pubid, notation_content) { notation_content = "" ; ; if ((notation_sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]/)) { if (!platformbaseentitymanager1_system_specific_entity_path) { platformbaseentitymanager1_system_specific_entity_path = fs_mkdtempSync("/tmp/markdown-XXXXXXXXX") if (!platformbaseentitymanager1_system_specific_entity_path) { platformerrorhandler1_fatalError("error creating temporary directory", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } platformerrorhandler1_system_specific_entity_path = platformbaseentitymanager1_system_specific_entity_path } notation_content = substr(notation_sysid, length("") + 1) notation_sysid = concat(platformbaseentitymanager1_system_specific_entity_path, "/", "sgmlfile.sgm") sub(/\n$/, "", notation_content) ; fs_writeFileSync(notation_sysid, notation_content) } if ((entity_sysid ~ /^<[Oo][Ss][Ff][Ii][Ll][Ee]>/)) entity_sysid = substr(entity_sysid, 9) if (notation_pubid == "ISO 8879:1986//NOTATION Standard Generalized Markup Language (SGML)//EN" || superdcn_pubid == "ISO 8879:1986//NOTATION Standard Generalized Markup Language (SGML)//EN") { if (!notation_sysid && (entity_sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]><[^!?]/)) { if (!platformbaseentitymanager1_system_specific_entity_path) platformbaseentitymanager1_system_specific_entity_path = fs_mkdtempSync("/tmp/markdown-XXXXXXXXX") if (!platformbaseentitymanager1_system_specific_entity_path) { platformerrorhandler1_fatalError("error creating temporary directory", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } platformerrorhandler1_system_specific_entity_path = platformbaseentitymanager1_system_specific_entity_path notation_sysid = concat(platformbaseentitymanager1_system_specific_entity_path, "/", "sgmlfile.sgm") fs_writeFileSync(notation_sysid, substr(entity_sysid, length("") + 1)) entity_sysid = "/dev/null" } ; if ((entity_sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/) && !notation_sysid) { { platformerrorhandler1_fatalError("unsupported content using literal storage manager - use non-literal external system identifier instead", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (notation_sysid) { if (!entity_sysid) { platformerrorhandler1_fatalError("internal error: entity system identifier not supplied", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (notation_sysid != "-") if (!(notation_sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) notation_sysid = path_resolve(path_dirname(locator1_get_system_id()), notation_sysid) if (entiy_sysid) entity_sysid = path_resolve(path_dirname(locator1_get_system_id()), entity_sysid) platformbaseentitymanager1_write_effective_markup_declarations(element) platformbaseentitymanager1_invoke_sgmlproc(notation_sysid, data_attributes, entity_sysid, element) platformbaseentitymanager1_remove_written_effective_markup_declarations() } else if (entity_sysid) { platformbaseentitymanager1_write_effective_markup_declarations(element) platformbaseentitymanager1_invoke_sgmlproc(entity_sysid, data_attributes, "", element) platformbaseentitymanager1_remove_written_effective_markup_declarations() } } else { platformerrorhandler1_fatalError(concat("notation with public identifier '", notation_pubid, "' cannot be serialized to output"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } function platformbaseentitymanager1_invoke_sgmlproc(filename, entity_values_str, filename_for_stdin_redirection, expected_element, cmd,errno,line,e,v,entity_values_map,tmpfilename) { cmd = "" line = "" e = "" v = "" split("", entity_values_map) tmpfilename = "" cmd = "sgmlproc" if (platformbaseentitymanager1_sgmlproc_cmd) cmd = platformbaseentitymanager1_sgmlproc_cmd cmd = concat(cmd, " -v running_as_template_subprocessing_context=1") if (!platformbaseentitymanager1_output_format) { platformerrorhandler1_fatalError("internal error: output format not set on invocation of recursive processing", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } cmd = concat(cmd," -v output_format=",platformbaseentitymanager1_output_format," -v dtd_handling=omit ") if (platformbaseentitymanager1_keep_trailing_codeblock_newlines) cmd = concat(cmd," -v keep_trailing_codeblock_newlines=",platformbaseentitymanager1_keep_trailing_codeblock_newlines, " ") if (platformbaseentitymanager1_system_specific_entity_path) cmd = concat(cmd, "-v system_specific_entity_path=", platformbaseentitymanager1_system_specific_entity_path, " ") if (!platformbaseentitymanager1_enable_lax_templates) { cmd = (cmd "-v expected_external_dtd_subset_identifier=#IMPLIED ") if (platformbaseentitymanager1_disable_referential_attributes) cmd = concat(cmd, "-v disable_referential_attributes=", platformbaseentitymanager1_disable_referential_attributes, " ") else cmd = (cmd "-v disable_referential_attributes=YES ") cmd = (cmd "-v disable_data_entity_references=YES ") } else cmd = concat(cmd, "-v expected_external_dtd_subset_identifier=", platformbaseentitymanager1_required_external_subset_identifier_for_lax_template, " ") cmd = (cmd "-v disable_path_relativization=YES ") if (sgmldecl1_syntax_namecase_general != "") cmd = concat(cmd, "-v sgmldecl_syntax_namecase_general=", sgmldecl1_syntax_namecase_general, " ") if (sgmldecl1_syntax_namecase_entity != "") cmd = concat(cmd, "-v sgmldecl_syntax_namecase_entity=", sgmldecl1_syntax_namecase_entity, " ") if (sgmldecl1_features_other_validity != "") cmd = concat(cmd, "-v sgmldecl_features_other_validity=", sgmldecl1_features_other_validity, " ") if (sgmldecl1_features_minimize_omittag != "") cmd = concat(cmd, "-v sgmldecl_features_minimize_omittag=", sgmldecl1_features_minimize_omittag, " ") if (sgmldecl1_features_minimize_emptynrm != "") cmd = concat(cmd, "-v sgmldecl_features_minimize_emptynrm=", sgmldecl1_features_minimize_emptynrm, " ") if (filename == "-") { cmd = (cmd "-v sgmldecl_features_minimize_implydef_doctype=YES ") cmd = (cmd "-v sgmldecl_features_minimize_implydef_entity=YES ") } else if (platformbaseentitymanager1_system_specific_entity_path && substr(filename, 1, length(platformbaseentitymanager1_system_specific_entity_path)) == platformbaseentitymanager1_system_specific_entity_path) { cmd = (cmd "-v sgmldecl_features_minimize_implydef_doctype=YES ") cmd = (cmd "-v sgmldecl_features_minimize_implydef_entity=YES ") } if (expected_element != "") { cmd = concat(cmd, "-v target_document_type_name=", expected_element, " ") } if (platformbaseentitymanager1_system_specific_implied_link_process_names != "") { cmd = concat(cmd, "-v active_lpd_names=", platformbaseentitymanager1_system_specific_implied_link_process_names, " ") cmd = concat(cmd, "-v system_specific_implied_lpd_names=", platformbaseentitymanager1_system_specific_implied_link_process_names, " ") } if (platformbaseentitymanager1_tracing_events) cmd = concat(cmd, "-v sax_event_tracing=YES ") if (!sgmlutil_sgml_parseattrs(entity_values_str, entity_values_map)) { platformerrorhandler1_fatalError("internal error parsing data attributes", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } cmd = concat(cmd, "-- ") for (e in entity_values_map) { v = entity_values_map[e] if (index(v, "'") != 0) { if (index(v, "\"") != 0 || index(v, "$") != 0 || index(v, "`") != 0) { platformerrorhandler1_fatalError(concat(" data attribute ", e, ": '", v, "': invalid unescapable value for supply as system-specific entiy via shell command line parameter"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } cmd = concat(cmd, "-e ", e, "=\"", v, "\" ") } else cmd = concat(cmd, "-e ", e, "='", v, "' ") } if (filename != "-") { if (index(filename, "<") || index(filename, ">") || index(filename, "'") || index(filename, "\"")) { platformerrorhandler1_fatalError(concat("'", filename, "': invalid template file name"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!fs_existsSync(filename)) { platformerrorhandler1_fatalError(concat("'", filename, "': No such file or directory"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } cmd = concat(cmd, "'", filename, "'") } if (filename_for_stdin_redirection) if ((filename_for_stdin_redirection ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) { if (length(filename_for_stdin_redirection) > 128000) { if (!platformbaseentitymanager1_system_specific_entity_path) platformbaseentitymanager1_system_specific_entity_path = fs_mkdtempSync("/tmp/markdown-XXXXXXXXX") if (!platformbaseentitymanager1_system_specific_entity_path) { platformerrorhandler1_fatalError("error creating temporary directory", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tmpfilename = concat(platformbaseentitymanager1_system_specific_entity_path, "/", "serialized-sgmlstdin") fs_writeFileSync(tmpfilename, substr(filename_for_stdin_redirection, 10)) cmd = concat(cmd, " < ", tmpfilename) } else cmd = concat(cmd, " <<'SGMLEOF'\n", substr(filename_for_stdin_redirection, 10), "\nSGMLEOF\n") } else cmd = concat(cmd, " < ", filename_for_stdin_redirection) if (platformbaseentitymanager1_debug_emit_ctx_token != "") console_info(concat("")) if (textstream1_get_filename() != "-") { ; ; while ((errno = (cmd | getline line)) > 0) textstream1_writeLine(line) close(cmd) if (errno < 0) if (platformbaseentitymanager1_system_specific_entity_path && substr(filename, 1, length(platformbaseentitymanager1_system_specific_entity_path)) == platformbaseentitymanager1_system_specific_entity_path) { if (ENVIRON["SGMLJS_KEEP_TEMP_SYSTEM_SPECIFIC_ENTITY_DIR"] != "YES") rimraf_rimraf(platformbaseentitymanager1_system_specific_entity_path) exit(2) } else { platformerrorhandler1_fatalError(concat("\"", filename, "\": failure to serialize entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { ; ; if (system(cmd)) if (platformbaseentitymanager1_system_specific_entity_path && substr(filename, 1, length(platformbaseentitymanager1_system_specific_entity_path)) == platformbaseentitymanager1_system_specific_entity_path) { if (ENVIRON["SGMLJS_KEEP_TEMP_SYSTEM_SPECIFIC_ENTITY_DIR"] != "YES") rimraf_rimraf(platformbaseentitymanager1_system_specific_entity_path) exit(2) } else { platformerrorhandler1_fatalError(concat("\"", filename, "\": failure to serialize entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; } if (platformbaseentitymanager1_debug_emit_ctx_token != "") console_info(concat("")) } function platformbaseentitymanager1_get_running_awk_program_filename( cmd,errno,psresult,components) { if ("_" in ENVIRON) ; else ; if ("_" in ENVIRON && ((ENVIRON["_"] ~ /\.[gmn]?awk$/) || (ENVIRON["_"] ~ /markdown$/))) return ENVIRON["_"] return "" } function platformbaseentitymanager1_write_effective_markup_declarations(expected_document_element_name, dirname,dtdfilename,linktype,num_propagated_lpds,propagated_lpds,i) { dirname = "" dtdfilename = "" linktype = "" split("", propagated_lpds) if (docinfo1_effective_markup_declarations) { if (platformbaseentitymanager1_system_specific_entity_path) dirname = platformbaseentitymanager1_system_specific_entity_path else dirname = fs_mkdtempSync("/tmp/markdown-XXXXXXXXX") if (!dirname) { platformerrorhandler1_fatalError("error creating temporary directory", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; dtdfilename = concat(dirname, "/", expected_document_element_name, ".dtd") ; if (platformbaseentitymanager1_debug_emit_ctx_token != "") console_info(concat("")) if (platformbaseentitymanager1_debug_emit_ctx_token != "") console_info(concat("")) fs_writeFileSync(dtdfilename, docinfo1_effective_markup_declarations) platformbaseentitymanager1_system_specific_implied_link_process_names = "" if (docinfo1_effective_activated_link_processes == "") for (linktype in docinfo1_effective_link_processing_declarations) { if (platformbaseentitymanager1_system_specific_implied_link_process_names != "") { platformerrorhandler1_fatalError("internal error: attempting to propagate more than a single link process", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } docinfo1_effective_activated_link_processes = linktype } num_propagated_lpds = split(docinfo1_effective_activated_link_processes, propagated_lpds, ",") ; for (i = 1; i <= num_propagated_lpds; i++) { linktype = propagated_lpds[i] lpdfilename = concat(dirname, "/", linktype, ".lpd") ; if (platformbaseentitymanager1_debug_emit_ctx_token != "") console_info(concat("")) if (platformbaseentitymanager1_debug_emit_ctx_token != "") console_info(concat("")) fs_writeFileSync(lpdfilename, docinfo1_effective_link_processing_declarations[linktype]) platformbaseentitymanager1_system_specific_implied_link_process_names = linktype } platformbaseentitymanager1_system_specific_entity_path = dirname platformerrorhandler1_system_specific_entity_path = dirname } } function platformbaseentitymanager1_remove_written_effective_markup_declarations() { ; if (platformbaseentitymanager1_system_specific_entity_path) if (ENVIRON["SGMLJS_KEEP_TEMP_SYSTEM_SPECIFIC_ENTITY_DIR"] != "YES") rimraf_rimraf(platformbaseentitymanager1_system_specific_entity_path) platformbaseentitymanager1_system_specific_entity_path = "" platformerrorhandler1_system_specific_entity_path = "" docinfo1_effective_activated_link_processes = "" split("", docinfo1_effective_link_processing_declarations) } function platformbaseentitymanager1_set_debug_emit_ctx_token(s) { platformbaseentitymanager1_debug_emit_ctx_token = s } function platformbaseentitymanager1_configure(args) { ; if ("enable_lax_templates" in args) platformbaseentitymanager1_enable_lax_templates = args["enable_lax_templates"] if ("disable_referential_attributes" in args) platformbaseentitymanager1_disable_referential_attributes = args["disable_referential_attributes"] if ("output_format" in args) { ; platformbaseentitymanager1_output_format = args["output_format"] } else { ; } if ("keep_trailing_codeblock_newlines" in args) { ; platformbaseentitymanager1_keep_trailing_codeblock_newlines = args["keep_trailing_codeblock_newlines"] } else { ; } if ("sax_event_tracing" in args && args["sax_event_tracing"] == "YES") platformbaseentitymanager1_tracing_events = "x" if ("sgmlproc_cmd" in args) platformbaseentitymanager1_sgmlproc_cmd = args["sgmlproc_cmd"] } BEGIN { dataentitytracker1_current_declaration_set_name = "" dataentitytracker1_base_declaration_set_name = "" dataentitytracker1_base_declaration_external_subset_identifier = "" split("", dataentitytracker1_notation_system_identifiers) split("", dataentitytracker1_notation_public_identifiers) split("", dataentitytracker1_data_entity_names_to_materialize) split("", dataentitytracker1_data_entity_system_identifiers) split("", dataentitytracker1_data_entity_public_identifiers) split("", dataentitytracker1_data_entity_notation_system_identifiers) split("", dataentitytracker1_data_entity_notation_public_identifiers) split("", dataentitytracker1_data_attributes) split("", dataentitytracker1_data_entity_declaration_set_names) } function dataentitytracker1_reset() { dataentitytracker1_current_declaration_set_name = "" dataentitytracker1_base_declaration_set_name = "" dataentitytracker1_base_declaration_external_subset_identifier = "" split("", dataentitytracker1_notation_system_identifiers) split("", dataentitytracker1_notation_public_identifiers) split("", dataentitytracker1_data_entity_names_to_materialize) split("", dataentitytracker1_data_entity_system_identifiers) split("", dataentitytracker1_data_entity_public_identifiers) split("", dataentitytracker1_data_entity_notation_system_identifiers) split("", dataentitytracker1_data_entity_notation_public_identifiers) split("", dataentitytracker1_data_attributes) split("", dataentitytracker1_data_entity_declaration_set_names) } function dataentitytracker1_comment(text) { } function dataentitytracker1_startDTD(name, publicid, systemid, xmltext) { dataentitytracker1_current_declaration_set_name = name if (dataentitytracker1_base_declaration_set_name == "") { dataentitytracker1_base_declaration_set_name = name dataentitytracker1_base_declaration_external_subset_identifier = systemid } } function dataentitytracker1_endDTD() { dataentitytracker1_current_declaration_set_name = "" } function dataentitytracker1_startCDATA(text) { } function dataentitytracker1_endCDATA() { } function dataentitytracker1_startRCDATA(text) { } function dataentitytracker1_endRCDATA() { } function dataentitytracker1_startINCLUDE(text) { } function dataentitytracker1_endINCLUDE() { } function dataentitytracker1_startIGNORE(text) { } function dataentitytracker1_endIGNORE() { } function dataentitytracker1_start_temp(text) { } function dataentitytracker1_end_temp() { } function dataentitytracker1_startEntity(name, elmt) { } function dataentitytracker1_endEntity(name) { } function dataentitytracker1_notationDecl(name, pubid, sysid) { if (sysid) dataentitytracker1_notation_system_identifiers[dataentitytracker1_current_declaration_set_name, name] = sysid if (pubid) dataentitytracker1_notation_public_identifiers[dataentitytracker1_current_declaration_set_name, name] = pubid } function dataentitytracker1_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) { if (dataentitytracker1_current_declaration_set_name != dataentitytracker1_base_declaration_set_name) { dataentitytracker1_data_entity_names_to_materialize[name] = "" dataentitytracker1_data_entity_system_identifiers[name] = sysid dataentitytracker1_data_entity_public_identifiers[name] = pubid dataentitytracker1_data_entity_notation_system_identifiers[name] = dataentitytracker1_notation_system_identifiers[dataentitytracker1_current_declaration_set_name, notation_name] dataentitytracker1_data_entity_notation_public_identifiers[name] = dataentitytracker1_notation_public_identifiers[dataentitytracker1_current_declaration_set_name, notation_name] if (data_attributes) { ; dataentitytracker1_data_attributes[name] = data_attributes } dataentitytracker1_data_entity_declaration_set_names[name] = dataentitytracker1_current_declaration_set_name } } BEGIN { attributechecker1_disable_referential_attributes = "" attributechecker1_declaration_set_name = "" } function attributechecker1_set_declaration_set_name(name) { if (!attributechecker1_declaration_set_name) attributechecker1_declaration_set_name = name } function attributechecker1_debug_ids(msg, i,s) { s = "" for (i in docinfo1_backward_ids) s = concat(s, (s? " ":""), i) msg = concat(msg,": this.docinfo.backward_ids=",s) s = "" for (i in docinfo1_forward_idrefs) s = concat(s, (s? " ":""), i) msg = concat(msg,", this.docinfo.forward_idrefs=",s) return ("check_attribute_value: " msg) } function attributechecker1_check_attribute_value(doctype, attribute, declared_value, actual_value, content_msg, data_notation_name, data_data_attributes_map, i,tmp,data_notation_public_identifier,actual_value_before_normalization) { split("", tmp) data_notation_public_identifier = "" actual_value_before_normalization = "" ; if (substr(declared_value, 1, 1) == "(") { sub(/^[ \t\n]+/, "", actual_value) sub(/[ \t\n]+$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!((actual_value ~ declared_value))) { { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": '",actual_value,"': invalid value for attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } } else if (declared_value == "CDATA") return actual_value else if (declared_value == "ENTITY") { if (attributechecker1_disable_referential_attributes) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } gsub(/[ \t\n]+/, "", actual_value) if (sgmldecl1_syntax_namecase_entity == "YES") actual_value = toupper(actual_value) if (!(actual_value in entitydefinitions1_entity_replacement_text) && !(actual_value in entitydefinitions1_entity_replacement_file) && !(actual_value in entitydefinitions1_system_specific_general_entities)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': reference to undeclared entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "ENTITIES") { if (attributechecker1_disable_referential_attributes) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } gsub(/[ \t\n]+/, " ", actual_value) sub(/^ +/, "", actual_value) sub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_entity == "YES") actual_value = toupper(actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] in entitydefinitions1_entity_replacement_text) && !(tmp[1+ i] in entitydefinitions1_entity_replacement_file)) { platformerrorhandler1_error(concat(content_msg,"'",tmp[1+ i],"': reference to undeclared entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "ID") { if (attributechecker1_disable_referential_attributes) { if (systemspecificentityresolver1_system_specific_entity_path && substr(locator1_get_system_id(), 1, length(systemspecificentityresolver1_system_specific_entity_path)) == systemspecificentityresolver1_system_specific_entity_path) locator1_set_system_id("") { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } gsub(/[ \t\n]+/, "", actual_value) if (!(actual_value ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid ID token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (actual_value in docinfo1_backward_ids) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': duplicate ID value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else docinfo1_backward_ids[actual_value] = "" if (actual_value in docinfo1_forward_idrefs) delete docinfo1_forward_idrefs[actual_value] ; } else if (declared_value == "IDREF") { if (attributechecker1_disable_referential_attributes) { if (systemspecificentityresolver1_system_specific_entity_path && substr(locator1_get_system_id(), 1, length(systemspecificentityresolver1_system_specific_entity_path)) == systemspecificentityresolver1_system_specific_entity_path) locator1_set_system_id("") { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } gsub(/[ \t\n]+/, "", actual_value) if (!(actual_value ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_warning(concat(content_msg,"'",actual_value,"': invalid ID token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!(actual_value in docinfo1_backward_ids)) docinfo1_forward_idrefs[actual_value] = "" ; } else if (declared_value == "IDREFS") { if (attributechecker1_disable_referential_attributes) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) { if (!(tmp[1+ i] ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_warning(concat(content_msg,"'",tmp[1+ i],"': invalid ID token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!(tmp[1+ i] in docinfo1_backward_ids)) docinfo1_forward_idrefs[tmp[1+ i]] = "" } ; } else if (declared_value == "NAME") { gsub(/[ \t\n]+/, " ", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!(actual_value ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NAME token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NAMES") { gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (actual_value == "") { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NAME token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NAME token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NMTOKEN") { gsub(/[ \t\n]+/, " ", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!(actual_value ~ /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NMTOKEN token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NMTOKENS") { gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] ~ /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/)) { platformerrorhandler1_error(concat(content_msg,"'",tmp[1+ i],"': invalid NMTOKEN token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NUMBER") { gsub(/[ \t\n]+/, " ", actual_value) if (!(actual_value ~ /^[[:digit:]]+$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NUMBER token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NUMBERS") { gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] ~ /^[[:digit:]]+$/)) { platformerrorhandler1_error(concat(content_msg,"'",tmp[1+ i],"': invalid NUMBER token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NUTOKEN") { gsub(/[ \t\n]+/, " ", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!(actual_value ~ /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/) || !(substr(actual_value, 1, 1) ~ /[[:digit:]]/) || !(substr(actual_value, length(actual_value)) ~ /[[:alpha:]]/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NUTOKEN token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NUTOKENS") { gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] ~ /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/) || !(substr(tmp[1+ i], 1, 1) ~ /[[:digit:]]/) || !(substr(tmp[1+ i], length(tmp[1+ i])) ~ /[[:alpha:]]/)) { platformerrorhandler1_error(concat(content_msg,"'",tmp[1+ i],"': invalid NUTOKEN token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if ((declared_value ~ /^NOTATION/)) { sub(/^NOTATION/, "", declared_value) sub(/^[ \t\n]+/, "", actual_value) sub(/[ \t\n]+$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!((actual_value ~ declared_value))) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": '",actual_value,"': invalid notation name for attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "DATA") { ; if ((doctype, data_notation_name) in markupdefinitions1_notation_public_identifiers) data_notation_public_identifier = markupdefinitions1_notation_public_identifiers[doctype, data_notation_name] if (data_notation_public_identifier == "+//IDN www.w3c.org/TR/html5//NOTATION HTML Form Input Types//EN") { if (actual_value != "") { actual_value_before_normalization = actual_value actual_value = htmlforminputvaluechecker1_normalize_value(actual_value, data_data_attributes_map) if (!actual_value) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": '",actual_value_before_normalization,"': invalid value for declared data notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } ; } } else if (data_notation_public_identifier) { platformerrorhandler1_warning(concat(content_msg,"attribute ",attribute,": '",data_notation_public_identifier,"': unrecognized public identifier for notation used in data specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else { platformerrorhandler1_warning(concat(content_msg,"attribute ",attribute,": missing public identifier for notation used in data specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else { platformerrorhandler1_fatalError(concat("internal error: '",declared_value,"': unhandled declared attribute value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return actual_value } function attributechecker1_check_attribute_array(doctype, elementtype, notationname, attrarray, content_msg, i,a,found,attrs,debugtmp,default_semantics,default_value,declared_value,attr,n,effective_attribute_list,num_own_attributes,data_notation_name,data_data_attributes,num_data_data_attributes,data_data_attribute_map) { split("", attrs) declared_value = "" attr = "" effective_attribute_list = "" data_notation_name = "" split("", data_data_attributes) split("", data_data_attribute_map) ; if (!doctype) doctype = attributechecker1_declaration_set_name if (content_msg) content_msg = (content_msg ": ") if (notationname) { if ((doctype, notationname) in markupdefinitions1_data_attributes) n = split(markupdefinitions1_data_attributes[doctype, notationname], attrs, " ") num_own_attributes = n } else { if ((doctype, elementtype) in markupdefinitions1_element_attributes) effective_attribute_list = markupdefinitions1_element_attributes[doctype, elementtype] if ((doctype, "#ALL") in markupdefinitions1_element_attributes) { if (effective_attribute_list) { num_own_attributes = split(effective_attribute_list, attrs, " ") effective_attribute_list = concat(effective_attribute_list, " ", markupdefinitions1_element_attributes[doctype, "#ALL"]) } else { num_own_attributes = 0 effective_attribute_list = markupdefinitions1_element_attributes[doctype, "#ALL"] } n = split(effective_attribute_list, attrs, " ") } else { n = split(effective_attribute_list, attrs, " ") num_own_attributes = n } } for (i = 0; i < n; i++) { attr = attrs[1+ i] ; if (notationname) { if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_declared_values) declared_value = markupdefinitions1_data_attribute_declared_values[doctype, notationname, attr] else declared_value = "" ; if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_declared_data_notations) { data_notation_name = markupdefinitions1_data_attribute_declared_data_notations[doctype, notationname, attr] ; if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_data_attributes) { ; num_data_data_attributes = split(markupdefinitions1_data_attribute_data_attributes[doctype, notationname, attr], data_data_attributes, / /) ; while (num_data_data_attributes > 0) { data_data_attribute_map[data_data_attributes[1+ num_data_data_attributes - 1]] = markupdefinitions1_data_attribute_data_attribute_values[doctype, notationname, attr, data_data_attributes[1+ num_data_data_attributes - 1]] ; num_data_data_attributes-- } } } if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_default_semantics) default_semantics = markupdefinitions1_data_attribute_default_semantics[doctype, notationname, attr] else default_semantics = "" if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_default_values) default_value = markupdefinitions1_data_attribute_default_values[doctype, notationname, attr] else default_value = "" } else { if (i < num_own_attributes) { if ((doctype, elementtype, attr) in markupdefinitions1_attribute_declared_values) declared_value = markupdefinitions1_attribute_declared_values[doctype, elementtype, attr] else declared_value = "" ; if ((doctype, elementtype, attr) in markupdefinitions1_attribute_declared_data_notations) { data_notation_name = markupdefinitions1_attribute_declared_data_notations[doctype, elementtype, attr] ; if ((doctype, elementtype, attr) in markupdefinitions1_attribute_data_attributes) { num_data_data_attributes = split(markupdefinitions1_attribute_data_attributes[doctype, elementtype, attr], data_data_attributes, / /) ; while (num_data_data_attributes > 0) { data_data_attribute_map[data_data_attributes[1+ num_data_data_attributes - 1]] = markupdefinitions1_attribute_data_attribute_values[doctype, elementtype, attr, data_data_attributes[1+ num_data_data_attributes - 1]] ; num_data_data_attributes-- } } } if ((doctype, elementtype, attr) in markupdefinitions1_attribute_default_semantics) default_semantics = markupdefinitions1_attribute_default_semantics[doctype, elementtype, attr] else default_semantics = "" if ((doctype, elementtype, attr) in markupdefinitions1_attribute_default_values) default_value = markupdefinitions1_attribute_default_values[doctype, elementtype, attr] else default_value = "" } else { if ((doctype, "#ALL", attr) in markupdefinitions1_attribute_declared_values) declared_value = markupdefinitions1_attribute_declared_values[doctype, "#ALL", attr] else declared_value = "" if ((doctype, "#ALL", attr) in markupdefinitions1_attribute_default_semantics) default_semantics = markupdefinitions1_attribute_default_semantics[doctype, "#ALL", attr] else default_semantics = "" if ((doctype, "#ALL", attr) in markupdefinitions1_attribute_default_values) default_value = markupdefinitions1_attribute_default_values[doctype, "#ALL", attr] else default_value = "" } } ; if (attr in attrarray) { if (default_semantics) { if (default_semantics == "#FIXED") { if (sgmldecl1_syntax_namecase_general == "YES" && (declared_value == "NAME" || declared_value == "NAMES" || declared_value == "NMTOKEN" || declared_value == "NMTOKENS" || declared_value == "NUTOKEN" || declared_value == "NUTOKENS" || substr(declared_value, 1, 1) == "(" || (declared_value ~ /^NOTATION/))) attrarray[attr] = toupper(attrarray[attr]) if (attrarray[attr] != default_value) { platformerrorhandler1_fatalError(concat(content_msg,"attribute ",attr,": '",attrarray[attr],"': value other than '",default_value,"' for fixed attribute specified"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else continue } else if (notationname) attrarray[attr] = attributechecker1_check_attribute_value(doctype, attr, declared_value, attrarray[attr], content_msg, data_notation_name, data_data_attribute_map) else attrarray[attr] = attributechecker1_check_attribute_value(doctype, attr, declared_value, attrarray[attr], content_msg, data_notation_name, data_data_attribute_map) if (default_semantics == "#CURRENT") { ; docinfo1_attribute_current_values[doctype, attr] = attrarray[attr] } else if (default_semantics == "#CONREF") { ; docinfo1_content_reference = attrarray[attr] } } else { attrarray[attr] = attributechecker1_check_attribute_value(doctype, attr, declared_value, attrarray[attr], content_msg, data_notation_name, data_data_attribute_map) } } else { if (default_semantics) { if (default_semantics == "#REQUIRED") { platformerrorhandler1_fatalError(concat(content_msg, "attribute ",attr,": missing value for required attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (default_semantics == "#IMPLIED") continue else if (default_semantics == "#FIXED") { attrarray[attr] = default_value } else if (default_semantics == "#CURRENT") if (!((doctype, attr) in docinfo1_attribute_current_values)) { platformerrorhandler1_error(concat(content_msg,"missing value for initial current attribute '",attr,"'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else attrarray[attr] = docinfo1_attribute_current_values[doctype, attr] } else attrarray[attr] = default_value } ; } if (sgmldecl1_features_minimize_implydef_attlist == "NO" || notationname || doctype in markupdefinitions1_link_process_source_doctype_specs) for (a in attrarray) { found = 0 for (i in attrs) if (--i + 1) if (a == attrs[1+ i]) { found = 1 break } if (!found) if (notationname) { platformerrorhandler1_fatalError(concat("'",a,"': ",content_msg, "undeclared data attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (doctype in markupdefinitions1_link_process_source_doctype_specs) { platformerrorhandler1_fatalError(concat("'",a,"': ",content_msg, "undeclared link attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { platformerrorhandler1_fatalError(concat("'",a,"': ",content_msg, "undeclared attribute and IMPLYDEF ATTLIST NO specified"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } function attributechecker1_configure(args) { if ("disable_referential_attributes" in args && args["disable_referential_attributes"] == "YES") attributechecker1_disable_referential_attributes = args["disable_referential_attributes"] } BEGIN { markdownoutputfilter1_prune_singleton_html_paras_in_listitems = "" markdownoutputfilter1_keep_trailing_codeblock_newlines = "" markdownoutputfilter1_previous_element = "" markdownoutputfilter1_previous_element_had_markdown_vocabulary_elements = "" markdownoutputfilter1_deferred_p_status = "" markdownoutputfilter1_deferred_p_characters = "" markdownoutputfilter1_deferred_p_attrs = "" split("", markdownoutputfilter1_deferred_p_attrs_array) split("", markdownoutputfilter1_empty_array) } function markdownoutputfilter1_reset() { markdownoutputfilter1_deferred_p_status = "" markdownoutputfilter1_deferred_p_characters = "" markdownoutputfilter1_deferred_p_attrs = "" split("", markdownoutputfilter1_deferred_p_attrs_array) } function markdownoutputfilter1_do_start_element(elmt, attrs_array, attrs) { outputhandler1_startElement(elmt, attrs_array, attrs) } function markdownoutputfilter1_do_end_element(elmt) { outputhandler1_endElement(elmt) } function markdownoutputfilter1_do_characters(text) { outputhandler1_characters(text) } function markdownoutputfilter1_handle_deferred_p(event, elmt, attrs, attrs_array, text, item) { ; if (markdownoutputfilter1_deferred_p_status == "in-li") { if (event == "start_element" && elmt == "p" && vocab_is_prunable(attrs, attrs_array)) { markdownoutputfilter1_deferred_p_attrs = attrs split("", markdownoutputfilter1_deferred_p_attrs_array) for (item in attrs_array) markdownoutputfilter1_deferred_p_attrs_array[item] = attrs_array[item] markdownoutputfilter1_deferred_p_status = "in-p" return 1 } else { markdownoutputfilter1_deferred_p_status = "" } } else if (markdownoutputfilter1_deferred_p_status == "in-p") { if (event == "characters") { markdownoutputfilter1_deferred_p_characters = text markdownoutputfilter1_deferred_p_status = "characters" return 1 } else if (event == "end_element") { markdownoutputfilter1_deferred_p_characters = "" markdownoutputfilter1_deferred_p_status = "after-p" return 1 } else { markdownoutputfilter1_deferred_p_status = "" markdownoutputfilter1_do_start_element("p", markdownoutputfilter1_deferred_p_attrs_array, vocab_strip_markdown_vocabulary(markdownoutputfilter1_deferred_p_attrs, markdownoutputfilter1_deferred_p_attrs_array)) } } else if (markdownoutputfilter1_deferred_p_status == "characters") { if (event == "end_element") { markdownoutputfilter1_deferred_p_status = "after-p" return 1 } else { markdownoutputfilter1_deferred_p_status = "" markdownoutputfilter1_do_start_element("p", markdownoutputfilter1_deferred_p_attrs_array, vocab_strip_markdown_vocabulary(markdownoutputfilter1_deferred_p_attrs, markdownoutputfilter1_deferred_p_attrs_array)) markdownoutputfilter1_do_characters(markdownoutputfilter1_deferred_p_characters) } } else if (markdownoutputfilter1_deferred_p_status == "after-p") { if (event == "end_element") { markdownoutputfilter1_deferred_p_status = "" markdownoutputfilter1_do_characters(markdownoutputfilter1_deferred_p_characters) return 0 } else { markdownoutputfilter1_deferred_p_status = "" markdownoutputfilter1_do_start_element("p", markdownoutputfilter1_deferred_p_attrs_array, vocab_strip_markdown_vocabulary(markdownoutputfilter1_deferred_p_attrs, markdownoutputfilter1_deferred_p_attrs_array)) markdownoutputfilter1_do_characters(markdownoutputfilter1_deferred_p_characters) markdownoutputfilter1_do_end_element("p") } } if (event == "start_element" && (elmt == "li" || elmt == "dd")) markdownoutputfilter1_deferred_p_status = "in-li" return 0 } function markdownoutputfilter1_startDocument() { outputhandler1_startDocument() } function markdownoutputfilter1_endDocument() { outputhandler1_endDocument() } function markdownoutputfilter1_startElement(elmt, attrs_array, attrs) { markdownoutputfilter1_previous_element = elmt if ("markdown:roundtrip" in attrs_array || "markdown:prunable" in attrs_array || "MARKDOWN:ROUNDTRIP" in attrs_array || "MARKDOWN:PRUNABLE" in attrs_array) markdownoutputfilter1_previous_element_had_markdown_vocabulary_elements = "1" else markdownoutputfilter1_previous_element_had_markdown_vocabulary_elements = "" if (!(markdownoutputfilter1_prune_singleton_html_paras_in_listitems == "YES")) { if (markdownoutputfilter1_previous_element_had_markdown_vocabulary_elements) { delete attrs_array["markdown:roundtrip"] delete attrs_array["markdown:prunable"] delete attrs_array["MARKDOWN:ROUNDTRIP"] delete attrs_array["MARKDOWN:PRUNABLE"] outputhandler1_startElement(elmt, attrs_array, sgmlutil_sgml_formatattrs(attrs_array)) } else { outputhandler1_startElement(elmt, attrs_array, attrs) } return } if (!markdownoutputfilter1_handle_deferred_p("start_element", tolower(elmt), attrs, attrs_array)) markdownoutputfilter1_do_start_element(elmt, attrs_array, vocab_strip_markdown_vocabulary(attrs, attrs_array)) } function markdownoutputfilter1_endElement(elmt) { if (!(markdownoutputfilter1_prune_singleton_html_paras_in_listitems == "YES")) { outputhandler1_endElement(elmt) return } if (!markdownoutputfilter1_handle_deferred_p("end_element")) markdownoutputfilter1_do_end_element(elmt) } function markdownoutputfilter1_characters(text) { if (markdownoutputfilter1_keep_trailing_codeblock_newlines) { if ((markdownoutputfilter1_previous_element == "code" || markdownoutputfilter1_previous_element == "CODE") && markdownoutputfilter1_previous_element_had_markdown_vocabulary_elements) sub(/\n$/, "", text) } if (!(markdownoutputfilter1_prune_singleton_html_paras_in_listitems == "YES")) { outputhandler1_characters(text) return } if (!markdownoutputfilter1_handle_deferred_p("characters", "", "", markdownoutputfilter1_empty_array, text)) markdownoutputfilter1_do_characters(text) } function markdownoutputfilter1_processingInstruction(name, data) { if (!(markdownoutputfilter1_prune_singleton_html_paras_in_listitems == "YES")) { outputhandler1_processingInstruction(name, data) return } markdownoutputfilter1_handle_deferred_p("", "", "", markdownoutputfilter1_empty_array, "") outputhandler1_processingInstruction(name, data) } function markdownoutputfilter1_comment(text) { if (!(markdownoutputfilter1_prune_singleton_html_paras_in_listitems == "YES")) { outputhandler1_comment(text) return } markdownoutputfilter1_handle_deferred_p("", "", "", markdownoutputfilter1_empty_array, "") outputhandler1_comment(text) } function markdownoutputfilter1_startDTD(name, publicid, systemid, xmltext) { if (!(markdownoutputfilter1_prune_singleton_html_paras_in_listitems == "YES")) { outputhandler1_startDTD(name, publicid, systemid, xmltext) return } markdownoutputfilter1_handle_deferred_p("", "", "", markdownoutputfilter1_empty_array, "") outputhandler1_startDTD(name, publicid, systemid, xmltext) } function markdownoutputfilter1_endDTD() { outputhandler1_endDTD() } function markdownoutputfilter1_startCDATA(text) { if (!(markdownoutputfilter1_prune_singleton_html_paras_in_listitems == "YES")) { outputhandler1_startCDATA(text) return } markdownoutputfilter1_handle_deferred_p("", "", "", markdownoutputfilter1_empty_array, "") outputhandler1_startCDATA(text) } function markdownoutputfilter1_endCDATA() { outputhandler1_endCDATA() } function markdownoutputfilter1_startRCDATA(text) { if (!(markdownoutputfilter1_prune_singleton_html_paras_in_listitems == "YES")) { outputhandler1_startRCDATA(text) return } markdownoutputfilter1_handle_deferred_p("", "", "", markdownoutputfilter1_empty_array, "") outputhandler1_startRCDATA(text) } function markdownoutputfilter1_endRCDATA() { outputhandler1_endRCDATA() } function markdownoutputfilter1_startINCLUDE(text) { if (!(markdownoutputfilter1_prune_singleton_html_paras_in_listitems == "YES")) { outputhandler1_startINCLUDE(text) return } markdownoutputfilter1_handle_deferred_p("", "", "", markdownoutputfilter1_empty_array, "") outputhandler1_startINCLUDE(text) } function markdownoutputfilter1_endINCLUDE() { outputhandler1_endINCLUDE() } function markdownoutputfilter1_startIGNORE(text) { if (!(markdownoutputfilter1_prune_singleton_html_paras_in_listitems == "YES")) { outputhandler1_startIGNORE(text) return } markdownoutputfilter1_handle_deferred_p("", "", "", markdownoutputfilter1_empty_array, "") outputhandler1_startIGNORE(text) } function markdownoutputfilter1_endIGNORE() { outputhandler1_endIGNORE() } function markdownoutputfilter1_start_temp(text) { if (!(markdownoutputfilter1_prune_singleton_html_paras_in_listitems == "YES")) { outputhandler1_start_temp(text) return } markdownoutputfilter1_handle_deferred_p("", "", "", markdownoutputfilter1_empty_array, "") outputhandler1_start_temp(text) } function markdownoutputfilter1_end_temp() { outputhandler1_end_temp() } function markdownoutputfilter1_startEntity(name, elmt) { outputhandler1_startEntity(name, elmt) } function markdownoutputfilter1_endEntity(name) { outputhandler1_endEntity(name) } function markdownoutputfilter1_notationDecl(name, pubid, sysid) { outputhandler1_notationDecl(name, pubid, sysid) } function markdownoutputfilter1_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) { outputhandler1_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) } function markdownoutputfilter1_configure(args) { if ("keep_trailing_codeblock_newlines" in args) { markdownoutputfilter1_keep_trailing_codeblock_newlines = args["keep_trailing_codeblock_newlines"] ; } if ("prune_singleton_html_paras_in_listitems" in args) { markdownoutputfilter1_prune_singleton_html_paras_in_listitems = args["prune_singleton_html_paras_in_listitems"] } } BEGIN { htmlserversidesgmlfilter1_add_server_side_sgml_support_link_element = "" } function htmlserversidesgmlfilter1_reset() { } function htmlserversidesgmlfilter1_startDocument() { markdownoutputfilter1_startDocument() } function htmlserversidesgmlfilter1_endDocument() { markdownoutputfilter1_endDocument() } function htmlserversidesgmlfilter1_startElement(elmt, attrs_array, attrs) { markdownoutputfilter1_startElement(elmt, attrs_array, attrs) } function htmlserversidesgmlfilter1_endElement(elmt, attrs_array,attrs) { split("", attrs_array) attrs = "" if (htmlserversidesgmlfilter1_add_server_side_sgml_support_link_element) { if (tolower(elmt) == "head") { attrs_array["REL"] = "alternate" attrs_array["TYPE"] = "text/sgml" attrs_array["HREF"] = "#" markdownoutputfilter1_startElement("LINK", attrs_array, "REL=\"alternate\" TYPE=\"text/sgml\" HREF=\"#\"") markdownoutputfilter1_endElement("LINK") markdownoutputfilter1_characters("\n") } } markdownoutputfilter1_endElement(elmt) } function htmlserversidesgmlfilter1_characters(text) { markdownoutputfilter1_characters(text) } function htmlserversidesgmlfilter1_processingInstruction(name, data) { markdownoutputfilter1_processingInstruction(name, data) } function htmlserversidesgmlfilter1_comment(text) { markdownoutputfilter1_comment(text) } function htmlserversidesgmlfilter1_startDTD(name, publicid, systemid, xmltext) { markdownoutputfilter1_startDTD(name, publicid, systemid, xmltext) } function htmlserversidesgmlfilter1_endDTD() { markdownoutputfilter1_endDTD() } function htmlserversidesgmlfilter1_startCDATA(text) { markdownoutputfilter1_startCDATA(text) } function htmlserversidesgmlfilter1_endCDATA() { markdownoutputfilter1_endCDATA() } function htmlserversidesgmlfilter1_startRCDATA(text) { markdownoutputfilter1_startRCDATA(text) } function htmlserversidesgmlfilter1_endRCDATA() { markdownoutputfilter1_endRCDATA() } function htmlserversidesgmlfilter1_startINCLUDE(text) { markdownoutputfilter1_startINCLUDE(text) } function htmlserversidesgmlfilter1_endINCLUDE() { markdownoutputfilter1_endINCLUDE() } function htmlserversidesgmlfilter1_startIGNORE(text) { markdownoutputfilter1_startIGNORE(text) } function htmlserversidesgmlfilter1_endIGNORE() { markdownoutputfilter1_endIGNORE() } function htmlserversidesgmlfilter1_start_temp(text) { markdownoutputfilter1_start_temp(text) } function htmlserversidesgmlfilter1_end_temp() { markdownoutputfilter1_end_temp() } function htmlserversidesgmlfilter1_startEntity(name, elmt) { markdownoutputfilter1_startEntity(name, elmt) } function htmlserversidesgmlfilter1_endEntity(name) { markdownoutputfilter1_endEntity(name) } function htmlserversidesgmlfilter1_notationDecl(name, pubid, sysid) { markdownoutputfilter1_notationDecl(name, pubid, sysid) } function htmlserversidesgmlfilter1_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) { markdownoutputfilter1_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) } BEGIN { suppressdocumentelementfilter1_prune_document_element = "" suppressdocumentelementfilter1_past_first_start_element_event = "" suppressdocumentelementfilter1_most_recently_ended_element = "" } function suppressdocumentelementfilter1_reset() { suppressdocumentelementfilter1_past_first_start_element_event = "" suppressdocumentelementfilter1_most_recently_ended_element = "" } function suppressdocumentelementfilter1_startDocument() { htmlserversidesgmlfilter1_startDocument() } function suppressdocumentelementfilter1_endDocument() { htmlserversidesgmlfilter1_endDocument() } function suppressdocumentelementfilter1_startElement(elmt, attrs_array, attrs) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_startElement(elmt, attrs_array, attrs) return } if (!suppressdocumentelementfilter1_past_first_start_element_event) { suppressdocumentelementfilter1_past_first_start_element_event = "1" return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_startElement(elmt, attrs_array, attrs) } function suppressdocumentelementfilter1_endElement(elmt) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_endElement(elmt) return } if (suppressdocumentelementfilter1_most_recently_ended_element) htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = elmt } function suppressdocumentelementfilter1_characters(text) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_characters(text) return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_characters(text) } function suppressdocumentelementfilter1_processingInstruction(name, data) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_processingInstruction(name, data) return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_processingInstruction(name, data) } function suppressdocumentelementfilter1_comment(text) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_comment(text) return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_comment(text) } function suppressdocumentelementfilter1_startDTD(name, publicid, systemid, xmltext) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_startDTD(name, publicid, systemid, xmltext) return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } } function suppressdocumentelementfilter1_endDTD() { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_endDTD() return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } } function suppressdocumentelementfilter1_startCDATA(text) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_startCDATA(text) return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_startCDATA(text) } function suppressdocumentelementfilter1_endCDATA() { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_endCDATA() return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_endCDATA() } function suppressdocumentelementfilter1_startRCDATA(text) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_startRCDATA(text) return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_startRCDATA(text) } function suppressdocumentelementfilter1_endRCDATA() { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_endRCDATA() return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_endRCDATA() } function suppressdocumentelementfilter1_startINCLUDE(text) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_startINCLUDE(text) return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_startINCLUDE(text) } function suppressdocumentelementfilter1_endINCLUDE() { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_endINCLUDE() return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_endINCLUDE() } function suppressdocumentelementfilter1_startIGNORE(text) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_startIGNORE(text) return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_startIGNORE(text) } function suppressdocumentelementfilter1_endIGNORE() { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_endIGNORE() return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_endIGNORE() } function suppressdocumentelementfilter1_start_temp(text) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_start_temp(text) return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_start_temp(text) } function suppressdocumentelementfilter1_end_temp() { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_end_temp() return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_end_temp() } function suppressdocumentelementfilter1_startEntity(name, elmt) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_startEntity(name, elmt) return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_startEntity(name, elmt) } function suppressdocumentelementfilter1_endEntity(name) { if (!suppressdocumentelementfilter1_prune_document_element) { htmlserversidesgmlfilter1_endEntity(name) return } if (suppressdocumentelementfilter1_most_recently_ended_element) { htmlserversidesgmlfilter1_endElement(suppressdocumentelementfilter1_most_recently_ended_element) suppressdocumentelementfilter1_most_recently_ended_element = "" } htmlserversidesgmlfilter1_endEntity(name) } function suppressdocumentelementfilter1_notationDecl(name, pubid, sysid) { htmlserversidesgmlfilter1_notationDecl(name, pubid, sysid) } function suppressdocumentelementfilter1_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) { htmlserversidesgmlfilter1_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) } BEGIN { docinfo3_target_doctype = "" split("", docinfo3_active_link_processes) split("", docinfo3_attribute_current_values) split("", docinfo3_backward_ids) split("", docinfo3_forward_idrefs) docinfo3_content_reference = "" docinfo3_exclusion_exceptions = "" split("", docinfo3_current_rank_suffixes) docinfo3_most_recently_ended_element = "" docinfo3_effective_markup_declarations = "" split("", docinfo3_effective_link_processing_declarations) split("", docinfo3_effective_link_attribute_declarations) docinfo3_effective_activated_link_processes = "" docinfo3_current_shortref_map = "" } function docinfo3_reset() { docinfo3_target_doctype = "" split("", docinfo3_attribute_current_values) split("", docinfo3_backward_ids) split("", docinfo3_forward_idrefs) docinfo3_content_reference = "" split("", docinfo3_current_rank_suffixes) docinfo3_effective_markup_declarations = "" } function docinfo3_check_idrefs_resolved( i,unresolved_idrefs_list_str) { unresolved_idrefs_list_str = "" for (i in docinfo3_forward_idrefs) if (unresolved_idrefs_list_str == "") unresolved_idrefs_list_str = i else unresolved_idrefs_list_str = concat(unresolved_idrefs_list_str,", ",i) if (unresolved_idrefs_list_str != "") { platformerrorhandler1_error((unresolved_idrefs_list_str ": unresolved ID reference(s)"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } BEGIN { linkhandler1_link_process_name = "" linkhandler1_document_type_name = "" linkhandler1_result_document_type_name = "" linkhandler1_result_document_type_received = "" linkhandler1_enable_lax_templates = "" linkhandler1_last_element_was_expanded_conref = "" linkhandler1_in_linktype_declared_notational_content = 0 linkhandler1_notational_content = "" linkhandler1_in_cdata_or_rcdata_marked_section_within_notational_content = 0 linkhandler1_in_content_reference_element_within_notational_content = 0 linkhandler1_notation_name = "" linkhandler1_notation_element = "" split("", linkhandler1_dafe_attrs_array) linkhandler1_dafe_content_pull_receiver_attribute = "" linkhandler1_forward_link_attributes = "" linkhandler1_current_link_set_name = "#INITIAL" linkhandler1_result_document_element_emitted = "" linkhandler1_debug_emit_ctx_token = "" linkhandler1_error_context_info_enabled = "" linkhandler1_num_link_rules = 0 linkhandler1_link_rule_no = 0 linkhandler1_effective_link_set_name = "" split("", linkhandler1_link_attrs_array) linkhandler1_source_element = "" linkhandler1_result_element = "" linkhandler1_result_attribute_spec = "" split("", linkhandler1_result_attribute_arr) } function linkhandler1_reset() { linkhandler1_link_process_name = "" linkhandler1_document_type_name = "" linkhandler1_result_document_type_name = "" linkhandler1_result_document_type_received = "" linkhandler1_last_element_was_expanded_conref = "" linkhandler1_in_linktype_declared_notational_content = 0 linkhandler1_notational_content = "" linkhandler1_in_cdata_or_rcdata_marked_section_within_notational_content = 0 linkhandler1_in_content_reference_element_within_notational_content = 0 linkhandler1_dafe_content_pull_receiver_attribute = "" linkhandler1_notation_name = "" linkhandler1_notation_element = "" split("", linkhandler1_dafe_attrs_array) linkhandler1_result_document_element_emitted = "0" stack9_clear() stack10_clear() if (linkhandler1_error_context_info_enabled) stack11_clear() dataentitytracker2_reset() } function linkhandler1_configure(args) { if (args["enable_lax_templates"]) linkhandler1_enable_lax_templates = args["enable_lax_templates"] if (args["forward_link_attributes"]) linkhandler1_forward_link_attributes = args["forward_link_attributes"] if ("sax_error_context_info_collection" in args) { validator2_enable_error_context_info("YES") linkhandler1_error_context_info_enabled = args["sax_error_context_info_collection"] } } function linkhandler1_set_link_process_name(name) { ; ; if (sgmldecl1_syntax_namecase_general == "YES") name = toupper(name) ; linkhandler1_link_process_name = name } function linkhandler1_set_debug_emit_ctx_token(s) { linkhandler1_debug_emit_ctx_token = s validator2_set_debug_emit_ctx_token(s) } function linkhandler1_push_result(item, empty_array,x) { split("", empty_array) x = "" ; if (item != "#EMPTY") { if (!linkhandler1_result_document_element_emitted) { if (item != linkhandler1_result_document_type_name) { if (sgmldecl1_features_minimize_omittag != "YES") { platformerrorhandler1_fatalError(concat("result element ", item, ": link process must produce result document element as first result element when FEATURES MINIMIZE OMITTAG isn't enabled"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((linkhandler1_result_document_type_name, linkhandler1_result_document_type_name) in markupdefinitions1_element_start_tag_omittable)) { platformerrorhandler1_fatalError(concat("result element ", item, ": link process must produce result document element as first result element when result document element isn't omittable"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } linkhandler1_result_document_element_emitted = "1" } } stack9_push(item) } function linkhandler1_startDocument() { ; linkhandler1_last_element_was_expanded_conref = "" if (linkhandler1_result_document_type_name != "") validator2_startDocument() suppressdocumentelementfilter1_startDocument() } function linkhandler1_endDocument( empty_array) { split("", empty_array) ; if (linkhandler1_result_document_type_name != "" && !linkhandler1_result_document_element_emitted) { if (sgmldecl1_features_minimize_omittag != "YES") { platformerrorhandler1_fatalError(concat("link process ", linkhandler1_link_process_name, ": must produce result document element when FEATURES MINIMIZE OMITTAG isn't enabled"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((linkhandler1_result_document_type_name, linkhandler1_result_document_type_name) in markupdefinitions1_element_end_tag_omittable)) { platformerrorhandler1_fatalError(concat("link process ", linkhandler1_link_process_name, ": must produce result document element when result document element isn't omittable"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } linkhandler1_dispatch_start_element(linkhandler1_result_document_type_name, empty_array, "") ; linkhandler1_dispatch_start_element_to_validator(linkhandler1_result_document_type_name, empty_array, "") linkhandler1_dispatch_end_element(linkhandler1_result_document_type_name) linkhandler1_dispatch_end_element_to_validator(linkhandler1_result_document_type_name) } linkhandler1_last_element_was_expanded_conref = "" suppressdocumentelementfilter1_endDocument() if (linkhandler1_result_document_type_name != "") validator2_endDocument() } function linkhandler1_check_idlink_applicable(elmt, attrs_array) { ; if ((markupdefinitions1_link_process_source_doctype_specs[linkhandler1_link_process_name], elmt) in markupdefinitions1_element_id_attributes) { ; if (markupdefinitions1_element_id_attributes[markupdefinitions1_link_process_source_doctype_specs[linkhandler1_link_process_name], elmt] in attrs_array) { ; if (linkhandler1_link_process_name in markupdefinitions1_link_ids) { ; ; if (index(" " markupdefinitions1_link_ids[linkhandler1_link_process_name] " ", " " attrs_array[markupdefinitions1_element_id_attributes[markupdefinitions1_link_process_source_doctype_specs[linkhandler1_link_process_name], elmt]] " ")) { ; return 1 } } } } return 0 } function linkhandler1_handle_conref_data_entities(elmt, attrs_array, decl_attrs_array,conref_attr,context_exclusions_arr,j) { split("", decl_attrs_array) conref_attr = "" split("", context_exclusions_arr) if ((linkhandler1_document_type_name, elmt) in markupdefinitions1_element_attributes) { split(markupdefinitions1_element_attributes[linkhandler1_document_type_name, elmt], decl_attrs_array, / /) ; if ((linkhandler1_document_type_name, elmt) in markupdefinitions1_element_conref_attributes) { conref_attr = markupdefinitions1_element_conref_attributes[linkhandler1_document_type_name, elmt] ; ; ; if (conref_attr in attrs_array && attrs_array[conref_attr] in entitydefinitions1_general_entity_type && entitydefinitions1_general_entity_declaration_set_name[attrs_array[conref_attr]] == linkhandler1_link_process_name) { if (linkhandler1_result_document_type_name != "") { { platformerrorhandler1_fatalError("#CONREF entity preemption unsupported when external link process is active", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (!(linkhandler1_enable_lax_templates == "YES")) { ; if (docinfo3_exclusion_exceptions != "") { ; if (!((linkhandler1_document_type_name, elmt) in markupdefinitions1_element_exclusions)) { platformerrorhandler1_fatalError("exclusion exception(s) declared on element for template expansion less strict than applicable contextual exclusion", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } split(docinfo3_exclusion_exceptions, context_exclusions_arr, / /) for (j in context_exclusions_arr) if (--j + 1) { ; if (!(index(" " markupdefinitions1_element_exclusions[linkhandler1_document_type_name, elmt] " ", " " context_exclusions_arr[1+ j] " "))) { platformerrorhandler1_fatalError("exclusion exception(s) declared on element for template expansion less strict than applicable contextual exclusion", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } } suppressdocumentelementfilter1_startEntity(attrs_array[conref_attr], elmt) suppressdocumentelementfilter1_endEntity(attrs_array[conref_attr]) linkhandler1_last_element_was_expanded_conref = "1" return 1 } } } return 0 } function linkhandler1_populate_link_attributes(elmt, attrs_array, filter_attribute_mismatch,filter_attribute_match,a,j,decl_attrs_array) { filter_attribute_mismatch = "" filter_attribute_match = "" a = "" split("", decl_attrs_array) split("", linkhandler1_link_attrs_array) ; if (linkhandler1_effective_link_set_name != "#EMPTY") { if ((linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt) in markupdefinitions1_link_rules) { ; linkhandler1_num_link_rules = markupdefinitions1_link_rules[linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt] ; for (linkhandler1_link_rule_no = 1; linkhandler1_link_rule_no <= linkhandler1_num_link_rules; linkhandler1_link_rule_no++) { if (!((linkhandler1_link_process_name, elmt) in markupdefinitions1_element_attributes)) { ; filter_attribute_match = "1" break } filter_attribute_mismatch = "" split(markupdefinitions1_element_attributes[linkhandler1_link_process_name, elmt], decl_attrs_array, /[[:space:]]+/) for (j in decl_attrs_array) { ; ; if ((linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt, linkhandler1_link_rule_no, decl_attrs_array[j]) in markupdefinitions1_link_attributes) { linkhandler1_link_attrs_array[decl_attrs_array[j]] = markupdefinitions1_link_attributes[linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt, linkhandler1_link_rule_no, decl_attrs_array[j]] ; ; if ((markupdefinitions1_link_process_source_doctype_specs[linkhandler1_link_process_name], elmt, decl_attrs_array[j]) in markupdefinitions1_attribute_declared_values) { ; ; if (linkhandler1_link_attrs_array[decl_attrs_array[j]] == "" && (!(decl_attrs_array[j] in attrs_array))) { ; } else if ((!(decl_attrs_array[j] in attrs_array)) || attrs_array[decl_attrs_array[j]] != linkhandler1_link_attrs_array[decl_attrs_array[j]]) { ; filter_attribute_mismatch = "1" split("", linkhandler1_link_attrs_array) break } else { ; } } else { ; } } } if (filter_attribute_mismatch == "") { ; filter_attribute_match = "1" break } } if (filter_attribute_mismatch != "" && linkhandler1_effective_link_set_name != "#IDLINK") return 0 if (linkhandler1_forward_link_attributes) for (a in linkhandler1_link_attrs_array) { ; attrs_array[a] = linkhandler1_link_attrs_array[a] } } } ; if (filter_attribute_match == "" && linkhandler1_effective_link_set_name == "#IDLINK") { platformerrorhandler1_fatalError(concat("'", attrs_array[markupdefinitions1_element_id_attributes[markupdefinitions1_link_process_source_doctype_specs[linkhandler1_link_process_name], elmt]], "': ID on unexpected element or with unmatched filter attributes"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return 1 } function linkhandler1_promote_link_state(elmt) { if ((linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt, linkhandler1_link_rule_no) in markupdefinitions1_link_uselink_targets) { linkhandler1_current_link_set_name = markupdefinitions1_link_uselink_targets[linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt, linkhandler1_link_rule_no] ; } if ((linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt, linkhandler1_link_rule_no) in markupdefinitions1_link_postlink_targets) { ; stack8_pop() if (markupdefinitions1_link_postlink_targets[linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt, linkhandler1_link_rule_no] == "#RESTORE") if (stack7_len < 1) stack8_push("#INITIAL") else stack8_push(stack7_stack[stack7_len - 1]) else stack8_push(markupdefinitions1_link_postlink_targets[linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt, linkhandler1_link_rule_no]) ; } } function linkhandler1_populate_result_element_and_attributes(elmt, attrs_array, a,v,accepted) { a = "" v = "" accepted = "" ; if (!linkhandler1_effective_link_set_name) { platformerrorhandler1_fatalError("internal error: unknown link set name when populating result element and attributes", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (linkhandler1_link_rule_no > linkhandler1_num_link_rules) linkhandler1_link_rule_no = linkhandler1_num_link_rules ; if ((linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt, linkhandler1_link_rule_no) in markupdefinitions1_link_result_elements) { linkhandler1_result_element = markupdefinitions1_link_result_elements[linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt, linkhandler1_link_rule_no] ; if (linkhandler1_result_element == "#IMPLIED") { accepted = validator2_check_acceptance(elmt) if (accepted != "") { ; linkhandler1_result_element = elmt for (a in attrs_array) if (sgmldecl1_features_minimize_implydef_attlist == "YES") linkhandler1_result_attribute_arr[a] = attrs_array[a] else if ((linkhandler1_result_document_type_name, linkhandler1_result_element) in markupdefinitions1_element_attributes && index(" " markupdefinitions1_element_attributes[linkhandler1_result_document_type_name, linkhandler1_result_element] " ", " " a " ")) linkhandler1_result_attribute_arr[a] = attrs_array[a] linkhandler1_result_attribute_spec = sgmlutil_sgml_formatattrs(linkhandler1_result_attribute_arr) } else { ; linkhandler1_result_element = "" } } if ((linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt, linkhandler1_link_rule_no) in markupdefinitions1_link_result_attribute_specifications) { linkhandler1_result_attribute_spec = markupdefinitions1_link_result_attribute_specifications[linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt, linkhandler1_link_rule_no] ; } else { ; } if (linkhandler1_result_attribute_spec != "") { if (!sgmlutil_sgml_parseattrs(linkhandler1_result_attribute_spec, linkhandler1_result_attribute_arr)) { platformerrorhandler1_fatalError(concat("link process '", linkhandler1_link_process_name, "': link set '", linkhandler1_effective_link_set_name, "': '", linkhandler1_result_attribute_spec, "': error parsing result attributes"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_syntax_namecase_general == "YES") for (a in linkhandler1_result_attribute_arr) { v = linkhandler1_result_attribute_arr[a] delete linkhandler1_result_attribute_arr[a] linkhandler1_result_attribute_arr[toupper(a)] = v } attributechecker2_check_attribute_array(linkhandler1_result_document_type_name, linkhandler1_result_element, "", linkhandler1_result_attribute_arr, concat("link process ", linkhandler1_link_process_name, ": link set ", linkhandler1_effective_link_set_name, ": result attributes for element ", linkhandler1_result_element)) } } } function linkhandler1_check_and_process_template_notations(elmt, attrs_array, a,link_notation_decl_attrs_array,has_dafe_attributes_populated_from_link_rules,declared_as_data_attr_on_link_notation,i) { a = "" split("", link_notation_decl_attrs_array) split("", linkhandler1_dafe_attrs_array) ; for (a in linkhandler1_link_attrs_array) { ; if ((linkhandler1_link_process_name, elmt, a) in markupdefinitions1_attribute_declared_values && (markupdefinitions1_attribute_declared_values[linkhandler1_link_process_name, elmt, a] ~ /^NOTATION/)) { ; if (linkhandler1_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("linktype-declared notation within notational content of linktype-declared notation", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } linkhandler1_in_linktype_declared_notational_content = 1 if (linkhandler1_result_document_type_name != "") { if (linkhandler1_result_element != "") linkhandler1_notation_element = linkhandler1_result_element } else linkhandler1_notation_element = elmt linkhandler1_notation_name = linkhandler1_link_attrs_array[a] } else { ; linkhandler1_dafe_attrs_array[a] = linkhandler1_link_attrs_array[a] has_dafe_attributes_populated_from_link_rules = 1 } } if (linkhandler1_in_linktype_declared_notational_content == 1 && has_dafe_attributes_populated_from_link_rules == 1) { if ("NotNames" in linkhandler1_link_attrs_array) linkhandler1_dafe_content_pull_receiver_attribute = linkhandler1_link_attrs_array["NotNames"] else if ("NOTNAMES" in linkhandler1_link_attrs_array) linkhandler1_dafe_content_pull_receiver_attribute = linkhandler1_link_attrs_array["NOTNAMES"] ; if (linkhandler1_dafe_content_pull_receiver_attribute != "") { if (!match(linkhandler1_dafe_content_pull_receiver_attribute, /[[:space:]]+#CONTENT[[:space:]]*$/)) { platformerrorhandler1_fatalError(concat("'", linkhandler1_dafe_content_pull_receiver_attribute, "': invalid value for NotNames attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } linkhandler1_dafe_content_pull_receiver_attribute = substr(linkhandler1_dafe_content_pull_receiver_attribute, 1, RSTART - 1) sub(/^[[:space:]]+/, "", linkhandler1_dafe_content_pull_receiver_attribute) if (sgmldecl1_syntax_namecase_general == "YES") linkhandler1_dafe_content_pull_receiver_attribute = toupper(linkhandler1_dafe_content_pull_receiver_attribute) if (!((linkhandler1_link_process_name, elmt) in markupdefinitions1_element_attributes) || !index(" " markupdefinitions1_element_attributes[linkhandler1_link_process_name, elmt] " ", " " linkhandler1_dafe_content_pull_receiver_attribute " ")) { platformerrorhandler1_fatalError(concat("'", linkhandler1_dafe_content_pull_receiver_attribute, "': receiver attribute for content specified in NotNames not a link attribute of element ", elmt), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((linkhandler1_link_process_name, linkhandler1_notation_name) in markupdefinitions1_data_attributes) || !index(" " markupdefinitions1_data_attributes[linkhandler1_link_process_name, linkhandler1_notation_name] " ", " " linkhandler1_dafe_content_pull_receiver_attribute " ")) { platformerrorhandler1_fatalError(concat("'", linkhandler1_dafe_content_pull_receiver_attribute, "': receiver attribute for content specified in NotNames not a data attribute of notation ", linkhandler1_notation_name), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; } } if (linkhandler1_in_linktype_declared_notational_content == 1) { if ((linkhandler1_link_process_name, linkhandler1_notation_name) in markupdefinitions1_data_attributes) split(markupdefinitions1_data_attributes[linkhandler1_link_process_name, linkhandler1_notation_name], link_notation_decl_attrs_array, / /) for (i in link_notation_decl_attrs_array) { ; if ((sgmldecl1_syntax_namecase_general == "YES" && link_notation_decl_attrs_array[i] == "SUPERDCN") || link_notation_decl_attrs_array[i] == "superdcn") continue if (link_notation_decl_attrs_array[i] in attrs_array) { ; if (!(link_notation_decl_attrs_array[i] in linkhandler1_dafe_attrs_array)) { ; linkhandler1_dafe_attrs_array[link_notation_decl_attrs_array[i]] = attrs_array[link_notation_decl_attrs_array[i]] } } else if (link_notation_decl_attrs_array[i] in linkhandler1_dafe_attrs_array) { ; continue } else { ; if ((linkhandler1_link_process_name, linkhandler1_notation_name, link_notation_decl_attrs_array[i]) in markupdefinitions1_data_attribute_default_values) { linkhandler1_dafe_attrs_array[link_notation_decl_attrs_array[i]] = markupdefinitions1_data_attribute_default_values[linkhandler1_link_process_name, linkhandler1_notation_name, link_notation_decl_attrs_array[i]] ; } } } if (linkhandler1_notation_name) { if (has_dafe_attributes_populated_from_link_rules) { for (a in linkhandler1_dafe_attrs_array) { ; declared_as_data_attr_on_link_notation = 0 for (i in link_notation_decl_attrs_array) if (link_notation_decl_attrs_array[i] == a) { declared_as_data_attr_on_link_notation = 1 break } if (!declared_as_data_attr_on_link_notation) { ; delete linkhandler1_dafe_attrs_array[a] } } } } return 1 } return 0 } function linkhandler1_startElement(elmt, attrs_array, attrs, decl_attrs_array,a,num_link_attrs,attrs_portion) { split("", decl_attrs_array) a = "" attrs_portion = "" ; ; if (linkhandler1_link_process_name && !(linkhandler1_link_process_name in markupdefinitions1_link_process_source_doctype_specs)) { { platformerrorhandler1_warning(concat("'", linkhandler1_link_process_name, "': undeclared link process name"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } linkhandler1_link_process_name = "" } if (linkhandler1_in_linktype_declared_notational_content != 0) { ; linkhandler1_in_linktype_declared_notational_content++ ; if (linkhandler1_in_cdata_or_rcdata_marked_section_within_notational_content == 0) { if (linkhandler1_dafe_content_pull_receiver_attribute == "") { attrs_portion = sgmlutil_sgml_formatattrs(attrs_array) if (attrs_portion != "") linkhandler1_notational_content = concat(linkhandler1_notational_content, "<", elmt, " ", attrs_portion, ">") else linkhandler1_notational_content = concat(linkhandler1_notational_content, "<", elmt, ">") } if ((linkhandler1_document_type_name, elmt) in markupdefinitions1_element_conref_attributes && markupdefinitions1_element_conref_attributes[linkhandler1_document_type_name, elmt] in attrs_array) { ; linkhandler1_in_content_reference_element_within_notational_content = 1 } else { linkhandler1_in_content_reference_element_within_notational_content = 0 } } else { ; } return } if (linkhandler1_link_process_name) { ; stack7_push(linkhandler1_current_link_set_name) stack8_push(linkhandler1_current_link_set_name) if (linkhandler1_handle_conref_data_entities(elmt, attrs_array)) return linkhandler1_effective_link_set_name = linkhandler1_current_link_set_name if (linkhandler1_check_idlink_applicable(elmt, attrs_array)) linkhandler1_effective_link_set_name = "#IDLINK" if (linkhandler1_result_document_type_name != "") { linkhandler1_result_element = "" linkhandler1_result_attribute_spec = "" split("", linkhandler1_result_attribute_arr) } if (linkhandler1_populate_link_attributes(elmt, attrs_array)) { linkhandler1_promote_link_state(elmt) if (linkhandler1_result_document_type_name != "") linkhandler1_populate_result_element_and_attributes(elmt, attrs_array) num_link_attrs = 0 for (a in linkhandler1_link_attrs_array) { num_link_attrs++ ; } if (linkhandler1_check_and_process_template_notations(elmt, attrs_array)) return } } if (linkhandler1_result_document_type_name != "") { if (linkhandler1_result_element != "") { ; linkhandler1_push_result(linkhandler1_result_element) ; linkhandler1_dispatch_start_element_to_validator(linkhandler1_result_element, linkhandler1_result_attribute_arr, linkhandler1_result_attribute_spec) docinfo2_content_reference = "" ; stack10_push(linkhandler1_result_element) if (linkhandler1_error_context_info_enabled) stack11_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": produced")) linkhandler1_dispatch_start_element(linkhandler1_result_element, linkhandler1_result_attribute_arr, linkhandler1_result_attribute_spec) linkhandler1_emit_implied_elements() } else { ; linkhandler1_push_result("#EMPTY") } } else { linkhandler1_dispatch_start_element(elmt, attrs_array, attrs) } } function linkhandler1_emit_implied_elements( result_element,result_attribute_spec,result_attribute_arr,link_set_name,chained_e_transition_link_sets) { result_element = "" result_attribute_spec = "" split("", result_attribute_arr) link_set_name = "" chained_e_transition_link_sets = "" ; while ((linkhandler1_link_process_name, linkhandler1_current_link_set_name) in markupdefinitions1_link_elements && markupdefinitions1_link_elements[linkhandler1_link_process_name, linkhandler1_current_link_set_name] == "#IMPLIED") { if (!((linkhandler1_link_process_name, linkhandler1_current_link_set_name, "#IMPLIED", 1) in markupdefinitions1_link_result_elements)) { platformerrorhandler1_fatalError(concat("internal error: link set '", linkhandler1_current_link_set_name, "' used in e-transition lacks result element"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } result_element = markupdefinitions1_link_result_elements[linkhandler1_link_process_name, linkhandler1_current_link_set_name, "#IMPLIED", 1] if ((linkhandler1_link_process_name, linkhandler1_current_link_set_name, "#IMPLIED", 1) in markupdefinitions1_link_result_attribute_specifications) { result_attribute_spec = markupdefinitions1_link_result_attribute_specifications[linkhandler1_link_process_name, linkhandler1_current_link_set_name, "#IMPLIED", 1] if (!sgmlutil_sgml_parseattrs(result_attribute_spec, result_attribute_arr)) { platformerrorhandler1_fatalError(concat("'", result_attribute_spec, "': error parsing result attributes"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else result_attribute_spec = "" ; ; stack7_push(linkhandler1_current_link_set_name) stack8_push(linkhandler1_current_link_set_name) link_set_name = linkhandler1_current_link_set_name if ((linkhandler1_link_process_name, linkhandler1_current_link_set_name, "#IMPLIED", 1) in markupdefinitions1_link_uselink_targets) { linkhandler1_current_link_set_name = markupdefinitions1_link_uselink_targets[linkhandler1_link_process_name, linkhandler1_current_link_set_name, "#IMPLIED", 1] if (index(" " chained_e_transition_link_sets " ", " " linkhandler1_current_link_set_name " ")) { platformerrorhandler1_fatalError(concat("cycle formed by #USELINK target starting from link set '", linkhandler1_current_link_set_name, "'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } chained_e_transition_link_sets = concat(chained_e_transition_link_sets, ((chained_e_transition_link_sets && linkhandler1_current_link_set_name)? " " : ""), linkhandler1_current_link_set_name) ; } else { { platformerrorhandler1_fatalError(concat("link set '", linkhandler1_current_link_set_name, "' used in e-transition lacks #USELINK target"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; stack9_push("#IMPLIED") ; linkhandler1_dispatch_start_element_to_validator(result_element, result_attribute_arr, result_attribute_spec) docinfo2_content_reference = "" ; stack10_push(result_element) if (linkhandler1_error_context_info_enabled) stack11_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": produced")) attributechecker2_check_attribute_array(linkhandler1_result_document_type_name, result_element, "", result_attribute_arr, concat("link process ", linkhandler1_link_process_name, ": link set ", link_set_name, ": result attributes for element ", result_element)) linkhandler1_dispatch_start_element(result_element, result_attribute_arr, result_attribute_spec) } } function linkhandler1_close_implied_elements( popped_item,popped_element) { popped_item = "" popped_element = "" for (;;) { popped_item = stack9_stack[stack9_len] if (popped_item == "#IMPLIED") { stack9_pop() ; popped_element = stack10_stack[stack10_len] ; linkhandler1_dispatch_end_element_to_validator(popped_element) if (docinfo2_content_reference) docinfo2_content_reference = "" ; stack10_pop() if (linkhandler1_error_context_info_enabled) stack11_pop() ; linkhandler1_dispatch_end_element(popped_element) linkhandler1_current_link_set_name = stack8_stack[stack8_len] stack8_pop() stack7_pop() ; } else break } } function linkhandler1_materialize_current_link_set_declarations( link_set_name,link_set_arr,link_element_arr,link_attributes_arr,num_link_sets,num_mapped_elements,i,j,k,l,a,link_rules,idlink_id_portion,uselink_target,postlink_target,link_rule_attributes) { link_set_name = "" split("", link_set_arr) split("", link_element_arr) split("", link_attributes_arr) a = "" link_rules = "" idlink_id_portion = "" uselink_target = "" postlink_target = "" link_rule_attributes = "" ; if (markupdefinitions1_link_process_source_doctype_specs[linkhandler1_link_process_name] == "#SIMPLE") return docinfo1_effective_link_processing_declarations[linkhandler1_link_process_name] = docinfo1_effective_link_attribute_declarations[linkhandler1_link_process_name] ; num_link_sets = split(markupdefinitions1_link_sets[linkhandler1_link_process_name], link_set_arr, /[[:space:]]+/) if (num_link_sets == 0) { platformerrorhandler1_fatalError(concat("internal error: link process ", linkhandler1_link_process_name, ": no link sets declared"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; for (i = 0; i < num_link_sets; i++) { ; if (!((linkhandler1_link_process_name, link_set_arr[1+ i]) in markupdefinitions1_link_elements)) { platformerrorhandler1_fatalError(concat("internal_error: link process ", linkhandler1_link_process_name, ": link set ", link_set_arr[1+ i], ": no source elements declared"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; if (link_set_arr[1+ i] == "#INITIAL" && linkhandler1_current_link_set_name != "#INITIAL" && num_link_sets > 1) continue num_mapped_elements = split(markupdefinitions1_link_elements[linkhandler1_link_process_name, link_set_arr[1+ i]], link_element_arr, /[[:space:]]+/) ; link_rules = "" for (j = 0; j < num_mapped_elements; j++) { if (!((linkhandler1_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j]) in markupdefinitions1_link_rules)) { platformerrorhandler1_fatalError(concat("internal_error: link process ", linkhandler1_link_process_name, ": link element ", link_element_arr[1+ j], ": no link rules declared"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; for (k = 1; k <= markupdefinitions1_link_rules[linkhandler1_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j]]; k++) { ; if ((linkhandler1_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k) in markupdefinitions1_link_uselink_targets) uselink_target = markupdefinitions1_link_uselink_targets[linkhandler1_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k] else uselink_target = "" if ((linkhandler1_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k) in markupdefinitions1_link_postlink_targets) postlink_target = markupdefinitions1_link_postlink_targets[linkhandler1_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k] else postlink_target = "" if (!((linkhandler1_link_process_name, link_element_arr[1+ j]) in markupdefinitions1_element_attributes)) split("", link_attributes_arr) else split(markupdefinitions1_element_attributes[linkhandler1_link_process_name, link_element_arr[1+ j]], link_attributes_arr, /[[:space:]]+/) link_rule_attributes = "" for (l in link_attributes_arr) { ; if (link_set_arr[1+ i] == "#IDLINK") { if (linkhandler1_link_process_name in markupdefinitions1_link_process_source_doctype_specs && (markupdefinitions1_link_process_source_doctype_specs[linkhandler1_link_process_name], link_element_arr[1+ j], link_attributes_arr[l]) in markupdefinitions1_attribute_declared_values && markupdefinitions1_attribute_declared_values[markupdefinitions1_link_process_source_doctype_specs[linkhandler1_link_process_name], link_element_arr[1+ j], link_attributes_arr[l]] == "ID") idlink_id_portion = (markupdefinitions1_link_attributes[linkhandler1_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k, link_attributes_arr[l]] " ") continue } if ((linkhandler1_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k, link_attributes_arr[l]) in markupdefinitions1_link_attributes) { link_rule_attributes = concat(link_rule_attributes, " ", link_attributes_arr[l], "=\"", markupdefinitions1_link_attributes[linkhandler1_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k, link_attributes_arr[l]], "\"") } } if (uselink_target) if (postlink_target) link_rules = concat(link_rules, " ", idlink_id_portion, link_element_arr[1+ j], " #USELINK ", uselink_target, " #POSTLINK ", postlink_target, " [", link_rule_attributes, "]") else link_rules = concat(link_rules, " ", idlink_id_portion, link_element_arr[1+ j], " #USELINK ", uselink_target, " [", link_rule_attributes, "]") else if (postlink_target) link_rules = concat(link_rules, " ", idlink_id_portion, link_element_arr[1+ j], " #POSTLINK ", postlink_target, " [", link_rule_attributes, "]") else link_rules = concat(link_rules, " ", idlink_id_portion, link_element_arr[1+ j], " [", link_rule_attributes, "]") } } if (link_set_arr[1+ i] == "#IDLINK") { docinfo1_effective_link_processing_declarations[linkhandler1_link_process_name] = concat(docinfo1_effective_link_processing_declarations[linkhandler1_link_process_name], "") } else { if (link_set_arr[1+ i] == linkhandler1_current_link_set_name) docinfo1_effective_link_processing_declarations[linkhandler1_link_process_name] = concat(docinfo1_effective_link_processing_declarations[linkhandler1_link_process_name], "") if (link_set_arr[1+ i] != "#INITIAL") docinfo1_effective_link_processing_declarations[linkhandler1_link_process_name] = concat(docinfo1_effective_link_processing_declarations[linkhandler1_link_process_name], "") } } ; ; } function linkhandler1_endElement(elmt, popped_element,popped_item) { popped_element = "" popped_item = "" ; ; if (linkhandler1_in_linktype_declared_notational_content <= 1) { linkhandler1_current_link_set_name = stack8_stack[stack8_len] stack8_pop() stack7_pop() ; } if (linkhandler1_last_element_was_expanded_conref) { linkhandler1_last_element_was_expanded_conref = "" return } if (linkhandler1_in_linktype_declared_notational_content != 0) { if (--linkhandler1_in_linktype_declared_notational_content == 0) { if (linkhandler1_notation_element != "") linkhandler1_dispatch_fake_start_and_end_element_to_validator(linkhandler1_notation_element) if (linkhandler1_notation_element != "") suppressdocumentelementfilter1_startDTD(linkhandler1_link_process_name, "", "", "") if (linkhandler1_dafe_content_pull_receiver_attribute != "") { linkhandler1_dafe_attrs_array[linkhandler1_dafe_content_pull_receiver_attribute] = linkhandler1_notational_content ; linkhandler1_notational_content = "" } attributechecker2_check_attribute_array(linkhandler1_link_process_name, "", linkhandler1_notation_name, linkhandler1_dafe_attrs_array, concat("link process ", linkhandler1_link_process_name, ": notation ", linkhandler1_notation_name, ": data attributes")) if (sgmldecl1_syntax_namecase_general == "YES") delete linkhandler1_dafe_attrs_array["SUPERDCN"] else delete linkhandler1_dafe_attrs_array["superdcn"] if (linkhandler1_notation_element != "") { suppressdocumentelementfilter1_unparsedEntityDecl("SGML01", "", ("" linkhandler1_notational_content), linkhandler1_notation_name, sgmlutil_sgml_formatattrs(linkhandler1_dafe_attrs_array)) suppressdocumentelementfilter1_startEntity("SGML01", linkhandler1_notation_element) suppressdocumentelementfilter1_endEntity("SGML01") suppressdocumentelementfilter1_endDTD() } linkhandler1_notation_name = "" linkhandler1_notation_element = "" linkhandler1_notational_content = "" split("", linkhandler1_dafe_attrs_array) linkhandler1_dafe_content_pull_receiver_attribute = "" } else if (sgmldecl1_features_minimize_emptynrm == "NO" && (linkhandler1_result_document_type_name, elmt) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[linkhandler1_result_document_type_name, elmt] == "EMPTY") { } else if (linkhandler1_in_content_reference_element_within_notational_content && sgmldecl1_features_minimize_emptynrm == "NO") { ; linkhandler1_in_content_reference_element_within_notational_content = 0 } else { ; if (linkhandler1_dafe_content_pull_receiver_attribute == "") linkhandler1_notational_content = concat(linkhandler1_notational_content, "") } linkhandler1_in_content_reference_element_within_notational_content = 0 return } if (linkhandler1_result_document_type_name != "") { linkhandler1_close_implied_elements() popped_item = stack9_stack[stack9_len] ; stack9_pop() if (popped_item != "#EMPTY") { if (sgmldecl1_features_minimize_emptynrm == "NO" && (linkhandler1_result_document_type_name, popped_item) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[linkhandler1_result_document_type_name, popped_item] == "EMPTY") { ; } else { ; linkhandler1_dispatch_end_element_to_validator(popped_item) } docinfo2_content_reference = "" ; stack10_pop() if (linkhandler1_error_context_info_enabled) stack11_pop() linkhandler1_dispatch_end_element(popped_item) } } else { linkhandler1_dispatch_end_element(elmt) } } function linkhandler1_characters(text, accepted) { accepted = "" ; if (linkhandler1_in_linktype_declared_notational_content != 0) if (linkhandler1_in_cdata_or_rcdata_marked_section_within_notational_content != 0) return else linkhandler1_notational_content = (linkhandler1_notational_content text) else if (linkhandler1_result_document_type_name != "" && linkhandler1_current_link_set_name == "#EMPTY") { ; if (linkhandler1_debug_emit_ctx_token != "") console_info(concat("")) } else if (linkhandler1_result_document_type_name != "") { if (!(text ~ /^[[:space:]]*$/)) { accepted = validator2_check_acceptance("#PCDATA") if (accepted != "") { ; linkhandler1_dispatch_characters_to_validator(text) if (docinfo2_content_reference) docinfo2_content_reference = "" linkhandler1_dispatch_characters(text) } else { ; if (linkhandler1_debug_emit_ctx_token != "") console_info(concat("")) } } else { ; if (docinfo2_content_reference) docinfo2_content_reference = "" linkhandler1_dispatch_characters(text) } } else linkhandler1_dispatch_characters(text) } function linkhandler1_processingInstruction(name, text) { ; if (linkhandler1_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("processing instruction in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } suppressdocumentelementfilter1_processingInstruction(name, text) } function linkhandler1_comment(text) { ; if (linkhandler1_in_linktype_declared_notational_content == 0) suppressdocumentelementfilter1_comment(text) } function linkhandler1_startDTD(name, publicid, systemid, text) { ; if (!linkhandler1_document_type_name) linkhandler1_document_type_name = name if (linkhandler1_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("internal error: start_dtd event in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } dataentitytracker2_startDTD(name, publicid, systemid, text) if (linkhandler1_link_process_name != "") { if (linkhandler1_link_process_name in markupdefinitions1_link_process_result_doctype_specs && markupdefinitions1_link_process_result_doctype_specs[linkhandler1_link_process_name] != "#IMPLIED") linkhandler1_result_document_type_name = markupdefinitions1_link_process_result_doctype_specs[linkhandler1_link_process_name] ; } if (linkhandler1_result_document_type_name != "") { ; if (linkhandler1_result_document_type_received == "") if (name == linkhandler1_result_document_type_name) linkhandler1_result_document_type_received = "1" if (linkhandler1_result_document_type_received == "") return validator2_startDTD(name, publicid, systemid, text) } suppressdocumentelementfilter1_startDTD(name, publicid, systemid, text) } function linkhandler1_endDTD() { ; if (linkhandler1_result_document_type_name != "" && linkhandler1_result_document_type_received == "") return dataentitytracker2_endDTD() if (linkhandler1_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("internal error: end_dtd event in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (linkhandler1_result_document_type_name != "") validator2_endDTD() suppressdocumentelementfilter1_endDTD() } function linkhandler1_startEntity(name, elmt, empty_map,i) { split("", empty_map) ; if (linkhandler1_link_process_name) { if (name in dataentitytracker2_data_entity_names_to_materialize) { if (name in dataentitytracker2_data_entity_notation_public_identifiers && dataentitytracker2_data_entity_notation_public_identifiers[name] == "ISO 8879:1986//NOTATION Standard Generalized Markup Language (SGML)//EN") { linkhandler1_result_element = "" if (!elmt) { platformerrorhandler1_fatalError("internal error: unhandled data entity", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (linkhandler1_result_document_type_name != "") { platformerrorhandler1_fatalError("internal error: unhandled data entity in an implicit link process", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } stack7_push(linkhandler1_current_link_set_name) stack8_push(linkhandler1_current_link_set_name) ; linkhandler1_effective_link_set_name = linkhandler1_current_link_set_name linkhandler1_populate_link_attributes(elmt, empty_map) if ((linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt) in markupdefinitions1_link_rules && markupdefinitions1_link_rules[linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt] > 1) { for (i = 1; i <= markupdefinitions1_link_rules[linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt]; i++) if ((linkhandler1_link_process_name, linkhandler1_effective_link_set_name, elmt, i) in markupdefinitions1_link_postlink_targets) { platformerrorhandler1_fatalError(concat("element ", elmt, ": applying template on element when matched by more than a single link rule with POSTLINK target in subsequent link process"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (linkhandler1_link_process_name in markupdefinitions1_link_idlink_elements && index(" " markupdefinitions1_link_idlink_elements[linkhandler1_link_process_name] " ", " " elmt " ")) for (i = 1; i <= markupdefinitions1_link_rules[linkhandler1_link_process_name, "#IDLINK", elmt]; i++) if ((linkhandler1_link_process_name, "#IDLINK", elmt, i) in markupdefinitions1_link_postlink_targets) { platformerrorhandler1_fatalError(concat("element ", elmt, ": applying template on element when matched by an IDLINK link rule with POSTLINK target in subsequent link process"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } linkhandler1_promote_link_state(elmt) ; linkhandler1_current_link_set_name = linkhandler1_effective_link_set_name linkhandler1_dispatch_fake_start_and_end_element_to_validator(linkhandler1_result_element) ; linkhandler1_materialize_current_link_set_declarations() linkhandler1_result_document_element_emitted = "1" } } } if (linkhandler1_result_document_type_name != "" && linkhandler1_result_document_type_received == "") return if (linkhandler1_link_process_name && entitydefinitions1_general_entity_declaration_set_name[name] == linkhandler1_link_process_name) { platformerrorhandler1_fatalError(concat("'", name, "': can't serialize data entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (linkhandler1_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("data entity reference in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } suppressdocumentelementfilter1_startEntity(name, elmt) } function linkhandler1_endEntity(name) { ; if (linkhandler1_result_document_type_name != "" && linkhandler1_result_document_type_received == "") return if (name in dataentitytracker2_data_entity_notation_public_identifiers && dataentitytracker2_data_entity_notation_public_identifiers[name] == "ISO 8879:1986//NOTATION Standard Generalized Markup Language (SGML)//EN") { linkhandler1_current_link_set_name = stack8_stack[stack8_len] stack8_pop() stack7_pop() } if (linkhandler1_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("end of a data entity reference in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } suppressdocumentelementfilter1_endEntity(name) } function linkhandler1_startCDATA(text) { ; if (linkhandler1_in_linktype_declared_notational_content != 0) { sub(/^$/, "", text) linkhandler1_notational_content = (linkhandler1_notational_content text) linkhandler1_in_cdata_or_rcdata_marked_section_within_notational_content = 1 } else suppressdocumentelementfilter1_startCDATA(text) } function linkhandler1_endCDATA() { ; if (linkhandler1_in_linktype_declared_notational_content != 0) linkhandler1_in_cdata_or_rcdata_marked_section_within_notational_content = 0 else suppressdocumentelementfilter1_endCDATA() } function linkhandler1_startRCDATA(text) { ; if (linkhandler1_in_linktype_declared_notational_content != 0) { sub(/^$/, "", text) linkhandler1_notational_content = (linkhandler1_notational_content text) linkhandler1_in_cdata_or_rcdata_marked_section_within_notational_content = 1 } else suppressdocumentelementfilter1_startRCDATA(text) } function linkhandler1_endRCDATA() { ; if (linkhandler1_in_linktype_declared_notational_content != 0) linkhandler1_in_cdata_or_rcdata_marked_section_within_notational_content = 0 else suppressdocumentelementfilter1_endRCDATA() } function linkhandler1_startINCLUDE(text) { ; if (linkhandler1_in_linktype_declared_notational_content != 0) return else suppressdocumentelementfilter1_startINCLUDE(text) } function linkhandler1_endINCLUDE() { ; if (linkhandler1_in_linktype_declared_notational_content != 0) return else suppressdocumentelementfilter1_endINCLUDE() } function linkhandler1_startIGNORE(text) { ; if (linkhandler1_in_linktype_declared_notational_content != 0) return else suppressdocumentelementfilter1_startIGNORE(text) } function linkhandler1_endIGNORE() { ; if (linkhandler1_in_linktype_declared_notational_content != 0) return else suppressdocumentelementfilter1_endIGNORE() } function linkhandler1_start_temp(text) { ; if (linkhandler1_in_linktype_declared_notational_content != 0) return else suppressdocumentelementfilter1_start_temp(text) } function linkhandler1_end_temp() { ; if (linkhandler1_in_linktype_declared_notational_content != 0) return else suppressdocumentelementfilter1_end_temp() } function linkhandler1_notationDecl(name, pubid, sysid) { if (linkhandler1_result_document_type_name != "" && linkhandler1_result_document_type_received == "") return if (linkhandler1_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("internal error: notation decl in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } dataentitytracker2_notationDecl(name, pubid, sysid) suppressdocumentelementfilter1_notationDecl(name, pubid, sysid) } function linkhandler1_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) { if (linkhandler1_result_document_type_name != "" && linkhandler1_result_document_type_received == "") return if (linkhandler1_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("internal error: unparsed entity decl in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } dataentitytracker2_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) suppressdocumentelementfilter1_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) } function linkhandler1_dispatch_start_element(name, atts, attrs) { if (linkhandler1_link_process_name) { if (linkhandler1_effective_link_set_name) if (linkhandler1_debug_emit_ctx_token != "") console_info(concat("")) else if (linkhandler1_debug_emit_ctx_token != "") console_info(concat("")) } suppressdocumentelementfilter1_startElement(name, atts, attrs) } function linkhandler1_dispatch_end_element(name) { if (linkhandler1_link_process_name) { if (linkhandler1_debug_emit_ctx_token != "") console_info(concat("")) } suppressdocumentelementfilter1_endElement(name) } function linkhandler1_dispatch_characters(text) { if (linkhandler1_link_process_name) { if (linkhandler1_effective_link_set_name) if (linkhandler1_debug_emit_ctx_token != "") console_info(concat("")) else if (linkhandler1_debug_emit_ctx_token != "") console_info(concat("")) } suppressdocumentelementfilter1_characters(text) } function linkhandler1_dispatch_start_cdata(text) { suppressdocumentelementfilter1_startCDATA(text) } function linkhandler1_dispatch_end_cdata() { suppressdocumentelementfilter1_endCDATA() } function linkhandler1_dispatch_start_rcdata(text) { suppressdocumentelementfilter1_startRCDATA(text) } function linkhandler1_dispatch_end_rcdata() { suppressdocumentelementfilter1_endRCDATA() } function linkhandler1_dispatch_start_element_to_validator(name, atts, attrs) { if (linkhandler1_debug_emit_ctx_token != "") console_info(concat("")) validator2_startElement(name, atts, attrs) } function linkhandler1_dispatch_end_element_to_validator(name) { if (linkhandler1_debug_emit_ctx_token != "") console_info(concat("")) validator2_endElement(name) } function linkhandler1_dispatch_characters_to_validator(text) { if (linkhandler1_debug_emit_ctx_token != "") console_info(concat("")) validator2_characters(text) } function linkhandler1_dispatch_fake_start_and_end_element_to_validator(name, empty_array) { split("", empty_array) if (linkhandler1_result_document_type_name != "") { ; linkhandler1_dispatch_start_element_to_validator(name, empty_array, "") ; stack10_push(name) if (linkhandler1_error_context_info_enabled) stack11_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": produced")) docinfo2_content_reference = "x" if (sgmldecl1_features_minimize_emptynrm == "YES") { ; linkhandler1_dispatch_end_element_to_validator(name) docinfo2_content_reference = "" } else { ; } linkhandler1_result_document_element_emitted = "1" ; stack10_pop() docinfo2_content_reference = "" if (linkhandler1_error_context_info_enabled) stack11_pop() } } BEGIN { linkhandler2_link_process_name = "" linkhandler2_document_type_name = "" linkhandler2_result_document_type_name = "" linkhandler2_result_document_type_received = "" linkhandler2_enable_lax_templates = "" linkhandler2_last_element_was_expanded_conref = "" linkhandler2_in_linktype_declared_notational_content = 0 linkhandler2_notational_content = "" linkhandler2_in_cdata_or_rcdata_marked_section_within_notational_content = 0 linkhandler2_in_content_reference_element_within_notational_content = 0 linkhandler2_notation_name = "" linkhandler2_notation_element = "" split("", linkhandler2_dafe_attrs_array) linkhandler2_dafe_content_pull_receiver_attribute = "" linkhandler2_forward_link_attributes = "" linkhandler2_current_link_set_name = "#INITIAL" linkhandler2_result_document_element_emitted = "" linkhandler2_debug_emit_ctx_token = "" linkhandler2_error_context_info_enabled = "" linkhandler2_num_link_rules = 0 linkhandler2_link_rule_no = 0 linkhandler2_effective_link_set_name = "" split("", linkhandler2_link_attrs_array) linkhandler2_source_element = "" linkhandler2_result_element = "" linkhandler2_result_attribute_spec = "" split("", linkhandler2_result_attribute_arr) } function linkhandler2_reset() { linkhandler2_link_process_name = "" linkhandler2_document_type_name = "" linkhandler2_result_document_type_name = "" linkhandler2_result_document_type_received = "" linkhandler2_last_element_was_expanded_conref = "" linkhandler2_in_linktype_declared_notational_content = 0 linkhandler2_notational_content = "" linkhandler2_in_cdata_or_rcdata_marked_section_within_notational_content = 0 linkhandler2_in_content_reference_element_within_notational_content = 0 linkhandler2_dafe_content_pull_receiver_attribute = "" linkhandler2_notation_name = "" linkhandler2_notation_element = "" split("", linkhandler2_dafe_attrs_array) linkhandler2_result_document_element_emitted = "0" stack14_clear() stack15_clear() if (linkhandler2_error_context_info_enabled) stack16_clear() dataentitytracker3_reset() } function linkhandler2_configure(args) { if (args["enable_lax_templates"]) linkhandler2_enable_lax_templates = args["enable_lax_templates"] if (args["forward_link_attributes"]) linkhandler2_forward_link_attributes = args["forward_link_attributes"] if ("sax_error_context_info_collection" in args) { validator3_enable_error_context_info("YES") linkhandler2_error_context_info_enabled = args["sax_error_context_info_collection"] } } function linkhandler2_set_link_process_name(name) { ; ; if (sgmldecl1_syntax_namecase_general == "YES") name = toupper(name) ; linkhandler2_link_process_name = name } function linkhandler2_set_debug_emit_ctx_token(s) { linkhandler2_debug_emit_ctx_token = s validator3_set_debug_emit_ctx_token(s) } function linkhandler2_push_result(item, empty_array,x) { split("", empty_array) x = "" ; if (item != "#EMPTY") { if (!linkhandler2_result_document_element_emitted) { if (item != linkhandler2_result_document_type_name) { if (sgmldecl1_features_minimize_omittag != "YES") { platformerrorhandler1_fatalError(concat("result element ", item, ": link process must produce result document element as first result element when FEATURES MINIMIZE OMITTAG isn't enabled"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((linkhandler2_result_document_type_name, linkhandler2_result_document_type_name) in markupdefinitions1_element_start_tag_omittable)) { platformerrorhandler1_fatalError(concat("result element ", item, ": link process must produce result document element as first result element when result document element isn't omittable"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } linkhandler2_result_document_element_emitted = "1" } } stack14_push(item) } function linkhandler2_startDocument() { ; linkhandler2_last_element_was_expanded_conref = "" if (linkhandler2_result_document_type_name != "") validator3_startDocument() linkhandler1_startDocument() } function linkhandler2_endDocument( empty_array) { split("", empty_array) ; if (linkhandler2_result_document_type_name != "" && !linkhandler2_result_document_element_emitted) { if (sgmldecl1_features_minimize_omittag != "YES") { platformerrorhandler1_fatalError(concat("link process ", linkhandler2_link_process_name, ": must produce result document element when FEATURES MINIMIZE OMITTAG isn't enabled"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((linkhandler2_result_document_type_name, linkhandler2_result_document_type_name) in markupdefinitions1_element_end_tag_omittable)) { platformerrorhandler1_fatalError(concat("link process ", linkhandler2_link_process_name, ": must produce result document element when result document element isn't omittable"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } linkhandler2_dispatch_start_element(linkhandler2_result_document_type_name, empty_array, "") ; linkhandler2_dispatch_start_element_to_validator(linkhandler2_result_document_type_name, empty_array, "") linkhandler2_dispatch_end_element(linkhandler2_result_document_type_name) linkhandler2_dispatch_end_element_to_validator(linkhandler2_result_document_type_name) } linkhandler2_last_element_was_expanded_conref = "" linkhandler1_endDocument() if (linkhandler2_result_document_type_name != "") validator3_endDocument() } function linkhandler2_check_idlink_applicable(elmt, attrs_array) { ; if ((markupdefinitions1_link_process_source_doctype_specs[linkhandler2_link_process_name], elmt) in markupdefinitions1_element_id_attributes) { ; if (markupdefinitions1_element_id_attributes[markupdefinitions1_link_process_source_doctype_specs[linkhandler2_link_process_name], elmt] in attrs_array) { ; if (linkhandler2_link_process_name in markupdefinitions1_link_ids) { ; ; if (index(" " markupdefinitions1_link_ids[linkhandler2_link_process_name] " ", " " attrs_array[markupdefinitions1_element_id_attributes[markupdefinitions1_link_process_source_doctype_specs[linkhandler2_link_process_name], elmt]] " ")) { ; return 1 } } } } return 0 } function linkhandler2_handle_conref_data_entities(elmt, attrs_array, decl_attrs_array,conref_attr,context_exclusions_arr,j) { split("", decl_attrs_array) conref_attr = "" split("", context_exclusions_arr) if ((linkhandler2_document_type_name, elmt) in markupdefinitions1_element_attributes) { split(markupdefinitions1_element_attributes[linkhandler2_document_type_name, elmt], decl_attrs_array, / /) ; if ((linkhandler2_document_type_name, elmt) in markupdefinitions1_element_conref_attributes) { conref_attr = markupdefinitions1_element_conref_attributes[linkhandler2_document_type_name, elmt] ; ; ; if (conref_attr in attrs_array && attrs_array[conref_attr] in entitydefinitions1_general_entity_type && entitydefinitions1_general_entity_declaration_set_name[attrs_array[conref_attr]] == linkhandler2_link_process_name) { if (linkhandler2_result_document_type_name != "") { { platformerrorhandler1_fatalError("#CONREF entity preemption unsupported when external link process is active", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (!(linkhandler2_enable_lax_templates == "YES")) { ; if (docinfo1_exclusion_exceptions != "") { ; if (!((linkhandler2_document_type_name, elmt) in markupdefinitions1_element_exclusions)) { platformerrorhandler1_fatalError("exclusion exception(s) declared on element for template expansion less strict than applicable contextual exclusion", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } split(docinfo1_exclusion_exceptions, context_exclusions_arr, / /) for (j in context_exclusions_arr) if (--j + 1) { ; if (!(index(" " markupdefinitions1_element_exclusions[linkhandler2_document_type_name, elmt] " ", " " context_exclusions_arr[1+ j] " "))) { platformerrorhandler1_fatalError("exclusion exception(s) declared on element for template expansion less strict than applicable contextual exclusion", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } } linkhandler1_startEntity(attrs_array[conref_attr], elmt) linkhandler1_endEntity(attrs_array[conref_attr]) linkhandler2_last_element_was_expanded_conref = "1" return 1 } } } return 0 } function linkhandler2_populate_link_attributes(elmt, attrs_array, filter_attribute_mismatch,filter_attribute_match,a,j,decl_attrs_array) { filter_attribute_mismatch = "" filter_attribute_match = "" a = "" split("", decl_attrs_array) split("", linkhandler2_link_attrs_array) ; if (linkhandler2_effective_link_set_name != "#EMPTY") { if ((linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt) in markupdefinitions1_link_rules) { ; linkhandler2_num_link_rules = markupdefinitions1_link_rules[linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt] ; for (linkhandler2_link_rule_no = 1; linkhandler2_link_rule_no <= linkhandler2_num_link_rules; linkhandler2_link_rule_no++) { if (!((linkhandler2_link_process_name, elmt) in markupdefinitions1_element_attributes)) { ; filter_attribute_match = "1" break } filter_attribute_mismatch = "" split(markupdefinitions1_element_attributes[linkhandler2_link_process_name, elmt], decl_attrs_array, /[[:space:]]+/) for (j in decl_attrs_array) { ; ; if ((linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt, linkhandler2_link_rule_no, decl_attrs_array[j]) in markupdefinitions1_link_attributes) { linkhandler2_link_attrs_array[decl_attrs_array[j]] = markupdefinitions1_link_attributes[linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt, linkhandler2_link_rule_no, decl_attrs_array[j]] ; ; if ((markupdefinitions1_link_process_source_doctype_specs[linkhandler2_link_process_name], elmt, decl_attrs_array[j]) in markupdefinitions1_attribute_declared_values) { ; ; if (linkhandler2_link_attrs_array[decl_attrs_array[j]] == "" && (!(decl_attrs_array[j] in attrs_array))) { ; } else if ((!(decl_attrs_array[j] in attrs_array)) || attrs_array[decl_attrs_array[j]] != linkhandler2_link_attrs_array[decl_attrs_array[j]]) { ; filter_attribute_mismatch = "1" split("", linkhandler2_link_attrs_array) break } else { ; } } else { ; } } } if (filter_attribute_mismatch == "") { ; filter_attribute_match = "1" break } } if (filter_attribute_mismatch != "" && linkhandler2_effective_link_set_name != "#IDLINK") return 0 if (linkhandler2_forward_link_attributes) for (a in linkhandler2_link_attrs_array) { ; attrs_array[a] = linkhandler2_link_attrs_array[a] } } } ; if (filter_attribute_match == "" && linkhandler2_effective_link_set_name == "#IDLINK") { platformerrorhandler1_fatalError(concat("'", attrs_array[markupdefinitions1_element_id_attributes[markupdefinitions1_link_process_source_doctype_specs[linkhandler2_link_process_name], elmt]], "': ID on unexpected element or with unmatched filter attributes"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return 1 } function linkhandler2_promote_link_state(elmt) { if ((linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt, linkhandler2_link_rule_no) in markupdefinitions1_link_uselink_targets) { linkhandler2_current_link_set_name = markupdefinitions1_link_uselink_targets[linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt, linkhandler2_link_rule_no] ; } if ((linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt, linkhandler2_link_rule_no) in markupdefinitions1_link_postlink_targets) { ; stack13_pop() if (markupdefinitions1_link_postlink_targets[linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt, linkhandler2_link_rule_no] == "#RESTORE") if (stack12_len < 1) stack13_push("#INITIAL") else stack13_push(stack12_stack[stack12_len - 1]) else stack13_push(markupdefinitions1_link_postlink_targets[linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt, linkhandler2_link_rule_no]) ; } } function linkhandler2_populate_result_element_and_attributes(elmt, attrs_array, a,v,accepted) { a = "" v = "" accepted = "" ; if (!linkhandler2_effective_link_set_name) { platformerrorhandler1_fatalError("internal error: unknown link set name when populating result element and attributes", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (linkhandler2_link_rule_no > linkhandler2_num_link_rules) linkhandler2_link_rule_no = linkhandler2_num_link_rules ; if ((linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt, linkhandler2_link_rule_no) in markupdefinitions1_link_result_elements) { linkhandler2_result_element = markupdefinitions1_link_result_elements[linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt, linkhandler2_link_rule_no] ; if (linkhandler2_result_element == "#IMPLIED") { accepted = validator3_check_acceptance(elmt) if (accepted != "") { ; linkhandler2_result_element = elmt for (a in attrs_array) if (sgmldecl1_features_minimize_implydef_attlist == "YES") linkhandler2_result_attribute_arr[a] = attrs_array[a] else if ((linkhandler2_result_document_type_name, linkhandler2_result_element) in markupdefinitions1_element_attributes && index(" " markupdefinitions1_element_attributes[linkhandler2_result_document_type_name, linkhandler2_result_element] " ", " " a " ")) linkhandler2_result_attribute_arr[a] = attrs_array[a] linkhandler2_result_attribute_spec = sgmlutil_sgml_formatattrs(linkhandler2_result_attribute_arr) } else { ; linkhandler2_result_element = "" } } if ((linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt, linkhandler2_link_rule_no) in markupdefinitions1_link_result_attribute_specifications) { linkhandler2_result_attribute_spec = markupdefinitions1_link_result_attribute_specifications[linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt, linkhandler2_link_rule_no] ; } else { ; } if (linkhandler2_result_attribute_spec != "") { if (!sgmlutil_sgml_parseattrs(linkhandler2_result_attribute_spec, linkhandler2_result_attribute_arr)) { platformerrorhandler1_fatalError(concat("link process '", linkhandler2_link_process_name, "': link set '", linkhandler2_effective_link_set_name, "': '", linkhandler2_result_attribute_spec, "': error parsing result attributes"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_syntax_namecase_general == "YES") for (a in linkhandler2_result_attribute_arr) { v = linkhandler2_result_attribute_arr[a] delete linkhandler2_result_attribute_arr[a] linkhandler2_result_attribute_arr[toupper(a)] = v } attributechecker3_check_attribute_array(linkhandler2_result_document_type_name, linkhandler2_result_element, "", linkhandler2_result_attribute_arr, concat("link process ", linkhandler2_link_process_name, ": link set ", linkhandler2_effective_link_set_name, ": result attributes for element ", linkhandler2_result_element)) } } } function linkhandler2_check_and_process_template_notations(elmt, attrs_array, a,link_notation_decl_attrs_array,has_dafe_attributes_populated_from_link_rules,declared_as_data_attr_on_link_notation,i) { a = "" split("", link_notation_decl_attrs_array) split("", linkhandler2_dafe_attrs_array) ; for (a in linkhandler2_link_attrs_array) { ; if ((linkhandler2_link_process_name, elmt, a) in markupdefinitions1_attribute_declared_values && (markupdefinitions1_attribute_declared_values[linkhandler2_link_process_name, elmt, a] ~ /^NOTATION/)) { ; if (linkhandler2_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("linktype-declared notation within notational content of linktype-declared notation", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } linkhandler2_in_linktype_declared_notational_content = 1 if (linkhandler2_result_document_type_name != "") { if (linkhandler2_result_element != "") linkhandler2_notation_element = linkhandler2_result_element } else linkhandler2_notation_element = elmt linkhandler2_notation_name = linkhandler2_link_attrs_array[a] } else { ; linkhandler2_dafe_attrs_array[a] = linkhandler2_link_attrs_array[a] has_dafe_attributes_populated_from_link_rules = 1 } } if (linkhandler2_in_linktype_declared_notational_content == 1 && has_dafe_attributes_populated_from_link_rules == 1) { if ("NotNames" in linkhandler2_link_attrs_array) linkhandler2_dafe_content_pull_receiver_attribute = linkhandler2_link_attrs_array["NotNames"] else if ("NOTNAMES" in linkhandler2_link_attrs_array) linkhandler2_dafe_content_pull_receiver_attribute = linkhandler2_link_attrs_array["NOTNAMES"] ; if (linkhandler2_dafe_content_pull_receiver_attribute != "") { if (!match(linkhandler2_dafe_content_pull_receiver_attribute, /[[:space:]]+#CONTENT[[:space:]]*$/)) { platformerrorhandler1_fatalError(concat("'", linkhandler2_dafe_content_pull_receiver_attribute, "': invalid value for NotNames attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } linkhandler2_dafe_content_pull_receiver_attribute = substr(linkhandler2_dafe_content_pull_receiver_attribute, 1, RSTART - 1) sub(/^[[:space:]]+/, "", linkhandler2_dafe_content_pull_receiver_attribute) if (sgmldecl1_syntax_namecase_general == "YES") linkhandler2_dafe_content_pull_receiver_attribute = toupper(linkhandler2_dafe_content_pull_receiver_attribute) if (!((linkhandler2_link_process_name, elmt) in markupdefinitions1_element_attributes) || !index(" " markupdefinitions1_element_attributes[linkhandler2_link_process_name, elmt] " ", " " linkhandler2_dafe_content_pull_receiver_attribute " ")) { platformerrorhandler1_fatalError(concat("'", linkhandler2_dafe_content_pull_receiver_attribute, "': receiver attribute for content specified in NotNames not a link attribute of element ", elmt), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((linkhandler2_link_process_name, linkhandler2_notation_name) in markupdefinitions1_data_attributes) || !index(" " markupdefinitions1_data_attributes[linkhandler2_link_process_name, linkhandler2_notation_name] " ", " " linkhandler2_dafe_content_pull_receiver_attribute " ")) { platformerrorhandler1_fatalError(concat("'", linkhandler2_dafe_content_pull_receiver_attribute, "': receiver attribute for content specified in NotNames not a data attribute of notation ", linkhandler2_notation_name), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; } } if (linkhandler2_in_linktype_declared_notational_content == 1) { if ((linkhandler2_link_process_name, linkhandler2_notation_name) in markupdefinitions1_data_attributes) split(markupdefinitions1_data_attributes[linkhandler2_link_process_name, linkhandler2_notation_name], link_notation_decl_attrs_array, / /) for (i in link_notation_decl_attrs_array) { ; if ((sgmldecl1_syntax_namecase_general == "YES" && link_notation_decl_attrs_array[i] == "SUPERDCN") || link_notation_decl_attrs_array[i] == "superdcn") continue if (link_notation_decl_attrs_array[i] in attrs_array) { ; if (!(link_notation_decl_attrs_array[i] in linkhandler2_dafe_attrs_array)) { ; linkhandler2_dafe_attrs_array[link_notation_decl_attrs_array[i]] = attrs_array[link_notation_decl_attrs_array[i]] } } else if (link_notation_decl_attrs_array[i] in linkhandler2_dafe_attrs_array) { ; continue } else { ; if ((linkhandler2_link_process_name, linkhandler2_notation_name, link_notation_decl_attrs_array[i]) in markupdefinitions1_data_attribute_default_values) { linkhandler2_dafe_attrs_array[link_notation_decl_attrs_array[i]] = markupdefinitions1_data_attribute_default_values[linkhandler2_link_process_name, linkhandler2_notation_name, link_notation_decl_attrs_array[i]] ; } } } if (linkhandler2_notation_name) { if (has_dafe_attributes_populated_from_link_rules) { for (a in linkhandler2_dafe_attrs_array) { ; declared_as_data_attr_on_link_notation = 0 for (i in link_notation_decl_attrs_array) if (link_notation_decl_attrs_array[i] == a) { declared_as_data_attr_on_link_notation = 1 break } if (!declared_as_data_attr_on_link_notation) { ; delete linkhandler2_dafe_attrs_array[a] } } } } return 1 } return 0 } function linkhandler2_startElement(elmt, attrs_array, attrs, decl_attrs_array,a,num_link_attrs,attrs_portion) { split("", decl_attrs_array) a = "" attrs_portion = "" ; ; if (linkhandler2_link_process_name && !(linkhandler2_link_process_name in markupdefinitions1_link_process_source_doctype_specs)) { { platformerrorhandler1_warning(concat("'", linkhandler2_link_process_name, "': undeclared link process name"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } linkhandler2_link_process_name = "" } if (linkhandler2_in_linktype_declared_notational_content != 0) { ; linkhandler2_in_linktype_declared_notational_content++ ; if (linkhandler2_in_cdata_or_rcdata_marked_section_within_notational_content == 0) { if (linkhandler2_dafe_content_pull_receiver_attribute == "") { attrs_portion = sgmlutil_sgml_formatattrs(attrs_array) if (attrs_portion != "") linkhandler2_notational_content = concat(linkhandler2_notational_content, "<", elmt, " ", attrs_portion, ">") else linkhandler2_notational_content = concat(linkhandler2_notational_content, "<", elmt, ">") } if ((linkhandler2_document_type_name, elmt) in markupdefinitions1_element_conref_attributes && markupdefinitions1_element_conref_attributes[linkhandler2_document_type_name, elmt] in attrs_array) { ; linkhandler2_in_content_reference_element_within_notational_content = 1 } else { linkhandler2_in_content_reference_element_within_notational_content = 0 } } else { ; } return } if (linkhandler2_link_process_name) { ; stack12_push(linkhandler2_current_link_set_name) stack13_push(linkhandler2_current_link_set_name) if (linkhandler2_handle_conref_data_entities(elmt, attrs_array)) return linkhandler2_effective_link_set_name = linkhandler2_current_link_set_name if (linkhandler2_check_idlink_applicable(elmt, attrs_array)) linkhandler2_effective_link_set_name = "#IDLINK" if (linkhandler2_result_document_type_name != "") { linkhandler2_result_element = "" linkhandler2_result_attribute_spec = "" split("", linkhandler2_result_attribute_arr) } if (linkhandler2_populate_link_attributes(elmt, attrs_array)) { linkhandler2_promote_link_state(elmt) if (linkhandler2_result_document_type_name != "") linkhandler2_populate_result_element_and_attributes(elmt, attrs_array) num_link_attrs = 0 for (a in linkhandler2_link_attrs_array) { num_link_attrs++ ; } if (linkhandler2_check_and_process_template_notations(elmt, attrs_array)) return } } if (linkhandler2_result_document_type_name != "") { if (linkhandler2_result_element != "") { ; linkhandler2_push_result(linkhandler2_result_element) ; linkhandler2_dispatch_start_element_to_validator(linkhandler2_result_element, linkhandler2_result_attribute_arr, linkhandler2_result_attribute_spec) docinfo3_content_reference = "" ; stack15_push(linkhandler2_result_element) if (linkhandler2_error_context_info_enabled) stack16_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": produced")) linkhandler2_dispatch_start_element(linkhandler2_result_element, linkhandler2_result_attribute_arr, linkhandler2_result_attribute_spec) linkhandler2_emit_implied_elements() } else { ; linkhandler2_push_result("#EMPTY") } } else { linkhandler2_dispatch_start_element(elmt, attrs_array, attrs) } } function linkhandler2_emit_implied_elements( result_element,result_attribute_spec,result_attribute_arr,link_set_name,chained_e_transition_link_sets) { result_element = "" result_attribute_spec = "" split("", result_attribute_arr) link_set_name = "" chained_e_transition_link_sets = "" ; while ((linkhandler2_link_process_name, linkhandler2_current_link_set_name) in markupdefinitions1_link_elements && markupdefinitions1_link_elements[linkhandler2_link_process_name, linkhandler2_current_link_set_name] == "#IMPLIED") { if (!((linkhandler2_link_process_name, linkhandler2_current_link_set_name, "#IMPLIED", 1) in markupdefinitions1_link_result_elements)) { platformerrorhandler1_fatalError(concat("internal error: link set '", linkhandler2_current_link_set_name, "' used in e-transition lacks result element"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } result_element = markupdefinitions1_link_result_elements[linkhandler2_link_process_name, linkhandler2_current_link_set_name, "#IMPLIED", 1] if ((linkhandler2_link_process_name, linkhandler2_current_link_set_name, "#IMPLIED", 1) in markupdefinitions1_link_result_attribute_specifications) { result_attribute_spec = markupdefinitions1_link_result_attribute_specifications[linkhandler2_link_process_name, linkhandler2_current_link_set_name, "#IMPLIED", 1] if (!sgmlutil_sgml_parseattrs(result_attribute_spec, result_attribute_arr)) { platformerrorhandler1_fatalError(concat("'", result_attribute_spec, "': error parsing result attributes"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else result_attribute_spec = "" ; ; stack12_push(linkhandler2_current_link_set_name) stack13_push(linkhandler2_current_link_set_name) link_set_name = linkhandler2_current_link_set_name if ((linkhandler2_link_process_name, linkhandler2_current_link_set_name, "#IMPLIED", 1) in markupdefinitions1_link_uselink_targets) { linkhandler2_current_link_set_name = markupdefinitions1_link_uselink_targets[linkhandler2_link_process_name, linkhandler2_current_link_set_name, "#IMPLIED", 1] if (index(" " chained_e_transition_link_sets " ", " " linkhandler2_current_link_set_name " ")) { platformerrorhandler1_fatalError(concat("cycle formed by #USELINK target starting from link set '", linkhandler2_current_link_set_name, "'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } chained_e_transition_link_sets = concat(chained_e_transition_link_sets, ((chained_e_transition_link_sets && linkhandler2_current_link_set_name)? " " : ""), linkhandler2_current_link_set_name) ; } else { { platformerrorhandler1_fatalError(concat("link set '", linkhandler2_current_link_set_name, "' used in e-transition lacks #USELINK target"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; stack14_push("#IMPLIED") ; linkhandler2_dispatch_start_element_to_validator(result_element, result_attribute_arr, result_attribute_spec) docinfo3_content_reference = "" ; stack15_push(result_element) if (linkhandler2_error_context_info_enabled) stack16_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": produced")) attributechecker3_check_attribute_array(linkhandler2_result_document_type_name, result_element, "", result_attribute_arr, concat("link process ", linkhandler2_link_process_name, ": link set ", link_set_name, ": result attributes for element ", result_element)) linkhandler2_dispatch_start_element(result_element, result_attribute_arr, result_attribute_spec) } } function linkhandler2_close_implied_elements( popped_item,popped_element) { popped_item = "" popped_element = "" for (;;) { popped_item = stack14_stack[stack14_len] if (popped_item == "#IMPLIED") { stack14_pop() ; popped_element = stack15_stack[stack15_len] ; linkhandler2_dispatch_end_element_to_validator(popped_element) if (docinfo3_content_reference) docinfo3_content_reference = "" ; stack15_pop() if (linkhandler2_error_context_info_enabled) stack16_pop() ; linkhandler2_dispatch_end_element(popped_element) linkhandler2_current_link_set_name = stack13_stack[stack13_len] stack13_pop() stack12_pop() ; } else break } } function linkhandler2_materialize_current_link_set_declarations( link_set_name,link_set_arr,link_element_arr,link_attributes_arr,num_link_sets,num_mapped_elements,i,j,k,l,a,link_rules,idlink_id_portion,uselink_target,postlink_target,link_rule_attributes) { link_set_name = "" split("", link_set_arr) split("", link_element_arr) split("", link_attributes_arr) a = "" link_rules = "" idlink_id_portion = "" uselink_target = "" postlink_target = "" link_rule_attributes = "" ; if (markupdefinitions1_link_process_source_doctype_specs[linkhandler2_link_process_name] == "#SIMPLE") return docinfo1_effective_link_processing_declarations[linkhandler2_link_process_name] = docinfo1_effective_link_attribute_declarations[linkhandler2_link_process_name] ; num_link_sets = split(markupdefinitions1_link_sets[linkhandler2_link_process_name], link_set_arr, /[[:space:]]+/) if (num_link_sets == 0) { platformerrorhandler1_fatalError(concat("internal error: link process ", linkhandler2_link_process_name, ": no link sets declared"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; for (i = 0; i < num_link_sets; i++) { ; if (!((linkhandler2_link_process_name, link_set_arr[1+ i]) in markupdefinitions1_link_elements)) { platformerrorhandler1_fatalError(concat("internal_error: link process ", linkhandler2_link_process_name, ": link set ", link_set_arr[1+ i], ": no source elements declared"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; if (link_set_arr[1+ i] == "#INITIAL" && linkhandler2_current_link_set_name != "#INITIAL" && num_link_sets > 1) continue num_mapped_elements = split(markupdefinitions1_link_elements[linkhandler2_link_process_name, link_set_arr[1+ i]], link_element_arr, /[[:space:]]+/) ; link_rules = "" for (j = 0; j < num_mapped_elements; j++) { if (!((linkhandler2_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j]) in markupdefinitions1_link_rules)) { platformerrorhandler1_fatalError(concat("internal_error: link process ", linkhandler2_link_process_name, ": link element ", link_element_arr[1+ j], ": no link rules declared"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; for (k = 1; k <= markupdefinitions1_link_rules[linkhandler2_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j]]; k++) { ; if ((linkhandler2_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k) in markupdefinitions1_link_uselink_targets) uselink_target = markupdefinitions1_link_uselink_targets[linkhandler2_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k] else uselink_target = "" if ((linkhandler2_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k) in markupdefinitions1_link_postlink_targets) postlink_target = markupdefinitions1_link_postlink_targets[linkhandler2_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k] else postlink_target = "" if (!((linkhandler2_link_process_name, link_element_arr[1+ j]) in markupdefinitions1_element_attributes)) split("", link_attributes_arr) else split(markupdefinitions1_element_attributes[linkhandler2_link_process_name, link_element_arr[1+ j]], link_attributes_arr, /[[:space:]]+/) link_rule_attributes = "" for (l in link_attributes_arr) { ; if (link_set_arr[1+ i] == "#IDLINK") { if (linkhandler2_link_process_name in markupdefinitions1_link_process_source_doctype_specs && (markupdefinitions1_link_process_source_doctype_specs[linkhandler2_link_process_name], link_element_arr[1+ j], link_attributes_arr[l]) in markupdefinitions1_attribute_declared_values && markupdefinitions1_attribute_declared_values[markupdefinitions1_link_process_source_doctype_specs[linkhandler2_link_process_name], link_element_arr[1+ j], link_attributes_arr[l]] == "ID") idlink_id_portion = (markupdefinitions1_link_attributes[linkhandler2_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k, link_attributes_arr[l]] " ") continue } if ((linkhandler2_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k, link_attributes_arr[l]) in markupdefinitions1_link_attributes) { link_rule_attributes = concat(link_rule_attributes, " ", link_attributes_arr[l], "=\"", markupdefinitions1_link_attributes[linkhandler2_link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k, link_attributes_arr[l]], "\"") } } if (uselink_target) if (postlink_target) link_rules = concat(link_rules, " ", idlink_id_portion, link_element_arr[1+ j], " #USELINK ", uselink_target, " #POSTLINK ", postlink_target, " [", link_rule_attributes, "]") else link_rules = concat(link_rules, " ", idlink_id_portion, link_element_arr[1+ j], " #USELINK ", uselink_target, " [", link_rule_attributes, "]") else if (postlink_target) link_rules = concat(link_rules, " ", idlink_id_portion, link_element_arr[1+ j], " #POSTLINK ", postlink_target, " [", link_rule_attributes, "]") else link_rules = concat(link_rules, " ", idlink_id_portion, link_element_arr[1+ j], " [", link_rule_attributes, "]") } } if (link_set_arr[1+ i] == "#IDLINK") { docinfo1_effective_link_processing_declarations[linkhandler2_link_process_name] = concat(docinfo1_effective_link_processing_declarations[linkhandler2_link_process_name], "") } else { if (link_set_arr[1+ i] == linkhandler2_current_link_set_name) docinfo1_effective_link_processing_declarations[linkhandler2_link_process_name] = concat(docinfo1_effective_link_processing_declarations[linkhandler2_link_process_name], "") if (link_set_arr[1+ i] != "#INITIAL") docinfo1_effective_link_processing_declarations[linkhandler2_link_process_name] = concat(docinfo1_effective_link_processing_declarations[linkhandler2_link_process_name], "") } } ; ; } function linkhandler2_endElement(elmt, popped_element,popped_item) { popped_element = "" popped_item = "" ; ; if (linkhandler2_in_linktype_declared_notational_content <= 1) { linkhandler2_current_link_set_name = stack13_stack[stack13_len] stack13_pop() stack12_pop() ; } if (linkhandler2_last_element_was_expanded_conref) { linkhandler2_last_element_was_expanded_conref = "" return } if (linkhandler2_in_linktype_declared_notational_content != 0) { if (--linkhandler2_in_linktype_declared_notational_content == 0) { if (linkhandler2_notation_element != "") linkhandler2_dispatch_fake_start_and_end_element_to_validator(linkhandler2_notation_element) if (linkhandler2_notation_element != "") linkhandler1_startDTD(linkhandler2_link_process_name, "", "", "") if (linkhandler2_dafe_content_pull_receiver_attribute != "") { linkhandler2_dafe_attrs_array[linkhandler2_dafe_content_pull_receiver_attribute] = linkhandler2_notational_content ; linkhandler2_notational_content = "" } attributechecker3_check_attribute_array(linkhandler2_link_process_name, "", linkhandler2_notation_name, linkhandler2_dafe_attrs_array, concat("link process ", linkhandler2_link_process_name, ": notation ", linkhandler2_notation_name, ": data attributes")) if (sgmldecl1_syntax_namecase_general == "YES") delete linkhandler2_dafe_attrs_array["SUPERDCN"] else delete linkhandler2_dafe_attrs_array["superdcn"] if (linkhandler2_notation_element != "") { linkhandler1_unparsedEntityDecl("SGML01", "", ("" linkhandler2_notational_content), linkhandler2_notation_name, sgmlutil_sgml_formatattrs(linkhandler2_dafe_attrs_array)) linkhandler1_startEntity("SGML01", linkhandler2_notation_element) linkhandler1_endEntity("SGML01") linkhandler1_endDTD() } linkhandler2_notation_name = "" linkhandler2_notation_element = "" linkhandler2_notational_content = "" split("", linkhandler2_dafe_attrs_array) linkhandler2_dafe_content_pull_receiver_attribute = "" } else if (sgmldecl1_features_minimize_emptynrm == "NO" && (linkhandler2_result_document_type_name, elmt) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[linkhandler2_result_document_type_name, elmt] == "EMPTY") { } else if (linkhandler2_in_content_reference_element_within_notational_content && sgmldecl1_features_minimize_emptynrm == "NO") { ; linkhandler2_in_content_reference_element_within_notational_content = 0 } else { ; if (linkhandler2_dafe_content_pull_receiver_attribute == "") linkhandler2_notational_content = concat(linkhandler2_notational_content, "") } linkhandler2_in_content_reference_element_within_notational_content = 0 return } if (linkhandler2_result_document_type_name != "") { linkhandler2_close_implied_elements() popped_item = stack14_stack[stack14_len] ; stack14_pop() if (popped_item != "#EMPTY") { if (sgmldecl1_features_minimize_emptynrm == "NO" && (linkhandler2_result_document_type_name, popped_item) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[linkhandler2_result_document_type_name, popped_item] == "EMPTY") { ; } else { ; linkhandler2_dispatch_end_element_to_validator(popped_item) } docinfo3_content_reference = "" ; stack15_pop() if (linkhandler2_error_context_info_enabled) stack16_pop() linkhandler2_dispatch_end_element(popped_item) } } else { linkhandler2_dispatch_end_element(elmt) } } function linkhandler2_characters(text, accepted) { accepted = "" ; if (linkhandler2_in_linktype_declared_notational_content != 0) if (linkhandler2_in_cdata_or_rcdata_marked_section_within_notational_content != 0) return else linkhandler2_notational_content = (linkhandler2_notational_content text) else if (linkhandler2_result_document_type_name != "" && linkhandler2_current_link_set_name == "#EMPTY") { ; if (linkhandler2_debug_emit_ctx_token != "") console_info(concat("")) } else if (linkhandler2_result_document_type_name != "") { if (!(text ~ /^[[:space:]]*$/)) { accepted = validator3_check_acceptance("#PCDATA") if (accepted != "") { ; linkhandler2_dispatch_characters_to_validator(text) if (docinfo3_content_reference) docinfo3_content_reference = "" linkhandler2_dispatch_characters(text) } else { ; if (linkhandler2_debug_emit_ctx_token != "") console_info(concat("")) } } else { ; if (docinfo3_content_reference) docinfo3_content_reference = "" linkhandler2_dispatch_characters(text) } } else linkhandler2_dispatch_characters(text) } function linkhandler2_processingInstruction(name, text) { ; if (linkhandler2_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("processing instruction in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } linkhandler1_processingInstruction(name, text) } function linkhandler2_comment(text) { ; if (linkhandler2_in_linktype_declared_notational_content == 0) linkhandler1_comment(text) } function linkhandler2_startDTD(name, publicid, systemid, text) { ; if (!linkhandler2_document_type_name) linkhandler2_document_type_name = name if (linkhandler2_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("internal error: start_dtd event in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } dataentitytracker3_startDTD(name, publicid, systemid, text) if (linkhandler2_link_process_name != "") { if (linkhandler2_link_process_name in markupdefinitions1_link_process_result_doctype_specs && markupdefinitions1_link_process_result_doctype_specs[linkhandler2_link_process_name] != "#IMPLIED") linkhandler2_result_document_type_name = markupdefinitions1_link_process_result_doctype_specs[linkhandler2_link_process_name] ; } if (linkhandler2_result_document_type_name != "") { ; if (linkhandler2_result_document_type_received == "") if (name == linkhandler2_result_document_type_name) linkhandler2_result_document_type_received = "1" if (linkhandler2_result_document_type_received == "") return validator3_startDTD(name, publicid, systemid, text) } linkhandler1_startDTD(name, publicid, systemid, text) } function linkhandler2_endDTD() { ; if (linkhandler2_result_document_type_name != "" && linkhandler2_result_document_type_received == "") return dataentitytracker3_endDTD() if (linkhandler2_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("internal error: end_dtd event in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (linkhandler2_result_document_type_name != "") validator3_endDTD() linkhandler1_endDTD() } function linkhandler2_startEntity(name, elmt, empty_map,i) { split("", empty_map) ; if (linkhandler2_link_process_name) { if (name in dataentitytracker3_data_entity_names_to_materialize) { if (name in dataentitytracker3_data_entity_notation_public_identifiers && dataentitytracker3_data_entity_notation_public_identifiers[name] == "ISO 8879:1986//NOTATION Standard Generalized Markup Language (SGML)//EN") { linkhandler2_result_element = "" if (!elmt) { platformerrorhandler1_fatalError("internal error: unhandled data entity", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (linkhandler2_result_document_type_name != "") { platformerrorhandler1_fatalError("internal error: unhandled data entity in an implicit link process", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } stack12_push(linkhandler2_current_link_set_name) stack13_push(linkhandler2_current_link_set_name) ; linkhandler2_effective_link_set_name = linkhandler2_current_link_set_name linkhandler2_populate_link_attributes(elmt, empty_map) if ((linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt) in markupdefinitions1_link_rules && markupdefinitions1_link_rules[linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt] > 1) { for (i = 1; i <= markupdefinitions1_link_rules[linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt]; i++) if ((linkhandler2_link_process_name, linkhandler2_effective_link_set_name, elmt, i) in markupdefinitions1_link_postlink_targets) { platformerrorhandler1_fatalError(concat("element ", elmt, ": applying template on element when matched by more than a single link rule with POSTLINK target in subsequent link process"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (linkhandler2_link_process_name in markupdefinitions1_link_idlink_elements && index(" " markupdefinitions1_link_idlink_elements[linkhandler2_link_process_name] " ", " " elmt " ")) for (i = 1; i <= markupdefinitions1_link_rules[linkhandler2_link_process_name, "#IDLINK", elmt]; i++) if ((linkhandler2_link_process_name, "#IDLINK", elmt, i) in markupdefinitions1_link_postlink_targets) { platformerrorhandler1_fatalError(concat("element ", elmt, ": applying template on element when matched by an IDLINK link rule with POSTLINK target in subsequent link process"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } linkhandler2_promote_link_state(elmt) ; linkhandler2_current_link_set_name = linkhandler2_effective_link_set_name linkhandler2_dispatch_fake_start_and_end_element_to_validator(linkhandler2_result_element) ; linkhandler2_materialize_current_link_set_declarations() linkhandler2_result_document_element_emitted = "1" } } } if (linkhandler2_result_document_type_name != "" && linkhandler2_result_document_type_received == "") return if (linkhandler2_link_process_name && entitydefinitions1_general_entity_declaration_set_name[name] == linkhandler2_link_process_name) { platformerrorhandler1_fatalError(concat("'", name, "': can't serialize data entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (linkhandler2_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("data entity reference in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } linkhandler1_startEntity(name, elmt) } function linkhandler2_endEntity(name) { ; if (linkhandler2_result_document_type_name != "" && linkhandler2_result_document_type_received == "") return if (name in dataentitytracker3_data_entity_notation_public_identifiers && dataentitytracker3_data_entity_notation_public_identifiers[name] == "ISO 8879:1986//NOTATION Standard Generalized Markup Language (SGML)//EN") { linkhandler2_current_link_set_name = stack13_stack[stack13_len] stack13_pop() stack12_pop() } if (linkhandler2_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("end of a data entity reference in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } linkhandler1_endEntity(name) } function linkhandler2_startCDATA(text) { ; if (linkhandler2_in_linktype_declared_notational_content != 0) { sub(/^$/, "", text) linkhandler2_notational_content = (linkhandler2_notational_content text) linkhandler2_in_cdata_or_rcdata_marked_section_within_notational_content = 1 } else linkhandler1_startCDATA(text) } function linkhandler2_endCDATA() { ; if (linkhandler2_in_linktype_declared_notational_content != 0) linkhandler2_in_cdata_or_rcdata_marked_section_within_notational_content = 0 else linkhandler1_endCDATA() } function linkhandler2_startRCDATA(text) { ; if (linkhandler2_in_linktype_declared_notational_content != 0) { sub(/^$/, "", text) linkhandler2_notational_content = (linkhandler2_notational_content text) linkhandler2_in_cdata_or_rcdata_marked_section_within_notational_content = 1 } else linkhandler1_startRCDATA(text) } function linkhandler2_endRCDATA() { ; if (linkhandler2_in_linktype_declared_notational_content != 0) linkhandler2_in_cdata_or_rcdata_marked_section_within_notational_content = 0 else linkhandler1_endRCDATA() } function linkhandler2_startINCLUDE(text) { ; if (linkhandler2_in_linktype_declared_notational_content != 0) return else linkhandler1_startINCLUDE(text) } function linkhandler2_endINCLUDE() { ; if (linkhandler2_in_linktype_declared_notational_content != 0) return else linkhandler1_endINCLUDE() } function linkhandler2_startIGNORE(text) { ; if (linkhandler2_in_linktype_declared_notational_content != 0) return else linkhandler1_startIGNORE(text) } function linkhandler2_endIGNORE() { ; if (linkhandler2_in_linktype_declared_notational_content != 0) return else linkhandler1_endIGNORE() } function linkhandler2_start_temp(text) { ; if (linkhandler2_in_linktype_declared_notational_content != 0) return else linkhandler1_start_temp(text) } function linkhandler2_end_temp() { ; if (linkhandler2_in_linktype_declared_notational_content != 0) return else linkhandler1_end_temp() } function linkhandler2_notationDecl(name, pubid, sysid) { if (linkhandler2_result_document_type_name != "" && linkhandler2_result_document_type_received == "") return if (linkhandler2_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("internal error: notation decl in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } dataentitytracker3_notationDecl(name, pubid, sysid) linkhandler1_notationDecl(name, pubid, sysid) } function linkhandler2_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) { if (linkhandler2_result_document_type_name != "" && linkhandler2_result_document_type_received == "") return if (linkhandler2_in_linktype_declared_notational_content != 0) { platformerrorhandler1_fatalError("internal error: unparsed entity decl in linktype-declared notational content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } dataentitytracker3_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) linkhandler1_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) } function linkhandler2_dispatch_start_element(name, atts, attrs) { if (linkhandler2_link_process_name) { if (linkhandler2_effective_link_set_name) if (linkhandler2_debug_emit_ctx_token != "") console_info(concat("")) else if (linkhandler2_debug_emit_ctx_token != "") console_info(concat("")) } linkhandler1_startElement(name, atts, attrs) } function linkhandler2_dispatch_end_element(name) { if (linkhandler2_link_process_name) { if (linkhandler2_debug_emit_ctx_token != "") console_info(concat("")) } linkhandler1_endElement(name) } function linkhandler2_dispatch_characters(text) { if (linkhandler2_link_process_name) { if (linkhandler2_effective_link_set_name) if (linkhandler2_debug_emit_ctx_token != "") console_info(concat("")) else if (linkhandler2_debug_emit_ctx_token != "") console_info(concat("")) } linkhandler1_characters(text) } function linkhandler2_dispatch_start_cdata(text) { linkhandler1_startCDATA(text) } function linkhandler2_dispatch_end_cdata() { linkhandler1_endCDATA() } function linkhandler2_dispatch_start_rcdata(text) { linkhandler1_startRCDATA(text) } function linkhandler2_dispatch_end_rcdata() { linkhandler1_endRCDATA() } function linkhandler2_dispatch_start_element_to_validator(name, atts, attrs) { if (linkhandler2_debug_emit_ctx_token != "") console_info(concat("")) validator3_startElement(name, atts, attrs) } function linkhandler2_dispatch_end_element_to_validator(name) { if (linkhandler2_debug_emit_ctx_token != "") console_info(concat("")) validator3_endElement(name) } function linkhandler2_dispatch_characters_to_validator(text) { if (linkhandler2_debug_emit_ctx_token != "") console_info(concat("")) validator3_characters(text) } function linkhandler2_dispatch_fake_start_and_end_element_to_validator(name, empty_array) { split("", empty_array) if (linkhandler2_result_document_type_name != "") { ; linkhandler2_dispatch_start_element_to_validator(name, empty_array, "") ; stack15_push(name) if (linkhandler2_error_context_info_enabled) stack16_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": produced")) docinfo3_content_reference = "x" if (sgmldecl1_features_minimize_emptynrm == "YES") { ; linkhandler2_dispatch_end_element_to_validator(name) docinfo3_content_reference = "" } else { ; } linkhandler2_result_document_element_emitted = "1" ; stack15_pop() docinfo3_content_reference = "" if (linkhandler2_error_context_info_enabled) stack16_pop() } } BEGIN { split("", stack5_stack) stack5_len = 0 } function stack5_stacklength() { return stack5_len } function stack5_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack5_stacklength() for (i = 1; i <= n; i++) if (stack5_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack5_push(elmt) { ; stack5_stack[++stack5_len] = elmt } function stack5_top( l,r) { r = "" l = stack5_stacklength() if (l == 0) r = "" else r = stack5_stack[l] ; return r } function stack5_pop(n, l) { if (n == "") n = 1 l = stack5_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack5_len == 0) break delete stack5_stack[l] --stack5_len } ; } function stack5_popto(targetelmt, n) { for (n = stack5_stacklength(); n > 0 && stack5_stack[n] != targetelmt; n--) { delete stack5_stack[n] stack5_len-- } } function stack5_popall( n) { for (n = stack5_stacklength(); n > 0; n--) { delete stack5_stack[n] stack5_len-- } } function stack5_poptolevel(targetelmt, level, l,n) { n = stack5_stackindex(targetelmt, level) for (l = stack5_stacklength(); l > n; l--) { delete stack5_stack[l] stack5_len-- } } function stack5_peek(i) { return stack5_stack[i] } function stack5_clear() { split("", stack5_stack) stack5_len = 0 } BEGIN { split("", stack6_stack) stack6_len = 0 } function stack6_stacklength() { return stack6_len } function stack6_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack6_stacklength() for (i = 1; i <= n; i++) if (stack6_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack6_push(elmt) { ; stack6_stack[++stack6_len] = elmt } function stack6_top( l,r) { r = "" l = stack6_stacklength() if (l == 0) r = "" else r = stack6_stack[l] ; return r } function stack6_pop(n, l) { if (n == "") n = 1 l = stack6_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack6_len == 0) break delete stack6_stack[l] --stack6_len } ; } function stack6_popto(targetelmt, n) { for (n = stack6_stacklength(); n > 0 && stack6_stack[n] != targetelmt; n--) { delete stack6_stack[n] stack6_len-- } } function stack6_popall( n) { for (n = stack6_stacklength(); n > 0; n--) { delete stack6_stack[n] stack6_len-- } } function stack6_poptolevel(targetelmt, level, l,n) { n = stack6_stackindex(targetelmt, level) for (l = stack6_stacklength(); l > n; l--) { delete stack6_stack[l] stack6_len-- } } function stack6_peek(i) { return stack6_stack[i] } function stack6_clear() { split("", stack6_stack) stack6_len = 0 } BEGIN { validator1_doctype = "" validator1_document_element_name = "" validator1_is_governed_by_content_reference = "" validator1_debug_emit_ctx_token = "" validator1_error_context_info_enabled = "" validator1_advanced_error_context_info_i = 0 split("", validator1_advanced_error_context_info_msg_components) } function validator1_reset() { stack17_clear() validator1_doctype = "" validator1_document_element_name = "" } function validator1_set_document_type_name(name) { ; if (validator1_doctype) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: attempting to set document type name when instance parsing already in progress", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator1_doctype = name } function validator1_set_document_element_name(name) { ; if (validator1_document_element_name) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: attempting to set document element name when instance parsing already in progress", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator1_document_element_name = name } function validator1_set_debug_emit_ctx_token(s) { validator1_debug_emit_ctx_token = s } function validator1_enable_error_context_info(s) { validator1_error_context_info_enabled = s } function validator1_dispatch_start_element(elmt, attrs_array, attrs) { if (validator1_debug_emit_ctx_token != "") console_info(concat("")) linkhandler2_startElement(elmt, attrs_array, attrs) docinfo1_current_shortref_map = "" } function validator1_dispatch_end_element(elmt) { if (validator1_debug_emit_ctx_token != "") console_info(concat("")) linkhandler2_endElement(elmt) docinfo1_current_shortref_map = "" } function validator1_check_and_dispatch_start_element(elmt, attrs_array, attrs, content_msg) { if (validator1_doctype != "") attributechecker1_check_attribute_array(validator1_doctype, elmt, "", attrs_array, content_msg) validator1_dispatch_start_element(elmt, attrs_array, attrs) } function validator1_try_accept_not_excluded_token(element, i,tmp) { ; docinfo1_exclusion_exceptions = "" for (i = 1; i <= stack5_len; i++) if ((validator1_doctype, stack5_stack[i]) in markupdefinitions1_element_exclusions) { tmp = markupdefinitions1_element_exclusions[validator1_doctype, stack5_stack[i]] ; if (docinfo1_exclusion_exceptions != "") docinfo1_exclusion_exceptions = (docinfo1_exclusion_exceptions " ") docinfo1_exclusion_exceptions = (docinfo1_exclusion_exceptions tmp) if (index(" " tmp " ", " " element " ")) return "" } return " " } function validator1_populate_docinfo_exclusion_exceptions( i,tmp) { ; docinfo1_exclusion_exceptions = "" for (i = 1; i <= stack5_len; i++) if ((validator1_doctype, stack5_stack[i]) in markupdefinitions1_element_exclusions) { tmp = markupdefinitions1_element_exclusions[validator1_doctype, stack5_stack[i]] if (docinfo1_exclusion_exceptions != "") docinfo1_exclusion_exceptions = (docinfo1_exclusion_exceptions " ") docinfo1_exclusion_exceptions = (docinfo1_exclusion_exceptions tmp) } } function validator1_try_accept_included_token(element, i,tmp) { if (!validator1_try_accept_not_excluded_token(element)) return "" for (i = 1; i <= stack5_len; i++) { if ((validator1_doctype, stack5_stack[i]) in markupdefinitions1_element_inclusions) { tmp = markupdefinitions1_element_inclusions[validator1_doctype, stack5_stack[i]] if (index(" " tmp " ", " " element " ")) { ; return " " } } } return "" } function validator1_try_accept_token(state, content_token, pos,i,tmp) { ; pos = markupdefinitions1_get_marked_symbol(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], state, content_token) ; if (pos) { if (content_token == "#PCDATA") return pos if ((index(markupdefinitions1_get_all_marked_symbols(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], state), " ") == 0)) { validator1_populate_docinfo_exclusion_exceptions() return pos } for (i = 1; i <= stack5_len; i++) { if ((validator1_doctype, stack5_stack[i]) in markupdefinitions1_element_exclusions) { tmp = markupdefinitions1_element_exclusions[validator1_doctype, stack5_stack[i]] ; if (index(" " tmp " ", " " content_token " ")) { validator1_populate_docinfo_exclusion_exceptions() return "" } } } validator1_populate_docinfo_exclusion_exceptions() return pos } else return validator1_try_accept_included_token(content_token) } function validator1_check_acceptance(content_token) { ; if ((validator1_doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_declarations) if (markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]] == "CDATA") if (content_token == "#PCDATA") return " "; else return ""; else if (markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]] == "RCDATA") if (content_token == "#PCDATA") return " "; else return ""; else if (markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]] == "EMPTY") return ""; if ((!((validator1_doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_declarations) && sgmldecl1_features_minimize_implydef_element == "YES") || markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]] == "ANY") { ; if (content_token != "#PCDATA" && !validator1_try_accept_not_excluded_token(content_token)) return "" else return "-" } if (stack5_len == stack17_len) return validator1_try_accept_token(stack17_stack[stack17_len], content_token) else return validator1_try_accept_token("", content_token) } function validator1_open_contextually_required_element(element, modelgroup, state, context_msg, content_msg, allow_optional, suppress_error, empty_array,symbol,pos) { split("", empty_array) symbol = "" pos = "" if (!state && markupdefinitions1_is_optional(validator1_doctype, element, markupdefinitions1_element_modelgroups[validator1_doctype, element])) { ; return "" } if ((index(markupdefinitions1_get_all_marked_symbols(validator1_doctype, element, markupdefinitions1_element_modelgroups[validator1_doctype, element], state), " ") == 0)) { ; if (!allow_optional) if (markupdefinitions1_is_terminal(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], state)) return "" symbol = markupdefinitions1_state_symbol(markupdefinitions1_get_all_marked_symbols(validator1_doctype, element, markupdefinitions1_element_modelgroups[validator1_doctype, element], state)) ; if (sgmldecl1_features_minimize_omittag != "YES") if (!suppress_error) { { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",element,"': tag omission not allowed at '",context_msg ,"'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else return "" if (!((validator1_doctype, symbol) in markupdefinitions1_element_start_tag_omittable)) if (!suppress_error) { if (symbol == "#PCDATA") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat(content_msg," not accepted here and element '",symbol,"' not omittable (1)"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else return "" if ((validator1_doctype, symbol) in markupdefinitions1_element_declarations && substr(markupdefinitions1_element_declarations[validator1_doctype, symbol], 1, 1) != "(" && markupdefinitions1_element_declarations[validator1_doctype, symbol] != "ANY") if (!suppress_error) { { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat(content_msg," not accepted here and can't omit start-tag for element '",symbol,"' with declared content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } pos = markupdefinitions1_get_marked_symbol(validator1_doctype, element, markupdefinitions1_element_modelgroups[validator1_doctype, element], state, symbol) if (state) stack17_pop() stack17_push(pos) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1) stack17_push(""); }; stack5_push(symbol); if (validator1_error_context_info_enabled) stack6_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": inferred")); } validator1_check_and_dispatch_start_element(symbol, empty_array, "", ("implied element " symbol)) return symbol } return "" } function validator1_open_contextually_implied_element(content_token, rank_suffix,parent_rank_suffix,symbol,symbols,symbols_arr,empty_array,i,pos) { rank_suffix = "" parent_rank_suffix = "" symbol = "" symbols = "" split("", symbols_arr) split("", empty_array) pos = "" if (!((validator1_doctype, content_token) in markupdefinitions1_element_rank_groups)) return "" if (!match(stack5_stack[stack5_len], /[0-9]+$/)) { parent_rank_suffix = 0 } else parent_rank_suffix = substr(stack5_stack[stack5_len], RSTART, RLENGTH) if (match(content_token, /[0-9]+$/)) { rank_suffix = substr(content_token, RSTART, RLENGTH) if (0 + rank_suffix > 0 + parent_rank_suffix) { ; symbols = markupdefinitions1_states_symbols(markupdefinitions1_get_all_marked_symbols(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], stack17_stack[stack17_len])) split(symbols, symbols_arr, / /) for (i in symbols_arr) if (match(symbols_arr[i], /[0-9]+$/)) { if (!((validator1_doctype, symbols_arr[i]) in markupdefinitions1_element_rank_groups)) continue if (symbol != "") { symbol = "" break } symbol = symbols_arr[i] ; if (substr(symbols_arr[i], RSTART, RLENGTH) != rank_suffix) symbol = "" } } } ; if (symbol) { pos = markupdefinitions1_get_marked_symbol(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], stack17_stack[stack17_len], symbol) if (!pos) { { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: failed to promote to state implied via rank suffix", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } stack17_pop() stack17_push(pos) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1) stack17_push(""); }; stack5_push(symbol); if (validator1_error_context_info_enabled) stack6_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": inferred")); } validator1_check_and_dispatch_start_element(symbol, empty_array, "", ("implied element " symbol)) return symbol } return "" } function validator1_open_contextually_implied_element_below_document_element(content_token, symbol,pos,empty_array) { symbol = "" pos = "" split("", empty_array) ; if (content_token == "#PCDATA") return "" if (sgmldecl1_features_minimize_omittag != "YES") return "" ; if (stack5_len != 1) return "" ; if (stack5_len != stack17_len) return "" ; if ((content_token ~ /[0-9]$/) || (validator1_doctype, content_token) in markupdefinitions1_element_rank_groups) return "" symbol = markupdefinitions1_states_symbols(markupdefinitions1_get_all_marked_symbols(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], stack17_stack[stack17_len])) if (!symbol || !(index(symbol, " ") == 0)) return "" ; if (!((validator1_doctype, symbol) in markupdefinitions1_element_end_tag_omittable)) return "" ; pos = markupdefinitions1_get_marked_symbol(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], stack17_stack[stack17_len], symbol) if (!pos) { { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: failed to promote to state implied at document element", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; stack17_pop() stack17_push(pos) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1) stack17_push(""); }; stack5_push(symbol); if (validator1_error_context_info_enabled) stack6_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": inferred")); } validator1_check_and_dispatch_start_element(symbol, empty_array, "", ("implied element " symbol)) return symbol } function validator1_close_definitely_completed_elements(content_token, context_msg) { ; ; if (sgmldecl1_features_other_validity != "TYPE" && sgmldecl1_features_minimize_implydef_element == "YES") return if (stack5_len == stack17_len + 1) if (stack5_stack[stack5_len] && (validator1_doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_declarations && ( ( sgmldecl1_features_minimize_emptynrm == "YES" && (markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]] == "EMPTY" || validator1_is_governed_by_content_reference != "") ) || ( validator1_is_governed_by_content_reference == "" && substr(markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]], 1, 1) == "(" && content_token != "#PCDATA" && markupdefinitions1_is_pcdata_only_state(markupdefinitions1_get_all_marked_symbols(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], "")) && markupdefinitions1_is_terminal(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], markupdefinitions1_get_all_marked_symbols(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], "")) && (!validator1_try_accept_included_token(content_token))) ) ) { ; if (sgmldecl1_features_minimize_omittag != "YES") if (content_token == "#PCDATA") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': character data not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",stack5_stack[stack5_len],"': '",context_msg ,"' not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((validator1_doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_end_tag_omittable)) if (content_token == "#PCDATA") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': character data not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",stack5_stack[stack5_len],"': '",context_msg ,"' not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator1_is_governed_by_content_reference = "" validator1_dispatch_end_element(stack5_stack[stack5_len]) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1 && !stack17_stack[stack17_len]) stack17_pop(); }; docinfo1_most_recently_ended_element = stack5_stack[stack5_len]; stack5_pop(); if (validator1_error_context_info_enabled) stack6_pop(); } } else if (stack5_stack[stack5_len] && (validator1_doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_declarations && (markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]] == "EMPTY" || validator1_is_governed_by_content_reference != "") && sgmldecl1_features_minimize_emptynrm == "NO") { ; validator1_is_governed_by_content_reference = "" validator1_dispatch_end_element(stack5_stack[stack5_len]) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1 && !stack17_stack[stack17_len]) stack17_pop(); }; docinfo1_most_recently_ended_element = stack5_stack[stack5_len]; stack5_pop(); if (validator1_error_context_info_enabled) stack6_pop(); } } if (stack5_len == stack17_len) { ; ; if (stack17_stack[stack17_len]) { ; ; ; } while (stack5_stack[stack5_len] && (validator1_doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_declarations && substr(markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]], 1, 1) == "(" && ((!markupdefinitions1_get_all_marked_symbols(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], stack17_stack[stack17_len]) && !(content_token != "#PCDATA" && validator1_try_accept_included_token(content_token))) || (content_token != "#PCDATA" && (markupdefinitions1_is_pcdata_only_state(markupdefinitions1_get_all_marked_symbols(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], stack17_stack[stack17_len])) && markupdefinitions1_is_terminal(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], markupdefinitions1_get_all_marked_symbols(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], stack17_stack[stack17_len])) && markupdefinitions1_get_all_marked_symbols(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], markupdefinitions1_get_marked_symbol(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], stack17_stack[stack17_len], "#PCDATA")) == markupdefinitions1_get_all_marked_symbols(validator1_doctype, stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], stack17_stack[stack17_len]))))) { if (sgmldecl1_features_minimize_omittag != "YES") if (content_token == "#PCDATA") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': character data not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",stack5_stack[stack5_len],"': '",context_msg,"' not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((validator1_doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_end_tag_omittable)) if (content_token == "#PCDATA") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': character data not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",stack5_stack[stack5_len],"': '",context_msg,"' not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; validator1_dispatch_end_element(stack5_stack[stack5_len]) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1 && !stack17_stack[stack17_len]) stack17_pop(); }; docinfo1_most_recently_ended_element = stack5_stack[stack5_len]; stack5_pop(); if (validator1_error_context_info_enabled) stack6_pop(); } stack17_pop() } if (!stack5_stack[stack5_len]) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': extraneous character data after content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } function validator1_close_potentially_completed_element( e) { e = stack5_stack[stack5_len] ; if (sgmldecl1_features_other_validity != "TYPE") return e if (stack5_len == stack17_len) { if (((validator1_doctype, e) in markupdefinitions1_element_declarations && substr(markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]], 1, 1) == "(" && !markupdefinitions1_is_terminal(validator1_doctype, e, markupdefinitions1_element_modelgroups[validator1_doctype, e], stack17_stack[stack17_len]))) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",e,"': unexpected end of content model"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } stack17_pop() return e } else { if (validator1_is_governed_by_content_reference != "") return e if ((validator1_doctype, e) in markupdefinitions1_element_declarations) if (substr(markupdefinitions1_element_declarations[validator1_doctype, e], 1, 1) == "(") { if (!markupdefinitions1_is_optional(validator1_doctype, e, markupdefinitions1_element_modelgroups[validator1_doctype, e])) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",e,"': element '",stack5_stack[stack5_len] ,"' requires content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; } ; return e } } function validator1_attempt_to_close_potentially_completed_element( e) { e = stack5_stack[stack5_len] ; if (sgmldecl1_features_other_validity != "TYPE") return e if (stack5_len == stack17_len) { if (((validator1_doctype, e) in markupdefinitions1_element_declarations && substr(markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]], 1, 1) == "(" && !markupdefinitions1_is_terminal(validator1_doctype, e, markupdefinitions1_element_modelgroups[validator1_doctype, e], stack17_stack[stack17_len]))) return "" stack17_pop() return e } else { if (validator1_is_governed_by_content_reference != "") return e if ((validator1_doctype, e) in markupdefinitions1_element_declarations) if (substr(markupdefinitions1_element_declarations[validator1_doctype, e], 1, 1) == "(") { if (!markupdefinitions1_is_optional(validator1_doctype, e, markupdefinitions1_element_modelgroups[validator1_doctype, e])) return "" ; } ; return e } } function validator1_on_content_token(content_token, context_msg, content_msg, trans,pos,follower_states,empty_array,symbol,e) { split("", empty_array) symbol = "" e = "" ; ; ; if (!stack5_len) { ; if (!validator1_doctype) return if (!validator1_document_element_name) validator1_document_element_name = validator1_doctype if (content_token == validator1_document_element_name) return if (sgmldecl1_features_minimize_implydef_element != "YES") { if (sgmldecl1_features_minimize_omittag != "YES" || (!((validator1_doctype, validator1_document_element_name) in markupdefinitions1_element_start_tag_omittable)) || (substr(markupdefinitions1_element_declarations[validator1_doctype, validator1_document_element_name], 1, 1) != "(" && markupdefinitions1_element_declarations[validator1_doctype, validator1_document_element_name] != "ANY")) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': may not omit start-tag of root element"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1) stack17_push(""); }; stack5_push(validator1_document_element_name); if (validator1_error_context_info_enabled) stack6_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": inferred")); } validator1_check_and_dispatch_start_element(validator1_document_element_name, empty_array, "", ("implied element " validator1_document_element_name)) } else { validator1_close_definitely_completed_elements(content_token, context_msg) } ; ; while (stack5_len > 1 && (!((validator1_doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_declarations && sgmldecl1_features_minimize_implydef_element == "YES") || (validator1_doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_end_tag_omittable)) { ; if (content_token != "#PCDATA" && !validator1_try_accept_not_excluded_token(content_token)) { ; e = validator1_attempt_to_close_potentially_completed_element() if (e) { validator1_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1 && !stack17_stack[stack17_len]) stack17_pop(); }; docinfo1_most_recently_ended_element = stack5_stack[stack5_len]; stack5_pop(); if (validator1_error_context_info_enabled) stack6_pop(); } ; } else { { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } else break } if (sgmldecl1_features_other_validity == "TYPE") { if (stack5_len == stack17_len) { ; if ((!((validator1_doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_declarations)) || markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]] == "ANY") if (content_token != "#PCDATA" && !validator1_try_accept_not_excluded_token(content_token)) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else return pos = validator1_try_accept_token(stack17_stack[stack17_len], content_token) ; { ; } if (pos) { if (pos != " ") { stack17_pop() stack17_push(pos) return } else return "markdown:included=\"true\"" } else { ; if (!validator1_open_contextually_required_element(stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], stack17_stack[stack17_len], context_msg, content_msg, "", "true")) { ; if (!validator1_open_contextually_implied_element(content_token) && !validator1_open_contextually_implied_element_below_document_element(content_token)) { if (stack5_len <= 1) { { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } e = validator1_close_potentially_completed_element() if (!e) { { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } validator1_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1 && !stack17_stack[stack17_len]) stack17_pop(); }; docinfo1_most_recently_ended_element = stack5_stack[stack5_len]; stack5_pop(); if (validator1_error_context_info_enabled) stack6_pop(); } ; return validator1_on_content_token(content_token, context_msg, content_msg) } } } } ; if (stack5_len == stack17_len + 1) { ; { ; } if (!((validator1_doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_declarations)) { ; if (content_token != "#PCDATA" && !validator1_try_accept_not_excluded_token(content_token)) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg ," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } else if (markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]] == "ANY") { ; if (content_token != "#PCDATA" && !validator1_try_accept_not_excluded_token(content_token)) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } else if (markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]] == "CDATA" || markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]] == "RCDATA") { if (content_token != "#PCDATA") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': unexpected ",content_msg," in declared content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } else if (substr(markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]], 1, 1) != "(") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': unexpected ",content_msg," in non-element content model"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } pos = validator1_try_accept_token("", content_token) ; { ; } if (pos) { if (pos != " ") { stack17_push(pos) return } else return "markdown:included=\"true\"" } } else { ; while (stack5_len > 0) { ; stack5_pop() } while (stack17_len > 0) { ; stack17_pop() } { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: modelgroup states out of sync with elements", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } else return ; if (sgmldecl1_features_minimize_omittag != "YES") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': unexpected ",content_msg), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } for (;;) { symbol = validator1_open_contextually_required_element(stack5_stack[stack5_len], markupdefinitions1_element_modelgroups[validator1_doctype, stack5_stack[stack5_len]], "", "", content_msg, "", "") ; { ; } if (!symbol) break if ((!((validator1_doctype, symbol) in markupdefinitions1_element_declarations)) || markupdefinitions1_element_declarations[validator1_doctype, stack5_stack[stack5_len]] == "ANY") if (content_token != "#PCDATA" && !validator1_try_accept_not_excluded_token(content_token)) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else return if (substr(markupdefinitions1_element_modelgroups[validator1_doctype, symbol], 1, 1) != "(") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } pos = validator1_try_accept_token("", content_token) if (pos) { ; if (pos != " ") { stack17_push(pos) return } else return "markdown:included=\"true\"" } } { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } function validator1_startElement(xmlelement, attrarray, attrs, r) { validator1_is_governed_by_content_reference = docinfo1_content_reference ; if (validator1_doctype != "") { if ((!((validator1_doctype, xmlelement) in markupdefinitions1_element_declarations)) && sgmldecl1_features_minimize_implydef_element_anyother == "YES" && stack5_len != 0 && stack5_stack[stack5_len] == xmlelement) { validator1_dispatch_end_element(xmlelement) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1 && !stack17_stack[stack17_len]) stack17_pop(); }; docinfo1_most_recently_ended_element = stack5_stack[stack5_len]; stack5_pop(); if (validator1_error_context_info_enabled) stack6_pop(); } } else if ((!((validator1_doctype, xmlelement) in markupdefinitions1_element_declarations)) && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",xmlelement,"': undeclared element type and IMPLYDEF ELEMENT NO specified"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (sgmldecl1_features_minimize_implydef_doctype != "YES" && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("No document type declaration and IMPLYDEF DOCTYPE NO specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } r = validator1_on_content_token(xmlelement, xmlelement, concat("element '",xmlelement,"'")) { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1) stack17_push(""); } return r } function validator1_characters(xmltext) { ; validator1_is_governed_by_content_reference = docinfo1_content_reference if (validator1_doctype == "") { if (sgmldecl1_features_minimize_implydef_doctype != "YES" && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("No document type declaration and IMPLYDEF DOCTYPE NO specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } validator1_on_content_token("#PCDATA", substr(xmltext, 1, 8), "character data") } function validator1_processingInstruction(name, text) { return } function validator1_endElement(xmlelement, e,m) { ; ; validator1_is_governed_by_content_reference = docinfo1_content_reference do { if (stack5_len == 0) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",xmlelement,"': attempting to close an element that isn't open"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_features_minimize_implydef_element_anyother == "YES" && stack5_len != 0 && !((validator1_doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_declarations)) { e = stack5_stack[stack5_len] ; } else e = validator1_close_potentially_completed_element() ; if (e != xmlelement) { ; if (sgmldecl1_features_minimize_emptynrm == "NO" && validator1_is_governed_by_content_reference != "") { ; } else if (sgmldecl1_features_minimize_implydef_element_anyother == "YES" && !((validator1_doctype, e) in markupdefinitions1_element_declarations)) { ; } else if ((sgmldecl1_features_minimize_omittag == "NO" || !((validator1_doctype, e) in markupdefinitions1_element_end_tag_omittable)) && ! ((validator1_doctype, e) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[validator1_doctype, e] == "EMPTY" && sgmldecl1_features_minimize_emptynrm == "NO")) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("end-element tag for element ",xmlelement,": end-element tag omission not permitted for element ",e), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator1_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1 && !stack17_stack[stack17_len]) stack17_pop(); }; docinfo1_most_recently_ended_element = stack5_stack[stack5_len]; stack5_pop(); if (validator1_error_context_info_enabled) stack6_pop(); } } else if (sgmldecl1_features_minimize_emptynrm == "NO" && (validator1_doctype, e) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[validator1_doctype, e] == "EMPTY") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",e,"': element with declared content EMPTY must not have end-tag"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (sgmldecl1_features_minimize_emptynrm == "NO" && validator1_is_governed_by_content_reference != "") { ; validator1_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1 && !stack17_stack[stack17_len]) stack17_pop(); }; docinfo1_most_recently_ended_element = stack5_stack[stack5_len]; stack5_pop(); if (validator1_error_context_info_enabled) stack6_pop(); } e = "" } validator1_is_governed_by_content_reference = "" } while (e != xmlelement) { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1 && !stack17_stack[stack17_len]) stack17_pop(); } } function validator1_startDocument() { ; if (sgmldecl1_features_other_validity == "TAG-TYPE") { if (sgmldecl1_features_minimize_omittag == "YES") { platformerrorhandler1_warning("MINIMIZE OMITTAG YES and VALIDITY TAG-TYPE features specified in SGML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (sgmldecl1_features_minimize_implydef_element == "YES") { platformerrorhandler1_warning("IMPLYDEF ELEMENT YES and VALIDITY TAG-TYPE features specified in SGML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } sgmldecl1_features_other_validity = "TYPE" } else if (sgmldecl1_features_other_validity == "TAG") { if (sgmldecl1_features_minimize_omittag == "YES") { platformerrorhandler1_warning("MINIMIZE OMITTAG YES and VALIDITY TAG features specified in SGML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } sgmldecl1_features_other_validity = "NOASSERT" } } function validator1_endDocument( e) { validator1_is_governed_by_content_reference = docinfo1_content_reference if (validator1_doctype == "") { if (sgmldecl1_features_minimize_implydef_doctype != "YES" && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("No document type declaration and IMPLYDEF DOCTYPE NO specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } { while (stack5_len) { e = validator1_close_potentially_completed_element() if (!((validator1_doctype, e) in markupdefinitions1_element_end_tag_omittable) && ! ((validator1_doctype, e) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[validator1_doctype, e] == "EMPTY" && sgmldecl1_features_minimize_emptynrm == "NO")) { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("unterminated instance - end-tag omission not allowed for element '",e,"'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; validator1_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack5_len == stack17_len + 1 && !stack17_stack[stack17_len]) stack17_pop(); }; docinfo1_most_recently_ended_element = stack5_stack[stack5_len]; stack5_pop(); if (validator1_error_context_info_enabled) stack6_pop(); } } } } function validator1_startDTD(name, publicid, systemid, xmltext) { if (name == "#IMPLIED") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: received #IMPLIED doctype", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (validator1_doctype == "") validator1_doctype = name } function validator1_endDTD() { } function validator1_startEntity(name) { if (validator1_doctype == "") { if (sgmldecl1_features_minimize_implydef_doctype != "YES" && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator1_error_context_info_enabled) { for (validator1_advanced_error_context_info_i = 1; validator1_advanced_error_context_info_i <= stack5_len; validator1_advanced_error_context_info_i++) { split(stack6_stack[validator1_advanced_error_context_info_i], validator1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[validator1_advanced_error_context_info_i], ": ", validator1_advanced_error_context_info_msg_components[1+ 2]), validator1_advanced_error_context_info_msg_components[1+ 0], "", validator1_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("No document type declaration and IMPLYDEF DOCTYPE NO specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } validator1_on_content_token("#PCDATA", name, "data entity") } function validator1_endEntity(name) { } function validator1_startCDATA(text) { } function validator1_endCDATA() { } function validator1_startRCDATA(text) { } function validator1_endRCDATA() {} function validator1_startINCLUDE(text) { } function validator1_endINCLUDE() { } function validator1_startIGNORE(text) { } function validator1_endIGNORE() { } function validator1_comment(text) { } BEGIN { tokenizer1_no_stalling_at_end_of_markup = 0 tokenizer1_active_lpd_names = "" tokenizer1_system_specific_implied_lpd_names = "" tokenizer1_declaration_subset_count = 0 tokenizer1_document_type_declaration_no = 0 tokenizer1_debug_emit_ctx_token = "" split("", tokenizer1_document_type_names) split("", tokenizer1_link_process_names) split("", tokenizer1_declaration_text) split("", tokenizer1_internal_subset_start) split("", tokenizer1_internal_subset_length) split("", tokenizer1_declaration_subset_lineno) tokenizer1_start_document_sent = 0 tokenizer1_in_prolog = 1 tokenizer1_past_prolog = "" tokenizer1_past_content = "" tokenizer1_data_entity_reference_match_regexp = "" tokenizer1_markup_buf = "" tokenizer1_markup_start = 1 tokenizer1_markup_length = 0 tokenizer1_markup_event = "" tokenizer1_markup_attrs = "" tokenizer1_markup_elmt = "" tokenizer1_markup_text = "" tokenizer1_markup_buf_save = "" tokenizer1_markup_start_save = "" tokenizer1_markup_length_save = "" tokenizer1_markup_event_save = "" tokenizer1_markup_text_save = "" tokenizer1_markup_buf_save2 = "" tokenizer1_markup_start_save2 = "" tokenizer1_markup_length_save2 = "" tokenizer1_markup_event_save2 = "" tokenizer1_parsing_state_saved = "" tokenizer1_parsing_state_saved2 = "" tokenizer1_marked_section_nesting_level = 0 tokenizer1_marked_section_include_level = 0 tokenizer1_running_as_template_subprocessing_context = 0 tokenizer1_expected_external_dtd_subset_identifier = "" tokenizer1_path_relativization_disabled = "1" tokenizer1_force_prolog_recording = "" tokenizer1_record_effective_markup_declarations = "" tokenizer1_unresolved_entity_name = "" tokenizer1_no_stalling_on_unresolved_entity = 0 tokenizer1_target_document_type_name = "" split("", tokenizer1_permutation_matrices) tokenizer1_past_prolog_processing_preparation_performed = "" tokenizer1_past_prolog_processing_performed = "" tokenizer1_past_prolog_processing_callback_called = "" tokenizer1_instance_had_implied_doctype = "" tokenizer1_instance_had_implied_prolog = "" tokenizer1_line_number_save = 0 tokenizer1_restrict_parameter_entity_expansion = "" tokenizer1_disable_data_entity_references = "" tokenizer1_strict_mode = "" tokenizer1_active_explicit_link_declaration_set_declaring_sgml_notation = "" tokenizer1_error_context_info_enabled = "" tokenizer1_advanced_error_context_info_i = 0 split("", tokenizer1_advanced_error_context_info_msg_components) tokenizer1_fsi_def_doc_entity_no = 0 } function tokenizer1_reset() { tokenizer1_no_stalling_at_end_of_markup = 0 tokenizer1_active_lpd_names = "" tokenizer1_document_type_declaration_no = 0 split("", tokenizer1_document_type_names) split("", tokenizer1_link_process_names) split("", tokenizer1_declaration_text) split("", tokenizer1_internal_subset_start) split("", tokenizer1_internal_subset_length) split("", tokenizer1_declaration_subset_lineno) tokenizer1_start_document_sent = 0 tokenizer1_in_prolog = 1 tokenizer1_past_content = "" tokenizer1_data_entity_reference_match_regexp = "" tokenizer1_markup_buf = "" tokenizer1_markup_start = 1 tokenizer1_markup_length = 0 tokenizer1_markup_event = "" tokenizer1_markup_attrs = "" tokenizer1_markup_elmt = "" tokenizer1_markup_text = "" tokenizer1_markup_buf_save = "" tokenizer1_markup_start_save = "" tokenizer1_markup_length_save = "" tokenizer1_markup_event_save = "" tokenizer1_markup_text_save = "" tokenizer1_parsing_state_saved = "" tokenizer1_marked_section_nesting_level = 0 tokenizer1_marked_section_include_level = 0 tokenizer1_expected_external_dtd_subset_identifier = "" tokenizer1_force_prolog_recording = "" tokenizer1_record_effective_markup_declarations = "" tokenizer1_unresolved_entity_name = "" tokenizer1_no_stalling_on_unresolved_entity = 0 tokenizer1_past_prolog_processing_preparation_performed = "" tokenizer1_past_prolog_processing_performed = "" tokenizer1_instance_had_implied_doctype = "" tokenizer1_instance_had_implied_prolog = "" tokenizer1_line_number_save = 0 tokenizer1_restrict_parameter_entity_expansion = "" } function tokenizer1_configure(args) { if (args["active_lpd_names"]) { if (sgmldecl1_syntax_namecase_general == "YES") tokenizer1_active_lpd_names = toupper(args["active_lpd_names"]) else tokenizer1_active_lpd_names = args["active_lpd_names"] gsub(",", " ", tokenizer1_active_lpd_names) gsub(/[[:space:]][[:space:]]+/, " ", tokenizer1_active_lpd_names) } if (args["system_specific_implied_lpd_names"]) tokenizer1_system_specific_implied_lpd_names = args["system_specific_implied_lpd_names"] if (args["running_as_template_subprocessing_context"]) tokenizer1_running_as_template_subprocessing_context = args["running_as_template_subprocessing_context"] if (args["expected_external_dtd_subset_identifier"]) tokenizer1_expected_external_dtd_subset_identifier = args["expected_external_dtd_subset_identifier"] if (args["disable_data_entity_references"]) tokenizer1_disable_data_entity_references = args["disable_data_entity_references"] if (args["disable_path_relativization"]) if (args["disable_path_relativization"] == "YES") tokenizer1_path_relativization_disabled = "1" else if (args["disable_path_relativization"] == "NO") tokenizer1_path_relativization_disabled = "" else { platformerrorhandler1_warning(concat("'", args["disable_path_relativization"], "': invalid value for disable_path_relativization parameter"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (args["restrict_parameter_entity_expansion"]) if (args["restrict_parameter_entity_expansion"] == "YES") tokenizer1_restrict_parameter_entity_expansion = "1" else if (args["restrict_parameter_entity_expansion"] == "NO") tokenizer1_restrict_parameter_entity_expansion = "" else { platformerrorhandler1_warning(concat("'", args["restrict_parameter_entity_expansion"], "': invalid value for restrict_parameter_entity_expansion"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (args["strict_iso8879_compatibility"]) if (args["strict_iso8879_compatibility"] == "YES") tokenizer1_strict_mode = "1" else if (args["strict_iso8879_compatibility"] == "NO") tokenizer1_strict_mode = "" else { platformerrorhandler1_warning(concat("'", args["strict_iso8879_compatibility"], "': invalid value for 'strict_iso8879_compatibility' parameter"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if ("sax_error_context_info_collection" in args) tokenizer1_error_context_info_enabled = args["sax_error_context_info_collection"] if ("target_document_type_name" in args) tokenizer1_target_document_type_name = args["target_document_type_name"] } function tokenizer1_set_debug_emit_ctx_token(s) { tokenizer1_debug_emit_ctx_token = s } function tokenizer1_switchoff_stalling_on_unresolved_entity() { tokenizer1_no_stalling_on_unresolved_entity = 1 } function tokenizer1_get_unresolved_entity_name() { return tokenizer1_unresolved_entity_name } function tokenizer1_set_unresolved_entity_name(entity_name) { tokenizer1_unresolved_entity_name = entity_name } function tokenizer1_clear_unresolved_entity_name() { tokenizer1_unresolved_entity_name = "" } function tokenizer1_switchoff_stalling_at_end_of_markup() { tokenizer1_no_stalling_at_end_of_markup = 1 } function tokenizer1_get_position_of_tag_end(beginpos, pos,in_quote,quotechar) { for (pos = beginpos + 1; pos <= length(tokenizer1_markup_buf); pos++) { if (substr(tokenizer1_markup_buf, pos, 1) == ">") { if (in_quote) continue break } if (substr(tokenizer1_markup_buf, pos, 1) == "\"") { if (in_quote && quotechar == "\"") in_quote = 0 else { in_quote = 1 quotechar = "\"" } } else if (substr(tokenizer1_markup_buf, pos, 1) == "\"") { if (in_quote && quotechar == "'") in_quote = 0 else { in_quote = 1 quotechar = "'" } } if (substr(tokenizer1_markup_buf, pos, 1) == "<" && !in_quote) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError((sgmlutil_format_for_errormsg(substr(tokenizer1_markup_buf, beginpos, pos - beginpos)) ": unterminated element or invalid < character in element or attributes"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } return pos } function tokenizer1_expand_general_entity_references(startpos, len, context_type, pos,entity_ref,entity_url,entity_text,ero_pos,ref_end,has_refc,needs_ee,stago_pos,ee_pos,text_type,data_text_type,data_attributes_map,context_element,shortref_map_literal_number,shortref_map_replacement_entity_name,shortref_map_literal,num_eot_chars_at_end_of_buf,pos_offset) { text_type = "" data_text_type = "" split("", data_attributes_map) context_element = "" shortref_map_replacement_entity_name = "" shortref_map_literal = "" ; for (pos = startpos;;) { ; if (context_type == "PCDATA") { stago_pos = sgmlutil_sgml_index3(tokenizer1_markup_buf, "<", pos) ; if (stago_pos >= startpos + len) stago_pos = 0 } ero_pos = sgmlutil_sgml_index3(tokenizer1_markup_buf, "&", pos) ; if (context_type != "\"" && context_type != "'" && docinfo1_current_shortref_map != "#EMPTY") { context_element = stack5_stack[stack5_len] ; if (docinfo1_current_shortref_map == "") { if ((tokenizer1_document_type_names["1"], context_element) in markupdefinitions1_shortref_uses) docinfo1_current_shortref_map = markupdefinitions1_shortref_uses[tokenizer1_document_type_names["1"], context_element] } if (docinfo1_current_shortref_map != "") { ; if (substr(tokenizer1_markup_buf, startpos + len - 1, 1) == "\004") num_eot_chars_at_end_of_buf = 1 else num_eot_chars_at_end_of_buf = 0 for (pos_offset = 1; pos_offset < len - 1 - num_eot_chars_at_end_of_buf; pos_offset++) if (substr(tokenizer1_markup_buf, startpos + pos_offset, 1) == "\n" && substr(tokenizer1_markup_buf, startpos + pos_offset - 1, 1) != "\r") { tokenizer1_markup_buf = concat(substr(tokenizer1_markup_buf, 1, startpos - 1), substr(tokenizer1_markup_buf, startpos, pos_offset), "\r", substr(tokenizer1_markup_buf, startpos + pos_offset, len - pos_offset), substr(tokenizer1_markup_buf, startpos + len)) len++ if (ero_pos > 0 && pos_offset < ero_pos) ero_pos++ } ; if (substr(tokenizer1_markup_buf, startpos + len - 1 - num_eot_chars_at_end_of_buf, 1) == "\n") { tokenizer1_markup_buf = concat(substr(tokenizer1_markup_buf, 1, startpos - 1), substr(tokenizer1_markup_buf, startpos, len - 1 - num_eot_chars_at_end_of_buf), "\r", "\004", substr(tokenizer1_markup_buf, startpos + len)) ; } ; if (ero_pos != 0) { if (match(substr(tokenizer1_markup_buf, ero_pos + 1), /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*;?/) && substr(tokenizer1_markup_buf, ero_pos + RSTART + RLENGTH, 1) != "\r") { tokenizer1_markup_buf = concat(substr(tokenizer1_markup_buf, 1, ero_pos), substr(tokenizer1_markup_buf, ero_pos + RSTART, RLENGTH), "\r", substr(tokenizer1_markup_buf, ero_pos + RSTART + RLENGTH)) len++ } ; } for (shortref_map_literal_number = markupdefinitions1_shortref_map_delimiter_literal_numbers[tokenizer1_document_type_names["1"], docinfo1_current_shortref_map]; shortref_map_literal_number > 0; shortref_map_literal_number--) { ; if (match(substr(tokenizer1_markup_buf, startpos, len), markupdefinitions1_shortref_map_delimiter_regexpes[tokenizer1_document_type_names["1"], docinfo1_current_shortref_map, shortref_map_literal_number])) { if (ero_pos != 0 && startpos + RSTART - 1 > ero_pos) { ; continue } if (stago_pos != 0 && startpos + RSTART - 1 > stago_pos) { ; continue } shortref_map_replacement_entity_name = markupdefinitions1_shortref_map_replacement_entities[tokenizer1_document_type_names["1"], docinfo1_current_shortref_map, shortref_map_literal_number] shortref_map_literal = markupdefinitions1_shortref_map_delimiter_literals[tokenizer1_document_type_names["1"], docinfo1_current_shortref_map, shortref_map_literal_number] ; tokenizer1_markup_buf = concat(substr(tokenizer1_markup_buf, 1, startpos - 1), substr(tokenizer1_markup_buf, startpos, RSTART - 1), "&", shortref_map_replacement_entity_name, ";", substr(tokenizer1_markup_buf, startpos + RSTART - 1 + RLENGTH)) len = len + length("&") + length(shortref_map_replacement_entity_name) + length(";") - RLENGTH ero_pos = startpos + RSTART - 1 if (stago_pos != 0) { stago_pos = sgmlutil_sgml_index3(tokenizer1_markup_buf, "<", pos) if (stago_pos >= startpos + len) stago_pos = 0 } ; break } } } } if (ero_pos == 0) { if (stago_pos != 0) len = stago_pos - startpos break } if (stago_pos != 0 && ero_pos > stago_pos) { tokenizer1_markup_length = stago_pos - tokenizer1_markup_start len = stago_pos - startpos break } if (ero_pos >= startpos + len) break ee_pos = pos while (ee_pos = sgmlutil_sgml_index3(tokenizer1_markup_buf, "\004", ee_pos)) { if (ee_pos > ero_pos) break locator1_pop_entity_reference() tokenizer1_markup_buf = (substr(tokenizer1_markup_buf, 1, ee_pos - 1) substr(tokenizer1_markup_buf, ee_pos + 1)) tokenizer1_markup_length = tokenizer1_markup_length - 1 len = len - 1 ero_pos = ero_pos - 1 } if (substr(tokenizer1_markup_buf, ero_pos + 1, 1) == "#") { if (substr(tokenizer1_markup_buf, ero_pos + 2, 1) == "x" || substr(tokenizer1_markup_buf, ero_pos + 2, 1) == "X") { if (!match(substr(tokenizer1_markup_buf, ero_pos + 3), /^[[:digit:]A-Fa-f]+/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", substr(tokenizer1_markup_buf, ero_pos, 3), "': invalid character entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } pos = ero_pos + 3 + RLENGTH } else { if (!match(substr(tokenizer1_markup_buf, ero_pos + 2), /^[[:digit:]]+/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", substr(tokenizer1_markup_buf, ero_pos, 2), "': invalid character entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } pos = ero_pos + 2 + RLENGTH } continue } if (!match(substr(tokenizer1_markup_buf, ero_pos + 1), /^(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))+/)) { { platformerrorhandler1_warning(concat("'", substr(tokenizer1_markup_buf, startpos, len), "': unquoted '&' character"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } pos = ero_pos + 1 ; continue } if (substr(tokenizer1_markup_buf, ero_pos + 1 + RLENGTH, 1) == ";") { ref_end = ero_pos + RLENGTH + 1 has_refc = 1 } else { ref_end = ero_pos + RLENGTH has_refc = 0 } if (ref_end >= startpos + len) break entity_ref = substr(tokenizer1_markup_buf, ero_pos + 1, ref_end - ero_pos - has_refc) if (sgmldecl1_syntax_namecase_entity == "YES") entity_ref = toupper(entity_ref) ; if (entity_ref in sgmldecl1_predefined_entity_replacement_text) { tokenizer1_markup_buf = concat(substr(tokenizer1_markup_buf, 1, ero_pos - 1), sgmldecl1_predefined_entity_replacement_text[entity_ref], substr(tokenizer1_markup_buf, ref_end + 1)) ; if (length(sgmldecl1_predefined_entity_replacement_text[entity_ref]) > 1 + length(entity_ref) + has_refc) { tokenizer1_markup_length = tokenizer1_markup_length + length(sgmldecl1_predefined_entity_replacement_text[entity_ref]) - (1 + length(entity_ref) + has_refc) len = len + length(sgmldecl1_predefined_entity_replacement_text[entity_ref]) - (1 + length(entity_ref) + has_refc) } else { tokenizer1_markup_length = tokenizer1_markup_length - (1 + length(entity_ref) + has_refc - length(sgmldecl1_predefined_entity_replacement_text[entity_ref])) len = len - (1 + length(entity_ref) + has_refc - length(sgmldecl1_predefined_entity_replacement_text[entity_ref])) } ; ; pos = ero_pos + 1 continue } else if (entity_ref in entitydefinitions1_general_entity_type && entitydefinitions1_general_entity_type[entity_ref] == "NDATA") { if (context_type != "PCDATA") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",entity_ref,"': invalid data entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (entitydefinitions1_general_entity_type[entity_ref] == "NDATA") { pos = ref_end + 1 continue } } else { if (entity_ref in entitydefinitions1_general_entity_type) { if (context_type != "PCDATA") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",entity_ref,"': invalid data entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; entitydefinitions1_general_entity_data_text_type[entity_ref] = entitydefinitions1_general_entity_type[entity_ref] } if (entity_ref in entitydefinitions1_entity_replacement_text) { entity_text = entitydefinitions1_entity_replacement_text[entity_ref] pos = ero_pos } else { ; if (substr(entity_ref, 1, 1) == "-") { ; return ero_pos - startpos + 1 } ; if (tokenizer1_running_as_template_subprocessing_context) if (!(entity_ref in entitydefinitions1_entity_replacement_file)) if (sgmldecl1_syntax_namecase_general != sgmldecl1_syntax_namecase_entity) if (entity_ref != toupper(entity_ref)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", entity_ref, "': referencing system-specific entity with lower or mixed case name in a template when SYNTAX NAMECASE GENERAL and SYNTAX NAMECASE ENTITY mismatch requires uppercase names for template parameters"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (entity_ref in entitydefinitions1_system_specific_general_entities || (sgmldecl1_features_minimize_implydef_entity == "YES" && !(entity_ref in entitydefinitions1_entity_replacement_file))) { entity_url = systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), entity_ref) if (!entity_url) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", entity_ref, "': unable to resolve system-specific entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ((entity_url ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) { entity_text = substr(entity_url, 10) ; split("", data_attributes_map) if (entity_ref in entitydefinitions1_general_entity_type && (entitydefinitions1_general_entity_type[entity_ref] == "CDATA" || entitydefinitions1_general_entity_type[entity_ref] == "SDATA") && entity_ref in entitydefinitions1_general_entity_notation && (entitydefinitions1_general_entity_declaration_set_name[entity_ref], entitydefinitions1_general_entity_notation[entity_ref]) in markupdefinitions1_notation_public_identifiers && markupdefinitions1_notation_public_identifiers[entitydefinitions1_general_entity_declaration_set_name[entity_ref], entitydefinitions1_general_entity_notation[entity_ref]] == "+//IDN www.w3c.org/TR/html5//NOTATION HTML Form Input Types//EN") { if (entity_text && !(entity_text ~ /^[\r\n]+$/)) { if (entity_ref in entitydefinitions1_general_entity_data_attributes) { if (entity_ref in entitydefinitions1_general_entity_data_attributes) { if (!sgmlutil_sgml_parseattrs(entitydefinitions1_general_entity_data_attributes[entity_ref], data_attributes_map)) { platformerrorhandler1_fatalError("internal error parsing normalized data attributes of data entity", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } entity_text = htmlforminputvaluechecker2_normalize_value(entity_text, data_attributes_map); if (!entity_text) { platformerrorhandler1_error(concat("entity ", entity_ref, ": non-valid entity text for notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } } ; } else { if ((entity_url ~ /^<[Oo][Ss][Ff][Ii][Ll][Ee]>/)) entity_url = substr(entity_url, 9) else if ((entity_url ~ /[<>]/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("entity ", entity_ref, ": '", entity_url, "': STAGO and/or ETAGO delimiters in system identifier not recognized as storage manager notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (substr(entity_url, 1, 1) != "/") { ; entity_url = path_resolve(process_cwd(), entity_url) } } } else { if (entity_ref in entitydefinitions1_entity_replacement_file) entity_url = entitydefinitions1_entity_replacement_file[entity_ref] ; if ((entity_url ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) entity_text = substr(entity_url, 10) } if (entity_url && (entity_url ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) { } else if (entity_url) { if (!(entity_url ~ /^https?:/)) { entity_url = substr(entity_url, 6) ; xmlhttprequest1_open("GET", entity_url, 0, "", "") xmlhttprequest1_send("") if (!xmlhttprequest1_status) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",entity_url,"': HTTP connection failure"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (xmlhttprequest1_status != 200) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",entity_url,"': received HTTP status code ", xmlhttprequest1_status), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } entity_text = xmlhttprequest1_responseText } else { if ((entity_url ~ /^<[Uu][Rr][Ll]>/)) entity_url = substr(entity_url, 6) entity_text = fs_readFileSync(entity_url, "utf-8") } sub(/\n$/, "", entity_text) split("", data_attributes_map) if (entity_ref in entitydefinitions1_general_entity_type && (entitydefinitions1_general_entity_type[entity_ref] == "CDATA" || entitydefinitions1_general_entity_type[entity_ref] == "SDATA") && entity_ref in entitydefinitions1_general_entity_notation && (entitydefinitions1_general_entity_declaration_set_name[entity_ref], entitydefinitions1_general_entity_notation[entity_ref]) in markupdefinitions1_notation_public_identifiers && markupdefinitions1_notation_public_identifiers[entitydefinitions1_general_entity_declaration_set_name[entity_ref], entitydefinitions1_general_entity_notation[entity_ref]] == "+//IDN www.w3c.org/TR/html5//NOTATION HTML Form Input Types//EN") { if (entity_text && !(entity_text ~ /^[\r\n]+$/)) { if (entity_ref in entitydefinitions1_general_entity_data_attributes) { if (entity_ref in entitydefinitions1_general_entity_data_attributes) { if (!sgmlutil_sgml_parseattrs(entitydefinitions1_general_entity_data_attributes[entity_ref], data_attributes_map)) { platformerrorhandler1_fatalError("internal error parsing normalized data attributes of data entity", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } entity_text = htmlforminputvaluechecker2_normalize_value(entity_text, data_attributes_map); if (!entity_text) { platformerrorhandler1_error(concat("entity ", entity_ref, ": non-valid entity text for notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } } ; } else { locator1_set_line_number(locator1_get_adjusted_line_number()) { platformerrorhandler1_error(concat("'",entity_ref,"': unresolved entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } pos = ref_end + 1 continue } } if (((entity_ref in entitydefinitions1_general_entity_data_text_type? entitydefinitions1_general_entity_data_text_type[entity_ref] : "") == "CDATA"? 1 : ((entity_ref in entitydefinitions1_general_entity_data_text_type? entitydefinitions1_general_entity_data_text_type[entity_ref] : "") == "SDATA"? 1 : ((entity_ref in entitydefinitions1_general_entity_data_text_type? entitydefinitions1_general_entity_data_text_type[entity_ref] : "") == "PI"? 0 : 1)))) { if (locator1_is_open_entity_reference(entity_ref)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",entity_ref,"': self-referential entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; ;; locator1_push_entity_reference(entity_ref); }; data_text_type = (entity_ref in entitydefinitions1_general_entity_data_text_type? entitydefinitions1_general_entity_data_text_type[entity_ref] : ""); ;; if (context_type == "\"") { gsub("\"", "\\"", entity_text); } else if (context_type == "'") { gsub("\"", "\\"", entity_text); gsub("'", "\\'", entity_text); } ;; needs_ee = (data_text_type == "CDATA"? 1 : (data_text_type == "SDATA"? 1 : (data_text_type == "PI"? 0 : 1))); if (data_text_type == "CDATA" || data_text_type == "SDATA") { if (context_type != "\"" && context_type != "'" && context_type != "CDATA") gsub(/&/, "\\&", entity_text); gsub(//, "\\>", entity_text);; pos += length(entity_text); ;; } if (needs_ee) tokenizer1_markup_buf = concat(substr(tokenizer1_markup_buf, 1, ero_pos - 1), entity_text, "\004", substr(tokenizer1_markup_buf, ref_end + 1)); else tokenizer1_markup_buf = concat(substr(tokenizer1_markup_buf, 1, ero_pos - 1), entity_text, substr(tokenizer1_markup_buf, ref_end + 1)); { } if (length(entity_text) > 1 + length(entity_ref) + has_refc) { len = len + (length(entity_text) - (1 + length(entity_ref) + has_refc)) + needs_ee; tokenizer1_markup_length = tokenizer1_markup_length + (length(entity_text) - (1 + length(entity_ref) + has_refc)) + needs_ee; } else { len = len - (1 + length(entity_ref) + has_refc - length(entity_text)) + needs_ee; tokenizer1_markup_length = tokenizer1_markup_length - (1 + length(entity_ref) + has_refc - length(entity_text)) + needs_ee; } ;; } ; } ; ee_pos = pos while (ee_pos = sgmlutil_sgml_index3(tokenizer1_markup_buf, "\004", ee_pos)) { ; if (ee_pos > startpos + len) break locator1_pop_entity_reference() len = len - 1 tokenizer1_markup_length = tokenizer1_markup_length - 1 tokenizer1_markup_buf = (substr(tokenizer1_markup_buf, 1, ee_pos - 1) substr(tokenizer1_markup_buf, ee_pos + 1)) } ; return tokenizer1_markup_length } function tokenizer1_determine_end_of_markup(startpos, i,angle_brackets,square_brackets,chr) { square_bracket_count = 0 angle_bracket_count = 0 for (i = startpos; i <= length(tokenizer1_markup_buf); i++) { chr = substr(tokenizer1_markup_buf, i, 1) if (chr == "-") { if (i < length(tokenizer1_markup_buf) && substr(tokenizer1_markup_buf, i + 1, 1) == "-") { for (i = i + 3; i <= length(tokenizer1_markup_buf); i++) if (substr(tokenizer1_markup_buf, i, 1) == "-" && substr(tokenizer1_markup_buf, i - 1, 1) == "-") break if (!(i <= length(tokenizer1_markup_buf))) return 0 } } else if (chr == "<") { angle_bracket_count++ } else if (chr == ">") { if (--angle_bracket_count == 0) if (square_bracket_count != 0) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(substr(tokenizer1_markup_buf, tokenizer1_markup_start)),": markup containing unbalanced DSO (declaration subset open) character"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { ; return i } } else if (chr == "[") { square_bracket_count++ } else if (chr == "]") { if (square_bracket_count-- == 0) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(substr(tokenizer1_markup_buf, tokenizer1_markup_start)),": unterminated markup"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else if (chr == "\"") { do i++ while (i <= length(tokenizer1_markup_buf) && substr(tokenizer1_markup_buf, i, 1) != "\"") if (!(i <= length(tokenizer1_markup_buf))) { ; return 0 } } else if (chr == "'") { do i++ while (i <= length(tokenizer1_markup_buf) && substr(tokenizer1_markup_buf, i, 1) != "'") if (!(i <= length(tokenizer1_markup_buf))) { ; return 0 } } } ; return 0 } function tokenizer1_delimit_markup( next_tag_begin_pos,next_tag_end_pos,next_blank_pos,element_name,tmparray,markup_stop,mse_pos,entity_ref,errmsg) { entity_ref = "" errmsg = "" ; ; ; if (tokenizer1_markup_start > length(tokenizer1_markup_buf)) return 0 if (substr(tokenizer1_markup_buf, tokenizer1_markup_start, 3) == "]]>") { tokenizer1_markup_event = "]" tokenizer1_markup_text = "]]>" markup_stop = tokenizer1_markup_start + 2 tokenizer1_markup_length = markup_stop - tokenizer1_markup_start + 1 return 1 } next_tag_begin_pos = sgmlutil_sgml_index3(tokenizer1_markup_buf, "<", tokenizer1_markup_start) ; if (next_tag_begin_pos == 0) { tokenizer1_markup_event = "C" markup_stop = length(tokenizer1_markup_buf) mse_pos = sgmlutil_sgml_index3(tokenizer1_markup_buf, "]]>", tokenizer1_markup_start) if (mse_pos != 0 && mse_pos < markup_stop) { markup_stop = mse_pos - 1 tokenizer1_markup_text = substr(tokenizer1_markup_buf, tokenizer1_markup_start, markup_stop - tokenizer1_markup_start + 1) ; } else { tokenizer1_markup_text = substr(tokenizer1_markup_buf, tokenizer1_markup_start) ; } } else if (next_tag_begin_pos > tokenizer1_markup_start) { tokenizer1_markup_event = "C" markup_stop = next_tag_begin_pos - 1 mse_pos = sgmlutil_sgml_index3(tokenizer1_markup_buf, "]]>", tokenizer1_markup_start) if (mse_pos != 0 && mse_pos < markup_stop) { markup_stop = mse_pos - 1 ; } ; tokenizer1_markup_text = substr(tokenizer1_markup_buf, tokenizer1_markup_start, markup_stop - tokenizer1_markup_start + 1) ; } else if (length(tokenizer1_markup_buf) >= tokenizer1_markup_start + 1 && substr(tokenizer1_markup_buf, tokenizer1_markup_start + 1, 1) == ">") { if (sgmldecl1_features_minimize_shorttag_starttag_empty != "YES") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(": using empty start-element tag when SGML declaration doesn't declare FEATURES MINIMIZE STARTTAG EMPTY YES", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (docinfo1_most_recently_ended_element == "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(": invalid use of empty start-element tag for document element", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } element_name = docinfo1_most_recently_ended_element tokenizer1_markup_event = 1 tokenizer1_markup_elmt = element_name markup_stop = tokenizer1_markup_start + 1 } else if (length(tokenizer1_markup_buf) >= tokenizer1_markup_start + 2 && substr(tokenizer1_markup_buf, tokenizer1_markup_start + 1, 2) == "/>") { if (sgmldecl1_features_minimize_shorttag_endtag_empty != "YES") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(": using empty end-element tag when SGML declaration doesn't declare FEATURES MINIMIZE ENDTAG EMPTY YES", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (stack5_len == 0) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(": invalid use of empty end-element tag for document element", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } element_name = stack5_stack[stack5_len] tokenizer1_markup_event = -1 tokenizer1_markup_elmt = element_name markup_stop = tokenizer1_markup_start + 2 } else { if (tokenizer1_markup_start + 2 > length(tokenizer1_markup_buf)) { return 0 } next_tag_end_pos = 0 if (substr(tokenizer1_markup_buf, tokenizer1_markup_start + 1, 1) == "!") { if (substr(tokenizer1_markup_buf, tokenizer1_markup_start + 2, 1) == "[") { next_tag_end_pos = sgmlutil_sgml_index3(tokenizer1_markup_buf, "[", tokenizer1_markup_start + 3) if (next_tag_end_pos == 0) return 0 markup_stop = next_tag_end_pos tokenizer1_markup_event = "[" tokenizer1_markup_text = substr(tokenizer1_markup_buf, tokenizer1_markup_start, markup_stop - tokenizer1_markup_start + 1) } else { markup_stop = tokenizer1_determine_end_of_markup(tokenizer1_markup_start) if (markup_stop == 0) return 0 tokenizer1_markup_event = "!" tokenizer1_markup_text = substr(tokenizer1_markup_buf, tokenizer1_markup_start, markup_stop - tokenizer1_markup_start + 1) } } else if (substr(tokenizer1_markup_buf, next_tag_begin_pos + 1, 1) == "?") { next_tag_end_pos = sgmlutil_sgml_index3(tokenizer1_markup_buf, ">", next_tag_begin_pos + 5) if (next_tag_end_pos == 0) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(substr(tokenizer1_markup_buf, next_tag_begin_pos)),": invalid processing instruction"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } markup_stop = next_tag_end_pos tokenizer1_markup_event = "?" tokenizer1_markup_text = substr(tokenizer1_markup_buf, tokenizer1_markup_start, markup_stop - tokenizer1_markup_start + 1) } else { next_tag_end_pos = tokenizer1_get_position_of_tag_end(next_tag_begin_pos) if (next_tag_end_pos == -1) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unquoted use of '<' character in content", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (next_tag_end_pos > length(tokenizer1_markup_buf)) { return 0 } if (match(substr(tokenizer1_markup_buf, next_tag_begin_pos + 1), /[[:space:]]/)) next_blank_pos = next_tag_begin_pos + RSTART else next_blank_pos = 0 element_name = "" if (substr(tokenizer1_markup_buf, next_tag_end_pos - 1, 1) == "/") { if (sgmldecl1_features_minimize_shorttag_starttag_netenabl != "IMMEDNET") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("empty elements not enabled (NETENABL NO)", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (next_blank_pos != 0 && next_blank_pos < next_tag_end_pos) { element_name = substr(tokenizer1_markup_buf, next_tag_begin_pos + 1, next_blank_pos - (next_tag_begin_pos + 1)) tokenizer1_markup_attrs = substr(tokenizer1_markup_buf, next_blank_pos + 1, next_tag_end_pos - next_blank_pos - 2) } else { element_name = substr(tokenizer1_markup_buf, next_tag_begin_pos + 1, next_tag_end_pos - (next_tag_begin_pos + 2)) tokenizer1_markup_attrs = "" } if (sgmldecl1_syntax_namecase_general == "YES") element_name = toupper(element_name) if (element_name in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[element_name] == "EMPTY" && sgmldecl1_features_minimize_emptynrm != "YES") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("element ",element_name,": invalid use of null end-tag/empty elements on element with declared EMPTY content (EMPTYNRM NO)"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tokenizer1_markup_event = 0 tokenizer1_markup_elmt = element_name markup_stop = next_tag_end_pos } else if (substr(tokenizer1_markup_buf, next_tag_begin_pos + 1, 1) == "/") { if (next_blank_pos != 0 && next_blank_pos < next_tag_end_pos) element_name = substr(tokenizer1_markup_buf, next_tag_begin_pos + 2, next_blank_pos - (next_tag_begin_pos + 2)) else element_name = substr(tokenizer1_markup_buf, next_tag_begin_pos + 2, next_tag_end_pos - (next_tag_begin_pos + 2)) if (element_name == "") if (element_name == "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(substr(tokenizer1_markup_buf, next_tag_begin_pos)),": invalid end-element tag"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_syntax_namecase_general == "YES") element_name = toupper(element_name) tokenizer1_markup_event = -1 tokenizer1_markup_elmt = element_name markup_stop = next_tag_end_pos } else { if (next_blank_pos != 0 && next_blank_pos < next_tag_end_pos) { element_name = substr(tokenizer1_markup_buf, next_tag_begin_pos + 1, next_blank_pos - (next_tag_begin_pos + 1)) tokenizer1_markup_attrs = substr(tokenizer1_markup_buf, next_blank_pos + 1, next_tag_end_pos - next_blank_pos - 1) } else { element_name = substr(tokenizer1_markup_buf, next_tag_begin_pos + 1, next_tag_end_pos - (next_tag_begin_pos + 1)) tokenizer1_markup_attrs = "" } if (element_name == "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(substr(tokenizer1_markup_buf, next_tag_begin_pos)),": invalid begin-element tag"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_syntax_namecase_general == "YES") element_name = toupper(element_name) tokenizer1_markup_event = 1 tokenizer1_markup_elmt = element_name markup_stop = next_tag_end_pos } } } if (tokenizer1_markup_event == "1" || tokenizer1_markup_event == "0") { errmsg = sgmlutil_is_not_valid_name_token(tokenizer1_markup_elmt, "element name") if (errmsg) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(errmsg, locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } tokenizer1_markup_length = markup_stop - tokenizer1_markup_start + 1 return 1 } function tokenizer1_is_data_specification_attribute(doctype, elementtype, name) { if (!elementtype) return 0 if (sgmldecl1_syntax_namecase_general == "YES") name = toupper(name) if ((doctype, elementtype, name) in markupdefinitions1_attribute_declared_values) if (markupdefinitions1_attribute_declared_values[doctype, elementtype, name] == "DATA") return 1 return 0 } function tokenizer1_parse_attribute_specification(startpos, len, net_compensation, attrarray, doctype, elementtype, notationname, suppress_entity_reference_expansion, name,value,effective_value,in_name,before_value,in_value,quotechar,i,token_found,ai,attributes,tmp,chr,markup_length_before,chars_processed,errmsg,num_attributes,num_own_attributes) { split("", attributes) tmp = "" chr = "" errmsg = "" ; name = "" value = "" in_name = 0 before_value = 0 in_value = 0 quotechar = "" token_found = "" if (net_compensation) len = len - 1 for (i = startpos; i < startpos + len; i++) { chr = substr(tokenizer1_markup_buf, i, 1) if (chr == "=") { if (in_value) value = (value chr) else if (in_name) { in_name = 0; before_value = 1 } else if (name) before_value = 1 else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("element ",elementtype,": ", "'", substr(tokenizer1_markup_buf, startpos, len),"'",": invalid attributes for element type"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else if (match(chr, /[ \t\n]/)) { if (in_value) if (!quotechar) { if (!match(value, /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", value, "': invalid name token for use as attribute value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_syntax_namecase_general == "YES") attrarray[toupper(name)] = value; else attrarray[name] = value name = "" value = "" in_name = 0 before_value = 0 in_value = 0 quotechar = "" token_found = "" } else value = (value chr) else if (in_name) in_name = 0 } else if (chr == "\"") if (in_value) { if (!quotechar) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unexpected double quote character", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (quotechar == "\"") { if (name == "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("invalid attribute list", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } errmsg = sgmlutil_is_not_valid_name_token(name, "attribute name") if (errmsg) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(errmsg, locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (suppress_entity_reference_expansion) { if (sgmldecl1_syntax_namecase_general == "YES") attrarray[toupper(name)] = value; else attrarray[name] = value } else if (!(value ~ /^&-/) && tokenizer1_is_data_specification_attribute(doctype, elementtype, name)) { if (sgmldecl1_syntax_namecase_general == "YES") attrarray[toupper(name)] = value; else attrarray[name] = value } else { markup_length_before = tokenizer1_markup_length; chars_processed = tokenizer1_expand_general_entity_references(i - length(value), length(value), quotechar); if (chars_processed != tokenizer1_markup_length) return i - length(value) + chars_processed - startpos; if (tokenizer1_markup_length > markup_length_before) { if (sgmldecl1_syntax_namecase_general == "YES") attrarray[toupper(name)] = substr(tokenizer1_markup_buf, i - length(value), length(value) + (tokenizer1_markup_length - markup_length_before)); else attrarray[name] = substr(tokenizer1_markup_buf, i - length(value), length(value) + (tokenizer1_markup_length - markup_length_before)); len = len + (tokenizer1_markup_length - markup_length_before); i = i + (tokenizer1_markup_length - markup_length_before); } else { if (sgmldecl1_syntax_namecase_general == "YES") attrarray[toupper(name)] = substr(tokenizer1_markup_buf, i - length(value), length(value) - (markup_length_before - tokenizer1_markup_length)); else attrarray[name] = substr(tokenizer1_markup_buf, i - length(value), length(value) - (markup_length_before - tokenizer1_markup_length)); len = len - (markup_length_before - tokenizer1_markup_length); i = i - (markup_length_before - tokenizer1_markup_length); } } name = "" value = "" in_name = 0 in_value = 0 quotechar = "" token_found = "" } else value = (value chr) } else if (before_value) { before_value = 0 in_value = 1 quotechar = "\"" } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("element ", elementtype, ": ", "'",substr(tokenizer1_markup_buf, startpos, len),"'", ": invalid attributes for element type"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (chr == "'") if (in_value) { if (!quotechar) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unexpected quote character", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (quotechar == "'") { if (name == "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("invalid attribute list", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } errmsg = sgmlutil_is_not_valid_name_token(name, "attribute name") if (errmsg) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(errmsg, locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (suppress_entity_reference_expansion) { if (sgmldecl1_syntax_namecase_general == "YES") attrarray[toupper(name)] = value; else attrarray[name] = value } else if (tokenizer1_is_data_specification_attribute(doctype, elementtype, name)) { if (sgmldecl1_syntax_namecase_general == "YES") attrarray[toupper(name)] = value; else attrarray[name] = value } else { markup_length_before = tokenizer1_markup_length; chars_processed = tokenizer1_expand_general_entity_references(i - length(value), length(value), quotechar); if (chars_processed != tokenizer1_markup_length) return i - length(value) + chars_processed - startpos; if (tokenizer1_markup_length > markup_length_before) { if (sgmldecl1_syntax_namecase_general == "YES") attrarray[toupper(name)] = substr(tokenizer1_markup_buf, i - length(value), length(value) + (tokenizer1_markup_length - markup_length_before)); else attrarray[name] = substr(tokenizer1_markup_buf, i - length(value), length(value) + (tokenizer1_markup_length - markup_length_before)); len = len + (tokenizer1_markup_length - markup_length_before); i = i + (tokenizer1_markup_length - markup_length_before); } else { if (sgmldecl1_syntax_namecase_general == "YES") attrarray[toupper(name)] = substr(tokenizer1_markup_buf, i - length(value), length(value) - (markup_length_before - tokenizer1_markup_length)); else attrarray[name] = substr(tokenizer1_markup_buf, i - length(value), length(value) - (markup_length_before - tokenizer1_markup_length)); len = len - (markup_length_before - tokenizer1_markup_length); i = i - (markup_length_before - tokenizer1_markup_length); } } name = "" value = "" in_name = 0 in_value = 0 quotechar = "" token_found = "" } else value = (value chr) } else if (before_value) { before_value = 0 in_value = 1 quotechar = "'" } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("element ", elementtype, ": ", "'",substr(tokenizer1_markup_buf, startpos, len),"'", ": invalid attributes for element type"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (in_value) value = (value chr) else if (in_name) name = (name chr) else if (before_value) { value = chr in_value = 1 before_value = 0 } else if (name) { value = name if (!sgmldecl1_features_minimize_shorttag_attrib_omitname) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("invalid attribute name omission (SGML MINIMIZE SHORTTAG ATTRIB OMITNAME NO)", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (notationname) { if (!((doctype, notationname) in markupdefinitions1_data_attributes)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", value, "': token not in token group for any data attributes of notation ", notationname), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tmp = markupdefinitions1_data_attributes[doctype, notationname] num_attributes = split(tmp, attributes, " ") for (ai = 0; ai < num_attributes; ai++) if (substr(markupdefinitions1_data_attribute_declared_values[doctype, notationname, attributes[1+ ai]], 1, 1) == "(") { if (sgmldecl1_syntax_namecase_general == "YES") effective_value = toupper(value) else effective_value = value if (match(effective_value, markupdefinitions1_data_attribute_declared_values[doctype, notationname, attributes[1+ ai]])) { attrarray[attributes[1+ ai]] = effective_value token_found = 1 break } } if (!token_found) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", value, "': token not in token group for any data attributes of notation ", notationname), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { ; if (!((doctype, elementtype) in markupdefinitions1_element_attributes)) { if (!((doctype, "#ALL") in markupdefinitions1_element_attributes)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", value, "': token not in token group for any attributes of element ", elementtype), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { tmp = markupdefinitions1_element_attributes[doctype, "#ALL"] num_own_attributes = 0 } } else { tmp = markupdefinitions1_element_attributes[doctype, elementtype] num_own_attributes = split(tmp, attributes, / /) if ((doctype, "#ALL") in markupdefinitions1_element_attributes) tmp = concat(tmp, " ", markupdefinitions1_element_attributes[doctype, "#ALL"]) } num_attributes = split(tmp, attributes, " ") for (ai = 0; ai < num_attributes; ai++) if (ai < num_own_attributes) { if (substr(markupdefinitions1_attribute_declared_values[doctype, elementtype, attributes[1+ ai]], 1, 1) == "(") { if (sgmldecl1_syntax_namecase_general == "YES") effective_value = toupper(value) else effective_value = value ; if (match(effective_value, markupdefinitions1_attribute_declared_values[doctype, elementtype, attributes[1+ ai]])) { attrarray[attributes[1+ ai]] = effective_value token_found = 1 break } } } else { if (substr(markupdefinitions1_attribute_declared_values[doctype, "#ALL", attributes[1+ ai]], 1, 1) == "(") { if (sgmldecl1_syntax_namecase_general == "YES") effective_value = toupper(value) else effective_value = value ; if (match(effective_value, markupdefinitions1_attribute_declared_values[doctype, "#ALL", attributes[1+ ai]])) { attrarray[attributes[1+ ai]] = effective_value token_found = 1 break } } } if (!token_found) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", value, "': token not in token group for any attributes of element ", elementtype), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } name = chr value = "" in_name = 1 before_value = 0 in_value = 0 quotechar = "" token_found = "" } else { name = chr in_name = 1 } } } if (before_value) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unterminated attribute assignment", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (in_value && quotechar) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unterminated attribute assignment", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (value) { ; if (!match(value, /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*$/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",value,"'",": invalid name token for use as attribute value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_syntax_namecase_general == "YES") attrarray[toupper(name)] = value; else attrarray[name] = value } else if (name) { value = name if (!sgmldecl1_features_minimize_shorttag_attrib_omitname) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("invalid attribute name omission (SGML MINIMIZE SHORTTAG ATTRIB OMITNAME NO)", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (notationname) { if (!((doctype, notationname) in markupdefinitions1_data_attributes)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",value,"': token not in token group for any data attributes of notation ",notationname), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tmp = markupdefinitions1_data_attributes[doctype, notationname] num_attributes = split(tmp, attributes, " ") for (ai = 0; ai < num_attributes; ai++) { if (substr(markupdefinitions1_data_attribute_declared_values[doctype, notationname, attributes[1+ ai]], 1, 1) == "(") { if (sgmldecl1_syntax_namecase_general == "YES") effective_value = toupper(value) else effective_value = value if (match(effective_value, markupdefinitions1_data_attribute_declared_values[doctype, notationname, attributes[1+ ai]])) { attrarray[attributes[1+ ai]] = effective_value token_found = 1 break } } } if (!token_found) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",value,"': token not in token group for any data attributes of notation ",notationname), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (!((doctype, elementtype) in markupdefinitions1_element_attributes)) { if (!((doctype, "#ALL") in markupdefinitions1_element_attributes)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", value, "': token not in token group for any attributes of element ", elementtype), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { tmp = markupdefinitions1_element_attributes[doctype, "#ALL"] num_own_attributes = 0 } } else { tmp = markupdefinitions1_element_attributes[doctype, elementtype] num_own_attributes = split(tmp, attributes, / /) if ((doctype, "#ALL") in markupdefinitions1_element_attributes) tmp = concat(tmp, " ", markupdefinitions1_element_attributes[doctype, "#ALL"]) } num_attributes = split(tmp, attributes, " ") for (ai = 0; ai < num_attributes; ai++) { if (ai < num_own_attributes) { ; if (substr(markupdefinitions1_attribute_declared_values[doctype, elementtype, attributes[1+ ai]], 1, 1) == "(") { if (sgmldecl1_syntax_namecase_general == "YES") effective_value = toupper(value) else effective_value = value ; if (match(effective_value, markupdefinitions1_attribute_declared_values[doctype, elementtype, attributes[1+ ai]])) { attrarray[attributes[1+ ai]] = effective_value token_found = 1 break } } } else { ; if (substr(markupdefinitions1_attribute_declared_values[doctype, "#ALL", attributes[1+ ai]], 1, 1) == "(") { if (sgmldecl1_syntax_namecase_general == "YES") effective_value = toupper(value) else effective_value = value ; if (match(effective_value, markupdefinitions1_attribute_declared_values[doctype, "#ALL", attributes[1+ ai]])) { attrarray[attributes[1+ ai]] = effective_value token_found = 1 break } } } } if (!token_found) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",value,"': token not in token group for any attributes of element ",elementtype), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } ; return i - startpos } function tokenizer1_dispatch_start_document() { validator1_startDocument() linkhandler2_startDocument() } function tokenizer1_dispatch_end_document() { docinfo1_check_idrefs_resolved() validator1_endDocument() linkhandler2_endDocument() } function tokenizer1_dispatch_start_element(elmt, attrs_array, attrs) { ; if (tokenizer1_debug_emit_ctx_token != "") console_info(concat("")) linkhandler2_startElement(elmt, attrs_array, attrs) ; docinfo1_current_shortref_map = "" } function tokenizer1_dispatch_end_element(elmt) { ; if (tokenizer1_debug_emit_ctx_token != "") console_info(concat("")) linkhandler2_endElement(elmt) ; docinfo1_content_reference = "" docinfo1_current_shortref_map = "" } function tokenizer1_dispatch_characters(text) { ; linkhandler2_characters(text) ; } function tokenizer1_dispatch_pi(name, text) { linkhandler2_processingInstruction(name, text) docinfo1_content_reference = "" } function tokenizer1_dispatch_start_dtd(name, publicid, systemid, text) { ; validator1_startDTD(name, publicid, systemid, text) if (!tokenizer1_instance_had_implied_prolog) linkhandler2_startDTD(name, publicid, systemid, text) } function tokenizer1_dispatch_end_dtd() { validator1_endDTD() linkhandler2_endDTD() } function tokenizer1_dispatch_start_entity(name) { if (tokenizer1_disable_data_entity_references) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", name, "': disallowed use of data entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator1_startEntity(name) linkhandler2_startEntity(name) } function tokenizer1_dispatch_end_entity(name) { validator1_endEntity(name) linkhandler2_endEntity(name) } function tokenizer1_dispatch_comment(text) { linkhandler2_comment(text) docinfo1_content_reference = "" } function tokenizer1_dispatch_start_cdata(text) { linkhandler2_startCDATA(text) docinfo1_content_reference = "" } function tokenizer1_dispatch_end_cdata() { linkhandler2_endCDATA() } function tokenizer1_dispatch_start_rcdata(text) { linkhandler2_startRCDATA(text) docinfo1_content_reference = "" } function tokenizer1_dispatch_end_rcdata() { linkhandler2_endRCDATA() } function tokenizer1_dispatch_start_include(text) { linkhandler2_startINCLUDE(text) docinfo1_content_reference = "" } function tokenizer1_dispatch_end_include() { linkhandler2_endINCLUDE() } function tokenizer1_dispatch_start_ignore(text) { linkhandler2_startIGNORE(text) docinfo1_content_reference = "" } function tokenizer1_dispatch_end_ignore() { linkhandler2_endIGNORE() } function tokenizer1_dispatch_notation_decl(name, pubid, sysid) { ; linkhandler2_notationDecl(name, pubid, sysid) } function tokenizer1_dispatch_unparsed_entity_decl(name, pubid, sysid, notation_name, data_attributes) { linkhandler2_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) } function tokenizer1_check_and_dispatch_start_element(elmt, attrs_array, attrs, content_msg) { docinfo1_content_reference = "" if (tokenizer1_document_type_declaration_no in tokenizer1_document_type_names) attributechecker1_check_attribute_array("", elmt, "", attrs_array, content_msg) tokenizer1_dispatch_start_element(elmt, attrs_array, attrs) } function tokenizer1_extract_keyword_from_marked_section_start(text, keywords,ignore_occurences,cdata_occurences,rcdata_occurences,include_occurences,temp_occurences) { keywords = substr(text, 4, length(text) - 4) keywords = entitydefinitions1_expand_parameter_entity_references(keywords) ; ignore_occurences = gsub(/[Ii][Gg][Nn][Oo][Rr][Ee]/, "", keywords) rcdata_occurences = gsub(/[Rr][Cc][Dd][Aa][Tt][Aa]/, "", keywords) cdata_occurences = gsub(/[Cc][Dd][Aa][Tt][Aa]/, "", keywords) include_occurences = gsub(/[[Ii][Nn][Cc][Ll][Uu][Dd][Ee]/, "", keywords) temp_occurences = gsub(/[Tt][Ee][Mm][Pp]/, "", keywords) gsub(/[ \t\n]/, "", keywords) if (keywords != "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",substr(text, 1, 8),"': unrecognized marked section keyword(s)"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (ignore_occurences > 0) return "IGNORE" else if (cdata_occurences > 0) return "CDATA" else if (rcdata_occurences > 0) return "RCDATA" else if (include_occurences > 0) return "INCLUDE" else if (temp_occurences > 0) return "INCLUDE" else return "" } function tokenizer1_create_data_entity_ref_match_regexp( n,re) { for (n in entitydefinitions1_general_entity_type) if (re) re = concat(re, "|(", n, ")") else re = concat("(", n, ")") if (!re) { tokenizer1_data_entity_reference_match_regexp = "$a" return } tokenizer1_data_entity_reference_match_regexp = concat("&(", re, ");") } function tokenizer1_dispatch_characters_with_entity_events(text, name,rstart,rlength) { if (!tokenizer1_data_entity_reference_match_regexp) tokenizer1_create_data_entity_ref_match_regexp() ; if (tokenizer1_data_entity_reference_match_regexp == "$a") { tokenizer1_dispatch_characters(text) return } while (match(text, tokenizer1_data_entity_reference_match_regexp)) { rstart = RSTART rlength = RLENGTH ; if (rstart > 1) tokenizer1_dispatch_characters(substr(text, 1, RSTART - 1)) name = substr(text, rstart + 1, rlength - 2) ; tokenizer1_dispatch_start_entity(name) tokenizer1_dispatch_end_entity(name) text = substr(text, rstart + rlength) ; } if (text) tokenizer1_dispatch_characters(text) } function tokenizer1_handle_marked_section_start(treat_omitted_marked_section_keyword_as_ignore, keyword,mse_pos,delimiter_length) { ; keyword = tokenizer1_extract_keyword_from_marked_section_start(tokenizer1_markup_text) if (keyword == "" && treat_omitted_marked_section_keyword_as_ignore) { ; keyword = "IGNORE" } if (keyword == "IGNORE") { ; tokenizer1_dispatch_start_ignore(tokenizer1_markup_text) tokenizer1_marked_section_nesting_level++ } else if (keyword == "CDATA" || keyword == "RCDATA") { mse_pos = sgmlutil_sgml_index3(tokenizer1_markup_buf, "]]>", tokenizer1_markup_start + tokenizer1_markup_length) ; if (mse_pos == 0) return "" ; delimiter_length = tokenizer1_markup_length tokenizer1_markup_length = mse_pos + 3 - tokenizer1_markup_start if (keyword == "CDATA") { tokenizer1_dispatch_start_cdata(substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length)) tokenizer1_markup_text = markupencoder1_encode_content(substr(tokenizer1_markup_buf, tokenizer1_markup_start + delimiter_length, tokenizer1_markup_length - 3 - delimiter_length)) } else { tokenizer1_dispatch_start_rcdata(substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length)) ; ; if (tokenizer1_expand_general_entity_references(tokenizer1_markup_start + delimiter_length, tokenizer1_markup_length - 3 - delimiter_length, "RCDATA") != tokenizer1_markup_length) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("invalid or unsupported (asynchronously fetched or link entity) entity references in marked section", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; ; tokenizer1_markup_text = markupencoder1_encode_content(substr(tokenizer1_markup_buf, tokenizer1_markup_start + delimiter_length, tokenizer1_markup_length - 3 - delimiter_length)) } validator1_characters(tokenizer1_markup_text) tokenizer1_dispatch_characters(tokenizer1_markup_text) if (keyword == "CDATA") tokenizer1_dispatch_end_cdata() else tokenizer1_dispatch_end_rcdata() } else { tokenizer1_dispatch_start_include(tokenizer1_markup_text) tokenizer1_marked_section_nesting_level++ tokenizer1_marked_section_include_level++ } return "1" } function tokenizer1_handle_marked_section_end() { if (tokenizer1_marked_section_nesting_level == 0) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unexpected marked section end", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (tokenizer1_marked_section_include_level == tokenizer1_marked_section_nesting_level) { tokenizer1_marked_section_include_level-- tokenizer1_dispatch_end_include() } else tokenizer1_dispatch_end_ignore() tokenizer1_marked_section_nesting_level-- } function tokenizer1_handle_pi(declaration_set_name, pi_name,pi_data) { pi_name = "" pi_data = "" ; if (match(substr(tokenizer1_markup_text, 3), /[[:space:]]+/)) { pi_name = substr(tokenizer1_markup_text, 3, RSTART - 1) pi_data = substr(tokenizer1_markup_text, 2 + RSTART + RLENGTH) ; sub(/[[:space:]].*$/, "", pi_name) sub(/[?]?>[[:space:]]*$/, "", pi_data) } else { pi_name = substr(tokenizer1_markup_text, 3, length(tokenizer1_markup_text) - 1 - 3) } if (pi_name == "IS10744") { ; if ((pi_data ~ /^FSIDR[[:space:]]+/)) tokenizer1_handle_fsidr_pi(declaration_set_name, pi_data) else if ((pi_data ~ /^ArcBase[[:space:]]+/)) tokenizer1_handle_arcbase_pi(declaration_set_name, pi_data) else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", pi_name, " ", pi_data, "': unrecognized IS10744 processing instruction"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else if (pi_name == "sgmlweb") { if (pi_data != "ssr") { platformerrorhandler1_warning(concat("'",pi_data,"': unhandled sgmlweb processing instruction data"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (tokenizer1_in_prolog) { platformerrorhandler1_warning(concat("'",pi_name,"': unhandled processing instruction"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else tokenizer1_dispatch_pi(pi_name, pi_data) } function tokenizer1_handle_fsidr_pi(declaration_set_name, pi_data, sm_notations_arr,sm_notation_index,sm_notation_name) { split("", sm_notations_arr) sm_notation_index = 1 sm_notation_name = "" sub(/^FSIDR[[:space:]]+/, "", pi_data) if (sgmldecl1_syntax_namecase_general == "YES") pi_data = toupper(pi_data) split(pi_data, sm_notations_arr, /[[:space:]]+/) for (sm_notation_index in sm_notations_arr) { ; sm_notation_name = sm_notations_arr[sm_notation_index] if (index(" " "EXEC SCRIPT MODULE STRFTIME STRPTIME" " ", " " toupper(sm_notation_name) " ")) { tokenizer1_check_storage_manager_notation_declared(declaration_set_name, sm_notation_name) continue } tokenizer1_derive_storage_manager_notation_metadata(declaration_set_name, sm_notation_name) } gsub(/[[:space:]]+/, " ", pi_data) if (markupdefinitions1_storage_manager_notation_names[declaration_set_name]) markupdefinitions1_storage_manager_notation_names[declaration_set_name] = concat(markupdefinitions1_storage_manager_notation_names[declaration_set_name], " ", pi_data) else markupdefinitions1_storage_manager_notation_names[declaration_set_name] = pi_data } function tokenizer1_derive_storage_manager_notation_metadata(declaration_set_name, sm_notation_name, superdcn_name) { superdcn_name = "" ; if (!index(" " markupdefinitions1_notation_names[declaration_set_name] " ", " " sm_notation_name " ")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sm_notation_name, "': invalid or undeclared storage manager notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_syntax_namecase_general == "YES") { if (!((declaration_set_name, sm_notation_name, "SUPERDCN") in markupdefinitions1_data_attribute_default_values)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sm_notation_name,"': invalid custom data storage manager notation: lacks #FIXED value for SUPERDCN attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } superdcn_name = markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation_name, "SUPERDCN"] } else { if (!((declaration_set_name, sm_notation_name, "superdcn") in markupdefinitions1_data_attribute_default_values)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sm_notation_name,"': invalid custom data storage manager notation: lacks #FIXED value for superdcn attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } superdcn_name = markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation_name, "superdcn"] } ; tokenizer1_copy_storage_manager_notation_metadata(declaration_set_name, superdcn_name, sm_notation_name) if (sgmldecl1_syntax_namecase_general == "YES") { if ((declaration_set_name, superdcn_name, "SUPERDCN") in markupdefinitions1_data_attribute_default_values) { superdcn_name = markupdefinitions1_data_attribute_default_values[declaration_set_name, superdcn_name, "SUPERDCN"] ; if ((declaration_set_name, superdcn_name, "SUPERDCN") in markupdefinitions1_data_attribute_default_values) { { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sm_notation_name,"': invalid custom data storage manager notation: at most two superdcn derivation steps from a natively supported data storage notation (exec, script, url) admitted"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } tokenizer1_copy_storage_manager_notation_metadata(declaration_set_name, superdcn_name, sm_notation_name) } } else { if ((declaration_set_name, superdcn_name, "superdcn") in markupdefinitions1_data_attribute_default_values) { superdcn_name = markupdefinitions1_data_attribute_default_values[declaration_set_name, superdcn_name, "superdcn"] ; if ((declaration_set_name, superdcn_name, "superdcn") in markupdefinitions1_data_attribute_default_values) { { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sm_notation_name,"': invalid custom data storage manager notation: at most two superdcn derivation steps from a natively supported data storage notation (exec, script, url) admitted"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } tokenizer1_copy_storage_manager_notation_metadata(declaration_set_name, superdcn_name, sm_notation_name) } } ; if (sgmldecl1_syntax_namecase_general == "YES") { if (superdcn_name != "EXEC" && superdcn_name != "URL" && superdcn_name != "MODULE" && superdcn_name != "SCRIPT") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sm_notation_name,"': invalid custom data storage manager notation: must have 'EXEC', 'URL', 'MODULE', or 'SCRIPT' as #FIXED value for superdcn attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (superdcn_name != "exec" && superdcn_name != "url" && superdcn_name != "module" && superdcn_name != "script") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sm_notation_name,"': invalid custom data storage manager notation: must have 'exec', 'url', 'module', or 'script' as #FIXED value for superdcn attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } function tokenizer1_handle_arcbase_pi(declaration_set_name, pi_data, i) { i = 1 for (i = 1; i <= tokenizer1_declaration_subset_count; i++) if (i in tokenizer1_link_process_names && declaration_set_name == tokenizer1_link_process_names[i]) return { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unsupported use of the IS10744 ArcBase processing instruction outside a link declaration set", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } function tokenizer1_check_storage_manager_notation_declared(declaration_set_name, notation_name) { if (sgmldecl1_syntax_namecase_general == "YES") notation_name = toupper(notation_name) if (!(declaration_set_name in markupdefinitions1_notation_names) || !index(" " markupdefinitions1_notation_names[declaration_set_name] " ", " " notation_name " ")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", notation_name, "': use of undeclared or prohibited storage manager"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } function tokenizer1_declare_url_storage_manager_notation(declaration_set_name, name,empty_array) { name = "" split("", empty_array) if (sgmldecl1_syntax_namecase_general == "YES") name = "URL" else name = "url" if (declaration_set_name in markupdefinitions1_notation_names) { if (index(" " markupdefinitions1_notation_names[declaration_set_name] " ", " " name " ")) return markupdefinitions1_notation_names[declaration_set_name] = (markupdefinitions1_notation_names[declaration_set_name] ((markupdefinitions1_notation_names[declaration_set_name] && name)? " " : "") name) } else markupdefinitions1_notation_names[declaration_set_name] = name markupdefinitions1_notation_public_identifiers[declaration_set_name, name] = "-//IETF/RFC1738//NOTATION FSISM PORTABLE Uniform Resource Locator//EN" if (sgmldecl1_syntax_namecase_general == "YES") markupdefinitions1_store_data_attribute_decl(declaration_set_name, name, "BASE", "CDATA", "#IMPLIED", "", "", empty_array) else markupdefinitions1_store_data_attribute_decl(declaration_set_name, name, "base", "CDATA", "#IMPLIED", "", "", empty_array) } function tokenizer1_is_storage_manager_notation_declared(declaration_set_name, storage_manager_notation) { if (!(declaration_set_name in markupdefinitions1_storage_manager_notation_names)) return "" if (sgmldecl1_syntax_namecase_general == "YES") return index(" " markupdefinitions1_storage_manager_notation_names[declaration_set_name] " ", " " toupper(storage_manager_notation) " ") else return index(" " markupdefinitions1_storage_manager_notation_names[declaration_set_name] " ", " " storage_manager_notation " ") } function tokenizer1_copy_storage_manager_notation_metadata(declaration_set_name, sm_notation_to_copy_from, sm_notation_to_copy_to, data_attributes_arr,data_attribute_index,empty_array) { split("", data_attributes_arr) split("", empty_array) if (sgmldecl1_syntax_namecase_general == "YES") { sm_notation_to_copy_from = toupper(sm_notation_to_copy_from) sm_notation_to_copy_to = toupper(sm_notation_to_copy_to) } if (!((declaration_set_name, sm_notation_to_copy_from) in markupdefinitions1_data_attributes)) return split(markupdefinitions1_data_attributes[declaration_set_name, sm_notation_to_copy_from], data_attributes_arr, / /) for (data_attribute_index in data_attributes_arr) { if (!((declaration_set_name, sm_notation_to_copy_to) in markupdefinitions1_data_attributes) || !index(" " markupdefinitions1_data_attributes[declaration_set_name, sm_notation_to_copy_to] " ", " " data_attributes_arr[data_attribute_index] " ")) { markupdefinitions1_store_data_attribute_decl(declaration_set_name, sm_notation_to_copy_to, data_attributes_arr[data_attribute_index], markupdefinitions1_data_attribute_declared_values[declaration_set_name, sm_notation_to_copy_from, data_attributes_arr[data_attribute_index]], markupdefinitions1_data_attribute_default_semantics[declaration_set_name, sm_notation_to_copy_from, data_attributes_arr[data_attribute_index]], markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation_to_copy_from, data_attributes_arr[data_attribute_index]], "", empty_array) } else { ; } } } function tokenizer1_rewrite_custom_into_base_storage_manager_notation_fsi(declaration_set_name, context_msg, sysid, fsi_attrs, sm_notation,fsi_attr,rewritten_sysid,fsi_content,content_source_attribute,data_attributes_arr,data_attribute_index) { sm_notation = "" fsi_attr = "" rewritten_sysid = "" fsi_content = "" content_source_attribute = "" split("", data_attributes_arr) ; if (!(declaration_set_name in markupdefinitions1_storage_manager_notation_names)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(context_msg, ": '", sysid, "': STAGO and/or ETAGO delimiters in system identifier not recognized as storage manager notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } sm_notation = sysid ; sub(/^.*$/, "", sm_notation) sub(/ +.*$/, "", sm_notation) if (sgmldecl1_syntax_namecase_general == "YES") sm_notation = toupper(sm_notation) ; ; if (!(index(" " markupdefinitions1_storage_manager_notation_names[declaration_set_name] " ", " " sm_notation " "))) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(context_msg, ": '", sysid, "': STAGO and/or ETAGO delimiters in system identifier not recognized as storage manager notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (match(sysid, /^<([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*[[:space:]]+(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?([[:space:]]+([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?)*)+>/)) { fsi_content = substr(sysid, RSTART + RLENGTH) ; if (!sgmlutil_sgml_parseattrs(substr(sysid, length(sm_notation) + length("<") + length(" "), RLENGTH - length(sm_notation) - (length("<") + length(" ") + length(">")) + 1), fsi_attrs)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid formal system identifier attribute specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (!match(sysid, /^<([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*[[:space:]]*>/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid formal system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } fsi_content = substr(sysid, RSTART + RLENGTH) } fsi_content = tokenizer1_fetch_effective_notational_content(fsi_content, declaration_set_name, sm_notation, sysid) ; if (sgmldecl1_syntax_namecase_general == "YES") { sgmlutil_convert_attribute_names_to_uppercase(fsi_attrs) attributechecker1_check_attribute_array(declaration_set_name, "", sm_notation, fsi_attrs, concat("storage manager notation data attributes for formal system identifier '", sysid, "'")) } else attributechecker1_check_attribute_array(declaration_set_name, "", sm_notation, fsi_attrs, concat("storage manager notation data attributes for formal system identifier '", sysid, "'")) if ("SUPERDCN" in fsi_attrs && fsi_attrs["SUPERDCN"] == "SCRIPT") fsi_attrs["notation_name"] = sm_notation else if ("superdcn" in fsi_attrs && fsi_attrs["superdcn"] == "script") fsi_attrs["notation_name"] = sm_notation else if ("SUPERDCN" in fsi_attrs && (declaration_set_name, fsi_attrs["SUPERDCN"], "SUPERDCN") in markupdefinitions1_data_attribute_default_values && markupdefinitions1_data_attribute_default_values[declaration_set_name, fsi_attrs["SUPERDCN"], "SUPERDCN"] == "SCRIPT") fsi_attrs["notation_name"] = fsi_attrs["SUPERDCN"] else if ("superdcn" in fsi_attrs && (declaration_set_name, fsi_attrs["superdcn"], "superdcn") in markupdefinitions1_data_attribute_default_values && markupdefinitions1_data_attribute_default_values[declaration_set_name, fsi_attrs["superdcn"], "superdcn"] == "script") fsi_attrs["notation_name"] = fsi_attrs["superdcn"] delete fsi_attrs["superdcn"] delete fsi_attrs["SUPERDCN"] if (sgmldecl1_syntax_namecase_general == "YES") { if (!((declaration_set_name, sm_notation, "SUPERDCN") in markupdefinitions1_data_attribute_default_values)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': internal error: invalid custom data storage manager notation: lacks #FIXED value for SUPERDCN attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ((declaration_set_name, markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, "SUPERDCN"], "SUPERDCN") in markupdefinitions1_data_attribute_default_values) { sm_notation = markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, "SUPERDCN"] ; if ((declaration_set_name, sm_notation) in markupdefinitions1_data_attributes) { split(markupdefinitions1_data_attributes[declaration_set_name, sm_notation], data_attributes_arr, / /) for (data_attribute_index in data_attributes_arr) { if (data_attributes_arr[data_attribute_index] == "SUPERDCN") continue if ((declaration_set_name, sm_notation, data_attributes_arr[data_attribute_index]) in markupdefinitions1_data_attribute_default_values) if (data_attributes_arr[data_attribute_index] in fsi_attrs) { if ((declaration_set_name, sm_notation, data_attributes_arr[data_attribute_index]) in markupdefinitions1_data_attribute_default_values && markupdefinitions1_data_attribute_default_semantics[declaration_set_name, sm_notation, data_attributes_arr[data_attribute_index]] == "#FIXED" && markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, data_attributes_arr[data_attribute_index]] != fsi_attrs[data_attributes_arr[data_attribute_index]]) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid, "': storage manager notation: ", sm_notation, ": data attribute ", data_attributes_arr[data_attribute_index], ": storage manager notation data attribute value '", fsi_attrs[data_attributes_arr[data_attribute_index]], "' doesn't match #FIXED declared default value '", markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, data_attributes_arr[data_attribute_index]], "'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else fsi_attrs[data_attributes_arr[data_attribute_index]] = markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, data_attributes_arr[data_attribute_index]] } } } rewritten_sysid = concat("<", markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, "SUPERDCN"], " ", sgmlutil_sgml_formatattrs(fsi_attrs), ">", fsi_content) } else { if (!((declaration_set_name, sm_notation, "superdcn") in markupdefinitions1_data_attribute_default_values)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': internal error: invalid custom data storage manager notation: lacks #FIXED value for superdcn attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ((declaration_set_name, markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, "superdcn"], "superdcn") in markupdefinitions1_data_attribute_default_values) { sm_notation = markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, "superdcn"] ; if ((declaration_set_name, sm_notation) in markupdefinitions1_data_attributes) { split(markupdefinitions1_data_attributes[declaration_set_name, sm_notation], data_attributes_arr, / /) for (data_attribute_index in data_attributes_arr) { if (data_attributes_arr[data_attribute_index] == "superdcn") continue if ((declaration_set_name, sm_notation, data_attributes_arr[data_attribute_index]) in markupdefinitions1_data_attribute_default_values) if (data_attributes_arr[data_attribute_index] in fsi_attrs) { if ((declaration_set_name, sm_notation, data_attributes_arr[data_attribute_index]) in markupdefinitions1_data_attribute_default_values && markupdefinitions1_data_attribute_default_semantics[declaration_set_name, sm_notation, data_attributes_arr[data_attribute_index]] == "#FIXED" && markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, data_attributes_arr[data_attribute_index]] != fsi_attrs[data_attributes_arr[data_attribute_index]]) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid, "': storage manager notation: ", sm_notation, ": data attribute ", data_attributes_arr[data_attribute_index], ": storage manager notation data attribute value '", fsi_attrs[data_attributes_arr[data_attribute_index]], "' doesn't match #FIXED declared default value '", markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, data_attributes_arr[data_attribute_index]], "'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else fsi_attrs[data_attributes_arr[data_attribute_index]] = markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, data_attributes_arr[data_attribute_index]] } } } rewritten_sysid = concat("<", markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, "superdcn"], " ", sgmlutil_sgml_formatattrs(fsi_attrs), ">", fsi_content) } ; return rewritten_sysid } function tokenizer1_fetch_effective_notational_content(fsi_content, declaration_set_name, sm_notation, sysid, content_source_attribute) { content_source_attribute = "" ; if (sgmldecl1_syntax_namecase_general == "YES") { if ((declaration_set_name, sm_notation) in markupdefinitions1_data_attributes && index(" " markupdefinitions1_data_attributes[declaration_set_name, sm_notation] " ", " " "NOTNAMES" " ")) { if (!((declaration_set_name, sm_notation, "NOTNAMES") in markupdefinitions1_data_attribute_default_values)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid custom data storage manager notation: NOTNAMES attribute requires #FIXED default value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } content_source_attribute = markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, "NOTNAMES"] if (!(content_source_attribute ~ /^#NOTCONT[[:space:]]+([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*[[:space:]]*/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid custom data storage manager notation: unrecognized content of NOTNAMES attribute, expecting '#NOTCONT '"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } sub(/^#NOTCONT[[:space:]]+/, "", content_source_attribute) sub(/[[:space:]]*$/, "", content_source_attribute) content_source_attribute = toupper(content_source_attribute) if (content_source_attribute == "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid custom data storage manager notation: unrecognized content of NOTNAMES attribute, expecting '#NOTCONT '"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!index(" " markupdefinitions1_data_attributes[declaration_set_name, sm_notation] " ", " " content_source_attribute " ")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid custom data storage manager notation: '", content_source_attribute , "': content source attribute specified in NOTNAMES not declared as data attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((declaration_set_name, sm_notation, content_source_attribute) in markupdefinitions1_data_attribute_default_values)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid custom data storage manager notation: '", content_source_attribute , "': content source attribute specified in NOTNAMES must have declared or #FIXED default"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (fsi_content != "" && fsi_content != markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, content_source_attribute]) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': storage object identifier doesn't match preconfigured default"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } fsi_content = markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, content_source_attribute] } } else { if ((declaration_set_name, sm_notation) in markupdefinitions1_data_attributes && index(" " markupdefinitions1_data_attributes[declaration_set_name, sm_notation] " ", " " "NotNames" " ")) { ; if (!((declaration_set_name, sm_notation, "NotNames") in markupdefinitions1_data_attribute_default_values)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid custom data storage manager notation: NotNames attribute requires #FIXED default value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } content_source_attribute = markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, "NotNames"] ; if (!(content_source_attribute ~ /^#NOTCONT[[:space:]]+([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*[[:space:]]*/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid custom data storage manager notation: unrecognized content of NOTNAMES attribute, expecting '#NOTCONT '"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } sub(/^#NOTCONT[[:space:]]+/, "", content_source_attribute) sub(/[[:space:]]*$/, "", content_source_attribute) ; if (content_source_attribute == "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid custom data storage manager notation: unrecognized content of NotNames attribute, expecting '#NOTCONT '"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!index(" " markupdefinitions1_data_attributes[declaration_set_name, sm_notation] " ", " " content_source_attribute " ")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid custom data storage manager notation: '", content_source_attribute , "': content source attribute specified in NotNames not declared as data attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((declaration_set_name, sm_notation, content_source_attribute) in markupdefinitions1_data_attribute_default_values)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid custom data storage manager notation: '", content_source_attribute , "': content source attribute specified in NotNames must have declared or #FIXED default"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (fsi_content != "" && fsi_content != markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, content_source_attribute]) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': storage object identifier doesn't match preconfigured default"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } fsi_content = markupdefinitions1_data_attribute_default_values[declaration_set_name, sm_notation, content_source_attribute] } else { ; } } ; return fsi_content } function tokenizer1_normalize_url_storage_manager_notation_system_identifier(declaration_set_name, sysid, sysid_tmp,value_of_base_parameter,fsi_attr,fsi_attrs,href_value,r) { sysid_tmp = "" value_of_base_parameter = "" fsi_attr = "" split("", fsi_attrs) href_value = "" r = "" r = sysid if (!(match(sysid, /^<[Uu][Rr][Ll]([[:space:]]+(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?([[:space:]]+([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?)*)?)?>/))) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid formal system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } sysid_tmp = substr(sysid, RSTART + RLENGTH) if (!sgmlutil_sgml_parseattrs(substr(sysid, 5, RLENGTH - 5), fsi_attrs)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid formal system identifier attribute specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; tokenizer1_declare_url_storage_manager_notation(declaration_set_name) ; if (sgmldecl1_syntax_namecase_general == "YES") { sgmlutil_convert_attribute_names_to_uppercase(fsi_attrs) attributechecker1_check_attribute_array(declaration_set_name, "", "URL", fsi_attrs, concat("storage manager notation data attributes for formal system identifier '", sysid, "'")) } else attributechecker1_check_attribute_array(declaration_set_name, "", "url", fsi_attrs, concat("storage manager notation data attributes for formal system identifier '", sysid, "'")) if ("base" in fsi_attrs) value_of_base_parameter = fsi_attrs["base"] else if ("BASE" in fsi_attrs) value_of_base_parameter = fsi_attrs["BASE"] if (value_of_base_parameter) { href_value = concat(value_of_base_parameter, "/", sysid_tmp) urn1_set_href(href_value) if (urn1_is_invalid) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", href_value, "': invalid URI/URN for use as public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; if (!urn1_protocol && !urn1_auth) if (substr(urn1_pathname, 1, 1) == "/") r = concat("", substr(urn1_pathname, 2)) else r = concat("", urn1_pathname, urn1_search, urn1_hash) else r = concat("", urn1_href) } ; return r } function tokenizer1_parse_markup_decl(decl, keyword,errmsg,tmp1,tmp2,tmp3,r,declaration_set_name) { errmsg = "" r = "" declaration_set_name = "" if (decl == "") { return decl } if (!match(decl, /[ \t\n]/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": unterminated markup declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } keyword = toupper(substr(decl, 3, RSTART - 3)) ; { tmp1 = decl ; while (match(tmp1, /(--([^-]|(-[^-]))*--)/)) { tmp3 = substr(tmp1, 1, RSTART - 1); if ((gsub("\"", "\"", tmp3) % 2) == 0) { tmp1 = (substr(tmp1, 1, RSTART - 1) substr(tmp1, RSTART + RLENGTH)); decl = (substr(decl, 1, RSTART - 1) substr(decl, RSTART + RLENGTH)); } else { tmp2 = sgmlutil_sgml_index3(tmp1, "\"", RSTART); if (!tmp2) { errmsg = "unbalanced quote in declaration"; break; } tmp1 = (sprintf(concat("%", tmp2 + 1, "s"), "") substr(tmp1, tmp2 + 2)); } } } if (errmsg != "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",decl,"': ",errmsg), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (keyword != "ENTITY" && keyword != "NOTATION") { decl = entitydefinitions1_expand_parameter_entity_references(decl) { tmp1 = decl ; while (match(tmp1, /(--([^-]|(-[^-]))*--)/)) { tmp3 = substr(tmp1, 1, RSTART - 1); if ((gsub("\"", "\"", tmp3) % 2) == 0) { tmp1 = (substr(tmp1, 1, RSTART - 1) substr(tmp1, RSTART + RLENGTH)); decl = (substr(decl, 1, RSTART - 1) substr(decl, RSTART + RLENGTH)); } else { tmp2 = sgmlutil_sgml_index3(tmp1, "\"", RSTART); if (!tmp2) { errmsg = "unbalanced quote in declaration"; break; } tmp1 = (sprintf(concat("%", tmp2 + 1, "s"), "") substr(tmp1, tmp2 + 2)); } } } if (errmsg != "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(errmsg, locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (keyword != "LINK" && keyword != "IDLINK") r = decl } if (tokenizer1_document_type_declaration_no in tokenizer1_document_type_names) declaration_set_name = tokenizer1_document_type_names[tokenizer1_document_type_declaration_no] else declaration_set_name = tokenizer1_link_process_names[tokenizer1_document_type_declaration_no] ; if (tokenizer1_document_type_declaration_no in tokenizer1_link_process_names) { ; ; if (keyword == "ENTITY") r = tokenizer1_parse_entity_decl(declaration_set_name, decl) else if (keyword == "ATTLIST") tokenizer1_parse_attlist_decl(declaration_set_name, decl) else if (keyword == "LINK") { ; if (index(" " markupdefinitions1_link_sets[declaration_set_name] " ", " " "#IDLINK" " ")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("IDLINK declaration must be last link set declaration in declaration set", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } markupdefinitions1_parse_linkset_decl(declaration_set_name, decl) } else if (keyword == "IDLINK") { ; markupdefinitions1_parse_linkset_decl(declaration_set_name, decl) } else if (keyword == "NOTATION") r = tokenizer1_parse_notation_decl(declaration_set_name, decl) else { platformerrorhandler1_warning(concat("'",keyword,"': unknown or unhandled markup declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else { ; if (keyword == "ENTITY") r = tokenizer1_parse_entity_decl(declaration_set_name, decl) else if (keyword == "ELEMENT") markupdefinitions1_parse_element_decl(declaration_set_name, decl) else if (keyword == "ATTLIST") tokenizer1_parse_attlist_decl(declaration_set_name, decl) else if (keyword == "NOTATION") r = tokenizer1_parse_notation_decl(declaration_set_name, decl) else if (keyword == "SHORTREF") r = markupdefinitions1_parse_shortref_map_decl(declaration_set_name, decl) else if (keyword == "USEMAP") r = markupdefinitions1_parse_shortref_use_decl(declaration_set_name, decl) else if (keyword == "LINK") { platformerrorhandler1_warning(concat("'",keyword,"': invalid markup declaration for document type declaration set"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else if (keyword == "IDLINK") { platformerrorhandler1_warning(concat("'",keyword,"': invalid markup declaration for document type declaration set"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else { platformerrorhandler1_warning(concat("'",keyword,"': unknown or unhandled markup declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } return r } function tokenizer1_parse_entity_decl(declaration_set_name, decl, rlength_save,is_param_entity_decl,is_system_specific_entity_decl,name,text,entity_type,contents,pubid,sysid,notation_name,value,r,errmsg,sgmlstdin_content,sysid_tmp,exec_params,fsi_attrs,fsi_attr,fsi_attrs_spec,child,expansion_result,value_of_in_parameter,exec_fsi_attrs_populated_and_validated,v,bracketed_text_type,value_of_module_parameter,systemobj,sql_query,value_of_cmd_parameter,kv,sysid_before_rewriting,replacement_text) { contents = "" pubid = "" sysid = "" value = "" r = "" errmsg = "" sgmlstdin_content = "" sysid_tmp = "" split("", exec_params) split("", fsi_attrs) fsi_attr = "" fsi_attrs_spec = "" expansion_result = "" value_of_in_parameter = "" v = "" bracketed_text_type = "" value_of_module_parameter = "" split("", systemobj) sql_query = "" value_of_cmd_parameter = "" kv = "" sysid_before_rewriting = "" replacement_text = "" ; sub(/^$/, "", decl) if (match(decl, /^[ \t\n]+%/)) { is_param_entity_decl = "1" decl = substr(decl, index(decl, "%") + 1) ; } sub(/^[ \t\n]+/, "", decl) if (!match(decl, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } name = substr(decl, RSTART, RLENGTH) decl = substr(decl, RLENGTH + 1) if (sgmldecl1_syntax_namecase_entity == "YES") name = toupper(name) ; if (is_param_entity_decl) { if (name in entitydefinitions1_parameter_entity_replacement_text) { ; return "" } } else if (name in entitydefinitions1_entity_replacement_text || name in entitydefinitions1_entity_replacement_file || name in entitydefinitions1_system_specific_general_entities) { ; return "" } sub(/^[ \t\n]+/, "", decl) ; if (substr(decl, 1, 1) == "%") { if (is_param_entity_decl && tokenizer1_restrict_parameter_entity_expansion) { if (match(decl, /^%[A-Za-z0-9_-]+/)) { rlength_save = RLENGTH expansion_result = entitydefinitions1_expand_parameter_entity_references(substr(decl, 1, rlength_save)) ; if ((expansion_result ~ /^[Ss][Yy][Ss][Tt][Ee][Mm]([ \t\n])+.") else if (bracketed_text_type == "ENDTAG") value = concat("") else if (bracketed_text_type == "MS") value = concat("") else if (bracketed_text_type == "MD") value = concat("") else if (name in entitydefinitions1_parameter_entity_data_text_type && entitydefinitions1_parameter_entity_data_text_type[name] == "PI") value = concat("") else if (name in entitydefinitions1_general_entity_data_text_type && entitydefinitions1_general_entity_data_text_type[name] == "PI") value = concat("") ; if (is_param_entity_decl) entitydefinitions1_parameter_entity_replacement_text[name] = value else entitydefinitions1_entity_replacement_text[name] = value if (!((decl ~ /^[[:space:]]*$/))) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": unrecognized token(s) following internal entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (is_param_entity_decl) if (name in entitydefinitions1_parameter_entity_data_text_type) if (entitydefinitions1_parameter_entity_data_text_type[name] == "PI") r = concat("\n") else r = concat("\n") else r = concat("\n") return r } else if (match(decl, /^'[^'']*'/)) { value = substr(decl, RSTART, RLENGTH) decl = substr(decl, RLENGTH + 1) value = entitydefinitions1_expand_parameter_entity_references(value) sub("^'", "", value) sub("'$", "", value) errmsg = sgmlutil_is_not_valid_name_token(name, "entity name") if (errmsg) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(errmsg, locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (bracketed_text_type != "" && is_param_entity_decl) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": bracketed text type not applicable for a parameter entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (bracketed_text_type == "STARTTAG") value = concat("<", value, ">") else if (bracketed_text_type == "ENDTAG") value = concat("") else if (bracketed_text_type == "MS") value = concat("") else if (bracketed_text_type == "MD") value = concat("") else if (name in entitydefinitions1_parameter_entity_data_text_type && entitydefinitions1_parameter_entity_data_text_type[name] == "PI") value = concat("") else if (name in entitydefinitions1_general_entity_data_text_type && entitydefinitions1_general_entity_data_text_type[name] == "PI") value = concat("") ; if (is_param_entity_decl) entitydefinitions1_parameter_entity_replacement_text[name] = value else entitydefinitions1_entity_replacement_text[name] = value if (!((decl ~ /^[[:space:]]*$/))) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": unrecognized token(s) following internal entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (is_param_entity_decl) if (name in entitydefinitions1_parameter_entity_data_text_type) if (entitydefinitions1_parameter_entity_data_text_type[name] == "PI") r = concat("\n") else r = concat("\n") else r = concat("\n") return r } if (name in entitydefinitions1_general_entity_data_text_type || name in entitydefinitions1_parameter_entity_data_text_type) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("invalid entity declaration - data text entities must be internal entities", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (bracketed_text_type) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": bracketed text type not applicable for external entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ((substr(decl, 1, 6) ~ /^[Ss][Yy][Ss][Tt][Ee][Mm]$/)) { decl = substr(decl, 7); sub(/^[ \t\n]+/, "", decl); if (substr(decl, 1, 1) == "%") { decl = entitydefinitions1_expand_parameter_entity_references(decl); sub(/^[ \t\n]+/, "", decl); } if (decl == "") { ; } else if (substr(decl, 1, 1) == "\"") { decl = substr(decl, 2); if (!index(decl, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(decl, 1, index(decl, "\"") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = substr(decl, index(decl, "\"") + 1); } else if (substr(decl, 1, 1) == "'") { decl = substr(decl, 2); if (!index(decl, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(decl, 1, index(decl, "'") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = substr(decl, index(decl, "'") + 1); } sub(/^[ \t\n]+/, "", decl); } else if ((substr(decl, 1, 6) ~ /^[Pp][Uu][Bb][Ll][Ii][Cc]$/)) { decl = substr(decl, 7); sub(/^[ \t\n]+/, "", decl); if (substr(decl, 1, 1) == "%") { decl = entitydefinitions1_expand_parameter_entity_references(decl); sub(/^[ \t\n]+/, "", decl); } if (decl == "") { { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': incomplete public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; } else if (substr(decl, 1, 1) == "\"") { decl = substr(decl, 2); if (!index(decl, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unqualified public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; pubid = substr(decl, 1, index(decl, "\"") - 1); decl = substr(decl, index(decl, "\"") + 1); } else if (substr(decl, 1, 1) == "'") { decl = substr(decl, 2); if (!index(decl, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; pubid = substr(decl, 1, index(decl, "'") - 1); decl = substr(decl, index(decl, "'") + 1); } else { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': invalid public identifier specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; if (pubid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sub(/^[ \t\n]+/, "", decl); if (decl != "") { if (substr(decl, 1, 1) == "\"") { decl = substr(decl, 2); if (!index(decl, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(decl, 1, index(decl, "\"") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = substr(decl, index(decl, "\"") + 1); } else if (substr(decl, 1, 1) == "'") { decl = substr(decl, 2); if (!index(decl, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(decl, 1, index(decl, "'") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = substr(decl, index(decl, "'") + 1); } sub(/^[ \t\n]+/, "", decl); } } else { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 10), "...': invalid external identifier specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (pubid && sgmldecl1_features_other_formal == "YES") { if (substr(pubid, 1, 13) == "urn:publicid:" && sgmldecl1_features_other_urn == "YES") { urn1_set_href(pubid); if (urn1_is_invalid) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", pubid, "': invalid URI/URN for use as public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; fpi1_set_urn(pubid); if (fpi1_is_invalid) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", pubid, "': invalid URI/URN for use as public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; } else { fpi1_set(pubid); if (fpi1_is_invalid) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", pubid, "': invalid formal public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; } pubid = fpi1_get(); } if (decl == "") entity_type = "" else if ((substr(decl, 1, 6) ~ /^[Ss][Uu][Bb][Dd][Oo][Cc]$/)) { entity_type = "SUBDOC" } else if (match(substr(decl, 1, 5), /^[CcNnSs][Dd][Aa][Tt][Aa]$/)) { entity_type = substr(decl, 1, 5) entity_type = toupper(entity_type) decl = substr(decl, RLENGTH + 1) if (!match(decl, /^[ \t\n]+/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": missing notation name in data entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } decl = substr(decl, RLENGTH + 1) if (!match(decl, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid notation name in data entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } notation_name = substr(decl, RSTART, RLENGTH) decl = substr(decl, RLENGTH + 1) if (sgmldecl1_syntax_namecase_general == "YES") notation_name = toupper(notation_name) sub(/^[ \t\n]+/, "", decl) ; if (substr(decl, 1, 1) == "[") { if (!match(decl, /][ \t\n]*$/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid data attribute specification list in data entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } decl = substr(decl, 2, length(decl) - RLENGTH - 1) ; entitydefinitions1_general_entity_data_attributes[name] = decl } else if (decl != "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid data entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": unrecognized tokens following system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (pubid != "" && sysid != "") { pubid = "" } else if (pubid == "" && sysid == "") { is_system_specific_entity_decl = "1" if (is_param_entity_decl) if (tokenizer1_running_as_template_subprocessing_context) if (sgmldecl1_syntax_namecase_general != sgmldecl1_syntax_namecase_entity) if (name != toupper(name)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", name, "': declaring system-specific parameter entity with lower or mixed case name in a template when SYNTAX NAMECASE GENERAL and SYNTAX NAMECASE ENTITY mismatch requires uppercase names for template parameters"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (is_param_entity_decl) { ; sysid = systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), name) if (!sysid) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", name, "': unable to resolve system-specific entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; if ((sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) { ; replacement_text = entitydefinitions1_expand_parameter_entity_references(substr(sysid, 10)) entitydefinitions1_parameter_entity_replacement_text[name] = replacement_text sysid = "" } if ((sysid ~ /^<[Oo][Ss][Ff][Ii][Ll][Ee]>/)) sysid = substr(sysid, 9) else if ((sysid ~ /[<>]/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("entity ", name, ": '", sysid, "': STAGO and/or ETAGO delimiters in system identifier not recognized as storage manager notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; if (entity_type) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("entity ",name,": invalid entity type for system-specific entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } r = ("\n") } else { entitydefinitions1_system_specific_general_entities[name] = "" if (entity_type) entitydefinitions1_general_entity_type[name] = entity_type if (notation_name) { entitydefinitions1_general_entity_notation[name] = notation_name entitydefinitions1_general_entity_declaration_set_name[name] = declaration_set_name entitydefinitions1_general_entity_declaration_line_number[name] = locator1_get_line_number() } } } if (pubid != "") { ; if (is_param_entity_decl) { if (entity_type == "SUBDOC") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": parameter entities declared as SUBDOC unsupported"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if ((pubid ~ /^"\"[[:space:]]*\+\/\/IDN[[:space:]]+sgmljs.net[[:space:]]*\/\/SHORTREF[[:space:]]+Markdown[[:space:]]*\/\/[[:space:]]*EN[[:space:]]*\""$/)) { if (sgmldecl1_public_declaration_reference != "+//IDN sgmljs.net//SD Markdown//EN") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",pubid,"': attempting to reference markdown short reference text when SGML declaration doesn't declare markdown shortref delimiters"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } entitydefinitions1_parameter_entity_public_identifier[name] = "+//IDN sgmljs.net//SHORTREF Markdown//EN" } else entitydefinitions1_parameter_entity_public_identifier[name] = pubid } r = concat("\n") } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": general entities declared public unsupported"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else if (sysid != "") { if ((sysid ~ /^[Hh][Tt][Tt][Pp][Ss]?:/)) { sysid = ("" sysid) ; } if ((sysid ~ /[<>]/)) { if (!(sysid ~ /^<[Oo][Ss][Ff][Dd][>[:space:]]/) && !(sysid ~ /^<[Oo][Ss][Ff][Ii][Ll][Ee][>[:space:]]/) && !(sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll][>[:space:]]/) && !(sysid ~ /^<[Ss][Tt][Rr][FfPp][Tt][Ii][Mm][Ee][>[:space:]]/) && !(sysid ~ /^<[Uu][Rr][Ll][>[:space:]]/) && !(sysid ~ /^<[Ee][Xx][Ee][Cc][>[:space:]]/)) { sysid_before_rewriting = sysid sysid = tokenizer1_rewrite_custom_into_base_storage_manager_notation_fsi(declaration_set_name, ("entity " name), sysid, fsi_attrs) ; exec_fsi_attrs_populated_and_validated = "1" } } if ((sysid ~ /^<[Oo][Ss][Ff][Dd]>/)) { ; if (!(sysid ~ /^<[Oo][Ss][Ff][Dd]>[[:digit:]]+$/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid, "': invalid storage object identifier for osfd storage manager"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ((systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), "sgmlstdin") ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) { if (length(systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), "sgmlstdin")) == 9) sgmlstdin_content = "" else sgmlstdin_content = substr(systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), "sgmlstdin"), 10) if (is_param_entity_decl) { entitydefinitions1_parameter_entity_replacement_text[name] = sgmlstdin_content return "" } else { entitydefinitions1_entity_replacement_text[name] = sgmlstdin_content return "" } } else if ((systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), "sgmlstdin") ~ /^<[Oo][Ss][Ff][Ii][Ll][Ee]>/)) { sysid = substr(systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), "sgmlstdin"), 9) } else sysid = ("/dev/fd/" substr(sysid, 7)) } else if ((sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) { } else if (match(sysid, /^<[Ss][Tt][Rr][FfPp][Tt][Ii][Mm][Ee][>[:space:]]/)) { return tokenizer1_handle_strpftime_entity_declaration(declaration_set_name, name, is_param_entity_decl, sysid) } else if (match(sysid, /^<[Ss][Cc][Rr][Ii][Pp][Tt][>[:space:]]/)) { if (!is_param_entity_decl) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid, "': storage manager notation only available in a formal system identifier of a parameter entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!exec_fsi_attrs_populated_and_validated) { fsi_attrs_spec = substr(sysid, 8) if (!index(fsi_attrs_spec, ">")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid formal system identifier attribute specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } fsi_attrs_spec = substr(fsi_attrs_spec, 1, index(fsi_attrs_spec, ">") - 1) if (!sgmlutil_sgml_parseattrs(fsi_attrs_spec, fsi_attrs)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid formal system identifier attribute specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; if (!("MODULE" in fsi_attrs) && !("module" in fsi_attrs)) return tokenizer1_handle_synchronous_script_entity_declaration(declaration_set_name, name, is_param_entity_decl, sysid, exec_fsi_attrs_populated_and_validated, fsi_attrs) } else { ; if ((sysid ~ /^<[Oo][Ss][Ff][Ii][Ll][Ee]>/)) sysid = substr(sysid, 9) else if ((sysid ~ /^<[Uu][Rr][Ll][[:space:]|>]/)) { sysid = tokenizer1_normalize_url_storage_manager_notation_system_identifier(declaration_set_name, sysid) } else if ((sysid ~ /^<[Ee][Xx][Ee][Cc]/)) { if (!is_param_entity_decl) if (exec_fsi_attrs_populated_and_validated) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid_before_rewriting, "': storage manager notation only available in a formal system identifier of a parameter entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid, "': storage manager notation only available in a formal system identifier of a parameter entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (substr(sysid, 1, 1) != "<" && (is_system_specific_entity_decl || substr(sysid, 1, 1) != "/")) { sysid = path_resolve(path_dirname(locator1_get_system_id()), sysid) ; ; if (!tokenizer1_path_relativization_disabled) { if (substr(sysid, 1, length(process_cwd()) + 1) == (process_cwd() "/")) { if (path_dirname(locator1_get_system_id()) != process_cwd()) { ; } sysid = substr(sysid, length(process_cwd()) + 2) } ; } } } ; if (is_param_entity_decl) { if (entity_type) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid entity type for parameter entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if ((sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) { contents = substr(sysid, 10) ; entitydefinitions1_parameter_entity_replacement_text[name] = contents } else { entitydefinitions1_parameter_entity_system_identifier[name] = sysid if ((sysid ~ /^<[Uu][Rr][Ll]>https?:/)) { ; sysid = substr(sysid, 6) xmlhttprequest1_open("GET", sysid, 0, "", "") xmlhttprequest1_send("") if (!xmlhttprequest1_status) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': HTTP connection failure"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (xmlhttprequest1_status != 200) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': received HTTP status code ", xmlhttprequest1_status), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } contents = xmlhttprequest1_responseText sub(/\n$/, "", contents) } else if ((sysid ~ /^<[Uu][Rr][Ll]>/)) { sysid = substr(sysid, 6) contents = fs_readFileSync(sysid, "utf-8") sub(/\n$/, "", contents) } else if (match(sysid, /^<[Ee][Xx][Ee][Cc]([[:space:]]+|>)/)) { if (!exec_fsi_attrs_populated_and_validated) { ; if (!tokenizer1_is_storage_manager_notation_declared(declaration_set_name, "exec")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("'exec' storage manager notation not declared in a FSI processing instruction", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!(match(sysid, /^<[Ee][Xx][Ee][Cc]([[:space:]]+(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?([[:space:]]+([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?)*)?)?>/))) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid formal system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } sysid_tmp = substr(sysid, RSTART + RLENGTH) if (!sgmlutil_sgml_parseattrs(substr(sysid, 6, RLENGTH - 6), fsi_attrs)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid formal system identifier attribute specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; if (sgmldecl1_syntax_namecase_general == "YES") { sysid_tmp = tokenizer1_fetch_effective_notational_content(sysid_tmp, declaration_set_name, "EXEC", sysid) sgmlutil_convert_attribute_names_to_uppercase(fsi_attrs) attributechecker1_check_attribute_array(declaration_set_name, "", "EXEC", fsi_attrs, concat("storage manager notation data attributes for formal system identifier '", sysid, "'")) } else { sysid_tmp = tokenizer1_fetch_effective_notational_content(sysid_tmp, declaration_set_name, "exec", sysid) attributechecker1_check_attribute_array(declaration_set_name, "", "exec", fsi_attrs, concat("storage manager notation data attributes for formal system identifier '", sysid, "'")) } } else { if (!(match(sysid, /^<[Ee][Xx][Ee][Cc]([[:space:]]+(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?([[:space:]]+([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?)*)?)?>/))) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid, "': internal error: invalid exec storage manager FSI rewriting result from custom storage manager FSI"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } sysid_tmp = substr(sysid, RSTART + RLENGTH) } if ("cmd" in fsi_attrs) { value_of_cmd_parameter = fsi_attrs["cmd"] delete fsi_attrs["cmd"] } else if ("CMD" in fsi_attrs) { value_of_cmd_parameter = fsi_attrs["CMD"] delete fsi_attrs["CMD"] } else if ((sysid_tmp ~ /^[[:space:]]*$/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': missing notational content for the command to execute in exec storage manager notation system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ("in" in fsi_attrs) { value_of_in_parameter = fsi_attrs["in"] delete fsi_attrs["in"] } else if ("IN" in fsi_attrs) { value_of_in_parameter = fsi_attrs["IN"] delete fsi_attrs["IN"] } if (value_of_cmd_parameter != "" && !value_of_in_parameter) { sub(/^[[:space:]]+/, "", sysid_tmp) sub(/[[:space:]]+$/, "", sysid_tmp) if (sysid_tmp != "") value_of_in_parameter = ("" sysid_tmp) } if (value_of_cmd_parameter == "") { value_of_cmd_parameter = sysid_tmp } for (v in fsi_attrs) exec_params[v] = fsi_attrs[v] if (substr(locator1_get_system_id(), 1, 1) != "/") exec_params["cwd"] = path_resolve(process_cwd(), path_dirname(locator1_get_system_id())) else exec_params["cwd"] = path_dirname(locator1_get_system_id()) ; ; ; if (value_of_in_parameter != "") { if ((value_of_in_parameter ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) { value_of_in_parameter = substr(value_of_in_parameter, 10) exec_params["input"] = value_of_in_parameter ; } else if (value_of_in_parameter != "0") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", value_of_in_parameter, "': unsupported value for IN parameter of exec storage manager notation identifier (only supported value is 0)"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else exec_params["stdin"] = "/dev/fd/0" } contents = cp_execSync(value_of_cmd_parameter, exec_params) sub(/\n$/, "", contents) ; } else if (match(sysid, /^<[Mm][Oo][Dd][Uu][Ll][Ee]([[:space:]]+|>)/)) { if (!exec_fsi_attrs_populated_and_validated) { ; if (!tokenizer1_is_storage_manager_notation_declared(declaration_set_name, "script")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("'module' storage manager notation not declared in a FSI processing instruction", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!(match(sysid, /^<[Mm][Oo][Dd][Uu][Ll][Ee]([[:space:]]+(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?([[:space:]]+([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?)*)?)?>/))) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid formal system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } sysid_tmp = substr(sysid, RSTART + RLENGTH) if (!sgmlutil_sgml_parseattrs(substr(sysid, 8, RLENGTH - 8), fsi_attrs)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid formal system identifier attribute specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; if (sgmldecl1_syntax_namecase_general == "YES") { sgmlutil_convert_attribute_names_to_uppercase(fsi_attrs) attributechecker1_check_attribute_array(declaration_set_name, "", "MODULE", fsi_attrs, concat("storage manager notation data attributes for formal system identifier '", sysid, "'")) } else { attributechecker1_check_attribute_array(declaration_set_name, "", "module", fsi_attrs, concat("storage manager notation data attributes for formal system identifier '", sysid, "'")) } } else { if (!(match(sysid, /^<[Mm][Oo][Dd][Uu][Ll][Ee]([[:space:]]+(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?([[:space:]]+([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?)*)?)?>/))) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid, "': internal error: invalid module storage manager FSI rewriting result from custom storage manager FSI"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } sysid_tmp = substr(sysid, RSTART + RLENGTH) } if (!(sysid_tmp ~ /^[[:space:]]*$/)) { platformerrorhandler1_warning(concat("'",sysid,"': ignoring notational content on module storage manager notation system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if ("in" in fsi_attrs) { value_of_in_parameter = fsi_attrs["in"] delete fsi_attrs["in"] } else if ("IN" in fsi_attrs) { value_of_in_parameter = fsi_attrs["IN"] delete fsi_attrs["IN"] } if ("module" in fsi_attrs) { value_of_module_parameter = fsi_attrs["module"] delete fsi_attrs["module"] } else if ("MODULE" in fsi_attrs) { value_of_module_parameter = fsi_attrs["MODULE"] delete fsi_attrs["MODULE"] } else { { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid, "': missing required 'module' data attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if ("function" in fsi_attrs) { value_of_function_parameter = fsi_attrs["function"] delete fsi_attrs["function"] } else if ("FUNCTION" in fsi_attrs) { value_of_function_parameter = fsi_attrs["FUNCTION"] delete fsi_attrs["FUNCTION"] } else { { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid, "': missing required 'function' data attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; ; for (v in fsi_attrs) system_env[v] = fsi_attrs[v] if (sgmldecl1_syntax_namecase_general == "YES") bundledfunctions1_invoke_bundled_function(value_of_module_parameter, value_of_function_parameter, "", "", fsi_attrs) else bundledfunctions1_invoke_bundled_function(value_of_module_parameter, value_of_function_parameter, "", "", fsi_attrs) contents = stdout_buffer stdout_buffer = "" ; sub(/\n$/, "", contents) } else { contents = fs_readFileSync(sysid, "utf-8") sub(/\n$/, "", contents) } ; entitydefinitions1_parameter_entity_replacement_text[name] = contents r = concat("\n") } } else { entitydefinitions1_entity_replacement_file[name] = sysid if (entity_type) entitydefinitions1_general_entity_type[name] = entity_type if (entity_type == "NDATA" || entity_type == "CDATA" || entity_type == "SDATA") { ; entitydefinitions1_general_entity_notation[name] = notation_name entitydefinitions1_general_entity_declaration_set_name[name] = declaration_set_name entitydefinitions1_general_entity_declaration_line_number[name] = locator1_get_line_number() } } } return r } function tokenizer1_parse_notation_decl(declaration_set_name, decl, name,pubid,sysid,r,resolved_notation_content,fsi_attrs) { pubid = "" sysid = "" r = "" resolved_notation_content = "" split("", fsi_attrs) ; r = decl sub(/^$/, "", decl) sub(/^[ \t\n]+/, "", decl) if (!match(decl, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid notation declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } name = substr(decl, RSTART, RLENGTH) decl = substr(decl, RLENGTH + 1) if (sgmldecl1_syntax_namecase_general == "YES") name = toupper(name) ; if (index(" " markupdefinitions1_notation_names[declaration_set_name] " ", " " name " ")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",name,"': name already declared as notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (markupdefinitions1_notation_names[declaration_set_name]) markupdefinitions1_notation_names[declaration_set_name] = (markupdefinitions1_notation_names[declaration_set_name] " " name) else markupdefinitions1_notation_names[declaration_set_name] = name ; sub(/^[ \t\n]+/, "", decl) ; if ((substr(decl, 1, 6) ~ /^[Ss][Yy][Ss][Tt][Ee][Mm]$/)) { decl = substr(decl, 7); sub(/^[ \t\n]+/, "", decl); if (substr(decl, 1, 1) == "%") { decl = entitydefinitions1_expand_parameter_entity_references(decl); sub(/^[ \t\n]+/, "", decl); } if (decl == "") { ; } else if (substr(decl, 1, 1) == "\"") { decl = substr(decl, 2); if (!index(decl, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(decl, 1, index(decl, "\"") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = substr(decl, index(decl, "\"") + 1); } else if (substr(decl, 1, 1) == "'") { decl = substr(decl, 2); if (!index(decl, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(decl, 1, index(decl, "'") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = substr(decl, index(decl, "'") + 1); } sub(/^[ \t\n]+/, "", decl); } else if ((substr(decl, 1, 6) ~ /^[Pp][Uu][Bb][Ll][Ii][Cc]$/)) { decl = substr(decl, 7); sub(/^[ \t\n]+/, "", decl); if (substr(decl, 1, 1) == "%") { decl = entitydefinitions1_expand_parameter_entity_references(decl); sub(/^[ \t\n]+/, "", decl); } if (decl == "") { { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': incomplete public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; } else if (substr(decl, 1, 1) == "\"") { decl = substr(decl, 2); if (!index(decl, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unqualified public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; pubid = substr(decl, 1, index(decl, "\"") - 1); decl = substr(decl, index(decl, "\"") + 1); } else if (substr(decl, 1, 1) == "'") { decl = substr(decl, 2); if (!index(decl, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; pubid = substr(decl, 1, index(decl, "'") - 1); decl = substr(decl, index(decl, "'") + 1); } else { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': invalid public identifier specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; if (pubid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sub(/^[ \t\n]+/, "", decl); if (decl != "") { if (substr(decl, 1, 1) == "\"") { decl = substr(decl, 2); if (!index(decl, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(decl, 1, index(decl, "\"") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = substr(decl, index(decl, "\"") + 1); } else if (substr(decl, 1, 1) == "'") { decl = substr(decl, 2); if (!index(decl, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(decl, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(decl, 1, index(decl, "'") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = substr(decl, index(decl, "'") + 1); } sub(/^[ \t\n]+/, "", decl); } } else { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 10), "...': invalid external identifier specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; if (pubid == "" && sysid == "") { ; sysid = systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), name) ; } if (pubid && sgmldecl1_features_other_formal == "YES") { if (substr(pubid, 1, 13) == "urn:publicid:" && sgmldecl1_features_other_urn == "YES") { urn1_set_href(pubid); if (urn1_is_invalid) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", pubid, "': invalid URI/URN for use as public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; fpi1_set_urn(pubid); if (fpi1_is_invalid) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", pubid, "': invalid URI/URN for use as public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; } else { fpi1_set(pubid); if (fpi1_is_invalid) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", pubid, "': invalid formal public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; } pubid = fpi1_get(); if (!sysid) { resolved_notation_content = bundledresolver_resolve_entity(pubid, "") ; if (resolved_notation_content && resolved_notation_content != "") { sysid = concat("", resolved_notation_content) } else if (sgmldecl1_features_other_formal == "YES") { if (pubid != "ISO 8879:1986//NOTATION Standard Generalized Markup Language (SGML)//EN" && pubid !="+//IDN www.w3c.org/TR/html5//NOTATION HTML Form Input Types//EN" && pubid != "+//IDN sgml-cms.net//NOTATION sparql-query//EN" && pubid != "+//IDN sgmljs.net//NOTATION Markdown//EN" && pubid != "ISO/IEC 10744:1997//NOTATION AFDR ARCBASE General Architecture//EN") { platformerrorhandler1_warning(concat("'", pubid, "': unrecognized public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } } else if (sgmldecl1_features_other_formal == "YES") { if (pubid != "ISO 8879:1986//NOTATION Standard Generalized Markup Language (SGML)//EN" && pubid !="+//IDN www.w3c.org/TR/html5//NOTATION HTML Form Input Types//EN" && pubid != "+//IDN sgml-cms.net//NOTATION sparql-query//EN" && pubid != "+//IDN sgmljs.net//NOTATION Markdown//EN" && pubid != "ISO/IEC 10744:1997//NOTATION AFDR ARCBASE General Architecture//EN") { platformerrorhandler1_warning(concat("'", pubid, "': unrecognized public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } } if (pubid != "") { ; markupdefinitions1_notation_public_identifiers[declaration_set_name, name] = pubid r = concat("") } if (pubid == "" && sysid == "") { markupdefinitions1_notation_system_identifiers[declaration_set_name, name] = "" r = concat("") } else if (sysid != "") { if ((sysid ~ /[<>]/)) { ; if (!(sysid ~ /^<[Oo][Ss][Ff][Dd][>[:space:]]/) && !(sysid ~ /^<[Oo][Ss][Ff][Ii][Ll][Ee][>[:space:]]/) && !(sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll][>[:space:]]/) && !(sysid ~ /^<[Ss][Tt][Rr][FfPp][Tt][Ii][Mm][Ee][>[:space:]]/) && !(sysid ~ /^<[Uu][Rr][Ll][>[:space:]]/) && !(sysid ~ /^<[Ee][Xx][Ee][Cc][>[:space:]]/)) { sysid = tokenizer1_rewrite_custom_into_base_storage_manager_notation_fsi(declaration_set_name, ("notation " name), sysid, fsi_attrs) ; } if ((sysid ~ /^<[Oo][Ss][Ff][Ii][Ll][Ee]>/)) sysid = substr(sysid, 9) else if ((sysid ~ /^<[Uu][Rr][Ll][[:space:]>]/)) { sysid = tokenizer1_normalize_url_storage_manager_notation_system_identifier(declaration_set_name, sysid) if ((sysid ~ /^<[Uu][Rr][Ll]>/)) sysid = substr(sysid, 6) } } markupdefinitions1_notation_system_identifiers[declaration_set_name, name] = sysid if ((sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) { ; markupdefinitions1_notation_system_identifiers[declaration_set_name, name] = sysid } else { ; markupdefinitions1_notation_system_identifiers[declaration_set_name, name] = path_resolve(path_dirname(locator1_get_system_id()), sysid) } ; if (pubid) if ((sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) r = concat("") else r = concat("") else if ((sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) r = concat("") else r = concat("") } return r } function tokenizer1_handle_strpftime_entity_declaration(declaration_set_name, name, is_param_entity_decl, sysid, sysid_tmp,strpftime_format,strpftime_result,r) { sysid_tmp = "" strpftime_format = "" r = "" if (match(sysid, /^<[Ss][Tt][Rr][FfPp][Tt][Ii][Mm][Ee][[:space:]]+[Ff][Mm][Tt][[:space:]]*=[[:space:]]*/)) { ; sysid_tmp = substr(sysid, RLENGTH + 1) if (substr(sysid_tmp, 1, 1) == "\"") { sysid_tmp = substr(sysid_tmp, 2) if (index(sysid_tmp, "\"") < 0) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': unterminated fmt attribute in strftime/strptime storage manager notation in system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } strpftime_format = substr(sysid_tmp, 1, index(sysid_tmp, "\"") - 1) sysid_tmp = substr(sysid_tmp, index(sysid_tmp, "\"") + 1) } else if (substr(sysid_tmp, 1, 1) == "'") { sysid_tmp = substr(sysid_tmp, 2) if (index(sysid_tmp, "'") < 0) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': unterminated fmt attribute in strftime/strptime storage manager notation in system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } strpftime_format = substr(sysid_tmp, 1, index(sysid_tmp, "'") - 1) sysid_tmp = substr(sysid_tmp, index(sysid_tmp, "'") + 1) } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': unterminated fmt attribute in strftime/strptime storage manager notation in system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } sub(/^[[:space:]]+/, "", sysid_tmp) if (substr(sysid_tmp, 1, 1) != ">") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': unterminated strftime/strptime storage manager notation in system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } sysid_tmp = substr(sysid_tmp, 2) gsub(/\$/, "%", strpftime_format) if (match(sysid, /^<[Ss][Tt][Rr][Pp][Tt][Ii][Mm][Ee]/)) { ; if (!tokenizer1_is_storage_manager_notation_declared(declaration_set_name, "strptime")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("'strptime' storage manager notation not declared in a FSI processing instruction", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!is_param_entity_decl) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid, "': strptime storage manager notation only available in a formal system identifier of a parameter entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } strpftime_result = strptime_strptime(sysid_tmp, strpftime_format) if (!strpftime_result || strpftime_result == -1 || strpftime_result == "-1") entitydefinitions1_parameter_entity_replacement_text[name] = "" else entitydefinitions1_parameter_entity_replacement_text[name] = sprintf("%d", strpftime_result) ; entitydefinitions1_parameter_entity_system_identifier[name] = ("" entitydefinitions1_parameter_entity_replacement_text[name]) ; } else { ; if (!tokenizer1_is_storage_manager_notation_declared(declaration_set_name, "strftime")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("'strftime' storage manager notation not declared in a FSI processing instruction", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!is_param_entity_decl) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid, "': strftime storage manager notation only available in a formal system identifier of a parameter entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!(sysid_tmp ~ /^-?[[:digit:]]+$/)) entitydefinitions1_parameter_entity_replacement_text[name] = "" else entitydefinitions1_parameter_entity_replacement_text[name] = strftime_strftime(strpftime_format, sysid_tmp) entitydefinitions1_parameter_entity_system_identifier[name] = ("" entitydefinitions1_parameter_entity_replacement_text[name]) ; ; } if (index(entitydefinitions1_parameter_entity_replacement_text[name], "\"") != 0) r = concat("\n") else if (index(entitydefinitions1_parameter_entity_replacement_text[name], "'") == 0) r = concat("\n") else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': date/time format pattern must not contain both double and single quote characters"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return r } { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': missing fmt attribute in strftime/strptime storage manager notation in system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } function tokenizer1_handle_synchronous_script_entity_declaration(declaration_set_name, name, is_param_entity_decl, sysid, fsi_attrs_populated_and_validated, fsi_attrs, sysid_tmp,fsi_attr,function_formal_parameters,function_actual_parameters,function_actual_parameters_argument_literal_list,function_parameter_index,function_result,function_object,function_code_text,function_code_filename,function_exec_params,r) { sysid_tmp = "" fsi_attr = "" function_formal_parameters = "" split("", function_actual_parameters) function_actual_parameters_argument_literal_list = "" function_result = "" split("", function_object) function_code_text = "" function_code_filename = "" split("", function_exec_params) r = "" ; if (!is_param_entity_decl) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", sysid, "': storage manager notation only available in a formal system identifier of a parameter entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!fsi_attrs_populated_and_validated) { if (!tokenizer1_is_storage_manager_notation_declared(declaration_set_name, "script")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("'script' storage manager notation not declared in a FSI processing instruction", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; if (!(match(sysid, /^<[Ss][Cc][Rr][Ii][Pp][Tt]([[:space:]]+(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?([[:space:]]+([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*([[:space:]]*=[[:space:]]*([^[:space:]""'']+|('[^']*')|("[^"]*")))?)*)?)?>/))) { if (fsi_attrs_populated_and_validated) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': internal error: invalid formal system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid formal system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } sysid_tmp = substr(sysid, RSTART + RLENGTH) if (!fsi_attrs_populated_and_validated) { if (!sgmlutil_sgml_parseattrs(substr(sysid, 8, RLENGTH - 8), fsi_attrs)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': invalid formal system identifier attribute specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } for (fsi_attr in fsi_attrs) { if (function_formal_parameters == "") { function_formal_parameters = fsi_attr argument_literal = fsi_attrs[fsi_attr] gsub(/\"/, "\\&", argument_literal) function_actual_parameters_argument_literal_list = concat("\"", argument_literal, "\"") } else { function_formal_parameters = concat(function_formal_parameters, ",", fsi_attr) argument_literal = fsi_attrs[fsi_attr] gsub(/\"/, "\\&", argument_literal) function_actual_parameters_argument_literal_list = concat(function_actual_parameters_argument_literal_list, ",\"", argument_literal, "\"") } } if (match(sysid_tmp, /<[Ss][Cc][Rr][Ii][Pp][Tt][[:space:]]*>$/)) sysid_tmp = substr(sysid_tmp, 1, length(sysid_tmp) - RSTART) ; if (function_result) entitydefinitions1_parameter_entity_replacement_text[name] = ("" function_result) else entitydefinitions1_parameter_entity_replacement_text[name] = "" entitydefinitions1_parameter_entity_system_identifier[name] = ("" entitydefinitions1_parameter_entity_replacement_text[name]) ; ; if (index(entitydefinitions1_parameter_entity_replacement_text[name], "\"") != 0) r = concat("\n") else if (index(entitydefinitions1_parameter_entity_replacement_text[name], "'") == 0) r = concat("\n") else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",sysid,"': function result must not contain both double and single quote characters"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return r } function tokenizer1_parse_attlist_decl(declaration_set_name, decl, name,name_group,attrname,declaredval,semantics,val,name_group_arr,i,is_notation_attlist_decl,tokens,has_tokens,n,data_notation_name,parse_attribute_specification_result,data_data_attribute_specification_length,data_data_attribute_values) { split("", tokens) has_tokens = "0" data_notation_name = "" split("", data_data_attribute_values) ; sub(/^$/, "", decl) sub(/^[ \t\n]+/, "", decl) if (substr(decl, 1, 1) == "#") { if (match(decl, /^#[Aa][Ll][Ll]/)) name = "#ALL" else { if (!match(decl, /^#[Nn][Oo][Tt][Aa][Tt][Ii][Oo][Nn][ \t\n]+/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": unrecognized reserved name indicator use in attribute list declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } is_notation_attlist_decl = "1" } decl = substr(decl, RLENGTH + 1) ; } if (!name) { if (substr(decl, 1, 1) == "(") { if (!index(decl, ")")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': unterminated name group in ", "attribute list declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; name_group = substr(decl, 2, index(decl, ")") - 2); gsub(/[ \t\n]+/, "", name_group); gsub(",", "|", name_group); decl = substr(decl, index(decl, ")") + 1); } else { if (match(decl, /[ \t\n]+/)) { if (RSTART == 1) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(("missing identifier in " "attribute list declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; name = substr(decl, 1, RSTART - 1); decl = substr(decl, RSTART + RLENGTH - 1); } else { if (!decl) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(("missing identifier in " "attribute list declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; name = decl; decl = ""; } } } if (sgmldecl1_syntax_namecase_general == "YES") if (name) name = toupper(name) else if (name_group) name_group = toupper(name_group) ; for (;;) { ; split("", data_data_attribute_values) data_notation_name = "" if (!sub(/^[ \t\n]+/, "", decl)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid tokens where whitespace is expected in attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!match(decl, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid attribute name in attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_syntax_namecase_general == "YES") attrname = toupper(substr(decl, 1, RLENGTH)) else attrname = substr(decl, 1, RLENGTH) decl = substr(decl, RLENGTH + 1) ; if (!sub(/^[ \t\n]+/, "", decl)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid token following attribute name in attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (match(decl, /^[Nn][Oo][Tt][Aa][Tt][Ii][Oo][Nn][[:space:]]+/)) { if (is_notation_attlist_decl) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid declared value for data attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } decl = substr(decl, RLENGTH + 1) if (substr(decl, 1, 1) != "(") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid token group in declaration for attribute with declared value NOTATION"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } declaredval = ("NOTATION" substr(decl, 1, sgmlutil_sgml_index3(decl, ")", 2))) if (declaredval == "NOTATION") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid token group in declaration for attribute with declared value NOTATION"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_syntax_namecase_general == "YES") declaredval = toupper(declaredval) gsub(/[[:space:]]+/, "", declaredval) ; if (split(substr(declaredval, length("NOTATION(") + 1, length(declaredval) - length("NOTATION(") - 1), tokens, /\|/) < 1) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl), "': invalid token group in declaration for attribute with declared value NOTATION"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } for (i in tokens) if (--i + 1) { if (!index(" " markupdefinitions1_notation_names[declaration_set_name] " ", " " tokens[1+ i] " ")) { platformerrorhandler1_error(concat("'",tokens[1+ i], "': use of an undeclared notation in name group of permitted notation names"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } decl = substr(decl, length(substr(decl, 1, sgmlutil_sgml_index3(decl, ")", 2))) + 1) } else if (substr(decl, 1, 1) == "(") { declaredval = substr(decl, 1, sgmlutil_sgml_index3(decl, ")", 2)) decl = substr(decl, length(substr(decl, 1, sgmlutil_sgml_index3(decl, ")", 2))) + 1) if (!declaredval) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid token group"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_syntax_namecase_general == "YES") declaredval = toupper(declaredval) gsub(/[[:space:]]+/, "", declaredval) if (split(substr(declaredval, 2, length(declaredval) - 2), tokens, /\|/) < 1) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid token group in declaration for enumerated attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (is_notation_attlist_decl) { if (!( match(decl, /^[Cc]?[Dd][Aa][Tt][Aa]/) || match(decl, /^[Ii][Dd][Rr][Ee][Ff][Ss]/) || match(decl, /^[Nn][Aa][Mm][Ee][Ss]/) || match(decl, /^[Nn][Aa][Mm][Ee]/) || match(decl, /^[Nn][Mm][Tt][Oo][Kk][Ee][Nn][Ss]/) || match(decl, /^[Nn][Mm][Tt][Oo][Kk][Ee][Nn]/) || match(decl, /^[Nn][Uu][Mm][Bb][Ee][Rr][Ss]/) || match(decl, /^[Nn][Uu][Mm][Bb][Ee][Rr]/) || match(decl, /^[Nn][Uu][Tt][Oo][Kk][Ee][Nn][Ss]/) || match(decl, /^[Nn][Uu][Tt][Oo][Kk][Ee][Nn]/) )) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": unrecognized or invalid declared value in data attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else if (!( match(decl, /^[Cc]?[Dd][Aa][Tt][Aa]/) || match(decl, /^[Ee][Nn][Tt][Ii][Tt][Yy]/) || match(decl, /^[Ee][Nn][T][Ii][Tt][Ii][Ee][Ss]/) || match(decl, /^[Ii][Dd][Rr][Ee][Ff][Ss]/) || match(decl, /^[Ii][Dd][Rr][Ee][Ff]/) || match(decl, /^[Ii][Dd]/) || match(decl, /^[Nn][Aa][Mm][Ee][Ss]/) || match(decl, /^[Nn][Aa][Mm][Ee]/) || match(decl, /^[Nn][Mm][Tt][Oo][Kk][Ee][Nn][Ss]/) || match(decl, /^[Nn][Mm][Tt][Oo][Kk][Ee][Nn]/) || match(decl, /^[Nn][Uu][Mm][Bb][Ee][Rr][Ss]/) || match(decl, /^[Nn][Uu][Mm][Bb][Ee][Rr]/) || match(decl, /^[Nn][Uu][Tt][Oo][Kk][Ee][Nn][Ss]/) || match(decl, /^[Nn][Uu][Tt][Oo][Kk][Ee][Nn]/) )) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": unrecognized type in attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } declaredval = toupper(substr(decl, 1, RLENGTH)) decl = substr(decl, RLENGTH + 1) } ; if (declaredval == "DATA") { if (!sub(/^[ \t\n]+/, "", decl)) { if (decl == "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("attribute ",attrname,": missing notation name in data specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",substr(decl, 1, 8),"...': unrecognized tokens in attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (!match(decl, /^([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid attribute name in attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_syntax_namecase_general == "YES") data_notation_name = toupper(substr(decl, 1, RLENGTH)) else data_notation_name = substr(decl, 1, RLENGTH) decl = substr(decl, RLENGTH + 1) if (match(decl, /^[ \t\n]\[/)) { decl = substr(decl, RSTART + RLENGTH) if (!match(decl, /^(([^\]])|("[^"]*")|('[^']*'))*/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid data specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tokenizer1_save_parsing_state2() tokenizer1_markup_buf = substr(decl, RSTART, RLENGTH) decl = substr(decl, RSTART + RLENGTH) data_data_attribute_specification_length = RLENGTH ; parse_attribute_specification_result = tokenizer1_parse_attribute_specification(1, length(tokenizer1_markup_buf), 0, data_data_attribute_values, declaration_set_name, "", data_notation_name, "1") ; if (parse_attribute_specification_result != data_data_attribute_specification_length) { { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("failure to parse data specification", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } tokenizer1_restore_parsing_state2() if (substr(decl, 1, 1) != "]") { { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": unterminated data specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } decl = substr(decl, 2) } ; attributechecker1_check_attribute_array(declaration_set_name, "", data_notation_name, data_data_attribute_values, ("data attributes for attribute " attrname)) } if (!sub(/^[ \t\n]+/, "", decl)) if (decl == "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("attribute ",attrname,": missing default value specification in data attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",substr(decl, 1, 8),"...': unrecognized tokens in attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (substr(decl, 1, 1) == "#") { if (match(decl, /^#[Ff][Ii][Xx][Ee][Dd]/)) { semantics = "#FIXED" decl = substr(decl, 7) if (!sub(/^[ \t\n]+/, "", decl)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",substr(decl, 1, 8),"...': unrecognized default value in attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (match(decl, /^"[^""]*"/)) { val = substr(decl, 2, RLENGTH - 2); decl = substr(decl, RLENGTH + 1); } else if (match(decl, /^'[^'']*'/)) { val = substr(decl, 2, RLENGTH - 2); decl = substr(decl, RLENGTH + 1); } else { if (match(decl, /[[:space:]]/)) { val = substr(decl, 1, RSTART - 1); decl = substr(decl, RSTART); } else { val = decl ; if (sgmlutil_is_not_valid_literal_token(val)) { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': invalid default value specification in attribute declaration (", sgmlutil_is_not_valid_literal_token(val), ")"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = ""; } } if (!val && declaredval != "CDATA") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("missing or empty attribute value literal in attribute declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } has_tokens = "0" for (i in tokens) if (--i + 1) { has_tokens = "1" if (sgmldecl1_syntax_namecase_general == "YES") val = toupper(val) if (tokens[1+ i] == val) break } if (has_tokens == "1" && tokens[1+ i] != val) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("name token", val, ": fixed value not in token list for attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else if (match(decl, /^#[Cc][Uu][Rr][Rr][Ee][Nn][Tt]/)) { if (is_notation_attlist_decl && tokenizer1_strict_mode == "1") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid default value specification type in data attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } semantics = "#CURRENT" decl = substr(decl, RLENGTH + 1) } else if (match(decl, /^#[Rr][Ee][Qq][Uu][Ii][Rr][Ee][Dd]/)) { semantics = "#REQUIRED" decl = substr(decl, RLENGTH + 1) } else if (match(decl, /^#[Ii][Mm][Pp][Ll][Ii][Ee][Dd]/)) { semantics = "#IMPLIED" decl = substr(decl, RLENGTH + 1) } else if (match(decl, /^#[Cc][Oo][Nn][Rr][Ee][Ff]/)) { if (is_notation_attlist_decl && tokenizer1_strict_mode == "1") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": invalid default value specification type in data attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } semantics = "#CONREF" decl = substr(decl, RLENGTH + 1) } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(decl),": unrecognized default value specification in attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (match(decl, /^"[^""]*"/)) { val = substr(decl, 2, RLENGTH - 2); decl = substr(decl, RLENGTH + 1); } else if (match(decl, /^'[^'']*'/)) { val = substr(decl, 2, RLENGTH - 2); decl = substr(decl, RLENGTH + 1); } else { if (match(decl, /[[:space:]]/)) { val = substr(decl, 1, RSTART - 1); decl = substr(decl, RSTART); } else { val = decl ; if (sgmlutil_is_not_valid_literal_token(val)) { platformerrorhandler1_fatalError(concat("'", substr(decl, 1, 8), "...': invalid default value specification in attribute declaration (", sgmlutil_is_not_valid_literal_token(val), ")"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; decl = ""; } } if (!val && declaredval != "CDATA") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("missing or empty attribute value literal in attribute declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } has_tokens = "0" for (i in tokens) if (--i + 1) { has_tokens = "1" if (sgmldecl1_syntax_namecase_general == "YES") val = toupper(val) if (tokens[1+ i] == val) break } if (has_tokens == "1" && tokens[1+ i] != val) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("name token ", val, ": default value not in token list for attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (val && sgmldecl1_syntax_namecase_general == "YES" && declaredval != "CDATA") val = toupper(val) if (name_group) { if (split(name_group, name_group_arr, /\|/) < 1 || !name_group_arr[1]) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",name_group,"': invalid name group in attribute declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } for (i in name_group_arr) { name = name_group_arr[i] if (sgmldecl1_syntax_namecase_general == "YES") { name = toupper(name) attrname = toupper(attrname) } sub(/^[ \t\n]+/, "", name) sub(/[ \t\n]+$/, "", name) if (is_notation_attlist_decl) markupdefinitions1_store_data_attribute_decl(declaration_set_name, name, attrname, declaredval, semantics, val, data_notation_name, data_data_attribute_values) else markupdefinitions1_store_element_attribute_decl(declaration_set_name, name, attrname, declaredval, semantics, val, data_notation_name, data_data_attribute_values) } } else { if (sgmldecl1_syntax_namecase_general == "YES") { name = toupper(name) attrname = toupper(attrname) } if (is_notation_attlist_decl) markupdefinitions1_store_data_attribute_decl(declaration_set_name, name, attrname, declaredval, semantics, val, data_notation_name, data_data_attribute_values) else markupdefinitions1_store_element_attribute_decl(declaration_set_name, name, attrname, declaredval, semantics, val, data_notation_name, data_data_attribute_values) } if (decl == "" || match(decl, /^[ \t\n]+$/)) { if (!declaredval) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("missing attribute details in attribute list declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } else { declaredval = "" val = "" semantics = "" split("", tokens) } } } function tokenizer1_is_public_notation_decl(expanded_markup_decl, declaration_set_name, notation_name,debugnotation) { notation_name = "" debugnotation = "" if ((expanded_markup_decl ~ /^ length(tokenizer1_markup_buf)) { ; if (declaration_set_type != "LINKTYPE-PRESCAN") { if (tokenizer1_active_lpd_names != "" || tokenizer1_instance_had_implied_doctype != "" || tokenizer1_force_prolog_recording != "" || tokenizer1_target_document_type_name != "") { } else { tokenizer1_line_number_save = locator1_get_line_number(); ;; if (declaration_set_name in tokenizer1_declaration_subset_lineno) locator1_set_line_number(tokenizer1_declaration_subset_lineno[declaration_set_name]); tokenizer1_check_and_dispatch_notation_and_entity_declarations(declaration_set_name) tokenizer1_dispatch_end_dtd() locator1_set_line_number(tokenizer1_line_number_save); ;; } } tokenizer1_restore_parsing_state() locator1_set_line_number(tokenizer1_line_number_save); ;; return } else if (!tokenizer1_delimit_markup()) { { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("incomplete markup declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; ; if (tokenizer1_markup_event == "]") tokenizer1_handle_marked_section_end() else if (tokenizer1_markup_event == "[") { if (declaration_set_type == "LINKTYPE-PRESCAN") { entitydefinitions1_suppress_undeclared_parameter_entity_reference_error = "1" if (!tokenizer1_handle_marked_section_start(1)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",tokenizer1_markup_text,"': unterminated marked section in declaration subset"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (!tokenizer1_handle_marked_section_start(0)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",tokenizer1_markup_text,"': unterminated marked section in declaration subset"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } entitydefinitions1_suppress_undeclared_parameter_entity_reference_error = "" } else if (tokenizer1_marked_section_include_level < tokenizer1_marked_section_nesting_level) { ; locator1_set_line_number(locator1_get_line_number() + gsub(/\n/, "\n", tokenizer1_markup_text)) ; } else if (tokenizer1_markup_event == "?") { ; if ((declaration_set_type != "LINKTYPE-PRESCAN" && declaration_set_type != "LINKTYPE") || (declaration_set_type == "LINKTYPE-PRESCAN" && (substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length) ~ /^<\?IS10744[[:space:]]/))) { if (match(substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length), /$/, "", fsi_def_doc) ; markup_buf_portion_before_pi = substr(tokenizer1_markup_buf, 1, tokenizer1_markup_start - 1) fsi_pi_portion_without_fsidefdoc = substr(substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length), 1, RLENGTH - length("FSIDefDoc=") + 1) markup_buf_portion_after_pi = substr(tokenizer1_markup_buf, tokenizer1_markup_start + tokenizer1_markup_length) fpi1_set(substr(fsi_def_doc, 2, length(fsi_def_doc) - 2)) if (fpi1_is_invalid) tokenizer1_markup_buf = concat(markup_buf_portion_before_pi, "%sgmlfsidefdoc", tokenizer1_fsi_def_doc_entity_no, ";\n", fsi_pi_portion_without_fsidefdoc, ">", markup_buf_portion_after_pi) else tokenizer1_markup_buf = concat(markup_buf_portion_before_pi, "%sgmlfsidefdoc", tokenizer1_fsi_def_doc_entity_no, ";\n", fsi_pi_portion_without_fsidefdoc, ">", markup_buf_portion_after_pi) tokenizer1_fsi_def_doc_entity_no++ continue } else { tokenizer1_handle_pi(declaration_set_name) } } } else if (tokenizer1_markup_event == "!") { ; if ((tokenizer1_markup_text ~ /^$/) && !(substr(tokenizer1_markup_text, 5, length(tokenizer1_markup_text) - 5 - 3) ~ /--/)) { ; } else if ((tokenizer1_markup_text ~ /^/)) { ; ; locator1_set_line_number(locator1_get_line_number() + gsub(/\n/, "\n", tokenizer1_markup_text)) ; } } } } else if (tokenizer1_record_effective_markup_declarations && declaration_set_type == "DOCTYPE") { if (!((expanded_markup_decl ~ /^") entitydefinitions1_parameter_entity_replacement_text[pe] = resolved_entity_content } if (pe in entitydefinitions1_parameter_entity_replacement_text) { if (pe in entitydefinitions1_parameter_entity_system_identifier) { ; tokenizer1_markup_buf = concat(substr(tokenizer1_markup_buf, 1, tokenizer1_markup_start - 1),entitydefinitions1_parameter_entity_replacement_text[pe],"\004","",substr(tokenizer1_markup_buf, tokenizer1_markup_start + RLENGTH)) ; locator1_push_context(pe, entitydefinitions1_parameter_entity_system_identifier[pe]) } else { tokenizer1_markup_buf = concat(substr(tokenizer1_markup_buf, 1, tokenizer1_markup_start - 1),entitydefinitions1_parameter_entity_replacement_text[pe],substr(tokenizer1_markup_buf, tokenizer1_markup_start + RLENGTH + 1)) } } else if (pe in entitydefinitions1_parameter_entity_public_identifier) { if (entitydefinitions1_parameter_entity_public_identifier[pe] == "+//IDN sgmljs.net//SHORTREF Markdown//EN") { ; markupdefinitions1_enable_markdown() tokenizer1_markup_start += tokenizer1_markup_length } else if (entitydefinitions1_parameter_entity_public_identifier[pe] == "+//IDN sgmljs.net//ENTITIES CGI 1.1//EN") { ; tokenizer1_define_cgi_meta_variables_as_entities(declaration_set_name) tokenizer1_markup_start += tokenizer1_markup_length } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(tokenizer1_markup_text),": reference to parameter entity declared with an unrecognized public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",pe,"'",": reference to undeclared parameter entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } continue } else if (tokenizer1_markup_text == "\004") { ; locator1_pop_context() } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(tokenizer1_markup_text),": unexpected character data in declaration subset"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(tokenizer1_markup_text),": unexpected markup in declaration subset"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tokenizer1_markup_start += tokenizer1_markup_length } } function tokenizer1_call_parse_declaration_set(declaration_set_type, declaration_set_name, document_element_name, pubid,sysid,srcspec,resultspec,oldlineno,r) { r = "" if (declaration_set_name in markupdefinitions1_external_subset_sysids) sysid = markupdefinitions1_external_subset_sysids[declaration_set_name] else sysid = "" if (declaration_set_name in markupdefinitions1_external_subset_pubids) pubid = markupdefinitions1_external_subset_pubids[declaration_set_name] else pubid = "" if (declaration_set_type == "LINKTYPE" || declaration_set_type == "LINKTYPE-PRESCAN") { if (declaration_set_name in markupdefinitions1_link_process_source_doctype_specs) srcspec = markupdefinitions1_link_process_source_doctype_specs[declaration_set_name] if (declaration_set_name in markupdefinitions1_link_process_result_doctype_specs) resultspec = markupdefinitions1_link_process_result_doctype_specs[declaration_set_name] } tokenizer1_line_number_save = locator1_get_line_number(); ;; if (declaration_set_name in tokenizer1_declaration_subset_lineno) locator1_set_line_number(tokenizer1_declaration_subset_lineno[declaration_set_name]); if (declaration_set_name in tokenizer1_internal_subset_start) r = tokenizer1_parse_declaration_set(declaration_set_type, declaration_set_name, pubid, sysid, tokenizer1_declaration_text[declaration_set_name], tokenizer1_internal_subset_start[declaration_set_name], tokenizer1_internal_subset_length[declaration_set_name], document_element_name) else r = tokenizer1_parse_declaration_set(declaration_set_type, declaration_set_name, pubid, sysid, tokenizer1_declaration_text[declaration_set_name], 0, 0, document_element_name) return r } function tokenizer1_prepare_link_process(link_process_name, link_set_name,link_set_arr,link_element_arr,link_attributes_arr,num_link_sets,num_mapped_elements,i,j,k,has_link_attr_with_same_name_as_dtd_attr,link_target,parse_attribute_specification_result,a) { link_set_name = "" split("", link_set_arr) split("", link_element_arr) split("", link_attributes_arr) has_link_attr_with_same_name_as_dtd_attr = "" link_target = "" a = "" if (markupdefinitions1_link_process_source_doctype_specs[link_process_name] == "#SIMPLE") return if (!(link_process_name in markupdefinitions1_link_sets)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("link process ", link_process_name, ": no link sets declared"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!(index(" " markupdefinitions1_link_sets[link_process_name] " ", " " "#INITIAL" " "))) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("link process ", link_process_name, ": required #INITIAL link set not declared"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tokenizer1_save_parsing_state() num_link_sets = split(markupdefinitions1_link_sets[link_process_name], link_set_arr, /[[:space:]]+/) if (num_link_sets == 0) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("internal error: link process ", link_process_name, ": no link sets declared"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; for (i = 0; i < num_link_sets; i++) { if (!((link_process_name, link_set_arr[1+ i]) in markupdefinitions1_link_elements)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("internal_error: link process ", link_process_name, ": link set ", link_set_arr[1+ i], ": no source elements declared"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ((link_process_name, link_set_arr[1+ i]) in markupdefinitions1_link_elements && markupdefinitions1_link_elements[link_process_name, link_set_arr[1+ i]] == "#IMPLIED") continue num_mapped_elements = split(markupdefinitions1_link_elements[link_process_name, link_set_arr[1+ i]], link_element_arr, /[[:space:]]+/) ; for (j = 0; j < num_mapped_elements; j++) { if (!((link_process_name, link_set_arr[1+ i], link_element_arr[1+ j]) in markupdefinitions1_link_rules)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("internal_error: link process ", link_process_name, ": link element ", link_element_arr[1+ j], ": no link rules declared"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; for (k = 1; k <= markupdefinitions1_link_rules[link_process_name, link_set_arr[1+ i], link_element_arr[1+ j]]; k++) { ; ; split("", link_attributes_arr) if ((link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k) in markupdefinitions1_link_uselink_targets && substr(markupdefinitions1_link_uselink_targets[link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k], 1, 1) != "#" && !index(" " markupdefinitions1_link_sets[link_process_name] " ", " " markupdefinitions1_link_uselink_targets[link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k] " ")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", markupdefinitions1_link_uselink_targets[link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k], "': #USELINK target reference to undeclared link set"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ((link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k) in markupdefinitions1_link_postlink_targets && substr(markupdefinitions1_link_postlink_targets[link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k], 1, 1) != "#" && !index(" " markupdefinitions1_link_sets[link_process_name] " ", " " markupdefinitions1_link_postlink_targets[link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k] " ")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", markupdefinitions1_link_postlink_targets[link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k], "': #POSTLINK target reference to undeclared link set"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ((link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k) in markupdefinitions1_link_attribute_specifications && markupdefinitions1_link_attribute_specifications[link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k] != "") { ; tokenizer1_markup_buf = markupdefinitions1_link_attribute_specifications[link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k] parse_attribute_specification_result = tokenizer1_parse_attribute_specification(1, length(tokenizer1_markup_buf), 0, link_attributes_arr, link_process_name, link_element_arr[1+ j], "", "") if (parse_attribute_specification_result != length(tokenizer1_markup_buf)) { ; { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("link process ", link_process_name, ": link set ", link_set_arr[1+ i], ": source element ", link_element_arr[1+ j], ": link rule #", k, ": unresolved entity references or references to external entities in link attribute specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } else if (tokenizer1_strict_mode == "1") { if (markupdefinitions1_link_rules[link_process_name, link_set_arr[1+ i], link_element_arr[1+ j]] > 1) { { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("link process ", link_process_name, ": link set ", link_set_arr[1+ i], ": source element ", link_element_arr[1+ j], ": link rule #", k, ": omitting link attribute specification when declaring multiple link rules on element"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } attributechecker1_check_attribute_array(link_process_name, link_element_arr[1+ j], "", link_attributes_arr, concat("link attributes for element ", link_element_arr[1+ j], ", rule #", k)) has_link_attr_with_same_name_as_dtd_attr = "" for (a in link_attributes_arr) { ; ; ; if ((markupdefinitions1_link_process_source_doctype_specs[link_process_name], link_element_arr[1+ j], a) in markupdefinitions1_attribute_declared_values) { has_link_attr_with_same_name_as_dtd_attr = "1" ; if ( (!((link_process_name, link_element_arr[1+ j], a) in markupdefinitions1_attribute_default_semantics)) || (markupdefinitions1_attribute_default_semantics[link_process_name, link_element_arr[1+ j], a] != "#IMPLIED") ) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("link process ", link_process_name, ": link set ", link_set_arr[1+ i], ": source element ", link_element_arr[1+ j], ": link rule #", k, ": link attribute with same name as a source DTD attribute must have #IMPLIED default semantics"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } for (a in link_attributes_arr) { ; markupdefinitions1_link_attributes[link_process_name, link_set_arr[1+ i], link_element_arr[1+ j], k, a] = link_attributes_arr[a] } } } } tokenizer1_restore_parsing_state() } function tokenizer1_prepare_past_prolog_processing(document_element_name, resolved_sysid) { resolved_sysid = "" ; if (document_element_name && !("1" in tokenizer1_document_type_names)) { ; if (tokenizer1_document_type_declaration_no != 0) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("internal error: state incosistent with number of declaration sets", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tokenizer1_document_type_declaration_no = 1 if (sgmldecl1_features_minimize_implydef_doctype == "YES") { tokenizer1_document_type_names["1"] = "#IMPLIED" tokenizer1_declaration_text["#IMPLIED"] = "" markupdefinitions1_external_subset_sysids["#IMPLIED"] = "#IMPLIED" } else if (sgmldecl1_features_minimize_implydef_element != "YES") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("missing document prolog when IMPLYDEF ELEMENT NO and IMPLYDEF DOCTYPE NO is specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { tokenizer1_document_type_names["1"] = "#IMPLIED" tokenizer1_declaration_text["#IMPLIED"] = "" } tokenizer1_instance_had_implied_prolog = "1" } if (document_element_name && "1" in tokenizer1_document_type_names && tokenizer1_document_type_names["1"] == "#IMPLIED") { ; tokenizer1_document_type_names[1] = document_element_name tokenizer1_declaration_text[document_element_name] = tokenizer1_declaration_text["#IMPLIED"] delete tokenizer1_declaration_text["#IMPLIED"] if ("#IMPLIED" in tokenizer1_internal_subset_start) { tokenizer1_internal_subset_start[document_element_name] = tokenizer1_internal_subset_start["#IMPLIED"] tokenizer1_internal_subset_length[document_element_name] = tokenizer1_internal_subset_length["#IMPLIED"] delete tokenizer1_internal_subset_start["#IMPLIED"] delete tokenizer1_internal_subset_length["#IMPLIED"] } if ("#IMPLIED" in markupdefinitions1_external_subset_sysids) { markupdefinitions1_external_subset_sysids[document_element_name] = markupdefinitions1_external_subset_sysids["#IMPLIED"] delete markupdefinitions1_external_subset_sysids["#IMPLIED"] } if ("#IMPLIED" in markupdefinitions1_external_subset_pubids) { markupdefinitions1_external_subset_pubids[document_element_name] = markupdefinitions1_external_subset_pubids["#IMPLIED"] delete markupdefinitions1_external_subset_pubids["#IMPLIED"] } tokenizer1_instance_had_implied_doctype = "1" } else if (tokenizer1_expected_external_dtd_subset_identifier == "#IMPLIED") { if (!("1" in tokenizer1_document_type_names)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("missing required in prolog", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else if (!document_element_name) { if (!("1" in tokenizer1_document_type_names) || tokenizer1_document_type_names["1"] == "#IMPLIED") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("content must start with document element when document type isn't specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { ; if (!("1" in tokenizer1_document_type_names) && sgmldecl1_features_minimize_implydef_element != "YES") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("document element name not supplied when expected", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (tokenizer1_expected_external_dtd_subset_identifier && tokenizer1_expected_external_dtd_subset_identifier != "#IMPLIED" && "1" in tokenizer1_document_type_names && tokenizer1_document_type_names["1"] in markupdefinitions1_external_subset_sysids && markupdefinitions1_external_subset_sysids[tokenizer1_document_type_names["1"]] == "#IMPLIED") { ; tokenizer1_expected_external_dtd_subset_identifier = "" } if ("1" in tokenizer1_document_type_names) attributechecker1_set_declaration_set_name(tokenizer1_document_type_names["1"]) } function tokenizer1_add_implied_link_process_metadata( i,j,num_implied_lpds,num_implied_lpd_source_doctypes,num_implied_lpd_result_doctypes,implied_lpd_names_arr,implied_lpd_source_doctype_names_arr,implied_lpd_result_doctype_names_arr,found_doctype,k) { split("", implied_lpd_names_arr) split("", implied_lpd_source_doctype_names_arr) split("", implied_lpd_result_doctype_names_arr) if (sgmldecl1_syntax_namecase_general == "YES") { tokenizer1_system_specific_implied_lpd_names = toupper(tokenizer1_system_specific_implied_lpd_names) } num_implied_lpds = split(tokenizer1_system_specific_implied_lpd_names, implied_lpd_names_arr, "[ ,]") ; tokenizer1_system_specific_implied_lpd_names = "" for (i = 1; i <= tokenizer1_declaration_subset_count; i++) { if (i in tokenizer1_link_process_names) for (j = 0; j < num_implied_lpds; j++) if (implied_lpd_names_arr[1+ j] == tokenizer1_link_process_names[i]) { ; delete implied_lpd_names_arr[1+ j] } } for (j = 0; j < num_implied_lpds; j++) { if (j + 1 in implied_lpd_names_arr) { tokenizer1_declaration_subset_count++ tokenizer1_link_process_names[tokenizer1_declaration_subset_count] = implied_lpd_names_arr[1+ j] markupdefinitions1_external_subset_sysids[tokenizer1_link_process_names[tokenizer1_declaration_subset_count]] = "#IMPLIED" if (j + 1 in implied_lpd_source_doctype_names_arr) markupdefinitions1_link_process_source_doctype_specs[tokenizer1_link_process_names[tokenizer1_declaration_subset_count]] = implied_lpd_source_doctype_names_arr[1+ j] else markupdefinitions1_link_process_source_doctype_specs[tokenizer1_link_process_names[tokenizer1_declaration_subset_count]] = tokenizer1_document_type_names["1"] if (j + 1 in implied_lpd_result_doctype_names_arr) markupdefinitions1_link_process_result_doctype_specs[tokenizer1_link_process_names[tokenizer1_declaration_subset_count]] = implied_lpd_result_doctype_names_arr[1+ j] else markupdefinitions1_link_process_result_doctype_specs[tokenizer1_link_process_names[tokenizer1_declaration_subset_count]] = "#IMPLIED" tokenizer1_declaration_text[tokenizer1_link_process_names[tokenizer1_declaration_subset_count]] = concat("") } } ; } function tokenizer1_perform_past_prolog_processing(document_element_name, i,j,r,x) { r = "" ; ; if (!(tokenizer1_past_prolog_processing_preparation_performed)) { tokenizer1_prepare_past_prolog_processing(document_element_name) tokenizer1_past_prolog_processing_preparation_performed = "1" } if (tokenizer1_declaration_subset_count == 0) tokenizer1_declaration_subset_count = tokenizer1_document_type_declaration_no ; if (tokenizer1_active_lpd_names != "" && tokenizer1_system_specific_implied_lpd_names != "") { tokenizer1_add_implied_link_process_metadata() } if (tokenizer1_target_document_type_name != "" && sgmldecl1_syntax_namecase_general == "YES") tokenizer1_target_document_type_name = toupper(tokenizer1_target_document_type_name) if ("1" in tokenizer1_document_type_names && tokenizer1_target_document_type_name != "" && tokenizer1_target_document_type_name != tokenizer1_document_type_names["1"] && !tokenizer1_instance_had_implied_doctype) { ; tokenizer1_compute_effective_link_chain(tokenizer1_document_type_names["1"], tokenizer1_target_document_type_name) } chain1_end_prolog() if (!docinfo1_target_doctype) for (i = 1; i <= tokenizer1_declaration_subset_count; i++) if (i in tokenizer1_link_process_names && index(" " tokenizer1_active_lpd_names " ", " " tokenizer1_link_process_names[i] " ")) if (markupdefinitions1_link_process_result_doctype_specs[tokenizer1_link_process_names[i]] != "#IMPLIED") { docinfo1_target_doctype = markupdefinitions1_link_process_result_doctype_specs[tokenizer1_link_process_names[i]] ; } if (tokenizer1_active_lpd_names != "" || tokenizer1_instance_had_implied_doctype != "" || tokenizer1_force_prolog_recording != "" || tokenizer1_target_document_type_name != "") { tokenizer1_record_effective_markup_declarations = "" for (i = 1; i <= tokenizer1_declaration_subset_count; i++) { ; if (i in tokenizer1_link_process_names) { tokenizer1_document_type_declaration_no = i if (index(" " tokenizer1_active_lpd_names " ", " " tokenizer1_link_process_names[i] " ")) { r = tokenizer1_call_parse_declaration_set("LINKTYPE-PRESCAN", tokenizer1_link_process_names[i], document_element_name) } } } for (i = 1; i <= tokenizer1_declaration_subset_count; i++) { ; tokenizer1_document_type_declaration_no = i if (i in tokenizer1_document_type_names) { if (docinfo1_target_doctype) if (tokenizer1_document_type_names[i] == docinfo1_target_doctype) tokenizer1_record_effective_markup_declarations = "1" else tokenizer1_record_effective_markup_declarations = "" else tokenizer1_record_effective_markup_declarations = "1" if (i == 1) r = tokenizer1_call_parse_declaration_set("DOCTYPE", tokenizer1_document_type_names[i], document_element_name) else r = tokenizer1_call_parse_declaration_set("DOCTYPE", tokenizer1_document_type_names[i], "") } else if (i in tokenizer1_link_process_names) if (index(" " tokenizer1_active_lpd_names " ", " " tokenizer1_link_process_names[i] " ")) { tokenizer1_record_effective_markup_declarations = "" r = tokenizer1_call_parse_declaration_set("LINKTYPE", tokenizer1_link_process_names[i], document_element_name) } } } tokenizer1_record_effective_markup_declarations = "" ; if ("1" in tokenizer1_document_type_names) { tokenizer1_document_type_declaration_no = 1 if (!docinfo1_target_doctype) docinfo1_target_doctype = tokenizer1_document_type_names[tokenizer1_document_type_declaration_no] } if (sgmldecl1_public_declaration_reference == "+//IDN sgmljs.net//SD Markdown//EN" && !(markupdefinitions1_markdown_enabled == "YES")) { locator1_set_line_number(1) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("using SGML declaration reference for markdown without referencing markdown short reference declaration public identifier from prolog", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } tokenizer1_active_explicit_link_declaration_set_declaring_sgml_notation = "" for (i = 1; i <= tokenizer1_declaration_subset_count; i++) { if (i in tokenizer1_link_process_names && index(" " tokenizer1_active_lpd_names " ", " " tokenizer1_link_process_names[i] " ")) { if (markupdefinitions1_link_process_result_doctype_specs[tokenizer1_link_process_names[i]] == "#IMPLIED" && markupdefinitions1_link_process_source_doctype_specs[tokenizer1_link_process_names[i]] != "#SIMPLE") { for (j = i + 1; j <= tokenizer1_declaration_subset_count; j++) { if (j in tokenizer1_link_process_names && index(" " tokenizer1_active_lpd_names " ", " " tokenizer1_link_process_names[j] " ") && markupdefinitions1_link_process_result_doctype_specs[tokenizer1_link_process_names[j]] == "#IMPLIED" && markupdefinitions1_link_process_source_doctype_specs[tokenizer1_link_process_names[j]] != "#SIMPLE") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("link process ", tokenizer1_link_process_names[i], ": an implicit link process must be the last link process within a link pipeline"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } tokenizer1_prepare_link_process(tokenizer1_link_process_names[i]) } } if (tokenizer1_active_lpd_names != "" || tokenizer1_instance_had_implied_doctype != "" || tokenizer1_force_prolog_recording != "" || tokenizer1_target_document_type_name != "") { for (i = 1; i <= tokenizer1_declaration_subset_count; i++) { ; if (i in tokenizer1_document_type_names) { tokenizer1_line_number_save = locator1_get_line_number(); ;; if (tokenizer1_document_type_names[i] in tokenizer1_declaration_subset_lineno) locator1_set_line_number(tokenizer1_declaration_subset_lineno[tokenizer1_document_type_names[i]]); if (tokenizer1_document_type_names[i] in markupdefinitions1_external_subset_sysids) tokenizer1_dispatch_start_dtd(tokenizer1_document_type_names[i], "", markupdefinitions1_external_subset_sysids[tokenizer1_document_type_names[i]], tokenizer1_declaration_text[tokenizer1_document_type_names[i]]) else tokenizer1_dispatch_start_dtd(tokenizer1_document_type_names[i], "", "", tokenizer1_declaration_text[tokenizer1_document_type_names[i]]) tokenizer1_check_and_dispatch_notation_and_entity_declarations(tokenizer1_document_type_names[i]) tokenizer1_dispatch_end_dtd() locator1_set_line_number(tokenizer1_line_number_save); ;; } else if (i in tokenizer1_link_process_names) if (index(" " tokenizer1_active_lpd_names " ", " " tokenizer1_link_process_names[i] " ")) { tokenizer1_line_number_save = locator1_get_line_number(); ;; if (tokenizer1_link_process_names[i] in tokenizer1_declaration_subset_lineno) locator1_set_line_number(tokenizer1_declaration_subset_lineno[tokenizer1_link_process_names[i]]); if (tokenizer1_link_process_names[i] in markupdefinitions1_external_subset_sysids) tokenizer1_dispatch_start_dtd(tokenizer1_link_process_names[i], "", markupdefinitions1_external_subset_sysids[tokenizer1_link_process_names[i]], tokenizer1_declaration_text[tokenizer1_link_process_names[i]]) else tokenizer1_dispatch_start_dtd(tokenizer1_link_process_names[i], "", "", tokenizer1_declaration_text[tokenizer1_link_process_names[i]]) tokenizer1_check_and_dispatch_notation_and_entity_declarations(tokenizer1_link_process_names[i]) tokenizer1_dispatch_end_dtd() locator1_set_line_number(tokenizer1_line_number_save); ;; } } } if (!tokenizer1_past_prolog_processing_callback_called) { tokenizer1_past_prolog_processing_callback_called = "1" noopprologhandler1_startContent() } return } function tokenizer1_save_parsing_state() { ; tokenizer1_markup_buf_save = tokenizer1_markup_buf tokenizer1_markup_start_save = tokenizer1_markup_start tokenizer1_markup_length_save = tokenizer1_markup_length tokenizer1_markup_event_save = tokenizer1_markup_event tokenizer1_markup_text_save = tokenizer1_markup_text tokenizer1_parsing_state_saved = "1" } function tokenizer1_save_parsing_state2() { ; tokenizer1_markup_buf_save2 = tokenizer1_markup_buf tokenizer1_markup_start_save2 = tokenizer1_markup_start tokenizer1_markup_length_save2 = tokenizer1_markup_length tokenizer1_markup_event_save2 = tokenizer1_markup_event tokenizer1_parsing_state_saved2 = "1" } function tokenizer1_restore_parsing_state() { ; tokenizer1_markup_buf = tokenizer1_markup_buf_save tokenizer1_markup_start = tokenizer1_markup_start_save tokenizer1_markup_length = tokenizer1_markup_length_save tokenizer1_markup_event = tokenizer1_markup_event_save tokenizer1_markup_text = tokenizer1_markup_text_save tokenizer1_parsing_state_saved = "" } function tokenizer1_restore_parsing_state2() { ; tokenizer1_markup_buf = tokenizer1_markup_buf_save2 tokenizer1_markup_start = tokenizer1_markup_start_save2 tokenizer1_markup_length = tokenizer1_markup_length_save2 tokenizer1_markup_event = tokenizer1_markup_event_save2 tokenizer1_parsing_state_saved2 = "" } function tokenizer1_determine_effective_notation_public_identifier(declaration_set_name, notation_name, superdcn,superdcn_attribute_name) { superdcn = "" superdcn_attribute_name = "" if (sgmldecl1_syntax_namecase_general == "YES") superdcn_attribute_name = "SUPERDCN" else superdcn_attribute_name = "superdcn" if ((declaration_set_name, notation_name) in markupdefinitions1_notation_public_identifiers) { ; return markupdefinitions1_notation_public_identifiers[declaration_set_name, notation_name] } else { superdcn = notation_name ; ; ; ; while ((declaration_set_name, superdcn) in markupdefinitions1_data_attributes && index(" " markupdefinitions1_data_attributes[declaration_set_name, superdcn] " ", " " superdcn_attribute_name " ")) { superdcn = markupdefinitions1_data_attribute_default_values[declaration_set_name, superdcn, superdcn_attribute_name] ; if (superdcn == "") break if (superdcn == notation_name) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("notation ", notation_name, ": notation declares itself as derived data content notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ((declaration_set_name, superdcn) in markupdefinitions1_notation_public_identifiers) { ; return markupdefinitions1_notation_public_identifiers[declaration_set_name, superdcn] } } } return "" } function tokenizer1_check_and_dispatch_notation_and_entity_declarations(declaration_set_name, key,name,pubid,sysid,notations,data_attribute_values,i,num_notations,oldlineno,superdcn_value,superdcn_semantics,superdcn_attribute_name,tmplen,tmplen2,data_attribute_values_str_map,entity_text,doctype_elementname_tuple,shortref_maps_arr,shortref_map_name,shortref_literal_number,shortref_literal,n) { key = "" name = "" pubid = "" sysid = "" split("", notations) split("", data_attribute_values) superdcn_value = "" superdcn_semantics = "" superdcn_attribute_name = "" split("", data_attribute_values_str_map) entity_text = "" doctype_elementname_tuple = "" split("", shortref_maps_arr) shortref_map_name = "" shortref_literal = "" if (sgmldecl1_syntax_namecase_general == "YES") superdcn_attribute_name = "SUPERDCN" else superdcn_attribute_name = "superdcn" ; ; num_notations = split(markupdefinitions1_notation_names[declaration_set_name], notations, " ") for (i = 1; i <= num_notations; i++) { ; if ((declaration_set_name, notations[i]) in markupdefinitions1_data_attributes && index(" " markupdefinitions1_data_attributes[declaration_set_name, notations[i]] " ", " " superdcn_attribute_name " ")) { if ((declaration_set_name, notations[i], superdcn_attribute_name) in markupdefinitions1_data_attribute_declared_values) { if (!((declaration_set_name, notations[i], superdcn_attribute_name) in markupdefinitions1_data_attribute_default_values)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("notation ", notations[i], ": attribute ", superdcn_attribute_name, ": must be declared with #FIXED value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } superdcn_value = markupdefinitions1_data_attribute_default_values[declaration_set_name, notations[i], superdcn_attribute_name] } if ((declaration_set_name, notations[i], superdcn_attribute_name) in markupdefinitions1_data_attribute_default_semantics) superdcn_semantics = markupdefinitions1_data_attribute_default_semantics[declaration_set_name, notations[i], superdcn_attribute_name] ; if (superdcn_semantics != "#FIXED") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("notation ", notations[i], ": attribute ", superdcn_attribute_name, ": must be declared with #FIXED value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!(index(" " markupdefinitions1_notation_names[declaration_set_name] " ", " " superdcn_value " "))) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("notation ", notations[i], ": attribute ", superdcn_attribute_name, ": must be declared with #FIXED value a notation name in same declaration set"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!index(" " markupdefinitions1_storage_manager_notation_names[declaration_set_name] " ", " " notations[i] " ")) if (!index(" " "exec module script sql" " ", " " superdcn_value " ") && !index(" " "EXEC MODULE SCRIPT SQL" " ", " " superdcn_value " ")) if ((declaration_set_name, superdcn_value) in markupdefinitions1_data_attributes) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("attribute ", superdcn_attribute_name, ": notation ", superdcn_value, ": must not contain a notation with declared attributes"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } for (name in entitydefinitions1_general_entity_type) { ; oldlineno = locator1_get_line_number() locator1_set_line_number(entitydefinitions1_general_entity_declaration_line_number[name]) if (entitydefinitions1_general_entity_declaration_set_name[name] != declaration_set_name) { ; continue } ; if (!index(" " markupdefinitions1_notation_names[declaration_set_name] " ", " " entitydefinitions1_general_entity_notation[name] " ")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",entitydefinitions1_general_entity_notation[name],"': undeclared notation name in NDATA entity declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } split("", data_attribute_values) if (name in entitydefinitions1_general_entity_data_attributes) { ; tokenizer1_save_parsing_state2() tokenizer1_markup_buf = entitydefinitions1_general_entity_data_attributes[name] tmplen = tokenizer1_parse_attribute_specification(1, length(tokenizer1_markup_buf), 0, data_attribute_values, declaration_set_name, "", entitydefinitions1_general_entity_notation[name], "") tmplen2 = length(tokenizer1_markup_buf) ; if (tmplen != tmplen2) { { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("data entiy ", name, ": invalid data attributes specification in declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } tokenizer1_restore_parsing_state2() } else { ; } attributechecker1_check_attribute_array(declaration_set_name, "", entitydefinitions1_general_entity_notation[name], data_attribute_values, ("data entity " name)) locator1_set_line_number(oldlineno) data_attribute_values_str_map[name] = sgmlutil_sgml_formatattrs(data_attribute_values) entitydefinitions1_general_entity_data_attributes[name] = data_attribute_values_str_map[name] ; if (entitydefinitions1_general_entity_type[name] == "CDATA" || entitydefinitions1_general_entity_type[name] == "SDATA") { ; if (name in entitydefinitions1_general_entity_notation) { ;; if ((entitydefinitions1_general_entity_declaration_set_name[name], entitydefinitions1_general_entity_notation[name]) in markupdefinitions1_notation_public_identifiers) { ;; if (markupdefinitions1_notation_public_identifiers[entitydefinitions1_general_entity_declaration_set_name[name], entitydefinitions1_general_entity_notation[name]] == "+//IDN www.w3c.org/TR/html5//NOTATION HTML Form Input Types//EN") { ; entity_text = systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), name) if ((entity_text ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) { locator1_push_context(name, entity_text) entity_text = substr(entity_text, 10) if (entity_text != "") { entity_text = htmlforminputvaluechecker2_normalize_value(entity_text, data_attribute_values) if (entity_text == "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("'entity_text': invalid value for HTML form input validation notation", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } locator1_pop_context() } } } } } } if (tokenizer1_strict_mode == "1") { if (declaration_set_name in markupdefinitions1_shortref_maps) { n = split(markupdefinitions1_shortref_maps[declaration_set_name], shortref_maps_arr, / /) for (i = 0; i < n; i++) { shortref_map_name = shortref_maps_arr[1+ i] for (shortref_literal_number = 1; shortref_literal_number <= markupdefinitions1_shortref_map_delimiter_literal_numbers[declaration_set_name, shortref_map_name]; shortref_literal_number++) { shortref_literal = markupdefinitions1_shortref_map_delimiter_literals[declaration_set_name, shortref_map_name, shortref_literal_number] if (!(shortref_literal in sgmldecl1_declared_shortref_delimiters)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", shortref_literal, "': delimiter literal not declared as short reference delimiter in SGML declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } } } if (sgmldecl1_features_minimize_implydef_element == "NO") { for (doctype_elementname_tuple in markupdefinitions1_shortref_uses) { if (substr(doctype_elementname_tuple, 1, length(concat(declaration_set_name, SUBSEP))) != concat(declaration_set_name, SUBSEP)) continue sub(concat("^", declaration_set_name, "\\", SUBSEP), "", doctype_elementname_tuple) if (!((declaration_set_name, doctype_elementname_tuple) in markupdefinitions1_element_declarations)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",doctype_elementname_tuple,"': undeclared associated element specified in short reference use declaration"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } for (i = 1; i <= num_notations; i++) { if (notations[i] == "exec" || notations[i] == "EXEC" || notations[i] == "url" || notations[i] == "URL" || notations[i] == "strftime" || notations[i] == "STRFTIME" || notations[i] == "strptime" || notations[i] == "STRPTIME" || notations[i] == "script" || notations[i] == "SCRIPT") continue pubid = tokenizer1_determine_effective_notation_public_identifier(declaration_set_name, notations[i]) if ((declaration_set_name, notations[i]) in markupdefinitions1_notation_system_identifiers) { sysid = markupdefinitions1_notation_system_identifiers[declaration_set_name, notations[i]] ; } else { sysid = "" ; } if (pubid == "ISO 8879:1986//NOTATION Standard Generalized Markup Language (SGML)//EN") if (index(" " tokenizer1_active_lpd_names " ", " " declaration_set_name " ") && declaration_set_name in markupdefinitions1_link_process_result_doctype_specs && markupdefinitions1_link_process_result_doctype_specs[declaration_set_name] != "#IMPLIED" && index(" " markupdefinitions1_notation_names[declaration_set_name] " ", " " notations[i] " ")) if (tokenizer1_active_explicit_link_declaration_set_declaring_sgml_notation == "") tokenizer1_active_explicit_link_declaration_set_declaring_sgml_notation = declaration_set_name else if (tokenizer1_active_explicit_link_declaration_set_declaring_sgml_notation != declaration_set_name) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("declaration set '", declaration_set_name, ": notation ", notations[i], ": declaring an SGML templating notation for more than a single active explicit link process"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tokenizer1_dispatch_notation_decl(notations[i], pubid, sysid) } for (name in entitydefinitions1_general_entity_type) { if (name in entitydefinitions1_system_specific_general_entities) tokenizer1_dispatch_unparsed_entity_decl(name, "", systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), name), entitydefinitions1_general_entity_notation[name], data_attribute_values_str_map[name]) else if (name in entitydefinitions1_entity_replacement_file) tokenizer1_dispatch_unparsed_entity_decl(name, "", entitydefinitions1_entity_replacement_file[name], entitydefinitions1_general_entity_notation[name], data_attribute_values_str_map[name]) else tokenizer1_dispatch_unparsed_entity_decl(name, "", "", entitydefinitions1_general_entity_notation[name], data_attribute_values_str_map[name]) } } function tokenizer1_parse_declaration_set(declaration_set_type, declaration_set_name, pubid, sysid, declaration_text, subset_start, subset_length, document_element_name, internal_subset,resolved_sysid,resolved_entity_content) { internal_subset = "" resolved_sysid = "" resolved_entity_content = "" if (subset_start) internal_subset = substr(declaration_text, subset_start, subset_length) ; if (declaration_set_type == "DOCTYPE") { if (tokenizer1_expected_external_dtd_subset_identifier == "#IMPLIED") { if ((!tokenizer1_target_document_type_name && sysid != "#IMPLIED") || (tokenizer1_target_document_type_name != "" && declaration_set_name == tokenizer1_target_document_type_name && sysid != "#IMPLIED")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("missing required in prolog", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else if (tokenizer1_expected_external_dtd_subset_identifier) { resolved_sysid = path_resolve(path_dirname(locator1_get_system_id()), sysid) ; if (resolved_sysid != tokenizer1_expected_external_dtd_subset_identifier) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unexpected external subset identifier in document type declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tokenizer1_expected_external_dtd_subset_identifier = "" } else if (!document_element_name) { if (!("1" in tokenizer1_document_type_names) || tokenizer1_document_type_names["1"] == "#IMPLIED") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("content must start with document element when document type isn't specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } if (declaration_set_type != "LINKTYPE-PRESCAN") if (tokenizer1_active_lpd_names != "" || tokenizer1_instance_had_implied_doctype != "" || tokenizer1_force_prolog_recording != "" || tokenizer1_target_document_type_name != "") { ; } else { ; tokenizer1_dispatch_start_dtd(declaration_set_name, pubid, sysid, declaration_text) } if (sysid != "") { if (sysid == "#IMPLIED") { sysid = "" ; if (locator1_get_system_id() && locator1_get_system_id() != "-") { if (declaration_set_type == "LINKTYPE" || declaration_set_type == "LINKTYPE-PRESCAN") { ; if (declaration_set_name == "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("internal error: no declaration set parsed", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { sysid = systemspecificentityresolver1_resolve_external_subset_entity("LINKTYPE", locator1_get_system_id(), declaration_set_name) ; } } else if (document_element_name == "") if (declaration_set_name == "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("internal error: no declaration set parsed", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { sysid = systemspecificentityresolver1_resolve_external_subset_entity("DOCTYPE", locator1_get_system_id(), declaration_set_name) ; } else { sysid = systemspecificentityresolver1_resolve_external_subset_entity("DOCTYPE", locator1_get_system_id(), document_element_name) ; } } ; if (!sysid && systemspecificentityresolver1_system_specific_entity_path && substr(locator1_get_system_id(), 1, length(systemspecificentityresolver1_system_specific_entity_path)) == systemspecificentityresolver1_system_specific_entity_path) { sysid = systemspecificentityresolver1_resolve_external_subset_entity("DOCTYPE", locator1_get_system_id(), document_element_name) if (!sysid) sysid = systemspecificentityresolver1_resolve_system_specific_external_entity(".", document_element_name) if (!sysid || !fs_existsSync(sysid)) { ; locator1_set_system_id("") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unable to generate a system identifier for implied DTD", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } if (tokenizer1_expected_external_dtd_subset_identifier == "#IMPLIED") if (sysid && !fs_existsSync(sysid)) { ; locator1_set_system_id("") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unable to generate a system identifier for implied DTD", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (!sysid) { ; { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unable to generate a system identifier for implied DTD", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; if ((sysid ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) { internal_subset = (internal_subset substr(sysid, 10)) ; ; sysid = "" } } else { resolved_entity_content = bundledresolver_resolve_entity("", sysid) if (resolved_entity_content && resolved_entity_content != "") { internal_subset = (internal_subset resolved_entity_content) sysid = "" } } if (sysid) { internal_subset = concat(internal_subset, "%sgml_extsubset_", declaration_set_name, ";") ; ; } } else if (pubid != "") { if (sgmldecl1_features_other_formal == "YES") { if (substr(pubid, 1, 13) == "urn:publicid:" && sgmldecl1_features_other_urn == "YES") { urn1_set_href(pubid); if (urn1_is_invalid) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", pubid, "': invalid URI/URN for use as public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; fpi1_set_urn(pubid); if (fpi1_is_invalid) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", pubid, "': invalid URI/URN for use as public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; } else { fpi1_set(pubid); if (fpi1_is_invalid) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", pubid, "': invalid formal public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; } pubid = fpi1_get(); } if (pubid != "+//IDN sgmljs.net//LPD HTTP 2.0//EN") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", pubid, "': unrecognized public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (declaration_set_type != "LINKTYPE-PRESCAN" && declaration_set_type != "LINKTYPE") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", pubid, "': invalid public text class for intended use"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (internal_subset) { tokenizer1_save_parsing_state() tokenizer1_markup_buf = internal_subset tokenizer1_markup_start = 1 ; ; return tokenizer1_parse_declaration_subset(declaration_set_type, declaration_set_name) } } function tokenizer1_store_declaration_set(declaration_set_type, declaration_set_name, source_doctype_spec, result_doctype_spec, pubid, sysid, declaration_text, subset_start, subset_length) { ; tokenizer1_declaration_subset_lineno[declaration_set_name] = locator1_get_line_number() tokenizer1_declaration_text[declaration_set_name] = declaration_text if (subset_start) { tokenizer1_internal_subset_start[declaration_set_name] = subset_start tokenizer1_internal_subset_length[declaration_set_name] = subset_length } if (pubid) markupdefinitions1_external_subset_pubids[declaration_set_name] = pubid if (sysid) markupdefinitions1_external_subset_sysids[declaration_set_name] = sysid if (source_doctype_spec) markupdefinitions1_link_process_source_doctype_specs[declaration_set_name] = source_doctype_spec if (result_doctype_spec) markupdefinitions1_link_process_result_doctype_specs[declaration_set_name] = result_doctype_spec } function tokenizer1_parse_markup( l,tmpattr,tmpattr1,initial_markup_start,previous_markup_start,previous_markup_length,replaceattrs_result,suppress_dispatch,trans,parse_mode,xml_declaration,doctype,document_type_definition,document_type_name,link_process_definition,link_process_name,sysid,pubid,external_subset,line,subset_start,subset_stop,lpd_source_spec,lpd_result_spec,tmparray,empty_array,has_unresolved_entity_refs,fallback_content,oldlineno,tmp,entity_ref,entity_url,expand_result,parsed_entities_stack_len,found_source_doctype,found_result_doctype,markup_element,rank_stem,rank_suffix,start_of_content_line_number,markup_text_portion,i,x) { sysid = "" pubid = "" external_subset = "" split("", tmparray) split("", empty_array) tmp = "" entity_ref = "" entity_url = "" found_source_doctype = "" found_result_doctype = "" markup_element = "" rank_stem = "" rank_suffix = "" markup_text_portion = "" ; ; if (!tokenizer1_no_stalling_on_unresolved_entity && tokenizer1_unresolved_entity_name != "") return 0 suppress_dispatch = 0 previous_markup_start = -1 previous_markup_length = -1 if (!tokenizer1_start_document_sent) { tokenizer1_dispatch_start_document() tokenizer1_start_document_sent = 1 } for (;;) { ; parse_mode = "" if (tokenizer1_in_prolog == "0" && tokenizer1_document_type_declaration_no in tokenizer1_document_type_names) { doctype = tokenizer1_document_type_names[tokenizer1_document_type_declaration_no] if (docinfo1_content_reference == "" && stack5_len) if ((doctype, stack5_stack[stack5_len]) in markupdefinitions1_element_declarations) if (substr(markupdefinitions1_element_declarations[doctype, stack5_stack[stack5_len]], 1, 1) == "(") if (match(markupdefinitions1_element_declarations[doctype, stack5_stack[stack5_len]], /#PCDATA/)) parse_mode = "PCDATA" else parse_mode = "element-only" else parse_mode = markupdefinitions1_element_declarations[doctype, stack5_stack[stack5_len]] } ; initial_markup_start = tokenizer1_markup_start if (parse_mode == "CDATA" || parse_mode == "RCDATA") { if (!match(substr(tokenizer1_markup_buf, tokenizer1_markup_start), /<\/([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))*/)) { tokenizer1_markup_start = initial_markup_start break } if (RSTART > 1) { tokenizer1_markup_length = RSTART - 1 ; if (index(substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length), "\004")) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("entity-end in CDATA or RCDATA", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator1_characters(substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length)) if (parse_mode == "RCDATA") { if (tokenizer1_expand_general_entity_references(tokenizer1_markup_start, tokenizer1_markup_length, "RCDATA") != tokenizer1_markup_length) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unresolved entites not expected/supported in RCDATA section", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tokenizer1_dispatch_characters(markupencoder1_encode_content(substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length))) } else { tokenizer1_dispatch_characters(substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length)) } tokenizer1_markup_start = tokenizer1_markup_start + tokenizer1_markup_length } ; } ; if (!tokenizer1_delimit_markup()) { if (tokenizer1_no_stalling_at_end_of_markup) if (tokenizer1_markup_start > length(tokenizer1_markup_buf)) return 1 else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("incomplete markup at end of input", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else return 1 } ; ; if (tokenizer1_markup_event == "]") tokenizer1_handle_marked_section_end() else if (tokenizer1_markup_event == "[") { if (tokenizer1_in_prolog == "1") { tokenizer1_in_prolog = "0" tokenizer1_perform_past_prolog_processing("") } if (!tokenizer1_handle_marked_section_start(0)) { if (tokenizer1_no_stalling_at_end_of_markup) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",substr(tokenizer1_markup_text, 1, 8),"': unterminated CDATA marked section"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; tokenizer1_markup_start = initial_markup_start break } } else if (tokenizer1_marked_section_include_level < tokenizer1_marked_section_nesting_level) { } else if (tokenizer1_markup_event == "?") tokenizer1_handle_pi("") else if (tokenizer1_markup_event == "!") { if ((tokenizer1_markup_text ~ /^$/) && !(substr(tokenizer1_markup_text, 5, length(tokenizer1_markup_text) - 5 - 3) ~ /--/)) { if (tokenizer1_in_prolog == "1") { ; } else { ; tokenizer1_dispatch_comment(tokenizer1_markup_text) } } else if ((tokenizer1_markup_text ~ /^$/)) { platformerrorhandler1_fatalError(concat("'",substr(document_type_definition, sgmlutil_sgml_rindex(document_type_definition, "]") + 1, 12),"...': unexpected character data following subset specification in ", ("DOCTYPE" == "DOCTYPE"? "document":"link"),"type definition"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; subset_start = subset_start + index(document_type_definition, "["); document_type_definition = substr(document_type_definition, 1, index(document_type_definition, "[") - 1); } else { document_type_definition = substr(document_type_definition, 1, length(document_type_definition) - 1); subset_start = 0; } sub(/^[ \t\n]+/, "", document_type_definition); pubid = ""; sysid = ""; if (substr(document_type_definition, 1, 1)) { if ((substr(document_type_definition, 1, 6) ~ /^[Ss][Yy][Ss][Tt][Ee][Mm]$/)) { document_type_definition = substr(document_type_definition, 7); sub(/^[ \t\n]+/, "", document_type_definition); if (substr(document_type_definition, 1, 1) == "%") { document_type_definition = (document_type_definition); sub(/^[ \t\n]+/, "", document_type_definition); } if (document_type_definition == "") { ; } else if (substr(document_type_definition, 1, 1) == "\"") { document_type_definition = substr(document_type_definition, 2); if (!index(document_type_definition, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(document_type_definition, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(document_type_definition, 1, index(document_type_definition, "\"") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(document_type_definition, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; document_type_definition = substr(document_type_definition, index(document_type_definition, "\"") + 1); } else if (substr(document_type_definition, 1, 1) == "'") { document_type_definition = substr(document_type_definition, 2); if (!index(document_type_definition, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(document_type_definition, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(document_type_definition, 1, index(document_type_definition, "'") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(document_type_definition, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; document_type_definition = substr(document_type_definition, index(document_type_definition, "'") + 1); } sub(/^[ \t\n]+/, "", document_type_definition); } else if ((substr(document_type_definition, 1, 6) ~ /^[Pp][Uu][Bb][Ll][Ii][Cc]$/)) { document_type_definition = substr(document_type_definition, 7); sub(/^[ \t\n]+/, "", document_type_definition); if (substr(document_type_definition, 1, 1) == "%") { document_type_definition = (document_type_definition); sub(/^[ \t\n]+/, "", document_type_definition); } if (document_type_definition == "") { { platformerrorhandler1_fatalError(concat("'", substr(document_type_definition, 1, 8), "...': incomplete public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; } else if (substr(document_type_definition, 1, 1) == "\"") { document_type_definition = substr(document_type_definition, 2); if (!index(document_type_definition, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(document_type_definition, 1, 8), "...': unqualified public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; pubid = substr(document_type_definition, 1, index(document_type_definition, "\"") - 1); document_type_definition = substr(document_type_definition, index(document_type_definition, "\"") + 1); } else if (substr(document_type_definition, 1, 1) == "'") { document_type_definition = substr(document_type_definition, 2); if (!index(document_type_definition, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(document_type_definition, 1, 8), "...': unterminated public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; pubid = substr(document_type_definition, 1, index(document_type_definition, "'") - 1); document_type_definition = substr(document_type_definition, index(document_type_definition, "'") + 1); } else { platformerrorhandler1_fatalError(concat("'", substr(document_type_definition, 1, 8), "...': invalid public identifier specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; if (pubid == "") { platformerrorhandler1_fatalError(concat("'", substr(document_type_definition, 1, 8), "...': empty public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sub(/^[ \t\n]+/, "", document_type_definition); if (document_type_definition != "") { if (substr(document_type_definition, 1, 1) == "\"") { document_type_definition = substr(document_type_definition, 2); if (!index(document_type_definition, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(document_type_definition, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(document_type_definition, 1, index(document_type_definition, "\"") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(document_type_definition, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; document_type_definition = substr(document_type_definition, index(document_type_definition, "\"") + 1); } else if (substr(document_type_definition, 1, 1) == "'") { document_type_definition = substr(document_type_definition, 2); if (!index(document_type_definition, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(document_type_definition, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(document_type_definition, 1, index(document_type_definition, "'") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(document_type_definition, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; document_type_definition = substr(document_type_definition, index(document_type_definition, "'") + 1); } sub(/^[ \t\n]+/, "", document_type_definition); } } else { platformerrorhandler1_fatalError(concat("'", substr(document_type_definition, 1, 10), "...': invalid external identifier specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; if (!(document_type_definition ~ /^[ \t\n]*$/)) { platformerrorhandler1_fatalError(concat("'",substr(document_type_definition, 1, 12),"...': unexpected character data following external identifier specification in ", ("DOCTYPE" == "DOCTYPE"? "document":"link"),"type definition"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; if (document_type_name == "#IMPLIED" && sysid == "") sysid = "#IMPLIED"; else if (pubid == "" && sysid == "") sysid = "#IMPLIED"; } if (document_type_name != "#IMPLIED" && sgmldecl1_syntax_namecase_general == "YES") document_type_name = toupper(document_type_name) if (document_type_name == "#IMPLIED" && tokenizer1_document_type_declaration_no != 0) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(" may only be specified on the base document type declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } for (x = 1; x <= tokenizer1_document_type_declaration_no; x++) if (x in tokenizer1_document_type_names && tokenizer1_document_type_names[x] == document_type_name) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", document_type_name, "': declaration set name already declared in document prolog"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tokenizer1_document_type_names[++tokenizer1_document_type_declaration_no] = document_type_name ; if (tokenizer1_active_lpd_names != "" || document_type_name == "#IMPLIED" || tokenizer1_force_prolog_recording || tokenizer1_target_document_type_name != "") if (subset_start) tokenizer1_store_declaration_set("DOCTYPE", tokenizer1_document_type_names[tokenizer1_document_type_declaration_no], lpd_source_spec, lpd_result_spec, pubid, sysid, tokenizer1_markup_text, subset_start, subset_stop - subset_start) else tokenizer1_store_declaration_set("DOCTYPE", tokenizer1_document_type_names[tokenizer1_document_type_declaration_no], lpd_source_spec, lpd_result_spec, pubid, sysid, tokenizer1_markup_text, 0, 0) else { tokenizer1_declaration_subset_lineno[tokenizer1_document_type_names[tokenizer1_document_type_declaration_no]] = locator1_get_line_number() if (subset_start) tokenizer1_parse_declaration_set("DOCTYPE", tokenizer1_document_type_names[tokenizer1_document_type_declaration_no], pubid, sysid, tokenizer1_markup_text, subset_start, subset_stop - subset_start, "") else tokenizer1_parse_declaration_set("DOCTYPE", tokenizer1_document_type_names[tokenizer1_document_type_declaration_no], pubid, sysid, tokenizer1_markup_text, 0, 0, "") } } else if ((tokenizer1_markup_text ~ /^$/)) { platformerrorhandler1_fatalError(concat("'",substr(link_process_definition, sgmlutil_sgml_rindex(link_process_definition, "]") + 1, 12),"...': unexpected character data following subset specification in ", ("LINKTYPE" == "DOCTYPE"? "document":"link"),"type definition"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; subset_start = subset_start + index(link_process_definition, "["); link_process_definition = substr(link_process_definition, 1, index(link_process_definition, "[") - 1); } else { link_process_definition = substr(link_process_definition, 1, length(link_process_definition) - 1); subset_start = 0; } sub(/^[ \t\n]+/, "", link_process_definition); pubid = ""; sysid = ""; if (substr(link_process_definition, 1, 1)) { if ((substr(link_process_definition, 1, 6) ~ /^[Ss][Yy][Ss][Tt][Ee][Mm]$/)) { link_process_definition = substr(link_process_definition, 7); sub(/^[ \t\n]+/, "", link_process_definition); if (substr(link_process_definition, 1, 1) == "%") { link_process_definition = (link_process_definition); sub(/^[ \t\n]+/, "", link_process_definition); } if (link_process_definition == "") { ; } else if (substr(link_process_definition, 1, 1) == "\"") { link_process_definition = substr(link_process_definition, 2); if (!index(link_process_definition, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(link_process_definition, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(link_process_definition, 1, index(link_process_definition, "\"") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(link_process_definition, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; link_process_definition = substr(link_process_definition, index(link_process_definition, "\"") + 1); } else if (substr(link_process_definition, 1, 1) == "'") { link_process_definition = substr(link_process_definition, 2); if (!index(link_process_definition, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(link_process_definition, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(link_process_definition, 1, index(link_process_definition, "'") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(link_process_definition, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; link_process_definition = substr(link_process_definition, index(link_process_definition, "'") + 1); } sub(/^[ \t\n]+/, "", link_process_definition); } else if ((substr(link_process_definition, 1, 6) ~ /^[Pp][Uu][Bb][Ll][Ii][Cc]$/)) { link_process_definition = substr(link_process_definition, 7); sub(/^[ \t\n]+/, "", link_process_definition); if (substr(link_process_definition, 1, 1) == "%") { link_process_definition = (link_process_definition); sub(/^[ \t\n]+/, "", link_process_definition); } if (link_process_definition == "") { { platformerrorhandler1_fatalError(concat("'", substr(link_process_definition, 1, 8), "...': incomplete public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; } else if (substr(link_process_definition, 1, 1) == "\"") { link_process_definition = substr(link_process_definition, 2); if (!index(link_process_definition, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(link_process_definition, 1, 8), "...': unqualified public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; pubid = substr(link_process_definition, 1, index(link_process_definition, "\"") - 1); link_process_definition = substr(link_process_definition, index(link_process_definition, "\"") + 1); } else if (substr(link_process_definition, 1, 1) == "'") { link_process_definition = substr(link_process_definition, 2); if (!index(link_process_definition, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(link_process_definition, 1, 8), "...': unterminated public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; pubid = substr(link_process_definition, 1, index(link_process_definition, "'") - 1); link_process_definition = substr(link_process_definition, index(link_process_definition, "'") + 1); } else { platformerrorhandler1_fatalError(concat("'", substr(link_process_definition, 1, 8), "...': invalid public identifier specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; if (pubid == "") { platformerrorhandler1_fatalError(concat("'", substr(link_process_definition, 1, 8), "...': empty public identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sub(/^[ \t\n]+/, "", link_process_definition); if (link_process_definition != "") { if (substr(link_process_definition, 1, 1) == "\"") { link_process_definition = substr(link_process_definition, 2); if (!index(link_process_definition, "\"")) { platformerrorhandler1_fatalError(concat("\"", substr(link_process_definition, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(link_process_definition, 1, index(link_process_definition, "\"") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(link_process_definition, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; link_process_definition = substr(link_process_definition, index(link_process_definition, "\"") + 1); } else if (substr(link_process_definition, 1, 1) == "'") { link_process_definition = substr(link_process_definition, 2); if (!index(link_process_definition, "'")) { platformerrorhandler1_fatalError(concat("\"", substr(link_process_definition, 1, 8), "...': unterminated system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; sysid = substr(link_process_definition, 1, index(link_process_definition, "'") - 1); if (sysid == "") { platformerrorhandler1_fatalError(concat("'", substr(link_process_definition, 1, 8), "...': empty system identifier"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; link_process_definition = substr(link_process_definition, index(link_process_definition, "'") + 1); } sub(/^[ \t\n]+/, "", link_process_definition); } } else { platformerrorhandler1_fatalError(concat("'", substr(link_process_definition, 1, 10), "...': invalid external identifier specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; if (!(link_process_definition ~ /^[ \t\n]*$/)) { platformerrorhandler1_fatalError(concat("'",substr(link_process_definition, 1, 12),"...': unexpected character data following external identifier specification in ", ("LINKTYPE" == "DOCTYPE"? "document":"link"),"type definition"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); }; if (link_process_name == "#IMPLIED" && sysid == "") sysid = "#IMPLIED"; else if (pubid == "" && sysid == "") sysid = "#IMPLIED"; } if (sgmldecl1_syntax_namecase_general == "YES") { link_process_name = toupper(link_process_name) lpd_source_spec = toupper(lpd_source_spec) lpd_result_spec = toupper(lpd_result_spec) } if (lpd_source_spec != "" && lpd_source_spec != "#SIMPLE") { found_source_doctype = "" for (i in tokenizer1_document_type_names) if (lpd_source_spec == tokenizer1_document_type_names[i]) found_source_doctype = "1" if (!found_source_doctype) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",lpd_source_spec,"': undeclared source document type declaration name"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (lpd_result_spec != "" && lpd_result_spec != "#IMPLIED") { found_result_doctype = "" for (i in tokenizer1_document_type_names) { ; if (lpd_result_spec == tokenizer1_document_type_names[i]) found_result_doctype = "1" } if (!found_result_doctype) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",lpd_result_spec,"': undeclared result document type declaration name"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } for (x = 1; x <= tokenizer1_document_type_declaration_no; x++) if (x in tokenizer1_document_type_names && tokenizer1_document_type_names[x] == link_process_name) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", link_process_name, "': declaration set name already declared in document prolog"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (x in tokenizer1_link_process_names && tokenizer1_link_process_names[x] == link_process_name) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", link_process_name, "': declaration set name already declared in document prolog"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tokenizer1_link_process_names[++tokenizer1_document_type_declaration_no] = link_process_name ; ; if (subset_start) tokenizer1_store_declaration_set("LINKTYPE", tokenizer1_link_process_names[tokenizer1_document_type_declaration_no], lpd_source_spec, lpd_result_spec, pubid, sysid, tokenizer1_markup_text, subset_start, subset_stop - subset_start) else tokenizer1_store_declaration_set("LINKTYPE", tokenizer1_link_process_names[tokenizer1_document_type_declaration_no], lpd_source_spec, lpd_result_spec, pubid, sysid, tokenizer1_markup_text, 0, 0) } } else if (tokenizer1_markup_text == "") { } else if (match(tokenizer1_markup_text, /^$/)) { docinfo1_current_shortref_map = tokenizer1_markup_text sub(/^$/, "", docinfo1_current_shortref_map) if (sgmldecl1_syntax_namecase_general == "YES") docinfo1_current_shortref_map = toupper(docinfo1_current_shortref_map) if (!(index(" " markupdefinitions1_shortref_maps[tokenizer1_document_type_names["1"]] " ", " " docinfo1_current_shortref_map " "))) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", docinfo1_current_shortref_map, "': undeclared short reference map in short reference use declaration in content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else if ((tokenizer1_markup_text ~ /^$/)) { docinfo1_current_shortref_map = "#EMPTY" } else if ((tokenizer1_markup_text ~ /^ 1) { markup_text_portion = substr(tokenizer1_markup_text, 1, RSTART - 1) start_of_content_line_number = locator1_get_line_number() + gsub(/\n/, "\n", markup_text_portion) tokenizer1_markup_start = tokenizer1_markup_start + (RSTART - 1) tokenizer1_markup_length = tokenizer1_markup_length - (RSTART - 1) ; tokenizer1_markup_text = substr(tokenizer1_markup_text, tokenizer1_markup_start, tokenizer1_markup_length) } if (tokenizer1_perform_past_prolog_processing("")) { } ; locator1_set_line_number(start_of_content_line_number) ; tokenizer1_in_prolog = "0" tokenizer1_past_prolog = "1" ; } else { if (!(tokenizer1_markup_text ~ /^[ \t\r\n]+$/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("character data in prolog", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_public_declaration_reference == "+//IDN sgmljs.net//SD Markdown//EN" && tokenizer1_in_prolog == "1" && (tokenizer1_active_lpd_names != "" || tokenizer1_instance_had_implied_doctype != "" || tokenizer1_force_prolog_recording != "" || tokenizer1_target_document_type_name != "")) { } else { ; locator1_set_line_number(locator1_get_line_number() + gsub(/\n/, "\n", tokenizer1_markup_text)) } tokenizer1_markup_start += tokenizer1_markup_length continue } } has_unresolved_entity_refs = "" { ; if (!(tokenizer1_markup_start == previous_markup_start && tokenizer1_markup_length == previous_markup_length)) { ; expand_result = tokenizer1_expand_general_entity_references(tokenizer1_markup_start, tokenizer1_markup_length, "PCDATA") ; if (expand_result != tokenizer1_markup_length) { if (substr(tokenizer1_markup_buf, tokenizer1_markup_start + expand_result) == "&") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",substr(tokenizer1_markup_buf, expand_result, 20), "': invalid entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (substr(tokenizer1_markup_buf, tokenizer1_markup_start + expand_result) == "<") continue if (!match(substr(tokenizer1_markup_buf, tokenizer1_markup_start + expand_result), /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*/)) { { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(substr(tokenizer1_markup_buf, tokenizer1_markup_start + expand_result)), ": unresolved entities not expected/supported here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", substr(tokenizer1_markup_buf, tokenizer1_markup_start + expand_result, 10), "': internal error: unexpected return from expand_general_entity_references()"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } previous_markup_start = tokenizer1_markup_start previous_markup_length = tokenizer1_markup_length continue } else { ; has_unresolved_entity_refs = "1" previous_markup_start = -1 previous_markup_length = -1 } } if (parse_mode == "PCDATA") { ; validator1_characters(substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length)) } else if (parse_mode == "element-only" && match(tokenizer1_markup_text, /[^ \t\r\n]/)) { if (RSTART > 1) { tokenizer1_markup_start = tokenizer1_markup_start tokenizer1_markup_length = RSTART - 1 ; tokenizer1_markup_text = substr(tokenizer1_markup_text, 1, tokenizer1_markup_length) } else validator1_characters(substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length)) } else if (parse_mode == "element-only") { } else if (tokenizer1_past_prolog == "1") { tokenizer1_past_prolog = "0" validator1_characters(substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length)) } else if (tokenizer1_past_content == "1") { if ((tokenizer1_markup_text ~ /^[ \t\r\n]$/)) { tokenizer1_markup_start += tokenizer1_markup_length continue } } ; tmp = substr(tokenizer1_markup_buf, tokenizer1_markup_start, tokenizer1_markup_length) ; locator1_set_line_number(locator1_get_line_number() + gsub(/\n/, "\n", tmp)) gsub(/\r/, "", tmp) if (!suppress_dispatch) { if (has_unresolved_entity_refs) tokenizer1_dispatch_characters_with_entity_events(tmp) else tokenizer1_dispatch_characters(tmp) } } else if (tokenizer1_markup_event == "1" || tokenizer1_markup_event == "0") { if (tokenizer1_in_prolog == "1") { tokenizer1_in_prolog = "0" tokenizer1_perform_past_prolog_processing(tokenizer1_markup_elmt) } ; if (tokenizer1_document_type_declaration_no in tokenizer1_document_type_names) doctype = tokenizer1_document_type_names[tokenizer1_document_type_declaration_no] else doctype = "" if (match(tokenizer1_markup_elmt, /[0-9]+$/)) { rank_stem = substr(tokenizer1_markup_elmt, 1, RSTART-1) rank_suffix = substr(tokenizer1_markup_elmt, RSTART, RLENGTH) ; if ((doctype, tokenizer1_markup_elmt) in markupdefinitions1_element_rank_groups) docinfo1_current_rank_suffixes[markupdefinitions1_element_rank_groups[doctype, tokenizer1_markup_elmt]] = rank_suffix else if ((doctype, rank_stem) in markupdefinitions1_element_stem_rank_groups) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", tokenizer1_markup_elmt, "': undeclared rank"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } markup_element = tokenizer1_markup_elmt } else if ((doctype, tokenizer1_markup_elmt) in markupdefinitions1_element_stem_rank_groups) { if (!(markupdefinitions1_element_stem_rank_groups[doctype, tokenizer1_markup_elmt] in docinfo1_current_rank_suffixes)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", tokenizer1_markup_elmt, "': omitting rank when no current rank is established"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } rank_suffix = docinfo1_current_rank_suffixes[markupdefinitions1_element_stem_rank_groups[doctype, tokenizer1_markup_elmt]] markup_element = (tokenizer1_markup_elmt rank_suffix) } else { markup_element = tokenizer1_markup_elmt } if (tokenizer1_debug_emit_ctx_token != "") console_info(concat("")) validator1_startElement(markup_element, empty_array, tokenizer1_markup_attrs) split("", tmparray) ; if ((substr(tokenizer1_markup_buf, tokenizer1_markup_start + 2 + length(tokenizer1_markup_elmt), tokenizer1_markup_length - (length(tokenizer1_markup_elmt) + 2) - 1) ~ /^([ \t\n])?\/?$/)) replaceattrs_result = tokenizer1_markup_length - length(tokenizer1_markup_elmt) - 3 - (tokenizer1_markup_event == "0"? 1 : 0) else { replaceattrs_result = tokenizer1_parse_attribute_specification(tokenizer1_markup_start + length(tokenizer1_markup_elmt) + 2, tokenizer1_markup_length - length(tokenizer1_markup_elmt) - 3, (tokenizer1_markup_event == "0"? 1 : 0), tmparray, doctype, (doctype? tokenizer1_markup_elmt : ""), "", "") ; } ; if (replaceattrs_result != tokenizer1_markup_length - length(tokenizer1_markup_elmt) - 3 - (tokenizer1_markup_event == "0"? 1 : 0)) { if (substr(tokenizer1_markup_buf, tokenizer1_markup_start + 2 + length(tokenizer1_markup_elmt) + replaceattrs_result, 1) == "&") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("internal error: unexpected invalid entity reference syntax", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (substr(tokenizer1_markup_buf, tokenizer1_markup_start + 2 + length(tokenizer1_markup_elmt) + replaceattrs_result, 1) == "-") { if (!match(substr(tokenizer1_markup_buf, tokenizer1_markup_start + 2 + length(tokenizer1_markup_elmt) + replaceattrs_result), /^-([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(substr(tokenizer1_markup_buf, tokenizer1_markup_start + length(tokenizer1_markup_elmt) + 2 + replaceattrs_result)), ": internal error: unexpected non-link entity reference (res=", replaceattrs_result, ", exp=", tokenizer1_markup_length - length(tokenizer1_markup_elmt) - 3, ")"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else if (!match(substr(tokenizer1_markup_buf, tokenizer1_markup_start + 2 + length(tokenizer1_markup_elmt) + replaceattrs_result), /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+/)) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat(sgmlutil_format_for_errormsg(substr(tokenizer1_markup_buf, tokenizer1_markup_start + length(tokenizer1_markup_elmt) + 2 + replaceattrs_result)), ": internal error: invalid entity reference (res=", replaceattrs_result, ", exp=", tokenizer1_markup_length - length(tokenizer1_markup_elmt) - 3, ")"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } entity_ref = substr(tokenizer1_markup_buf, tokenizer1_markup_start + 2 + length(tokenizer1_markup_elmt) + replaceattrs_result + RSTART - 1, RLENGTH) } else { entity_ref = "" } ; ; if (entity_ref) { if (tokenizer1_no_stalling_on_unresolved_entity) { stack5_push(tokenizer1_markup_elmt) if (tokenizer1_error_context_info_enabled) { ; stack6_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": parsed")) } fallback_content = vocab_get_roundtrip_content(substr(tokenizer1_markup_buf, tokenizer1_markup_start + length(tokenizer1_markup_elmt) + 2, tokenizer1_markup_length - length(tokenizer1_markup_elmt) - 3)) if (fallback_content) tokenizer1_dispatch_characters(markupencoder1_decode_attribute(markupencoder1_decode_markdown(fallback_content))) suppress_dispatch = 1 } else { if (substr(entity_ref, 1, 1) != "-") { entity_url = "" if (entity_ref in entitydefinitions1_entity_replacement_file) entity_url = entitydefinitions1_entity_replacement_file[entity_ref] else if (entity_ref in entitydefinitions1_system_specific_general_entities || sgmldecl1_features_minimize_implydef_entity == "YES") entity_url = systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), entity_ref) if (!entity_url) { { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'",entity_ref,"': unresolved entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; } { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("'", entity_ref, "': error resolving entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { tokenizer1_unresolved_entity_name = entity_ref ; } break } } else { stack5_push(tokenizer1_markup_elmt) if (tokenizer1_error_context_info_enabled) { ; stack6_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": parsed")) } if (suppress_dispatch) suppress_dispatch++ else { ; if (index(tokenizer1_markup_attrs, "&")) tokenizer1_markup_attrs = sgmlutil_sgml_formatattrs(tmparray) tokenizer1_check_and_dispatch_start_element(markup_element, tmparray, tokenizer1_markup_attrs, ("element " markup_element)) if (tokenizer1_markup_event == "0") { if (tokenizer1_debug_emit_ctx_token != "") console_info(concat("")) validator1_endElement(markup_element) docinfo1_most_recently_ended_element = stack5_stack[stack5_len] stack5_pop() if (tokenizer1_error_context_info_enabled) { ; stack6_pop() } if (stack5_len == 0) tokenizer1_past_content = "1" tokenizer1_dispatch_end_element(tokenizer1_markup_elmt) } } } } else if (tokenizer1_markup_event == "-1") { if (tokenizer1_in_prolog == "1") { tokenizer1_in_prolog = "0" tokenizer1_perform_past_prolog_processing("") } if (tokenizer1_past_content == "1" || stack5_len == 0) { { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("unbalanced element <",tokenizer1_markup_elmt,">"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { markup_element = tokenizer1_markup_elmt if (tokenizer1_debug_emit_ctx_token != "") console_info(concat("")) validator1_endElement(markup_element) docinfo1_most_recently_ended_element = stack5_stack[stack5_len] stack5_pop() if (tokenizer1_error_context_info_enabled) { ; stack6_pop() } if (stack5_len == 0) tokenizer1_past_content = "1" if (suppress_dispatch) suppress_dispatch-- else { tokenizer1_dispatch_end_element(tokenizer1_markup_elmt) } } } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("internal error: unexpected markup event code", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } tokenizer1_markup_start += tokenizer1_markup_length } ; if (initial_markup_start == tokenizer1_markup_start) { tokenizer1_markup_buf = substr(tokenizer1_markup_buf, tokenizer1_markup_start) tokenizer1_markup_start = 1 return initial_markup_start } tokenizer1_markup_buf = "" return tokenizer1_markup_start } function tokenizer1_define_system_specific_entity_conditionally(declaration_set_name, entity_name, entity_url) { entity_url = "" ; entity_url = systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), entity_name) if (substr(entity_url, 1, 9) != "") { { platformerrorhandler1_warning(concat("'", entity_name, "': not declared as system-specific entity via +//IDN sgmljs.net/ENTITIES CGI 1.1//EN public identifier since not supplied as literal replacement text"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } return } if (!(entity_name in entitydefinitions1_entity_replacement_text) && !(entity_name in entitydefinitions1_entity_replacement_file) && !(entity_name in entitydefinitions1_system_specific_general_entities)) { ; entitydefinitions1_system_specific_general_entities[entity_name] = "" entitydefinitions1_general_entity_declaration_set_name[entity_name] = declaration_set_name } if (!(entity_name in entitydefinitions1_parameter_entity_replacement_text)) { ; entitydefinitions1_parameter_entity_replacement_text[entity_name] = substr(entity_url, 10) } } function tokenizer1_define_cgi_meta_variables_as_entities(declaration_set_name) { ; tokenizer1_define_system_specific_entity_conditionally(declaration_set_name, "PATH_INFO") tokenizer1_define_system_specific_entity_conditionally(declaration_set_name, "PATH_TRANSLATED") tokenizer1_define_system_specific_entity_conditionally(declaration_set_name, "DOCUMENT_ROOT") tokenizer1_define_system_specific_entity_conditionally(declaration_set_name, "REQUEST_METHOD") tokenizer1_define_system_specific_entity_conditionally(declaration_set_name, "REMOTE_ADDR") tokenizer1_define_system_specific_entity_conditionally(declaration_set_name, "SERVER_NAME") tokenizer1_define_system_specific_entity_conditionally(declaration_set_name, "SERVER_PROTOCOL") if (!("PATH_TRANSLATED_CONTENT" in entitydefinitions1_parameter_entity_replacement_text)) { entitydefinitions1_parameter_entity_replacement_text["PATH_TRANSLATED_CONTENT"] = "" tokenizer1_define_system_specific_entity_conditionally(declaration_set_name, "PATH_TRANSLATED_CONTENT") delete entitydefinitions1_parameter_entity_replacement_text["PATH_TRANSLATED_CONTENT"] } else tokenizer1_define_system_specific_entity_conditionally(declaration_set_name, "PATH_TRANSLATED_CONTENT") } function tokenizer1_remove_linefeed_at_end_of_markup() { if (substr(tokenizer1_markup_buf, length(tokenizer1_markup_buf)) == "\n") tokenizer1_markup_buf = substr(tokenizer1_markup_buf, 1, length(tokenizer1_markup_buf) - 1) } function tokenizer1_end_markup( input_record_no,tmp) { tmp = "" ; if (tokenizer1_parsing_state_saved) { ; return } input_record_no = locator1_get_line_number_at_context(1) tokenizer1_remove_linefeed_at_end_of_markup() tmp = substr(tokenizer1_markup_buf, tokenizer1_markup_start) locator1_set_line_number_at_context(1, input_record_no - gsub(/\n/, "\n", tmp)) if (locator1_get_line_number_at_context(1) == 0) locator1_set_line_number_at_context(1, 1) ; if (tokenizer1_markup_start <= length(tokenizer1_markup_buf)) { tokenizer1_no_stalling_at_end_of_markup = 1 tokenizer1_parse_markup() } if (tokenizer1_marked_section_nesting_level > 0) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("unclosed marked section", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (tokenizer1_start_document_sent) { tokenizer1_dispatch_end_document() } locator1_set_line_number_at_context(1, input_record_no) } function tokenizer1_append_markup(text, input_record_no,tmp) { tmp = "" ; if (tokenizer1_parsing_state_saved) { ; tokenizer1_markup_buf_save = (tokenizer1_markup_buf_save text) return } input_record_no = locator1_get_line_number_at_context(1) tmp = substr(tokenizer1_markup_buf, tokenizer1_markup_start) locator1_set_line_number_at_context(1, input_record_no - gsub(/\n/, "\n", tmp)) if (locator1_get_line_number_at_context(1) == 0) locator1_set_line_number_at_context(1, 1) ; tokenizer1_markup_buf = (tokenizer1_markup_buf text) tokenizer1_parse_markup() locator1_set_line_number_at_context(1, input_record_no) } function tokenizer1_compute_effective_link_chain(source_doctype, result_doctype, n,i,j,k,l,f,lpd_index,lpd_name,explicit_lpd_count,explicit_lpd_names,declared_explicit_lpd_names,active_lpd_names_arr,has_unmatched_active_explicit_lpd_names,candidate_pipeline_msg,added_single_implicit_lpd) { lpd_name = "" split("", explicit_lpd_names) declared_explicit_lpd_names = "" split("", active_lpd_names_arr) has_unmatched_active_explicit_lpd_names = "" candidate_pipeline_msg = "" added_single_implicit_lpd = "" ; for (lpd_index = 1; lpd_index <= tokenizer1_declaration_subset_count; lpd_index++) { if (!(lpd_index in tokenizer1_link_process_names)) continue lpd_name = tokenizer1_link_process_names[lpd_index] if (lpd_name in markupdefinitions1_link_process_result_doctype_specs && markupdefinitions1_link_process_result_doctype_specs[lpd_name] != "#IMPLIED") { explicit_lpd_names[++explicit_lpd_count] = lpd_name declared_explicit_lpd_names = (declared_explicit_lpd_names ((declared_explicit_lpd_names && lpd_name)? " " : "") lpd_name) } } ; split("", tokenizer1_permutation_matrices) tokenizer1_permutations(explicit_lpd_count, explicit_lpd_count) f = tokenizer1_fac(explicit_lpd_count) n = explicit_lpd_count for (i = 1; i <= f; i++) { candidate_pipeline_msg = "" for (j = 1; j <= n; j++) { if (candidate_pipeline_msg == "") candidate_pipeline_msg = explicit_lpd_names[tokenizer1_permutation_matrices[i, j]] else candidate_pipeline_msg = concat(candidate_pipeline_msg, " ", explicit_lpd_names[tokenizer1_permutation_matrices[i, j]]) } ; for (j = 1; j <= n; j++) { if (j > 1) { ; if (markupdefinitions1_link_process_source_doctype_specs[explicit_lpd_names[tokenizer1_permutation_matrices[i, j]]] != markupdefinitions1_link_process_result_doctype_specs[explicit_lpd_names[tokenizer1_permutation_matrices[i, (j-1)]]]) break } else { ; if (markupdefinitions1_link_process_source_doctype_specs[explicit_lpd_names[tokenizer1_permutation_matrices[i, j]]] != tokenizer1_document_type_names["1"]) break } if (markupdefinitions1_link_process_result_doctype_specs[explicit_lpd_names[tokenizer1_permutation_matrices[i, j]]] == result_doctype) { ; if (tokenizer1_active_lpd_names != "") { gsub(/[[:space:]][[:space:]]+/, "", tokenizer1_active_lpd_names) sub(/[[:space:]]+$/, "", tokenizer1_active_lpd_names) sub(/^[[:space:]]+/, "", tokenizer1_active_lpd_names) split(tokenizer1_active_lpd_names, active_lpd_names_arr, " ") for (l in active_lpd_names_arr) if (!index(" " declared_explicit_lpd_names " ", " " active_lpd_names_arr[l] " ")) { ; delete active_lpd_names_arr[l] } for (k = 1; k <= j; k++) { for (l in active_lpd_names_arr) if (explicit_lpd_names[tokenizer1_permutation_matrices[i, k]] == active_lpd_names_arr[l]) { ; delete active_lpd_names_arr[l] break } } has_unmatched_active_explicit_lpd_names = "" for (l in active_lpd_names_arr) { ; has_unmatched_active_explicit_lpd_names = "1" } if (has_unmatched_active_explicit_lpd_names == "1") { ; continue } } for (k = 1; k <= j; k++) { lpd_name = explicit_lpd_names[tokenizer1_permutation_matrices[i, k]] ; docinfo1_active_link_processes[k - 1] = lpd_name if (!index(" " tokenizer1_active_lpd_names " ", " " lpd_name " ")) tokenizer1_active_lpd_names = (tokenizer1_active_lpd_names ((tokenizer1_active_lpd_names && lpd_name)? " " : "") lpd_name) } split(tokenizer1_active_lpd_names, active_lpd_names_arr, " ") for (l in active_lpd_names_arr) if (active_lpd_names_arr[l] in markupdefinitions1_link_process_result_doctype_specs && markupdefinitions1_link_process_result_doctype_specs[active_lpd_names_arr[l]] == "#IMPLIED") { ; if (added_single_implicit_lpd == "1") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError("only a single implicit link process can be activated in addition to explicit link processes inferred from a target doctype", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } added_single_implicit_lpd = "1" docinfo1_active_link_processes[k - 1] = active_lpd_names_arr[l] if (!index(" " tokenizer1_active_lpd_names " ", " " active_lpd_names_arr[l] " ")) { tokenizer1_active_lpd_names = (tokenizer1_active_lpd_names ((tokenizer1_active_lpd_names && lpd_name)? " " : "") lpd_name) } } return } } } gsub(/ /, ", ", declared_explicit_lpd_names) gsub(/ /, ", ", tokenizer1_active_lpd_names) if (declared_explicit_lpd_names != "" && tokenizer1_active_lpd_names) { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("unable to establish explicit link pipeline producing ", result_doctype, " from ", source_doctype, " using (at most FEATURES LINK EXPLICIT n) declared explicit link processes(s) from ", declared_explicit_lpd_names, " with required activated link processe(s) ", tokenizer1_active_lpd_names), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (declared_explicit_lpd_names != "") { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("unable to establish explicit link pipeline producing ", result_doctype, " from ", source_doctype, " with (at most FEATURES LINK EXPLICIT n) declared explicit link processe(s) ", declared_explicit_lpd_names), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (tokenizer1_error_context_info_enabled) for (tokenizer1_advanced_error_context_info_i = 1; tokenizer1_advanced_error_context_info_i <= stack5_len; tokenizer1_advanced_error_context_info_i++) { split(stack6_stack[tokenizer1_advanced_error_context_info_i], tokenizer1_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack5_stack[tokenizer1_advanced_error_context_info_i], ": ", tokenizer1_advanced_error_context_info_msg_components[1+ 2]), tokenizer1_advanced_error_context_info_msg_components[1+ 0], "", tokenizer1_advanced_error_context_info_msg_components[1+ 1], 0); } platformerrorhandler1_fatalError(concat("unable to establish explicit link pipeline producing ", result_doctype, " from ", source_doctype), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } function tokenizer1_permutations(n, k, j,a,i,m,s,l) { split("", a) split("", i) for (j = 1; j <= n; j++) { a[1+ j-1] = 0 i[1+ j-1] = 0 } a[1+ n]=0 j=1 while (j!=0) { s=i[1+ j-1] if (s==0) i[1+ j-1]=1 while (a[1+ i[1+ j-1]-1]) i[1+ j-1]++ if (i[1+ j-1]==n+1) { i[1+ j-1]=0 a[1+ s-1]=0 j-- continue } if (s!=0) a[1+ s-1]=0 a[1+ i[1+ j-1]-1]=1 if (j==k) { m++ for (l=1; l<=k; l++) { ; tokenizer1_permutation_matrices[m, l] = i[1+ l-1] } continue } j++ } } function tokenizer1_fac(n, i,f) { f = 1 while (n) f = f * n-- return f } BEGIN { markdown1_html_wrapper_tag_emitted = "" markdown1_had_doctype = "" markdown1_current_text = "" markdown1_current_text_save = "" markdown1_current_attributes = "" markdown1_current_element_is_first_child = 0 markdown1_indentation_level = 1 split("", markdown1_indentation_markers) markdown1_previous_indentation_level = 1 markdown1_indentation_level_before = 1 split("", markdown1_link_uris) split("", markdown1_link_titles) markdown1_link_definition_id = "" markdown1_link_definition_uri = "" markdown1_link_definition_title = "" markdown1_html_block_buffer = "" markdown1_in_fenced_codeblock = "" markdown1_fenced_codeblock_lang = "" split("", markdown1_table_cell_values) markdown1_table_column_count = 0 markdown1_table_row_count = 0 markdown1_table_has_header_separator = 0 markdown1_table_has_leading_trailing_pipes = 0 markdown1_previous_line = "" markdown1_raw_text = "" markdown1_blockquote_nesting_level = 0 markdown1_section_number = "" markdown1_section_level = 0 markdown1_section_title = "" markdown1_text_before_citekey = "[" markdown1_text_after_citekey = "]" markdown1_bibliography_rdf_graph_location = "" markdown1_bibliography_rdf_graph_location_parameter_specified = "" markdown1_bibliography_rdf_graph_ns = "" markdown1_bibliography_rdf_graph_ns_parameter_specified = "" markdown1_sparql_endpoint = "" markdown1_sparql_endpoint_parameter_specified = "" markdown1_encoding_buffer = "" } function markdown1_reset() { markdown1_html_wrapper_tag_emitted = "" markdown1_had_doctype = "" stack18_clear() markdown1_current_text = "" markdown1_current_text_save = "" markdown1_current_attributes = "" markdown1_current_element_is_first_child = 0 markdown1_indentation_level = 1 split("", markdown1_indentation_markers) markdown1_previous_indentation_level = 1 markdown1_indentation_level_before = 1 split("", markdown1_link_uris) split("", markdown1_link_titles) markdown1_link_definition_id = "" markdown1_link_definition_uri = "" markdown1_link_definition_title = "" markdown1_html_block_buffer = "" markdown1_in_fenced_codeblock = "" markdown1_fenced_codeblock_lang = "" split("", markdown1_table_cell_values) markdown1_table_column_count = 0 markdown1_table_row_count = 0 markdown1_table_has_header_separator = 0 markdown1_table_has_leading_trailing_pipes = 0 markdown1_previous_line = "" markdown1_raw_text = "" markdown1_indentation_level = 1 markdown1_previous_indentation_level = 1 markdown1_blockquote_nesting_level = 0 markdown1_section_number = "" markdown1_section_level = 0 markdown1_section_title = "" markdown1_text_before_citekey = "[" markdown1_text_after_citekey = "]" markdown1_bibliography_rdf_graph_location = "" markdown1_bibliography_rdf_graph_location_parameter_specified = "" markdown1_bibliography_rdf_graph_ns = "" markdown1_bibliography_rdf_graph_ns_parameter_specified = "" markdown1_sparql_endpoint = "" markdown1_sparql_endpoint_parameter_specified = "" } function markdown1_clear_table_cell_values() { split("", markdown1_table_cell_values) } function markdown1_cleanup() { ; if (markdown1_link_definition_id) markdown1_put_link_definition() ; if (markdown1_html_block_buffer) tokenizer1_append_markup(markdown1_html_block_buffer) ; if (markdown1_table_row_count) tokenizer1_append_markup(markdown1_convert_table_to_markup()) ; markdown1_closealltags() ; if (markdown1_html_wrapper_tag_emitted == "1") { ; tokenizer1_append_markup("") markdown1_html_wrapper_tag_emitted = "" } ; } function markdown1_prune_indentation(text, i) { for (i = 1; i <= 4; i++) { if (match(text, /^\t/)) { text = substr(text, 2) markdown1_indentation_markers[++markdown1_indentation_level] = "\t" } else if (match(text, "^ ")) { text = substr(text, 5) markdown1_indentation_markers[++markdown1_indentation_level] = " " } else if (match(text, "^ ? ?\t")) { text = substr(text, RLENGTH + 1) markdown1_indentation_markers[++markdown1_indentation_level] = substr(text, 1, RLENGTH) } } return text } function markdown1_prune_blockquote_nesting(text, line,line_tmp) { markdown1_blockquote_nesting_level = 0 line = text for (;;) { if (markdown1_blockquote_nesting_level > 0) if (substr(line, 1, 1) == " ") line = substr(line, 2) line_tmp = line if (substr(line_tmp, 1, 2) == " ") line_tmp = substr(line_tmp, 3) else if (substr(line_tmp, 1, 1) == "\t") line_tmp = substr(line_tmp, 2) else if (substr(line_tmp, 1, 2) == " \t") line_tmp = substr(line_tmp, 3) if (substr(line_tmp, 1, 2) == " >") line_tmp = substr(line_tmp, 2) if (substr(line_tmp, 1, 1) != ">") break line = substr(line_tmp, 2) markdown1_blockquote_nesting_level++ } return line } function markdown1_print_debug_info( i,buf) { buf = concat("after de-indenting: this.indentation_level=",markdown1_indentation_level,", previous=",markdown1_previous_indentation_level) buf = concat(buf,"\nafter-de-indenting: tag_at_indentation_level(this.indentation_level)= ",markdown1_tag_at_indentation_level(markdown1_indentation_level)) buf = concat(buf,"\nafter-de-indenting: tag_at_indentation_level(this.previous_indentation_level)= ",markdown1_tag_at_indentation_level(markdown1_previous_indentation_level)) buf = concat(buf,"\nafter-de-indenting: tag_at_indentation_level(this.indentation_level-1)= ",markdown1_tag_at_indentation_level(markdown1_indentation_level - 1)) buf = (buf "\nafter de-indenting: this.tagstack=") if (stack18_len != 0) { for (i = 1; i <= stack18_len; i++) buf = concat(buf," ", stack18_stack[i], " ") } buf = (buf "\n") buf = concat(buf,"\nprevious_line=",markdown1_previous_line) buf = concat(buf,"\ncurrentindentation()=",markdown1_currentindentation()) buf = concat(buf,"\ncurrenttag()=",markdown1_currenttag()) return buf } function markdown1_is_list_tag(indentation_lvl) { return match(markdown1_tag_at_indentation_level(indentation_lvl), /[oud]l/) } function markdown1_tag_at_indentation_level(indent_level, i) { i = markdown1_tagindex(indent_level) if (i > 0 && i <= stack18_len) return stack18_stack[i] return "" } function markdown1_tagindex(indent_level, i,stackidx) { if (indent_level == 0) return 0 stackidx = 1 for (i = 1; i < indent_level; i++) { if (stackidx > stack18_len) return stackidx if (match(stack18_stack[stackidx], /[oud]l/)) stackidx++ stackidx++ } return stackidx } function markdown1_currentindentation( stackidx,indent_level,l) { indent_level = 1 l = stack18_len for (stackidx = 1; stackidx <= l; stackidx++) { if (match(stack18_stack[stackidx], /[oud]l/)) indent_level++ if (stack18_stack[stackidx] == "blockquote") indent_level++ } return indent_level } function markdown1_closetags(n, l,m) { l = stack18_len m = l - n ; if (l > m) { if (markdown1_flushtag(0) == 0) l-- } for (; l > m; l--) tokenizer1_append_markup(concat("")) for (; n > 0; n--) stack18_pop() } function markdown1_closetagstoindentationlevel(level) { ; markdown1_closetags(stack18_len - level) } function markdown1_flushtag(force, tmp) { ; if (markdown1_current_element_is_first_child == 0) return 1 if (force != 0 || markdown1_current_text != "" || (markdown1_current_attributes != "" && vocab_has_non_markdown_attributes(markdown1_current_attributes))) { tmp = ("<" markdown1_currenttag()) if (markdown1_current_attributes != "") tmp = concat(tmp," ",markdown1_current_attributes) tmp = (tmp ">") if (markdown1_current_text != "") if (markdown1_currenttag() == "code") tmp = (tmp markdown1_current_text) else tmp = (tmp markdown1_convert_to_span_level_markup(markdown1_current_text)) ; tokenizer1_append_markup(tmp) markdown1_current_text = "" markdown1_current_attributes = "" markdown1_current_element_is_first_child = 0 return 1 } markdown1_current_text = "" markdown1_current_attributes = "" markdown1_current_element_is_first_child = 0 return 0 } function markdown1_closetag() { if (markdown1_flushtag(0)) tokenizer1_append_markup(concat("")) stack18_pop() } function markdown1_opentag(elmt) { ; if (stack18_len > 0) markdown1_flushtag(1) stack18_push(elmt) markdown1_current_element_is_first_child = 1 markdown1_current_attributes = vocab_add_markdown_roundtrip_content(markdown1_current_attributes, "true") } function markdown1_closealltags( l) { ; l = stack18_len if (l > 0) markdown1_closetag() for (l--; l > 0; l--) { tokenizer1_append_markup(concat("")) stack18_pop() } } function markdown1_currenttag() { ; return stack18_stack[stack18_len] } function markdown1_parenttag( l) { l = stack18_len if (l <= 1) return "" return stack18_stack[l - 1] } function markdown1_childtag(stackidx) { if (stackidx + 1 <= stack18_len) return stack18_stack[stackidx + 1] return "" } function markdown1_unopentag() { stack18_pop() } function markdown1_compensate_over_indented_code_line( i) { for (i = markdown1_currentindentation() + 2; i <= markdown1_indentation_level; i++) markdown1_current_text = (markdown1_current_text markdown1_indentation_markers[i]) } function markdown1_parse_reference_link_definition(line) { markdown1_link_definition_id = "" markdown1_link_definition_uri = "" markdown1_link_definition_title = "" ; { match(line, /^ *\[[^\]]+\]:/) } markdown1_link_definition_id = substr(line, RSTART, RLENGTH) gsub(/[\[\]:]/, "", markdown1_link_definition_id) line = substr(line, RSTART + RLENGTH + 1) if (!match(line, /[^ ]+/)) { ; return 1 } markdown1_link_definition_uri = substr(line, RSTART, RLENGTH) sub(/^$/, "", markdown1_link_definition_uri) line = substr(line, RSTART + RLENGTH + 1) gsub("\"", """, markdown1_link_definition_uri) if (!match(line, /[^ ]+/)) { ; return 0 } markdown1_link_definition_title = substr(line, RSTART) if (!sub("^\"", "", markdown1_link_definition_title) || !sub("\" *$", "", markdown1_link_definition_title)) { ; markdown1_link_definition_title = "" return 1 } gsub(/&/, "\\" "&", markdown1_link_definition_title); gsub(//, "\\" ">", markdown1_link_definition_title) ; return 1 } function markdown1_put_link_definition() { if (substr(markdown1_link_definition_id, 1, 1) == "@" && markdown1_link_definition_id in markdown1_link_uris && markdown1_link_uris[markdown1_link_definition_id] != "") { platformerrorhandler1_warning(concat("'",markdown1_link_definition_id,"': attempt to redefine citekey"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else if (substr(markdown1_link_definition_id, 1, 1) != "@" && markdown1_link_definition_id in markdown1_link_uris) { platformerrorhandler1_warning(concat("'",markdown1_link_definition_id,"': attempt to redefine link"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else { if ((markdown1_link_definition_id ~ /@/)) markdown1_put_bibliographic_link_definition() else markdown1_put_reference_link_definition() } markdown1_link_definition_id = "" markdown1_link_definition_uri = "" markdown1_link_definition_title = "" } function markdown1_put_reference_link_definition( link_entity) { markdown1_link_uris[markdown1_link_definition_id] = markdown1_link_definition_uri markdown1_link_titles[markdown1_link_definition_id] = markdown1_link_definition_title link_entity = markdown1_encode_entity(markdown1_link_definition_id) if (entitydefinitions1_is_internal_entity_reference(("-href_of_" link_entity))) { platformerrorhandler1_fatalError(concat("link id '",link_entity,"' for '",markdown1_link_definition_uri,"' clashes with another link id"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } entitydefinitions1_put_entity_replacement_text(("-href_of_" link_entity), markdown1_link_definition_uri) entitydefinitions1_general_entity_data_text_type[("-href_of_" link_entity)] = "CDATA" ; entitydefinitions1_put_entity_replacement_text(("-title_of_" link_entity), markdown1_link_definition_title) if (tokenizer1_get_unresolved_entity_name() == (("-href_of_" link_entity)) || tokenizer1_get_unresolved_entity_name() == (("-title_of_" link_entity))) { ; tokenizer1_clear_unresolved_entity_name() } } function markdown1_put_bibliographic_link_definition( fragment,tmp) { fragment = "" tmp = "" if (!(markdown1_link_definition_id ~ /^[A-Za-z@][A-Za-z0-9:_.-]+$/)) { { platformerrorhandler1_warning(concat("'",markdown1_link_definition_id,"': invalid citekey in bibliographic link definition"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } return } markdown1_put_reference_link_definition() markdown1_closealltags() if (markdown1_link_definition_title == "") { fragment = markdown1_create_bibliography_entry(markdown1_link_definition_id) if (fragment != "") { tokenizer1_append_markup(fragment) return } } markdown1_opentag("dl") markdown1_opentag("dt") markdown1_opentag("a") markdown1_current_attributes = concat("id=\"", substr(markdown1_link_definition_id, 2), "\"") markdown1_current_text = substr(markdown1_link_definition_id, 2) markdown1_closetag() markdown1_closetag() markdown1_opentag("dd") if (markdown1_link_definition_title == "") { markdown1_current_text = concat("<",markdown1_link_definition_uri,">") gsub(/&/, "\\" "&", markdown1_current_text); gsub(//, "\\" ">", markdown1_current_text) } else { tmp = concat("<",markdown1_link_definition_uri,">") gsub(/&/, "\\" "&", tmp); gsub(//, "\\" ">", tmp) markdown1_current_text = concat(markdown1_link_definition_title," ",tmp) } markdown1_closetag() markdown1_closetag() } function markdown1_parse_link(line, r) { ; markdown1_link_definition_uri = "" markdown1_link_definition_title = "" r = 0 if (!(substr(line, 1, 1) == "(")) { { platformerrorhandler1_warning(concat("'",line,"': invalid inline link"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } return 0 } r = 1 line = substr(line, 2) if (!match(line, "[^ )]+")) { { platformerrorhandler1_warning("missing URI in inline link", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } return 0 } markdown1_link_definition_uri = substr(line, RSTART, RLENGTH) r = r + RSTART + RLENGTH - 1 sub(/^$/, "", markdown1_link_definition_uri) line = substr(line, r) gsub("\"", """, markdown1_link_definition_uri) ; if (!match(line, "[^)]*\\)")) { { platformerrorhandler1_warning("incomplete inline link", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } return 0 } markdown1_link_definition_title = substr(line, RSTART) ; r = r + RSTART + RLENGTH - 1 sub("\\).*", "", markdown1_link_definition_title) sub(/^ +/, "", markdown1_link_definition_title) sub(/ +$/, "", markdown1_link_definition_title) if (length(markdown1_link_definition_title) == 0) return r if (markdown1_link_definition_title == "\"\"") { markdown1_link_definition_title = "" return r } ; if (substr(markdown1_link_definition_title, 1, 1) != "\"" || substr(markdown1_link_definition_title, length(markdown1_link_definition_title)) != "\"") { { platformerrorhandler1_warning(concat("'", markdown1_link_definition_title, "': invalid title in inline link"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } return 0 } markdown1_link_definition_title = substr(markdown1_link_definition_title, 2, length(markdown1_link_definition_title) - 2) gsub(/&/, "\\" "&", markdown1_link_definition_title); gsub(//, "\\" ">", markdown1_link_definition_title) ; return r } function markdown1_handle_header(header_text, header_level, identifier) { markdown1_extract_section_details(header_text) if (markdown1_section_level != 0) { if (markdown1_section_level != header_level) { platformerrorhandler1_warning(concat("'",sgmlutil_sgml_trim(header_text),"': header level doesn't match section number level"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } identifier = ("sect_" markdown1_section_number) gsub(/\./, "_", identifier) } else identifier = markdown1_encode_identifier(sgmlutil_sgml_trim(header_text)) if (!identifier) { platformerrorhandler1_warning(concat("'",sgmlutil_sgml_trim(header_text),"': can't generate fragment id from header"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (identifier) { if (sgmlutil_is_not_valid_name_token(identifier, "fragment identifier")) { { platformerrorhandler1_warning(concat("'",sgmlutil_sgml_trim(header_text),"': can't generate valid fragment id from header"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } identifier = "" } } if (identifier) if (identifier in markdown1_link_uris) { } else { markdown1_link_uris[identifier] = ("#" identifier) markdown1_link_titles[identifier] = sgmlutil_sgml_trim(header_text) } markdown1_opentag(("h" header_level)) markdown1_current_attributes = concat("id=\"", identifier, "\"") markdown1_current_text = (sgmlutil_sgml_trim(header_text) "\n") markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level) - 1) } function markdown1_convert_to_span_level_markup(text) { text = markdown1_escape_backticked_text(text) text = markdown1_escape_backslashed_chars(text) text = markdown1_convert_autolinks_to_markup(text, "http") text = markdown1_convert_autolinks_to_markup(text, "ftp") text = markdown1_convert_autolinks_to_markup(text, "file") text = markdown1_convert_autolinks_to_markup(text, "mailto") text = markdown1_convert_autolinks_to_markup(text, "https") text = markdown1_convert_autolinks_to_markup(text, "") text = markdown1_convert_maillinks_to_markup(text) text = markdown1_escape_xml_chars(text) text = markdown1_convert_links_to_markup(text) text = markdown1_convert_typography_to_markup(text, "__", "strong", 1) text = markdown1_convert_typography_to_markup(text, "_", "em", 1) text = markdown1_convert_typography_to_markup(text, "**", "strong", 0) text = markdown1_convert_typography_to_markup(text, "*", "em", 0) gsub(" *\n", "
\n", text) sub(" *$", "
", text) return text } function markdown1_escape_backslashed_chars(text, pos,chr,ref) { for (pos = index(text, "\\"); pos != 0; pos = sgmlutil_sgml_index3(text, "\\", pos)) { if (pos == length(text)) break chr = substr(text, pos + 1, 1) ref = "" if (chr == "\\") ref = "\" else if (chr == "`") ref = "`" else if (chr == "*") ref = "*" else if (chr == "_") ref = "_" else if (chr == "{") ref = "{" else if (chr == "}") ref = "}" else if (chr == "[") ref = "[" else if (chr == "]") ref = "]" else if (chr == "(") ref = "(" else if (chr == ")") ref = ")" else if (chr == "<") ref = "<" else if (chr == ">") ref = ">" else if (chr == "#") ref = "#" else if (chr == "+") ref = "+" else if (chr == "-") ref = "-" else if (chr == ".") ref = "." else if (chr == "!") ref = "!" else if (chr == "&") ref = "&" if (ref) { text = concat(substr(text, 1, pos - 1),ref,substr(text, pos + 2)) pos = pos + length(ref) } else pos = pos + 2 } return text } function markdown1_escape_backticked_text(text, pos,pos2,num_backticks,num_backslashes,replacement_markup,handle_multiple_contiguous_backticks_special) { handle_multiple_contiguous_backticks_special = "1" pos = index(text, "`") while (pos != 0) { num_backslashes = 0 while (pos - num_backslashes - 1 > 0 && substr(text, pos - num_backslashes - 1, 1) == "\\") num_backslashes++ if (num_backslashes > 0 && (num_backslashes % 2) == 1) { pos = sgmlutil_sgml_index3(text, "`", pos + 1) continue } num_backticks = 1 if (handle_multiple_contiguous_backticks_special) { while (substr(text, pos + num_backticks, 1) == "`") num_backticks++ } pos2 = pos + num_backticks for (;;) { pos2 = sgmlutil_sgml_index3(text, substr(text, pos, num_backticks), pos2) if (pos2 == 0) break if (handle_multiple_contiguous_backticks_special) { if (substr(text, pos2 + num_backticks, 1) == "`") { pos2 = pos2 + num_backticks while (substr(text, pos2, 1) == "`") pos2++ continue } } break } if (pos2 == 0) break replacement_markup = substr(text, pos + num_backticks, pos2 - (pos + num_backticks)) gsub(/&/, "\\" "&", replacement_markup); gsub(//, "\\" ">", replacement_markup) gsub(/\*/, "\\" "*", replacement_markup); gsub(/_/, "\\" "_", replacement_markup); gsub(/\[/, "\\" "[", replacement_markup); gsub(/\]/, "\\" "]", replacement_markup); gsub(/\\/, "\\" "\", replacement_markup) sub(/^ +/, "", replacement_markup) sub(/ +$/, "", replacement_markup) text = concat(substr(text, 1, pos - 1),"",replacement_markup,"",substr(text, pos2 + num_backticks)) pos = pos + length(replacement_markup) ; pos = sgmlutil_sgml_index3(text, "`", pos) ; } return text } function markdown1_escape_xml_chars(text, pos,tmp) { tmp = "" pos = 1 for (pos = sgmlutil_sgml_index3(text, "<", pos); pos != 0; pos = sgmlutil_sgml_index3(text, "<", pos + 1)) { if (match(substr(text, pos), "^")) continue if (match(substr(text, pos), /^/)) continue if (match(substr(text, pos), /^/)) continue tmp = substr(text, pos, 1) gsub(/&/, "\\" "&", tmp); gsub(//, "\\" ">", tmp) text = concat(substr(text, 1, pos - 1),tmp,substr(text, pos + 1)) } return text } function markdown1_encode_identifier(text, i,chr) { gsub(/[\n\t ]*&[A-Za-z0-9_-]+;?[\n\t ]*/, "", text) for (i = 1; i <= length(text); i++) { chr = substr(text, i, 1) if (chr == "_" || chr == "-" || chr == ".") continue if (match(chr, /[[:upper:]]/)) text = concat(substr(text, 1, i - 1), tolower(chr), substr(text, i + 1)) else if (match(chr, /[[:punct:]]/)) text = (substr(text, 1, i - 1) substr(text, i + 1)) } gsub(/[\n\t ]/, "-", text) gsub(/^[^[:alpha:]]+/, "", text) return text } function markdown1_encode_entity(text) { return markdown1_encode_identifier(text) } function markdown1_convert_typography_to_plain_text(text) { gsub(/_/, "", text) gsub(/\*/, "", text) return text } function markdown1_convert_links_to_markup(text, replacement_markup,pos,len,short_ref,rstart,rlength,prefix_text,suffix_text,link_entity,link_text,link_id,r,tmp) { replacement_markup = "" link_text = "" link_id = "" tmp = "" for (rstart = index(text, "["); rstart != 0; rstart = sgmlutil_sgml_index3(text, "[", rstart + length(replacement_markup))) { rlength = sgmlutil_sgml_index3(text, "]", rstart) if (rlength == 0) break rlength = rlength - rstart + 1 prefix_text = "" suffix_text = "" link_text = substr(text, rstart, rlength) sub(/^\[/, "", link_text) sub(/]$/, "", link_text) ; if (substr(text, rstart + rlength, 1) == "(") { r = markdown1_parse_link(substr(text, rstart + rlength)) ; if (r == 0) { text = concat(substr(text, 1, rstart - 1),"[",substr(text, rstart + 1)) } else { if (markdown1_link_definition_title != "") if (substr(text, rstart - 1, 1) == "!") { replacement_markup = concat("\"",markdown1_convert_typography_to_plain_text(link_text),"\"") text = concat(substr(text, 1, rstart - 2),replacement_markup,substr(text, rstart + rlength + r)) } else { replacement_markup = concat("
") replacement_markup = concat(replacement_markup,link_text,"") text = concat(substr(text, 1, rstart - 1),replacement_markup,substr(text, rstart + rlength + r)) } else if (substr(text, rstart - 1, 1) == "!") { replacement_markup = concat("\"",markdown1_convert_typography_to_plain_text(link_text),"\"") text = concat(substr(text, 1, rstart - 2),replacement_markup,substr(text, rstart + rlength + r)) } else { replacement_markup = concat("") replacement_markup = concat(replacement_markup,link_text,"") text = concat(substr(text, 1, rstart - 1),replacement_markup,substr(text, rstart + rlength + r)) } } continue } else if (substr(text, rstart + rlength, 1) == "[") { pos = sgmlutil_sgml_index3(text, "]", rstart + rlength + 1) if (pos == 0) { { platformerrorhandler1_warning("unterminated link", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } link_id = link_text short_ref = 1 pos = rstart + rlength - 1 } else { link_id = substr(text, rstart + rlength + 1, pos - (rstart + rlength + 1)) short_ref = 0 } ; } else if (substr(text, rstart + rlength, 2) == " [") { pos = sgmlutil_sgml_index3(text, "]", rstart + rlength + 2) if (pos == 0) { { platformerrorhandler1_warning("unterminated link", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } link_id = link_text short_ref = 1 pos = rstart + rlength - 1 } else { link_id = substr(text, rstart + rlength + 2, pos - (rstart + rlength + 1) - 1) short_ref = 0 } ; } else if (match(link_text, /@[A-Za-z0-9_-]+/)) { ; if (RSTART > 1) { tmp = markdown1_text_before_citekey gsub(/&/, "\\" "&", tmp); gsub(//, "\\" ">", tmp) gsub(/\*/, "\\" "*", tmp); gsub(/_/, "\\" "_", tmp); gsub(/\[/, "\\" "[", tmp); gsub(/\]/, "\\" "]", tmp); gsub(/\\/, "\\" "\", tmp) prefix_text = (substr(text, rstart + 1, RSTART - (rstart + 1)) tmp) } else { prefix_text = markdown1_text_before_citekey gsub(/&/, "\\" "&", prefix_text); gsub(//, "\\" ">", prefix_text) gsub(/\*/, "\\" "*", prefix_text); gsub(/_/, "\\" "_", prefix_text); gsub(/\[/, "\\" "[", prefix_text); gsub(/\]/, "\\" "]", prefix_text); gsub(/\\/, "\\" "\", prefix_text) } if (rstart + RSTART + RLENGTH < rstart + rlength - 1) { tmp = markdown1_text_after_citekey gsub(/&/, "\\" "&", tmp); gsub(//, "\\" ">", tmp) gsub(/\*/, "\\" "*", tmp); gsub(/_/, "\\" "_", tmp); gsub(/\[/, "\\" "[", tmp); gsub(/\]/, "\\" "]", tmp); gsub(/\\/, "\\" "\", tmp) suffix_text = (tmp substr(text, rstart + RSTART + RLENGTH, rlength - 1 - (rstart + RSTART + RLENGTH))) } else { suffix_text = markdown1_text_after_citekey gsub(/&/, "\\" "&", suffix_text); gsub(//, "\\" ">", suffix_text) gsub(/\*/, "\\" "*", suffix_text); gsub(/_/, "\\" "_", suffix_text); gsub(/\[/, "\\" "[", suffix_text); gsub(/\]/, "\\" "]", suffix_text); gsub(/\\/, "\\" "\", suffix_text) } ; link_id = substr(link_text, RSTART, RLENGTH) ; if (!(link_id in markdown1_link_uris)) markdown1_link_uris[link_id] = "" short_ref = 1 pos = rstart + rlength - 1 } else { link_id = link_text short_ref = 1 pos = rstart + rlength - 1 } if ((link_id ~ /^ *$/)) { ; link_entity = markdown1_encode_entity(link_text) if (substr(text, rstart - 1, 1) == "!") { if (!(link_text in markdown1_link_uris)) { replacement_markup = concat("\"",markdown1_convert_typography_to_plain_text(link_text),"\"/, "\\" ">", tmp) gsub(/\*/, "\\" "*", tmp); gsub(/_/, "\\" "_", tmp); gsub(/\[/, "\\" "[", tmp); gsub(/\]/, "\\" "]", tmp); gsub(/\\/, "\\" "\", tmp) if (short_ref && substr(text, rstart - 1, 1) != "!") replacement_markup = vocab_add_markdown_roundtrip_content(replacement_markup, concat("[",tmp,"]")) else replacement_markup = vocab_add_markdown_roundtrip_content(replacement_markup, concat("[",tmp,"][",link_id,"]")) if (substr(text, rstart - 1, 1) == "!") replacement_markup = (replacement_markup " />") else { replacement_markup = (replacement_markup ">") if (short_ref) if (substr(link_id, 1, 1) == "@") replacement_markup = concat(replacement_markup,prefix_text,substr(link_id, 2),suffix_text,"") else replacement_markup = concat(replacement_markup,link_id,"") else replacement_markup = concat(replacement_markup,link_text,"") } ; if (substr(text, rstart - 1, 1) == "!") text = concat(substr(text, 1, rstart - 2),replacement_markup,substr(text, pos + 1)) else text = concat(substr(text, 1, rstart - 1),replacement_markup,substr(text, pos + 1)) ; } return text } function markdown1_convert_typography_to_markup(text, token, tag, need_surrounding_blanks, i,j) { i = 1 while (i = sgmlutil_sgml_index3(text, token, i)) { if ((substr(text, i + length(token), 1) ~ /[ \t]/)) { i = i + length(token) continue } if (need_surrounding_blanks && i > 1 && !(substr(text, i - 1, 1) ~ /[ \t]/)) { i = i + length(token) continue } j = i + 1 while (j = sgmlutil_sgml_index3(text, token, j)) { if ((substr(text, j - 1, 1) ~ /[ \t]/)) { j = j + length(token) continue } if (need_surrounding_blanks && j + length(token) < length(text) && !(substr(text, j + length(token), 1) ~ /[ \t]/)) { j = j + length(token) continue } break } if (j == 0) return text text = concat(substr(text, 1, i - 1),"<",tag,">",substr(text, i + length(token), j - i - length(token)),"",substr(text, j + length(token))) i = j + length(token) } return text } function markdown1_convert_autolinks_to_markup(text, scheme, tmp) { tmp = "" while (match(text, concat("<",scheme,":[^> \t]+>"))) { tmp = substr(text, RSTART + 1, RLENGTH - 2) if (substr(tmp, 1, 1) == ":") tmp = substr(tmp, 2) gsub(/&/, "\\" "&", tmp); gsub(//, "\\" ">", tmp) if (RSTART > 1) text = concat(substr(text, 1, RSTART - 1),"","",tmp,"",substr(text, RSTART + RLENGTH)) else text = concat("","",tmp,"",substr(text, RSTART + RLENGTH)) ; } return text } function markdown1_convert_maillinks_to_markup(text, tmp) { tmp = "" while (match(text, /<[^@:>\n\t ]+@[^>\n\t ]+>/)) { tmp = substr(text, RSTART + 1, RLENGTH - 2) gsub(/&/, "\\" "&", tmp); gsub(//, "\\" ">", tmp) if (RSTART > 1) text = concat(substr(text, 1, RSTART - 1),"","",tmp,"",substr(text, RSTART + RLENGTH)) else text = concat("","",tmp,"",substr(text, RSTART + RLENGTH)) ; } return text } function markdown1_put_bibliography( link_id,citekey) { for (link_id in markdown1_link_uris) { ; if (!markdown1_link_uris[link_id]) { citekey = link_id ; } else if (!(link_id in markdown1_link_titles)) { citekey = markdown1_link_uris[link_id] ; } else continue tokenizer1_append_markup(markdown1_create_bibliography_entry(citekey)) } } function markdown1_create_bibliography_entry(citekey, iri,cmd,query,line,rownum,buf,errno,ns,url,endpoint,values,resource,resourcetype,title,givenname,surname,name) { buf = "" split("", values) if (markdown1_bibliography_rdf_graph_ns_parameter_specified) { ns = markdown1_bibliography_rdf_graph_ns ; } else if (entitydefinitions1_is_internal_entity_reference("bibliography_rdf_graph_ns")) { ns = entitydefinitions1_get_entity_replacement_text("bibliography_rdf_graph_ns") ; } else { ns = "" ; } if (markdown1_bibliography_rdf_graph_location_parameter_specified) { url = markdown1_bibliography_rdf_graph_location ; } else if (entitydefinitions1_is_internal_entity_reference("bibliography_rdf_graph_location")) { url = entitydefinitions1_get_entity_replacement_text("bibliography_rdf_graph_location") ; } else { ; url = "" } if (markdown1_sparql_endpoint_parameter_specified) endpoint = markdown1_sparql_endpoint else if (entitydefinitions1_is_internal_entity_reference("sparql_endpoint")) endpoint = entitydefinitions1_get_entity_replacement_text("sparql_endpoint") else endpoint = markdown1_sparql_endpoint if (ns == "" || url == "") { return "" } if (citekey in markdown1_link_uris && markdown1_link_uris[citekey] != "") iri = markdown1_link_uris[citekey] else iri = (ns substr(citekey, 2)) query = "PREFIX rdf: \n" query = (query "PREFIX res: \n") query = (query "PREFIX z: \n") query = (query "PREFIX dcterms: \n") query = (query "#PREFIX bibo: \n") query = (query "PREFIX foaf: \n") query = concat(query, "PREFIX items: <", ns, ">\n") query = (query "SELECT DISTINCT $item $resource $resourcetype $title $givenname $surname $name\n") query = concat(query, "FROM <", url, ">\n") query = (query "WHERE {\n") query = (query "$item rdf:type z:UserItem.\n") query = (query "$item res:resource $resource.\n") query = (query "$resource rdf:type $resourcetype.\n") query = (query "OPTIONAL {$resource dcterms:title $title}\n") query = (query "OPTIONAL {$resource dcterms:creator $creator}\n") query = (query "OPTIONAL {$creator rdf:type foaf:Person}\n") query = (query "OPTIONAL {$creator foaf:givenname $givenname}\n") query = (query "OPTIONAL {$creator foaf:surname $surname}\n") query = (query "OPTIONAL {$creator foaf:name $name}\n") query = concat(query, "FILTER (sameTerm($item, <", iri, ">))\n") query = (query "}") cmd = concat(endpoint,"'",query,"'") ; rownum = 1 while ((errno = (cmd | getline line)) > 0) { ; if (split(line, values, "\t") != 7) { { platformerrorhandler1_warning(concat("'",citekey,"': unexpected number of fields returned from SPARQL query for <",iri ,">"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } return "" } if (rownum == 1) { } else { resource = values[1+ 1] resourcetype = values[1+ 2] title = values[1+ 3] givenname = values[1+ 4] surname = values[1+ 5] name = values[1+ 6] sub(//, "", resourcetype) gsub("\"", "", title) gsub("\"", "", givenname) gsub("\"", "", surname) gsub("\"", "", name) } if (rownum == 2) { buf = concat("
",substr(citekey, 2),"
", "

", "", "",title," ") } buf = concat(buf,"", "", givenname, " ", "", surname, " ", "", name, " ", "") rownum++ } ; close(cmd) if (errno < 0) { { platformerrorhandler1_fatalError(concat("error executing SPARQL query (errno =",errno,")"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (rownum == 1) { { platformerrorhandler1_warning(concat("'",citekey,"': invalid SPARQL result for <",iri,">"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } return "" } else if (rownum == 2) { { platformerrorhandler1_warning(concat("'",citekey,"': empty SPARQL result for <",iri,">"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } return "" } if (buf != "") buf = concat(buf,"","

","
") ; return buf } function markdown1_extract_section_details(text) { markdown1_section_level = 0 markdown1_section_number = "" markdown1_section_title = text if (!(text ~ /^ *[0-9][0-9]*\. ?/)) return if (match(text, /^ *[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.?/)) markdown1_section_level = 4 else if (match(text, /^ *[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.?/)) markdown1_section_level = 3 else if (match(text, /^ *[0-9][0-9]*\.[0-9][0-9]*\.?/)) markdown1_section_level = 2 else if (match(text, /^ *[0-9][0-9]*\.?/)) markdown1_section_level = 1 if (markdown1_section_level) { markdown1_section_number = substr(text, RSTART, RLENGTH) markdown1_section_title = substr(text, RLENGTH) sub(/^ */, "", markdown1_section_title) sub(/ *$/, "", markdown1_section_title) gsub(/ /, "", markdown1_section_number) if (substr(markdown1_section_number, length(markdown1_section_number)) == ".") markdown1_section_number = substr(markdown1_section_number, 1, length(markdown1_section_number) - 1) } } function markdown1_convert_table_to_markup( i,j,past_header,result) { ; result = "" past_header = 0 for (i = 1; i <= markdown1_table_row_count; i++) { if (past_header || !markdown1_table_has_header_separator) result = (result markdown1_convert_table_row_to_markup(i, i, "td")) else if (markdown1_is_separator_line(i)) { result = (result markdown1_convert_table_row_to_markup(1, i - 1, "th")) past_header = 1 } else if (markdown1_table_has_header_separator) continue else { { platformerrorhandler1_fatalError("internal error: unexpected table formatting state", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } result = (result "
") return result } function markdown1_is_separator_line(row_number, i,x) { x = markdown1_table_has_leading_trailing_pipes for (i = 1 + x; i < markdown1_table_column_count - x; i++) { if (!((row_number, i) in markdown1_table_cell_values)) break if (!(markdown1_table_cell_values[row_number, i] ~ /^:?-+:?$/)) return 0 } return 1 } function markdown1_convert_table_row_to_markup(first_row, last_row, tag, result,buffer,x,i,j) { ; result = "" x = markdown1_table_has_leading_trailing_pipes for (j = 1 + x; j <= markdown1_table_column_count - x; j++) { buffer = "" for (i = first_row; i <= last_row; i++) if ((i, j) in markdown1_table_cell_values) buffer = (buffer markdown1_convert_to_span_level_markup(markdown1_table_cell_values[i, j])) if (buffer) result = concat(result,"<",tag,">",buffer,"") else result = concat(result,"<",tag,">","") ; } result = (result "") ; return result } function markdown1_configure(args) { if (!args["text_before_citekey"]) markdown1_text_before_citekey = "[" if (!args["text_after_citekey"]) markdown1_text_after_citekey = "]" if (args["bibliography_rdf_graph_location"]) { markdown1_bibliography_rdf_graph_location = args["bibliography_rdf_graph_location"] markdown1_bibliography_rdf_graph_location_parameter_specified = "true" } if (args["bibliography_rdf_graph_ns"]) { markdown1_bibliography_rdf_graph_ns = args["bibliography_rdf_graph_ns"] markdown1_bibliography_rdf_graph_ns_parameter_specified = "true" } if (!args["sparql_endpoint"]) markdown1_sparql_endpoint = "roqet -q -r tsv -e " else { markdown1_sparql_endpoint = args["sparql_endpoint"] markdown1_sparql_endpoint_parameter_specified = "true" } } function markdown1_change_non_escaped_pipe_chars_into_unit_separators(text, result,text_rest,portion) { result = "" text_rest = "" portion = "" text_rest = text for(;;) { if (match(text_rest, /`([^`]|(``))+`/)) { if (RSTART > 1) { portion = substr(text_rest, 1, RSTART - 1) gsub(/\\\|/, "\\|", portion) gsub(/\|/, "\031", portion) } else portion = "" ; result = concat(result, portion, substr(text_rest, RSTART, RLENGTH)) text_rest = substr(text_rest, RSTART + RLENGTH) } else { gsub(/\\\|/, "\\|", text_rest) gsub(/\|/, "\031", text_rest) result = (result text_rest) break } } ; return result } function markdown1_markdown(record, field,num_fields,i,n,s) { split("", field) num_fields = 1 s = "" if ((record ~ /^&[A-Za-z0-9\._-]+;?$/) && !markdown1_html_block_buffer && (markdown1_raw_text ~ /^ *$/)) { ; markdown1_closealltags() ; return "single-line-entityref" } { ; markdown1_previous_line = markdown1_raw_text markdown1_raw_text = record markdown1_previous_indentation_level = markdown1_indentation_level markdown1_indentation_level = 1 split("", markdown1_indentation_markers) } if (markdown1_link_definition_id) { ; if (markdown1_html_block_buffer || markdown1_currenttag() == "code") { platformerrorhandler1_fatalError("invalid link definition parsing state", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ((record ~ "^( ( ( )?)?)?\"[^\"]*\" *$")) { if (!markdown1_parse_reference_link_definition(concat(markdown1_previous_line," ",record))) { { platformerrorhandler1_warning("invalid reference link definition", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } sub("\\[", "‘", record) markdown1_link_definition_id = "" markdown1_previous_line = "" } else { markdown1_put_link_definition() markdown1_link_definition_id = "" return } } else { markdown1_put_link_definition() markdown1_link_definition_id = "" markdown1_previous_line = "" } } if ((record ~ /^ *$/) && markdown1_html_block_buffer) { ; tokenizer1_append_markup(markdown1_html_block_buffer) markdown1_html_block_buffer = "" ; return } if (!markdown1_in_fenced_codeblock && (record ~ /^<\/?[0-9A-Za-z_.?:!-]+( +.*)?>/) && !(record ~ /^") } if (!markdown1_in_fenced_codeblock && (record ~ /^/)) markdown1_indentation_level++ if (!(markdown1_currenttag() == "code" || ((markdown1_previous_line ~ /^ *$/) && markdown1_indentation_level > markdown1_currentindentation()) || markdown1_in_fenced_codeblock == "1")) record = markdown1_change_non_escaped_pipe_chars_into_unit_separators(record) num_fields = split(record, field, "\031") ; ; } if (markdown1_indentation_level == markdown1_currentindentation() && num_fields > 1) { ; if (markdown1_table_row_count) { if (num_fields != markdown1_table_column_count) markdown1_table_has_leading_trailing_pipes = 0 else if (markdown1_table_has_leading_trailing_pipes) if (num_fields >= 3 && (field[1+ 0] ~ /^ *$/)) markdown1_table_has_leading_trailing_pipes = 1 else markdown1_table_has_leading_trailing_pipes = 0 ++markdown1_table_row_count if (num_fields > markdown1_table_column_count) markdown1_table_column_count = num_fields } else { ; if (num_fields >= 3 && (field[1+ 0] ~ /^ *$/) && (field[1+ num_fields-1] ~ /^ *$/)) markdown1_table_has_leading_trailing_pipes = 1 else markdown1_table_has_leading_trailing_pipes = 0 markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level) - 1) markdown1_table_row_count = 1 markdown1_table_column_count = num_fields } for (i = 1; i <= num_fields; i++) markdown1_table_cell_values[markdown1_table_row_count, i] = sgmlutil_sgml_trim(field[1+ i-1]) if (!markdown1_table_has_header_separator && markdown1_is_separator_line(markdown1_table_row_count)) markdown1_table_has_header_separator = 1 ; ; return } if ((record ~ /^ *$/) && markdown1_table_row_count) { ; tokenizer1_append_markup(markdown1_convert_table_to_markup()) markdown1_clear_table_cell_values() markdown1_table_row_count = 0 markdown1_table_column_count = 0 markdown1_table_has_header_separator = 0 markdown1_table_has_leading_trailing_pipes = 0 ; return } if (markdown1_table_row_count) { ; tokenizer1_append_markup(markdown1_convert_table_to_markup()) markdown1_clear_table_cell_values() markdown1_table_row_count = 0 markdown1_table_column_count = 0 markdown1_table_has_header_separator = 0 markdown1_table_has_leading_trailing_pipes = 0 } if ((record ~ /^ *>/) && (!((markdown1_indentation_level >= markdown1_previous_indentation_level && markdown1_currenttag() == "code") || ((markdown1_previous_line ~ /^ *$/) && markdown1_indentation_level > markdown1_currentindentation())))) { ; record = markdown1_prune_blockquote_nesting(record) markdown1_raw_text = record ; ; ; if (markdown1_tag_at_indentation_level(markdown1_indentation_level) != "blockquote") { ; markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level) - 1) n = markdown1_currentindentation() + markdown1_blockquote_nesting_level ; for (i = markdown1_currentindentation(); i < n; i++) markdown1_opentag("blockquote") markdown1_previous_line = "" } else { ; if (markdown1_tag_at_indentation_level(markdown1_indentation_level + markdown1_blockquote_nesting_level - 1) != "blockquote") { ; while (markdown1_currenttag() != "blockquote") markdown1_closetag() n = markdown1_indentation_level + markdown1_blockquote_nesting_level ; for (i = markdown1_currentindentation(); i < n; i++) markdown1_opentag("blockquote") markdown1_previous_line = "" } else { if ((markdown1_previous_line ~ /^ *$/)) { ; ; ; markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level + markdown1_blockquote_nesting_level - 1)) } else { markdown1_indentation_level = markdown1_currentindentation() while (markdown1_tag_at_indentation_level(markdown1_indentation_level) != "blockquote") { markdown1_indentation_level-- if (markdown1_indentation_level == 0) { platformerrorhandler1_fatalError("internal error searching for blockquote level", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; } } } markdown1_indentation_level = markdown1_indentation_level + markdown1_blockquote_nesting_level markdown1_indentation_level_before = markdown1_indentation_level record = markdown1_prune_indentation(record) markdown1_previous_indentation_level = markdown1_indentation_level if (markdown1_in_fenced_codeblock == "1") markdown1_indentation_level++ ; ; ; ; ; } if ((record ~ /^[ \t]*$/) && markdown1_currenttag() == "code") { ; markdown1_current_text = concat(markdown1_current_text,record,"\n") markdown1_indentation_level = markdown1_previous_indentation_level ; return } if (markdown1_currenttag() != "code" && ((record ~ /^ *\* ?\* ?\* *$/) || (record ~ /^ *_ ?_ ?_ *$/) || (record ~ /^ *- - - *$/) || ((record ~ /^ *--- *$/) && markdown1_previous_line == "")) && !((markdown1_indentation_level >= markdown1_previous_indentation_level && markdown1_currenttag() == "code") || ((markdown1_previous_line ~ /^ *$/) && markdown1_indentation_level > markdown1_currentindentation()))) { ; markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level) - 1); markdown1_opentag("hr") markdown1_current_text = "\n" markdown1_closetag() markdown1_raw_text = "" ; return } if (markdown1_currenttag() == "code" && ((record ~ /^ *\* ?\* ?\* *$/) || (record ~ /^ *_ ?_ ?_ *$/) || (record ~ /^ *- - - *$/) || (record ~ /^ *--- *$/)) && markdown1_previous_line == "" && !((markdown1_indentation_level >= markdown1_previous_indentation_level && markdown1_currenttag() == "code") || ((markdown1_previous_line ~ /^ *$/) && markdown1_indentation_level > markdown1_currentindentation()))) { ; markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level) - 1); markdown1_opentag("hr") markdown1_current_text = "\n" markdown1_closetag() markdown1_raw_text = "" ; return } if (((record ~ /^```[[:alnum:]_]*$/) || (record ~ /^~~~[[:alnum:]_]*$/))) { ; if (markdown1_in_fenced_codeblock) { markdown1_in_fenced_codeblock = "" markdown1_fenced_codeblock_lang = "" } else { sub(/[`~""''<>&]+/, "", record) sgmlutil_sgml_trim(record) markdown1_in_fenced_codeblock = "1" markdown1_fenced_codeblock_lang = record } markdown1_raw_text = "" record = "" } if ((record ~ /^[ \t]*$/)) { ; markdown1_indentation_level = markdown1_previous_indentation_level ; return } if (markdown1_indentation_level <= markdown1_currentindentation() && markdown1_currenttag() == "code") { ; markdown1_closetag() markdown1_closetag() } if ((record ~ /^ *\[[^\]]+\]:/) && !markdown1_html_block_buffer && markdown1_currenttag() != "code") { ; if (markdown1_parse_reference_link_definition(record)) { ; if (!markdown1_link_definition_id || !markdown1_link_definition_uri) { { platformerrorhandler1_warning("invalid reference link definition", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } sub(/\[/, "‘", record) markdown1_link_definition_id = "" } else { markdown1_put_link_definition() markdown1_link_definition_id = "" return } } else { ; return } } if (markdown1_indentation_level >= markdown1_previous_indentation_level && markdown1_currenttag() == "code") { ; markdown1_compensate_over_indented_code_line() markdown1_encoding_buffer = record gsub(/&/, "\\" "&", markdown1_encoding_buffer); gsub(//, "\\" ">", markdown1_encoding_buffer) markdown1_current_text = concat(markdown1_current_text,markdown1_encoding_buffer,"\n") markdown1_indentation_level = markdown1_previous_indentation_level ; return } if ((markdown1_previous_line ~ /^ *$/) && markdown1_indentation_level > markdown1_currentindentation()) { ; if (markdown1_currenttag() == "p") markdown1_closetag() markdown1_opentag("pre") markdown1_opentag("code") if (markdown1_fenced_codeblock_lang != "") markdown1_current_attributes = concat("class=\"", markdown1_fenced_codeblock_lang, "\"") markdown1_compensate_over_indented_code_line() markdown1_encoding_buffer = record gsub(/&/, "\\" "&", markdown1_encoding_buffer); gsub(//, "\\" ">", markdown1_encoding_buffer) markdown1_current_text = concat(markdown1_current_text,markdown1_encoding_buffer,"\n") markdown1_indentation_level = markdown1_currentindentation() + 1 ; return } if ((record ~ /^ *=+ *$/)) { if (markdown1_currenttag() == "p" && (markdown1_current_text ~ /^[^\n]+\n$/)) { markdown1_unopentag() markdown1_handle_header(markdown1_current_text, 1) return } } if ((record ~ /^ *-+ *$/)) { if (markdown1_currenttag() == "p" && (markdown1_current_text ~ /^[^\n]+\n$/)) { markdown1_unopentag() markdown1_handle_header(markdown1_current_text, 2) return } } if ((record ~ /^#+/)) { ; markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level) - 1); gsub(/#+ *$/, "", record) n = gsub(/#/, "", record) markdown1_handle_header(record, n) ; return } if ((record ~ /^ *[-+\*][ \t]+/) && markdown1_tag_at_indentation_level(markdown1_indentation_level) != "ul" && (markdown1_currentindentation() > 1 || (markdown1_previous_line ~ /^[ \t]*$/) || (markdown1_previous_line ~ /^#/))) { ; markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level) - 1) markdown1_opentag("ul") markdown1_opentag("li") markdown1_opentag("p") if (match(record, /[^ \t\+*-]/)) markdown1_current_text = (substr(record, RSTART) "\n") else markdown1_current_text = "\n" ; return } if ((record ~ /^ *[-+\*][ \t]+/) && markdown1_tag_at_indentation_level(markdown1_indentation_level) == "ul") { ; if ((markdown1_previous_line ~ /^[ \t]*$/) && markdown1_currenttag() == "p") { if (markdown1_parenttag() == "li" && markdown1_indentation_level == markdown1_currentindentation() - 1) { ; ; markdown1_current_attributes = vocab_set_nonprunable(markdown1_current_attributes) ; markdown1_previous_line = "" } markdown1_closetag() } markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level)) markdown1_opentag("li") markdown1_opentag("p") if ((markdown1_previous_line ~ /^ *$/)) { markdown1_current_attributes = vocab_set_nonprunable(markdown1_current_attributes) } match(record, /[^ \t\+*-]/) if (RSTART == 0) markdown1_current_text = "\n" else markdown1_current_text = (substr(record, RSTART) "\n") ; return } if ((record ~ /^ *[0-9]+\.[ \t]+/) && markdown1_tag_at_indentation_level(markdown1_indentation_level) != "ol" && (markdown1_currentindentation() > 1 || (markdown1_previous_line ~ /^[ \t]*$/) || (markdown1_previous_line ~ /^#/))) { ; markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level) - 1) markdown1_opentag("ol") markdown1_opentag("li") markdown1_opentag("p") if (match(record, /[^0-9 \t\.]/)) markdown1_current_text = (substr(record, RSTART) "\n") else markdown1_current_text = "\n" ; return } if ((record ~ /^ *[0-9]+\.[ \t]+/) && markdown1_tag_at_indentation_level(markdown1_indentation_level) == "ol") { ; if ((markdown1_previous_line ~ /^[ \t]*$/) && markdown1_currenttag() == "p") { if (markdown1_parenttag() == "li" && markdown1_indentation_level == markdown1_currentindentation() - 1) { ; ; markdown1_current_attributes = vocab_set_nonprunable(markdown1_current_attributes) ; markdown1_previous_line = "" } markdown1_closetag() } markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level)) markdown1_opentag("li") markdown1_opentag("p") if ((markdown1_previous_line ~ /^ *$/)) { markdown1_current_attributes = vocab_set_nonprunable(markdown1_current_attributes) } match(record, /[^0-9 \t\.]/) if (RSTART == 0) markdown1_current_text = "\n" else markdown1_current_text = (substr(record, RSTART) "\n") ; return } if ((record ~ /^ *[:~][ \t]+/) && markdown1_tag_at_indentation_level(markdown1_indentation_level) != "dl" && markdown1_currentindentation() == 1) { ; if (markdown1_currenttag() == "p" && (markdown1_current_text ~ /^[^\n]+\n$/)) { markdown1_unopentag() markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level) - 1) markdown1_current_text_save = markdown1_current_text markdown1_current_text = "" markdown1_opentag("dl") markdown1_opentag("dt") markdown1_current_text = markdown1_current_text_save markdown1_closetag() markdown1_opentag("dd") markdown1_opentag("p") if (match(record, /[^~: \t]/)) markdown1_current_text = (substr(record, RSTART) "\n") else markdown1_current_text = "\n" return } else { platformerrorhandler1_warning("missing definition term in definition list", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } if ((record ~ /^ *[:~][ \t]+/) && markdown1_tag_at_indentation_level(markdown1_indentation_level) == "dl" && markdown1_currentindentation() == 2) { ; if ((markdown1_previous_line ~ /^[ \t]*$/) && markdown1_currenttag() == "p") { if (markdown1_parenttag() == "li" && markdown1_indentation_level == markdown1_currentindentation() - 1) { ; ; markdown1_current_attributes = vocab_set_nonprunable(markdown1_current_attributes) ; markdown1_previous_line = "" } markdown1_closetag() } markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level)) markdown1_opentag("dd") markdown1_opentag("p") if ((markdown1_previous_line ~ /^ *$/)) { markdown1_current_attributes = vocab_set_nonprunable(markdown1_current_attributes) } if (match(record, /[^~: \t]/)) markdown1_current_text = (substr(record, RSTART) "\n") else markdown1_current_text = "\n" ; return } if (markdown1_indentation_level > 1 && markdown1_indentation_level <= markdown1_currentindentation() && markdown1_is_list_tag(markdown1_indentation_level - 1) && markdown1_tag_at_indentation_level(markdown1_indentation_level) == "") { ; if (markdown1_currenttag() == "p") { markdown1_current_attributes = vocab_set_nonprunable(markdown1_current_attributes) markdown1_closetag() } markdown1_opentag("p") markdown1_current_text = (record "\n") ; return } if (!(markdown1_previous_line ~ /^[ \t]*$/) && markdown1_indentation_level <= markdown1_currentindentation()) { ; if (markdown1_currenttag() != "p") markdown1_opentag("p") markdown1_current_text = concat(markdown1_current_text,record,"\n") ; return } if (markdown1_indentation_level > 1 && markdown1_indentation_level < markdown1_currentindentation() && markdown1_is_list_tag(markdown1_indentation_level - 1)) { ; if (markdown1_tag_at_indentation_level(markdown1_indentation_level) != "p" || markdown1_tag_at_indentation_level(markdown1_indentation_level + 1) != "") { markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level) - 1) markdown1_opentag("p") } markdown1_current_text = concat(markdown1_current_text,record,"\n") ; return } if (markdown1_indentation_level > 1 && markdown1_indentation_level == markdown1_currentindentation() && markdown1_is_list_tag(markdown1_indentation_level - 1)) { ; if ((markdown1_previous_line ~ /^[ \t]*$/)) { ; markdown1_current_attributes = vocab_set_nonprunable(markdown1_current_attributes) ; } markdown1_closetag() markdown1_opentag("p") markdown1_current_text = concat(markdown1_current_text,record,"\n") ; return } if (((markdown1_previous_line ~ /^ *$/) || markdown1_currenttag() == "code") && markdown1_indentation_level != 1) { ; markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level)) if (markdown1_currenttag() != "p") markdown1_opentag("p") markdown1_current_text = concat(markdown1_current_text,record,"\n") ; return } if (((markdown1_previous_line ~ /^ *$/) || markdown1_currenttag() == "code") && markdown1_indentation_level == 1) { ; markdown1_closetagstoindentationlevel(markdown1_tagindex(markdown1_indentation_level) - 1) markdown1_opentag("p") markdown1_current_text = concat(markdown1_current_text,record,"\n") ; return } if (!(markdown1_previous_line ~ /^[ \t]*$/) && markdown1_indentation_level > markdown1_currentindentation()) { ; if (markdown1_currenttag() != "p") markdown1_opentag("p") markdown1_current_text = concat(markdown1_current_text,record,"\n") markdown1_indentation_level = markdown1_previous_indentation_level ; return } { { platformerrorhandler1_fatalError(("unhandled content: " record), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } BEGIN { diverter1_filename = "" diverter1_decl = "" diverter1_markdown_disabled = "" diverter1_markdown_enabled = "" diverter1_markdown_enabled_assessed = "" diverter1_num_pushed_lines = 0 } function diverter1_reset() { diverter1_filename = "" diverter1_decl = "" } function diverter1_handle_record(line, markup_decl_length,entity_ref,entity_url,entity_text,text,emitting_pushed_lines) { entity_ref = "" entity_url = "" entity_text = "" text = "" ; if (locator1_get_line_number() == 1 && locator1_get_number_of_open_entities() <= 1) { ; if ((line ~ /^") markdown1_markdown("") locator1_set_line_number_adjust(-1) } else if ((locator1_get_system_id() ~ /\.html$/)) sgmldecl1_initialize_for_html() else { sgmldecl1_initialize_defaults() } } ; if (!diverter1_markdown_enabled_assessed) { ; if (diverter1_markdown_disabled || (!(locator1_get_system_id() == "-") && !(locator1_get_system_id() ~ /\.md$/) && !(sgmldecl1_public_declaration_reference == "+//IDN sgmljs.net//SD Markdown//EN"))) diverter1_markdown_enabled = "" else diverter1_markdown_enabled = "1" ; diverter1_markdown_enabled_assessed = "1" } if (diverter1_markdown_enabled) { if (!markdownoutputfilter1_prune_singleton_html_paras_in_listitems) markdownoutputfilter1_prune_singleton_html_paras_in_listitems = "YES" if (diverter1_num_pushed_lines > 0) { diverter1_num_pushed_lines-- ; emitting_pushed_lines = 1 if (diverter1_num_pushed_lines == 0 && locator1_get_number_of_open_entities() > 0) { locator1_clear_open_entities() } } ; if (markdown1_markdown(line) == "single-line-entityref") { ; entity_ref = line entity_ref = substr(entity_ref, 2) if (substr(entity_ref, length(entity_ref), 1) == ";") entity_ref = substr(entity_ref, 1, length(entity_ref) - 1) if (sgmldecl1_syntax_namecase_entity == "YES") entity_ref = toupper(entity_ref) ; if (locator1_is_open_entity_reference(entity_ref)) { platformerrorhandler1_fatalError(concat("'",entity_ref,"': self-referential entity reference"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } locator1_push_entity_reference(entity_ref) if (entity_ref in entitydefinitions1_general_entity_type) { platformerrorhandler1_fatalError(concat("'", entity_ref, ": entity reference to unparsed entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (entity_ref in entitydefinitions1_entity_replacement_file) entity_url = entitydefinitions1_entity_replacement_file[entity_ref] else if (entity_ref in entitydefinitions1_system_specific_general_entities || (sgmldecl1_features_minimize_implydef_entity == "YES" && !(entity_ref in entitydefinitions1_entity_replacement_text))) { entity_url = systemspecificentityresolver1_resolve_system_specific_external_entity(locator1_get_system_id(), entity_ref) if (!entity_url) { platformerrorhandler1_fatalError(concat("'", entity_ref, ": unable to resolve system-specific entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if ((entity_url ~ /^<[Ll][Ii][Tt][Ee][Rr][Aa][Ll]>/)) { entity_text = substr(entity_url, 10) entity_url = "" locator1_push_entity_reference(entity_ref) } else { if ((entity_url ~ /^<[Oo][Ss][Ff][Ii][Ll][Ee]>/)) entity_url = substr(entity_url, 9) else if ((entity_url ~ /[<>]/)) { platformerrorhandler1_fatalError(concat("entity '", entity_ref, "': '", entity_url, "': STAGO and/or ETAGO delimiters in system identifier not recognized as storage manager notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (substr(entity_url, 1, 1) != "/") entity_url = path_resolve(process_cwd(), entity_url) } } ; if (entity_url != "") { text = fs_readFileSync(entity_url, "utf-8") text = (text "\n") locator1_push_context(entity_ref, entity_url) locator1_set_line_number(0) } else { if (!(entity_ref in entitydefinitions1_entity_replacement_text)) { { platformerrorhandler1_fatalError(concat("'",entity_ref,"': unsupported or unresolvable entity reference for use in markdown"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { locator1_push_entity_reference(entity_ref) text = (entitydefinitions1_entity_replacement_text[entity_ref] "\n") } } chain1_push_text(text) diverter1_num_pushed_lines += gsub(/\n/, "\n", text) ; } } else { tokenizer1_append_markup((line "\n")) } } BEGIN { chainmanager1_locator_context_number = 1 } function chainmanager1_reset() { chainmanager1_locator_context_number = 1 } function chainmanager1_end_records() { tokenizer1_switchoff_stalling_on_unresolved_entity() markdown1_cleanup() tokenizer1_end_markup() } function chainmanager1_record(line) { ; locator1_set_line_number_at_context(chainmanager1_locator_context_number, locator1_get_line_number_at_context(chainmanager1_locator_context_number) + 1) ; diverter1_handle_record(line) } function cp_exec(cmd) { system(cmd) } function cp_execSync(cmd, parameter_array, r,line,previous_line,errno,cmdbuf,lineno,parambuf,v) { r = "" line = "" previous_line = "" errno = "" cmdbuf = "" parambuf = "" v = "" if ("cwd" in parameter_array) if (index(parameter_array["cwd"], "'")) print "'" parameter_array["cwd"] "': working directory must not contain single quote character" for (v in parameter_array) { if (v == "cmd" || v == "cwd" || v == "stdin" || v == "input") continue if (parambuf) parambuf = parambuf " && " if (index(parameter_array[v], "'") != 0) { if (index(parameter_array[v], "\"") != 0) print "'" parameter_array[v] "': invalid quotation characters for serialization of environment parameter" else parambuf = parambuf "export " v "=\"" parameter_array[v] "\"" } else parambuf = parambuf "export " v "='" parameter_array[v] "'" } if (parambuf) parambuf = parambuf " && " if ("stdin" in parameter_array) cmdbuf = "(" parambuf " cd '" parameter_array["cwd"] "' && " cmd " < '" parameter_array["stdin"] "' && echo $?) || echo $?" else if ("input" in parameter_array) { if (parameter_array["input"] ~ /SGMLEOF/) { print "'" cmd "': invalid string SGMLEOF in command input reserved for sgmlproc as EOF marker" >> "/dev/fd/2" exit(1) } cmdbuf = "(" parambuf " cd '" parameter_array["cwd"] "' && " cmd " << 'SGMLEOF' && echo $?) || echo $?" cmdbuf = cmdbuf "\n" parameter_array["input"] "\nSGMLEOF" } else cmdbuf = "(" parambuf " cd '" parameter_array["cwd"] "' && " cmd " < /dev/null && echo $?) || echo $?" do { errno = (cmdbuf | getline line) if (errno > 0 && lineno > 0) r = r previous_line "\n" previous_line = line lineno++ } while (errno > 0) close(cmdbuf) if (errno < 0) { print "'" cmd "': error executing command" (ERRNO? (": " ERRNO) : "") >> "/dev/fd/2" exit(1) } else if (line != "0") { print "'" cmd "': non-zero return status " line >> "/dev/fd/2" exit(1) } return r } function cp_waitpid(p) { } function htmlforminputvaluechecker1_normalize_value(value, parameters, pattern_param,type_param,p) { pattern_param = "" type_param = "" p = "" ; for (p in parameters) { ; } if (sgmldecl1_syntax_namecase_general == "YES") { if ("TYPE" in parameters) type_param = parameters["TYPE"] if ("PATTERN" in parameters) pattern_param = parameters["PATTERN"] } else { if ("type" in parameters) type_param = toupper(parameters["type"]) if ("pattern" in parameters) pattern_param = parameters["pattern"] } ; gsub(/[\n\r]/, "", value) if (type_param == "TEXT" || type_param == "") { ; } else if (type_param == "EMAIL") { ; if (!(value ~ /^[a-zA-Z0-9.!#$%&''*+\/=?^_`{|}~-]+@[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*$/)) return "" } else if (type_param == "URL") { ; urn2_set_href(value) ; if (urn2_is_invalid) return "" value = urn2_href } else if (type_param == "TIME") { ; if (!(value ~ /^(([01][0-9])|(2[0123])):[0-5][0-9](:[0-5][0-9](\.[0-9]([0-9][0-9]?)?)?)?$/)) return "" } else if (type_param == "DATE") { ; if (!(value ~ /^[[:digit:]][[:digit:]][[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]$/)) return "" if (strptime_strptime(value, "%Y-%m-%d") == -1) return "" } else if (type_param == "DATETIME-LOCAL") { ; if (!(value ~ /^[[:digit:]][[:digit:]][[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]T[[:digit:]][[:digit:]]:[[:digit:]][[:digit:]]:[[:digit:]][[:digit:]]$/)) return "" if (strptime_strptime(value, "%Y-%m-%dT%H:%M:%S") == -1) return "" } else if (type_param == "NUMBER") { ; if (!(value ~ /^[+-]?[0-9]+(\.[0-9]+)?([Ee][+-]?[0-9]+)?$/) && !(value ~ /^\.[0-9]+([Ee][+-]?[0-9]+)?$/)) return "" gsub(/\+/, "", value) sub(/E/, "e", value) sub(/^\./, "0.", value) sub(/^-\./, "-0.", value) } else { ; return "" } if (pattern_param != "") { pattern_param = ("^" pattern_param "$") if (index(pattern_param, "\"")) { pattern_param = regexpconvert_convert_to_posix_regexp(("'" pattern_param "'"), "") if (substr(pattern_param, 1, 1) != "'") return "" } else { pattern_param = regexpconvert_convert_to_posix_regexp(("\"" pattern_param "\""), "") if (substr(pattern_param, 1, 1) != "\"") return "" } pattern_param = substr(pattern_param, 2, length(pattern_param) - 2) ; if (!(value ~ pattern_param)) return "" } return value } function vocab_add_markdown_roundtrip_content(buffer, attr_content) { if (buffer == "") return concat("markdown:roundtrip=\"", attr_content, "\"") return concat(buffer, " markdown:roundtrip=\"", attr_content, "\"") } function vocab_strip_markdown_vocabulary(attrs, attrs_array) { if (!attrs) return "" if (!("markdown:roundtrip" in attrs_array) && !("markdown:prunable" in attrs_array) && !("MARKDOWN:ROUNDTRIP" in attrs_array) && !("MARKDOWN:PRUNABLE" in attrs_array)) return attrs delete attrs_array["markdown:roundtrip"] delete attrs_array["markdown:prunable"] delete attrs_array["MARKDOWN:ROUNDTRIP"] delete attrs_array["MARKDOWN:PRUNABLE"] return sgmlutil_sgml_formatattrs(attrs_array) } function vocab_has_non_markdown_attributes(attrs, attrs_array) { split("", attrs_array) if (!sgmlutil_sgml_parseattrs(attrs, attrs_array)) return "" return vocab_strip_markdown_vocabulary(attrs, attrs_array) } function vocab_is_prunable(attrs, attrs_array, a) { a = "" for (a in attrs_array) { if (a == "MARKDOWN:ROUNDTRIP" || a == "markdown:roundtrip") continue return "" } return "1" } function vocab_set_nonprunable(attrs) { return concat(attrs, " markdown:prunable=\"false\"") } function vocab_get_roundtrip_content(attrs, attrarray) { split("", attrarray) sgmlutil_sgml_parseattrs(attrs, attrarray) if ("MARKDOWN:ROUNDTRIP" in attrarray) return attrarray["MARKDOWN:ROUNDTRIP"] if ("markdown:roundtrip" in attrarray) return attrarray["markdown:roundtrip"] return "" } BEGIN { attributechecker2_disable_referential_attributes = "" attributechecker2_declaration_set_name = "" } function attributechecker2_set_declaration_set_name(name) { if (!attributechecker2_declaration_set_name) attributechecker2_declaration_set_name = name } function attributechecker2_debug_ids(msg, i,s) { s = "" for (i in docinfo2_backward_ids) s = concat(s, (s? " ":""), i) msg = concat(msg,": this.docinfo.backward_ids=",s) s = "" for (i in docinfo2_forward_idrefs) s = concat(s, (s? " ":""), i) msg = concat(msg,", this.docinfo.forward_idrefs=",s) return ("check_attribute_value: " msg) } function attributechecker2_check_attribute_value(doctype, attribute, declared_value, actual_value, content_msg, data_notation_name, data_data_attributes_map, i,tmp,data_notation_public_identifier,actual_value_before_normalization) { split("", tmp) data_notation_public_identifier = "" actual_value_before_normalization = "" ; if (substr(declared_value, 1, 1) == "(") { sub(/^[ \t\n]+/, "", actual_value) sub(/[ \t\n]+$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!((actual_value ~ declared_value))) { { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": '",actual_value,"': invalid value for attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } } else if (declared_value == "CDATA") return actual_value else if (declared_value == "ENTITY") { if (attributechecker2_disable_referential_attributes) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } gsub(/[ \t\n]+/, "", actual_value) if (sgmldecl1_syntax_namecase_entity == "YES") actual_value = toupper(actual_value) if (!(actual_value in entitydefinitions1_entity_replacement_text) && !(actual_value in entitydefinitions1_entity_replacement_file) && !(actual_value in entitydefinitions1_system_specific_general_entities)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': reference to undeclared entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "ENTITIES") { if (attributechecker2_disable_referential_attributes) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } gsub(/[ \t\n]+/, " ", actual_value) sub(/^ +/, "", actual_value) sub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_entity == "YES") actual_value = toupper(actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] in entitydefinitions1_entity_replacement_text) && !(tmp[1+ i] in entitydefinitions1_entity_replacement_file)) { platformerrorhandler1_error(concat(content_msg,"'",tmp[1+ i],"': reference to undeclared entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "ID") { if (attributechecker2_disable_referential_attributes) { if (systemspecificentityresolver1_system_specific_entity_path && substr(locator1_get_system_id(), 1, length(systemspecificentityresolver1_system_specific_entity_path)) == systemspecificentityresolver1_system_specific_entity_path) locator1_set_system_id("") { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } gsub(/[ \t\n]+/, "", actual_value) if (!(actual_value ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid ID token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (actual_value in docinfo2_backward_ids) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': duplicate ID value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else docinfo2_backward_ids[actual_value] = "" if (actual_value in docinfo2_forward_idrefs) delete docinfo2_forward_idrefs[actual_value] ; } else if (declared_value == "IDREF") { if (attributechecker2_disable_referential_attributes) { if (systemspecificentityresolver1_system_specific_entity_path && substr(locator1_get_system_id(), 1, length(systemspecificentityresolver1_system_specific_entity_path)) == systemspecificentityresolver1_system_specific_entity_path) locator1_set_system_id("") { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } gsub(/[ \t\n]+/, "", actual_value) if (!(actual_value ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_warning(concat(content_msg,"'",actual_value,"': invalid ID token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!(actual_value in docinfo2_backward_ids)) docinfo2_forward_idrefs[actual_value] = "" ; } else if (declared_value == "IDREFS") { if (attributechecker2_disable_referential_attributes) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) { if (!(tmp[1+ i] ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_warning(concat(content_msg,"'",tmp[1+ i],"': invalid ID token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!(tmp[1+ i] in docinfo2_backward_ids)) docinfo2_forward_idrefs[tmp[1+ i]] = "" } ; } else if (declared_value == "NAME") { gsub(/[ \t\n]+/, " ", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!(actual_value ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NAME token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NAMES") { gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (actual_value == "") { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NAME token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NAME token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NMTOKEN") { gsub(/[ \t\n]+/, " ", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!(actual_value ~ /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NMTOKEN token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NMTOKENS") { gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] ~ /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/)) { platformerrorhandler1_error(concat(content_msg,"'",tmp[1+ i],"': invalid NMTOKEN token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NUMBER") { gsub(/[ \t\n]+/, " ", actual_value) if (!(actual_value ~ /^[[:digit:]]+$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NUMBER token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NUMBERS") { gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] ~ /^[[:digit:]]+$/)) { platformerrorhandler1_error(concat(content_msg,"'",tmp[1+ i],"': invalid NUMBER token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NUTOKEN") { gsub(/[ \t\n]+/, " ", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!(actual_value ~ /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/) || !(substr(actual_value, 1, 1) ~ /[[:digit:]]/) || !(substr(actual_value, length(actual_value)) ~ /[[:alpha:]]/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NUTOKEN token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NUTOKENS") { gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] ~ /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/) || !(substr(tmp[1+ i], 1, 1) ~ /[[:digit:]]/) || !(substr(tmp[1+ i], length(tmp[1+ i])) ~ /[[:alpha:]]/)) { platformerrorhandler1_error(concat(content_msg,"'",tmp[1+ i],"': invalid NUTOKEN token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if ((declared_value ~ /^NOTATION/)) { sub(/^NOTATION/, "", declared_value) sub(/^[ \t\n]+/, "", actual_value) sub(/[ \t\n]+$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!((actual_value ~ declared_value))) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": '",actual_value,"': invalid notation name for attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "DATA") { ; if ((doctype, data_notation_name) in markupdefinitions1_notation_public_identifiers) data_notation_public_identifier = markupdefinitions1_notation_public_identifiers[doctype, data_notation_name] if (data_notation_public_identifier == "+//IDN www.w3c.org/TR/html5//NOTATION HTML Form Input Types//EN") { if (actual_value != "") { actual_value_before_normalization = actual_value actual_value = htmlforminputvaluechecker3_normalize_value(actual_value, data_data_attributes_map) if (!actual_value) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": '",actual_value_before_normalization,"': invalid value for declared data notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } ; } } else if (data_notation_public_identifier) { platformerrorhandler1_warning(concat(content_msg,"attribute ",attribute,": '",data_notation_public_identifier,"': unrecognized public identifier for notation used in data specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else { platformerrorhandler1_warning(concat(content_msg,"attribute ",attribute,": missing public identifier for notation used in data specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else { platformerrorhandler1_fatalError(concat("internal error: '",declared_value,"': unhandled declared attribute value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return actual_value } function attributechecker2_check_attribute_array(doctype, elementtype, notationname, attrarray, content_msg, i,a,found,attrs,debugtmp,default_semantics,default_value,declared_value,attr,n,effective_attribute_list,num_own_attributes,data_notation_name,data_data_attributes,num_data_data_attributes,data_data_attribute_map) { split("", attrs) declared_value = "" attr = "" effective_attribute_list = "" data_notation_name = "" split("", data_data_attributes) split("", data_data_attribute_map) ; if (!doctype) doctype = attributechecker2_declaration_set_name if (content_msg) content_msg = (content_msg ": ") if (notationname) { if ((doctype, notationname) in markupdefinitions1_data_attributes) n = split(markupdefinitions1_data_attributes[doctype, notationname], attrs, " ") num_own_attributes = n } else { if ((doctype, elementtype) in markupdefinitions1_element_attributes) effective_attribute_list = markupdefinitions1_element_attributes[doctype, elementtype] if ((doctype, "#ALL") in markupdefinitions1_element_attributes) { if (effective_attribute_list) { num_own_attributes = split(effective_attribute_list, attrs, " ") effective_attribute_list = concat(effective_attribute_list, " ", markupdefinitions1_element_attributes[doctype, "#ALL"]) } else { num_own_attributes = 0 effective_attribute_list = markupdefinitions1_element_attributes[doctype, "#ALL"] } n = split(effective_attribute_list, attrs, " ") } else { n = split(effective_attribute_list, attrs, " ") num_own_attributes = n } } for (i = 0; i < n; i++) { attr = attrs[1+ i] ; if (notationname) { if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_declared_values) declared_value = markupdefinitions1_data_attribute_declared_values[doctype, notationname, attr] else declared_value = "" ; if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_declared_data_notations) { data_notation_name = markupdefinitions1_data_attribute_declared_data_notations[doctype, notationname, attr] ; if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_data_attributes) { ; num_data_data_attributes = split(markupdefinitions1_data_attribute_data_attributes[doctype, notationname, attr], data_data_attributes, / /) ; while (num_data_data_attributes > 0) { data_data_attribute_map[data_data_attributes[1+ num_data_data_attributes - 1]] = markupdefinitions1_data_attribute_data_attribute_values[doctype, notationname, attr, data_data_attributes[1+ num_data_data_attributes - 1]] ; num_data_data_attributes-- } } } if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_default_semantics) default_semantics = markupdefinitions1_data_attribute_default_semantics[doctype, notationname, attr] else default_semantics = "" if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_default_values) default_value = markupdefinitions1_data_attribute_default_values[doctype, notationname, attr] else default_value = "" } else { if (i < num_own_attributes) { if ((doctype, elementtype, attr) in markupdefinitions1_attribute_declared_values) declared_value = markupdefinitions1_attribute_declared_values[doctype, elementtype, attr] else declared_value = "" ; if ((doctype, elementtype, attr) in markupdefinitions1_attribute_declared_data_notations) { data_notation_name = markupdefinitions1_attribute_declared_data_notations[doctype, elementtype, attr] ; if ((doctype, elementtype, attr) in markupdefinitions1_attribute_data_attributes) { num_data_data_attributes = split(markupdefinitions1_attribute_data_attributes[doctype, elementtype, attr], data_data_attributes, / /) ; while (num_data_data_attributes > 0) { data_data_attribute_map[data_data_attributes[1+ num_data_data_attributes - 1]] = markupdefinitions1_attribute_data_attribute_values[doctype, elementtype, attr, data_data_attributes[1+ num_data_data_attributes - 1]] ; num_data_data_attributes-- } } } if ((doctype, elementtype, attr) in markupdefinitions1_attribute_default_semantics) default_semantics = markupdefinitions1_attribute_default_semantics[doctype, elementtype, attr] else default_semantics = "" if ((doctype, elementtype, attr) in markupdefinitions1_attribute_default_values) default_value = markupdefinitions1_attribute_default_values[doctype, elementtype, attr] else default_value = "" } else { if ((doctype, "#ALL", attr) in markupdefinitions1_attribute_declared_values) declared_value = markupdefinitions1_attribute_declared_values[doctype, "#ALL", attr] else declared_value = "" if ((doctype, "#ALL", attr) in markupdefinitions1_attribute_default_semantics) default_semantics = markupdefinitions1_attribute_default_semantics[doctype, "#ALL", attr] else default_semantics = "" if ((doctype, "#ALL", attr) in markupdefinitions1_attribute_default_values) default_value = markupdefinitions1_attribute_default_values[doctype, "#ALL", attr] else default_value = "" } } ; if (attr in attrarray) { if (default_semantics) { if (default_semantics == "#FIXED") { if (sgmldecl1_syntax_namecase_general == "YES" && (declared_value == "NAME" || declared_value == "NAMES" || declared_value == "NMTOKEN" || declared_value == "NMTOKENS" || declared_value == "NUTOKEN" || declared_value == "NUTOKENS" || substr(declared_value, 1, 1) == "(" || (declared_value ~ /^NOTATION/))) attrarray[attr] = toupper(attrarray[attr]) if (attrarray[attr] != default_value) { platformerrorhandler1_fatalError(concat(content_msg,"attribute ",attr,": '",attrarray[attr],"': value other than '",default_value,"' for fixed attribute specified"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else continue } else if (notationname) attrarray[attr] = attributechecker2_check_attribute_value(doctype, attr, declared_value, attrarray[attr], content_msg, data_notation_name, data_data_attribute_map) else attrarray[attr] = attributechecker2_check_attribute_value(doctype, attr, declared_value, attrarray[attr], content_msg, data_notation_name, data_data_attribute_map) if (default_semantics == "#CURRENT") { ; docinfo2_attribute_current_values[doctype, attr] = attrarray[attr] } else if (default_semantics == "#CONREF") { ; docinfo2_content_reference = attrarray[attr] } } else { attrarray[attr] = attributechecker2_check_attribute_value(doctype, attr, declared_value, attrarray[attr], content_msg, data_notation_name, data_data_attribute_map) } } else { if (default_semantics) { if (default_semantics == "#REQUIRED") { platformerrorhandler1_fatalError(concat(content_msg, "attribute ",attr,": missing value for required attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (default_semantics == "#IMPLIED") continue else if (default_semantics == "#FIXED") { attrarray[attr] = default_value } else if (default_semantics == "#CURRENT") if (!((doctype, attr) in docinfo2_attribute_current_values)) { platformerrorhandler1_error(concat(content_msg,"missing value for initial current attribute '",attr,"'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else attrarray[attr] = docinfo2_attribute_current_values[doctype, attr] } else attrarray[attr] = default_value } ; } if (sgmldecl1_features_minimize_implydef_attlist == "NO" || notationname || doctype in markupdefinitions1_link_process_source_doctype_specs) for (a in attrarray) { found = 0 for (i in attrs) if (--i + 1) if (a == attrs[1+ i]) { found = 1 break } if (!found) if (notationname) { platformerrorhandler1_fatalError(concat("'",a,"': ",content_msg, "undeclared data attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (doctype in markupdefinitions1_link_process_source_doctype_specs) { platformerrorhandler1_fatalError(concat("'",a,"': ",content_msg, "undeclared link attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { platformerrorhandler1_fatalError(concat("'",a,"': ",content_msg, "undeclared attribute and IMPLYDEF ATTLIST NO specified"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } function attributechecker2_configure(args) { if ("disable_referential_attributes" in args && args["disable_referential_attributes"] == "YES") attributechecker2_disable_referential_attributes = args["disable_referential_attributes"] } BEGIN { dataentitytracker2_current_declaration_set_name = "" dataentitytracker2_base_declaration_set_name = "" dataentitytracker2_base_declaration_external_subset_identifier = "" split("", dataentitytracker2_notation_system_identifiers) split("", dataentitytracker2_notation_public_identifiers) split("", dataentitytracker2_data_entity_names_to_materialize) split("", dataentitytracker2_data_entity_system_identifiers) split("", dataentitytracker2_data_entity_public_identifiers) split("", dataentitytracker2_data_entity_notation_system_identifiers) split("", dataentitytracker2_data_entity_notation_public_identifiers) split("", dataentitytracker2_data_attributes) split("", dataentitytracker2_data_entity_declaration_set_names) } function dataentitytracker2_reset() { dataentitytracker2_current_declaration_set_name = "" dataentitytracker2_base_declaration_set_name = "" dataentitytracker2_base_declaration_external_subset_identifier = "" split("", dataentitytracker2_notation_system_identifiers) split("", dataentitytracker2_notation_public_identifiers) split("", dataentitytracker2_data_entity_names_to_materialize) split("", dataentitytracker2_data_entity_system_identifiers) split("", dataentitytracker2_data_entity_public_identifiers) split("", dataentitytracker2_data_entity_notation_system_identifiers) split("", dataentitytracker2_data_entity_notation_public_identifiers) split("", dataentitytracker2_data_attributes) split("", dataentitytracker2_data_entity_declaration_set_names) } function dataentitytracker2_comment(text) { } function dataentitytracker2_startDTD(name, publicid, systemid, xmltext) { dataentitytracker2_current_declaration_set_name = name if (dataentitytracker2_base_declaration_set_name == "") { dataentitytracker2_base_declaration_set_name = name dataentitytracker2_base_declaration_external_subset_identifier = systemid } } function dataentitytracker2_endDTD() { dataentitytracker2_current_declaration_set_name = "" } function dataentitytracker2_startCDATA(text) { } function dataentitytracker2_endCDATA() { } function dataentitytracker2_startRCDATA(text) { } function dataentitytracker2_endRCDATA() { } function dataentitytracker2_startINCLUDE(text) { } function dataentitytracker2_endINCLUDE() { } function dataentitytracker2_startIGNORE(text) { } function dataentitytracker2_endIGNORE() { } function dataentitytracker2_start_temp(text) { } function dataentitytracker2_end_temp() { } function dataentitytracker2_startEntity(name, elmt) { } function dataentitytracker2_endEntity(name) { } function dataentitytracker2_notationDecl(name, pubid, sysid) { if (sysid) dataentitytracker2_notation_system_identifiers[dataentitytracker2_current_declaration_set_name, name] = sysid if (pubid) dataentitytracker2_notation_public_identifiers[dataentitytracker2_current_declaration_set_name, name] = pubid } function dataentitytracker2_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) { if (dataentitytracker2_current_declaration_set_name != dataentitytracker2_base_declaration_set_name) { dataentitytracker2_data_entity_names_to_materialize[name] = "" dataentitytracker2_data_entity_system_identifiers[name] = sysid dataentitytracker2_data_entity_public_identifiers[name] = pubid dataentitytracker2_data_entity_notation_system_identifiers[name] = dataentitytracker2_notation_system_identifiers[dataentitytracker2_current_declaration_set_name, notation_name] dataentitytracker2_data_entity_notation_public_identifiers[name] = dataentitytracker2_notation_public_identifiers[dataentitytracker2_current_declaration_set_name, notation_name] if (data_attributes) { ; dataentitytracker2_data_attributes[name] = data_attributes } dataentitytracker2_data_entity_declaration_set_names[name] = dataentitytracker2_current_declaration_set_name } } BEGIN { split("", stack7_stack) stack7_len = 0 } function stack7_stacklength() { return stack7_len } function stack7_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack7_stacklength() for (i = 1; i <= n; i++) if (stack7_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack7_push(elmt) { ; stack7_stack[++stack7_len] = elmt } function stack7_top( l,r) { r = "" l = stack7_stacklength() if (l == 0) r = "" else r = stack7_stack[l] ; return r } function stack7_pop(n, l) { if (n == "") n = 1 l = stack7_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack7_len == 0) break delete stack7_stack[l] --stack7_len } ; } function stack7_popto(targetelmt, n) { for (n = stack7_stacklength(); n > 0 && stack7_stack[n] != targetelmt; n--) { delete stack7_stack[n] stack7_len-- } } function stack7_popall( n) { for (n = stack7_stacklength(); n > 0; n--) { delete stack7_stack[n] stack7_len-- } } function stack7_poptolevel(targetelmt, level, l,n) { n = stack7_stackindex(targetelmt, level) for (l = stack7_stacklength(); l > n; l--) { delete stack7_stack[l] stack7_len-- } } function stack7_peek(i) { return stack7_stack[i] } function stack7_clear() { split("", stack7_stack) stack7_len = 0 } BEGIN { split("", stack8_stack) stack8_len = 0 } function stack8_stacklength() { return stack8_len } function stack8_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack8_stacklength() for (i = 1; i <= n; i++) if (stack8_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack8_push(elmt) { ; stack8_stack[++stack8_len] = elmt } function stack8_top( l,r) { r = "" l = stack8_stacklength() if (l == 0) r = "" else r = stack8_stack[l] ; return r } function stack8_pop(n, l) { if (n == "") n = 1 l = stack8_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack8_len == 0) break delete stack8_stack[l] --stack8_len } ; } function stack8_popto(targetelmt, n) { for (n = stack8_stacklength(); n > 0 && stack8_stack[n] != targetelmt; n--) { delete stack8_stack[n] stack8_len-- } } function stack8_popall( n) { for (n = stack8_stacklength(); n > 0; n--) { delete stack8_stack[n] stack8_len-- } } function stack8_poptolevel(targetelmt, level, l,n) { n = stack8_stackindex(targetelmt, level) for (l = stack8_stacklength(); l > n; l--) { delete stack8_stack[l] stack8_len-- } } function stack8_peek(i) { return stack8_stack[i] } function stack8_clear() { split("", stack8_stack) stack8_len = 0 } BEGIN { split("", stack9_stack) stack9_len = 0 } function stack9_stacklength() { return stack9_len } function stack9_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack9_stacklength() for (i = 1; i <= n; i++) if (stack9_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack9_push(elmt) { ; stack9_stack[++stack9_len] = elmt } function stack9_top( l,r) { r = "" l = stack9_stacklength() if (l == 0) r = "" else r = stack9_stack[l] ; return r } function stack9_pop(n, l) { if (n == "") n = 1 l = stack9_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack9_len == 0) break delete stack9_stack[l] --stack9_len } ; } function stack9_popto(targetelmt, n) { for (n = stack9_stacklength(); n > 0 && stack9_stack[n] != targetelmt; n--) { delete stack9_stack[n] stack9_len-- } } function stack9_popall( n) { for (n = stack9_stacklength(); n > 0; n--) { delete stack9_stack[n] stack9_len-- } } function stack9_poptolevel(targetelmt, level, l,n) { n = stack9_stackindex(targetelmt, level) for (l = stack9_stacklength(); l > n; l--) { delete stack9_stack[l] stack9_len-- } } function stack9_peek(i) { return stack9_stack[i] } function stack9_clear() { split("", stack9_stack) stack9_len = 0 } BEGIN { split("", stack10_stack) stack10_len = 0 } function stack10_stacklength() { return stack10_len } function stack10_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack10_stacklength() for (i = 1; i <= n; i++) if (stack10_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack10_push(elmt) { ; stack10_stack[++stack10_len] = elmt } function stack10_top( l,r) { r = "" l = stack10_stacklength() if (l == 0) r = "" else r = stack10_stack[l] ; return r } function stack10_pop(n, l) { if (n == "") n = 1 l = stack10_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack10_len == 0) break delete stack10_stack[l] --stack10_len } ; } function stack10_popto(targetelmt, n) { for (n = stack10_stacklength(); n > 0 && stack10_stack[n] != targetelmt; n--) { delete stack10_stack[n] stack10_len-- } } function stack10_popall( n) { for (n = stack10_stacklength(); n > 0; n--) { delete stack10_stack[n] stack10_len-- } } function stack10_poptolevel(targetelmt, level, l,n) { n = stack10_stackindex(targetelmt, level) for (l = stack10_stacklength(); l > n; l--) { delete stack10_stack[l] stack10_len-- } } function stack10_peek(i) { return stack10_stack[i] } function stack10_clear() { split("", stack10_stack) stack10_len = 0 } BEGIN { split("", stack11_stack) stack11_len = 0 } function stack11_stacklength() { return stack11_len } function stack11_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack11_stacklength() for (i = 1; i <= n; i++) if (stack11_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack11_push(elmt) { ; stack11_stack[++stack11_len] = elmt } function stack11_top( l,r) { r = "" l = stack11_stacklength() if (l == 0) r = "" else r = stack11_stack[l] ; return r } function stack11_pop(n, l) { if (n == "") n = 1 l = stack11_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack11_len == 0) break delete stack11_stack[l] --stack11_len } ; } function stack11_popto(targetelmt, n) { for (n = stack11_stacklength(); n > 0 && stack11_stack[n] != targetelmt; n--) { delete stack11_stack[n] stack11_len-- } } function stack11_popall( n) { for (n = stack11_stacklength(); n > 0; n--) { delete stack11_stack[n] stack11_len-- } } function stack11_poptolevel(targetelmt, level, l,n) { n = stack11_stackindex(targetelmt, level) for (l = stack11_stacklength(); l > n; l--) { delete stack11_stack[l] stack11_len-- } } function stack11_peek(i) { return stack11_stack[i] } function stack11_clear() { split("", stack11_stack) stack11_len = 0 } BEGIN { validator2_doctype = "" validator2_document_element_name = "" validator2_is_governed_by_content_reference = "" validator2_debug_emit_ctx_token = "" validator2_error_context_info_enabled = "" validator2_advanced_error_context_info_i = 0 split("", validator2_advanced_error_context_info_msg_components) } function validator2_reset() { stack19_clear() validator2_doctype = "" validator2_document_element_name = "" } function validator2_set_document_type_name(name) { ; if (validator2_doctype) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: attempting to set document type name when instance parsing already in progress", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator2_doctype = name } function validator2_set_document_element_name(name) { ; if (validator2_document_element_name) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: attempting to set document element name when instance parsing already in progress", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator2_document_element_name = name } function validator2_set_debug_emit_ctx_token(s) { validator2_debug_emit_ctx_token = s } function validator2_enable_error_context_info(s) { validator2_error_context_info_enabled = s } function validator2_dispatch_start_element(elmt, attrs_array, attrs) { if (validator2_debug_emit_ctx_token != "") console_info(concat("")) suppressdocumentelementfilter1_startElement(elmt, attrs_array, attrs) docinfo2_current_shortref_map = "" } function validator2_dispatch_end_element(elmt) { if (validator2_debug_emit_ctx_token != "") console_info(concat("")) suppressdocumentelementfilter1_endElement(elmt) docinfo2_current_shortref_map = "" } function validator2_check_and_dispatch_start_element(elmt, attrs_array, attrs, content_msg) { if (validator2_doctype != "") attributechecker2_check_attribute_array(validator2_doctype, elmt, "", attrs_array, content_msg) validator2_dispatch_start_element(elmt, attrs_array, attrs) } function validator2_try_accept_not_excluded_token(element, i,tmp) { ; docinfo2_exclusion_exceptions = "" for (i = 1; i <= stack10_len; i++) if ((validator2_doctype, stack10_stack[i]) in markupdefinitions1_element_exclusions) { tmp = markupdefinitions1_element_exclusions[validator2_doctype, stack10_stack[i]] ; if (docinfo2_exclusion_exceptions != "") docinfo2_exclusion_exceptions = (docinfo2_exclusion_exceptions " ") docinfo2_exclusion_exceptions = (docinfo2_exclusion_exceptions tmp) if (index(" " tmp " ", " " element " ")) return "" } return " " } function validator2_populate_docinfo_exclusion_exceptions( i,tmp) { ; docinfo2_exclusion_exceptions = "" for (i = 1; i <= stack10_len; i++) if ((validator2_doctype, stack10_stack[i]) in markupdefinitions1_element_exclusions) { tmp = markupdefinitions1_element_exclusions[validator2_doctype, stack10_stack[i]] if (docinfo2_exclusion_exceptions != "") docinfo2_exclusion_exceptions = (docinfo2_exclusion_exceptions " ") docinfo2_exclusion_exceptions = (docinfo2_exclusion_exceptions tmp) } } function validator2_try_accept_included_token(element, i,tmp) { if (!validator2_try_accept_not_excluded_token(element)) return "" for (i = 1; i <= stack10_len; i++) { if ((validator2_doctype, stack10_stack[i]) in markupdefinitions1_element_inclusions) { tmp = markupdefinitions1_element_inclusions[validator2_doctype, stack10_stack[i]] if (index(" " tmp " ", " " element " ")) { ; return " " } } } return "" } function validator2_try_accept_token(state, content_token, pos,i,tmp) { ; pos = markupdefinitions1_get_marked_symbol(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], state, content_token) ; if (pos) { if (content_token == "#PCDATA") return pos if ((index(markupdefinitions1_get_all_marked_symbols(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], state), " ") == 0)) { validator2_populate_docinfo_exclusion_exceptions() return pos } for (i = 1; i <= stack10_len; i++) { if ((validator2_doctype, stack10_stack[i]) in markupdefinitions1_element_exclusions) { tmp = markupdefinitions1_element_exclusions[validator2_doctype, stack10_stack[i]] ; if (index(" " tmp " ", " " content_token " ")) { validator2_populate_docinfo_exclusion_exceptions() return "" } } } validator2_populate_docinfo_exclusion_exceptions() return pos } else return validator2_try_accept_included_token(content_token) } function validator2_check_acceptance(content_token) { ; if ((validator2_doctype, stack10_stack[stack10_len]) in markupdefinitions1_element_declarations) if (markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]] == "CDATA") if (content_token == "#PCDATA") return " "; else return ""; else if (markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]] == "RCDATA") if (content_token == "#PCDATA") return " "; else return ""; else if (markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]] == "EMPTY") return ""; if ((!((validator2_doctype, stack10_stack[stack10_len]) in markupdefinitions1_element_declarations) && sgmldecl1_features_minimize_implydef_element == "YES") || markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]] == "ANY") { ; if (content_token != "#PCDATA" && !validator2_try_accept_not_excluded_token(content_token)) return "" else return "-" } if (stack10_len == stack19_len) return validator2_try_accept_token(stack19_stack[stack19_len], content_token) else return validator2_try_accept_token("", content_token) } function validator2_open_contextually_required_element(element, modelgroup, state, context_msg, content_msg, allow_optional, suppress_error, empty_array,symbol,pos) { split("", empty_array) symbol = "" pos = "" if (!state && markupdefinitions1_is_optional(validator2_doctype, element, markupdefinitions1_element_modelgroups[validator2_doctype, element])) { ; return "" } if ((index(markupdefinitions1_get_all_marked_symbols(validator2_doctype, element, markupdefinitions1_element_modelgroups[validator2_doctype, element], state), " ") == 0)) { ; if (!allow_optional) if (markupdefinitions1_is_terminal(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], state)) return "" symbol = markupdefinitions1_state_symbol(markupdefinitions1_get_all_marked_symbols(validator2_doctype, element, markupdefinitions1_element_modelgroups[validator2_doctype, element], state)) ; if (sgmldecl1_features_minimize_omittag != "YES") if (!suppress_error) { { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",element,"': tag omission not allowed at '",context_msg ,"'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else return "" if (!((validator2_doctype, symbol) in markupdefinitions1_element_start_tag_omittable)) if (!suppress_error) { if (symbol == "#PCDATA") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat(content_msg," not accepted here and element '",symbol,"' not omittable (1)"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else return "" if ((validator2_doctype, symbol) in markupdefinitions1_element_declarations && substr(markupdefinitions1_element_declarations[validator2_doctype, symbol], 1, 1) != "(" && markupdefinitions1_element_declarations[validator2_doctype, symbol] != "ANY") if (!suppress_error) { { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat(content_msg," not accepted here and can't omit start-tag for element '",symbol,"' with declared content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } pos = markupdefinitions1_get_marked_symbol(validator2_doctype, element, markupdefinitions1_element_modelgroups[validator2_doctype, element], state, symbol) if (state) stack19_pop() stack19_push(pos) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1) stack19_push(""); }; stack10_push(symbol); if (validator2_error_context_info_enabled) stack11_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": inferred")); } validator2_check_and_dispatch_start_element(symbol, empty_array, "", ("implied element " symbol)) return symbol } return "" } function validator2_open_contextually_implied_element(content_token, rank_suffix,parent_rank_suffix,symbol,symbols,symbols_arr,empty_array,i,pos) { rank_suffix = "" parent_rank_suffix = "" symbol = "" symbols = "" split("", symbols_arr) split("", empty_array) pos = "" if (!((validator2_doctype, content_token) in markupdefinitions1_element_rank_groups)) return "" if (!match(stack10_stack[stack10_len], /[0-9]+$/)) { parent_rank_suffix = 0 } else parent_rank_suffix = substr(stack10_stack[stack10_len], RSTART, RLENGTH) if (match(content_token, /[0-9]+$/)) { rank_suffix = substr(content_token, RSTART, RLENGTH) if (0 + rank_suffix > 0 + parent_rank_suffix) { ; symbols = markupdefinitions1_states_symbols(markupdefinitions1_get_all_marked_symbols(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], stack19_stack[stack19_len])) split(symbols, symbols_arr, / /) for (i in symbols_arr) if (match(symbols_arr[i], /[0-9]+$/)) { if (!((validator2_doctype, symbols_arr[i]) in markupdefinitions1_element_rank_groups)) continue if (symbol != "") { symbol = "" break } symbol = symbols_arr[i] ; if (substr(symbols_arr[i], RSTART, RLENGTH) != rank_suffix) symbol = "" } } } ; if (symbol) { pos = markupdefinitions1_get_marked_symbol(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], stack19_stack[stack19_len], symbol) if (!pos) { { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: failed to promote to state implied via rank suffix", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } stack19_pop() stack19_push(pos) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1) stack19_push(""); }; stack10_push(symbol); if (validator2_error_context_info_enabled) stack11_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": inferred")); } validator2_check_and_dispatch_start_element(symbol, empty_array, "", ("implied element " symbol)) return symbol } return "" } function validator2_open_contextually_implied_element_below_document_element(content_token, symbol,pos,empty_array) { symbol = "" pos = "" split("", empty_array) ; if (content_token == "#PCDATA") return "" if (sgmldecl1_features_minimize_omittag != "YES") return "" ; if (stack10_len != 1) return "" ; if (stack10_len != stack19_len) return "" ; if ((content_token ~ /[0-9]$/) || (validator2_doctype, content_token) in markupdefinitions1_element_rank_groups) return "" symbol = markupdefinitions1_states_symbols(markupdefinitions1_get_all_marked_symbols(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], stack19_stack[stack19_len])) if (!symbol || !(index(symbol, " ") == 0)) return "" ; if (!((validator2_doctype, symbol) in markupdefinitions1_element_end_tag_omittable)) return "" ; pos = markupdefinitions1_get_marked_symbol(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], stack19_stack[stack19_len], symbol) if (!pos) { { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: failed to promote to state implied at document element", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; stack19_pop() stack19_push(pos) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1) stack19_push(""); }; stack10_push(symbol); if (validator2_error_context_info_enabled) stack11_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": inferred")); } validator2_check_and_dispatch_start_element(symbol, empty_array, "", ("implied element " symbol)) return symbol } function validator2_close_definitely_completed_elements(content_token, context_msg) { ; ; if (sgmldecl1_features_other_validity != "TYPE" && sgmldecl1_features_minimize_implydef_element == "YES") return if (stack10_len == stack19_len + 1) if (stack10_stack[stack10_len] && (validator2_doctype, stack10_stack[stack10_len]) in markupdefinitions1_element_declarations && ( ( sgmldecl1_features_minimize_emptynrm == "YES" && (markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]] == "EMPTY" || validator2_is_governed_by_content_reference != "") ) || ( validator2_is_governed_by_content_reference == "" && substr(markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]], 1, 1) == "(" && content_token != "#PCDATA" && markupdefinitions1_is_pcdata_only_state(markupdefinitions1_get_all_marked_symbols(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], "")) && markupdefinitions1_is_terminal(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], markupdefinitions1_get_all_marked_symbols(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], "")) && (!validator2_try_accept_included_token(content_token))) ) ) { ; if (sgmldecl1_features_minimize_omittag != "YES") if (content_token == "#PCDATA") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': character data not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",stack10_stack[stack10_len],"': '",context_msg ,"' not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((validator2_doctype, stack10_stack[stack10_len]) in markupdefinitions1_element_end_tag_omittable)) if (content_token == "#PCDATA") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': character data not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",stack10_stack[stack10_len],"': '",context_msg ,"' not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator2_is_governed_by_content_reference = "" validator2_dispatch_end_element(stack10_stack[stack10_len]) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1 && !stack19_stack[stack19_len]) stack19_pop(); }; docinfo2_most_recently_ended_element = stack10_stack[stack10_len]; stack10_pop(); if (validator2_error_context_info_enabled) stack11_pop(); } } else if (stack10_stack[stack10_len] && (validator2_doctype, stack10_stack[stack10_len]) in markupdefinitions1_element_declarations && (markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]] == "EMPTY" || validator2_is_governed_by_content_reference != "") && sgmldecl1_features_minimize_emptynrm == "NO") { ; validator2_is_governed_by_content_reference = "" validator2_dispatch_end_element(stack10_stack[stack10_len]) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1 && !stack19_stack[stack19_len]) stack19_pop(); }; docinfo2_most_recently_ended_element = stack10_stack[stack10_len]; stack10_pop(); if (validator2_error_context_info_enabled) stack11_pop(); } } if (stack10_len == stack19_len) { ; ; if (stack19_stack[stack19_len]) { ; ; ; } while (stack10_stack[stack10_len] && (validator2_doctype, stack10_stack[stack10_len]) in markupdefinitions1_element_declarations && substr(markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]], 1, 1) == "(" && ((!markupdefinitions1_get_all_marked_symbols(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], stack19_stack[stack19_len]) && !(content_token != "#PCDATA" && validator2_try_accept_included_token(content_token))) || (content_token != "#PCDATA" && (markupdefinitions1_is_pcdata_only_state(markupdefinitions1_get_all_marked_symbols(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], stack19_stack[stack19_len])) && markupdefinitions1_is_terminal(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], markupdefinitions1_get_all_marked_symbols(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], stack19_stack[stack19_len])) && markupdefinitions1_get_all_marked_symbols(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], markupdefinitions1_get_marked_symbol(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], stack19_stack[stack19_len], "#PCDATA")) == markupdefinitions1_get_all_marked_symbols(validator2_doctype, stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], stack19_stack[stack19_len]))))) { if (sgmldecl1_features_minimize_omittag != "YES") if (content_token == "#PCDATA") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': character data not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",stack10_stack[stack10_len],"': '",context_msg,"' not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((validator2_doctype, stack10_stack[stack10_len]) in markupdefinitions1_element_end_tag_omittable)) if (content_token == "#PCDATA") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': character data not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",stack10_stack[stack10_len],"': '",context_msg,"' not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; validator2_dispatch_end_element(stack10_stack[stack10_len]) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1 && !stack19_stack[stack19_len]) stack19_pop(); }; docinfo2_most_recently_ended_element = stack10_stack[stack10_len]; stack10_pop(); if (validator2_error_context_info_enabled) stack11_pop(); } stack19_pop() } if (!stack10_stack[stack10_len]) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': extraneous character data after content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } function validator2_close_potentially_completed_element( e) { e = stack10_stack[stack10_len] ; if (sgmldecl1_features_other_validity != "TYPE") return e if (stack10_len == stack19_len) { if (((validator2_doctype, e) in markupdefinitions1_element_declarations && substr(markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]], 1, 1) == "(" && !markupdefinitions1_is_terminal(validator2_doctype, e, markupdefinitions1_element_modelgroups[validator2_doctype, e], stack19_stack[stack19_len]))) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",e,"': unexpected end of content model"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } stack19_pop() return e } else { if (validator2_is_governed_by_content_reference != "") return e if ((validator2_doctype, e) in markupdefinitions1_element_declarations) if (substr(markupdefinitions1_element_declarations[validator2_doctype, e], 1, 1) == "(") { if (!markupdefinitions1_is_optional(validator2_doctype, e, markupdefinitions1_element_modelgroups[validator2_doctype, e])) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",e,"': element '",stack10_stack[stack10_len] ,"' requires content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; } ; return e } } function validator2_attempt_to_close_potentially_completed_element( e) { e = stack10_stack[stack10_len] ; if (sgmldecl1_features_other_validity != "TYPE") return e if (stack10_len == stack19_len) { if (((validator2_doctype, e) in markupdefinitions1_element_declarations && substr(markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]], 1, 1) == "(" && !markupdefinitions1_is_terminal(validator2_doctype, e, markupdefinitions1_element_modelgroups[validator2_doctype, e], stack19_stack[stack19_len]))) return "" stack19_pop() return e } else { if (validator2_is_governed_by_content_reference != "") return e if ((validator2_doctype, e) in markupdefinitions1_element_declarations) if (substr(markupdefinitions1_element_declarations[validator2_doctype, e], 1, 1) == "(") { if (!markupdefinitions1_is_optional(validator2_doctype, e, markupdefinitions1_element_modelgroups[validator2_doctype, e])) return "" ; } ; return e } } function validator2_on_content_token(content_token, context_msg, content_msg, trans,pos,follower_states,empty_array,symbol,e) { split("", empty_array) symbol = "" e = "" ; ; ; if (!stack10_len) { ; if (!validator2_doctype) return if (!validator2_document_element_name) validator2_document_element_name = validator2_doctype if (content_token == validator2_document_element_name) return if (sgmldecl1_features_minimize_implydef_element != "YES") { if (sgmldecl1_features_minimize_omittag != "YES" || (!((validator2_doctype, validator2_document_element_name) in markupdefinitions1_element_start_tag_omittable)) || (substr(markupdefinitions1_element_declarations[validator2_doctype, validator2_document_element_name], 1, 1) != "(" && markupdefinitions1_element_declarations[validator2_doctype, validator2_document_element_name] != "ANY")) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': may not omit start-tag of root element"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1) stack19_push(""); }; stack10_push(validator2_document_element_name); if (validator2_error_context_info_enabled) stack11_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": inferred")); } validator2_check_and_dispatch_start_element(validator2_document_element_name, empty_array, "", ("implied element " validator2_document_element_name)) } else { validator2_close_definitely_completed_elements(content_token, context_msg) } ; ; while (stack10_len > 1 && (!((validator2_doctype, stack10_stack[stack10_len]) in markupdefinitions1_element_declarations && sgmldecl1_features_minimize_implydef_element == "YES") || (validator2_doctype, stack10_stack[stack10_len]) in markupdefinitions1_element_end_tag_omittable)) { ; if (content_token != "#PCDATA" && !validator2_try_accept_not_excluded_token(content_token)) { ; e = validator2_attempt_to_close_potentially_completed_element() if (e) { validator2_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1 && !stack19_stack[stack19_len]) stack19_pop(); }; docinfo2_most_recently_ended_element = stack10_stack[stack10_len]; stack10_pop(); if (validator2_error_context_info_enabled) stack11_pop(); } ; } else { { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } else break } if (sgmldecl1_features_other_validity == "TYPE") { if (stack10_len == stack19_len) { ; if ((!((validator2_doctype, stack10_stack[stack10_len]) in markupdefinitions1_element_declarations)) || markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]] == "ANY") if (content_token != "#PCDATA" && !validator2_try_accept_not_excluded_token(content_token)) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else return pos = validator2_try_accept_token(stack19_stack[stack19_len], content_token) ; { ; } if (pos) { if (pos != " ") { stack19_pop() stack19_push(pos) return } else return "markdown:included=\"true\"" } else { ; if (!validator2_open_contextually_required_element(stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], stack19_stack[stack19_len], context_msg, content_msg, "", "true")) { ; if (!validator2_open_contextually_implied_element(content_token) && !validator2_open_contextually_implied_element_below_document_element(content_token)) { if (stack10_len <= 1) { { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } e = validator2_close_potentially_completed_element() if (!e) { { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } validator2_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1 && !stack19_stack[stack19_len]) stack19_pop(); }; docinfo2_most_recently_ended_element = stack10_stack[stack10_len]; stack10_pop(); if (validator2_error_context_info_enabled) stack11_pop(); } ; return validator2_on_content_token(content_token, context_msg, content_msg) } } } } ; if (stack10_len == stack19_len + 1) { ; { ; } if (!((validator2_doctype, stack10_stack[stack10_len]) in markupdefinitions1_element_declarations)) { ; if (content_token != "#PCDATA" && !validator2_try_accept_not_excluded_token(content_token)) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg ," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } else if (markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]] == "ANY") { ; if (content_token != "#PCDATA" && !validator2_try_accept_not_excluded_token(content_token)) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } else if (markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]] == "CDATA" || markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]] == "RCDATA") { if (content_token != "#PCDATA") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': unexpected ",content_msg," in declared content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } else if (substr(markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]], 1, 1) != "(") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': unexpected ",content_msg," in non-element content model"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } pos = validator2_try_accept_token("", content_token) ; { ; } if (pos) { if (pos != " ") { stack19_push(pos) return } else return "markdown:included=\"true\"" } } else { ; while (stack10_len > 0) { ; stack10_pop() } while (stack19_len > 0) { ; stack19_pop() } { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: modelgroup states out of sync with elements", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } else return ; if (sgmldecl1_features_minimize_omittag != "YES") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': unexpected ",content_msg), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } for (;;) { symbol = validator2_open_contextually_required_element(stack10_stack[stack10_len], markupdefinitions1_element_modelgroups[validator2_doctype, stack10_stack[stack10_len]], "", "", content_msg, "", "") ; { ; } if (!symbol) break if ((!((validator2_doctype, symbol) in markupdefinitions1_element_declarations)) || markupdefinitions1_element_declarations[validator2_doctype, stack10_stack[stack10_len]] == "ANY") if (content_token != "#PCDATA" && !validator2_try_accept_not_excluded_token(content_token)) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else return if (substr(markupdefinitions1_element_modelgroups[validator2_doctype, symbol], 1, 1) != "(") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } pos = validator2_try_accept_token("", content_token) if (pos) { ; if (pos != " ") { stack19_push(pos) return } else return "markdown:included=\"true\"" } } { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } function validator2_startElement(xmlelement, attrarray, attrs, r) { validator2_is_governed_by_content_reference = docinfo2_content_reference ; if (validator2_doctype != "") { if ((!((validator2_doctype, xmlelement) in markupdefinitions1_element_declarations)) && sgmldecl1_features_minimize_implydef_element_anyother == "YES" && stack10_len != 0 && stack10_stack[stack10_len] == xmlelement) { validator2_dispatch_end_element(xmlelement) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1 && !stack19_stack[stack19_len]) stack19_pop(); }; docinfo2_most_recently_ended_element = stack10_stack[stack10_len]; stack10_pop(); if (validator2_error_context_info_enabled) stack11_pop(); } } else if ((!((validator2_doctype, xmlelement) in markupdefinitions1_element_declarations)) && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",xmlelement,"': undeclared element type and IMPLYDEF ELEMENT NO specified"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (sgmldecl1_features_minimize_implydef_doctype != "YES" && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("No document type declaration and IMPLYDEF DOCTYPE NO specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } r = validator2_on_content_token(xmlelement, xmlelement, concat("element '",xmlelement,"'")) { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1) stack19_push(""); } return r } function validator2_characters(xmltext) { ; validator2_is_governed_by_content_reference = docinfo2_content_reference if (validator2_doctype == "") { if (sgmldecl1_features_minimize_implydef_doctype != "YES" && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("No document type declaration and IMPLYDEF DOCTYPE NO specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } validator2_on_content_token("#PCDATA", substr(xmltext, 1, 8), "character data") } function validator2_processingInstruction(name, text) { return } function validator2_endElement(xmlelement, e,m) { ; ; validator2_is_governed_by_content_reference = docinfo2_content_reference do { if (stack10_len == 0) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",xmlelement,"': attempting to close an element that isn't open"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_features_minimize_implydef_element_anyother == "YES" && stack10_len != 0 && !((validator2_doctype, stack10_stack[stack10_len]) in markupdefinitions1_element_declarations)) { e = stack10_stack[stack10_len] ; } else e = validator2_close_potentially_completed_element() ; if (e != xmlelement) { ; if (sgmldecl1_features_minimize_emptynrm == "NO" && validator2_is_governed_by_content_reference != "") { ; } else if (sgmldecl1_features_minimize_implydef_element_anyother == "YES" && !((validator2_doctype, e) in markupdefinitions1_element_declarations)) { ; } else if ((sgmldecl1_features_minimize_omittag == "NO" || !((validator2_doctype, e) in markupdefinitions1_element_end_tag_omittable)) && ! ((validator2_doctype, e) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[validator2_doctype, e] == "EMPTY" && sgmldecl1_features_minimize_emptynrm == "NO")) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("end-element tag for element ",xmlelement,": end-element tag omission not permitted for element ",e), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator2_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1 && !stack19_stack[stack19_len]) stack19_pop(); }; docinfo2_most_recently_ended_element = stack10_stack[stack10_len]; stack10_pop(); if (validator2_error_context_info_enabled) stack11_pop(); } } else if (sgmldecl1_features_minimize_emptynrm == "NO" && (validator2_doctype, e) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[validator2_doctype, e] == "EMPTY") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",e,"': element with declared content EMPTY must not have end-tag"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (sgmldecl1_features_minimize_emptynrm == "NO" && validator2_is_governed_by_content_reference != "") { ; validator2_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1 && !stack19_stack[stack19_len]) stack19_pop(); }; docinfo2_most_recently_ended_element = stack10_stack[stack10_len]; stack10_pop(); if (validator2_error_context_info_enabled) stack11_pop(); } e = "" } validator2_is_governed_by_content_reference = "" } while (e != xmlelement) { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1 && !stack19_stack[stack19_len]) stack19_pop(); } } function validator2_startDocument() { ; if (sgmldecl1_features_other_validity == "TAG-TYPE") { if (sgmldecl1_features_minimize_omittag == "YES") { platformerrorhandler1_warning("MINIMIZE OMITTAG YES and VALIDITY TAG-TYPE features specified in SGML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (sgmldecl1_features_minimize_implydef_element == "YES") { platformerrorhandler1_warning("IMPLYDEF ELEMENT YES and VALIDITY TAG-TYPE features specified in SGML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } sgmldecl1_features_other_validity = "TYPE" } else if (sgmldecl1_features_other_validity == "TAG") { if (sgmldecl1_features_minimize_omittag == "YES") { platformerrorhandler1_warning("MINIMIZE OMITTAG YES and VALIDITY TAG features specified in SGML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } sgmldecl1_features_other_validity = "NOASSERT" } } function validator2_endDocument( e) { validator2_is_governed_by_content_reference = docinfo2_content_reference if (validator2_doctype == "") { if (sgmldecl1_features_minimize_implydef_doctype != "YES" && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("No document type declaration and IMPLYDEF DOCTYPE NO specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } { while (stack10_len) { e = validator2_close_potentially_completed_element() if (!((validator2_doctype, e) in markupdefinitions1_element_end_tag_omittable) && ! ((validator2_doctype, e) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[validator2_doctype, e] == "EMPTY" && sgmldecl1_features_minimize_emptynrm == "NO")) { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("unterminated instance - end-tag omission not allowed for element '",e,"'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; validator2_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack10_len == stack19_len + 1 && !stack19_stack[stack19_len]) stack19_pop(); }; docinfo2_most_recently_ended_element = stack10_stack[stack10_len]; stack10_pop(); if (validator2_error_context_info_enabled) stack11_pop(); } } } } function validator2_startDTD(name, publicid, systemid, xmltext) { if (name == "#IMPLIED") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: received #IMPLIED doctype", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (validator2_doctype == "") validator2_doctype = name } function validator2_endDTD() { } function validator2_startEntity(name) { if (validator2_doctype == "") { if (sgmldecl1_features_minimize_implydef_doctype != "YES" && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator2_error_context_info_enabled) { for (validator2_advanced_error_context_info_i = 1; validator2_advanced_error_context_info_i <= stack10_len; validator2_advanced_error_context_info_i++) { split(stack11_stack[validator2_advanced_error_context_info_i], validator2_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack10_stack[validator2_advanced_error_context_info_i], ": ", validator2_advanced_error_context_info_msg_components[1+ 2]), validator2_advanced_error_context_info_msg_components[1+ 0], "", validator2_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("No document type declaration and IMPLYDEF DOCTYPE NO specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } validator2_on_content_token("#PCDATA", name, "data entity") } function validator2_endEntity(name) { } function validator2_startCDATA(text) { } function validator2_endCDATA() { } function validator2_startRCDATA(text) { } function validator2_endRCDATA() {} function validator2_startINCLUDE(text) { } function validator2_endINCLUDE() { } function validator2_startIGNORE(text) { } function validator2_endIGNORE() { } function validator2_comment(text) { } BEGIN { attributechecker3_disable_referential_attributes = "" attributechecker3_declaration_set_name = "" } function attributechecker3_set_declaration_set_name(name) { if (!attributechecker3_declaration_set_name) attributechecker3_declaration_set_name = name } function attributechecker3_debug_ids(msg, i,s) { s = "" for (i in docinfo3_backward_ids) s = concat(s, (s? " ":""), i) msg = concat(msg,": this.docinfo.backward_ids=",s) s = "" for (i in docinfo3_forward_idrefs) s = concat(s, (s? " ":""), i) msg = concat(msg,", this.docinfo.forward_idrefs=",s) return ("check_attribute_value: " msg) } function attributechecker3_check_attribute_value(doctype, attribute, declared_value, actual_value, content_msg, data_notation_name, data_data_attributes_map, i,tmp,data_notation_public_identifier,actual_value_before_normalization) { split("", tmp) data_notation_public_identifier = "" actual_value_before_normalization = "" ; if (substr(declared_value, 1, 1) == "(") { sub(/^[ \t\n]+/, "", actual_value) sub(/[ \t\n]+$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!((actual_value ~ declared_value))) { { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": '",actual_value,"': invalid value for attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } } else if (declared_value == "CDATA") return actual_value else if (declared_value == "ENTITY") { if (attributechecker3_disable_referential_attributes) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } gsub(/[ \t\n]+/, "", actual_value) if (sgmldecl1_syntax_namecase_entity == "YES") actual_value = toupper(actual_value) if (!(actual_value in entitydefinitions1_entity_replacement_text) && !(actual_value in entitydefinitions1_entity_replacement_file) && !(actual_value in entitydefinitions1_system_specific_general_entities)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': reference to undeclared entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "ENTITIES") { if (attributechecker3_disable_referential_attributes) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } gsub(/[ \t\n]+/, " ", actual_value) sub(/^ +/, "", actual_value) sub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_entity == "YES") actual_value = toupper(actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] in entitydefinitions1_entity_replacement_text) && !(tmp[1+ i] in entitydefinitions1_entity_replacement_file)) { platformerrorhandler1_error(concat(content_msg,"'",tmp[1+ i],"': reference to undeclared entity"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "ID") { if (attributechecker3_disable_referential_attributes) { if (systemspecificentityresolver1_system_specific_entity_path && substr(locator1_get_system_id(), 1, length(systemspecificentityresolver1_system_specific_entity_path)) == systemspecificentityresolver1_system_specific_entity_path) locator1_set_system_id("") { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } gsub(/[ \t\n]+/, "", actual_value) if (!(actual_value ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid ID token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (actual_value in docinfo3_backward_ids) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': duplicate ID value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else docinfo3_backward_ids[actual_value] = "" if (actual_value in docinfo3_forward_idrefs) delete docinfo3_forward_idrefs[actual_value] ; } else if (declared_value == "IDREF") { if (attributechecker3_disable_referential_attributes) { if (systemspecificentityresolver1_system_specific_entity_path && substr(locator1_get_system_id(), 1, length(systemspecificentityresolver1_system_specific_entity_path)) == systemspecificentityresolver1_system_specific_entity_path) locator1_set_system_id("") { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } gsub(/[ \t\n]+/, "", actual_value) if (!(actual_value ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_warning(concat(content_msg,"'",actual_value,"': invalid ID token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!(actual_value in docinfo3_backward_ids)) docinfo3_forward_idrefs[actual_value] = "" ; } else if (declared_value == "IDREFS") { if (attributechecker3_disable_referential_attributes) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": disallowed use of referential attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) { if (!(tmp[1+ i] ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_warning(concat(content_msg,"'",tmp[1+ i],"': invalid ID token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (!(tmp[1+ i] in docinfo3_backward_ids)) docinfo3_forward_idrefs[tmp[1+ i]] = "" } ; } else if (declared_value == "NAME") { gsub(/[ \t\n]+/, " ", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!(actual_value ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NAME token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NAMES") { gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (actual_value == "") { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NAME token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] ~ /^(([^\1-\71\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))(([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277]))))*$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NAME token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NMTOKEN") { gsub(/[ \t\n]+/, " ", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!(actual_value ~ /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NMTOKEN token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NMTOKENS") { gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] ~ /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/)) { platformerrorhandler1_error(concat(content_msg,"'",tmp[1+ i],"': invalid NMTOKEN token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NUMBER") { gsub(/[ \t\n]+/, " ", actual_value) if (!(actual_value ~ /^[[:digit:]]+$/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NUMBER token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NUMBERS") { gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] ~ /^[[:digit:]]+$/)) { platformerrorhandler1_error(concat(content_msg,"'",tmp[1+ i],"': invalid NUMBER token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NUTOKEN") { gsub(/[ \t\n]+/, " ", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!(actual_value ~ /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/) || !(substr(actual_value, 1, 1) ~ /[[:digit:]]/) || !(substr(actual_value, length(actual_value)) ~ /[[:alpha:]]/)) { platformerrorhandler1_error(concat(content_msg,"'",actual_value,"': invalid NUTOKEN token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "NUTOKENS") { gsub(/[ \t\n]+/, " ", actual_value) gsub(/^ +/, "", actual_value) gsub(/ +$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) split(actual_value, tmp, " ") for (i in tmp) if (--i + 1) if (!(tmp[1+ i] ~ /^([^\1-\54\57\73-\100\133-\136\140\173-\177]|(([\302-\337][\200-\277])|(\340[\240-\277][\200-\277])|([\341-\354\356\357][\200-\277][\200-\277])|(\355[\200-\237][\200-\277])|(\360[\220-\277][\200-\277][\200-\277])|([\361-\363][\200-\277][\200-\277][\200-\277])|(\364[\200-\217][\200-\277][\200-\277])))+$/) || !(substr(tmp[1+ i], 1, 1) ~ /[[:digit:]]/) || !(substr(tmp[1+ i], length(tmp[1+ i])) ~ /[[:alpha:]]/)) { platformerrorhandler1_error(concat(content_msg,"'",tmp[1+ i],"': invalid NUTOKEN token"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if ((declared_value ~ /^NOTATION/)) { sub(/^NOTATION/, "", declared_value) sub(/^[ \t\n]+/, "", actual_value) sub(/[ \t\n]+$/, "", actual_value) if (sgmldecl1_syntax_namecase_general == "YES") actual_value = toupper(actual_value) if (!((actual_value ~ declared_value))) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": '",actual_value,"': invalid notation name for attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else if (declared_value == "DATA") { ; if ((doctype, data_notation_name) in markupdefinitions1_notation_public_identifiers) data_notation_public_identifier = markupdefinitions1_notation_public_identifiers[doctype, data_notation_name] if (data_notation_public_identifier == "+//IDN www.w3c.org/TR/html5//NOTATION HTML Form Input Types//EN") { if (actual_value != "") { actual_value_before_normalization = actual_value actual_value = htmlforminputvaluechecker4_normalize_value(actual_value, data_data_attributes_map) if (!actual_value) { platformerrorhandler1_error(concat(content_msg,"attribute ",attribute,": '",actual_value_before_normalization,"': invalid value for declared data notation"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } ; } } else if (data_notation_public_identifier) { platformerrorhandler1_warning(concat(content_msg,"attribute ",attribute,": '",data_notation_public_identifier,"': unrecognized public identifier for notation used in data specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else { platformerrorhandler1_warning(concat(content_msg,"attribute ",attribute,": missing public identifier for notation used in data specification"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } } else { platformerrorhandler1_fatalError(concat("internal error: '",declared_value,"': unhandled declared attribute value"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return actual_value } function attributechecker3_check_attribute_array(doctype, elementtype, notationname, attrarray, content_msg, i,a,found,attrs,debugtmp,default_semantics,default_value,declared_value,attr,n,effective_attribute_list,num_own_attributes,data_notation_name,data_data_attributes,num_data_data_attributes,data_data_attribute_map) { split("", attrs) declared_value = "" attr = "" effective_attribute_list = "" data_notation_name = "" split("", data_data_attributes) split("", data_data_attribute_map) ; if (!doctype) doctype = attributechecker3_declaration_set_name if (content_msg) content_msg = (content_msg ": ") if (notationname) { if ((doctype, notationname) in markupdefinitions1_data_attributes) n = split(markupdefinitions1_data_attributes[doctype, notationname], attrs, " ") num_own_attributes = n } else { if ((doctype, elementtype) in markupdefinitions1_element_attributes) effective_attribute_list = markupdefinitions1_element_attributes[doctype, elementtype] if ((doctype, "#ALL") in markupdefinitions1_element_attributes) { if (effective_attribute_list) { num_own_attributes = split(effective_attribute_list, attrs, " ") effective_attribute_list = concat(effective_attribute_list, " ", markupdefinitions1_element_attributes[doctype, "#ALL"]) } else { num_own_attributes = 0 effective_attribute_list = markupdefinitions1_element_attributes[doctype, "#ALL"] } n = split(effective_attribute_list, attrs, " ") } else { n = split(effective_attribute_list, attrs, " ") num_own_attributes = n } } for (i = 0; i < n; i++) { attr = attrs[1+ i] ; if (notationname) { if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_declared_values) declared_value = markupdefinitions1_data_attribute_declared_values[doctype, notationname, attr] else declared_value = "" ; if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_declared_data_notations) { data_notation_name = markupdefinitions1_data_attribute_declared_data_notations[doctype, notationname, attr] ; if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_data_attributes) { ; num_data_data_attributes = split(markupdefinitions1_data_attribute_data_attributes[doctype, notationname, attr], data_data_attributes, / /) ; while (num_data_data_attributes > 0) { data_data_attribute_map[data_data_attributes[1+ num_data_data_attributes - 1]] = markupdefinitions1_data_attribute_data_attribute_values[doctype, notationname, attr, data_data_attributes[1+ num_data_data_attributes - 1]] ; num_data_data_attributes-- } } } if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_default_semantics) default_semantics = markupdefinitions1_data_attribute_default_semantics[doctype, notationname, attr] else default_semantics = "" if ((doctype, notationname, attr) in markupdefinitions1_data_attribute_default_values) default_value = markupdefinitions1_data_attribute_default_values[doctype, notationname, attr] else default_value = "" } else { if (i < num_own_attributes) { if ((doctype, elementtype, attr) in markupdefinitions1_attribute_declared_values) declared_value = markupdefinitions1_attribute_declared_values[doctype, elementtype, attr] else declared_value = "" ; if ((doctype, elementtype, attr) in markupdefinitions1_attribute_declared_data_notations) { data_notation_name = markupdefinitions1_attribute_declared_data_notations[doctype, elementtype, attr] ; if ((doctype, elementtype, attr) in markupdefinitions1_attribute_data_attributes) { num_data_data_attributes = split(markupdefinitions1_attribute_data_attributes[doctype, elementtype, attr], data_data_attributes, / /) ; while (num_data_data_attributes > 0) { data_data_attribute_map[data_data_attributes[1+ num_data_data_attributes - 1]] = markupdefinitions1_attribute_data_attribute_values[doctype, elementtype, attr, data_data_attributes[1+ num_data_data_attributes - 1]] ; num_data_data_attributes-- } } } if ((doctype, elementtype, attr) in markupdefinitions1_attribute_default_semantics) default_semantics = markupdefinitions1_attribute_default_semantics[doctype, elementtype, attr] else default_semantics = "" if ((doctype, elementtype, attr) in markupdefinitions1_attribute_default_values) default_value = markupdefinitions1_attribute_default_values[doctype, elementtype, attr] else default_value = "" } else { if ((doctype, "#ALL", attr) in markupdefinitions1_attribute_declared_values) declared_value = markupdefinitions1_attribute_declared_values[doctype, "#ALL", attr] else declared_value = "" if ((doctype, "#ALL", attr) in markupdefinitions1_attribute_default_semantics) default_semantics = markupdefinitions1_attribute_default_semantics[doctype, "#ALL", attr] else default_semantics = "" if ((doctype, "#ALL", attr) in markupdefinitions1_attribute_default_values) default_value = markupdefinitions1_attribute_default_values[doctype, "#ALL", attr] else default_value = "" } } ; if (attr in attrarray) { if (default_semantics) { if (default_semantics == "#FIXED") { if (sgmldecl1_syntax_namecase_general == "YES" && (declared_value == "NAME" || declared_value == "NAMES" || declared_value == "NMTOKEN" || declared_value == "NMTOKENS" || declared_value == "NUTOKEN" || declared_value == "NUTOKENS" || substr(declared_value, 1, 1) == "(" || (declared_value ~ /^NOTATION/))) attrarray[attr] = toupper(attrarray[attr]) if (attrarray[attr] != default_value) { platformerrorhandler1_fatalError(concat(content_msg,"attribute ",attr,": '",attrarray[attr],"': value other than '",default_value,"' for fixed attribute specified"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else continue } else if (notationname) attrarray[attr] = attributechecker3_check_attribute_value(doctype, attr, declared_value, attrarray[attr], content_msg, data_notation_name, data_data_attribute_map) else attrarray[attr] = attributechecker3_check_attribute_value(doctype, attr, declared_value, attrarray[attr], content_msg, data_notation_name, data_data_attribute_map) if (default_semantics == "#CURRENT") { ; docinfo3_attribute_current_values[doctype, attr] = attrarray[attr] } else if (default_semantics == "#CONREF") { ; docinfo3_content_reference = attrarray[attr] } } else { attrarray[attr] = attributechecker3_check_attribute_value(doctype, attr, declared_value, attrarray[attr], content_msg, data_notation_name, data_data_attribute_map) } } else { if (default_semantics) { if (default_semantics == "#REQUIRED") { platformerrorhandler1_fatalError(concat(content_msg, "attribute ",attr,": missing value for required attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (default_semantics == "#IMPLIED") continue else if (default_semantics == "#FIXED") { attrarray[attr] = default_value } else if (default_semantics == "#CURRENT") if (!((doctype, attr) in docinfo3_attribute_current_values)) { platformerrorhandler1_error(concat(content_msg,"missing value for initial current attribute '",attr,"'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } else attrarray[attr] = docinfo3_attribute_current_values[doctype, attr] } else attrarray[attr] = default_value } ; } if (sgmldecl1_features_minimize_implydef_attlist == "NO" || notationname || doctype in markupdefinitions1_link_process_source_doctype_specs) for (a in attrarray) { found = 0 for (i in attrs) if (--i + 1) if (a == attrs[1+ i]) { found = 1 break } if (!found) if (notationname) { platformerrorhandler1_fatalError(concat("'",a,"': ",content_msg, "undeclared data attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (doctype in markupdefinitions1_link_process_source_doctype_specs) { platformerrorhandler1_fatalError(concat("'",a,"': ",content_msg, "undeclared link attribute"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { platformerrorhandler1_fatalError(concat("'",a,"': ",content_msg, "undeclared attribute and IMPLYDEF ATTLIST NO specified"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } function attributechecker3_configure(args) { if ("disable_referential_attributes" in args && args["disable_referential_attributes"] == "YES") attributechecker3_disable_referential_attributes = args["disable_referential_attributes"] } BEGIN { dataentitytracker3_current_declaration_set_name = "" dataentitytracker3_base_declaration_set_name = "" dataentitytracker3_base_declaration_external_subset_identifier = "" split("", dataentitytracker3_notation_system_identifiers) split("", dataentitytracker3_notation_public_identifiers) split("", dataentitytracker3_data_entity_names_to_materialize) split("", dataentitytracker3_data_entity_system_identifiers) split("", dataentitytracker3_data_entity_public_identifiers) split("", dataentitytracker3_data_entity_notation_system_identifiers) split("", dataentitytracker3_data_entity_notation_public_identifiers) split("", dataentitytracker3_data_attributes) split("", dataentitytracker3_data_entity_declaration_set_names) } function dataentitytracker3_reset() { dataentitytracker3_current_declaration_set_name = "" dataentitytracker3_base_declaration_set_name = "" dataentitytracker3_base_declaration_external_subset_identifier = "" split("", dataentitytracker3_notation_system_identifiers) split("", dataentitytracker3_notation_public_identifiers) split("", dataentitytracker3_data_entity_names_to_materialize) split("", dataentitytracker3_data_entity_system_identifiers) split("", dataentitytracker3_data_entity_public_identifiers) split("", dataentitytracker3_data_entity_notation_system_identifiers) split("", dataentitytracker3_data_entity_notation_public_identifiers) split("", dataentitytracker3_data_attributes) split("", dataentitytracker3_data_entity_declaration_set_names) } function dataentitytracker3_comment(text) { } function dataentitytracker3_startDTD(name, publicid, systemid, xmltext) { dataentitytracker3_current_declaration_set_name = name if (dataentitytracker3_base_declaration_set_name == "") { dataentitytracker3_base_declaration_set_name = name dataentitytracker3_base_declaration_external_subset_identifier = systemid } } function dataentitytracker3_endDTD() { dataentitytracker3_current_declaration_set_name = "" } function dataentitytracker3_startCDATA(text) { } function dataentitytracker3_endCDATA() { } function dataentitytracker3_startRCDATA(text) { } function dataentitytracker3_endRCDATA() { } function dataentitytracker3_startINCLUDE(text) { } function dataentitytracker3_endINCLUDE() { } function dataentitytracker3_startIGNORE(text) { } function dataentitytracker3_endIGNORE() { } function dataentitytracker3_start_temp(text) { } function dataentitytracker3_end_temp() { } function dataentitytracker3_startEntity(name, elmt) { } function dataentitytracker3_endEntity(name) { } function dataentitytracker3_notationDecl(name, pubid, sysid) { if (sysid) dataentitytracker3_notation_system_identifiers[dataentitytracker3_current_declaration_set_name, name] = sysid if (pubid) dataentitytracker3_notation_public_identifiers[dataentitytracker3_current_declaration_set_name, name] = pubid } function dataentitytracker3_unparsedEntityDecl(name, pubid, sysid, notation_name, data_attributes) { if (dataentitytracker3_current_declaration_set_name != dataentitytracker3_base_declaration_set_name) { dataentitytracker3_data_entity_names_to_materialize[name] = "" dataentitytracker3_data_entity_system_identifiers[name] = sysid dataentitytracker3_data_entity_public_identifiers[name] = pubid dataentitytracker3_data_entity_notation_system_identifiers[name] = dataentitytracker3_notation_system_identifiers[dataentitytracker3_current_declaration_set_name, notation_name] dataentitytracker3_data_entity_notation_public_identifiers[name] = dataentitytracker3_notation_public_identifiers[dataentitytracker3_current_declaration_set_name, notation_name] if (data_attributes) { ; dataentitytracker3_data_attributes[name] = data_attributes } dataentitytracker3_data_entity_declaration_set_names[name] = dataentitytracker3_current_declaration_set_name } } BEGIN { split("", stack12_stack) stack12_len = 0 } function stack12_stacklength() { return stack12_len } function stack12_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack12_stacklength() for (i = 1; i <= n; i++) if (stack12_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack12_push(elmt) { ; stack12_stack[++stack12_len] = elmt } function stack12_top( l,r) { r = "" l = stack12_stacklength() if (l == 0) r = "" else r = stack12_stack[l] ; return r } function stack12_pop(n, l) { if (n == "") n = 1 l = stack12_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack12_len == 0) break delete stack12_stack[l] --stack12_len } ; } function stack12_popto(targetelmt, n) { for (n = stack12_stacklength(); n > 0 && stack12_stack[n] != targetelmt; n--) { delete stack12_stack[n] stack12_len-- } } function stack12_popall( n) { for (n = stack12_stacklength(); n > 0; n--) { delete stack12_stack[n] stack12_len-- } } function stack12_poptolevel(targetelmt, level, l,n) { n = stack12_stackindex(targetelmt, level) for (l = stack12_stacklength(); l > n; l--) { delete stack12_stack[l] stack12_len-- } } function stack12_peek(i) { return stack12_stack[i] } function stack12_clear() { split("", stack12_stack) stack12_len = 0 } BEGIN { split("", stack13_stack) stack13_len = 0 } function stack13_stacklength() { return stack13_len } function stack13_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack13_stacklength() for (i = 1; i <= n; i++) if (stack13_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack13_push(elmt) { ; stack13_stack[++stack13_len] = elmt } function stack13_top( l,r) { r = "" l = stack13_stacklength() if (l == 0) r = "" else r = stack13_stack[l] ; return r } function stack13_pop(n, l) { if (n == "") n = 1 l = stack13_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack13_len == 0) break delete stack13_stack[l] --stack13_len } ; } function stack13_popto(targetelmt, n) { for (n = stack13_stacklength(); n > 0 && stack13_stack[n] != targetelmt; n--) { delete stack13_stack[n] stack13_len-- } } function stack13_popall( n) { for (n = stack13_stacklength(); n > 0; n--) { delete stack13_stack[n] stack13_len-- } } function stack13_poptolevel(targetelmt, level, l,n) { n = stack13_stackindex(targetelmt, level) for (l = stack13_stacklength(); l > n; l--) { delete stack13_stack[l] stack13_len-- } } function stack13_peek(i) { return stack13_stack[i] } function stack13_clear() { split("", stack13_stack) stack13_len = 0 } BEGIN { split("", stack14_stack) stack14_len = 0 } function stack14_stacklength() { return stack14_len } function stack14_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack14_stacklength() for (i = 1; i <= n; i++) if (stack14_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack14_push(elmt) { ; stack14_stack[++stack14_len] = elmt } function stack14_top( l,r) { r = "" l = stack14_stacklength() if (l == 0) r = "" else r = stack14_stack[l] ; return r } function stack14_pop(n, l) { if (n == "") n = 1 l = stack14_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack14_len == 0) break delete stack14_stack[l] --stack14_len } ; } function stack14_popto(targetelmt, n) { for (n = stack14_stacklength(); n > 0 && stack14_stack[n] != targetelmt; n--) { delete stack14_stack[n] stack14_len-- } } function stack14_popall( n) { for (n = stack14_stacklength(); n > 0; n--) { delete stack14_stack[n] stack14_len-- } } function stack14_poptolevel(targetelmt, level, l,n) { n = stack14_stackindex(targetelmt, level) for (l = stack14_stacklength(); l > n; l--) { delete stack14_stack[l] stack14_len-- } } function stack14_peek(i) { return stack14_stack[i] } function stack14_clear() { split("", stack14_stack) stack14_len = 0 } BEGIN { split("", stack15_stack) stack15_len = 0 } function stack15_stacklength() { return stack15_len } function stack15_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack15_stacklength() for (i = 1; i <= n; i++) if (stack15_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack15_push(elmt) { ; stack15_stack[++stack15_len] = elmt } function stack15_top( l,r) { r = "" l = stack15_stacklength() if (l == 0) r = "" else r = stack15_stack[l] ; return r } function stack15_pop(n, l) { if (n == "") n = 1 l = stack15_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack15_len == 0) break delete stack15_stack[l] --stack15_len } ; } function stack15_popto(targetelmt, n) { for (n = stack15_stacklength(); n > 0 && stack15_stack[n] != targetelmt; n--) { delete stack15_stack[n] stack15_len-- } } function stack15_popall( n) { for (n = stack15_stacklength(); n > 0; n--) { delete stack15_stack[n] stack15_len-- } } function stack15_poptolevel(targetelmt, level, l,n) { n = stack15_stackindex(targetelmt, level) for (l = stack15_stacklength(); l > n; l--) { delete stack15_stack[l] stack15_len-- } } function stack15_peek(i) { return stack15_stack[i] } function stack15_clear() { split("", stack15_stack) stack15_len = 0 } BEGIN { split("", stack16_stack) stack16_len = 0 } function stack16_stacklength() { return stack16_len } function stack16_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack16_stacklength() for (i = 1; i <= n; i++) if (stack16_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack16_push(elmt) { ; stack16_stack[++stack16_len] = elmt } function stack16_top( l,r) { r = "" l = stack16_stacklength() if (l == 0) r = "" else r = stack16_stack[l] ; return r } function stack16_pop(n, l) { if (n == "") n = 1 l = stack16_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack16_len == 0) break delete stack16_stack[l] --stack16_len } ; } function stack16_popto(targetelmt, n) { for (n = stack16_stacklength(); n > 0 && stack16_stack[n] != targetelmt; n--) { delete stack16_stack[n] stack16_len-- } } function stack16_popall( n) { for (n = stack16_stacklength(); n > 0; n--) { delete stack16_stack[n] stack16_len-- } } function stack16_poptolevel(targetelmt, level, l,n) { n = stack16_stackindex(targetelmt, level) for (l = stack16_stacklength(); l > n; l--) { delete stack16_stack[l] stack16_len-- } } function stack16_peek(i) { return stack16_stack[i] } function stack16_clear() { split("", stack16_stack) stack16_len = 0 } BEGIN { validator3_doctype = "" validator3_document_element_name = "" validator3_is_governed_by_content_reference = "" validator3_debug_emit_ctx_token = "" validator3_error_context_info_enabled = "" validator3_advanced_error_context_info_i = 0 split("", validator3_advanced_error_context_info_msg_components) } function validator3_reset() { stack20_clear() validator3_doctype = "" validator3_document_element_name = "" } function validator3_set_document_type_name(name) { ; if (validator3_doctype) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: attempting to set document type name when instance parsing already in progress", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator3_doctype = name } function validator3_set_document_element_name(name) { ; if (validator3_document_element_name) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: attempting to set document element name when instance parsing already in progress", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator3_document_element_name = name } function validator3_set_debug_emit_ctx_token(s) { validator3_debug_emit_ctx_token = s } function validator3_enable_error_context_info(s) { validator3_error_context_info_enabled = s } function validator3_dispatch_start_element(elmt, attrs_array, attrs) { if (validator3_debug_emit_ctx_token != "") console_info(concat("")) linkhandler1_startElement(elmt, attrs_array, attrs) docinfo3_current_shortref_map = "" } function validator3_dispatch_end_element(elmt) { if (validator3_debug_emit_ctx_token != "") console_info(concat("")) linkhandler1_endElement(elmt) docinfo3_current_shortref_map = "" } function validator3_check_and_dispatch_start_element(elmt, attrs_array, attrs, content_msg) { if (validator3_doctype != "") attributechecker3_check_attribute_array(validator3_doctype, elmt, "", attrs_array, content_msg) validator3_dispatch_start_element(elmt, attrs_array, attrs) } function validator3_try_accept_not_excluded_token(element, i,tmp) { ; docinfo3_exclusion_exceptions = "" for (i = 1; i <= stack15_len; i++) if ((validator3_doctype, stack15_stack[i]) in markupdefinitions1_element_exclusions) { tmp = markupdefinitions1_element_exclusions[validator3_doctype, stack15_stack[i]] ; if (docinfo3_exclusion_exceptions != "") docinfo3_exclusion_exceptions = (docinfo3_exclusion_exceptions " ") docinfo3_exclusion_exceptions = (docinfo3_exclusion_exceptions tmp) if (index(" " tmp " ", " " element " ")) return "" } return " " } function validator3_populate_docinfo_exclusion_exceptions( i,tmp) { ; docinfo3_exclusion_exceptions = "" for (i = 1; i <= stack15_len; i++) if ((validator3_doctype, stack15_stack[i]) in markupdefinitions1_element_exclusions) { tmp = markupdefinitions1_element_exclusions[validator3_doctype, stack15_stack[i]] if (docinfo3_exclusion_exceptions != "") docinfo3_exclusion_exceptions = (docinfo3_exclusion_exceptions " ") docinfo3_exclusion_exceptions = (docinfo3_exclusion_exceptions tmp) } } function validator3_try_accept_included_token(element, i,tmp) { if (!validator3_try_accept_not_excluded_token(element)) return "" for (i = 1; i <= stack15_len; i++) { if ((validator3_doctype, stack15_stack[i]) in markupdefinitions1_element_inclusions) { tmp = markupdefinitions1_element_inclusions[validator3_doctype, stack15_stack[i]] if (index(" " tmp " ", " " element " ")) { ; return " " } } } return "" } function validator3_try_accept_token(state, content_token, pos,i,tmp) { ; pos = markupdefinitions1_get_marked_symbol(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], state, content_token) ; if (pos) { if (content_token == "#PCDATA") return pos if ((index(markupdefinitions1_get_all_marked_symbols(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], state), " ") == 0)) { validator3_populate_docinfo_exclusion_exceptions() return pos } for (i = 1; i <= stack15_len; i++) { if ((validator3_doctype, stack15_stack[i]) in markupdefinitions1_element_exclusions) { tmp = markupdefinitions1_element_exclusions[validator3_doctype, stack15_stack[i]] ; if (index(" " tmp " ", " " content_token " ")) { validator3_populate_docinfo_exclusion_exceptions() return "" } } } validator3_populate_docinfo_exclusion_exceptions() return pos } else return validator3_try_accept_included_token(content_token) } function validator3_check_acceptance(content_token) { ; if ((validator3_doctype, stack15_stack[stack15_len]) in markupdefinitions1_element_declarations) if (markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]] == "CDATA") if (content_token == "#PCDATA") return " "; else return ""; else if (markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]] == "RCDATA") if (content_token == "#PCDATA") return " "; else return ""; else if (markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]] == "EMPTY") return ""; if ((!((validator3_doctype, stack15_stack[stack15_len]) in markupdefinitions1_element_declarations) && sgmldecl1_features_minimize_implydef_element == "YES") || markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]] == "ANY") { ; if (content_token != "#PCDATA" && !validator3_try_accept_not_excluded_token(content_token)) return "" else return "-" } if (stack15_len == stack20_len) return validator3_try_accept_token(stack20_stack[stack20_len], content_token) else return validator3_try_accept_token("", content_token) } function validator3_open_contextually_required_element(element, modelgroup, state, context_msg, content_msg, allow_optional, suppress_error, empty_array,symbol,pos) { split("", empty_array) symbol = "" pos = "" if (!state && markupdefinitions1_is_optional(validator3_doctype, element, markupdefinitions1_element_modelgroups[validator3_doctype, element])) { ; return "" } if ((index(markupdefinitions1_get_all_marked_symbols(validator3_doctype, element, markupdefinitions1_element_modelgroups[validator3_doctype, element], state), " ") == 0)) { ; if (!allow_optional) if (markupdefinitions1_is_terminal(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], state)) return "" symbol = markupdefinitions1_state_symbol(markupdefinitions1_get_all_marked_symbols(validator3_doctype, element, markupdefinitions1_element_modelgroups[validator3_doctype, element], state)) ; if (sgmldecl1_features_minimize_omittag != "YES") if (!suppress_error) { { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",element,"': tag omission not allowed at '",context_msg ,"'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else return "" if (!((validator3_doctype, symbol) in markupdefinitions1_element_start_tag_omittable)) if (!suppress_error) { if (symbol == "#PCDATA") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat(content_msg," not accepted here and element '",symbol,"' not omittable (1)"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else return "" if ((validator3_doctype, symbol) in markupdefinitions1_element_declarations && substr(markupdefinitions1_element_declarations[validator3_doctype, symbol], 1, 1) != "(" && markupdefinitions1_element_declarations[validator3_doctype, symbol] != "ANY") if (!suppress_error) { { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat(content_msg," not accepted here and can't omit start-tag for element '",symbol,"' with declared content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } pos = markupdefinitions1_get_marked_symbol(validator3_doctype, element, markupdefinitions1_element_modelgroups[validator3_doctype, element], state, symbol) if (state) stack20_pop() stack20_push(pos) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1) stack20_push(""); }; stack15_push(symbol); if (validator3_error_context_info_enabled) stack16_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": inferred")); } validator3_check_and_dispatch_start_element(symbol, empty_array, "", ("implied element " symbol)) return symbol } return "" } function validator3_open_contextually_implied_element(content_token, rank_suffix,parent_rank_suffix,symbol,symbols,symbols_arr,empty_array,i,pos) { rank_suffix = "" parent_rank_suffix = "" symbol = "" symbols = "" split("", symbols_arr) split("", empty_array) pos = "" if (!((validator3_doctype, content_token) in markupdefinitions1_element_rank_groups)) return "" if (!match(stack15_stack[stack15_len], /[0-9]+$/)) { parent_rank_suffix = 0 } else parent_rank_suffix = substr(stack15_stack[stack15_len], RSTART, RLENGTH) if (match(content_token, /[0-9]+$/)) { rank_suffix = substr(content_token, RSTART, RLENGTH) if (0 + rank_suffix > 0 + parent_rank_suffix) { ; symbols = markupdefinitions1_states_symbols(markupdefinitions1_get_all_marked_symbols(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], stack20_stack[stack20_len])) split(symbols, symbols_arr, / /) for (i in symbols_arr) if (match(symbols_arr[i], /[0-9]+$/)) { if (!((validator3_doctype, symbols_arr[i]) in markupdefinitions1_element_rank_groups)) continue if (symbol != "") { symbol = "" break } symbol = symbols_arr[i] ; if (substr(symbols_arr[i], RSTART, RLENGTH) != rank_suffix) symbol = "" } } } ; if (symbol) { pos = markupdefinitions1_get_marked_symbol(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], stack20_stack[stack20_len], symbol) if (!pos) { { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: failed to promote to state implied via rank suffix", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } stack20_pop() stack20_push(pos) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1) stack20_push(""); }; stack15_push(symbol); if (validator3_error_context_info_enabled) stack16_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": inferred")); } validator3_check_and_dispatch_start_element(symbol, empty_array, "", ("implied element " symbol)) return symbol } return "" } function validator3_open_contextually_implied_element_below_document_element(content_token, symbol,pos,empty_array) { symbol = "" pos = "" split("", empty_array) ; if (content_token == "#PCDATA") return "" if (sgmldecl1_features_minimize_omittag != "YES") return "" ; if (stack15_len != 1) return "" ; if (stack15_len != stack20_len) return "" ; if ((content_token ~ /[0-9]$/) || (validator3_doctype, content_token) in markupdefinitions1_element_rank_groups) return "" symbol = markupdefinitions1_states_symbols(markupdefinitions1_get_all_marked_symbols(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], stack20_stack[stack20_len])) if (!symbol || !(index(symbol, " ") == 0)) return "" ; if (!((validator3_doctype, symbol) in markupdefinitions1_element_end_tag_omittable)) return "" ; pos = markupdefinitions1_get_marked_symbol(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], stack20_stack[stack20_len], symbol) if (!pos) { { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: failed to promote to state implied at document element", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } ; stack20_pop() stack20_push(pos) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1) stack20_push(""); }; stack15_push(symbol); if (validator3_error_context_info_enabled) stack16_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": inferred")); } validator3_check_and_dispatch_start_element(symbol, empty_array, "", ("implied element " symbol)) return symbol } function validator3_close_definitely_completed_elements(content_token, context_msg) { ; ; if (sgmldecl1_features_other_validity != "TYPE" && sgmldecl1_features_minimize_implydef_element == "YES") return if (stack15_len == stack20_len + 1) if (stack15_stack[stack15_len] && (validator3_doctype, stack15_stack[stack15_len]) in markupdefinitions1_element_declarations && ( ( sgmldecl1_features_minimize_emptynrm == "YES" && (markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]] == "EMPTY" || validator3_is_governed_by_content_reference != "") ) || ( validator3_is_governed_by_content_reference == "" && substr(markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]], 1, 1) == "(" && content_token != "#PCDATA" && markupdefinitions1_is_pcdata_only_state(markupdefinitions1_get_all_marked_symbols(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], "")) && markupdefinitions1_is_terminal(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], markupdefinitions1_get_all_marked_symbols(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], "")) && (!validator3_try_accept_included_token(content_token))) ) ) { ; if (sgmldecl1_features_minimize_omittag != "YES") if (content_token == "#PCDATA") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': character data not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",stack15_stack[stack15_len],"': '",context_msg ,"' not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((validator3_doctype, stack15_stack[stack15_len]) in markupdefinitions1_element_end_tag_omittable)) if (content_token == "#PCDATA") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': character data not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",stack15_stack[stack15_len],"': '",context_msg ,"' not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator3_is_governed_by_content_reference = "" validator3_dispatch_end_element(stack15_stack[stack15_len]) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1 && !stack20_stack[stack20_len]) stack20_pop(); }; docinfo3_most_recently_ended_element = stack15_stack[stack15_len]; stack15_pop(); if (validator3_error_context_info_enabled) stack16_pop(); } } else if (stack15_stack[stack15_len] && (validator3_doctype, stack15_stack[stack15_len]) in markupdefinitions1_element_declarations && (markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]] == "EMPTY" || validator3_is_governed_by_content_reference != "") && sgmldecl1_features_minimize_emptynrm == "NO") { ; validator3_is_governed_by_content_reference = "" validator3_dispatch_end_element(stack15_stack[stack15_len]) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1 && !stack20_stack[stack20_len]) stack20_pop(); }; docinfo3_most_recently_ended_element = stack15_stack[stack15_len]; stack15_pop(); if (validator3_error_context_info_enabled) stack16_pop(); } } if (stack15_len == stack20_len) { ; ; if (stack20_stack[stack20_len]) { ; ; ; } while (stack15_stack[stack15_len] && (validator3_doctype, stack15_stack[stack15_len]) in markupdefinitions1_element_declarations && substr(markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]], 1, 1) == "(" && ((!markupdefinitions1_get_all_marked_symbols(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], stack20_stack[stack20_len]) && !(content_token != "#PCDATA" && validator3_try_accept_included_token(content_token))) || (content_token != "#PCDATA" && (markupdefinitions1_is_pcdata_only_state(markupdefinitions1_get_all_marked_symbols(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], stack20_stack[stack20_len])) && markupdefinitions1_is_terminal(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], markupdefinitions1_get_all_marked_symbols(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], stack20_stack[stack20_len])) && markupdefinitions1_get_all_marked_symbols(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], markupdefinitions1_get_marked_symbol(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], stack20_stack[stack20_len], "#PCDATA")) == markupdefinitions1_get_all_marked_symbols(validator3_doctype, stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], stack20_stack[stack20_len]))))) { if (sgmldecl1_features_minimize_omittag != "YES") if (content_token == "#PCDATA") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': character data not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",stack15_stack[stack15_len],"': '",context_msg,"' not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (!((validator3_doctype, stack15_stack[stack15_len]) in markupdefinitions1_element_end_tag_omittable)) if (content_token == "#PCDATA") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': character data not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",stack15_stack[stack15_len],"': '",context_msg,"' not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; validator3_dispatch_end_element(stack15_stack[stack15_len]) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1 && !stack20_stack[stack20_len]) stack20_pop(); }; docinfo3_most_recently_ended_element = stack15_stack[stack15_len]; stack15_pop(); if (validator3_error_context_info_enabled) stack16_pop(); } stack20_pop() } if (!stack15_stack[stack15_len]) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': extraneous character data after content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } function validator3_close_potentially_completed_element( e) { e = stack15_stack[stack15_len] ; if (sgmldecl1_features_other_validity != "TYPE") return e if (stack15_len == stack20_len) { if (((validator3_doctype, e) in markupdefinitions1_element_declarations && substr(markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]], 1, 1) == "(" && !markupdefinitions1_is_terminal(validator3_doctype, e, markupdefinitions1_element_modelgroups[validator3_doctype, e], stack20_stack[stack20_len]))) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",e,"': unexpected end of content model"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } stack20_pop() return e } else { if (validator3_is_governed_by_content_reference != "") return e if ((validator3_doctype, e) in markupdefinitions1_element_declarations) if (substr(markupdefinitions1_element_declarations[validator3_doctype, e], 1, 1) == "(") { if (!markupdefinitions1_is_optional(validator3_doctype, e, markupdefinitions1_element_modelgroups[validator3_doctype, e])) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",e,"': element '",stack15_stack[stack15_len] ,"' requires content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; } ; return e } } function validator3_attempt_to_close_potentially_completed_element( e) { e = stack15_stack[stack15_len] ; if (sgmldecl1_features_other_validity != "TYPE") return e if (stack15_len == stack20_len) { if (((validator3_doctype, e) in markupdefinitions1_element_declarations && substr(markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]], 1, 1) == "(" && !markupdefinitions1_is_terminal(validator3_doctype, e, markupdefinitions1_element_modelgroups[validator3_doctype, e], stack20_stack[stack20_len]))) return "" stack20_pop() return e } else { if (validator3_is_governed_by_content_reference != "") return e if ((validator3_doctype, e) in markupdefinitions1_element_declarations) if (substr(markupdefinitions1_element_declarations[validator3_doctype, e], 1, 1) == "(") { if (!markupdefinitions1_is_optional(validator3_doctype, e, markupdefinitions1_element_modelgroups[validator3_doctype, e])) return "" ; } ; return e } } function validator3_on_content_token(content_token, context_msg, content_msg, trans,pos,follower_states,empty_array,symbol,e) { split("", empty_array) symbol = "" e = "" ; ; ; if (!stack15_len) { ; if (!validator3_doctype) return if (!validator3_document_element_name) validator3_document_element_name = validator3_doctype if (content_token == validator3_document_element_name) return if (sgmldecl1_features_minimize_implydef_element != "YES") { if (sgmldecl1_features_minimize_omittag != "YES" || (!((validator3_doctype, validator3_document_element_name) in markupdefinitions1_element_start_tag_omittable)) || (substr(markupdefinitions1_element_declarations[validator3_doctype, validator3_document_element_name], 1, 1) != "(" && markupdefinitions1_element_declarations[validator3_doctype, validator3_document_element_name] != "ANY")) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': may not omit start-tag of root element"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1) stack20_push(""); }; stack15_push(validator3_document_element_name); if (validator3_error_context_info_enabled) stack16_push(concat(locator1_get_system_id(), ": ", locator1_get_line_number(), ": inferred")); } validator3_check_and_dispatch_start_element(validator3_document_element_name, empty_array, "", ("implied element " validator3_document_element_name)) } else { validator3_close_definitely_completed_elements(content_token, context_msg) } ; ; while (stack15_len > 1 && (!((validator3_doctype, stack15_stack[stack15_len]) in markupdefinitions1_element_declarations && sgmldecl1_features_minimize_implydef_element == "YES") || (validator3_doctype, stack15_stack[stack15_len]) in markupdefinitions1_element_end_tag_omittable)) { ; if (content_token != "#PCDATA" && !validator3_try_accept_not_excluded_token(content_token)) { ; e = validator3_attempt_to_close_potentially_completed_element() if (e) { validator3_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1 && !stack20_stack[stack20_len]) stack20_pop(); }; docinfo3_most_recently_ended_element = stack15_stack[stack15_len]; stack15_pop(); if (validator3_error_context_info_enabled) stack16_pop(); } ; } else { { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } else break } if (sgmldecl1_features_other_validity == "TYPE") { if (stack15_len == stack20_len) { ; if ((!((validator3_doctype, stack15_stack[stack15_len]) in markupdefinitions1_element_declarations)) || markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]] == "ANY") if (content_token != "#PCDATA" && !validator3_try_accept_not_excluded_token(content_token)) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else return pos = validator3_try_accept_token(stack20_stack[stack20_len], content_token) ; { ; } if (pos) { if (pos != " ") { stack20_pop() stack20_push(pos) return } else return "markdown:included=\"true\"" } else { ; if (!validator3_open_contextually_required_element(stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], stack20_stack[stack20_len], context_msg, content_msg, "", "true")) { ; if (!validator3_open_contextually_implied_element(content_token) && !validator3_open_contextually_implied_element_below_document_element(content_token)) { if (stack15_len <= 1) { { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } e = validator3_close_potentially_completed_element() if (!e) { { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } validator3_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1 && !stack20_stack[stack20_len]) stack20_pop(); }; docinfo3_most_recently_ended_element = stack15_stack[stack15_len]; stack15_pop(); if (validator3_error_context_info_enabled) stack16_pop(); } ; return validator3_on_content_token(content_token, context_msg, content_msg) } } } } ; if (stack15_len == stack20_len + 1) { ; { ; } if (!((validator3_doctype, stack15_stack[stack15_len]) in markupdefinitions1_element_declarations)) { ; if (content_token != "#PCDATA" && !validator3_try_accept_not_excluded_token(content_token)) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg ," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } else if (markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]] == "ANY") { ; if (content_token != "#PCDATA" && !validator3_try_accept_not_excluded_token(content_token)) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } else if (markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]] == "CDATA" || markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]] == "RCDATA") { if (content_token != "#PCDATA") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': unexpected ",content_msg," in declared content"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } else if (substr(markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]], 1, 1) != "(") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': unexpected ",content_msg," in non-element content model"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } pos = validator3_try_accept_token("", content_token) ; { ; } if (pos) { if (pos != " ") { stack20_push(pos) return } else return "markdown:included=\"true\"" } } else { ; while (stack15_len > 0) { ; stack15_pop() } while (stack20_len > 0) { ; stack20_pop() } { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: modelgroup states out of sync with elements", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } } else return ; if (sgmldecl1_features_minimize_omittag != "YES") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': unexpected ",content_msg), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } for (;;) { symbol = validator3_open_contextually_required_element(stack15_stack[stack15_len], markupdefinitions1_element_modelgroups[validator3_doctype, stack15_stack[stack15_len]], "", "", content_msg, "", "") ; { ; } if (!symbol) break if ((!((validator3_doctype, symbol) in markupdefinitions1_element_declarations)) || markupdefinitions1_element_declarations[validator3_doctype, stack15_stack[stack15_len]] == "ANY") if (content_token != "#PCDATA" && !validator3_try_accept_not_excluded_token(content_token)) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",context_msg,"': ",content_msg," excluded"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else return if (substr(markupdefinitions1_element_modelgroups[validator3_doctype, symbol], 1, 1) != "(") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } pos = validator3_try_accept_token("", content_token) if (pos) { ; if (pos != " ") { stack20_push(pos) return } else return "markdown:included=\"true\"" } } { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError((content_msg " not accepted here"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } function validator3_startElement(xmlelement, attrarray, attrs, r) { validator3_is_governed_by_content_reference = docinfo3_content_reference ; if (validator3_doctype != "") { if ((!((validator3_doctype, xmlelement) in markupdefinitions1_element_declarations)) && sgmldecl1_features_minimize_implydef_element_anyother == "YES" && stack15_len != 0 && stack15_stack[stack15_len] == xmlelement) { validator3_dispatch_end_element(xmlelement) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1 && !stack20_stack[stack20_len]) stack20_pop(); }; docinfo3_most_recently_ended_element = stack15_stack[stack15_len]; stack15_pop(); if (validator3_error_context_info_enabled) stack16_pop(); } } else if ((!((validator3_doctype, xmlelement) in markupdefinitions1_element_declarations)) && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",xmlelement,"': undeclared element type and IMPLYDEF ELEMENT NO specified"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { if (sgmldecl1_features_minimize_implydef_doctype != "YES" && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("No document type declaration and IMPLYDEF DOCTYPE NO specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } r = validator3_on_content_token(xmlelement, xmlelement, concat("element '",xmlelement,"'")) { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1) stack20_push(""); } return r } function validator3_characters(xmltext) { ; validator3_is_governed_by_content_reference = docinfo3_content_reference if (validator3_doctype == "") { if (sgmldecl1_features_minimize_implydef_doctype != "YES" && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("No document type declaration and IMPLYDEF DOCTYPE NO specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } validator3_on_content_token("#PCDATA", substr(xmltext, 1, 8), "character data") } function validator3_processingInstruction(name, text) { return } function validator3_endElement(xmlelement, e,m) { ; ; validator3_is_governed_by_content_reference = docinfo3_content_reference do { if (stack15_len == 0) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",xmlelement,"': attempting to close an element that isn't open"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (sgmldecl1_features_minimize_implydef_element_anyother == "YES" && stack15_len != 0 && !((validator3_doctype, stack15_stack[stack15_len]) in markupdefinitions1_element_declarations)) { e = stack15_stack[stack15_len] ; } else e = validator3_close_potentially_completed_element() ; if (e != xmlelement) { ; if (sgmldecl1_features_minimize_emptynrm == "NO" && validator3_is_governed_by_content_reference != "") { ; } else if (sgmldecl1_features_minimize_implydef_element_anyother == "YES" && !((validator3_doctype, e) in markupdefinitions1_element_declarations)) { ; } else if ((sgmldecl1_features_minimize_omittag == "NO" || !((validator3_doctype, e) in markupdefinitions1_element_end_tag_omittable)) && ! ((validator3_doctype, e) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[validator3_doctype, e] == "EMPTY" && sgmldecl1_features_minimize_emptynrm == "NO")) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("end-element tag for element ",xmlelement,": end-element tag omission not permitted for element ",e), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } validator3_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1 && !stack20_stack[stack20_len]) stack20_pop(); }; docinfo3_most_recently_ended_element = stack15_stack[stack15_len]; stack15_pop(); if (validator3_error_context_info_enabled) stack16_pop(); } } else if (sgmldecl1_features_minimize_emptynrm == "NO" && (validator3_doctype, e) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[validator3_doctype, e] == "EMPTY") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("'",e,"': element with declared content EMPTY must not have end-tag"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } else if (sgmldecl1_features_minimize_emptynrm == "NO" && validator3_is_governed_by_content_reference != "") { ; validator3_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1 && !stack20_stack[stack20_len]) stack20_pop(); }; docinfo3_most_recently_ended_element = stack15_stack[stack15_len]; stack15_pop(); if (validator3_error_context_info_enabled) stack16_pop(); } e = "" } validator3_is_governed_by_content_reference = "" } while (e != xmlelement) { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1 && !stack20_stack[stack20_len]) stack20_pop(); } } function validator3_startDocument() { ; if (sgmldecl1_features_other_validity == "TAG-TYPE") { if (sgmldecl1_features_minimize_omittag == "YES") { platformerrorhandler1_warning("MINIMIZE OMITTAG YES and VALIDITY TAG-TYPE features specified in SGML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } if (sgmldecl1_features_minimize_implydef_element == "YES") { platformerrorhandler1_warning("IMPLYDEF ELEMENT YES and VALIDITY TAG-TYPE features specified in SGML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } sgmldecl1_features_other_validity = "TYPE" } else if (sgmldecl1_features_other_validity == "TAG") { if (sgmldecl1_features_minimize_omittag == "YES") { platformerrorhandler1_warning("MINIMIZE OMITTAG YES and VALIDITY TAG features specified in SGML declaration", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); } sgmldecl1_features_other_validity = "NOASSERT" } } function validator3_endDocument( e) { validator3_is_governed_by_content_reference = docinfo3_content_reference if (validator3_doctype == "") { if (sgmldecl1_features_minimize_implydef_doctype != "YES" && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("No document type declaration and IMPLYDEF DOCTYPE NO specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } { while (stack15_len) { e = validator3_close_potentially_completed_element() if (!((validator3_doctype, e) in markupdefinitions1_element_end_tag_omittable) && ! ((validator3_doctype, e) in markupdefinitions1_element_declarations && markupdefinitions1_element_declarations[validator3_doctype, e] == "EMPTY" && sgmldecl1_features_minimize_emptynrm == "NO")) { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError(concat("unterminated instance - end-tag omission not allowed for element '",e,"'"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } ; validator3_dispatch_end_element(e) { { if ((sgmldecl1_features_other_validity == "TYPE") && stack15_len == stack20_len + 1 && !stack20_stack[stack20_len]) stack20_pop(); }; docinfo3_most_recently_ended_element = stack15_stack[stack15_len]; stack15_pop(); if (validator3_error_context_info_enabled) stack16_pop(); } } } } function validator3_startDTD(name, publicid, systemid, xmltext) { if (name == "#IMPLIED") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("internal error: received #IMPLIED doctype", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (validator3_doctype == "") validator3_doctype = name } function validator3_endDTD() { } function validator3_startEntity(name) { if (validator3_doctype == "") { if (sgmldecl1_features_minimize_implydef_doctype != "YES" && sgmldecl1_features_minimize_implydef_element != "YES") { if (validator3_error_context_info_enabled) { for (validator3_advanced_error_context_info_i = 1; validator3_advanced_error_context_info_i <= stack15_len; validator3_advanced_error_context_info_i++) { split(stack16_stack[validator3_advanced_error_context_info_i], validator3_advanced_error_context_info_msg_components, /[[:space:]]*:[[:space:]]*/); platformerrorhandler1_error(concat("at element ", stack15_stack[validator3_advanced_error_context_info_i], ": ", validator3_advanced_error_context_info_msg_components[1+ 2]), validator3_advanced_error_context_info_msg_components[1+ 0], "", validator3_advanced_error_context_info_msg_components[1+ 1], 0); } } platformerrorhandler1_fatalError("No document type declaration and IMPLYDEF DOCTYPE NO specified", locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } return } validator3_on_content_token("#PCDATA", name, "data entity") } function validator3_endEntity(name) { } function validator3_startCDATA(text) { } function validator3_endCDATA() { } function validator3_startRCDATA(text) { } function validator3_endRCDATA() {} function validator3_startINCLUDE(text) { } function validator3_endINCLUDE() { } function validator3_startIGNORE(text) { } function validator3_endIGNORE() { } function validator3_comment(text) { } BEGIN { split("", stack17_stack) stack17_len = 0 } function stack17_stacklength() { return stack17_len } function stack17_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack17_stacklength() for (i = 1; i <= n; i++) if (stack17_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack17_push(elmt) { ; stack17_stack[++stack17_len] = elmt } function stack17_top( l,r) { r = "" l = stack17_stacklength() if (l == 0) r = "" else r = stack17_stack[l] ; return r } function stack17_pop(n, l) { if (n == "") n = 1 l = stack17_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack17_len == 0) break delete stack17_stack[l] --stack17_len } ; } function stack17_popto(targetelmt, n) { for (n = stack17_stacklength(); n > 0 && stack17_stack[n] != targetelmt; n--) { delete stack17_stack[n] stack17_len-- } } function stack17_popall( n) { for (n = stack17_stacklength(); n > 0; n--) { delete stack17_stack[n] stack17_len-- } } function stack17_poptolevel(targetelmt, level, l,n) { n = stack17_stackindex(targetelmt, level) for (l = stack17_stacklength(); l > n; l--) { delete stack17_stack[l] stack17_len-- } } function stack17_peek(i) { return stack17_stack[i] } function stack17_clear() { split("", stack17_stack) stack17_len = 0 } function strptime_strptime(val, fmt, fmtA,valA,i,n,specA,spec,tmp,r) { if (fmt ~ /^%a,/) { sub(",", "", fmt) sub(",", "", val) } if (fmt ~ / %Z$/) { sub(/ %Z$/, "", fmt) sub(/ GMT$/, "", val) } if (fmt ~ /%z$/) { sub(/%z$/, "", fmt) sub(/\+00:00$/, "", val) } if (fmt ~ /Z$/) { sub(/Z$/, "", fmt) sub(/Z$/, "", val) } if (fmt ~ /T/) { sub(/T/, " ", fmt) sub(/T/, " ", val) } if (match(fmt, /%[A-Za-z]+%([A-Za-z]+(%[A-Za-z]+)?)?/)) { string_before = substr(fmt, 1, RSTART - 1) string_after = substr(fmt, RSTART + RLENGTH) if (string_before ~ /%/ || string_after ~ /%/) { return 0 } if (string_before != substr(val, 1, RSTART - 1)) return 0 if (substr(fmt, RSTART, RLENGTH) == "%y%m") { if (string_after != substr(val, RSTART + 4)) return 0 r = strftime_mktime(sprintf("%4d %2d %2d %2d %2d %2d", 2000 + substr(val, RSTART, 2), substr(val, RSTART + 2, 2), 1, 0, 0, 0)) return r } else if (substr(fmt, RSTART, RLENGTH) == "%Y%m") { if (string_after != substr(val, RSTART + 6)) return 0 r = strftime_mktime(sprintf("%4d %2d %2d %2d %2d %2d", substr(val, RSTART, 4), substr(val, RSTART + 4, 2), 1, 0, 0, 0)) return r } else if (substr(fmt, RSTART, RLENGTH) == "%Y%m%d") { if (string_after != substr(val, RSTART + 8)) return 0 r = strftime_mktime(sprintf("%4d %2d %2d %2d %2d %2d", substr(val, RSTART, 4), substr(val, RSTART + 4, 2), substr(val, RSTART + 6, 2), 0, 0, 0)) return r } return 0 } n = split(val,valA,/[^[:alnum:]]+/) split(fmt,fmtA,/[^[:alpha:]]+/) for (i=1; i<=n; i++) { specA[fmtA[i+1]] = valA[i] } if (!specA["m"]) { match("janfebmaraprmayjunjulaugsepoctnovdec",tolower(specA["b"])) tmp = RSTART + 2 specA["m"] = tmp / 3 } spec = sprintf("%4d %2d %2d %2d %2d %2d", specA["Y"], specA["m"], specA["d"], specA["H"], specA["M"], specA["S"]) return strftime_mktime(spec) } BEGIN { } function strftime_weeknumber(flag, yearday, weekday, n,tmp) { if (flag == "U") { tmp = yearday + 5 - (weekday-1) return int(tmp / 7) } if (flag == "W") { tmp = yearday + 5 - ((weekday>1) ? (weekday-2) : 6) return int(tmp / 7) } tmp = yearday + 8 - (weekday>1 ? (weekday - 2) : 6) n = int(tmp / 7) return n ? n : 53 } function strftime_strftime(fmt, epoc, wipmin,second,wipheure,minute,wipjour,hour,year,wipjour_an,leapmod,an,isleap,longmois,wipjour_an2,daynames,abdaynames,monthnames,abmonthnames) { split("", daynames) split("", abdaynames) split("", monthnames) split("", abmonthnames) ENVIRON["TZ"] = "GMT" wipmin = int( epoc / 60 ) second = epoc % 60 wipheure = int( wipmin / 60 ) minute = wipmin % 60 wipjour = int( wipheure / 24 ) + 1 hour = wipheure % 24 year = int( wipjour / 365 ) + 1970 wipjour_an = wipjour % 365 leapmod = 0 for ( an=1970 ; an= wipjour_an ) { year = year - 1 if ( (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ) { wipjour_an = 366 + wipjour_an } else { wipjour_an = 365 + wipjour_an } } yearday = wipjour_an - leapmod if ( (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ) { isleap = "Y" } longmois=31 month=1 wipjour_an2 = yearday while ( wipjour_an2 > longmois ) { if ( month == 1 ) { if ( isleap == "Y" ) { wipjour_an2 = wipjour_an2 - longmois ; longmois = 29 } else { wipjour_an2 = wipjour_an2 - longmois ; longmois = 28 } } if ( month == 2 ) { wipjour_an2 = wipjour_an2 - longmois ; longmois = 31 } if ( month == 3 ) { wipjour_an2 = wipjour_an2 - longmois ; longmois = 30 } if ( month == 4 ) { wipjour_an2 = wipjour_an2 - longmois ; longmois = 31 } if ( month == 5 ) { wipjour_an2 = wipjour_an2 - longmois ; longmois = 30 } if ( month == 6 ) { wipjour_an2 = wipjour_an2 - longmois ; longmois = 31 } if ( month == 7 ) { wipjour_an2 = wipjour_an2 - longmois ; longmois = 31 } if ( month == 8 ) { wipjour_an2 = wipjour_an2 - longmois ; longmois = 30 } if ( month == 9 ) { wipjour_an2 = wipjour_an2 - longmois ; longmois = 31 } if ( month == 10 ) { wipjour_an2 = wipjour_an2 - longmois ; longmois = 30 } if ( month == 11 ) { wipjour_an2 = wipjour_an2 - longmois ; longmois = 31 } month++ } day = wipjour_an2 weekday = (wipjour + 3) % 7 split("Mon Tue Wed Thu Fri Sat Sun",abdaynames, / /) split("Monday Tuesday Wednesday Thursday Friday Saturday Sunday",daynames, / /) split("January February March April May June July August September October November December",monthnames, / /) split("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec",abmonthnames, / /) gsub("%E|%O","%",fmt) gsub("%c","%a %b %e %H:%M:%S %Z %Y",fmt) gsub("%x","%m %d %y",fmt) gsub("%X","%H:%M:%S",fmt) gsub("%r","%I:%M:%S %p",fmt) gsub("%D","%m/%d/%y",fmt) gsub("%R","%H:%M",fmt) gsub("%T","%H:%M:%S",fmt) gsub("%a",abdaynames[weekday],fmt) gsub("%A",daynames[weekday],fmt) gsub("%B",monthnames[month],fmt) gsub("%b",abmonthnames[month],fmt) gsub("%C",int(year/100),fmt) gsub("%d",sprintf("%02d", day),fmt) gsub("%h",abmonthnames[month],fmt) gsub("%H",sprintf("%02d",hour),fmt) gsub("%I",sprintf("%02d",hour % 12 == 0 ? 12 : hour % 12),fmt) gsub("%j",sprintf("%03d",yearday),fmt) gsub("%k",sprintf("%2d",hour),fmt) gsub("%l",sprintf("%2d",hour % 12 == 0 ? 12 : hour % 12),fmt) gsub("%m",sprintf("%02d",month),fmt) gsub("%M",sprintf("%02d",minute),fmt) gsub("%n","\n",fmt) gsub("%p",hour < 12 ? "AM" : "PM",fmt) gsub("%S",sprintf("%02d",second),fmt) gsub("%t","\t",fmt) gsub("%u",weekday == 1 ? 7 : weekday-1,fmt) gsub("%U",sprintf("%02d",strftime_weeknumber("U", yearday, weekday)),fmt) gsub("%V",sprintf("%02d",strftime_weeknumber("V", yearday, weekday)),fmt) gsub("%w",weekday-1,fmt) gsub("%W",sprintf("%02d",strftime_weeknumber("W", yearday, weekday)),fmt) gsub("%y",sprintf("%02d",year % 100),fmt) gsub("%Y",year,fmt) gsub("%Z",ENVIRON["TZ"],fmt) # Time Zone Name return fmt } function strftime_tm_isleap(year, ret) { ret = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) return ret } function strftime_tm_addup(a, total,yearsecs,daysecs,hoursecs,i,j) { strftime_init_month_lengths() hoursecs = 60 * 60 daysecs = 24 * hoursecs yearsecs = 365 * daysecs total = (a[1] - 1970) * yearsecs # extra day for leap years for (i = 1970; i < a[1]; i++) if (strftime_tm_isleap(i)) total += daysecs j = strftime_tm_isleap(a[1]) for (i = 1; i < a[2]; i++) total += tm_months[j, i] * daysecs total += (a[3] - 1) * daysecs total += a[4] * hoursecs total += a[5] * 60 total += a[6] return total } function strftime_init_month_lengths() { if (month_lengths_initialized) return month_lengths_initialized = "1" tm_months[0,1] = tm_months[1,1] = 31 tm_months[0,2] = 28; tm_months[1,2] = 29 tm_months[0,3] = tm_months[1,3] = 31 tm_months[0,4] = tm_months[1,4] = 30 tm_months[0,5] = tm_months[1,5] = 31 tm_months[0,6] = tm_months[1,6] = 30 tm_months[0,7] = tm_months[1,7] = 31 tm_months[0,8] = tm_months[1,8] = 31 tm_months[0,9] = tm_months[1,9] = 30 tm_months[0,10] = tm_months[1,10] = 31 tm_months[0,11] = tm_months[1,11] = 30 tm_months[0,12] = tm_months[1,12] = 31 } function strftime_mktime(str, res1,res2,a,b,i,j,t,diff) { i = split(str, a, " ") if (i != 6) return -1 for (j in a) { a[j] += 0 } if (a[1] < 1970 || a[2] < 1 || a[2] > 12 || a[3] < 1 || a[3] > 31 || a[4] < 0 || a[4] > 23 || a[5] < 0 || a[5] > 59 || a[6] < 0 || a[6] > 61 ) return -1 res1 = strftime_tm_addup(a) t = strftime_strftime("%Y %m %d %H %M %S", res1) split(t, b, " ") res2 = strftime_tm_addup(b) diff = res1 - res2 res1 += diff return res1 } BEGIN { fpi1_str = "" fpi1_owner_identifier = "" fpi1_public_text_class = "" fpi1_public_text_description = "" fpi1_public_text_language = "" fpi1_public_text_designating_sequence = "" fpi1_public_text_display_version = "" fpi1_is_invalid = "" } function fpi1_reset() { fpi1_str = "" fpi1_owner_identifier = "" fpi1_public_text_class = "" fpi1_public_text_description = "" fpi1_public_text_language = "" fpi1_public_text_designating_sequence = "" fpi1_public_text_display_version = "" fpi1_is_invalid = "" } function fpi1_set(str, fpi_components,text_identifier,rest,registration_status_char,n) { split("", fpi_components) text_identifier = "" rest = "" registration_status_char = "" fpi1_reset() fpi1_str = str if (!(str ~ /^[\n\r A-Za-z0-9()+\54.\/:=?-]+$/)) { fpi1_is_invalid = "invalid mininum data character" return "" } sub(/^ +/, "", fpi1_str) sub(/ +$/, "", fpi1_str) gsub(/ +/, " ", fpi1_str) if (substr(fpi1_str, 1, 3) == "+//") { rest = substr(fpi1_str, 4) registration_status_char = "+" } else if (substr(fpi1_str, 1, 3) == "-//") { rest = substr(fpi1_str, 4) registration_status_char = "-" } else if (substr(fpi1_str, 1, 3) == "ISO") rest = fpi1_str n = split(rest, fpi_components, "//") if (n != 3 && n != 4) { fpi1_is_invalid = "invalid text identifier syntax" return "" } if (registration_status_char) fpi1_owner_identifier = concat(registration_status_char, "//", fpi_components[1+ 0]) else fpi1_owner_identifier = fpi_components[1+ 0] if (!match(fpi_components[1+ 1], /^[A-Z]+ /)) { fpi1_is_invalid = "missing public text class" return "" } fpi1_public_text_class = substr(fpi_components[1+ 1], 1, RLENGTH - 1) fpi1_public_text_description = substr(fpi_components[1+ 1], RLENGTH + 1) if (!(fpi1_public_text_class ~ /^(CAPACITY)|(CHARSET)|(DOCUMENT)|(DTD)|(ELEMENTS)|(ENTITIES)|(LPD)|(NONSGML)|(NOTATION)|(SHORTREF)|(SUBDOC)|(SYNTAX)|(TEXT)$/)) { fpi1_is_invalid = "invalid public text class" return "" } if (n == 3) { if (fpi1_public_text_class == "CHARSET") fpi1_public_text_designating_sequence = fpi_components[1+ 2] else fpi1_public_text_language = fpi_components[1+ 2] } else if (n == 4) { if (fpi1_public_text_class == "CHARSET") fpi1_public_text_designating_sequence = fpi_components[1+ 1] else fpi1_public_text_language = fpi_components[1+ 2] fpi1_public_text_display_version = fpi_components[1+ 3] } return "1" } function fpi1_set_urn(urn) { if (substr(urn, 1, 13) != "urn:publicid:") { fpi1_is_invalid = "invalid public identifier URN" return } urn = substr(urn, 14) gsub(/%25/, "%", urn) gsub(/%23/, "#", urn) gsub(/%3F/, "?", urn) gsub(/%27/, "'", urn) gsub(/%3B/, ";", urn) gsub(/%2F/, "/", urn) gsub(/:/, "//", urn) gsub(/%3A/, ":", urn) gsub(/;/, "::", urn) gsub(/\+/, " ", urn) gsub(/%2B/, "+", urn) ; fpi1_set(urn) } function fpi1_get() { return fpi1_str } function fpi1_get_uri() { } BEGIN { urlStr = "" urn1_href = "" urn1_origin = "" urn1_protocol = "" urn1_username = "" urn1_password = "" urn1_host = "" urn1_hostname = "" urn1_port = "" urn1_pathname = "" urn1_search = "" urn1_hash = "" urn1_is_invalid = "" urn1_set_href(urlStr) urn1_baseUrlStr = "" } function urn1_reset() { urn1_href = "" urn1_origin = "" urn1_protocol = "" urn1_username = "" urn1_password = "" urn1_host = "" urn1_hostname = "" urn1_port = "" urn1_pathname = "" urn1_search = "" urn1_hash = "" urn1_is_invalid = "" } function urn1_set_href(urlStr, rest,tmp,auth,usrinfo,p,q) { rest = "" tmp = "" auth = "" usrinfo = "" if (urn1_baseUrlStr) { print("URN.js: baseUrlStr unsupported") exit(1) } urn1_reset() rest = urlStr if (match(rest, /^([A-Za-z][A-Za-z0-9+.-]*):/)) { urn1_protocol = tolower(substr(rest, 1, RLENGTH)) rest = substr(rest, RLENGTH + 1) ; } if (urn1_protocol == "urn:") { if (!match(rest, /^([A-Za-z][A-Za-z0-9+.-]*):/)) { urn1_is_invalid = "invalid URN" return } urn1_href = ("urn:" rest) return } else if (urn1_protocol == "mailto:") { urn1_href = ("mailto:" rest) return } if (!rest || substr(rest, 1, 1) == "#" || substr(rest, 1, 1) == "?") { if (urn1_protocol) urn1_pathname = "/" } else if (substr(rest, 1, 2) == "//") { if (length(rest) == 2 || substr(rest, 3, 1) == "#" || substr(rest, 3, 1) == "?" ) { rest = substr(rest, 3) } else if (substr(rest, 3, 1) == "/") { rest = substr(rest, 3) } else { rest = substr(rest, 3) ; if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=]))+)(:([0-9]*))?)/)) { urn1_is_invalid = "invalid authority part in URL" return } ; auth = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) p = sgmlutil_sgml_rindex(auth, "@") if (p) { usrinfo = substr(auth, 1, p - 1) q = index(usrinfo, ":") if (q) { urn1_username = substr(usrinfo, 1, q - 1) urn1_password = substr(usrinfo, q + 1) } else { urn1_username = usrinfo } tmp = substr(auth, p + 1) } else tmp = auth ; p = index(tmp, ":") if (p) { urn1_host = tolower(substr(tmp, 1, p - 1)) urn1_port = substr(tmp, p + 1) if (urn1_protocol == "http:" && urn1_port == "80") { urn1_port = "" auth = substr(auth, 1, length(auth) - (length(tmp) - p) - 1) } else if (urn1_protocol == "https:" && urn1_port == "443") { urn1_port = "" auth = substr(auth, 1, length(auth) - (length(tmp) - p) - 1) } ; urn1_hostname = urn1_host } else { urn1_host = tolower(tmp) urn1_hostname = urn1_host } } if (rest) { if (!match(rest, /^((\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)/)) { urn1_is_invalid = "invalid absolute path in URL" return } urn1_pathname = substr(rest, 1, RLENGTH) ; rest = substr(rest, RLENGTH + 1) } else urn1_pathname = "/" } else if (substr(rest, 1, 1) == "/") { if (!match(rest, /^(\/(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)?)$/)) { urn1_is_invalid = "invalid absolute path in URL" return } urn1_pathname = substr(rest, 1, RLENGTH) ; rest = substr(rest, RLENGTH + 1) } else if (urn1_protocol) { if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)$/)) { urn1_is_invalid = "invalid rootless path in URL" return } urn1_pathname = ("/" substr(rest, 1, RLENGTH)) rest = substr(rest, RLENGTH + 1) } else if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)/)) { urn1_is_invalid = "invalid rootless path in URL" return } else { urn1_pathname = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } ; if (rest && substr(rest, 1, 1) == "?") { if (!match(rest, /^\?((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)|\/|\?)*/)) { urn1_is_invalid = "invalid query in URL" return } urn1_search = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } ; if (rest && substr(rest, 1, 1) == "#") { if (!match(rest, /^(\043)((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)|\/|\?)*/)) { urn1_is_invalid = "invalid fragment in URL" return } urn1_hash = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } if (rest && length(rest) != 0) { urn1_is_invalid = "invalid characters following URI" return } if (urn1_pathname) { if (substr(urn1_pathname, 1, 1) == "/" && (urn1_protocol || auth)) urn1_href = concat(urn1_protocol, "//", auth, urn1_pathname) else urn1_href = urn1_pathname } else { if (auth) { urn1_is_invalid = "invalid hierarchical URI" return } urn1_href = urn1_protocol } if (urn1_search) urn1_href = (urn1_href urn1_search) if (urn1_hash) urn1_href = (urn1_href urn1_hash) } BEGIN { xmlhttprequest1_method = "" xmlhttprequest1_url = "" xmlhttprequest1_async = "" xmlhttprequest1_user = "" xmlhttprequest1_password = "" xmlhttprequest1_status = 0 xmlhttprequest1_responseText = "" } function xmlhttprequest1_open(method, url, async, user, password) { xmlhttprequest1_method = "" xmlhttprequest1_url = url xmlhttprequest1_async = async xmlhttprequest1_user = user xmlhttprequest1_password = password xmlhttprequest1_status = 0 } function xmlhttprequest1_send(body, cmd,buf,buf_save) { cmd = "" buf = "" buf_save = "" xmlhttprequest1_responseText = "" if (body) { print "HTTP body payloads not supported" >> "/dev/fd/2" exit(1) } cmd = "curl -s -w '\n%{http_code}\n' -H 'Accept: text/xml' '" xmlhttprequest1_url "'" while ((cmd | getline buf) > 0) { buf_save = buf xmlhttprequest1_responseText = xmlhttprequest1_responseText buf "\n" } if (ERRNO) { print "'" xmlhttprequest1_url "': " ERRNO >> "/dev/fd/2" exit(1) } xmlhttprequest1_status = 0 + buf_save sub(/[^\n]+\n$/, "", xmlhttprequest1_responseText) close(cmd) } function htmlforminputvaluechecker2_normalize_value(value, parameters, pattern_param,type_param,p) { pattern_param = "" type_param = "" p = "" ; for (p in parameters) { ; } if (sgmldecl1_syntax_namecase_general == "YES") { if ("TYPE" in parameters) type_param = parameters["TYPE"] if ("PATTERN" in parameters) pattern_param = parameters["PATTERN"] } else { if ("type" in parameters) type_param = toupper(parameters["type"]) if ("pattern" in parameters) pattern_param = parameters["pattern"] } ; gsub(/[\n\r]/, "", value) if (type_param == "TEXT" || type_param == "") { ; } else if (type_param == "EMAIL") { ; if (!(value ~ /^[a-zA-Z0-9.!#$%&''*+\/=?^_`{|}~-]+@[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*$/)) return "" } else if (type_param == "URL") { ; urn3_set_href(value) ; if (urn3_is_invalid) return "" value = urn3_href } else if (type_param == "TIME") { ; if (!(value ~ /^(([01][0-9])|(2[0123])):[0-5][0-9](:[0-5][0-9](\.[0-9]([0-9][0-9]?)?)?)?$/)) return "" } else if (type_param == "DATE") { ; if (!(value ~ /^[[:digit:]][[:digit:]][[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]$/)) return "" if (strptime_strptime(value, "%Y-%m-%d") == -1) return "" } else if (type_param == "DATETIME-LOCAL") { ; if (!(value ~ /^[[:digit:]][[:digit:]][[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]T[[:digit:]][[:digit:]]:[[:digit:]][[:digit:]]:[[:digit:]][[:digit:]]$/)) return "" if (strptime_strptime(value, "%Y-%m-%dT%H:%M:%S") == -1) return "" } else if (type_param == "NUMBER") { ; if (!(value ~ /^[+-]?[0-9]+(\.[0-9]+)?([Ee][+-]?[0-9]+)?$/) && !(value ~ /^\.[0-9]+([Ee][+-]?[0-9]+)?$/)) return "" gsub(/\+/, "", value) sub(/E/, "e", value) sub(/^\./, "0.", value) sub(/^-\./, "-0.", value) } else { ; return "" } if (pattern_param != "") { pattern_param = ("^" pattern_param "$") if (index(pattern_param, "\"")) { pattern_param = regexpconvert_convert_to_posix_regexp(("'" pattern_param "'"), "") if (substr(pattern_param, 1, 1) != "'") return "" } else { pattern_param = regexpconvert_convert_to_posix_regexp(("\"" pattern_param "\""), "") if (substr(pattern_param, 1, 1) != "\"") return "" } pattern_param = substr(pattern_param, 2, length(pattern_param) - 2) ; if (!(value ~ pattern_param)) return "" } return value } BEGIN { split("", bundledfunctions1_digest) bundledfunctions1_init_digests() } function bundledfunctions1_init_digests() { } function bundledfunctions1_invoke_bundled_function(module_name, function_name, code_text, digest, args, v) { v = "" if (module_name) { if (!function_name) { platformerrorhandler1_fatalError(concat("notation ", function_name, ": ", "function name not provided when attempting ", "to invoke module function"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } for (v in args) system_env[v] = args[v] } else { if (!(function_name in bundledfunctions1_digest)) { platformerrorhandler1_fatalError(concat("notation ", function_name, ": ", "custom script-derived storage manager notation ", "not prebuilt into SGML processor executable"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } if (digest) { if (digest != bundledfunctions1_digest[function_name]) { platformerrorhandler1_fatalError(concat("notation ", function_name, ": ", "script code text doesn't match code text ", "prebuilt into SGML processor executable"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else if (code_text) { if (md5_md5(code_text) != bundledfunctions1_digest[function_name]) { platformerrorhandler1_fatalError(concat("notation ", function_name, ": ", "script code text doesn't match code text ", "prebuilt into SGML processor executable"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } else { platformerrorhandler1_fatalError(concat("notation ", function_name, ": ", "internal error: ", "custom script-derived storage manager notation ", "invocation attempt with neither code text nor digest info"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } if (!(sgmldecl1_syntax_namecase_general == "YES")) sgmlutil_convert_attribute_names_to_uppercase(args) if (module_name == "queryparamutils" && function_name == "generate_entity_decl") { queryparamutils_generate_entity_decl() return stdout_buffer } if (module_name == "queryparamutils" && function_name == "generate_attrspec_decl") { queryparamutils_generate_attrspec_decl() return stdout_buffer } if (module_name == "tsvparsing" && function_name == "generate_element_decl") { tsvparsing_generate_element_decl() return stdout_buffer } if (module_name == "tsvparsing" && function_name == "generate_entity_decl") { tsvparsing_generate_entity_decl() return stdout_buffer } if (module_name == "tsvparsing" && function_name == "generate_shortref_decl") { tsvparsing_generate_shortref_decl() return stdout_buffer } if (module_name == "tsvparsing" && function_name == "generate_usemap_decl") { tsvparsing_generate_usemap_decl() return stdout_buffer } if (module_name == "tsvparsing" && function_name == "generate_notation_decl") { tsvparsing_generate_notation_decl() return stdout_buffer } if (module_name == "tsvparsing" && function_name == "generate_linkattr_decl") { tsvparsing_generate_linkattr_decl() return stdout_buffer } if (module_name == "tsvparsing" && function_name == "generate_linkrule_decl") { tsvparsing_generate_linkrule_decl() return stdout_buffer } { platformerrorhandler1_fatalError(concat("notation ", function_name, ": internal error: ", "registered custom script-derived storage manager notation ", "invocation error"), locator1_get_set_system_id(), "", locator1_get_line_number(), 0); exit(1); } } BEGIN { split("", stack18_stack) stack18_len = 0 } function stack18_stacklength() { return stack18_len } function stack18_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack18_stacklength() for (i = 1; i <= n; i++) if (stack18_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack18_push(elmt) { ; stack18_stack[++stack18_len] = elmt } function stack18_top( l,r) { r = "" l = stack18_stacklength() if (l == 0) r = "" else r = stack18_stack[l] ; return r } function stack18_pop(n, l) { if (n == "") n = 1 l = stack18_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack18_len == 0) break delete stack18_stack[l] --stack18_len } ; } function stack18_popto(targetelmt, n) { for (n = stack18_stacklength(); n > 0 && stack18_stack[n] != targetelmt; n--) { delete stack18_stack[n] stack18_len-- } } function stack18_popall( n) { for (n = stack18_stacklength(); n > 0; n--) { delete stack18_stack[n] stack18_len-- } } function stack18_poptolevel(targetelmt, level, l,n) { n = stack18_stackindex(targetelmt, level) for (l = stack18_stacklength(); l > n; l--) { delete stack18_stack[l] stack18_len-- } } function stack18_peek(i) { return stack18_stack[i] } function stack18_clear() { split("", stack18_stack) stack18_len = 0 } function regexpconvert_convert_to_posix_regexp(pcre, posix_character_class_support, in_doublequote,in_singlequote,in_regexp,in_brackets,escaped,posix,c,i) { in_doublequote = "" in_singlequote = "" in_regexp = "" in_brackets = "" escaped = "" posix = "" c = "" if (length(pcre) == 0) return pcre if (substr(pcre, 1, 1) != substr(pcre, length(pcre), 1)) return "invalid regular expression: doesn't begin with and end in same char" if (substr(pcre, 1, 1) == "\"") in_doublequote = "1" else if (substr(pcre, 1, 1) == "'") in_singlequote = "1" else { if (substr(pcre, 1, 1) != "/") return "invalid regular expression: doesn't begin with quote or slash" in_regexp = "1" } posix = substr(pcre, 1, 1) for (i = 2; i <= length(pcre); i++) { c = substr(pcre, i, 1) if (c == "\\") { # if (escaped) { escaped = "" posix = posix "\\" } else { escaped = "1" continue } } else if (c == "\"") { if (in_doublequote && !escaped && i != length(pcre)) return "invalid regular expression: unescaped quote" if (escaped) { posix = posix "\\" escaped = "" } } else if (c == "'") { if (in_singlequote && !escaped && i != length(pcre)) return "invalid regular expression: unescaped quote" if (escaped) { posix = posix "\\" escaped = "" } } else if (c == "/") { if (in_regexp && !escaped && i != length(pcre)) return "invalid regular expression: unescaped slash" if (escaped) { posix = posix "\\" escaped = "" } } else if (c == "[") { if (escaped) { posix = posix "\\" escaped = "" } # # else { in_brackets = "1" } } else if (c == "]") { if (escaped) { posix = posix "\\" escaped = "" } else if (in_brackets) in_brackets = "" } else if (escaped) { escaped = "" if (in_brackets) { if (c == "s") { if (posix_character_class_support) posix = posix "[:space:]" else posix = posix "\\t\\n\\r\\40" continue } else if (c == "d") { if (posix_character_class_support) posix = posix "[:digit:]" else posix = posix "0-9" continue } else if (c == "w") { if (posix_character_class_support) posix = posix "[:alnum:]_" else posix = posix "0-0A-Za-z_" continue } else # posix = posix "\\" } else { if (c == "s") { if (posix_character_class_support) posix = posix "[[:space:]]" else posix = posix "[\\t\\n\\r ]" continue } else if (c == "d") { if (posix_character_class_support) posix = posix "[[:digit:]]" else posix = posix "[0-9]" continue } else if (c == "w") { if (posix_character_class_support) posix = posix "[[:alnum:]]|_" else posix = posix "[0-0A-Za-z_]" continue } else # posix = posix "\\" } } # posix = posix c } return posix } BEGIN { urlStr = "" urn2_href = "" urn2_origin = "" urn2_protocol = "" urn2_username = "" urn2_password = "" urn2_host = "" urn2_hostname = "" urn2_port = "" urn2_pathname = "" urn2_search = "" urn2_hash = "" urn2_is_invalid = "" urn2_set_href(urlStr) urn2_baseUrlStr = "" } function urn2_reset() { urn2_href = "" urn2_origin = "" urn2_protocol = "" urn2_username = "" urn2_password = "" urn2_host = "" urn2_hostname = "" urn2_port = "" urn2_pathname = "" urn2_search = "" urn2_hash = "" urn2_is_invalid = "" } function urn2_set_href(urlStr, rest,tmp,auth,usrinfo,p,q) { rest = "" tmp = "" auth = "" usrinfo = "" if (urn2_baseUrlStr) { print("URN.js: baseUrlStr unsupported") exit(1) } urn2_reset() rest = urlStr if (match(rest, /^([A-Za-z][A-Za-z0-9+.-]*):/)) { urn2_protocol = tolower(substr(rest, 1, RLENGTH)) rest = substr(rest, RLENGTH + 1) ; } if (urn2_protocol == "urn:") { if (!match(rest, /^([A-Za-z][A-Za-z0-9+.-]*):/)) { urn2_is_invalid = "invalid URN" return } urn2_href = ("urn:" rest) return } else if (urn2_protocol == "mailto:") { urn2_href = ("mailto:" rest) return } if (!rest || substr(rest, 1, 1) == "#" || substr(rest, 1, 1) == "?") { if (urn2_protocol) urn2_pathname = "/" } else if (substr(rest, 1, 2) == "//") { if (length(rest) == 2 || substr(rest, 3, 1) == "#" || substr(rest, 3, 1) == "?" ) { rest = substr(rest, 3) } else if (substr(rest, 3, 1) == "/") { rest = substr(rest, 3) } else { rest = substr(rest, 3) ; if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=]))+)(:([0-9]*))?)/)) { urn2_is_invalid = "invalid authority part in URL" return } ; auth = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) p = sgmlutil_sgml_rindex(auth, "@") if (p) { usrinfo = substr(auth, 1, p - 1) q = index(usrinfo, ":") if (q) { urn2_username = substr(usrinfo, 1, q - 1) urn2_password = substr(usrinfo, q + 1) } else { urn2_username = usrinfo } tmp = substr(auth, p + 1) } else tmp = auth ; p = index(tmp, ":") if (p) { urn2_host = tolower(substr(tmp, 1, p - 1)) urn2_port = substr(tmp, p + 1) if (urn2_protocol == "http:" && urn2_port == "80") { urn2_port = "" auth = substr(auth, 1, length(auth) - (length(tmp) - p) - 1) } else if (urn2_protocol == "https:" && urn2_port == "443") { urn2_port = "" auth = substr(auth, 1, length(auth) - (length(tmp) - p) - 1) } ; urn2_hostname = urn2_host } else { urn2_host = tolower(tmp) urn2_hostname = urn2_host } } if (rest) { if (!match(rest, /^((\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)/)) { urn2_is_invalid = "invalid absolute path in URL" return } urn2_pathname = substr(rest, 1, RLENGTH) ; rest = substr(rest, RLENGTH + 1) } else urn2_pathname = "/" } else if (substr(rest, 1, 1) == "/") { if (!match(rest, /^(\/(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)?)$/)) { urn2_is_invalid = "invalid absolute path in URL" return } urn2_pathname = substr(rest, 1, RLENGTH) ; rest = substr(rest, RLENGTH + 1) } else if (urn2_protocol) { if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)$/)) { urn2_is_invalid = "invalid rootless path in URL" return } urn2_pathname = ("/" substr(rest, 1, RLENGTH)) rest = substr(rest, RLENGTH + 1) } else if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)/)) { urn2_is_invalid = "invalid rootless path in URL" return } else { urn2_pathname = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } ; if (rest && substr(rest, 1, 1) == "?") { if (!match(rest, /^\?((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)|\/|\?)*/)) { urn2_is_invalid = "invalid query in URL" return } urn2_search = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } ; if (rest && substr(rest, 1, 1) == "#") { if (!match(rest, /^(\043)((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)|\/|\?)*/)) { urn2_is_invalid = "invalid fragment in URL" return } urn2_hash = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } if (rest && length(rest) != 0) { urn2_is_invalid = "invalid characters following URI" return } if (urn2_pathname) { if (substr(urn2_pathname, 1, 1) == "/" && (urn2_protocol || auth)) urn2_href = concat(urn2_protocol, "//", auth, urn2_pathname) else urn2_href = urn2_pathname } else { if (auth) { urn2_is_invalid = "invalid hierarchical URI" return } urn2_href = urn2_protocol } if (urn2_search) urn2_href = (urn2_href urn2_search) if (urn2_hash) urn2_href = (urn2_href urn2_hash) } function htmlforminputvaluechecker3_normalize_value(value, parameters, pattern_param,type_param,p) { pattern_param = "" type_param = "" p = "" ; for (p in parameters) { ; } if (sgmldecl1_syntax_namecase_general == "YES") { if ("TYPE" in parameters) type_param = parameters["TYPE"] if ("PATTERN" in parameters) pattern_param = parameters["PATTERN"] } else { if ("type" in parameters) type_param = toupper(parameters["type"]) if ("pattern" in parameters) pattern_param = parameters["pattern"] } ; gsub(/[\n\r]/, "", value) if (type_param == "TEXT" || type_param == "") { ; } else if (type_param == "EMAIL") { ; if (!(value ~ /^[a-zA-Z0-9.!#$%&''*+\/=?^_`{|}~-]+@[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*$/)) return "" } else if (type_param == "URL") { ; urn4_set_href(value) ; if (urn4_is_invalid) return "" value = urn4_href } else if (type_param == "TIME") { ; if (!(value ~ /^(([01][0-9])|(2[0123])):[0-5][0-9](:[0-5][0-9](\.[0-9]([0-9][0-9]?)?)?)?$/)) return "" } else if (type_param == "DATE") { ; if (!(value ~ /^[[:digit:]][[:digit:]][[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]$/)) return "" if (strptime_strptime(value, "%Y-%m-%d") == -1) return "" } else if (type_param == "DATETIME-LOCAL") { ; if (!(value ~ /^[[:digit:]][[:digit:]][[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]T[[:digit:]][[:digit:]]:[[:digit:]][[:digit:]]:[[:digit:]][[:digit:]]$/)) return "" if (strptime_strptime(value, "%Y-%m-%dT%H:%M:%S") == -1) return "" } else if (type_param == "NUMBER") { ; if (!(value ~ /^[+-]?[0-9]+(\.[0-9]+)?([Ee][+-]?[0-9]+)?$/) && !(value ~ /^\.[0-9]+([Ee][+-]?[0-9]+)?$/)) return "" gsub(/\+/, "", value) sub(/E/, "e", value) sub(/^\./, "0.", value) sub(/^-\./, "-0.", value) } else { ; return "" } if (pattern_param != "") { pattern_param = ("^" pattern_param "$") if (index(pattern_param, "\"")) { pattern_param = regexpconvert_convert_to_posix_regexp(("'" pattern_param "'"), "") if (substr(pattern_param, 1, 1) != "'") return "" } else { pattern_param = regexpconvert_convert_to_posix_regexp(("\"" pattern_param "\""), "") if (substr(pattern_param, 1, 1) != "\"") return "" } pattern_param = substr(pattern_param, 2, length(pattern_param) - 2) ; if (!(value ~ pattern_param)) return "" } return value } BEGIN { split("", stack19_stack) stack19_len = 0 } function stack19_stacklength() { return stack19_len } function stack19_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack19_stacklength() for (i = 1; i <= n; i++) if (stack19_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack19_push(elmt) { ; stack19_stack[++stack19_len] = elmt } function stack19_top( l,r) { r = "" l = stack19_stacklength() if (l == 0) r = "" else r = stack19_stack[l] ; return r } function stack19_pop(n, l) { if (n == "") n = 1 l = stack19_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack19_len == 0) break delete stack19_stack[l] --stack19_len } ; } function stack19_popto(targetelmt, n) { for (n = stack19_stacklength(); n > 0 && stack19_stack[n] != targetelmt; n--) { delete stack19_stack[n] stack19_len-- } } function stack19_popall( n) { for (n = stack19_stacklength(); n > 0; n--) { delete stack19_stack[n] stack19_len-- } } function stack19_poptolevel(targetelmt, level, l,n) { n = stack19_stackindex(targetelmt, level) for (l = stack19_stacklength(); l > n; l--) { delete stack19_stack[l] stack19_len-- } } function stack19_peek(i) { return stack19_stack[i] } function stack19_clear() { split("", stack19_stack) stack19_len = 0 } function htmlforminputvaluechecker4_normalize_value(value, parameters, pattern_param,type_param,p) { pattern_param = "" type_param = "" p = "" ; for (p in parameters) { ; } if (sgmldecl1_syntax_namecase_general == "YES") { if ("TYPE" in parameters) type_param = parameters["TYPE"] if ("PATTERN" in parameters) pattern_param = parameters["PATTERN"] } else { if ("type" in parameters) type_param = toupper(parameters["type"]) if ("pattern" in parameters) pattern_param = parameters["pattern"] } ; gsub(/[\n\r]/, "", value) if (type_param == "TEXT" || type_param == "") { ; } else if (type_param == "EMAIL") { ; if (!(value ~ /^[a-zA-Z0-9.!#$%&''*+\/=?^_`{|}~-]+@[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*$/)) return "" } else if (type_param == "URL") { ; urn5_set_href(value) ; if (urn5_is_invalid) return "" value = urn5_href } else if (type_param == "TIME") { ; if (!(value ~ /^(([01][0-9])|(2[0123])):[0-5][0-9](:[0-5][0-9](\.[0-9]([0-9][0-9]?)?)?)?$/)) return "" } else if (type_param == "DATE") { ; if (!(value ~ /^[[:digit:]][[:digit:]][[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]$/)) return "" if (strptime_strptime(value, "%Y-%m-%d") == -1) return "" } else if (type_param == "DATETIME-LOCAL") { ; if (!(value ~ /^[[:digit:]][[:digit:]][[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]T[[:digit:]][[:digit:]]:[[:digit:]][[:digit:]]:[[:digit:]][[:digit:]]$/)) return "" if (strptime_strptime(value, "%Y-%m-%dT%H:%M:%S") == -1) return "" } else if (type_param == "NUMBER") { ; if (!(value ~ /^[+-]?[0-9]+(\.[0-9]+)?([Ee][+-]?[0-9]+)?$/) && !(value ~ /^\.[0-9]+([Ee][+-]?[0-9]+)?$/)) return "" gsub(/\+/, "", value) sub(/E/, "e", value) sub(/^\./, "0.", value) sub(/^-\./, "-0.", value) } else { ; return "" } if (pattern_param != "") { pattern_param = ("^" pattern_param "$") if (index(pattern_param, "\"")) { pattern_param = regexpconvert_convert_to_posix_regexp(("'" pattern_param "'"), "") if (substr(pattern_param, 1, 1) != "'") return "" } else { pattern_param = regexpconvert_convert_to_posix_regexp(("\"" pattern_param "\""), "") if (substr(pattern_param, 1, 1) != "\"") return "" } pattern_param = substr(pattern_param, 2, length(pattern_param) - 2) ; if (!(value ~ pattern_param)) return "" } return value } BEGIN { split("", stack20_stack) stack20_len = 0 } function stack20_stacklength() { return stack20_len } function stack20_stackindex(targetelmt, level, cnt,i,n) { cnt = 0 n = stack20_stacklength() for (i = 1; i <= n; i++) if (stack20_stack[i] == targetelmt) if (cnt + 1 == level) return i else cnt++ return i } function stack20_push(elmt) { ; stack20_stack[++stack20_len] = elmt } function stack20_top( l,r) { r = "" l = stack20_stacklength() if (l == 0) r = "" else r = stack20_stack[l] ; return r } function stack20_pop(n, l) { if (n == "") n = 1 l = stack20_stacklength() ; n = l - n for (; l > n; l--) { ; if (stack20_len == 0) break delete stack20_stack[l] --stack20_len } ; } function stack20_popto(targetelmt, n) { for (n = stack20_stacklength(); n > 0 && stack20_stack[n] != targetelmt; n--) { delete stack20_stack[n] stack20_len-- } } function stack20_popall( n) { for (n = stack20_stacklength(); n > 0; n--) { delete stack20_stack[n] stack20_len-- } } function stack20_poptolevel(targetelmt, level, l,n) { n = stack20_stackindex(targetelmt, level) for (l = stack20_stacklength(); l > n; l--) { delete stack20_stack[l] stack20_len-- } } function stack20_peek(i) { return stack20_stack[i] } function stack20_clear() { split("", stack20_stack) stack20_len = 0 } BEGIN { urlStr = "" urn3_href = "" urn3_origin = "" urn3_protocol = "" urn3_username = "" urn3_password = "" urn3_host = "" urn3_hostname = "" urn3_port = "" urn3_pathname = "" urn3_search = "" urn3_hash = "" urn3_is_invalid = "" urn3_set_href(urlStr) urn3_baseUrlStr = "" } function urn3_reset() { urn3_href = "" urn3_origin = "" urn3_protocol = "" urn3_username = "" urn3_password = "" urn3_host = "" urn3_hostname = "" urn3_port = "" urn3_pathname = "" urn3_search = "" urn3_hash = "" urn3_is_invalid = "" } function urn3_set_href(urlStr, rest,tmp,auth,usrinfo,p,q) { rest = "" tmp = "" auth = "" usrinfo = "" if (urn3_baseUrlStr) { print("URN.js: baseUrlStr unsupported") exit(1) } urn3_reset() rest = urlStr if (match(rest, /^([A-Za-z][A-Za-z0-9+.-]*):/)) { urn3_protocol = tolower(substr(rest, 1, RLENGTH)) rest = substr(rest, RLENGTH + 1) ; } if (urn3_protocol == "urn:") { if (!match(rest, /^([A-Za-z][A-Za-z0-9+.-]*):/)) { urn3_is_invalid = "invalid URN" return } urn3_href = ("urn:" rest) return } else if (urn3_protocol == "mailto:") { urn3_href = ("mailto:" rest) return } if (!rest || substr(rest, 1, 1) == "#" || substr(rest, 1, 1) == "?") { if (urn3_protocol) urn3_pathname = "/" } else if (substr(rest, 1, 2) == "//") { if (length(rest) == 2 || substr(rest, 3, 1) == "#" || substr(rest, 3, 1) == "?" ) { rest = substr(rest, 3) } else if (substr(rest, 3, 1) == "/") { rest = substr(rest, 3) } else { rest = substr(rest, 3) ; if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=]))+)(:([0-9]*))?)/)) { urn3_is_invalid = "invalid authority part in URL" return } ; auth = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) p = sgmlutil_sgml_rindex(auth, "@") if (p) { usrinfo = substr(auth, 1, p - 1) q = index(usrinfo, ":") if (q) { urn3_username = substr(usrinfo, 1, q - 1) urn3_password = substr(usrinfo, q + 1) } else { urn3_username = usrinfo } tmp = substr(auth, p + 1) } else tmp = auth ; p = index(tmp, ":") if (p) { urn3_host = tolower(substr(tmp, 1, p - 1)) urn3_port = substr(tmp, p + 1) if (urn3_protocol == "http:" && urn3_port == "80") { urn3_port = "" auth = substr(auth, 1, length(auth) - (length(tmp) - p) - 1) } else if (urn3_protocol == "https:" && urn3_port == "443") { urn3_port = "" auth = substr(auth, 1, length(auth) - (length(tmp) - p) - 1) } ; urn3_hostname = urn3_host } else { urn3_host = tolower(tmp) urn3_hostname = urn3_host } } if (rest) { if (!match(rest, /^((\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)/)) { urn3_is_invalid = "invalid absolute path in URL" return } urn3_pathname = substr(rest, 1, RLENGTH) ; rest = substr(rest, RLENGTH + 1) } else urn3_pathname = "/" } else if (substr(rest, 1, 1) == "/") { if (!match(rest, /^(\/(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)?)$/)) { urn3_is_invalid = "invalid absolute path in URL" return } urn3_pathname = substr(rest, 1, RLENGTH) ; rest = substr(rest, RLENGTH + 1) } else if (urn3_protocol) { if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)$/)) { urn3_is_invalid = "invalid rootless path in URL" return } urn3_pathname = ("/" substr(rest, 1, RLENGTH)) rest = substr(rest, RLENGTH + 1) } else if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)/)) { urn3_is_invalid = "invalid rootless path in URL" return } else { urn3_pathname = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } ; if (rest && substr(rest, 1, 1) == "?") { if (!match(rest, /^\?((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)|\/|\?)*/)) { urn3_is_invalid = "invalid query in URL" return } urn3_search = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } ; if (rest && substr(rest, 1, 1) == "#") { if (!match(rest, /^(\043)((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)|\/|\?)*/)) { urn3_is_invalid = "invalid fragment in URL" return } urn3_hash = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } if (rest && length(rest) != 0) { urn3_is_invalid = "invalid characters following URI" return } if (urn3_pathname) { if (substr(urn3_pathname, 1, 1) == "/" && (urn3_protocol || auth)) urn3_href = concat(urn3_protocol, "//", auth, urn3_pathname) else urn3_href = urn3_pathname } else { if (auth) { urn3_is_invalid = "invalid hierarchical URI" return } urn3_href = urn3_protocol } if (urn3_search) urn3_href = (urn3_href urn3_search) if (urn3_hash) urn3_href = (urn3_href urn3_hash) } function md5_md5(input, nbytes,chars,i,bytes,hi,lo,words,nwords,state,a,b,c,d,j,x,digest,ret) { split("", chars) split("", bytes) split("", words) split("", state) split("", x) split("", digest) ret = "" if (! (("and", 1, 1) in bw_lookup)) { md5_ord_init(); md5_bitwise_init(); md5_md5_init(); } nbytes = split(input, chars, ""); for (i = 1; i <= nbytes; i++) bytes[i] = md5_ord(chars[i]); for (i = 1; i <= nbytes; i += 4) { hi = md5_bw_lshift(bytes[i + 3], 8) + bytes[i + 2]; lo = md5_bw_lshift(bytes[i + 1], 8) + bytes[i + 0]; words[nwords++] = md5_bw_lshift(hi, 16) + lo; } if (nbytes % 4 == 0) { words[nwords++] = 128; } else { words[nwords - 1] = words[nwords - 1] + md5_bw_lshift(128, (nbytes % 4) * 8); } while ((nwords % 16) != 14) nwords++; hi = md5_bw_rshift(nbytes * 8, 32); lo = (nbytes * 8) - md5_bw_lshift(hi, 32); words[nwords++] = lo; words[nwords++] = hi % (2 ^ 32); state[0] = 1732584193; state[1] = 4023233417; state[2] = 2562383102; state[3] = 271733878; for (i = 0; i < nwords; i += 16) { for (j = 0; j < 16; j++) x[j] = words[i + j]; a = state[0]; b = state[1]; c = state[2]; d = state[3]; a = md5_ff_func(a, b, c, d, x[ 0], S11, 3614090360); d = md5_ff_func(d, a, b, c, x[ 1], S12, 3905402710); c = md5_ff_func(c, d, a, b, x[ 2], S13, 606105819); b = md5_ff_func(b, c, d, a, x[ 3], S14, 3250441966); a = md5_ff_func(a, b, c, d, x[ 4], S11, 4118548399); d = md5_ff_func(d, a, b, c, x[ 5], S12, 1200080426); c = md5_ff_func(c, d, a, b, x[ 6], S13, 2821735955); b = md5_ff_func(b, c, d, a, x[ 7], S14, 4249261313); a = md5_ff_func(a, b, c, d, x[ 8], S11, 1770035416); d = md5_ff_func(d, a, b, c, x[ 9], S12, 2336552879); c = md5_ff_func(c, d, a, b, x[10], S13, 4294925233); b = md5_ff_func(b, c, d, a, x[11], S14, 2304563134); a = md5_ff_func(a, b, c, d, x[12], S11, 1804603682); d = md5_ff_func(d, a, b, c, x[13], S12, 4254626195); c = md5_ff_func(c, d, a, b, x[14], S13, 2792965006); b = md5_ff_func(b, c, d, a, x[15], S14, 1236535329); a = md5_gg_func(a, b, c, d, x[ 1], S21, 4129170786); d = md5_gg_func(d, a, b, c, x[ 6], S22, 3225465664); c = md5_gg_func(c, d, a, b, x[11], S23, 643717713); b = md5_gg_func(b, c, d, a, x[ 0], S24, 3921069994); a = md5_gg_func(a, b, c, d, x[ 5], S21, 3593408605); d = md5_gg_func(d, a, b, c, x[10], S22, 38016083); c = md5_gg_func(c, d, a, b, x[15], S23, 3634488961); b = md5_gg_func(b, c, d, a, x[ 4], S24, 3889429448); a = md5_gg_func(a, b, c, d, x[ 9], S21, 568446438); d = md5_gg_func(d, a, b, c, x[14], S22, 3275163606); c = md5_gg_func(c, d, a, b, x[ 3], S23, 4107603335); b = md5_gg_func(b, c, d, a, x[ 8], S24, 1163531501); a = md5_gg_func(a, b, c, d, x[13], S21, 2850285829); d = md5_gg_func(d, a, b, c, x[ 2], S22, 4243563512); c = md5_gg_func(c, d, a, b, x[ 7], S23, 1735328473); b = md5_gg_func(b, c, d, a, x[12], S24, 2368359562); a = md5_hh_func(a, b, c, d, x[ 5], S31, 4294588738); d = md5_hh_func(d, a, b, c, x[ 8], S32, 2272392833); c = md5_hh_func(c, d, a, b, x[11], S33, 1839030562); b = md5_hh_func(b, c, d, a, x[14], S34, 4259657740); a = md5_hh_func(a, b, c, d, x[ 1], S31, 2763975236); d = md5_hh_func(d, a, b, c, x[ 4], S32, 1272893353); c = md5_hh_func(c, d, a, b, x[ 7], S33, 4139469664); b = md5_hh_func(b, c, d, a, x[10], S34, 3200236656); a = md5_hh_func(a, b, c, d, x[13], S31, 681279174); d = md5_hh_func(d, a, b, c, x[ 0], S32, 3936430074); c = md5_hh_func(c, d, a, b, x[ 3], S33, 3572445317); b = md5_hh_func(b, c, d, a, x[ 6], S34, 76029189); a = md5_hh_func(a, b, c, d, x[ 9], S31, 3654602809); d = md5_hh_func(d, a, b, c, x[12], S32, 3873151461); c = md5_hh_func(c, d, a, b, x[15], S33, 530742520); b = md5_hh_func(b, c, d, a, x[ 2], S34, 3299628645); a = md5_ii_func(a, b, c, d, x[ 0], S41, 4096336452); d = md5_ii_func(d, a, b, c, x[ 7], S42, 1126891415); c = md5_ii_func(c, d, a, b, x[14], S43, 2878612391); b = md5_ii_func(b, c, d, a, x[ 5], S44, 4237533241); a = md5_ii_func(a, b, c, d, x[12], S41, 1700485571); d = md5_ii_func(d, a, b, c, x[ 3], S42, 2399980690); c = md5_ii_func(c, d, a, b, x[10], S43, 4293915773); b = md5_ii_func(b, c, d, a, x[ 1], S44, 2240044497); a = md5_ii_func(a, b, c, d, x[ 8], S41, 1873313359); d = md5_ii_func(d, a, b, c, x[15], S42, 4264355552); c = md5_ii_func(c, d, a, b, x[ 6], S43, 2734768916); b = md5_ii_func(b, c, d, a, x[13], S44, 1309151649); a = md5_ii_func(a, b, c, d, x[ 4], S41, 4149444226); d = md5_ii_func(d, a, b, c, x[11], S42, 3174756917); c = md5_ii_func(c, d, a, b, x[ 2], S43, 718787259); b = md5_ii_func(b, c, d, a, x[ 9], S44, 3951481745); state[0] = (state[0] + a) % (2 ^ 32); state[1] = (state[1] + b) % (2 ^ 32); state[2] = (state[2] + c) % (2 ^ 32); state[3] = (state[3] + d) % (2 ^ 32); } for (i = j = 0; j < 16; j += 4) { digest[j + 0] = state[i] % (2 ^ 8); digest[j + 1] = md5_bw_rshift(state[i], 8) % (2 ^ 8); digest[j + 2] = md5_bw_rshift(state[i], 16) % (2 ^ 8); digest[j + 3] = md5_bw_rshift(state[i++], 24) % (2 ^ 8); } for (i = 0; i < 16; i++) ret = sprintf("%s%02x", ret, digest[i]); return ret; } function md5_f_func(x, y, z) { return md5_bw_or(md5_bw_and(x, y), md5_bw_and(md5_bw_not(x), z)); } function md5_g_func(x, y, z) { return md5_bw_or(md5_bw_and(x, z), md5_bw_and(y, md5_bw_not(z))); } function md5_h_func(x, y, z) { return md5_bw_xor(x, md5_bw_xor(y, z)); } function md5_i_func(x, y, z) { return md5_bw_xor(y, md5_bw_or(x, md5_bw_not(z))); } function md5_ff_func(a, b, c, d, x, s, ac) { a = (a + md5_f_func(b, c, d) + x + ac) % (2 ^ 32); a = md5_rotate_left(a, s); a = (a + b) % (2 ^ 32); return a; } function md5_gg_func(a, b, c, d, x, s, ac) { a = (a + md5_g_func(b, c, d) + x + ac) % (2 ^ 32); a = md5_rotate_left(a, s); a = (a + b) % (2 ^ 32); return a; } function md5_hh_func(a, b, c, d, x, s, ac) { a = (a + md5_h_func(b, c, d) + x + ac) % (2 ^ 32); a = md5_rotate_left(a, s); a = (a + b) % (2 ^ 32); return a; } function md5_ii_func(a, b, c, d, x, s, ac) { a = (a + md5_i_func(b, c, d) + x + ac) % (2 ^ 32); a = md5_rotate_left(a, s); a = (a + b) % (2 ^ 32); return a; } function md5_rotate_left(x, n, l, r) { l = md5_bw_lshift(x, n) % (2 ^ 32); r = md5_bw_rshift(x, 32 - n); return (r + l); } function md5_bw_not(x) { return md5_bw_xor(x, 4294967295); } function md5_bw_lshift(x, n) { return x * (2 ^ n); } function md5_bw_rshift(x, n) { return int(x / (2 ^ n)); } function md5_bw_and(x, y, i,r) { for (i = 0; i < 32; i += 4) { r = r / (2 ^ 4) + bw_lookup["and", x % 16, y % 16] * (2 ^ 28); x = int(x / (2 ^ 4)); y = int(y / (2 ^ 4)); } return r; } function md5_bw_or(x, y, i,r) { for (i = 0; i < 32; i += 4) { r = r / (2 ^ 4) + bw_lookup["or", x % 16, y % 16] * (2 ^ 28); x = int(x / (2 ^ 4)); y = int(y / (2 ^ 4)); } return r; } function md5_bw_xor(x, y) { return (x + y - 2 * md5_bw_and(x, y)); } function md5_ord_init( i) { for (i = 0; i < 256; i++) _ord_[sprintf("%c", i)] = i; } function md5_ord(s) { return _ord_[substr(s, 1, 1)]; } function md5_bitwise_init( a,b,x,y,i) { for (a = 0; a < 16; a++) { for (b = 0; b < 16; b++) { x = a; y = b; for (i = 0; i < 4; i++) { bw_lookup["and", a, b] += ((x % 2) && (y % 2)) * (2 ^ i); bw_lookup["or", a, b] += ((x % 2) || (y % 2)) * (2 ^ i); x = int(x / 2); y = int(y / 2); } } } } function md5_md5_init() { S11 = 7; S12 = 12; S13 = 17; S14 = 22; S21 = 5; S22 = 9; S23 = 14; S24 = 20; S31 = 4; S32 = 11; S33 = 16; S34 = 23; S41 = 6; S42 = 10; S43 = 15; S44 = 21; } function queryparamutils_generate_entity_decl( params,num_params,i,r) { split("", params) r = "" sgmlutil_convert_attribute_names_to_lowercase(system_env) num_params = split(system_env["params"], params, / /) for (i = 0; i < num_params; i++) r = concat(r, "\n") system_stdout_write(r) system_stdout_end() } function queryparamutils_generate_attrspec_decl( params,num_params,i,r) { split("", params) r = "" sgmlutil_convert_attribute_names_to_lowercase(system_env) num_params = split(system_env["params"], params, / /) for (i = 0; i < num_params; i++) r = concat(r, params[1+ i], " CDATA #FIXED \"%", params[1+ i], "\" ") system_stdout_write(r) system_stdout_end() } function tsvparsing_generate_element_decl( field_elements,num_field_elements,element_decl_first_part,element_decl_last_part,element_decl_indicators,element_decl_content,i,r,container_element,record_element) { split("", field_elements) element_decl_first_part = "\n" element_decl_indicators = "- -" element_decl_content = "(#PCDATA)" r = "" container_element = "" record_element = "" sgmlutil_convert_attribute_names_to_lowercase(system_env) num_field_elements = split(system_env["fields"], field_elements, / /) container_element = system_env["container"] record_element = system_env["record"] r = concat(r, element_decl_first_part, container_element, " ", element_decl_indicators, " (", record_element, "+)", element_decl_last_part) r = concat(r, element_decl_first_part, record_element, " ", element_decl_indicators, " (") r = concat(r, field_elements[1+ 0]) for (i = 1; i < num_field_elements; i++) { r = concat(r, ",", field_elements[1+ i]) } r = concat(r, ")", element_decl_last_part) for (i = 0; i < num_field_elements; i++) { r = concat(r, element_decl_first_part, field_elements[1+ i], " ", element_decl_indicators, " ", element_decl_content, element_decl_last_part) } system_stdout_write(r) system_stdout_end() } function tsvparsing_generate_entity_decl( field_elements,num_field_elements,i,r,lt,gt,quot,space,slash,first_entity_decl_first_part,first_entity_decl_last_part,entity_decl_first_part,entity_decl_last_part,record_element) { split("", field_elements) r = "" lt = "<" gt = ">" quot = "\"" space = " " slash = "/" first_entity_decl_first_part = "\t\n" entity_decl_first_part = "\t\n" record_element = "" sgmlutil_convert_attribute_names_to_lowercase(system_env) num_field_elements = split(system_env["fields"], field_elements, / /) record_element = system_env["record"] r = concat(r, first_entity_decl_first_part, record_element, space, quot, lt, record_element, gt, lt, field_elements[1+ 0], gt, quot, first_entity_decl_last_part) for (i = 0; i < num_field_elements - 1; i++) { r = concat(r, entity_decl_first_part, field_elements[1+ i], space, quot, lt, slash, field_elements[1+ i], gt, lt, field_elements[1+ i + 1], gt, quot, entity_decl_last_part) } r = concat(r, entity_decl_first_part, record_element, space, quot, lt, slash, field_elements[1+ num_field_elements - 1], gt, lt, slash, record_element, gt, quot, entity_decl_last_part) system_stdout_write(r) system_stdout_end() } function tsvparsing_generate_shortref_decl( field_elements,num_field_elements,i,r,first_shortref_decl_first_part,first_shortref_decl_mid_part,first_shortref_decl_last_part,shortref_decl_first_part,shortref_decl_mid_part,shortref_decl_last_part,last_shortref_decl_mid_part,container_element,record_element) { split("", field_elements) r = "" first_shortref_decl_first_part = "\t\n" shortref_decl_first_part = "\t\n" last_shortref_decl_mid_part = " \"&#RE;\" end-" container_element = "" record_element = "" sgmlutil_convert_attribute_names_to_lowercase(system_env) num_field_elements = split(system_env["fields"], field_elements, / /) container_element = system_env["container"] record_element = system_env["record"] r = concat(r, first_shortref_decl_first_part, container_element, first_shortref_decl_mid_part, record_element, first_shortref_decl_last_part) for (i = 0; i < num_field_elements - 1; i++) { r = concat(r, shortref_decl_first_part, field_elements[1+ i], shortref_decl_mid_part, field_elements[1+ i], shortref_decl_last_part) } r = concat(r, shortref_decl_first_part, field_elements[1+ num_field_elements - 1], last_shortref_decl_mid_part, record_element, shortref_decl_last_part) system_stdout_write(r) system_stdout_end() } function tsvparsing_generate_usemap_decl( field_elements,num_field_elements,i,r,usemap_decl_first_part,usemap_decl_mid_part,usemap_decl_last_part,container_element) { split("", field_elements) r = "" usemap_decl_first_part = "\t\n" container_element = "" sgmlutil_convert_attribute_names_to_lowercase(system_env) num_field_elements = split(system_env["fields"], field_elements, / /) container_element = system_env["container"] r = concat(r, usemap_decl_first_part, container_element, usemap_decl_mid_part, container_element, usemap_decl_last_part) for (i = 0; i < num_field_elements; i++) { r = concat(r, usemap_decl_first_part, field_elements[1+ i], usemap_decl_mid_part, field_elements[1+ i], usemap_decl_last_part) } system_stdout_write(r) system_stdout_end() } function tsvparsing_generate_notation_decl( field_elements,num_field_elements,attribute_decl_list,notation_sysid,aggregate_notation_name_list,notation_decl_first_part,notation_decl_last_part,public_part,sgml_pubid,sgml_pubid_first_part,sgml_pubid_mid_part,sgml_pubid_last_part,doubleslash,data_attlist_decl_first_part,data_attlist_decl_last_part,cdata_current_part,bar,leftpar,rightpar,quote,i,j,r,is_singleton_aggregate_notation_list) { split("", field_elements) attribute_decl_list = "" notation_sysid = "" aggregate_notation_name_list = "" notation_decl_first_part = "\t\n" public_part = "PUBLIC" sgml_pubid = "" sgml_pubid_first_part = "ISO 8879:1986" sgml_pubid_mid_part = "NOTATION Standard Generalized Markup Language (SGML)" sgml_pubid_last_part = "EN" doubleslash = "//" data_attlist_decl_first_part = "\t\n" cdata_current_part = " CDATA #CURRENT" bar = "|" leftpar = "(" rightpar = ")" quote = "" r = "" quote = "\"" sgmlutil_convert_attribute_names_to_lowercase(system_env) num_field_elements = split(system_env["fields"], field_elements, / /) notation_sysid = system_env["template_sysid"] sgml_pubid = concat(sgml_pubid_first_part, doubleslash, sgml_pubid_mid_part, doubleslash, sgml_pubid_last_part) for (i = 0; i < num_field_elements; i++) { r = concat(r, notation_decl_first_part, field_elements[1+ i], " ", public_part, " ", quote, sgml_pubid, quote, " ", quote, notation_sysid, quote, notation_decl_last_part) if (!attribute_decl_list) attribute_decl_list = concat(attribute_decl_list, field_elements[1+ i], cdata_current_part) else attribute_decl_list = concat(attribute_decl_list, " ", field_elements[1+ i], cdata_current_part) aggregate_notation_name_list = "" is_singleton_aggregate_notation_list = 1 for (j = i; j < num_field_elements; j++) if (!aggregate_notation_name_list) aggregate_notation_name_list = field_elements[1+ j] else { aggregate_notation_name_list = concat(aggregate_notation_name_list, bar, field_elements[1+ j]) is_singleton_aggregate_notation_list = 0 } if (is_singleton_aggregate_notation_list) r = concat(r, data_attlist_decl_first_part, aggregate_notation_name_list, " ", attribute_decl_list, data_attlist_decl_last_part) else r = concat(r, data_attlist_decl_first_part, leftpar, aggregate_notation_name_list, rightpar, " ", attribute_decl_list, data_attlist_decl_last_part) } system_stdout_write(r) system_stdout_end() } function tsvparsing_generate_linkattr_decl( link_attlist_decl_first_part,link_attlist_decl_mid_part,link_attlist_decl_last_part,link_element_name_list,link_attribute_decl_list,cdata_implied_part,field_elements,num_field_elements,i,r,bar,leftpar,rightpar) { link_attlist_decl_first_part = "\t\n" link_element_name_list = "" link_attribute_decl_list = "" cdata_implied_part = " CDATA #IMPLIED" split("", field_elements) r = "" bar = "|" leftpar = "(" rightpar = ")" sgmlutil_convert_attribute_names_to_lowercase(system_env) num_field_elements = split(system_env["fields"], field_elements, / /) for (i = 0; i < num_field_elements; i++) { if (!link_element_name_list) link_element_name_list = field_elements[1+ i] else link_element_name_list = concat(link_element_name_list, bar, field_elements[1+ i]) if (!link_attribute_decl_list) link_attribute_decl_list = concat(link_attribute_decl_list, field_elements[1+ i], cdata_implied_part) else link_attribute_decl_list = concat(link_attribute_decl_list, " ", field_elements[1+ i], cdata_implied_part) } r = concat(r, link_attlist_decl_first_part, leftpar, link_element_name_list, rightpar, " ", link_attribute_decl_list, link_attlist_decl_mid_part, link_element_name_list, link_attlist_decl_last_part) system_stdout_write(r) system_stdout_end() } function tsvparsing_generate_linkrule_decl( record_element,field_elements,num_field_elements,link_rule_link_attr_notnames_spec_first_part,link_rule_link_attr_notnames_spec_last_part,link_rule_link_attr_template_spec_first_part,implied_part,eq,nl,tab,lsquare,rsquare,quote,i,r) { record_element = "" split("", field_elements) link_rule_link_attr_notnames_spec_first_part = " NotNames" link_rule_link_attr_notnames_spec_last_part = " #CONTENT" link_rule_link_attr_template_spec_first_part = " template" implied_part = "#IMPLIED" eq = "" nl = "\n" tab = "\t" lsquare = "[" rsquare = "]" quote = "" r = "" eq = "=" quote = "\"" link_rule_link_attr_template_spec_first_part = concat(link_rule_link_attr_template_spec_first_part, eq) link_rule_link_attr_notnames_spec_first_part = concat(link_rule_link_attr_notnames_spec_first_part, eq, quote) sgmlutil_convert_attribute_names_to_lowercase(system_env) num_field_elements = split(system_env["fields"], field_elements, / /) record_element = system_env["record"] for (i = 0; i < num_field_elements; i++) { if (i == num_field_elements - 1) { r = concat(r, tab, tab, field_elements[1+ i], " ", lsquare, link_rule_link_attr_template_spec_first_part, field_elements[1+ i]) r = concat(r, link_rule_link_attr_notnames_spec_first_part, field_elements[1+ i], link_rule_link_attr_notnames_spec_last_part, quote, " ", rsquare, " ", record_element, nl) } else { r = concat(r, tab, tab, field_elements[1+ i], " ", lsquare, link_rule_link_attr_template_spec_first_part, field_elements[1+ i]) r = concat(r, link_rule_link_attr_notnames_spec_first_part, field_elements[1+ i], link_rule_link_attr_notnames_spec_last_part, quote, " ", rsquare, " ", implied_part, nl) } } system_stdout_write(r) system_stdout_end() } BEGIN { urlStr = "" urn4_href = "" urn4_origin = "" urn4_protocol = "" urn4_username = "" urn4_password = "" urn4_host = "" urn4_hostname = "" urn4_port = "" urn4_pathname = "" urn4_search = "" urn4_hash = "" urn4_is_invalid = "" urn4_set_href(urlStr) urn4_baseUrlStr = "" } function urn4_reset() { urn4_href = "" urn4_origin = "" urn4_protocol = "" urn4_username = "" urn4_password = "" urn4_host = "" urn4_hostname = "" urn4_port = "" urn4_pathname = "" urn4_search = "" urn4_hash = "" urn4_is_invalid = "" } function urn4_set_href(urlStr, rest,tmp,auth,usrinfo,p,q) { rest = "" tmp = "" auth = "" usrinfo = "" if (urn4_baseUrlStr) { print("URN.js: baseUrlStr unsupported") exit(1) } urn4_reset() rest = urlStr if (match(rest, /^([A-Za-z][A-Za-z0-9+.-]*):/)) { urn4_protocol = tolower(substr(rest, 1, RLENGTH)) rest = substr(rest, RLENGTH + 1) ; } if (urn4_protocol == "urn:") { if (!match(rest, /^([A-Za-z][A-Za-z0-9+.-]*):/)) { urn4_is_invalid = "invalid URN" return } urn4_href = ("urn:" rest) return } else if (urn4_protocol == "mailto:") { urn4_href = ("mailto:" rest) return } if (!rest || substr(rest, 1, 1) == "#" || substr(rest, 1, 1) == "?") { if (urn4_protocol) urn4_pathname = "/" } else if (substr(rest, 1, 2) == "//") { if (length(rest) == 2 || substr(rest, 3, 1) == "#" || substr(rest, 3, 1) == "?" ) { rest = substr(rest, 3) } else if (substr(rest, 3, 1) == "/") { rest = substr(rest, 3) } else { rest = substr(rest, 3) ; if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=]))+)(:([0-9]*))?)/)) { urn4_is_invalid = "invalid authority part in URL" return } ; auth = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) p = sgmlutil_sgml_rindex(auth, "@") if (p) { usrinfo = substr(auth, 1, p - 1) q = index(usrinfo, ":") if (q) { urn4_username = substr(usrinfo, 1, q - 1) urn4_password = substr(usrinfo, q + 1) } else { urn4_username = usrinfo } tmp = substr(auth, p + 1) } else tmp = auth ; p = index(tmp, ":") if (p) { urn4_host = tolower(substr(tmp, 1, p - 1)) urn4_port = substr(tmp, p + 1) if (urn4_protocol == "http:" && urn4_port == "80") { urn4_port = "" auth = substr(auth, 1, length(auth) - (length(tmp) - p) - 1) } else if (urn4_protocol == "https:" && urn4_port == "443") { urn4_port = "" auth = substr(auth, 1, length(auth) - (length(tmp) - p) - 1) } ; urn4_hostname = urn4_host } else { urn4_host = tolower(tmp) urn4_hostname = urn4_host } } if (rest) { if (!match(rest, /^((\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)/)) { urn4_is_invalid = "invalid absolute path in URL" return } urn4_pathname = substr(rest, 1, RLENGTH) ; rest = substr(rest, RLENGTH + 1) } else urn4_pathname = "/" } else if (substr(rest, 1, 1) == "/") { if (!match(rest, /^(\/(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)?)$/)) { urn4_is_invalid = "invalid absolute path in URL" return } urn4_pathname = substr(rest, 1, RLENGTH) ; rest = substr(rest, RLENGTH + 1) } else if (urn4_protocol) { if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)$/)) { urn4_is_invalid = "invalid rootless path in URL" return } urn4_pathname = ("/" substr(rest, 1, RLENGTH)) rest = substr(rest, RLENGTH + 1) } else if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)/)) { urn4_is_invalid = "invalid rootless path in URL" return } else { urn4_pathname = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } ; if (rest && substr(rest, 1, 1) == "?") { if (!match(rest, /^\?((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)|\/|\?)*/)) { urn4_is_invalid = "invalid query in URL" return } urn4_search = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } ; if (rest && substr(rest, 1, 1) == "#") { if (!match(rest, /^(\043)((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)|\/|\?)*/)) { urn4_is_invalid = "invalid fragment in URL" return } urn4_hash = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } if (rest && length(rest) != 0) { urn4_is_invalid = "invalid characters following URI" return } if (urn4_pathname) { if (substr(urn4_pathname, 1, 1) == "/" && (urn4_protocol || auth)) urn4_href = concat(urn4_protocol, "//", auth, urn4_pathname) else urn4_href = urn4_pathname } else { if (auth) { urn4_is_invalid = "invalid hierarchical URI" return } urn4_href = urn4_protocol } if (urn4_search) urn4_href = (urn4_href urn4_search) if (urn4_hash) urn4_href = (urn4_href urn4_hash) } BEGIN { urlStr = "" urn5_href = "" urn5_origin = "" urn5_protocol = "" urn5_username = "" urn5_password = "" urn5_host = "" urn5_hostname = "" urn5_port = "" urn5_pathname = "" urn5_search = "" urn5_hash = "" urn5_is_invalid = "" urn5_set_href(urlStr) urn5_baseUrlStr = "" } function urn5_reset() { urn5_href = "" urn5_origin = "" urn5_protocol = "" urn5_username = "" urn5_password = "" urn5_host = "" urn5_hostname = "" urn5_port = "" urn5_pathname = "" urn5_search = "" urn5_hash = "" urn5_is_invalid = "" } function urn5_set_href(urlStr, rest,tmp,auth,usrinfo,p,q) { rest = "" tmp = "" auth = "" usrinfo = "" if (urn5_baseUrlStr) { print("URN.js: baseUrlStr unsupported") exit(1) } urn5_reset() rest = urlStr if (match(rest, /^([A-Za-z][A-Za-z0-9+.-]*):/)) { urn5_protocol = tolower(substr(rest, 1, RLENGTH)) rest = substr(rest, RLENGTH + 1) ; } if (urn5_protocol == "urn:") { if (!match(rest, /^([A-Za-z][A-Za-z0-9+.-]*):/)) { urn5_is_invalid = "invalid URN" return } urn5_href = ("urn:" rest) return } else if (urn5_protocol == "mailto:") { urn5_href = ("mailto:" rest) return } if (!rest || substr(rest, 1, 1) == "#" || substr(rest, 1, 1) == "?") { if (urn5_protocol) urn5_pathname = "/" } else if (substr(rest, 1, 2) == "//") { if (length(rest) == 2 || substr(rest, 3, 1) == "#" || substr(rest, 3, 1) == "?" ) { rest = substr(rest, 3) } else if (substr(rest, 3, 1) == "/") { rest = substr(rest, 3) } else { rest = substr(rest, 3) ; if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=]))+)(:([0-9]*))?)/)) { urn5_is_invalid = "invalid authority part in URL" return } ; auth = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) p = sgmlutil_sgml_rindex(auth, "@") if (p) { usrinfo = substr(auth, 1, p - 1) q = index(usrinfo, ":") if (q) { urn5_username = substr(usrinfo, 1, q - 1) urn5_password = substr(usrinfo, q + 1) } else { urn5_username = usrinfo } tmp = substr(auth, p + 1) } else tmp = auth ; p = index(tmp, ":") if (p) { urn5_host = tolower(substr(tmp, 1, p - 1)) urn5_port = substr(tmp, p + 1) if (urn5_protocol == "http:" && urn5_port == "80") { urn5_port = "" auth = substr(auth, 1, length(auth) - (length(tmp) - p) - 1) } else if (urn5_protocol == "https:" && urn5_port == "443") { urn5_port = "" auth = substr(auth, 1, length(auth) - (length(tmp) - p) - 1) } ; urn5_hostname = urn5_host } else { urn5_host = tolower(tmp) urn5_hostname = urn5_host } } if (rest) { if (!match(rest, /^((\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)/)) { urn5_is_invalid = "invalid absolute path in URL" return } urn5_pathname = substr(rest, 1, RLENGTH) ; rest = substr(rest, RLENGTH + 1) } else urn5_pathname = "/" } else if (substr(rest, 1, 1) == "/") { if (!match(rest, /^(\/(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)?)$/)) { urn5_is_invalid = "invalid absolute path in URL" return } urn5_pathname = substr(rest, 1, RLENGTH) ; rest = substr(rest, RLENGTH + 1) } else if (urn5_protocol) { if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)$/)) { urn5_is_invalid = "invalid rootless path in URL" return } urn5_pathname = ("/" substr(rest, 1, RLENGTH)) rest = substr(rest, RLENGTH + 1) } else if (!match(rest, /^(((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|@)+)(\/((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)*))*)/)) { urn5_is_invalid = "invalid rootless path in URL" return } else { urn5_pathname = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } ; if (rest && substr(rest, 1, 1) == "?") { if (!match(rest, /^\?((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)|\/|\?)*/)) { urn5_is_invalid = "invalid query in URL" return } urn5_search = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } ; if (rest && substr(rest, 1, 1) == "#") { if (!match(rest, /^(\043)((([A-Za-z0-9._~-])|(%[ABCDEFabcdef0-9][ABCDEFabcdef0-9])|([!$&'('')'*+,;=])|:|@)|\/|\?)*/)) { urn5_is_invalid = "invalid fragment in URL" return } urn5_hash = substr(rest, 1, RLENGTH) rest = substr(rest, RLENGTH + 1) } if (rest && length(rest) != 0) { urn5_is_invalid = "invalid characters following URI" return } if (urn5_pathname) { if (substr(urn5_pathname, 1, 1) == "/" && (urn5_protocol || auth)) urn5_href = concat(urn5_protocol, "//", auth, urn5_pathname) else urn5_href = urn5_pathname } else { if (auth) { urn5_is_invalid = "invalid hierarchical URI" return } urn5_href = urn5_protocol } if (urn5_search) urn5_href = (urn5_href urn5_search) if (urn5_hash) urn5_href = (urn5_href urn5_hash) } BEGIN { rawstream1_filename = "-" split("", commandline_args) split("", argv_copy) i = 0 split("", permitted_commandline_v_variable_names) initialize_permitted_commandline_v_variable_names() ; srand() populate_from_globals(commandline_args) for (i = 0; i < ARGC; i++) argv_copy[i] = ARGV[i] populate_commandline_arguments(argv_copy, commandline_args) split("", argv_copy) get_commandline_arguments(argv_copy, commandline_args) check_commandline_arguments(argv_copy, commandline_args) reassemble_commandline_arguments() sgmldecl1_initialize_from_arguments(commandline_args) check_arguments(commandline_args) configure_from_arguments(commandline_args) if ("sax_event_tracing" in commandline_args) { chain1_set_debug_emit_ctx_token(path_basename(locator1_get_system_id())) platformentitymanager1_set_debug_emit_ctx_token(path_basename(locator1_get_system_id())) } platformrecordmanager1_start_records() } function arrlen(arr, a, n) { for (a in arr) n++ return n }