diff options
author | Jedzkie <jedzkie13@rocketmail.com> | 2020-06-23 08:00:00 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-23 08:00:00 +0800 |
commit | 520863eaeda83da14b88d09f6378cd8abd5a5174 (patch) | |
tree | 2496ea36744dc2f51d264741a78699e719ceeb3b /tools | |
parent | 0b7768837bed2aa521de5b9b76b2348943d7db20 (diff) | |
parent | 9b89425550094f51d633e5b5d6e86af65bffbf39 (diff) | |
download | hercules-520863eaeda83da14b88d09f6378cd8abd5a5174.tar.gz hercules-520863eaeda83da14b88d09f6378cd8abd5a5174.tar.bz2 hercules-520863eaeda83da14b88d09f6378cd8abd5a5174.tar.xz hercules-520863eaeda83da14b88d09f6378cd8abd5a5174.zip |
Merge branch 'master' into jedzkie-pr03
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/authors.sh | 4 | ||||
-rw-r--r-- | tools/utils/libconf.py | 31 |
2 files changed, 29 insertions, 6 deletions
diff --git a/tools/authors.sh b/tools/authors.sh new file mode 100755 index 000000000..da4a576c6 --- /dev/null +++ b/tools/authors.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env sh + +# grep -v "kenpachi2k11" as workaround for avoid .mailmap issue +git log --format=format:"%aN <%aE>"|grep -v "54d463be-8e91-2dee-dedb-b68131a5f0ec"|grep -v "kenpachi2k11"|sort|uniq diff --git a/tools/utils/libconf.py b/tools/utils/libconf.py index 3858b93b5..d40418a02 100644 --- a/tools/utils/libconf.py +++ b/tools/utils/libconf.py @@ -141,7 +141,9 @@ class IntToken(Token): super(IntToken, self).__init__(*args, **kwargs) self.is_long = self.text.endswith('L') self.is_hex = (self.text[1:2].lower() == 'x') - self.value = int(self.text.rstrip('L'), 0) + self.is_oct = (self.text[1:2].lower() == 'o') + self.is_bin = (self.text[1:2].lower() == 'b') + self.value = int(self.text.replace('_', '').rstrip('L'), 0) class BoolToken(Token): @@ -182,14 +184,18 @@ class Tokenizer: token_map = compile_regexes([ (FltToken, 'float', r'([-+]?(\d+)?\.\d*([eE][-+]?\d+)?)|' r'([-+]?(\d+)(\.\d*)?[eE][-+]?\d+)'), - (IntToken, 'hex64', r'0[Xx][0-9A-Fa-f]+(L(L)?)'), - (IntToken, 'hex', r'0[Xx][0-9A-Fa-f]+'), + (IntToken, 'hex64', r'0[Xx][0-9A-Fa-f_]+(L(L)?)'), + (IntToken, 'hex', r'0[Xx][0-9A-Fa-f_]+'), + (IntToken, 'oct64', r'0[Oo][0-7_]+(L(L)?)'), + (IntToken, 'oct', r'0[Oo][0-7_]+'), + (IntToken, 'bin64', r'0[Bb][01_]+(L(L)?)'), + (IntToken, 'bin', r'0[Bb][01_]+'), (BoolToken, 'boolean', r'(?i)(true|false)\b'), (StrToken, 'string', r'"([^"\\]|\\.)*"'), (StrToken, 'string', r'<"(?<=<")([\S\s]*?)(?=">)">'), (Token, 'name', r'[0-9]*[A-Za-z\*][-A-Za-z0-9_\*]*'), - (IntToken, 'integer64', r'[-+]?[0-9]+L(L)?'), - (IntToken, 'integer', r'[-+]?[0-9]+'), + (IntToken, 'integer64', r'[-+]?[0-9_]+L(L)?'), + (IntToken, 'integer', r'[-+]?[0-9_]+'), (Token, '}', r'\}'), (Token, '{', r'\{'), (Token, ')', r'\)'), @@ -422,7 +428,8 @@ class Parser: def scalar_value(self): # This list is ordered so that more common tokens are checked first. acceptable = [self.string, self.boolean, self.integer, self.float, - self.hex, self.integer64, self.hex64] + self.hex, self.oct, self.bin, self.integer64, self.hex64, + self.oct64, self.bin64] return self._parse_any_of(acceptable) def value_list_or_empty(self): @@ -455,6 +462,18 @@ class Parser: def hex64(self): return self._create_value_node('hex64') + def oct(self): + return self._create_value_node('oct') + + def oct64(self): + return self._create_value_node('oct64') + + def bin(self): + return self._create_value_node('bin') + + def bin64(self): + return self._create_value_node('bin64') + def float(self): return self._create_value_node('float') |