MCPcopy Create free account
hub / github.com/F-Stack/f-stack / db_term

Function db_term

freebsd/ddb/db_expr.c:53–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

51static bool db_logical_relation_expr(db_expr_t *valuep);
52
53static bool
54db_term(db_expr_t *valuep)
55{
56 int t;
57
58 t = db_read_token();
59 if (t == tIDENT) {
60 if (!db_value_of_name(db_tok_string, valuep) &&
61 !db_value_of_name_pcpu(db_tok_string, valuep) &&
62 !db_value_of_name_vnet(db_tok_string, valuep)) {
63 db_printf("Symbol '%s' not found\n", db_tok_string);
64 db_error(NULL);
65 /*NOTREACHED*/
66 }
67 return (true);
68 }
69 if (t == tNUMBER) {
70 *valuep = (db_expr_t)db_tok_number;
71 return (true);
72 }
73 if (t == tDOT) {
74 *valuep = (db_expr_t)db_dot;
75 return (true);
76 }
77 if (t == tDOTDOT) {
78 *valuep = (db_expr_t)db_prev;
79 return (true);
80 }
81 if (t == tPLUS) {
82 *valuep = (db_expr_t) db_next;
83 return (true);
84 }
85 if (t == tDITTO) {
86 *valuep = (db_expr_t)db_last_addr;
87 return (true);
88 }
89 if (t == tDOLLAR) {
90 if (!db_get_variable(valuep))
91 return (false);
92 return (true);
93 }
94 if (t == tLPAREN) {
95 if (!db_expression(valuep)) {
96 db_printf("Expression syntax error after '%c'\n", '(');
97 db_error(NULL);
98 /*NOTREACHED*/
99 }
100 t = db_read_token();
101 if (t != tRPAREN) {
102 db_printf("Expression syntax error -- expected '%c'\n", ')');
103 db_error(NULL);
104 /*NOTREACHED*/
105 }
106 return (true);
107 }
108 db_unread_token(t);
109 return (false);
110}

Callers 2

db_unaryFunction · 0.85
db_mult_exprFunction · 0.85

Calls 9

db_read_tokenFunction · 0.85
db_value_of_nameFunction · 0.85
db_value_of_name_pcpuFunction · 0.85
db_value_of_name_vnetFunction · 0.85
db_printfFunction · 0.85
db_errorFunction · 0.85
db_get_variableFunction · 0.85
db_expressionFunction · 0.85
db_unread_tokenFunction · 0.85

Tested by

no test coverage detected