

def visit_Call(self, node):
    if isinstance(node.func, ast.Attribute):
        if isinstance(node.func.value, ast.Name):
            if (node.func.value.id == 'context'):
                if (node.func.attr == 'getFrame'):
                    self.contextReads.add('frame')
                elif (node.func.attr == 'getTime'):
                    self.contextReads.add('frame')
                    self.contextReads.add('framesPerSecond')
                elif (node.func.attr == 'getFramesPerSecond'):
                    self.contextReads.add('framesPerSecond')
                elif (self.func.attr == 'get'):
                    if (not isinstance(node.args[0], ast.Str)):
                        raise SyntaxError('Context name must be a string')
                    self.contextReads.add(node.args[0].s)
    ast.NodeVisitor.generic_visit(self, node)

dataset/ETHPy150Open ImageEngine/gaffer/python/Gaffer/PythonExpressionEngine.py _Parser.visit_Call/VarMisuse@137/181 `node`->`self`