Introduction
Introduction Statistics Contact Development Disclaimer Help
parse.h - 9base - revived minimalist port of Plan 9 userland to Unix
git clone git://git.suckless.org/9base
Log
Files
Refs
README
LICENSE
---
parse.h (1909B)
---
1 typedef struct Addr Addr;
2 typedef struct Cmd Cmd;
3 struct Addr
4 {
5 char type; /* # (char addr), l (line addr), / ? . …
6 union{
7 String *re;
8 Addr *aleft; /* left side of , and…
9 } g;
10 Posn num;
11 Addr *next; /* or right side of , …
12 };
13
14 #define are g.re
15 #define left g.aleft
16
17 struct Cmd
18 {
19 Addr *addr; /* address (range of t…
20 String *re; /* regular expression …
21 union{
22 Cmd *cmd; /* target of x, g, {, et…
23 String *text; /* text of a, c, i; …
24 Addr *addr; /* address for m, t */
25 } g;
26 Cmd *next; /* pointer to next elem…
27 short num;
28 ushort flag; /* whatever */
29 ushort cmdc; /* command character;…
30 };
31
32 #define ccmd g.cmd
33 #define ctext g.text
34 #define caddr g.addr
35
36 extern struct cmdtab{
37 ushort cmdc; /* command character */
38 uchar text; /* takes a textual argument? */
39 uchar regexp; /* takes a regular expressio…
40 uchar addr; /* takes an address (m or t)? …
41 uchar defcmd; /* default command; 0==>none…
42 uchar defaddr; /* default address */
43 uchar count; /* takes a count e.g. s2/// */
44 char *token; /* takes text terminated by o…
45 int (*fn)(File*, Cmd*); /* function to call with p…
46 }cmdtab[];
47
48 enum Defaddr{ /* default addresses */
49 aNo,
50 aDot,
51 aAll
52 };
53
54 int nl_cmd(File*, Cmd*), a_cmd(File*, Cmd*), b_cmd(File*, Cmd*);
55 int c_cmd(File*, Cmd*), cd_cmd(File*, Cmd*), d_cmd(File*, Cmd*);
56 int D_cmd(File*, Cmd*), e_cmd(File*, Cmd*);
57 int f_cmd(File*, Cmd*), g_cmd(File*, Cmd*), i_cmd(File*, Cmd*);
58 int k_cmd(File*, Cmd*), m_cmd(File*, Cmd*), n_cmd(File*, Cmd*);
59 int p_cmd(File*, Cmd*), q_cmd(File*, Cmd*);
60 int s_cmd(File*, Cmd*), u_cmd(File*, Cmd*), w_cmd(File*, Cmd*);
61 int x_cmd(File*, Cmd*), X_cmd(File*, Cmd*), plan9_cmd(File*, Cmd*…
62 int eq_cmd(File*, Cmd*);
63
64
65 String *getregexp(int);
66 Addr *newaddr(void);
67 Address address(Addr*, Address, int);
68 int cmdexec(File*, Cmd*);
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.