-
Notifications
You must be signed in to change notification settings - Fork 6
/
regj.ijs
32 lines (31 loc) · 891 Bytes
/
regj.ijs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
NB. nouns for applying regular expressions to J code
NB.
NB. Jname name
NB. Jnumitem numeric item
NB. Jnum number or blank
NB. Jcharitem character item
NB. Jchar character
NB. Jconst constant
NB.
NB. Jlassign local assign
NB. Jgassign global assign
NB. Jassign any assign
NB.
NB. Jlpar left paren
NB. Jrpar right paren
NB.
NB. Jsol start of line
NB. Jeol end of line
Jname=: '[[:alpha:]][[:alnum:]_]*|x\.|y\.|m\.|n\.|u\.|v\.'
Jnumitem=: '[[:digit:]_][[:alnum:]_.]*'
Jnum=: '([[:digit:]_][[:alnum:]_.]*|[[:blank:]])?'
Jcharitem=: '''(''''|[^''])'''
Jchar=: '''(''''|[^''])*'''
Jconst=: '([[:digit:]_][[:alnum:]_.]*|[[:blank:]])?|''(''''|[^''])*''|a:|a\.'
Jlassign=: '=\.'
Jgassign=: '=:'
Jassign=: '=[.:]'
Jlpar=: '\('
Jrpar=: '\)'
Jsol=: '^[[:blank:]]*'
Jeol=: '[[:blank:]]*(NB\..*)?$'