Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
RegExp question
Message
From
10/02/2017 07:36:21
 
 
To
10/02/2017 07:04:27
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Environment versions
Visual FoxPro:
VFP 9 SP2
Miscellaneous
Thread ID:
01647702
Message ID:
01647830
Views:
62
>>Sound Super,
>>Can you send me a copy of the class (and any dependents) via email ( GregReichert@GLRsoftware.com ). Any required instruction would be appreciated.
>>My FUnit tool allows the developer to place Unit Test pretty much anywhere in the source code, general close the points needing to be tested. The test suite I am working on, scans the source code, and finds the unit tests. It extracts the locations (file, class, method, etc) of the tests and presents a tree list of the location and the tests to developer. This is where a process like your would help.

… (cont'd)

here is a sample debug output:
* ========================================
13:28:50 - .instsPROC(), PATTERN  (1561 cars) :
(^[ \t]*(?=[_\u0041-\u005A\u005F\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0152-\u0153\u0160-\u0161\u0178\u0192#@&=\?\.\\](?!&))(?:(?:HIDD(?:E|EN)?|PROT(?:E|EC|ECT|ECTE|ECTED)?)(?:[ \t]+|(?:[ \t]*;\s*?(?=&&|$).*?$\s+)))*(?:FUNC(?:T|TI|TIO|TION)?|PROC(?:E|ED|EDU|EDUR|EDURE)?)(?:[ \t]+|(?:[ \t]*;\s*?(?=&&|$).*?$\s+)))(\b(?:[a-ln-z]|(?:[_\u0041-\u005A\u005F\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0152-\u0153\u0160-\u0161\u0178\u0192][_0-9\u0041-\u005A\u005F\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0152-\u0153\u0160-\u0161\u0178\u0192]{1,126}))\b(?:\.\b(?:[a-ln-z]|(?:[_\u0041-\u005A\u005F\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0152-\u0153\u0160-\u0161\u0178\u0192][_0-9\u0041-\u005A\u005F\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0152-\u0153\u0160-\u0161\u0178\u0192]{1,126}))\b)*)([^;\r\n]*?(?:;.*\r\n[^;\r\n]+)*?$(?:\r\n)?)((?:(?:^[ \t]*$\r\n)|(?:^[ \t]*(?:\*|&{2}|NOTE)[^;\r\n]*?(?:;.*\r\n[^;\r\n]+)*?$(?:\r\n)?))*?(?:^[ \t]*(?=[_\u0041-\u005A\u005F\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0152-\u0153\u0160-\u0161\u0178\u0192#@&=\?\.\\](?!&))L?PARA(?:M|ME|MET|METE|METER|METERS)?[^;\r\n]*?(?:;.*\r\n[^;\r\n]+)*?$(?:\r\n)?))?((?:[\s\S](?!^[ \t]*(?=[_\u0041-\u005A\u005F\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0152-\u0153\u0160-\u0161\u0178\u0192#@&=\?\.\\](?!&))(?:HIDD(?:E|EN)?|PROT(?:E|EC|ECT|ECTE|ECTED)?|PROC(?:E|ED|EDU|EDUR|EDURE)?|FUNC(?:T|TI|TIO|TION)?|ENDDE(?:F|FI|FIN|FINE)?|ENDP(?:R|RO|ROC)?|ENDFU(?:N|NC)?)\b[^;\r\n]*?(?:;.*\r\n[^;\r\n]+)*?$(?:\r\n)?))+)
IgnoreCase: OUI, Global: OUI, MultiLine: OUI
TEXTE (13 268 cars) :
"	USE junk ALIAS test"+Chr(13)+Chr(10)+""+Chr(13)+Chr(10)+"	* -----------"+Chr(13)+Chr(10)+"	DEFINE CLASS;"+Chr(13)+Chr(10)+"		 test;"+Chr(13)+Chr(10)+"		  AS testClass"+Chr(13)+Chr(10)+""+Chr(13)+Chr(10)+"		test1 = ..."
6 occurrences trouvées en 0,000 secondes

--- occurrence 1/6 - position 108 - longueur 144 cars - ligne 10
"		PROCED test1 && {fr} commentaire"+Chr(13)+Chr(10)+"			LPARAME test;"+Chr(13)+Chr(10)+"				, test2,;"+Chr(13)+Chr(10)+"				test3 && {fr} commentaire"+Chr(13)+Chr(10)+"			Sourcecode = ...
>> subMatch: 1/5 "		PROCED "
>> subMatch: 2/5 "test1"
>> subMatch: 3/5 " && {fr} commentaire"
>> subMatch: 4/5 "			LPARAME test;"+Chr(13)+Chr(10)+"				, test2,;"+Chr(13)+Chr(10)+"				test3 && {fr} commentaire"
>> subMatch: 5/5 "			Sourcecode = test"+Chr(13)+Chr(10)+"			* {fr} Commentaire"

--- occurrence 2/6 - position 266 - longueur 353 cars - ligne 18
"		PROTECT ;"+Chr(13)+Chr(10)+"			PROCED test2(;"+Chr(13)+Chr(10)+"					parm1; && {fr} commentaire (de) paramètre"+Chr(13)+Chr(10)+"				, parm2;"+Chr(13)+Chr(10)+"				)"+Chr(13)+Chr(10)+"			* ...
>> subMatch: 1/5 "		PROTECT ;"+Chr(13)+Chr(10)+"			PROCED "
>> subMatch: 2/5 "test2"
>> subMatch: 3/5 "(;"+Chr(13)+Chr(10)+"					parm1; && {fr} commentaire (de) paramètre"+Chr(13)+Chr(10)+"				, parm2;"+Chr(13)+Chr(10)+"				)"
>> subMatch: 4/5 ""
>> subMatch: 5/5 "			* {fr} Commentaire avant le code"+Chr(13)+Chr(10)+"			DEFI;"+Chr(13)+Chr(10)+"				PAD toto"+Chr(13)+Chr(10)+"			ZAP IN test"+Chr(13)+Chr(10)+"				"+Chr(13)+Chr(10)+"			DO FORM test.scx ...

--- occurrence 3/6 - position 620 - longueur 39 cars - ligne 36
"		HIDD FUNC test3 (parm3)"+Chr(13)+Chr(10)+"			test = 5"
>> subMatch: 1/5 "		HIDD FUNC "
>> subMatch: 2/5 "test3"
>> subMatch: 3/5 " (parm3)"
>> subMatch: 4/5 ""
>> subMatch: 5/5 "			test = 5"

--- occurrence 4/6 - position 970 - longueur 3271 cars - ligne 50
"		PROCEDU test4.test(; && {fr} commentaire"+Chr(13)+Chr(10)+"					Parm1;"+Chr(13)+Chr(10)+"				, Parm2)"+Chr(13)+Chr(10)+"			FORM.show(1)"+Chr(13)+Chr(10)+"				"+Chr(13)+Chr(10)+"			DO FORM ? ...
>> subMatch: 1/5 "		PROCEDU "
>> subMatch: 2/5 "test4.test"
>> subMatch: 3/5 "(; && {fr} commentaire"+Chr(13)+Chr(10)+"					Parm1;"+Chr(13)+Chr(10)+"				, Parm2)"
>> subMatch: 4/5 ""
>> subMatch: 5/5 "			FORM.show(1)"+Chr(13)+Chr(10)+"				"+Chr(13)+Chr(10)+"			DO FORM ?  && {fr} commentaire ?"+Chr(13)+Chr(10)+"			DO FORM \\test\test;"+Chr(13)+Chr(10)+'				 WITH "Voulez-vous Déboguer ...

--- occurrence 5/6 - position 4242 - longueur 151 cars - ligne 134
"		PROCEDURE itdébut_assign"+Chr(13)+Chr(10)+"		lparameters tuNewValue"+Chr(13)+Chr(10)+"		This.itdébut = tuNewValue && {fr} DO acRegExp_instPropAssign_Test IN actxt WITH .F.,,'itdébut'"
>> subMatch: 1/5 "		PROCEDURE "
>> subMatch: 2/5 "itdébut_assign"
>> subMatch: 3/5 ""
>> subMatch: 4/5 "		lparameters tuNewValue"
>> subMatch: 5/5 "		This.itdébut = tuNewValue && {fr} DO acRegExp_instPropAssign_Test IN actxt WITH .F.,,'itdébut'"

--- occurrence 6/6 - position 4540 - longueur 5955 cars - ligne 147
"	FUNCTIO Test5"+Chr(13)+Chr(10)+"	"+Chr(13)+Chr(10)+"	NOTE commentaire"+Chr(13)+Chr(10)+"	* {fr} Commentaire"+Chr(13)+Chr(10)+"	LPARAMETERS test1"+Chr(13)+Chr(10)+"		DEFINE BAR toto ...
>> subMatch: 1/5 "	FUNCTIO "
>> subMatch: 2/5 "Test5"
>> subMatch: 3/5 ""
>> subMatch: 4/5 "	"+Chr(13)+Chr(10)+"	NOTE commentaire"+Chr(13)+Chr(10)+"	* {fr} Commentaire"+Chr(13)+Chr(10)+"	LPARAMETERS test1"
>> subMatch: 5/5 "		DEFINE BAR toto ;"+Chr(13)+Chr(10)+"			OF _test"+Chr(13)+Chr(10)+"		DO test.prg"+Chr(13)+Chr(10)+"		ON SELECT;"+Chr(13)+Chr(10)+"			BAR test OF test DO ...
* ========================================
6 occurrences trouvées en 0,000 secondes
here are the procs and methods available:
   Module:  acregexp_base_test
   Module:  acregexp_instprocparms_test
   Module:  acregexp_inst_test
   Module:  acregexp_instvoid_test
   Module:  acregexp_instmenu_test
   Module:  acregexp_instformdoorshow_test
   Module:  acregexp_instabspath_test
   Module:  acregexp_instlock_test
   Module:  acregexp_instdataexcl_test
   Module:  acregexp_instpara_test
   Module:  acregexp_funcmethcall_test
   Module:  acregexp_instmethcall_test
   Module:  acregexp_instfunccall_test
   Module:  acregexp_instprop_test
   Module:  acregexp_instpropassign_test
   Module:  acregexp_instvarassign_test
   Module:  acregexp_instcmd_test
   Module:  acregexp_instwaitclauses_test
   Module:  acregexp_instsdefineclass_test
   Module:  acregexp_instspmdef_test
   Module:  acregexp_instsproc_test
   Module:  acregexp_instsproc_test_mp
   Module:  acregexp_instsblock_test
   Module:  acregexp_instcommentlocal_test
   Module:  acregexp_commentlocal_test
   Module:  acregexp_awmodalstate_test
   Module:  acregexp_awmodalsupp_test
   Module:  acregexp_awmodalsuppnot_test
   Module:  acregexp_awsets_test
   Module:  acregexp_awdlls_test
   Module:  acregexp_instsstop_test
   Module:  acregexp_wnvsub_test
   Module:  acregexp_tests
   Module:  lacregexp
   Module:  acregexp
   Class:   acregexp
   Method:  init
   Method:  instrestequal
   Method:  parenth
   Method:  ckwd
   Method:  instformdoorshow
   Method:  instdataexcl
   Method:  instformdo
   Method:  instformshow
   Method:  instabspath
   Method:  instreportform
   Method:  instcmd
   Method:  instdo
   Method:  instreleasethisform
   Method:  instpara
   Method:  instset
   Method:  instdeclare
   Method:  instlock
   Method:  instmenu
   Method:  instmenu_cmd
   Method:  menufuncs
   Method:  menufunccalls
   Method:  instmenu_func
   Method:  instprop
   Method:  wnv_
   Method:  instpropassign
   Method:  instvarassign
   Method:  instwaitclauses
   Method:  instsdefineclass
   Method:  instsproc
   Method:  instprocparms
   Method:  instproc_cparms
   Method:  instspmdef
   Method:  instfunccall
   Method:  instmethcall
   Method:  instcall
   Method:  funccall
   Method:  funcmethcall
   Method:  instcommentlocal
   Method:  commentlocal
   Method:  awmodalstate
   Method:  instsstop
   Method:  awmodalsupp
   Method:  awmodalsuppnot
   Method:  awsetsref
   Method:  awsetsgen
   Method:  awsetsds
   Method:  awdlls
   Method:  cprginstshead
   Method:  test
   Method:  execute
   Method:  execute_pattern
   Method:  ccode
   Method:  ccode_test
   Module:  lacregexpblock
   Module:  acregexpblock
   Class:   acregexpblock
   Method:  cpatternbeg
   Method:  instsblock
   Method:  instswith
   Method:  execute
   Method:  replace
Thierry Nivelet
FoxinCloud
Give your VFP application a second life, web-based, in YOUR cloud
http://foxincloud.com/
Never explain, never complain (Queen Elizabeth II)
Previous
Reply
Map
View

Click here to load this message in the networking platform