• R/O
  • SSH

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Castle: The best Real-Time/Embedded/HighTech language EVER. Attempt 2


Commit MetaInfo

Revisão04371911620cb14d75d2b06dc1995c22ef5dc686 (tree)
Hora2022-01-25 06:01:28
AutorAlbert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Mensagem de Log

Added better logging &str-support

Mudança Sumário

Diff

diff -r ea1d00c39628 -r 04371911620c castle/ast/_base.py
--- a/castle/ast/_base.py Sun Jan 23 21:30:13 2022 +0100
+++ b/castle/ast/_base.py Mon Jan 24 22:01:28 2022 +0100
@@ -6,6 +6,16 @@
66 super().__init__(**kwargs)
77 self._parse_tree = parse_tree
88
9+ def __str__(self): # mostly for debugging
10+ return str(type(self).__name__) + "\n\t" + "\n\t".join(f'{n}\t{str(v)}:{type(v).__name__}' for n,v in self.__dict__.items() if n[0]!='_')
11+
12+ @staticmethod
13+ def _typeName(x):
14+ return type(x).__name__
15+
16+ def _valType(self, x):
17+ return f'{x}:{self._typeName(x)}'
18+ return type(x).__name__
919
1020 @property
1121 def position(self): return self._parse_tree.position
@@ -32,5 +42,9 @@
3242 def __init__(self, *, name, **kwargs):
3343 super().__init__(**kwargs)
3444 self.validate_or_raise(name)
45+ if isinstance(name, ID):
46+ name=name.name
3547 self.name=name
3648
49+ def __str__(self): # mostly for debugging
50+ return self.name
diff -r ea1d00c39628 -r 04371911620c castle/ast/peg.py
--- a/castle/ast/peg.py Sun Jan 23 21:30:13 2022 +0100
+++ b/castle/ast/peg.py Mon Jan 24 22:01:28 2022 +0100
@@ -14,12 +14,12 @@
1414
1515 def __init__(self, *, value=None, **kwargs):
1616 super().__init__(**kwargs)
17- logger.debug(f'{type(self).__name__}:: value:={value}:{type(value)}')
17+ logger.debug(f'{self._typeName(self)}:: value:={value}:{self._typeName(value)}')
1818 self._value=value
1919
2020 @property
2121 def value(self):
22- logger.debug(f'{type(self).__name__}:: @property={self._value}')
22+ logger.debug(f'{self._typeName(self)}:: @property={self._value}')
2323 return self._value
2424
2525
@@ -78,12 +78,13 @@
7878 def __init__(self, *,
7979 name: ID, expr:Expression=None,
8080 **kwargs):
81+ logger.debug(f'{self._typeName(self)}: name={self._valType(name)}, expr={self._valType(expr)}')
82+ if expr:
83+ logger.debug("\t" + "; ".join(f'{c}:{type(c)}' for c in expr))
8184 ID.validate_or_raise(name)
8285 super().__init__(**kwargs)
8386 self.name = name
8487 self.expr = expr
85- logger.debug(f'{type(self).__name__}:: expr:={expr}:{type(expr)}')
86- logger.debug("\t" + "; ".join(f'{c}:{type(c)}' for c in expr))
8788
8889
8990 class Rules(MixIn_children_as_tuple, PEG): pass
@@ -94,10 +95,10 @@
9495 rules: Rules=None,
9596 settings: Settings=None,
9697 **kwargs):
98+ logger.debug(f'{self._typeName(self)}:: kwargs={kwargs}')
9799 super().__init__(**kwargs)
98100 self.rules = rules
99101 self.settings = settings
100- logger.debug(f'{type(self).__name__}:: kwargs={kwargs}')
101102
102103
103104 class Group(Expression): pass # abstract -- Note: Do not Group for '(' ...')'; that's a Sequence!!