2 * Amanda, The Advanced Maryland Automatic Network Disk Archiver
3 * Copyright (c) 1991-1998, 2000 University of Maryland at College Park
6 * Permission to use, copy, modify, distribute, and sell this software and its
7 * documentation for any purpose is hereby granted without fee, provided that
8 * the above copyright notice appear in all copies and that both that
9 * copyright notice and this permission notice appear in supporting
10 * documentation, and that the name of U.M. not be used in advertising or
11 * publicity pertaining to distribution of the software without specific,
12 * written prior permission. U.M. makes no representations about the
13 * suitability of this software for any purpose. It is provided "as is"
14 * without express or implied warranty.
16 * U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M.
18 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
20 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
21 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23 * Authors: the Amanda Development Team. Its members are listed in a
24 * file named AUTHORS, in the root directory of this distribution.
27 * $Id: uparse.y,v 1.11 2003/01/01 23:28:17 martinea Exp $
29 * parser for amrecover interactive language
33 #include "amrecover.h"
35 void yyerror P((char *s));
36 extern int yylex P((void));
47 /* literal keyword tokens */
49 %token LISTDISK SETHOST SETDISK SETDATE SETTAPE SETMODE
50 %token CD CDX QUIT DHIST LS ADD ADDX EXTRACT
51 %token LIST DELETE DELETEX PWD CLEAR HELP LCD LPWD MODE SMB TAR
76 LISTDISK PATH { list_disk($2); amfree($2); }
77 | LISTDISK { list_disk(NULL); }
78 | SETDATE DATE { set_date($2); amfree($2); }
79 | SETHOST PATH { set_host($2); amfree($2); }
80 | SETDISK PATH PATH { set_disk($2, $3); amfree($2); amfree($3); }
81 | SETDISK PATH { set_disk($2, NULL); amfree($2); }
82 | SETTAPE PATH { set_tape($2); amfree($2); }
83 | SETTAPE { set_tape(""); }
84 | CD PATH { cd_glob($2); amfree($2); }
85 | CDX PATH { cd_regex($2); amfree($2); }
88 set_mode(SAMBA_SMBCLIENT);
89 #endif /* SAMBA_CLIENT */
94 #endif /* SAMBA_CLIENT */
99 DHIST { list_disk_history(); }
100 | LS { list_directory(); }
101 | LIST PATH { display_extract_list($2); amfree($2); }
102 | LIST { display_extract_list(NULL); }
103 | PWD { show_directory(); }
104 | CLEAR { clear_extract_list(); }
105 | MODE { show_mode (); }
117 add_path PATH { add_glob($2); amfree($2); }
118 | PATH { add_glob($1); amfree($1); }
126 addx_path PATH { add_regex($2); amfree($2); }
127 | PATH { add_regex($1); amfree($1); }
135 delete_path PATH { delete_glob($2); amfree($2); }
136 | PATH { delete_glob($1); amfree($1); }
144 deletex_path PATH { delete_regex($2); amfree($2); }
145 | PATH { delete_regex($1); amfree($1); }
149 LPWD { char buf[STR_SIZE]; puts(getcwd(buf, sizeof(buf))); }
151 if (chdir($2) == -1) {
159 HELP { help_list(); }
163 EXTRACT { extract_files(); }
166 /* ADDITIONAL C CODE */
172 printf("Invalid command - %s\n", s);