All files / src/core wall.js

0% Statements 0/13
100% Branches 0/0
0% Functions 0/2
0% Lines 0/13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30                                                           
var Clause = require( '../models/Clause' );
var coerceIntoClause = require( '../utils/coerceIntoClause' );
var { cat, ExprClause } = require( './regex' );
var fclause = require( './fclause' );
var walk = require( '../walk' );
 
var WallFnClause = fclause( {
  args: cat( ExprClause ),
  ret: ExprClause,
} );
 
function wallOp( expr ) {
  var clause = coerceIntoClause( expr );
  var wallS = new Clause( {
    type: 'WALL',
    exprs: [ clause ],
    opts: { enclosedClause: clause },
  } );
  wallS.conform = function andConform( x ) {
    return walk( wallS, x, { conform: true } );
  }
  return wallS;
}
 
var wall = WallFnClause.instrument( wallOp );
 
module.exports = {
  WallFnClause, wall,
};