Lines Matching refs:R_SExpr
50 // Class R defines the basic interface types (R_SExpr).
56 // Traverse an expression -- returning a result of type R_SExpr.
59 typename R::R_SExpr traverse(SExprRef &E, typename R::R_Ctx Ctx) {
63 typename R::R_SExpr traverse(SExpr *E, typename R::R_Ctx Ctx) {
68 typename R::R_SExpr traverseByCase(SExpr *E, typename R::R_Ctx Ctx) {
81 typename R::R_SExpr traverse##X(X *e, typename R::R_Ctx Ctx) { \
123 // R_SExpr is the result type for a traversal.
125 typedef SExpr *R_SExpr;
159 R_SExpr reduceNull() {
162 // R_SExpr reduceFuture(...) is never used.
164 R_SExpr reduceUndefined(Undefined &Orig) {
167 R_SExpr reduceWildcard(Wildcard &Orig) {
171 R_SExpr reduceLiteral(Literal &Orig) {
175 R_SExpr reduceLiteralT(LiteralT<T> &Orig) {
178 R_SExpr reduceLiteralPtr(LiteralPtr &Orig) {
182 R_SExpr reduceFunction(Function &Orig, Variable *Nvd, R_SExpr E0) {
185 R_SExpr reduceSFunction(SFunction &Orig, Variable *Nvd, R_SExpr E0) {
188 R_SExpr reduceCode(Code &Orig, R_SExpr E0, R_SExpr E1) {
191 R_SExpr reduceField(Field &Orig, R_SExpr E0, R_SExpr E1) {
195 R_SExpr reduceApply(Apply &Orig, R_SExpr E0, R_SExpr E1) {
198 R_SExpr reduceSApply(SApply &Orig, R_SExpr E0, R_SExpr E1) {
201 R_SExpr reduceProject(Project &Orig, R_SExpr E0) {
204 R_SExpr reduceCall(Call &Orig, R_SExpr E0) {
208 R_SExpr reduceAlloc(Alloc &Orig, R_SExpr E0) {
211 R_SExpr reduceLoad(Load &Orig, R_SExpr E0) {
214 R_SExpr reduceStore(Store &Orig, R_SExpr E0, R_SExpr E1) {
217 R_SExpr reduceArrayIndex(ArrayIndex &Orig, R_SExpr E0, R_SExpr E1) {
220 R_SExpr reduceArrayAdd(ArrayAdd &Orig, R_SExpr E0, R_SExpr E1) {
223 R_SExpr reduceUnaryOp(UnaryOp &Orig, R_SExpr E0) {
226 R_SExpr reduceBinaryOp(BinaryOp &Orig, R_SExpr E0, R_SExpr E1) {
229 R_SExpr reduceCast(Cast &Orig, R_SExpr E0) {
233 R_SExpr reduceSCFG(SCFG &Orig, Container<BasicBlock *> &Bbs) {
237 Container<Variable *> &Is, R_SExpr T) {
240 R_SExpr reducePhi(Phi &Orig, Container<R_SExpr> &As) {
243 R_SExpr reduceGoto(Goto &Orig, BasicBlock *B) {
246 R_SExpr reduceBranch(Branch &O, R_SExpr C, BasicBlock *B0, BasicBlock *B1) {
250 R_SExpr reduceIdentifier(Identifier &Orig) {
253 R_SExpr reduceIfThenElse(IfThenElse &Orig, R_SExpr C, R_SExpr T, R_SExpr E) {
256 R_SExpr reduceLet(Let &Orig, Variable *Nvd, R_SExpr B) {
261 Variable *enterScope(Variable &Orig, R_SExpr E0) {
282 typedef SExpr *R_SExpr;
299 typedef bool R_SExpr;
322 R_SExpr reduceNull() { return true; }
323 R_SExpr reduceUndefined(Undefined &Orig) { return true; }
324 R_SExpr reduceWildcard(Wildcard &Orig) { return true; }
326 R_SExpr reduceLiteral(Literal &Orig) { return true; }
328 R_SExpr reduceLiteralT(LiteralT<T> &Orig) { return true; }
329 R_SExpr reduceLiteralPtr(Literal &Orig) { return true; }
331 R_SExpr reduceFunction(Function &Orig, Variable *Nvd, R_SExpr E0) {
334 R_SExpr reduceSFunction(SFunction &Orig, Variable *Nvd, R_SExpr E0) {
337 R_SExpr reduceCode(Code &Orig, R_SExpr E0, R_SExpr E1) {
340 R_SExpr reduceField(Field &Orig, R_SExpr E0, R_SExpr E1) {
343 R_SExpr reduceApply(Apply &Orig, R_SExpr E0, R_SExpr E1) {
346 R_SExpr reduceSApply(SApply &Orig, R_SExpr E0, R_SExpr E1) {
349 R_SExpr reduceProject(Project &Orig, R_SExpr E0) { return E0; }
350 R_SExpr reduceCall(Call &Orig, R_SExpr E0) { return E0; }
351 R_SExpr reduceAlloc(Alloc &Orig, R_SExpr E0) { return E0; }
352 R_SExpr reduceLoad(Load &Orig, R_SExpr E0) { return E0; }
353 R_SExpr reduceStore(Store &Orig, R_SExpr E0, R_SExpr E1) { return E0 && E1; }
354 R_SExpr reduceArrayIndex(Store &Orig, R_SExpr E0, R_SExpr E1) {
357 R_SExpr reduceArrayAdd(Store &Orig, R_SExpr E0, R_SExpr E1) {
360 R_SExpr reduceUnaryOp(UnaryOp &Orig, R_SExpr E0) { return E0; }
361 R_SExpr reduceBinaryOp(BinaryOp &Orig, R_SExpr E0, R_SExpr E1) {
364 R_SExpr reduceCast(Cast &Orig, R_SExpr E0) { return E0; }
366 R_SExpr reduceSCFG(SCFG &Orig, Container<BasicBlock *> Bbs) {
370 Container<Variable *> &Is, R_SExpr T) {
373 R_SExpr reducePhi(Phi &Orig, Container<R_SExpr> &As) {
376 R_SExpr reduceGoto(Goto &Orig, BasicBlock *B) {
379 R_SExpr reduceBranch(Branch &O, R_SExpr C, BasicBlock *B0, BasicBlock *B1) {
383 R_SExpr reduceIdentifier(Identifier &Orig) {
386 R_SExpr reduceIfThenElse(IfThenElse &Orig, R_SExpr C, R_SExpr T, R_SExpr E) {
389 R_SExpr reduceLet(Let &Orig, Variable *Nvd, R_SExpr B) {
393 Variable *enterScope(Variable &Orig, R_SExpr E0) { return &Orig; }