I have a class that uses regular expressions to determine certain things.
This particular method is being called in a loop, but there are delays between one call and another because i need to do some http requests before calling this method. I hadn't reported the issue because i don't have a way to reproduce the error reliably.
But every once in a while i get these errors:
As you can see it always fails in the same spot:
Code: Select all
If job_title ~='i)Manager' || job_title ~= 'i)\b(3|III)\b'
here is the method being called:
Code: Select all
static GetLevel(code?, instance?)
{
static level_codes := Map(
'Leader' , '010',
'Owner' , '020',
'Founder' , '030',
'Partner' , '040',
'Operating Partner' , '050',
'Lower Partner' , '060',
'Executive' , '070',
'Operating Principal' , '080',
'Global EVP/SVP' , '090',
'EVP/SVP/SMD' , '100',
'Principal/MD/Deputy/AGC', '110',
'Global Vice President' , '120',
'Vice President' , '130',
'Senior Global Director' , '138',
'Senior Director' , '139',
'Global Director' , '140',
'Director' , '150',
'Principal' , '159',
'Lower Director' , '160',
'Upper Level Manager' , '170',
'Senior Manager' , '180',
'Global Manager' , '190',
'Territory Manager' , '200',
'Manager' , '210',
'Lower Manager' , '220',
'Specialist' , '230',
'Senior' , '240',
'Entry' , '250',
'Lower Entry' , '260',
'Intern' , '270',
'Consultant' , '280',
'Investor' , '290',
'Chairman' , '300',
'Board' , '310',
'Advisor' , '320',
)
if IsSet(code)
{
if code ~= '\d{3}'
{
for level, i_code in level_codes
{
if code != i_code
continue
return level
}
return 'Entry'
}
else if code = 'headers'
{
levels := []
for level in level_codes
levels.Push(level)
return levels
}
else
return level_codes[code]
}
job_title := instance['title']
OutputDebug 'GetLevel for: ' job_title '`n'
if (job_title ~= 'iS)executive assistant'
|| job_title ~= 'iS)accounts? executive'
|| job_title ~= 'iS)assistant to the president'
|| job_title ~= 'iS)contract coordinator'
|| job_title ~= 'iS)sales executive')
&& !(job_title ~= 'iS)s(enio)?r\.?|j(unio)?r\.?')
;; Entry
return level_codes['Entry']
else if job_title ~= 'iS)advis(e|o)r'
;; Advisor
return level_codes['Advisor']
else if job_title ~= 'iS)consult(ant|ing)'
|| job_title ~= 'iS)freelancer?'
|| job_title ~= 'iS)independent'
|| job_title ~= 'iS)contract(or)?'
;; Consultant
return level_codes['Consultant']
else if job_title ~= 'iS)business owner'
|| job_title ~= 'iS)(co-)?owner'
;; Owner
return level_codes['Owner']
else if job_title ~= 'iS)\b(Global\s)?V(ice(-|\s*))?\.?P(resident)?\.?\b'
|| job_title ~= 'iS)\bV(ice)?\s*P(resident)?\b'
|| job_title ~= 'iS)leader'
;; Vice President
return level_codes['Vice President']
else if job_title ~= 'iS)\bC(hief)?\s*E(xecutive)?\s*O(fficer)?\b'
|| job_title ~= 'iS)president'
;; Leader
return level_codes['Leader']
else if job_title ~= 'iS)\bE(xecutive)?\.?\s*V(ice(-|\s*))?\.?P(resident)?\.?\b'
|| job_title ~= 'iS)\bS((enio)?r\.?\s+)?\.?V(ice(-|\s*))?\.?P(resident)?\.?\b'
|| job_title ~= 'iS)S(enio)?r\.? Managing Director'
|| job_title ~= 'iS)executive director'
|| job_title ~= 'iS)secretary (general|treasurer)'
;; EVP/SVP/SMD
return level_codes['EVP/SVP/SMD']
else if job_title ~= 'iS)(managing|operating) partner'
;; Operating Partner
return level_codes['Operating Partner']
else if job_title ~= 'iS)associate partner'
|| job_title ~= 'iS)j(unio)?r\.? partner'
;; Lower Partner
return level_codes['Lower Partner']
else if job_title ~= 'iS)(?<!business\s)(?<!director\sof\s)partner(?!\s*success)'
;; Partner
return level_codes['Partner']
else if job_title ~= 'iS)chair(man|person)'
|| job_title ~= 'iS)co-chair'
;; Chairman
return level_codes['Chairman']
else if job_title ~= 'iS)board'
;; Board
return level_codes['Board']
else if job_title ~= 'iS)(managing|operating) principal'
;; Operating Principal
return level_codes['Operating Principal']
else if job_title ~= 'iS)(co-)?founder'
;; Founder
return level_codes['Founder']
else if job_title ~= 'iS)\bC\.?(R|M|S|E|F|O|R|B|M|P|D|A|C|I|T|HR|IS|DS|ML|AI|BI|CM)\.?O\.?\b'
|| job_title ~= 'iS)president|found(er|ing)|co-found(er|ing)|co-president'
|| job_title ~= 'iS)^exec(?!.*?(assistant|specialist|coordinator|secretary|liaison))'
|| job_title ~= 'iS)chief'
|| job_title ~= 'iS)(?<!Associate\s|Deputy\s|Assistant\s)\bG(eneral)?\s*C(ounsel)?\b'
|| job_title ~= 'iS)executive business partner'
;; Executive
return level_codes['Executive']
else if job_title ~= 'iS)Global (E|S)VP'
;; Global EVP/SVP
return level_codes['Global EVP/SVP']
; else if job_title ~= 'iS)(?<!solutions\s)(?<!solution\s)architect'
; ;; Architect
; return level_code['Architect']
else if job_title ~= 'iS)(?<!engineer\s)(?<!software\s)principal(?!.*software)(?!.*engineer)'
|| job_title ~= 'iS)managing director'
|| job_title ~= 'iS)deputy(?!\s*general|\s*clerk)'
|| job_title ~= 'iS)\bG(eneral)?\s*C(ounsel)?\b'
;; Principal/MD/Deputy/AGC
return level_codes['Principal/MD/Deputy/AGC']
else if job_title ~= 'iS)principal'
;; Principal
return level_codes['Principal']
else if job_title ~= 'iS)Global S(enio)?r\.? Director'
|| job_title ~= 'iS)Global Director'
;; Global Director
return level_codes['Global Director']
else if job_title ~= 'iS)senior.*director'
;; Senior Director
return level_codes['Senior Director']
else if job_title ~= 'iS)S(enio)?r\.? Director'
|| job_title ~= 'iS)head'
|| job_title ~= 'iS)(?<!associate\s)director'
|| job_title ~= 'iS)\bG(eneral)?\s*M(anager)?\b'
|| job_title ~= 'iS)controller'
|| job_title ~= 'iS)\b(4|IV)\b'
;; Director
return level_codes['Director']
else if job_title ~= 'iS)associate director'
;; Lower Director
return level_codes['Lower Director']
else if job_title ~= 'iS)Global S(enio)?r\.? Manager'
|| job_title ~= 'iS)S(enio)?r\.? Manager'
|| job_title ~= 'iS)S(enio)?r\.? Territory Manager'
|| job_title ~= 'iS)S(enio)?r\.? Regional Manager'
|| job_title ~= 'iS)Program Manager'
;; Upper Level Manager
return level_codes['Upper Level Manager']
else if job_title ~= 'iS)Global .* Manager'
;; Global Manager
return level_codes['Global Manager']
else if job_title ~= 'iS)(Associate|Assistant) Manager'
|| job_title ~= 'iS)staff \w+'
|| job_title ~= 'iS)lead'
;; Lower Manager
return level_codes['Lower Manager']
else if job_title ~= 'iS)(National|Regional|Territory) Manager'
;; Territory Manager
return level_codes['Territory Manager']
else if job_title ~='iS)S(enio)?r\.?(?=.*manager)'
;; Senior Manager
return level_codes['Senior Manager']
else if job_title ~='iS)Manager'
|| job_title ~= 'iS)\b(3|III)\b'
;; Manager
return level_codes['Manager']
else if job_title ~= 'iS)Specialist'
|| job_title ~= 'iS)architect'
;; Specialist
return level_codes['Specialist']
else if job_title ~= 'iS)supervisor' ; job_title ~= 'iS)\b(^\w+(\s|-)?)?lead(\s \w+)?\b'
|| job_title ~= 'iS)s(enio)?r\.?'
|| job_title ~= 'iS)\b(2|II)\b'
;; Senior
return level_codes['Senior']
else if job_title ~= 'iS)(business|sales) development (representative|executive)'
|| job_title ~= 'iS)assistant'
|| job_title ~= 'iS)coordinator'
|| job_title ~= 'iS)j(unio)?r'
|| job_title ~= 'iS)junior account (executive|associate)'
|| job_title ~= 'iS)fellow'
;; Lower Entry
return level_codes['Lower Entry']
else if job_title ~= 'iS)intern'
;; Intern
return level_codes['Intern']
else if job_title ~= 'iS)investor'
;; Investor
return level_codes['Investor']
return level_codes['Entry']
}
Any insights as to why autohotkey decides to completely crash from time to time might be appreciated.