Skip to content

Commit

Permalink
WI #2585 Update JSON GENERATE and JSON PARSE for Cobol 6.3 (#2590)
Browse files Browse the repository at this point in the history
* WI #2585 Update JSON GENERATE for Cobol 6.3

* WI #2585 Update JSON PARSE for Cobol 6.3

* WI #2585 Remove useless call to ToString
  • Loading branch information
efr15 committed Nov 2, 2023
1 parent 0de79ed commit 6423cb1
Show file tree
Hide file tree
Showing 15 changed files with 672 additions and 75 deletions.
13 changes: 12 additions & 1 deletion Codegen/test/resources/input/CobolV6/JsonGenerate.rdz.cbl
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
02 var4 PIC X(20).
02 var5 PIC X(7).
02 var6 PIC 9(18).

02 var7 PIC X.
88 var7-flag VALUE 'T'.
01 char-count PIC 9(3).
01 result PIC X(256).
01 ret-code PIC 9(1).
Expand All @@ -22,6 +23,10 @@
JSON GENERATE result FROM elt NAME var1 'Nom'
JSON GENERATE result FROM elt NAME OF var1 'Nom'
JSON GENERATE result FROM elt NAME OF var1 IS 'Nom'
JSON GENERATE result FROM elt NAME OF elt IS OMITTED
JSON GENERATE result FROM elt NAME OF elt OMITTED
JSON GENERATE result FROM elt NAME elt IS OMITTED
JSON GENERATE result FROM elt NAME elt OMITTED
JSON GENERATE result FROM elt
NAME OF var1 IS 'Nom'
var2 'Age'
Expand Down Expand Up @@ -58,6 +63,12 @@
ON EXCEPTION MOVE 1 TO ret-code
NOT ON EXCEPTION MOVE 0 TO ret-code
END-JSON

JSON GENERATE result FROM elt
COUNT char-count
NAME elt::var1 'Nom'
SUPPRESS elt::var4 WHEN ZERO
CONVERTING elt::var7 BOOL var7::var7-flag.
.
END PROGRAM JsonTest.
9 changes: 9 additions & 0 deletions Codegen/test/resources/input/CobolV6/JsonParse.rdz.cbl
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
03 az PIC X(15) VALUE "goodbye, world!".
03 ab.
05 abc PIC x(3) value spaces.
01 a PIC X.
88 a1-flag VALUE 't'.
88 a2-flag VALUE 'v'.

PROCEDURE DIVISION.
JSON PARSE x INTO y
Expand Down Expand Up @@ -38,6 +41,12 @@
ON EXCEPTION display "error"
NOT EXCEPTION display "success"

JSON PARSE x INTO y DETAIL
NAME OF y::ab IS 'aaa'
SUPPRESS y::z y::ab
CONVERTING a FROM JSON BOOL USING
a::a1-flag AND a::a2-flag

GOBACK.
END PROGRAM Prog.

18 changes: 17 additions & 1 deletion Codegen/test/resources/output/CobolV6/JsonGenerate.rdz.cbl
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
02 var4 PIC X(20).
02 var5 PIC X(7).
02 var6 PIC 9(18).

02 var7 PIC X.
88 var7-flag VALUE 'T'.
01 char-count PIC 9(3).
01 result PIC X(256).
01 ret-code PIC 9(1).
Expand All @@ -22,6 +23,10 @@
JSON GENERATE result FROM elt NAME var1 'Nom'
JSON GENERATE result FROM elt NAME OF var1 'Nom'
JSON GENERATE result FROM elt NAME OF var1 IS 'Nom'
JSON GENERATE result FROM elt NAME OF elt IS OMITTED
JSON GENERATE result FROM elt NAME OF elt OMITTED
JSON GENERATE result FROM elt NAME elt IS OMITTED
JSON GENERATE result FROM elt NAME elt OMITTED
JSON GENERATE result FROM elt
NAME OF var1 IS 'Nom'
var2 'Age'
Expand Down Expand Up @@ -58,6 +63,17 @@
ON EXCEPTION MOVE 1 TO ret-code
NOT ON EXCEPTION MOVE 0 TO ret-code
END-JSON

* JSON GENERATE result FROM elt
* COUNT char-count
* NAME elt::var1 'Nom'
* SUPPRESS elt::var4 WHEN ZERO
* CONVERTING elt::var7 BOOL var7::var7-flag.
JSON GENERATE result FROM elt
COUNT char-count
NAME var1 OF elt 'Nom'
SUPPRESS var4 OF elt WHEN ZERO
CONVERTING var7 OF elt BOOL var7-flag OF var7.
.
END PROGRAM JsonTest.
14 changes: 14 additions & 0 deletions Codegen/test/resources/output/CobolV6/JsonParse.rdz.cbl
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
03 az PIC X(15) VALUE "goodbye, world!".
03 ab.
05 abc PIC x(3) value spaces.
01 a PIC X.
88 a1-flag VALUE 't'.
88 a2-flag VALUE 'v'.

PROCEDURE DIVISION.
JSON PARSE x INTO y
Expand Down Expand Up @@ -47,6 +50,17 @@
ON EXCEPTION display "error"
NOT EXCEPTION display "success"

* JSON PARSE x INTO y DETAIL
* NAME OF y::ab IS 'aaa'
* SUPPRESS y::z y::ab
* CONVERTING a FROM JSON BOOL USING
* a::a1-flag AND a::a2-flag
JSON PARSE x INTO y DETAIL
NAME OF ab OF y IS 'aaa'
SUPPRESS z OF y ab OF y
CONVERTING a FROM JSON BOOL USING
a1-flag OF a AND a2-flag OF a

GOBACK.
END PROGRAM Prog.

119 changes: 116 additions & 3 deletions TypeCobol.Test/Parser/CodeElements/JSON/GENERATE.CodeElements.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,22 @@
--- Diagnostics ---
Line 2[16,16] <27, Error, Syntax> - Syntax error : mismatched input '.' expecting FROM RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement, OffendingSymbol=[16,16+:.]<PeriodSeparator>
Line 12[28,28] <27, Error, Syntax> - Syntax error : mismatched input '.' expecting {symbol, special register, keyword} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement, OffendingSymbol=[28,28+:.]<PeriodSeparator>
Line 14[30,30] <27, Error, Syntax> - Syntax error : mismatched input '.' expecting {alphanumeric literal, hexadecimal alphanumeric literal, null terminated alphanumeric literal, national literal, hexadecimal national literal, DBCS literal, UTF-8 literal, hexadecimal UTF-8 literal, IS} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonNameMapping, OffendingSymbol=[30,30+:.]<PeriodSeparator>
Line 20[33,33] <27, Error, Syntax> - Syntax error : mismatched input '.' expecting {alphanumeric literal, hexadecimal alphanumeric literal, null terminated alphanumeric literal, national literal, hexadecimal national literal, DBCS literal, UTF-8 literal, hexadecimal UTF-8 literal, IS} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonNameMapping, OffendingSymbol=[33,33+:.]<PeriodSeparator>
Line 30[32,32] <27, Error, Syntax> - Syntax error : mismatched input '.' expecting {symbol, special register, keyword} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement, OffendingSymbol=[32,32+:.]<PeriodSeparator>
Line 14[30,30] <27, Error, Syntax> - Syntax error : mismatched input '.' expecting {alphanumeric literal, hexadecimal alphanumeric literal, null terminated alphanumeric literal, national literal, hexadecimal national literal, DBCS literal, UTF-8 literal, hexadecimal UTF-8 literal, IS, OMITTED} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonNameMapping, OffendingSymbol=[30,30+:.]<PeriodSeparator>
Line 20[33,33] <27, Error, Syntax> - Syntax error : mismatched input '.' expecting {alphanumeric literal, hexadecimal alphanumeric literal, null terminated alphanumeric literal, national literal, hexadecimal national literal, DBCS literal, UTF-8 literal, hexadecimal UTF-8 literal, IS, OMITTED} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonNameMapping, OffendingSymbol=[33,33+:.]<PeriodSeparator>
Line 30[32,32] <27, Error, Syntax> - Syntax error : mismatched input '.' expecting {symbol, statement starting keyword, special register, keyword} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement, OffendingSymbol=[32,32+:.]<PeriodSeparator>
Line 43[24,30] <27, Error, Syntax> - Syntax error : extraneous input 'OMITTED' expecting {separator, numeric literal, character string, symbol, statement starting keyword, keyword, Formalized Comments elements, Sql statement starting keyword} RuleStack=, OffendingSymbol=[24,30:OMITTED]<OMITTED>
Line 64[39,42] <27, Error, Syntax> - Syntax error : mismatched input 'WHEN' expecting {user defined word, NUMERIC} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonSuppressDirective>jsonGenericSuppressionPhrase, OffendingSymbol=[39,42:WHEN]<WHEN>
Line 65[33,39] <27, Error, Syntax> - Syntax error : extraneous input 'NUMERIC' expecting {symbol, statement starting keyword, special register, keyword} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement, OffendingSymbol=[33,39:NUMERIC]<NUMERIC>
Line 68[38,42] <27, Error, Syntax> - Syntax error : mismatched input 'QUOTE' expecting {HIGH-VALUE, HIGH-VALUES, LOW-VALUE, LOW-VALUES, SPACE, SPACES, ZERO, ZEROES, ZEROS} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonSuppressDirective>jsonGenericSuppressionPhrase>whenPhrase>repeatedCharacterValue3>figurativeConstantForXMLGenerate, OffendingSymbol=[38,42:QUOTE]<QUOTE>
Line 69[38,43] <27, Error, Syntax> - Syntax error : mismatched input 'QUOTES' expecting {HIGH-VALUE, HIGH-VALUES, LOW-VALUE, LOW-VALUES, SPACE, SPACES, ZERO, ZEROES, ZEROS} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonSuppressDirective>jsonGenericSuppressionPhrase>whenPhrase>repeatedCharacterValue3>figurativeConstantForXMLGenerate, OffendingSymbol=[38,43:QUOTES]<QUOTES>
Line 70[38,41] <27, Error, Syntax> - Syntax error : mismatched input 'NULL' expecting {HIGH-VALUE, HIGH-VALUES, LOW-VALUE, LOW-VALUES, SPACE, SPACES, ZERO, ZEROES, ZEROS} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonSuppressDirective>jsonGenericSuppressionPhrase>whenPhrase>repeatedCharacterValue3>figurativeConstantForXMLGenerate, OffendingSymbol=[38,41:NULL]<NULL>
Line 71[38,42] <27, Error, Syntax> - Syntax error : mismatched input 'NULLS' expecting {HIGH-VALUE, HIGH-VALUES, LOW-VALUE, LOW-VALUES, SPACE, SPACES, ZERO, ZEROES, ZEROS} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonSuppressDirective>jsonGenericSuppressionPhrase>whenPhrase>repeatedCharacterValue3>figurativeConstantForXMLGenerate, OffendingSymbol=[38,42:NULLS]<NULLS>
Line 80[34,34] <27, Error, Syntax> - Syntax error : mismatched input '.' expecting {symbol, special register, keyword} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonGenerateConvertingPhrase>jsonGenerateConvertingDirective>variable1>identifier>storageAreaReferenceOrConditionReference, OffendingSymbol=[34,34+:.]<PeriodSeparator>
Line 81[36,36] <27, Error, Syntax> - Syntax error : extraneous input '.' expecting {user defined word, TO, JSON} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonGenerateConvertingPhrase>jsonGenerateConvertingDirective, OffendingSymbol=[36,36+:.]<PeriodSeparator>
Line 82[6,13] <27, Error, Syntax> - Syntax error : extraneous input 'GENERATE' expecting user defined word RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonGenerateConvertingPhrase>jsonGenerateConvertingDirective, OffendingSymbol=[6,13:GENERATE]<GENERATE>
Line 82[15,15] <27, Error, Syntax> - Syntax error : no viable alternative at input 'x' RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonGenerateConvertingPhrase>jsonGenerateConvertingDirective, OffendingSymbol=[15,15:x]<UserDefinedWord>
Line 83[53,53] <27, Error, Syntax> - Syntax error : mismatched input '.' expecting {symbol, special register, keyword} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonGenerateConvertingPhrase>jsonGenerateConvertingDirective>variable1>identifier>storageAreaReferenceOrConditionReference, OffendingSymbol=[53,53+:.]<PeriodSeparator>
Line 84[91,91] <27, Error, Syntax> - Syntax error : mismatched input '.' expecting {alphanumeric literal, hexadecimal alphanumeric literal, null terminated alphanumeric literal, user defined word} RuleStack=codeElement>cobol2002Statement>jsonGenerateStatement>jsonGenerateConvertingPhrase>jsonGenerateConvertingDirective, OffendingSymbol=[91,91+:.]<PeriodSeparator>
--- Code Elements ---
[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [15,15:x]<UserDefinedWord>

Expand Down Expand Up @@ -61,3 +74,103 @@ Line 30[32,32] <27, Error, Syntax> - Syntax error : mismatched input '.' expecti

[[SentenceEnd]] [41,41+:.]<PeriodSeparator> --> [41,41+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [37,43:OMITTED]<OMITTED>

[[SentenceEnd]] [44,44+:.]<PeriodSeparator> --> [44,44+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [34,40:OMITTED]<OMITTED>

[[SentenceEnd]] [41,41+:.]<PeriodSeparator> --> [41,41+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [34,40:OMITTED]<OMITTED>

[[SentenceEnd]] [41,41+:.]<PeriodSeparator> --> [41,41+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [31,37:OMITTED]<OMITTED>

[[SentenceEnd]] [38,38+:.]<PeriodSeparator> --> [38,38+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [22,22:y]<UserDefinedWord>

[[SentenceEnd]] [31,31+:.]<PeriodSeparator> --> [31,31+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,41:ZERO]<ZERO>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,42:ZEROS]<ZEROS>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,43:ZEROES]<ZEROES>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,42:SPACE]<SPACE>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,43:SPACES]<SPACES>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,46:LOW-VALUE]<LOW_VALUE>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,47:LOW-VALUES]<LOW_VALUES>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,47:HIGH-VALUE]<HIGH_VALUE>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,48:HIGH-VALUES]<HIGH_VALUES>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [40,43:ZERO]<ZERO>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [57,66:HIGH-VALUE]<HIGH_VALUE>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [60,69:HIGH-VALUE]<HIGH_VALUE>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [71,81:HIGH-VALUES]<HIGH_VALUES>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [69,74:ZEROES]<ZEROES>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [61,66:SPACES]<SPACES>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [64,69:SPACES]<SPACES>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [52,56:SPACE]<SPACE>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [54,63:HIGH-VALUE]<HIGH_VALUE>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,42:QUOTE]<QUOTE>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,43:QUOTES]<QUOTES>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,41:NULL]<NULL>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [38,42:NULLS]<NULLS>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [61,66:b-flag]<UserDefinedWord>

[[SentenceEnd]] [67,67+:.]<PeriodSeparator> --> [67,67+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [83,88:a-flag]<UserDefinedWord>

[[SentenceEnd]] [89,89+:.]<PeriodSeparator> --> [89,89+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [56,58:'T']<AlphanumericLiteral>(',Y,Y){T}

[[SentenceEnd]] [59,59+:.]<PeriodSeparator> --> [59,59+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [92,102:data-b-flag]<UserDefinedWord>

[[SentenceEnd]] [103,103+:.]<PeriodSeparator> --> [103,103+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [24,33:CONVERTING]<CONVERTING>

[[SentenceEnd]] [34,34+:.]<PeriodSeparator> --> [34,34+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [37,40:BOOL]<UserDefinedWord>

[[SentenceEnd]] [41,41+:.]<PeriodSeparator> --> [41,41+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [49,52:ALSO]<ALSO>

[[SentenceEnd]] [53,53+:.]<PeriodSeparator> --> [53,53+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [86,90:USING]<USING>

[[SentenceEnd]] [91,91+:.]<PeriodSeparator> --> [91,91+:.]<PeriodSeparator>

[[JsonGenerateStatement]] [1,4:JSON]<JSON> --> [108,113:b-flag]<UserDefinedWord>

[[SentenceEnd]] [114,114+:.]<PeriodSeparator> --> [114,114+:.]<PeriodSeparator>

52 changes: 52 additions & 0 deletions TypeCobol.Test/Parser/CodeElements/JSON/GENERATE.cbl
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,55 @@ JSON GENERATE x FROM y SUPPRESS.
JSON GENERATE x FROM y SUPPRESS t.
*OK multiple suppress directives
JSON GENERATE x FROM y SUPPRESS t1 t2 t3.

*OK
JSON GENERATE x FROM y NAME OF y IS OMITTED.
JSON GENERATE x FROM y NAME OF y OMITTED.
JSON GENERATE x FROM y NAME y IS OMITTED.
JSON GENERATE x FROM y NAME y OMITTED.
*KO OMITTED without NAME
JSON GENERATE x FROM y OMITTED.

*OK
JSON GENERATE x FROM y SUPPRESS WHEN ZERO
JSON GENERATE x FROM y SUPPRESS WHEN ZEROS
JSON GENERATE x FROM y SUPPRESS WHEN ZEROES
JSON GENERATE x FROM y SUPPRESS WHEN SPACE
JSON GENERATE x FROM y SUPPRESS WHEN SPACES
JSON GENERATE x FROM y SUPPRESS WHEN LOW-VALUE
JSON GENERATE x FROM y SUPPRESS WHEN LOW-VALUES
JSON GENERATE x FROM y SUPPRESS WHEN HIGH-VALUE
JSON GENERATE x FROM y SUPPRESS WHEN HIGH-VALUES
JSON GENERATE x FROM y SUPPRESS a WHEN ZERO
JSON GENERATE x FROM y SUPPRESS EVERY NUMERIC WHEN ZERO HIGH-VALUE
JSON GENERATE x FROM y SUPPRESS EVERY NUMERIC WHEN ZERO OR HIGH-VALUE
JSON GENERATE x FROM y SUPPRESS EVERY NUMERIC WHEN ZERO OR HIGH-VALUE HIGH-VALUES
JSON GENERATE x FROM y SUPPRESS EVERY NUMERIC WHEN ZERO OR ZEROS OR ZEROES
JSON GENERATE x FROM y SUPPRESS EVERY NONNUMERIC WHEN SPACE SPACES
JSON GENERATE x FROM y SUPPRESS EVERY NONNUMERIC WHEN SPACE OR SPACES

*KO bad syntax for SUPPRESS with generic-suppression-phrase
JSON GENERATE x FROM y SUPPRESS EVERY WHEN ZERO OR SPACE
JSON GENERATE x FROM y SUPPRESS NUMERIC WHEN ZERO OR HIGH-VALUE

*KO wrong figurative constants in SUPPRESS
JSON GENERATE x FROM y SUPPRESS WHEN QUOTE
JSON GENERATE x FROM y SUPPRESS WHEN QUOTES
JSON GENERATE x FROM y SUPPRESS WHEN NULL
JSON GENERATE x FROM y SUPPRESS WHEN NULLS

*OK
JSON GENERATE x FROM y CONVERTING a BOOL a-flag ALSO b BOOL b-flag.
JSON GENERATE x FROM y SUPPRESS WHEN LOW-VALUE CONVERTING a TO JSON BOOLEAN USING a-flag.
JSON GENERATE x FROM y CONVERTING a TO JSON BOOL USING 'T'.
JSON GENERATE x FROM y CONVERTING data-a TO BOOLEAN USING 'T' ALSO data-b TO BOOLEAN USING data-b-flag.

*KO wrong syntax for CONVERTING phrase
JSON GENERATE x FROM y CONVERTING.
JSON GENERATE x FROM y CONVERTING a.
JSON GENERATE x FROM y CONVERTING a BOOL.
JSON GENERATE x FROM y CONVERTING a BOOL a-flag ALSO.
JSON GENERATE x FROM y CONVERTING data-a TO BOOLEAN USING 'T' ALSO data-b TO BOOLEAN USING.

*OK all together
JSON GENERATE x FROM y COUNT c NAME n 'new-name' SUPPRESS s WHEN ZERO CONVERTING a BOOL a-flag ALSO b BOOL b-flag.

0 comments on commit 6423cb1

Please sign in to comment.