16a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower# Copyright 2017 The TensorFlow Authors. All Rights Reserved.
26a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower#
36a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower# Licensed under the Apache License, Version 2.0 (the "License");
46a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower# you may not use this file except in compliance with the License.
56a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower# You may obtain a copy of the License at
66a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower#
76a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower#     http://www.apache.org/licenses/LICENSE-2.0
86a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower#
96a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower# Unless required by applicable law or agreed to in writing, software
106a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower# distributed under the License is distributed on an "AS IS" BASIS,
116a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
126a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower# See the License for the specific language governing permissions and
136a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower# limitations under the License.
146a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower# ==============================================================================
156a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower"""Annotations used by the static analizer."""
166a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower
176a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlowerfrom __future__ import absolute_import
186a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlowerfrom __future__ import division
196a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlowerfrom __future__ import print_function
206a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower
216a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlowerfrom enum import Enum
226a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower
236a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower
246a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlowerclass NoValue(Enum):
256a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower
266a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower  def __repr__(self):
276a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower    return self.name
286a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower
296a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower
306a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlowerclass NodeAnno(NoValue):
316a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower  """Additionnal annotations used by the static analyzer.
326a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower
336a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower  These are in addition to the basic annotations declared in anno.py.
346a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower  """
356a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower
366a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower  # Symbols
376a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower
386a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower  IS_LOCAL = 'Symbol is local to the function scope being analized.'
396a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower  IS_PARAM = 'Symbol is a parameter to the function being analized.'
406a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower  IS_MODIFIED_SINCE_ENTRY = (
416a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower      'Symbol has been explicitly replaced in the current function scope.')
426a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower
436a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower  # Scopes
446a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower  ARGS_SCOPE = 'The scope for the argument list of a function call.'
456a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower  BODY_SCOPE = (
466a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower      'The scope for the main body of a statement (True branch for if '
476a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower      'statements, main body for loops).')
486a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower  ORELSE_SCOPE = (
496a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower      'The scope for the orelse body of a statement (False branch for if '
506a822c373818948037baacfbae1c7355e0fc2c48A. Unique TensorFlower      'statements, orelse body for loops).')
51