• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. How to remove parentheses of a string or list

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 145
  • Views 16786
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to remove parentheses of a string or list

MaximSubhash
MaximSubhash over 14 years ago

Hi,

I am looking for an inbuilt SKILL function which removes the parentheses.

For example:

var='(Maxim IC)

When I print this : print(var) result would be -> (Maxim IC). But I want to display as -> Maxim IC

Can anyone please suggest any function which does that.

Regards,

Subhash, Maxim-IC, India

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    How about:

    printf("%s\n" buildString(var))

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • MaximSubhash
    MaximSubhash over 14 years ago

    Hey Thanks Andrew.

    It  works.

    i found that it works if the list starts with the letter and not number.

    For example: var= '(12345)

    buildString(var) will say -> "arg must be symbol or string".

    Have you come across any such function which would just remove parentheses irrespective of the content of list.

    Thanks.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • babji
    babji over 14 years ago

     for( i 0 length(var)-1 printf( "%L " nth( i var) ) )

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    Never loop over lists using a for loop and nth(). That is a very inefficient way of iterating over lists. Lists are sequential, not random access, so nth() has to start at the beginning of the list each time and hop along the list until it reaches the nth entry. So for a list of N items, the number of list cells visited ends up being ~ (N^2)/2 - so for a list with a million entries, it would take roughly 500 billion hops. That's not very efficient.

    For small lists, it's not noticable, but since it grows with the square of N, it soon deteriorates. Instead you would be better off doing:

      foreach(entry var printf("%L " entry))

    which is more concise and is proportional to N (it visits each list cell only once).

    Better still use the buildString() that I mentioned in my previous reply.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Austin CAD Guy
    Austin CAD Guy over 14 years ago

     If the list contains something more than strings or symbols, you cannot use buildString without getting an error. Here is a quick way to do it that eliminates quotes around strings as well.

    foreach( entry var
        if(symstrp(entry) then
           printf( "%s" entry )
        else
          printf( "%L" entry )
    )

     This will only work with single level lists, you could make a function that calls itself (recursive function) to process hierarchical lists.

    Ted

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • MaximSubhash
    MaximSubhash over 14 years ago

    Thank you very much Ted and Andrew.

    I will learn to write an recursive function and will post it here.

    Regards,

    Subhash

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information