UNPKG

swarm-ron-grammar

Version:

A regular grammar for the Swarm Replicated Object Notation

27 lines (19 loc) 799 B
"use strict"; const resolve = require('regular-grammar'); const RON_GRAMMAR = { BASE64: /[0-9A-Za-z_~]/, UNICODE: /\\u[0-9a-fA-F]{4}/, INT: /([\([{}\])])?($BASE64{0,10})/, UUID: /($INT)?([-+$%])?($INT)?/, INT_ATOM: /[+-]?\d{1,17}/, UUID_ATOM: /[`]?$UUID/, STRING_ATOM:/($UNICODE|\\[^\n\r]|[^'\\\n\r])*/, FLOAT_ATOM: /[+-]?\d{0,19}\.\d{1,19}([Ee][+-]?\d{1,3})?/, OPTERM: /[!?,;]/, FRAMETERM: /\s*[.]/, ATOM: /=($INT_ATOM)|'($STRING_ATOM)'|\^($FLOAT_ATOM)|>($UUID)/, OP: /(?:\s*\*\s*($UUID_ATOM))?(?:\s*#\s*($UUID_ATOM))?(?:\s*@\s*($UUID_ATOM))?(?:\s*:\s*($UUID_ATOM))?\s*((?:\s*$ATOM)*)\s*($OPTERM)?/, FRAME: /($OP)+$FRAMETERM?/, }; resolve("FRAME", RON_GRAMMAR); module.exports = RON_GRAMMAR;