keytab.dart 837 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import 'package:xterm/input/keytab/keytab_default.dart';
  2. import 'package:xterm/input/keytab/keytab_parse.dart';
  3. import 'package:xterm/input/keytab/keytab_record.dart';
  4. import 'package:xterm/input/keytab/keytab_token.dart';
  5. class Keytab {
  6. Keytab({
  7. required this.name,
  8. required this.records,
  9. });
  10. factory Keytab.parse(String source) {
  11. final tokens = tokenize(source).toList();
  12. final parser = KeytabParser()..addTokens(tokens);
  13. return parser.result;
  14. }
  15. factory Keytab.defaultKeytab() {
  16. return Keytab.parse(kDefaultKeytab);
  17. }
  18. final String? name;
  19. final List<KeytabRecord> records;
  20. @override
  21. String toString() {
  22. final buffer = StringBuffer();
  23. buffer.writeln('keyboard "$name"');
  24. for (var record in records) {
  25. buffer.writeln(record);
  26. }
  27. return buffer.toString();
  28. }
  29. }