visitExpr()

in lib/generator.js [2436:2457]


  visitExpr(ast, level, env, expected, argHasThrowFunc) {
    var isPointer = false;
    env = env || {
      pointerParams: [],
      local: new Map()
    };
    if (ast.type === 'boolean') {
      if (expected && expected.pointer) {
        this.emit(`dara.Bool(${ast.value})`);
      } else {
        this.emit(ast.value);
      }
    } else if (ast.type === 'null') {
      this.emit('nil');
    } else if (ast.type === 'property_access') {
      this.visitPropertyAccess(ast, level, env, expected);
    } else if (ast.type === 'string') {
      if (expected && expected.pointer) {
        this.emit(`dara.String("${_string(ast.value).replace(/"/g, '\\"')}")`);
      } else {
        this.emit(`"${_string(ast.value).replace(/"/g, '\\"')}"`);
      }