simplify parenting logic
This commit is contained in:
parent
dec487298e
commit
e94e89be85
|
@ -58,8 +58,7 @@ class OscCommentMacroListener(CommentMacroListener):
|
||||||
self.osc = HogDevice(servers)
|
self.osc = HogDevice(servers)
|
||||||
|
|
||||||
def exitDevice(self, ctx: CommentMacroParser.DeviceContext):
|
def exitDevice(self, ctx: CommentMacroParser.DeviceContext):
|
||||||
if isinstance(ctx.parentCtx, CommentMacroParser.MacroContext):
|
ctx.parentCtx.device = ctx
|
||||||
ctx.parentCtx.device = ctx
|
|
||||||
|
|
||||||
def enterMacro(self, ctx: CommentMacroParser.MacroContext):
|
def enterMacro(self, ctx: CommentMacroParser.MacroContext):
|
||||||
ctx.device = None
|
ctx.device = None
|
||||||
|
@ -88,30 +87,25 @@ class OscCommentMacroListener(CommentMacroListener):
|
||||||
ctx.targets = []
|
ctx.targets = []
|
||||||
|
|
||||||
def exitMaster(self, ctx: CommentMacroParser.MasterContext):
|
def exitMaster(self, ctx: CommentMacroParser.MasterContext):
|
||||||
if isinstance(ctx.parentCtx, CommentMacroParser.MacroContext):
|
ctx.parentCtx.master = ctx
|
||||||
ctx.parentCtx.master = ctx
|
|
||||||
|
|
||||||
def exitNumber(self, ctx: CommentMacroParser.NumberContext):
|
def exitNumber(self, ctx: CommentMacroParser.NumberContext):
|
||||||
ctx.value = num(ctx.getText())
|
ctx.value = num(ctx.getText())
|
||||||
if isinstance(ctx.parentCtx, CommentMacroParser.TargetContext):
|
if isinstance(ctx.parentCtx, CommentMacroParser.TargetContext):
|
||||||
ctx.parentCtx.targets.append(ctx.value)
|
ctx.parentCtx.targets.append(ctx.value)
|
||||||
if isinstance(ctx.parentCtx, CommentMacroParser.MacroContext):
|
else:
|
||||||
ctx.parentCtx.number = ctx
|
|
||||||
if isinstance(ctx.parentCtx, CommentMacroParser.DeviceContext):
|
|
||||||
ctx.parentCtx.number = ctx
|
ctx.parentCtx.number = ctx
|
||||||
|
|
||||||
def exitSpan(self, ctx: CommentMacroParser.SpanContext):
|
def exitSpan(self, ctx: CommentMacroParser.SpanContext):
|
||||||
number1 = ctx.children[0].value
|
number1 = ctx.children[0].value
|
||||||
number2 = ctx.children[2].value
|
number2 = ctx.children[2].value
|
||||||
if (isinstance(number1, int) and isinstance(number2, int)):
|
if (isinstance(number1, int) and isinstance(number2, int)):
|
||||||
if isinstance(ctx.parentCtx, CommentMacroParser.TargetContext):
|
minimum = min(number1, number2)
|
||||||
minimum = min(number1, number2)
|
maximum = max(number1, number2)
|
||||||
maximum = max(number1, number2)
|
for i in (range(minimum, maximum + 1)):
|
||||||
for i in (range(minimum, maximum + 1)):
|
ctx.parentCtx.targets.append(i)
|
||||||
ctx.parentCtx.targets.append(i)
|
|
||||||
else:
|
else:
|
||||||
logger.error("ERROR: Spans must be ranged with intigers.")
|
logger.error("ERROR: Spans must be ranged with intigers.")
|
||||||
ctx.parentCtx.targets.append(-1)
|
|
||||||
|
|
||||||
def enterTarget(self, ctx: CommentMacroParser.TargetContext):
|
def enterTarget(self, ctx: CommentMacroParser.TargetContext):
|
||||||
ctx.targets = []
|
ctx.targets = []
|
||||||
|
|
Loading…
Reference in New Issue