utils.py revision 13481
113481Sgiacomo.travaglini@arm.com#!/usr/bin/env python 213481Sgiacomo.travaglini@arm.com# 313481Sgiacomo.travaglini@arm.com# Copyright 2007 Neal Norwitz 413481Sgiacomo.travaglini@arm.com# Portions Copyright 2007 Google Inc. 513481Sgiacomo.travaglini@arm.com# 613481Sgiacomo.travaglini@arm.com# Licensed under the Apache License, Version 2.0 (the "License"); 713481Sgiacomo.travaglini@arm.com# you may not use this file except in compliance with the License. 813481Sgiacomo.travaglini@arm.com# You may obtain a copy of the License at 913481Sgiacomo.travaglini@arm.com# 1013481Sgiacomo.travaglini@arm.com# http://www.apache.org/licenses/LICENSE-2.0 1113481Sgiacomo.travaglini@arm.com# 1213481Sgiacomo.travaglini@arm.com# Unless required by applicable law or agreed to in writing, software 1313481Sgiacomo.travaglini@arm.com# distributed under the License is distributed on an "AS IS" BASIS, 1413481Sgiacomo.travaglini@arm.com# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1513481Sgiacomo.travaglini@arm.com# See the License for the specific language governing permissions and 1613481Sgiacomo.travaglini@arm.com# limitations under the License. 1713481Sgiacomo.travaglini@arm.com 1813481Sgiacomo.travaglini@arm.com"""Generic utilities for C++ parsing.""" 1913481Sgiacomo.travaglini@arm.com 2013481Sgiacomo.travaglini@arm.com__author__ = 'nnorwitz@google.com (Neal Norwitz)' 2113481Sgiacomo.travaglini@arm.com 2213481Sgiacomo.travaglini@arm.com 2313481Sgiacomo.travaglini@arm.comimport sys 2413481Sgiacomo.travaglini@arm.com 2513481Sgiacomo.travaglini@arm.com 2613481Sgiacomo.travaglini@arm.com# Set to True to see the start/end token indices. 2713481Sgiacomo.travaglini@arm.comDEBUG = True 2813481Sgiacomo.travaglini@arm.com 2913481Sgiacomo.travaglini@arm.com 3013481Sgiacomo.travaglini@arm.comdef ReadFile(filename, print_error=True): 3113481Sgiacomo.travaglini@arm.com """Returns the contents of a file.""" 3213481Sgiacomo.travaglini@arm.com try: 3313481Sgiacomo.travaglini@arm.com fp = open(filename) 3413481Sgiacomo.travaglini@arm.com try: 3513481Sgiacomo.travaglini@arm.com return fp.read() 3613481Sgiacomo.travaglini@arm.com finally: 3713481Sgiacomo.travaglini@arm.com fp.close() 3813481Sgiacomo.travaglini@arm.com except IOError: 3913481Sgiacomo.travaglini@arm.com if print_error: 4013481Sgiacomo.travaglini@arm.com print('Error reading %s: %s' % (filename, sys.exc_info()[1])) 4113481Sgiacomo.travaglini@arm.com return None 42