diff options
author | Eric Kunze <eric.kunze@arm.com> | 2021-12-13 15:40:04 -0800 |
---|---|---|
committer | Eric Kunze <eric.kunze@arm.com> | 2022-01-07 14:28:31 -0800 |
commit | a3eded0843874a78e69e4b985cb2a492bfab78f3 (patch) | |
tree | 18a71120e14ff64cf2acbe4463dea78cff910c5a /tools/get_descriptions.py | |
parent | f734f1b1c81d401f7e1891c763824038501b4969 (diff) | |
download | specification-a3eded0843874a78e69e4b985cb2a492bfab78f3.tar.gz |
Add rudimentary spell check for specification
We can't easily spell check the entire specification, the
pseudocode and operator tables make it unworkable. This
adds a simple python script that tries to extract just the
description of the operators for checking. It also does a check
over the entire license.
A custom dictionary is used to contain specification custom words.
Change-Id: I74558c03af1506e2970f20b3246d920c2753ca44
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Diffstat (limited to 'tools/get_descriptions.py')
-rw-r--r-- | tools/get_descriptions.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tools/get_descriptions.py b/tools/get_descriptions.py new file mode 100644 index 0000000..3f2ee05 --- /dev/null +++ b/tools/get_descriptions.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2022, ARM Limited. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Script to pull the descriptions out of the specification so that +# they can be run through a spellcheck with less noise + +import argparse +import re + +parser = argparse.ArgumentParser() +parser.add_argument( + "filenames", nargs="+", help="filename to extract descriptions from" +) +args = parser.parse_args() + +for name in args.filenames: + # special case the license as it is all text + if name == "chapters/tosa_license.adoc": + always_in = True + else: + always_in = False + with open(name, "r") as docfile: + in_description = False + for text in docfile: + if always_in: + print(text) + continue + if not in_description: + # Look for the start of an operator + if re.match(r'^===', text): + in_description = True + print(text) + else: + # Stop when we get to a subsection like *Arguments* + # or pseudocode in a [source] section. Spellcheck is + # not useful there + if re.match(r'[\[\*]', text): + in_description = False + else: + print(text) |