-#!/bin/gawk
+#!/bin/awk -f
BEGIN {
add_line_after != "" ;
}
}
-/^[0-9]+\./ {
+# Section headers
+# This will also catch bits of Short Message description but that won't cause issues
+# A way not to catch those could be to check that the numbers are in sequence
+
+/^[0-9]+(\.[0-9]+)*\t/ {
in_IE = "no" ;
+# print "Titre" ;
+# print ;
}
/^-- ASN1START/ {
next;
}
+# Recording empty line (to avoid multiple empty lines)
+# Printing separators in some cases
+
/^[[:space:]]*$/ {
if (next_line == "condition") {
# print ;
}
-/^–[[:space:]]+ParentIE-WithEM$/ {
+# Stopping before ASN.1 examples (end of specification)
+/^-[[:space:]]+ParentIE-WithEM$/ {
exit 0 ;
}
-/^–[[:space:]]+[A-Za-z0-9-]+$/ {
+# Start of IE definitions
+# This cannot catch "Multiplicity and type constraints"
+# This also cannot catch NR-InterNodeDefinitions
+/^-[[:space:]]+[A-Za-z0-9-]+$/ {
if (empty_line == "yes") {
print ie_separator;
print "-- IE: " $2;
next ;
}
+/^NR-InterNodeDefinitions/ {
+ if (empty_line == "yes") {
+ print ie_separator;
+ print "-- IE: NR-InterNodeDefinitions";
+ print "" ;
+ # Perhaps it could work without this if the "next" at the end is removed
+ print ;
+ empty_line = "no" ;
+ conditions = "" ;
+ }
+ in_IE = "yes" ;
+ next ;
+}
+
+
+# Sometimes there is an "s" to constraint, sometimes not
+/^-[[:space:]]+Multiplicity and type constraints? definitions$/ {
+ if (empty_line == "yes") {
+ print ie_separator;
+ print "-- Multiplicity and type constraints definitions";
+ print "" ;
+ empty_line = "no" ;
+ conditions = "" ;
+ }
+ in_IE = "yes" ;
+ next ;
+}
+
+#/^-[[:space:]]+Multiplicity and type constraints definitions/ {
+# in_IE = "yes" ;
+# next ;
+#}
+
/^Conditional Presence/ {
add_line_after = "";
separator = "" ;
-
+
$0 = "Conditional presence" ;
for(i=0;i<=140;i++) {
separator = separator "-" ;