Skip to content

Commit 45fb57e

Browse files
authored
Merge pull request #363 from esa/FIXIA5
Merge FIXIA5 into master
2 parents 2fdd64e + 189cb12 commit 45fb57e

23 files changed

+228
-106
lines changed

BackendAst/DAstACN.fs

Lines changed: 95 additions & 76 deletions
Large diffs are not rendered by default.

BackendAst/DAstConstruction.fs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ let private mapAcnParameter (r:Asn1AcnAst.AstRoot) (deps:Asn1AcnAst.AcnInsertedF
3535
}, ns1
3636

3737
let private createAcnChild (r:Asn1AcnAst.AstRoot) (icdStgFileName:string) (deps:Asn1AcnAst.AcnInsertedFieldDependencies) (lm:LanguageMacros) (m:Asn1AcnAst.Asn1Module) (ch:Asn1AcnAst.AcnChild) (us:State) =
38-
38+
39+
let tdBodyWithinSeq = DAstACN.getDeterminantTypeDefinitionBodyWithinSeq r lm (Asn1AcnAst.AcnChildDeterminant ch)
3940
let acnAlignment =
4041
match ch.Type with
4142
| Asn1AcnAst.AcnInteger a -> a.acnAlignment
@@ -46,15 +47,15 @@ let private createAcnChild (r:Asn1AcnAst.AstRoot) (icdStgFileName:string) (deps:
4647

4748
let funcBodyEncode, ns1=
4849
match ch.Type with
49-
| Asn1AcnAst.AcnInteger a -> DAstACN.createAcnIntegerFunction r deps lm Codec.Encode ch.id a us
50+
| Asn1AcnAst.AcnInteger a -> DAstACN.createAcnIntegerFunction r deps lm Codec.Encode ch.id a tdBodyWithinSeq us
5051
| Asn1AcnAst.AcnBoolean a -> DAstACN.createAcnBooleanFunction r deps lm Codec.Encode ch.id a us
5152
| Asn1AcnAst.AcnNullType a -> DAstACN.createAcnNullTypeFunction r deps lm Codec.Encode ch.id a us
5253
| Asn1AcnAst.AcnReferenceToEnumerated a -> DAstACN.createAcnEnumeratedFunction r deps icdStgFileName lm Codec.Encode ch.id a (defOrRef r m a) us
5354
| Asn1AcnAst.AcnReferenceToIA5String a -> DAstACN.createAcnStringFunction r deps lm Codec.Encode ch.id a us
5455

5556
let funcBodyDecode, ns2 =
5657
match ch.Type with
57-
| Asn1AcnAst.AcnInteger a -> DAstACN.createAcnIntegerFunction r deps lm Codec.Decode ch.id a ns1
58+
| Asn1AcnAst.AcnInteger a -> DAstACN.createAcnIntegerFunction r deps lm Codec.Decode ch.id a tdBodyWithinSeq ns1
5859
| Asn1AcnAst.AcnBoolean a -> DAstACN.createAcnBooleanFunction r deps lm Codec.Decode ch.id a ns1
5960
| Asn1AcnAst.AcnNullType a -> DAstACN.createAcnNullTypeFunction r deps lm Codec.Decode ch.id a ns1
6061
| Asn1AcnAst.AcnReferenceToEnumerated a -> DAstACN.createAcnEnumeratedFunction r deps icdStgFileName lm Codec.Decode ch.id a (defOrRef r m a) ns1
@@ -70,7 +71,6 @@ let private createAcnChild (r:Asn1AcnAst.AstRoot) (icdStgFileName:string) (deps:
7071
let retFunc = DAstACN.handleSavePosition funBodyWithState ch.Type.savePosition (ToC ch.Name.Value) lvName ch.id lm codec
7172
retFunc emptyState {ErrorCode.errCodeName = ""; ErrorCode.errCodeValue=0; comment=None} prms nestingScope p |> fst
7273

73-
let tdBodyWithinSeq = DAstACN.getDeterminantTypeDefinitionBodyWithinSeq r lm (Asn1AcnAst.AcnChildDeterminant ch)
7474
let initExpression =
7575
match ch.Type with
7676
| Asn1AcnAst.AcnInteger _ -> "0"
@@ -79,7 +79,7 @@ let private createAcnChild (r:Asn1AcnAst.AstRoot) (icdStgFileName:string) (deps:
7979
| Asn1AcnAst.AcnReferenceToEnumerated e ->
8080
lm.lg.getNamedItemBackendName (Some (defOrRef r m e)) e.enumerated.items.Head
8181
| Asn1AcnAst.AcnReferenceToIA5String s ->
82-
lm.lg.initializeString (int (s.str.maxSize.acn + 1I))
82+
lm.lg.initializeString None (int (s.str.maxSize.acn + 1I))
8383

8484
let rec dealiasDeps (dep: Asn1AcnAst.AcnDependency): Asn1AcnAst.AcnDependency =
8585
match dep.dependencyKind with

BackendAst/DAstInitialize.fs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -336,14 +336,21 @@ let createIA5StringInitFunc (r:Asn1AcnAst.AstRoot) (lm:LanguageMacros) (t:Asn1A
336336
//let i = sprintf "i%d" ii
337337
let bAlpha = o.uperCharSet.Length < 128
338338
let arrAsciiCodes = o.uperCharSet |> Array.map(fun x -> BigInteger (System.Convert.ToInt32 x))
339+
let firstPrintableAsciiCode =
340+
arrAsciiCodes
341+
|> Array.tryFind(fun x -> x >= 32I && x <= 126I)
342+
let sFirstNonNullChar =
343+
match firstPrintableAsciiCode with
344+
| Some c -> sprintf "'%c'" (char (int c))
345+
| None -> "'\0'"
339346
let testCaseFuncs =
340347
let seqOfCase (nSize:BigInteger) =
341348
let initTestCaseFunc (p:CodegenScope) =
342349
let ii = p.accessPath.SequenceOfLevel + 1
343350
let i = sprintf "i%d" ii
344351
let resVar = p.accessPath.asIdentifier
345352
let td = strTypeDef.longTypedefName2 (lm.lg.hasModules) (ToC p.modName)
346-
let funcBody = initTestCaseIA5String (p.accessPath.joinedUnchecked lm.lg FullAccess) (lm.lg.getAccess p.accessPath) (nSize) ((o.maxSize.uper+1I)) i td bAlpha arrAsciiCodes (BigInteger arrAsciiCodes.Length) false resVar
353+
let funcBody = initTestCaseIA5String (p.accessPath.joinedUnchecked lm.lg FullAccess) (lm.lg.getAccess p.accessPath) (nSize) ((o.maxSize.uper+1I)) i td bAlpha arrAsciiCodes (BigInteger arrAsciiCodes.Length) false resVar sFirstNonNullChar
347354
{InitFunctionResult.funcBody = funcBody; resultVar = resVar; localVariables=[SequenceOfIndex (ii, None)]}
348355
{AutomaticTestCase.initTestCaseFunc = initTestCaseFunc; testCaseTypeIDsMap = Map.ofList [(t.id, TcvSizeableTypeValue nSize)] }
349356
seq {
@@ -362,11 +369,11 @@ let createIA5StringInitFunc (r:Asn1AcnAst.AstRoot) (lm:LanguageMacros) (t:Asn1A
362369
let i = sprintf "i%d" ii
363370
let resVar = p.accessPath.asIdentifier
364371
let td = strTypeDef.longTypedefName2 (lm.lg.hasModules) (ToC p.modName)
365-
let funcBody = initTestCaseIA5String (p.accessPath.joined lm.lg) (lm.lg.getAccess p.accessPath) ( (o.maxSize.uper+1I)) ( (o.maxSize.uper+1I)) i td bAlpha arrAsciiCodes (BigInteger arrAsciiCodes.Length) true resVar
372+
let funcBody = initTestCaseIA5String (p.accessPath.joined lm.lg) (lm.lg.getAccess p.accessPath) (o.maxSize.uper) (o.maxSize.uper+1I) i td bAlpha arrAsciiCodes (BigInteger arrAsciiCodes.Length) true resVar sFirstNonNullChar
366373
let lvars = lm.lg.init.zeroIA5String_localVars ii
367374
let resVar = p.accessPath.asIdentifier
368375
{InitFunctionResult.funcBody = funcBody; resultVar = resVar; localVariables=lvars}
369-
let constantInitExpression () = lm.lg.initializeString (int o.maxSize.uper)
376+
let constantInitExpression () = lm.lg.initializeString firstPrintableAsciiCode (int o.maxSize.uper)
370377
createInitFunctionCommon r lm t typeDefinition funcBody zero testCaseFuncs constantInitExpression constantInitExpression [] [] []
371378

372379
let createOctetStringInitFunc (r:Asn1AcnAst.AstRoot) (lm:LanguageMacros) (t:Asn1AcnAst.Asn1Type) (o :Asn1AcnAst.OctetString ) (typeDefinition:TypeDefinitionOrReference) (isValidFunction:IsValidFunction option) =
@@ -434,7 +441,7 @@ let createOctetStringInitFunc (r:Asn1AcnAst.AstRoot) (lm:LanguageMacros) (t:Asn
434441
let ii = p.accessPath.SequenceOfLevel + 1
435442
let i = sprintf "i%d" ii
436443
let funcBody = initTestCaseOctetString (p.accessPath.joined lm.lg) (lm.lg.getAccess p.accessPath) tdName o.maxSize.uper i (isFixedSize) true o.minSize.uper (o.maxSize.uper = 0I) resVar
437-
let lvars = lm.lg.init.zeroIA5String_localVars ii
444+
let lvars = lm.lg.init.zeroOctetString_localVars ii
438445
{InitFunctionResult.funcBody = funcBody; resultVar = resVar; localVariables=lvars}
439446

440447
testCaseFuncs, zero
@@ -536,7 +543,7 @@ let createBitStringInitFunc (r:Asn1AcnAst.AstRoot) (lm:LanguageMacros) (t:Asn1Ac
536543
| _ -> raise(BugErrorException "UnexpectedType")
537544

538545
let funcBody = initTestCaseBitString (p.accessPath.joined lm.lg) (lm.lg.getAccess p.accessPath) tdName nSize (nSizeCeiled) i (isFixedSize) true o.minSize.uper p.accessPath.isOptional resVar
539-
let lvars = lm.lg.init.zeroIA5String_localVars ii
546+
let lvars = lm.lg.init.zeroBitString_localVars ii
540547
{InitFunctionResult.funcBody = funcBody; resultVar = resVar; localVariables=lvars}
541548
testCaseFuncs, zero
542549
| _ ->

BackendAst/DAstUPer.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ let createIA5StringFunction (r:Asn1AcnAst.AstRoot) (lm:LanguageMacros) (codec:Co
458458
let nSizeInBits = GetNumberOfBitsForNonNegativeInteger ( (o.maxSize.uper - o.minSize.uper))
459459
let initExpr =
460460
match codec, lm.lg.decodingKind with
461-
| Decode, Copy -> Some (lm.lg.initializeString (int o.maxSize.uper))
461+
| Decode, Copy -> Some (lm.lg.initializeString None (int o.maxSize.uper))
462462
| _ -> None
463463
let pp, resultExpr = joinedOrAsIdentifier lm codec p
464464

BackendAst/EncodeDecodeTestCase.fs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ let _createAcnEncDecFunction (r:Asn1AcnAst.AstRoot) (lm:LanguageMacros) (t:Asn1A
152152
let sStar = lm.lg.getStar p.accessPath
153153
let sAmberDecode = getAmberDecode t
154154
let sAmberIsValid = getAmberDecode t
155-
156-
match hasAcnEncodeFunction encFunc t.acnParameters t.id.tasInfo with
155+
let bHasAcnEncodeFunction = hasAcnEncodeFunction encFunc t.acnParameters t.id.tasInfo
156+
match bHasAcnEncodeFunction with
157157
| false -> None, us
158158
| true ->
159159
match funcName with
@@ -189,7 +189,7 @@ let _createAcnEncDecFunction (r:Asn1AcnAst.AstRoot) (lm:LanguageMacros) (t:Asn1A
189189
}
190190
joinItems (content.orElse "") sNestedContent
191191

192-
match hasAcnEncodeFunction encFunc t.acnParameters t.id.tasInfo with
192+
match bHasAcnEncodeFunction with
193193
| true ->
194194
let sNestedStatements =
195195
let rec printStatements statements : string option =

BackendAst/GenerateFiles.fs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,7 @@ let private printUnit (r:DAst.AstRoot) (lm:LanguageMacros) (encodings: CommonTy
267267
(t.Type.acnEncFunction |> Option.toList |> List.collect (fun x -> (x.func |> Option.toList) @ x.auxiliaries)) @
268268
(t.Type.acnDecFunction |> Option.toList |> List.collect (fun x -> (x.func |> Option.toList) @ x.auxiliaries))
269269
else []
270+
270271
let allProcs =
271272
(privateDefinition |> Option.toList) @
272273
eqFuncs @ isValidFuncs @ special_init_funcs @
@@ -286,11 +287,18 @@ let private printUnit (r:DAst.AstRoot) (lm:LanguageMacros) (encodings: CommonTy
286287
[], []
287288
let rtlFiles = lm.lg.getRtlFiles r.args.encodings arrsTypeAssignments
288289
let arrsImportedFiles = rtlFiles@pu.importedUserModules@pu.importedProgramUnits |> List.distinct
290+
let arrsUserDefinedFunctions =
291+
tases |> List.collect(fun t ->
292+
(t.Type.acnEncFunction |> Option.toList |> List.collect (fun x -> x.userDefinedFunctions )) @
293+
(t.Type.acnDecFunction |> Option.toList |> List.collect (fun x -> x.userDefinedFunctions )) ) |>
294+
List.map(fun f -> f.functionProtype.Trim()) |>
295+
List.filter (fun s -> s <> "") |>
296+
List.distinct
289297
let puCorrName =
290298
match r.lang with
291299
| CommonTypes.ProgrammingLanguage.Scala -> ToC (pu.name)
292300
| _ -> pu.name
293-
let srcBody = lm.src.printSourceFile puCorrName arrsImportedFiles pu.importedTypes (arrsValueAssignments@arrsSourceAnonymousValues@arrsTypeAssignments)
301+
let srcBody = lm.src.printSourceFile puCorrName arrsImportedFiles pu.importedTypes arrsUserDefinedFunctions (arrsValueAssignments@arrsSourceAnonymousValues@arrsTypeAssignments)
294302

295303
let eqContntent =
296304
match lm.lg.allowsSrcFilesWithNoFunctions with

CommonTypes/AbstractMacros.fs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ Generated by the C stg macros with the following command
8585
[<AbstractClass>]
8686
type ISrcBody () =
8787
abstract member rtlModuleName : unit -> string;
88-
abstract member printSourceFile : sFileNameWithoutExtension:string -> arrsIncludedFiles:seq<string> -> arrsAdaUseTypes:seq<string> -> arrsValueAndTypeAssignments:seq<string> -> string;
88+
abstract member printSourceFile : sFileNameWithoutExtension:string -> arrsIncludedFiles:seq<string> -> arrsAdaUseTypes:seq<string> -> arrsUserDefinedFunctions:seq<string> -> arrsValueAndTypeAssignments:seq<string> -> string;
8989
abstract member printTass : arrsAllProcs:seq<string> -> string;
9090

9191

@@ -257,7 +257,7 @@ Generated by the C stg macros with the following command
257257
abstract member initIA5String : sPtr:string -> sValue:string -> bIsOptional:bool -> sResVar:string -> string;
258258
abstract member initEnumerated : sVal:string -> sValue:string -> sTypeDefName:string -> bIsOptional:bool -> sResVar:string -> string;
259259
abstract member initNull : sVal:string -> bIsOptional:bool -> sResVar:string -> string;
260-
abstract member initTestCaseIA5String : p:string -> sAcc:string -> nSize:BigInteger -> nMaxSizePlusOne:BigInteger -> i:string -> td:FE_StringTypeDefinition -> bAlpha:bool -> arrnAlphabetAsciiCodes:seq<BigInteger> -> nAlphabetLength:BigInteger -> bZero:bool -> sResVar:string -> string;
260+
abstract member initTestCaseIA5String : p:string -> sAcc:string -> nSize:BigInteger -> nMaxSizePlusOne:BigInteger -> i:string -> td:FE_StringTypeDefinition -> bAlpha:bool -> arrnAlphabetAsciiCodes:seq<BigInteger> -> nAlphabetLength:BigInteger -> bZero:bool -> sResVar:string -> sInitChar:string -> string;
261261
abstract member initBitOrOctStringFromCompoundLiteral : p:string -> sCompLiteral:string -> string;
262262
abstract member initFixSizeBitOrOctString_bytei : p:string -> sAcc:string -> sI:string -> sByteHexVal:string -> string;
263263
abstract member initFixSizeBitOrOctString : p:string -> sAcc:string -> arrsBytes:seq<string> -> string;
@@ -369,6 +369,7 @@ Generated by the C stg macros with the following command
369369
abstract member EmitEncodingSizeConstants : sTypeDefName:string -> nMaxBytesInACN:BigInteger -> nMaxBitsInACN:BigInteger -> string;
370370
abstract member EmitTypeAssignment_primitive_def : sVarName:string -> sStar:string -> sFuncName:string -> sTypeDefName:string -> arrsErrcodes:seq<string> -> bEmptyEncodingSpace:bool -> nMaxBytesInACN:BigInteger -> nMaxBitsInACN:BigInteger -> arrsAcnPrms:seq<string> -> soSparkAnnotations:string option -> codec:Codec -> string;
371371
abstract member EmitTypeAssignment_primitive : sVarName:string -> sStar:string -> sFuncName:string -> soIValidFuncName:string option -> sTypeDefName:string -> arrsLocalVariables:seq<string> -> sContent:string -> soSparkAnnotations:string option -> sInitialExp:string -> arrsAcnPrms:seq<string> -> arrsAcnParamNames:seq<string> -> bEmptyEncodingSpace:bool -> bBsIsUnreferenced:bool -> bVarNameIsUnreferenced:bool -> soInitFuncName:string option -> arrsAnnots:seq<string> -> arrsPrecond:seq<string> -> soPostcond:string option -> codec:Codec -> string;
372+
abstract member MappingFunctionDeclaration : sTypeName:string -> sMF:string -> codec:Codec -> string;
372373
abstract member alignToNext : sMainBody:string -> sAlignmentValue:string -> nAlignmentValue:BigInteger -> nAbsOffset:BigInteger -> nRemainingMinBits:BigInteger -> nLevel:BigInteger -> nIx:BigInteger -> nOffset:BigInteger -> codec:Codec -> string;
373374
abstract member PositiveInteger_ConstSize : p:string -> sSsuffix:string -> sErrCode:string -> nFixedSize:BigInteger -> soMF:string option -> soMFM:string option -> nUperMin:BigInteger -> nUperMax:BigInteger -> codec:Codec -> string;
374375
abstract member PositiveInteger_ConstSize_8 : p:string -> sSsuffix:string -> sErrCode:string -> soMF:string option -> soMFM:string option -> nUperMin:BigInteger -> nUperMax:BigInteger -> codec:Codec -> string;
@@ -442,6 +443,8 @@ Generated by the C stg macros with the following command
442443
abstract member sequence_default_child : p:string -> sAcc:string -> sChName:string -> sChildContent:string -> sInitWithDefaultValue:string -> soExistVar:string option -> soChildExpr:string option -> sChildTypedef:string -> soSaveBitStrmPosStatement:string option -> codec:Codec -> string;
443444
abstract member sequence_call_post_encoding_function : p:string -> sFncName:string -> sBitStreamStartPos:string -> sBitStreamPositionsNullPos:string -> string;
444445
abstract member sequence_call_post_decoding_validator : p:string -> sFncName:string -> sBitStreamStartPos:string -> sBitStreamPositionsNullPos:string -> string;
446+
abstract member sequence_call_post_encoding_function_prototype : sTypedefName:string -> sFncName:string -> sExtFuncsPositionsTypeName:string -> string;
447+
abstract member sequence_call_post_decoding_validator_prototype : sTypedefName:string -> sFncName:string -> sExtFuncsPositionsTypeName:string -> string;
445448
abstract member ChoiceChildAlwaysAbsent : p:string -> sAcc:string -> sChildID:string -> nChildIndex:BigInteger -> sErrorCodeName:string -> codec:Codec -> string;
446449
abstract member ChoiceChild : p:string -> sAcc:string -> sChildID:string -> nChildIndex:BigInteger -> nIndexSizeInBits:BigInteger -> nLastItemIndex:BigInteger -> sChildContent:string -> sChildName:string -> sChildTypeDef:string -> sChoiceTypeName:string -> sChildInitExpr:string -> codec:Codec -> string;
447450
abstract member Choice : p:string -> sAcc:string -> arrsChildren:seq<string> -> nLastItemIndex:BigInteger -> sChoiceIndexName:string -> td:FE_ChoiceTypeDefinition -> nIndexSizeInBits:BigInteger -> sErrCode:string -> codec:Codec -> string;

CommonTypes/AcnGenericTypes.fs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,16 @@ type PostEncodingFunction =
311311
type PreDecodingFunction =
312312
| PreDecodingFunction of (StringLoc option)*StringLoc
313313

314+
type UserDefinedFunction =
315+
| UserMappingFunction of string
316+
| UserPostEncodingFunction of string
317+
| UserPreDecodingFunction of string
318+
with
319+
member this.functionProtype =
320+
match this with
321+
| UserMappingFunction fn
322+
| UserPostEncodingFunction fn
323+
| UserPreDecodingFunction fn -> fn
314324

315325
type IntegerAcnProperties = {
316326
encodingProp : AcnIntEncoding option

FrontEndAst/DAst.fs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,7 @@ type AcnFuncBodyResult = {
485485
resultExpr : string option
486486
auxiliaries : string list
487487
icdResult : IcdArgAux option
488+
userDefinedFunctions : UserDefinedFunction list //a list of user defined functions prototypes used in this function body. Emitted at the begining of the source file
488489
}
489490

490491
type XERFuncBodyResult = {
@@ -529,6 +530,7 @@ type AcnFunction = {
529530
funcBody : AcnFuncBody
530531
funcBodyAsSeqComp : AcnFuncBodySeqComp
531532
isTestVaseValid : AutomaticTestCase -> bool
533+
userDefinedFunctions : UserDefinedFunction list //a list of user defined functions prototypes used in this function body. Emitted at the begining of the source file
532534
icdTas : IcdTypeAss option (* always present in Encode, always None in Decode *)
533535
}
534536

@@ -998,6 +1000,7 @@ and AcnChildUpdateResult = {
9981000
testCaseFnc : AutomaticTestCase -> TestCaseValue option
9991001
errCodes : ErrorCode list
10001002
localVariables : LocalVariable list
1003+
//userDefinedFunctions : UserDefinedFunction list //a list of user defined functions prototypes used in this function body. Emitted at the begining of the source file
10011004
}
10021005

10031006
and DastAcnParameter = {

FrontEndAst/Language.fs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ type Acn_parts = {
3232
}
3333
type Initialize_parts = {
3434
zeroIA5String_localVars : int -> LocalVariable list
35+
zeroOctetString_localVars : int -> LocalVariable list
36+
zeroBitString_localVars : int -> LocalVariable list
3537
choiceComponentTempInit : bool
3638
initMethSuffix : Asn1TypeKind -> string // TODO REMOVE?
3739
}
@@ -224,7 +226,7 @@ type ILangGeneric () =
224226
abstract member asn1SccIntValueToString : BigInteger -> unsigned: bool -> string;
225227
abstract member intValueToString : BigInteger -> Asn1AcnAst.IntegerClass -> string;
226228
abstract member doubleValueToString : double -> string
227-
abstract member initializeString : int -> string
229+
abstract member initializeString :BigInteger option -> int -> string //the ascii code to use for initialization, and the length of the string
228230
abstract member supportsInitExpressions : bool
229231
abstract member setNamedItemBackendName0 : Asn1Ast.NamedItem -> string -> Asn1Ast.NamedItem
230232
abstract member getNamedItemBackendName0 : Asn1Ast.NamedItem -> string

0 commit comments

Comments
 (0)