Skip to content

Commit 53e2646

Browse files
committed
This is a quick fix. It simply solves the compilation error.
1 parent 9e01000 commit 53e2646

File tree

4 files changed

+47
-3
lines changed

4 files changed

+47
-3
lines changed

FrontEndAst/DAst.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ let addFunctionCallToState (state:State) (caller:Caller) (callee:Callee) =
149149

150150
type IntegerValue = BigInteger
151151
type RealValue = double
152-
type StringValue = (SingleStringValue list*SrcLoc)
152+
type StringValue = (SingleStringValue list*SrcLoc) //see details-docs/asn1/IA5String-values.md for details about the representation of string values
153153
type BooleanValue = bool
154154
type BitStringValue = string
155155
type OctetStringValue = list<byte>

StgC/variables_c.stg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ PrintHT() ::= <<
3131
>>
3232

3333

34-
PrintStringValueNull() ::= "NULL"
34+
PrintStringValueNull() ::= <<"\0">>
3535

3636
PrintCharValue(cValue) ::= "'<cValue>'"
3737

asn1scc/Program.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ let printVersion () =
124124
//let fvi = System.Diagnostics.FileVersionInfo.GetVersionInfo(assembly.Location);
125125
//let version = fvi.FileVersion;
126126

127-
let version = "4.6.0.14"
127+
let version = "4.6.0.15"
128128
printfn "asn1scc version %s\n" version
129129
()
130130

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
Ο τύπος **`IA5String`** (International Alphabet number 5) είναι ένας από τους βασικούς τύπους συμβολοσειρών χαρακτήρων (character string types) του ASN.1. Γενικά, είναι ισοδύναμος με το αλφάβητο ASCII.
2+
3+
Η ανάθεση μιας αφηρημένης τιμής (abstract value) σε έναν τύπο στο ASN.1, συμπεριλαμβανομένου του `IA5String`, ακολουθεί έναν γενικό κανόνα:
4+
5+
1. Το όνομα αναφοράς της τιμής πρέπει να ξεκινά με πεζό γράμμα (π.χ., `valuereference`).
6+
2. Ακολουθεί ο τύπος στον οποίο ανήκει η τιμή (πρέπει να ξεκινά με κεφαλαίο γράμμα, π.χ., `IA5String`).
7+
3. Χρησιμοποιείται το σύμβολο ανάθεσης **`::=`**.
8+
4. Ακολουθεί η ίδια η τιμή (`Value`).
9+
10+
**Σημείωση:** Οι αφηρημένες τιμές που ορίζονται σε μια ASN.1 ενότητα **δεν κωδικοποιούνται ποτέ** για μετάδοση, αλλά χρησιμοποιούνται για τη βελτίωση της αναγνωσιμότητας σε περιορισμούς υποτύπων ή για τον καθορισμό προεπιλεγμένων τιμών.
11+
12+
### Σύνταξη Τιμής IA5String
13+
14+
Οι συμβολοσειρές χαρακτήρων (character strings) στο ASN.1, όπως ο `IA5String`, ορίζονται συνήθως μέσα σε διπλά εισαγωγικά (`"`).
15+
16+
**1. Βασική Ανάθεση Συμβολοσειράς:**
17+
18+
Μια βασική ανάθεση τιμής για τον τύπο `IA5String` μπορεί να μοιάζει με:
19+
20+
```asn1
21+
string IA5String ::= "string including ""double quotes"""
22+
-- αντιπροσωπεύει <<string including "double quotes">>
23+
```
24+
Αν η συμβολοσειρά περιλαμβάνει διπλό εισαγωγικό, αυτό πρέπει να διπλασιαστεί μέσα στην τιμή.
25+
26+
**2. Ανάθεση με μη Γραφικούς Χαρακτήρες:**
27+
28+
Για τον τύπο `IA5String`, υπάρχει μια ειδική σύνταξη που επιτρέπει την αναφορά σε μη γραφικούς χαρακτήρες (control characters), χρησιμοποιώντας αγκύλες `{}` σε μορφή λίστας (`CharacterStringList`):
29+
30+
* Αυτή η σύνταξη επιτρέπει την ανάμειξη (συνένωση) συμβολοσειρών σε διπλά εισαγωγικά και αναφορών σε χαρακτήρες.
31+
* Οι μη γραφικοί χαρακτήρες μπορούν να αναφέρονται είτε με καθορισμένες τιμές (που εισάγονται από την τυποποιημένη ενότητα **`ASN1-CHARACTER-MODULE`**) είτε μέσω της παραγωγής **`Tuple`**.
32+
* Η παραγωγή `Tuple` χρησιμοποιείται μόνο για τον τύπο `IA5String` και ορίζει χαρακτήρες με βάση τη θέση τους στη στήλη και τη σειρά (π.χ., `{TableColumn, TableRow}`).
33+
34+
**Παράδειγμα** με χρήση εισαγόμενης αναφοράς χαρακτήρα:
35+
```asn1
36+
ExampleIA5String DEFINITIONS ::=
37+
BEGIN
38+
IMPORTS cr FROM ASN1-CHARACTER-MODULE {joint-iso-itu-t
39+
asn1(1) specification(0) modules(0) iso10646(0)} ;
40+
two-lines IA5String ::= { "First line", cr,
41+
"Second line" }
42+
END
43+
```
44+
Στο παραπάνω παράδειγμα, η τιμή `two-lines` περιέχει τον χαρακτήρα αλλαγής γραμμής (CR).

0 commit comments

Comments
 (0)