/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 1989-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* *18***********************************************************************/19#pragma prototyped20/*21* Glenn Fowler22* AT&T Research23*24* expression library25*/2627#include "exlib.h"2829int30exrewind(Expr_t* ex)31{32register int n;3334if (ex->linewrap)35{36exerror("too much pushback");37return -1;38}39if (!ex->input->pushback && !(ex->input->pushback = oldof(0, char, sizeof(ex->line), 3)))40{41exnospace();42return -1;43}44if (n = ex->linep - ex->line)45memcpy(ex->input->pushback, ex->line, n);46if (ex->input->peek)47{48ex->input->pushback[n++] = ex->input->peek;49ex->input->peek = 0;50}51ex->input->pushback[n++] = ' ';52ex->input->pushback[n] = 0;53ex->input->pp = ex->input->pushback;54ex->input->nesting = ex->nesting;55setcontext(ex);56return 0;57}5859void60exstatement(Expr_t* ex)61{62ex->nesting = ex->input->nesting;63setcontext(ex);64}656667