Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8127825
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 6, 20262026-06-06T07:40:01+00:00 2026-06-06T07:40:01+00:00

I just want to parse the following string up until the END token then

  • 0

I just want to parse the following string up until the END token then ignore the rest:

val input = """
0)
blah1
blah2
blah3
1)
blah4
blah5
END
blah6
"""

Using

object Pars extends RegexParsers {
  def strings: Parser[List[String]] = rep(str) <~ end
  def str:     Parser[String]       = ".*".r
  def end:     Parser[String]       = "END" <~ rep(".*".r)
}

Pars.parseAll(Pars.strings, input)

goes into an infinite loop and an OutOfMemoryError. What am I doing wrong, and how to fix this?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-06T07:40:03+00:00Added an answer on June 6, 2026 at 7:40 am

    Just do not use parseAll. Use parse instead.

    As for the problem you have, you are saying the same thing twice in a few places:

    rep(".*".r)
    

    rep and * both mean “any number of repetitions”. Now, .* matches the empty string, so rep then proceed to match an infinite number of empty strings.

    Here’s how I’d rewrite it:

    object Pars extends RegexParsers {
      def strings: Parser[List[String]] = 
        ( "END" ^^^ Nil 
        | ".+".r ~ strings ^^ { case head ~ tail => head :: tail }
        )
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I just want to add some extra text on top of input posted from
If I have for example the following string: 123;3344;4334;12 and I want these numbers
I want to parse a JSON string which is quite complex. It has somewhat
I want to parse yaml documents like the following: meta-info-1: val1 meta-info-2: val2 ---
I have the following code to parse a String variable called str. NumberFormat formatter
I want to parse the following url: http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=nucleotide&id=224589801 As a result I came up
I need to parse string to DateTime. The string is always in the following
I'm trying to find out a way to match the following test string: token
Is there an existing LISP parser written in C++? I just want the parser,
Just want to ask if i can use Custom Validator in client side without

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.