Aegis  4.25.D505
/home/archives/aegis/branch.4/branch.25/delta28933.505/aefind/lex.h
Go to the documentation of this file.
00001 //
00002 // aegis - project change supervisor
00003 // Copyright (C) 1997, 2002, 2003, 2005, 2006, 2008, 2012 Peter Miller
00004 //
00005 // This program is free software; you can redistribute it and/or modify
00006 // it under the terms of the GNU General Public License as published by
00007 // the Free Software Foundation; either version 3 of the License, or (at
00008 // your option) any later version.
00009 //
00010 // This program is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 // General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License
00016 // along with this program. If not, see <http://www.gnu.org/licenses/>.
00017 //
00018 
00019 #ifndef AEFIND_LEX_H
00020 #define AEFIND_LEX_H
00021 
00022 #include <libaegis/arglex2.h>
00023 
00024 enum
00025 {
00026     arglex_token_and = ARGLEX2_MAX,
00027     arglex_token_atime,
00028     arglex_token_bit_and,
00029     arglex_token_bit_or,
00030     arglex_token_bit_xor,
00031     arglex_token_comma,
00032     arglex_token_ctime,
00033     arglex_token_debug,
00034     arglex_token_delete,
00035     arglex_token_div,
00036     arglex_token_eq,
00037     arglex_token_execute,
00038     arglex_token_false,
00039     arglex_token_ge,
00040     arglex_token_gt,
00041     arglex_token_join,
00042     arglex_token_le,
00043     arglex_token_left_paren,
00044     arglex_token_lt,
00045     arglex_token_mod,
00046     arglex_token_mtime,
00047     arglex_token_mul,
00048     arglex_token_namekw,
00049     arglex_token_ne,
00050     arglex_token_newer,
00051     arglex_token_not,
00052     arglex_token_now,
00053     arglex_token_or,
00054     arglex_token_path,
00055     arglex_token_plus,
00056     arglex_token_print,
00057     arglex_token_resolve,
00058     arglex_token_resolve_not,
00059     arglex_token_right_paren,
00060     arglex_token_semicolon,
00061     arglex_token_shift_left,
00062     arglex_token_shift_right,
00063     arglex_token_size,
00064     arglex_token_stringize,
00065     arglex_token_this,
00066     arglex_token_this_resolved,
00067     arglex_token_this_unresolved,
00068     arglex_token_tilde,
00069     arglex_token_true,
00070     arglex_token_type,
00071     ARGLEX3_MAX
00072 };
00073 
00074 void cmdline_lex_open(int, char **);
00075 void cmdline_lex_close(void);
00076 int cmdline_lex(void);
00077 void cmdline_error(const char *);
00078 void usage(void);
00079 
00080 struct sub_context_ty; // existence
00081 void cmdline_lex_error(struct sub_context_ty *, const char *);
00082 
00083 #endif // AEFIND_LEX_H
00084 // vim: set ts=8 sw=4 et :