Thanks for your answers.
I want to avoid the use of 3rd party libs, that's why I didn't implemented any other markup language. I thought about XML instead of YAML, but still, some external libs required.
Finally I implemented a more advanced parser as Krice suggested. I did the next file format, that is pretty good for what I want to achieve:
!/<spell>
<name>
<description>
?/<effect1>
<type>
<arg1>
<arg2>
<argN>
?\<effect>
?/<effectN>
<type>
<arg1>
<arg2>
<argN>
?\<effect>
!\<spell>
The game will search for sections, and from each section, will read the spell name and description, and finally will read each of the effects into that section.
For each effect, it's provided the effect type and the list of arguments. Those arguments will be saved into an array that will be passed to the appropriate function.
Each effect "enclosure" will have the effect type and the list of arguments. Those contents will be read until the "?\" characters are found, so it's not necessary to specify the number of arguments within the spell section.
The same happens for each effect: they will be read until the end of spell mark ( "!\" ) is found, which is the same as Krice probably had in mind.
The only difference with the Krice, that I think is better, is that with this method, it's not necessary to implement any string format procedure or even split strings or similar problems. Each line is exactly the data required, without other chars or strings, which, for programming, is most easy to implement.
Also, the parser as i did it, only searches for "!/", "!\", "?/" and "?\" strings. It don't even read the text after them, so it's possible to add whatever text is needed, from a simple word to a whole phrase.
So, you can write something like this
!/
Fireball
A fiery fireball to burn your enemy
?/
DirectDamage
10
2
?\
!\
or like this
!/FIREBALL : This will be the Fireball Spell, that only deals direct damage to target monster
Fireball
A fiery fireball to burn your enemy
?/EFFECT : The effect is direct damage of 10, and costs 2 mana
DirectDamage
10
2
?\EFFECT
!\FIREBALL
Right now, I don't know is set the spell damage as a spell property, or set the damage as a effect property, so each effect has it's own mana cost and mana increase per spell level.
If someone is interested in the code, I can write it here.
Only needs some polish and code enhancement.