| // Copyright (c) project authors. All rights reserved. | |
| // Licensed under the MIT license. | |
| // See LICENSE file in the project root for details. | |
| import 'dart:io'; | |
| import 'package:dart_style/dart_style.dart'; | |
| import 'package:html/src/constants.dart'; | |
| import 'package:path/path.dart'; | |
| /// Run this file to generate package:html/src/trie.dart | |
| void main() { | |
| final root = <int, dynamic>{}; | |
| for (final entity in entities.keys) { | |
| var node = root; | |
| for (final charCode in entity.codeUnits) { | |
| node = (node[charCode] ??= <int, dynamic>{}) as Map<int, dynamic>; | |
| } | |
| } | |
| final source = | |
| '''// AUTO GENERATED by 'tool/generate_trie.dart'. DO NOT EDIT!\n''' | |
| 'const entitiesTrieRoot = $root;' | |
| .replaceAll('{}', '<int, dynamic>{}'); | |
| final formatted = DartFormatter( | |
| languageVersion: DartFormatter.latestShortStyleLanguageVersion) | |
| .format(source); | |
| final htmlDir = File(Platform.script.path).parent.parent; | |
| File(join(htmlDir.path, 'lib', 'src', 'trie.dart')) | |
| .writeAsStringSync(formatted); | |
| } |