| 1 | // osh.h
|
| 2 |
|
| 3 | #ifndef LEAKY_OSH_H
|
| 4 | #define LEAKY_OSH_H
|
| 5 |
|
| 6 | #include "_gen/frontend/syntax.asdl.h"
|
| 7 | #include "cpp/osh_tdop.h"
|
| 8 | #include "mycpp/runtime.h"
|
| 9 |
|
| 10 | namespace arith_parse {
|
| 11 |
|
| 12 | extern tdop::ParserSpec* kArithSpec;
|
| 13 |
|
| 14 | inline tdop::ParserSpec* Spec() {
|
| 15 | return kArithSpec;
|
| 16 | }
|
| 17 |
|
| 18 | // Generated tables in _devbuild/gen-cpp/
|
| 19 | extern tdop::LeftInfo kLeftLookup[];
|
| 20 | extern tdop::NullInfo kNullLookup[];
|
| 21 |
|
| 22 | } // namespace arith_parse
|
| 23 |
|
| 24 | namespace bool_stat {
|
| 25 |
|
| 26 | using syntax_asdl::word_t;
|
| 27 |
|
| 28 | bool isatty(BigStr* fd_str, word_t* blame_word);
|
| 29 | bool DoUnaryOp(Id_t op_id, BigStr* s);
|
| 30 | bool DoBinaryOp(Id_t op_id, BigStr* s1, BigStr* s2);
|
| 31 |
|
| 32 | } // namespace bool_stat
|
| 33 |
|
| 34 | namespace sh_expr_eval {
|
| 35 |
|
| 36 | inline bool IsLower(BigStr* ch) {
|
| 37 | assert(len(ch) == 1);
|
| 38 | uint8_t c = ch->data_[0];
|
| 39 | return ('a' <= c && c <= 'z');
|
| 40 | }
|
| 41 |
|
| 42 | inline bool IsUpper(BigStr* ch) {
|
| 43 | assert(len(ch) == 1);
|
| 44 | uint8_t c = ch->data_[0];
|
| 45 | return ('A' <= c && c <= 'Z');
|
| 46 | }
|
| 47 |
|
| 48 | } // namespace sh_expr_eval
|
| 49 |
|
| 50 | #endif // LEAKY_OSH_H
|