##// END OF EJS Templates
Add lambda in VIsualizationWidget to fix the bug of the corner widget button size...
Add lambda in VIsualizationWidget to fix the bug of the corner widget button size Modify the property of the QFrame to ensure the box around the zone widget to be visible

File last commit:

r2:451739a45362
r186:134da9ef870f
Show More
IPSIS_S06.tcl
166 lines | 6.5 KiB | application/x-tcl | TclLexer
#!/usr/bin/tclsh
# Forbid public member variables
set forbidPublicMemberVarInStruct [getParameter "also-forbid-public-member-var-in-struct" 0]
proc createMachine {type initState} {
set machine [dict create classOrStruct $type state $initState previousState "" bracesCounter 0 parenCounter 0 bracketCounter 0 isStatic 0 isTypedef 0 isRootClass 0]
return $machine
}
set tokenFilter {
public
protected
private
typedef
enum
class
struct
static
identifier
assign
semicolon
leftbrace
rightbrace
leftparen
rightparen
leftbracket
rightbracket
operator
}
foreach fileName [getSourceFileNames] {
if {[regexp {\.h$} $fileName]} {
set machines [list]
set rootClass 1
set lastIdentifier ""
set prev1 ""
foreach token [getTokens $fileName 1 0 -1 -1 $tokenFilter] {
set type [lindex $token 3]
set line [lindex $token 1]
if {$type == "identifier"} {
set lastIdentifier [lindex $token 0]
}
if {$rootClass && ($type == "class" || $type == "struct")} {
set m [createMachine $type "beforeLeftBrace"]
dict set m isRootClass 1
lappend machines $m
set rootClass 0
}
set machinesToKeep [list]
foreach m $machines {
set keepMachine 1
dict with m {
if {$state == "beforeLeftBrace"} {
if {$type == "leftbrace"} {
if {$classOrStruct == "class"} {
set state "root"
} elseif {$classOrStruct == "struct"} {
set state "public"
}
} elseif {$type == "semicolon"} {
set keepMachine 0
set rootClass $isRootClass
}
} elseif {$state == "root"} {
if {$type == "public"} {
set state "public"
} elseif {$type == "leftbrace"} {
incr bracesCounter
set previousState $state
set state "consumeBraces"
} elseif {$type == "rightbrace"} {
set keepMachine 0
set rootClass $isRootClass
}
} elseif {$state == "public"} {
if {$type == "class" || $type == "struct"} {
lappend machinesToKeep [createMachine $type "beforeLeftBrace"]
}
if {$type == "static"} {
set isStatic 1
}
if {$type == "typedef"} {
set isTypedef 1
}
if {$prev1 == "identifier" && ($type == "assign" || $type == "semicolon" || $type == "leftbracket")} {
if {!$isStatic && !$isTypedef} {
if {($classOrStruct == "class") || ($classOrStruct == "struct" && $forbidPublicMemberVarInStruct)} {
report $fileName $line "Public member variables are forbidden in $classOrStruct (found: $lastIdentifier)"
}
}
} elseif {$type == "protected" || $type == "private"} {
set isStatic 0
set isTypedef 0
set state "root"
} elseif {$type == "leftbrace"} {
incr bracesCounter
set previousState $state
set state "consumeBraces"
} elseif {$type == "leftparen"} {
incr parenCounter
set previousState $state
set state "consumeParen"
} elseif {$type == "rightbrace"} {
set keepMachine 0
set rootClass $isRootClass
}
if {$type == "leftbracket"} {
incr bracketCounter
set previousState $state
set state "consumeBracket"
}
if {$type == "semicolon" || $type == "leftbrace"} {
set isStatic 0
}
if {$type == "semicolon"} {
set isTypedef 0
}
} elseif {$state == "consumeBraces"} {
if {$type == "leftbrace"} {
incr bracesCounter
} elseif {$type == "rightbrace"} {
incr bracesCounter -1
if {$bracesCounter == 0} {
set state $previousState
}
}
} elseif {$state == "consumeParen"} {
if {$type == "leftparen"} {
incr parenCounter
} elseif {$type == "rightparen"} {
incr parenCounter -1
if {$parenCounter == 0} {
set state $previousState
}
}
} elseif {$state == "consumeBracket"} {
if {$type == "leftbracket"} {
incr bracketCounter
} elseif {$type == "rightbracket"} {
incr bracketCounter -1
if {$bracketCounter == 0} {
set state $previousState
}
}
}
}
if {$keepMachine} {
lappend machinesToKeep $m
}
}
set machines $machinesToKeep
set prev1 $type
}
}
}