1 %{
2 #include<stdio.h>
3 int i = 0, tab = 0, flag = 0;
4 %}
5 text .*
6 %%
7 {text} {
8 i = 0;
9 while(i < yyleng && yytext[i] == '\t') i++;
10 if(yytext[i] == '}'){
11 tab--;
12 flag = 1;
13 }
14
15 for(int j = 0; j < tab; j++) printf("\t");
16
17 for(; i < yyleng; i++){
18 if(yytext[i] == '{') tab++;
19 if(yytext[i] == '}'){
20 tab--;
21 if(flag){
22 flag = 0;
23 tab++;
24 }
25 }
26 printf("%c", yytext[i]);
27 }
28 }
29 \n {printf("\n");}
30 %%
31 int main(){
32 yylex();
33 return 0;
34 }
IDEgICV7CiAyICAjaW5jbHVkZTxzdGRpby5oPgogMyAgaW50IGkgPSAwLCB0YWIgPSAwLCBmbGFnID0gMDsKIDQgICV9CiA1ICB0ZXh0ICAgIC4qCiA2ICAlJQogNyAge3RleHR9ICB7CiA4ICAgICAgaSA9IDA7CiA5ICAgICAgd2hpbGUoaSA8IHl5bGVuZyAmJiB5eXRleHRbaV0gPT0gJ1x0JykgIGkrKzsKMTAgICAgICBpZih5eXRleHRbaV0gPT0gJ30nKXsKMTEgICAgICAgICAgdGFiLS07CjEyICAgICAgICAgIGZsYWcgPSAxOwoxMyAgICAgIH0KMTQgIAoxNSAgICAgIGZvcihpbnQgaiA9IDA7IGogPCB0YWI7IGorKykgIHByaW50ZigiXHQiKTsKMTYgICAgICAKMTcgICAgICBmb3IoOyBpIDwgeXlsZW5nOyBpKyspewoxOCAgICAgICAgICBpZih5eXRleHRbaV0gPT0gJ3snKSAgICB0YWIrKzsKMTkgICAgICAgICAgaWYoeXl0ZXh0W2ldID09ICd9Jyl7CjIwICAgICAgICAgICAgICB0YWItLTsKMjEgICAgICAgICAgICAgIGlmKGZsYWcpewoyMiAgICAgICAgICAgICAgICAgIGZsYWcgPSAwOwoyMyAgICAgICAgICAgICAgICAgIHRhYisrOwoyNCAgICAgICAgICAgICAgfQoyNSAgICAgICAgICB9CjI2ICAgICAgICAgIHByaW50ZigiJWMiLCB5eXRleHRbaV0pOwoyNyAgICAgIH0KMjggIH0KMjkgIFxuICB7cHJpbnRmKCJcbiIpO30KMzAgICUlCjMxICBpbnQgbWFpbigpewozMiAgICAgIHl5bGV4KCk7CjMzICAgICAgcmV0dXJuIDA7CjM0ICB9
I2luY2x1ZGUmbHQ7aW9zdHJlYW0mZ3Q7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpewpmb3IoaW50IGZoMT0wO2ZoMSZsdDsxMDtmaDErKyl7CmZvcihpbnQgZmgyPTA7ZmgyJmx0O2ZoMTtmaDIrKyl7Cgljb3V0Jmx0OyZsdDsmcXVvdDsqJnF1b3Q7Owp9CmNvdXQmbHQ7Jmx0OyZxdW90O1xuJnF1b3Q7Owp9Cn0K
#include<iostream>
using namespace std;
int main(){
for(int fh1=0;fh1<10;fh1++){
for(int fh2=0;fh2<fh1;fh2++){
cout<<"*";
}
cout<<"\n";
}
}