srcanamdw/codescanner/scripts/callActiveObjectWithoutCheckingOrStopping.py
author noe\swadi
Thu, 18 Feb 2010 12:29:02 +0530
changeset 1 22878952f6e2
permissions -rw-r--r--
Committing the CodeScanner Core tool This component has been moved from the StaticAnaApps package. BUG : 5889 (http://developer.symbian.org/webbugs/show_bug.cgi?id=5889).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     1
# #################################################################
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     2
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     3
# All rights reserved.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     4
# 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     5
# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     6
# 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     7
# * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     8
# * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     9
# * Neither the name of Nokia Corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    10
# 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    11
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    12
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    13
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    14
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    15
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    16
#
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    17
# callActiveObjectWithoutCheckingOrStopping.py
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    18
#
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    19
# Checks : Active object called without checking whether it is 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    20
# active or canceling it first.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    21
#
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    22
# Reason : If an active object is started twice, a panic occurs. 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    23
# CodeScanner picks out places where there is a call to a Start(), 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    24
# Queue(), or After() function on a member variable, without a 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    25
# previous call to IsActive(), Cancel(), or Stop(). In general, 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    26
# if starting a timer, there should at least be a call to IsActive() 
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    27
# to ensure that the timer is not already running.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    28
#
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    29
# #################################################################
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    30
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    31
script = CScript("callActiveObjectWithoutCheckingOrStopping")
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    32
script.iReString = r"""\("""
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    33
script.iFileExts = ["cpp"]
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    34
script.iCategory = KCategoryCodeReviewGuides
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    35
script.iIgnore = KIgnoreCommentsAndQuotes
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    36
script.iSeverity = KSeverityLow
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    37
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    38
activeObjectIsActive = re.compile("""
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    39
	(\.|->)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    40
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    41
	IsActive
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    42
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    43
	\(
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    44
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    45
	\)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    46
	""", re.VERBOSE)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    47
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    48
activeObjectCancel = re.compile("""
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    49
	(\.|->)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    50
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    51
	Cancel
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    52
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    53
	\(
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    54
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    55
	\)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    56
	""", re.VERBOSE)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    57
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    58
activeObjectStop = re.compile("""
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    59
	(\.|->)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    60
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    61
	Stop
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    62
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    63
	\(
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    64
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    65
	\)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    66
	""", re.VERBOSE)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    67
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    68
activeObjectCreate = re.compile("""
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    69
	=
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    70
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    71
	\w+
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    72
	::
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    73
	New
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    74
	\w*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    75
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    76
	\(
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    77
	""", re.VERBOSE)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    78
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    79
activeObjectCreate2 = re.compile("""
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    80
	=
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    81
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    82
	new
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    83
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    84
	\(
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    85
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    86
	ELeave
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    87
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    88
	\)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    89
	""", re.VERBOSE)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    90
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    91
activeObjectStart = re.compile("""
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    92
	(\.|->)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    93
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    94
	Start
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    95
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    96
	\(
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    97
	""", re.VERBOSE)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    98
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    99
activeObjectQueue = re.compile("""
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   100
	(\.|->)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   101
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   102
	Queue
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   103
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   104
	\(
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   105
	""", re.VERBOSE)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   106
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   107
activeObjectAfter = re.compile("""
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   108
	(\.|->)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   109
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   110
	After
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   111
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   112
	\(
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   113
	""", re.VERBOSE)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   114
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   115
# RTimer::After() takes 2 arguments
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   116
rtimerObjectAfter = re.compile("""
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   117
	(\.|->)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   118
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   119
	After
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   120
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   121
	\(
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   122
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   123
	\w+			# first argument
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   124
	\s*
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   125
	,
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   126
	""", re.VERBOSE)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   127
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   128
# Non-active types with After(), Queue() or Start() function
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   129
KNonActiveTypes = {
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   130
	"KAnimation"					: "Animation",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   131
	"KAnimator"						: "Animator",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   132
	"KClockSourcePeriodicUtility"	: "ClockSourcePeriodicUtility",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   133
	"KCodecWrapper"					: "CodecWrapper",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   134
	"KCommTimer"					: "CommTimer",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   135
	"KEmbeddedStore"				: "EmbeddedStore",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   136
	"KFormulaTextLexer"				: "FormulaTextLexer",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   137
	"KObexServer"					: "ObexServer",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   138
	"KSpriteAnimation"				: "SpriteAnimation",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   139
	"KRConnection"					: "RConnection",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   140
	"KRSubConnection"				: "RSubConnection",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   141
	"KRTest"						: "RTest",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   142
	"KRTimer"						: "RTimer",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   143
	"KValidityPeriod"				: "ValidityPeriod",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   144
	"KVideoPlayHwDevice"			: "VideoPlayHwDevice",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   145
	"KVideoRecordHwDevice"			: "VideoRecordHwDevice",
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   146
}
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   147
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   148
def isNonActiveObject(variable):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   149
	for name, value in KNonActiveTypes.items():
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   150
		if (variable.lower().find(value.lower()) <> -1):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   151
			return True
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   152
	return False
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   153
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   154
def activeObjectCompare(lines, currentline, rematch, filename):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   155
	line = lines[currentline]
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   156
	m = rematch.search(line)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   157
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   158
	if m:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   159
		if (scanner.iCurrentMethodName == "Start"):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   160
			return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   161
		if (scanner.iCurrentMethodName == "Queue"):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   162
			return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   163
		if (scanner.iCurrentMethodName == "After"):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   164
			return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   165
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   166
		checkForIsActive = 0	
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   167
		if (activeObjectStart.search(line)):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   168
			checkForIsActive = 1
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   169
		if (activeObjectQueue.search(line)):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   170
			checkForIsActive = 1
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   171
		if (activeObjectAfter.search(line)):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   172
			# make sure we are not dealing with RTimer::After()
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   173
			if (not rtimerObjectAfter.search(line)):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   174
				checkForIsActive = 1
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   175
		if (checkForIsActive == 1):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   176
			varEnd = line.find("->")
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   177
			if (varEnd < 0):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   178
				varEnd = line.find(".")
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   179
			if (varEnd < 0):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   180
				return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   181
			
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   182
			variable = TrimVariableName(line[:varEnd])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   183
			if (len(variable) == 0):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   184
				return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   185
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   186
			# if a local variable then unlikely to have been started already
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   187
			if (len(variable) > 2):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   188
				if (variable[0] != 'i'):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   189
					return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   190
				else:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   191
					if (variable[1] < 'A') or (variable[1] > 'Z'):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   192
						return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   193
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   194
			# ignore non-active object
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   195
			if isNonActiveObject(variable):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   196
				return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   197
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   198
			i = currentline
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   199
			while (i > scanner.iCurrentMethodStart):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   200
				line = lines[i]
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   201
				varPos = line.find(variable)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   202
				if (varPos >= 0):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   203
					cutLine = line[varPos:]
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   204
					if (activeObjectIsActive.search(cutLine)):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   205
						return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   206
					if (activeObjectCancel.search(cutLine)):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   207
						return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   208
					if (activeObjectStop.search(cutLine)):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   209
						return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   210
					if (activeObjectCreate.search(cutLine)):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   211
						return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   212
					if (activeObjectCreate2.search(cutLine)):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   213
						return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   214
				i = i - 1
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   215
			return 1
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   216
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   217
	return 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   218
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   219
script.iCompare	= activeObjectCompare
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   220
scanner.AddScript(script)