Open montery8 opened 2 years ago
Try this syntax definition. Adapted from the Mibble asn1.grammar source code.
Prism.languages.asn1 = {
'comment': /--(-?[^\-\n\r])*(--|-?[\n\r])/,
'string': /"([^"]|"")*"/,
'keyword': /DEFINITIONS|EXPLICIT|IMPLICIT|TAGS|BEGIN|END|EXPORTS|IMPORTS|FROM|MACRO|INTEGER|REAL|BOOLEAN|NULL|BIT|OCTET|STRING|ENUMERATED|SEQUENCE|SET|OF|CHOICE|UNIVERSAL|APPLICATION|PRIVATE|ANY|DEFINED|BY|OBJECT(S|-IDENTITY|-TYPE|-GROUP)?|IDENTIFIER|INCLUDES|MIN(-ACCESS)?|MAX(-ACCESS)?|SIZE|WITH|COMPONENT|COMPONENTS|PRESENT|ABSENT|OPTIONAL|DEFAULT|TRUE|FALSE|PLUS-INFINITY|MINUS-INFINITY|NOTIFICATION-TYPE|TRAP-TYPE|TEXTUAL-CONVENTION|NOTIFICATION-GROUP|AGENT-CAPABILITIES|LAST-UPDATED|ORGANIZATION|CONTACT-INFO|DESCRIPTION|REVISION|STATUS|REFERENCE|SYNTAX|BITS|UNITS|ACCESS|INDEX|AUGMENTS|IMPLIED|DEFVAL|ENTERPRISE|VARIABLES|DISPLAY-HINT|NOTIFICATIONS|MODULE(-IDENTITY|-COMPLIANCE)?|MANDATORY-GROUPS|GROUP|WRITE-SYNTAX|PRODUCT-RELEASE|SUPPORTS|VARIATION|CREATION-REQUIRES/,
'symbol': /[a-zA-Z][a-zA-Z0-9-_]*/,
'number': [
/[0-9]+/,
/'[0-1]+'b/i,
/'[0-9a-f]+'h/i
],
'operator': /\.{1,3}|[,;(){}[\]\-<|]|::=/
};
Language ASN.1 is a computer language designed by the CCITT/ITU for the specification of data types and values, especially in communication protocols.
Additional resources https://www.3gpp.org/specifications/61-asn-1