protected static Expression parseFlatNoparen(
      Module module, SourceReader sReader, TokenReader reader, boolean noDecl) {

    int mark = reader.mark();

    Literal literal = LiteralParser.parse(module, sReader, reader);
    if (literal != null) return literal;

    FunctionCall funcCall = FunctionCallParser.parse(module, sReader, reader);
    if (funcCall != null) return funcCall;

    if (!noDecl) {
      Declaration declaration = DeclarationParser.parse(module, sReader, reader);
      if (declaration != null) return declaration;
    }

    Access access = AccessParser.parse(module, sReader, reader);
    if (access != null) return access;

    Match match = MatchParser.parse(module, sReader, reader);
    if (match != null) return match;

    reader.reset(mark);
    return null;
  }