POSE
portable S-expressions (POSE)
specification and libraries

Specification

File name extension

The suggested extension for a POSE file is .pose. This appears to be unused by any common program.


MIME type

The tentative plan is to register the internet media type text/pose with IANA. In the meantime, text/x-pose is suggested.


Grammar

expressions =(atmosphere* expression)* atmosphere*
atmosphere =whitespace | comment
whitespace =HT | VT | FF | space | newline
newline =CR | LF
comment =';' and all subsequent characters until newline or eof
expression =list | string | number | symbol
list ='(' expressions ')'
string ='"' string-char* '"'
string-char =string-esc | any-char-except-backslash
string-esc =\\ | \"
number ='0' | decimal
decimal =minus? onenine digit* fraction? exponent?
fraction ='.' digit+
exponent ='e' sign digit+
symbol =wordsym | signsym
wordsym =wordsym-1st wordsym-cont*
wordsym-1st =letter | punct-1st
wordsym-cont=letter | punct-cont | digit
signsym =sign signsym-rest?
signsym-rest=signsym-2nd signsym-cont*
signsym-2nd =letter | punct-cont
signsym-cont=letter | punct-cont | digit
punct-1st ='!' | '$' | '&' | '*' | '+' | '-' | '/' | '<' | '=' | '>' | '_'
punct-cont =punct-1st | '.' | '?' | '@'
letter =a-z | A-Z
digit =0-9
onenine =1-9
minus ='-'
sign ='-' | '+'