Smalltalk parser almost fixed (except few pragma-related tests).
Code is bit ugly sometimes....
--- a/analyzer/Make.proto Tue Oct 07 09:42:03 2014 +0100
+++ b/analyzer/Make.proto Wed Oct 08 00:08:21 2014 +0100
@@ -34,7 +34,7 @@
# add the path(es) here:,
# ********** OPTIONAL: MODIFY the next lines ***
# LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/petitparser -I$(INCLUDE_TOP)/stx/goodies/petitparser/analyzer/tests -I$(INCLUDE_TOP)/stx/libbasic
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/petitparser -I$(INCLUDE_TOP)/stx/libbasic
# if you need any additional defines for embedded C code,
@@ -135,7 +135,7 @@
$(OUTDIR)PPSearcher.$(O) PPSearcher.$(H): PPSearcher.st $(INCLUDE_TOP)/stx/goodies/petitparser/analyzer/PPProcessor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)PPBlockReplaceRule.$(O) PPBlockReplaceRule.$(H): PPBlockReplaceRule.st $(INCLUDE_TOP)/stx/goodies/petitparser/analyzer/PPReplaceRule.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/analyzer/PPRule.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)PPParserReplaceRule.$(O) PPParserReplaceRule.$(H): PPParserReplaceRule.st $(INCLUDE_TOP)/stx/goodies/petitparser/analyzer/PPReplaceRule.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/analyzer/PPRule.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/goodies/petitparser/PPActionParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPDelegateParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPEpsilonParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPFailingParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPFlattenParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPLimitedRepeatingParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPListParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPLiteralParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPNotParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPOptionalParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPPluggableParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPPredicateParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPPredicateSequenceParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPRepeatingParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPSequenceParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPTokenParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/analyzer/tests/stx_goodies_petitparser_analyzer_tests.$(H) $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/goodies/petitparser/PPActionParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPDelegateParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPEpsilonParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPFailingParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPFlattenParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPLimitedRepeatingParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPListParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPLiteralParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPNotParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPOptionalParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPPluggableParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPPredicateParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPPredicateSequenceParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPRepeatingParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPSequenceParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPTokenParser.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/analyzer/PPRewriter.st Tue Oct 07 09:42:03 2014 +0100
+++ b/analyzer/PPRewriter.st Wed Oct 08 00:08:21 2014 +0100
@@ -68,5 +68,10 @@
version_CVS
^ '$Header: /cvs/stx/stx/goodies/petitparser/analyzer/PPRewriter.st,v 1.2 2014-03-04 20:27:50 cg Exp $'
+!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
! !
--- a/analyzer/analyzer.rc Tue Oct 07 09:42:03 2014 +0100
+++ b/analyzer/analyzer.rc Wed Oct 08 00:08:21 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2014\nCopyright eXept Software AG 1998-2014\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Sat, 04 Oct 2014 20:46:37 GMT\0"
+ VALUE "ProductDate", "Tue, 07 Oct 2014 23:05:01 GMT\0"
END
END
--- a/analyzer/bc.mak Tue Oct 07 09:42:03 2014 +0100
+++ b/analyzer/bc.mak Wed Oct 08 00:08:21 2014 +0100
@@ -34,7 +34,7 @@
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\petitparser -I$(INCLUDE_TOP)\stx\goodies\petitparser\analyzer\tests -I$(INCLUDE_TOP)\stx\libbasic
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\petitparser -I$(INCLUDE_TOP)\stx\libbasic
LOCALDEFINES=
STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -varPrefix=$(LIBNAME)
@@ -81,7 +81,7 @@
$(OUTDIR)PPSearcher.$(O) PPSearcher.$(H): PPSearcher.st $(INCLUDE_TOP)\stx\goodies\petitparser\analyzer\PPProcessor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)PPBlockReplaceRule.$(O) PPBlockReplaceRule.$(H): PPBlockReplaceRule.st $(INCLUDE_TOP)\stx\goodies\petitparser\analyzer\PPReplaceRule.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\analyzer\PPRule.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)PPParserReplaceRule.$(O) PPParserReplaceRule.$(H): PPParserReplaceRule.st $(INCLUDE_TOP)\stx\goodies\petitparser\analyzer\PPReplaceRule.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\analyzer\PPRule.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPActionParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPEpsilonParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPFailingParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPFlattenParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPLimitedRepeatingParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPListParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPLiteralParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPNotParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPOptionalParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPPluggableParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPPredicateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPPredicateSequenceParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPRepeatingParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPSequenceParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPTokenParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\analyzer\tests\stx_goodies_petitparser_analyzer_tests.$(H) $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPActionParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPEpsilonParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPFailingParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPFlattenParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPLimitedRepeatingParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPListParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPLiteralParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPNotParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPOptionalParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPPluggableParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPPredicateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPPredicateSequenceParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPRepeatingParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPSequenceParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPTokenParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/analyzer/tests/stx_goodies_petitparser_analyzer_tests.st Tue Oct 07 09:42:03 2014 +0100
+++ b/analyzer/tests/stx_goodies_petitparser_analyzer_tests.st Wed Oct 08 00:08:21 2014 +0100
@@ -7,6 +7,7 @@
category:'* Projects & Packages *'
!
+
!stx_goodies_petitparser_analyzer_tests class methodsFor:'accessing - monticello'!
monticelloLastMergedVersionInfo
@@ -32,7 +33,6 @@
"Modified: / 04-10-2014 / 21:37:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-
!stx_goodies_petitparser_analyzer_tests class methodsFor:'description'!
excludedFromPreRequisites
--- a/analyzer/tests/tests.rc Tue Oct 07 09:42:03 2014 +0100
+++ b/analyzer/tests/tests.rc Wed Oct 08 00:08:21 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2014\nCopyright eXept Software AG 1998-2014\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Sat, 04 Oct 2014 20:46:39 GMT\0"
+ VALUE "ProductDate", "Tue, 07 Oct 2014 23:05:03 GMT\0"
END
END
--- a/parsers/smalltalk/PPSmalltalkGrammar.st Tue Oct 07 09:42:03 2014 +0100
+++ b/parsers/smalltalk/PPSmalltalkGrammar.st Wed Oct 08 00:08:21 2014 +0100
@@ -367,13 +367,22 @@
!
number
+ ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[
+ ^ ($- asParser optional , #digit asParser) and , [ :context |
+ [ Number readSmalltalkSyntaxFrom: context stream ]
+ on: Error
+ do: [ :err | PPFailure message: err messageText at: context position ] ]
+ asParser
+
+ ] ifFalse:[
^ ($- asParser optional , #digit asParser) and , [ :context |
[ (NumberParser on: context stream) nextNumber ]
on: Error
do: [ :err | PPFailure message: err messageText at: context position ] ]
asParser
+ ]
- "Modified: / 07-10-2014 / 09:10:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 07-10-2014 / 21:50:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
period
--- a/parsers/smalltalk/PPSmalltalkParser.st Tue Oct 07 09:42:03 2014 +0100
+++ b/parsers/smalltalk/PPSmalltalkParser.st Wed Oct 08 00:08:21 2014 +0100
@@ -141,7 +141,13 @@
!
numberLiteral
- ^ super numberLiteral ==> [ :token | RBLiteralValueNode literalToken: ((RBNumberLiteralToken value: (Number readFrom: token inputValue) start: token start stop: token stop source: token inputValue) comments: token comments; yourself) ]
+ ((Smalltalk respondsTo: #isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[
+ ^ super numberLiteral ==> [ :token | RBLiteralValueNode literalToken: ((RBNumberLiteralToken value: (Number readSmalltalkSyntaxFrom: token inputValue) start: token start stop: token stop source: token inputValue) comments: token comments; yourself) ]
+ ] ifFalse:[
+ ^ super numberLiteral ==> [ :token | RBLiteralValueNode literalToken: ((RBNumberLiteralToken value: (Number readFrom: token inputValue) start: token start stop: token stop source: token inputValue) comments: token comments; yourself) ]
+ ]
+
+ "Modified: / 07-10-2014 / 23:01:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
stringLiteral
--- a/parsers/smalltalk/PPSmalltalkToken.st Tue Oct 07 09:42:03 2014 +0100
+++ b/parsers/smalltalk/PPSmalltalkToken.st Wed Oct 08 00:08:21 2014 +0100
@@ -7,9 +7,6 @@
category:'PetitSmalltalk-Core'
!
-PPSmalltalkToken comment:''
-!
-
!PPSmalltalkToken methodsFor:'accessing'!
comments
--- a/parsers/smalltalk/smalltalk.rc Tue Oct 07 09:42:03 2014 +0100
+++ b/parsers/smalltalk/smalltalk.rc Wed Oct 08 00:08:21 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2014\nCopyright eXept Software AG 1998-2014\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Tue, 07 Oct 2014 08:24:10 GMT\0"
+ VALUE "ProductDate", "Tue, 07 Oct 2014 23:05:51 GMT\0"
END
END
--- a/parsers/smalltalk/stx_goodies_petitparser_parsers_smalltalk.st Tue Oct 07 09:42:03 2014 +0100
+++ b/parsers/smalltalk/stx_goodies_petitparser_parsers_smalltalk.st Wed Oct 08 00:08:21 2014 +0100
@@ -7,6 +7,12 @@
category:'* Projects & Packages *'
!
+!stx_goodies_petitparser_parsers_smalltalk class methodsFor:'documentation'!
+
+extensionsVersion_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
!stx_goodies_petitparser_parsers_smalltalk class methodsFor:'accessing - monticello'!
--- a/parsers/smalltalk/tests/PPSmalltalkGrammarTests.st Tue Oct 07 09:42:03 2014 +0100
+++ b/parsers/smalltalk/tests/PPSmalltalkGrammarTests.st Wed Oct 08 00:08:21 2014 +0100
@@ -7,9 +7,6 @@
category:'PetitSmalltalk-Tests'
!
-PPSmalltalkGrammarTests comment:''
-!
-
!PPSmalltalkGrammarTests class methodsFor:'accessing'!
@@ -482,9 +479,14 @@
!
testNumberLiteral15
- self
- parse: '0.50s2'
- rule: #numberLiteral
+ ((Smalltalk respondsTo: #isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[
+ ^ self.
+ ].
+ self
+ parse: '0.50s2'
+ rule: #numberLiteral
+
+ "Modified: / 07-10-2014 / 23:02:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testNumberLiteral2
--- a/parsers/smalltalk/tests/PPSmalltalkParserTests.st Tue Oct 07 09:42:03 2014 +0100
+++ b/parsers/smalltalk/tests/PPSmalltalkParserTests.st Wed Oct 08 00:08:21 2014 +0100
@@ -7,8 +7,6 @@
category:'PetitSmalltalk-Tests'
!
-PPSmalltalkParserTests comment:''
-!
!PPSmalltalkParserTests methodsFor:'accessing'!
@@ -19,10 +17,27 @@
!PPSmalltalkParserTests methodsFor:'private'!
assert: aNode format: aString
- aNode isCollection
- ifFalse: [ ^ self assert: (Array with: aNode) format: (Array with: aString) ].
- self assert: aNode size equals: aString size.
- aNode with: aString do: [ :node :string | self assert: (RBConfigurableFormatter format: node) equals: string ]
+ | formatter savedSpaceAfterKeywordSelector |
+
+ ((Smalltalk respondsTo: #isSmalltalkX) and:[Smalltalk isSmalltalkX]) ifTrue:[
+ savedSpaceAfterKeywordSelector := RBFormatter spaceAfterKeywordSelector.
+ RBFormatter spaceAfterKeywordSelector:true.
+ formatter := RBFormatter new
+ ] ifFalse:[
+ formatter := RBConfigurableFormatter
+ ].
+ [
+ aNode isCollection
+ ifFalse: [ ^ self assert: (Array with: aNode) format: (Array with: aString) ].
+ self assert: aNode size equals: aString size.
+ aNode with: aString do: [ :node :string | self assert: (formatter format: node) equals: string ]
+ ] ensure:[
+ ((Smalltalk respondsTo: #isSmalltalkX) and:[Smalltalk isSmalltalkX]) ifTrue:[
+ RBFormatter spaceAfterKeywordSelector:savedSpaceAfterKeywordSelector.
+ ]
+ ].
+
+ "Modified: / 07-10-2014 / 23:56:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!PPSmalltalkParserTests methodsFor:'testing'!
@@ -684,9 +699,14 @@
!
testNumberLiteral15
- super testNumberLiteral15.
- self assert: result isLiteralNode.
- self assert: result value equals: 1 / 2
+ ((Smalltalk respondsTo: #isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[
+ ^ self.
+ ].
+ super testNumberLiteral15.
+ self assert: result isLiteralNode.
+ self assert: result value equals: 1 / 2
+
+ "Modified: / 07-10-2014 / 23:02:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testNumberLiteral2
@@ -1299,3 +1319,10 @@
self assert: result body statements isEmpty
! !
+!PPSmalltalkParserTests class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- a/parsers/smalltalk/tests/stx_goodies_petitparser_parsers_smalltalk_tests.st Tue Oct 07 09:42:03 2014 +0100
+++ b/parsers/smalltalk/tests/stx_goodies_petitparser_parsers_smalltalk_tests.st Wed Oct 08 00:08:21 2014 +0100
@@ -144,3 +144,4 @@
version_HG
^ '$Changeset: <not expanded> $'
! !
+
--- a/parsers/smalltalk/tests/tests.rc Tue Oct 07 09:42:03 2014 +0100
+++ b/parsers/smalltalk/tests/tests.rc Wed Oct 08 00:08:21 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2014\nCopyright eXept Software AG 1998-2014\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Tue, 07 Oct 2014 08:24:12 GMT\0"
+ VALUE "ProductDate", "Tue, 07 Oct 2014 23:05:52 GMT\0"
END
END
--- a/tests/PPParserResource.st Tue Oct 07 09:42:03 2014 +0100
+++ b/tests/PPParserResource.st Wed Oct 08 00:08:21 2014 +0100
@@ -33,6 +33,11 @@
^ '$Header: /cvs/stx/stx/goodies/petitparser/PPParserResource.st,v 1.3 2012-05-04 22:09:18 vrany Exp $'
!
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+!
+
version_SVN
^ '§Id: PPParserResource.st 4 2010-12-18 17:02:23Z kursjan §'
! !
--- a/tests/tests.rc Tue Oct 07 09:42:03 2014 +0100
+++ b/tests/tests.rc Wed Oct 08 00:08:21 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2014\nCopyright eXept Software AG 1998-2014\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Tue, 07 Oct 2014 08:24:05 GMT\0"
+ VALUE "ProductDate", "Tue, 07 Oct 2014 23:04:59 GMT\0"
END
END