Author Topic: Parsing of IAR Build Output  (Read 10163 times)

Offline Neoman

  • Single posting newcomer
  • *
  • Posts: 7
Parsing of IAR Build Output
« on: June 27, 2008, 01:54:05 pm »
Hallo,

output of IAR Compiler looks like:

D:\work\Project\TTS_O\quellcode\tts_o\myFile.h(37) : Error[Pe040]: expected an identifier

How to set the regular expression to parse the outputs of IAR Compiler ?
Where to find the description how to customize the regular expression ?

(Settings/Compiler and debugger/other settings/advanced options/output parsing)

Best regards

Neoman

Offline Neoman

  • Single posting newcomer
  • *
  • Posts: 7
Re: Parsing of IAR Build Output
« Reply #1 on: July 01, 2008, 12:10:18 pm »
Please Help,

does exists a syntax documentation for the output parsing ?

Best Regards

Neoman

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5095
Re: Parsing of IAR Build Output
« Reply #2 on: July 01, 2008, 03:01:21 pm »
have a look at the syntax of the out of the box compilers. Or google around on regular expressions : I am sure you will find the solution then.

Offline Neoman

  • Single posting newcomer
  • *
  • Posts: 7
Re: Parsing of IAR Build Output
« Reply #3 on: July 02, 2008, 07:56:01 am »
Thanks for replay,

the output syntax of my compiler is clear for me. This is not the problem.
I'm looking for syntax of code::blocks output parser to parse for errors, warning etc.

How to interpret this expression ?

([][{}() \t#%$~A-Za-z0-9_:+/\.-]+):([0-9]+):[0-9]+:[ \t](.*)

How to change it for my compiler ?

Thanks for help

Neoman

Offline jens

  • Administrator
  • Lives here!
  • *****
  • Posts: 7262
    • Jens' unofficial debian-repository for the Code::Blocks - IDE
Re: Parsing of IAR Build Output
« Reply #4 on: July 02, 2008, 08:49:26 am »
As killerbot says these are regular expressions and there are tons of documentation all over the web.
You can try this one with your error-output:
Code: [Select]
([][{} \t#%$~A-Za-z0-9_:+/\.-\\]+)\(([0-9]+)\) : (.*) with type set to "Error" and "Subexpression indices" set to:
  • Message: 3
  • Additional message 2: 0
  • Additional message 3: 0
  • Filename: 1
  • Line: 2

If you test your message you get the following output:
Code: [Select]
Regular expression analyzed as follows:

Type: Error message
Filename: D:/work/Project/TTS_O/quellcode/tts_o/myFile.h
Line number: 37
Message: Error[Pe040]: expected an identifier

Offline Neoman

  • Single posting newcomer
  • *
  • Posts: 7
Re: Parsing of IAR Build Output
« Reply #5 on: July 02, 2008, 09:27:14 am »
Thanks,

my mistake was the meaning of "regular expression".
You are right, there are a lot of sites about "regular expressions".

I tried your settings, but the Test results are not the same as yours :-( 
(see attached snapshot)

Regards,

Neoman

[attachment deleted by admin]

Offline jens

  • Administrator
  • Lives here!
  • *****
  • Posts: 7262
    • Jens' unofficial debian-repository for the Code::Blocks - IDE
Re: Parsing of IAR Build Output
« Reply #6 on: July 02, 2008, 11:34:08 am »
Did you "play" with some of the regexes above the line you changed ("Linker error") ?

The first line that matches the regex is taken to create output.

Offline Neoman

  • Single posting newcomer
  • *
  • Posts: 7
Re: Parsing of IAR Build Output
« Reply #7 on: July 02, 2008, 02:16:33 pm »
You are right,

now i places a parsing expression "Test" on the first position in the list.
Testing expression works fine, but the output parsing can't catch the errors :-(

For example:

....
D:\work\MOD3000\DLL_N\quellcode\dll_n\dll_n.c(3272) : Error[Pe020]: identifier "dfgdfg" is undefined
....
Total number of errors: 2
Total number of warnings: 1

Process terminated with status 1 (0 minutes, 5 seconds)
0 errors, 0 warnings


Thanks for Your patience

Neoman

[attachment deleted by admin]

Offline Alatar

  • Multiple posting newcomer
  • *
  • Posts: 58
Re: Parsing of IAR Build Output
« Reply #8 on: April 27, 2018, 11:19:53 am »
Hello,

I currently use CB (r11367) with IAR EW ARM 7.3 to build my project and I noticed that even there is IAR support in CB, the message parsing is broken for me.
Seems like the output format was changed.
Here is actual example of the output:

Code: [Select]
      bla;
      ^
"C:\_DATA_\project\main.c",83  Error[Pe020]: identifier "bla" is undefined
Errors: 1

I was able to get it work by modifying regexps as follows:
Code: [Select]
-- ([][{}() \t#%$~[:alnum:]&_:+/\\.-]+),([0-9]+)[ \t]+([Ee]rror\\[[0-9A-Za-z]*\\]:.*)
++ "?([][{}() \t#%$~[:alnum:]&_:+/\.-]+)"?,([0-9]+)[ \t]+([Ee]rror\[[0-9A-Za-z]*\]:.*)

Find attached IAR-related part of CB config, that works for me. I did not test all the regexps in parser but for most common messages they are ok.
« Last Edit: April 27, 2018, 11:22:43 am by Alatar »

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 11053
    • Travis build status
Re: Parsing of IAR Build Output
« Reply #9 on: April 27, 2018, 08:56:54 pm »
Can you post a patch against the svn repo?
The compiler configurations are stored in xml files.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline Alatar

  • Multiple posting newcomer
  • *
  • Posts: 58
Re: Parsing of IAR Build Output
« Reply #10 on: May 11, 2018, 06:13:07 am »
Yes, sure. Here is it.
BTW there are another several things to do to be able to use IAR for ARM CortexM development out of the box:
* remove toolchain directory from linker path list by default
* add assembler compiler

For second point currently I use workaround with redefinition of resources compiler but I think it would be good idea to add separated toolchain executable for assembler compiler.