Advertisement
NarasMG

C-to-अजगर:

Sep 23rd, 2021
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 125.54 KB | None | 0 0
  1. C statement: if(tvibptr->stype =='1'){ /* blah
  2. bleh */;
  3. yes=findverb;}
  4. /* foo */
  5.  
  6. अजगर-वाक्य:
  7. यदि tvibptr.stype == '1':
  8. #< भागः>{
  9.  
  10. '''blah
  11. bleh'''
  12. yes = findverb#<\ भागः>
  13.  
  14. '''foo'''
  15. C statement: int yes=0,success=1;char t='ty'
  16. अजगर-वाक्य:
  17. yes = 0 # प्रकारः पूर्णांकः
  18. success = 1 # प्रकारः पूर्णांकः
  19.  
  20. t = 'ty' # प्रकारः अक्षरंमाला
  21.  
  22. C statement: unsigned char list[]={'पूर्वाण्ह', 'अपराण्ह', 'दिन', 'रात्रि', 'अहोरात्र', 'सप्ताह', 'पक्ष', 'मास', 'संवत्सर'};
  23. अजगर-वाक्य:
  24. list = ['पूर्वाण्ह', 'अपराण्ह', 'दिन', 'रात्रि', 'अहोरात्र', 'सप्ताह', 'पक्ष', 'मास', 'संवत्सर'] # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  25.  
  26. C statement: choice = (3 + 4 * 8 % 3) / 7;
  27. a=b; type[i]=words[3][0]; type[a][b]=words[c][d][e]; // rest of line a comment
  28. अजगर-वाक्य:
  29. choice = (3 + 4 * 8 % 3) / 7
  30. a = b
  31. type[i] = words[3][0]
  32. type[a][b] = words[c][d][e]
  33. # rest of line a comment
  34. C statement: int gcd(unsigned char u, int v)
  35. { if(v==2) return u - v * w;}
  36. अजगर-वाक्य:
  37. निरूप् gcd(u अक्षरंमाला, v पूर्णांकः) -> पूर्णांकः: #< भागः>{
  38. यदि v == 2: प्रतिदा u
  39. -v * w#<\ भागः>
  40. C statement: int gcd(int u, int v){ if(v==k) return u * v/(w+r); else return gcd(v, v + (u-v)/(v-u));}
  41. अजगर-वाक्य:
  42. निरूप् gcd(u पूर्णांकः, v पूर्णांकः) -> पूर्णांकः: #< भागः>{
  43.  
  44. यदि v == k: प्रतिदा u * v / (w + r)
  45. अन्यथा : प्रतिदा gcd(v, v + (u - v) / (v - u))#<\ भागः>
  46. C statement: int choice(char type,unsigned char *word,unsigned char voice[],int pos,VIBAK *tvibptr,FILE *afp,long fl,unsigned char *VerbMean)
  47. अजगर-वाक्य:
  48. निरूप् choice(type अक्षरंमाला, word अक्षरंमाला, voice अनुक्रमणिका[ अक्षरंमाला], pos पूर्णांकः, tvibptr VIBAK, afp लेख्यं, fl दशक, VerbMean अक्षरंमाला) -> पूर्णांकः:
  49. C statement: int choice(int type, unsigned char *word){if(stype!='kartari') {choice = (3 + 4 * 8) / 7; blah = gcd->yt - rt->uy} else choice = rt->uy;}
  50. अजगर-वाक्य:
  51. निरूप् choice(type पूर्णांकः, word अक्षरंमाला) -> पूर्णांकः: #< भागः>{
  52.  
  53. यदि stype != 'kartari':#< भागः>{
  54. choice = (3 + 4 * 8) / 7
  55. blah = gcd.yt - rt.uy#<\ भागः>
  56. अन्यथा :choice = rt.uy#<\ भागः>
  57. C statement: int choice(char type,unsigned char *word,unsigned char voice[],int pos,VIBAK *tvibptr,FILE *afp,long fl,unsigned char *VerbMean){int yes=0,success=1;if((tvibptr->stype =='1' && strcmp(tvibptr->specf,'dative')==0 ) || tvibptr->stype =='5' || tvibptr->stype=='2'|| tvibptr->stype=='4') {/* Check for case where there is only a single meaning for चतुर्ती विभक्ति */yes=findverb(voice,tvibptr->sword,tvibptr,afp,fl,VerbMean);}return success;}
  58. अजगर-वाक्य:
  59. निरूप् choice(type अक्षरंमाला, word अक्षरंमाला, voice अनुक्रमणिका[ अक्षरंमाला], pos पूर्णांकः, tvibptr VIBAK, afp लेख्यं, fl दशक, VerbMean अक्षरंमाला) -> पूर्णांकः: #< भागः>{
  60. yes = 0 # प्रकारः पूर्णांकः
  61. success = 1 # प्रकारः पूर्णांकः
  62.  
  63. यदि (tvibptr.stype == '1' च tvibptr.specf == 'dative') वा tvibptr.stype == '5' वा tvibptr.stype == '2' वा tvibptr.stype == '4':
  64. #< भागः>{
  65.  
  66. '''Check for case where there is only a single meaning for चतुर्ती विभक्ति'''
  67. yes = findverb(voice, tvibptr.sword, tvibptr, afp, fl, VerbMean)#<\ भागः>
  68. प्रतिदा success#<\ भागः>
  69. C statement: int choice(char type,unsigned char *word,unsigned char voice[],int pos,VIBAK *tvibptr,FILE *afp,long fl,unsigned char *VerbMean){while(1){if((tvibptr->stype =='1' && strcmp(tvibptr->specf,'dative')==0 ) || tvibptr->stype =='5' || tvibptr->stype=='2'|| tvibptr->stype=='4'){/* Check for case where there is only a single meaning for चतुर्ती विभक्ति */yes=findverb(voice,tvibptr->sword,tvibptr,afp,fl,VerbMean);if(tvibptr->stype=='2' && tvibptr->matnoun !=1 ){switch(tvibptr->spos){case 0:if(tvibptr->semlinga==0)strcat(tvibptr->arthaword,'सा ');if(tvibptr->semlinga==1)strcat(tvibptr->arthaword,'सः ');if(tvibptr->semlinga==2)strcat(tvibptr->arthaword,'त्त ');break;case 1:strcat(tvibptr->arthaword,'तन्निष्ठकर्मतानिरूपक ');break;case 2:strcat(tvibptr->arthaword,'निष्ठकरणतानिरूपक ');break;case 3:strcat(tvibptr->arthaword,'निष्ठसम्प्रदानतानिरूपक ');break;case 4:strcat(tvibptr->arthaword,'निष्ठापादानतानिरूपक ');break;case 5:strcat(tvibptr->arthaword,'निष्ठाधिकरणतानिरूपक ');break;}}if(tvibptr->stype == '2' || tvibptr->stype =='4' || tvibptr->stype=='5')success= 0;}if(tvibptr->stype =='1' && (strcmpi(tvibptr->specf,'object')==0)){ /* Check for case where there is only a single meaning for द्वितीया विभक्ति */yes=findverb(voice,tvibptr->sword,tvibptr,afp,fl,VerbMean);}/* If not in above case following steps lead to menu display for selection based on type of vibhakti */ if(tvibptr->stype =='1') { switch(tvibptr->spos) {case 0:if(strcmpi(voice,'kartari') ==0)strcpy(tvibptr->arthaword,tvibptr->sword);if(strcmpi(voice,'karmani') ==0){strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'निष्ठकर्तृतानिरूपक ');}break;case 1:if(strcmpi(voice,'kartari') ==0){strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'निष्ठकर्मतानिरूपक ');}if(strcmpi(voice,'karmani') ==0){strcpy(tvibptr->arthaword,tvibptr->sword);}break; case 2:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'निष्ठकरणतानिरूपक ');break; case 3:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'निष्ठसम्प्रदानतानिरूपक ');break; case 4:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'निष्ठापादानतानिरूपक ');break; case 6:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'सम्बन्धि ');break; case 5:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'निष्ठाधिकरणतानिरूपक ');break;} } if (tvibptr->next != NULL)tvibptr=tvibptr->next; else break;}return success;}
  70. अजगर-वाक्य:
  71. निरूप् choice(type अक्षरंमाला, word अक्षरंमाला, voice अनुक्रमणिका[ अक्षरंमाला], pos पूर्णांकः, tvibptr VIBAK, afp लेख्यं, fl दशक, VerbMean अक्षरंमाला) -> पूर्णांकः: #< भागः>{
  72. यदा(1):
  73. #< भागः>{
  74. यदि (tvibptr.stype == '1' च tvibptr.specf == 'dative') वा tvibptr.stype == '5' वा tvibptr.stype == '2' वा tvibptr.stype == '4':
  75. #< भागः>{
  76.  
  77. '''Check for case where there is only a single meaning for चतुर्ती विभक्ति'''
  78. yes = findverb(voice, tvibptr.sword, tvibptr, afp, fl, VerbMean)
  79. यदि tvibptr.stype == '2' च tvibptr.matnoun != 1:
  80. #< भागः>{
  81. यदि tvibptr.spos == 0:
  82. #< विकल्पः >
  83. यदि tvibptr.semlinga == 0:
  84. tvibptr.arthaword = 'सा '
  85. यदि tvibptr.semlinga == 1: tvibptr.arthaword = 'सः '
  86. यदि tvibptr.semlinga == 2: tvibptr.arthaword = 'त्त '
  87. निर्गमः#<\ विकल्पः >
  88. अन्यथा_यदिtvibptr.spos == 1:
  89. #< विकल्पः >
  90. tvibptr.arthaword = 'तन्निष्ठकर्मतानिरूपक '
  91. निर्गमः#<\ विकल्पः >
  92. अन्यथा_यदिtvibptr.spos == 2:
  93. #< विकल्पः >
  94. tvibptr.arthaword = 'निष्ठकरणतानिरूपक '
  95. निर्गमः#<\ विकल्पः >
  96. अन्यथा_यदिtvibptr.spos == 3:
  97. #< विकल्पः >
  98. tvibptr.arthaword = 'निष्ठसम्प्रदानतानिरूपक '
  99. निर्गमः#<\ विकल्पः >
  100. अन्यथा_यदिtvibptr.spos == 4:
  101. #< विकल्पः >
  102. tvibptr.arthaword = 'निष्ठापादानतानिरूपक '
  103. निर्गमः#<\ विकल्पः >
  104. अन्यथा_यदिtvibptr.spos == 5:
  105. #< विकल्पः >
  106. tvibptr.arthaword = 'निष्ठाधिकरणतानिरूपक '
  107. निर्गमः#<\ विकल्पः >#<\ भागः>
  108. यदि tvibptr.stype == '2' वा tvibptr.stype == '4' वा tvibptr.stype == '5': success = 0#<\ भागः>
  109. यदि tvibptr.stype == '1' च (tvibptr.specf == 'object'):
  110. #< भागः>{
  111.  
  112. '''Check for case where there is only a single meaning for द्वितीया विभक्ति'''
  113. yes = findverb(voice, tvibptr.sword, tvibptr, afp, fl, VerbMean)#<\ भागः>
  114.  
  115. '''If not in above case following steps lead to menu display for selection based on type of vibhakti'''
  116. यदि tvibptr.stype == '1':
  117. #< भागः>{
  118. यदि tvibptr.spos == 0:
  119. #< विकल्पः >
  120. यदि voice == 'kartari':
  121. tvibptr.arthaword = tvibptr.sword
  122. यदि voice == 'karmani':
  123. #< भागः>{
  124. tvibptr.arthaword = tvibptr.bword
  125. tvibptr.arthaword = 'निष्ठकर्तृतानिरूपक '#<\ भागः>
  126. निर्गमः#<\ विकल्पः >
  127. अन्यथा_यदिtvibptr.spos == 1:
  128. #< विकल्पः >
  129. यदि voice == 'kartari':
  130. #< भागः>{
  131. tvibptr.arthaword = tvibptr.bword
  132. tvibptr.arthaword = 'निष्ठकर्मतानिरूपक '#<\ भागः>
  133. यदि voice == 'karmani':
  134. #< भागः>{
  135. tvibptr.arthaword = tvibptr.sword#<\ भागः>
  136. निर्गमः#<\ विकल्पः >
  137. अन्यथा_यदिtvibptr.spos == 2:
  138. #< विकल्पः >
  139. tvibptr.arthaword = tvibptr.bword
  140. tvibptr.arthaword = 'निष्ठकरणतानिरूपक '
  141. निर्गमः#<\ विकल्पः >
  142. अन्यथा_यदिtvibptr.spos == 3:
  143. #< विकल्पः >
  144. tvibptr.arthaword = tvibptr.bword
  145. tvibptr.arthaword = 'निष्ठसम्प्रदानतानिरूपक '
  146. निर्गमः#<\ विकल्पः >
  147. अन्यथा_यदिtvibptr.spos == 4:
  148. #< विकल्पः >
  149. tvibptr.arthaword = tvibptr.bword
  150. tvibptr.arthaword = 'निष्ठापादानतानिरूपक '
  151. निर्गमः#<\ विकल्पः >
  152. अन्यथा_यदिtvibptr.spos == 6:
  153. #< विकल्पः >
  154. tvibptr.arthaword = tvibptr.bword
  155. tvibptr.arthaword = 'सम्बन्धि '
  156. निर्गमः#<\ विकल्पः >
  157. अन्यथा_यदिtvibptr.spos == 5:
  158. #< विकल्पः >
  159. tvibptr.arthaword = tvibptr.bword
  160. tvibptr.arthaword = 'निष्ठाधिकरणतानिरूपक '
  161. निर्गमः#<\ विकल्पः >#<\ भागः>
  162.  
  163. iter_tvibptr = iter(tvibptr) # move this outside the while block
  164. try:
  165. next(iter_tvibptr)
  166. except StopIterationException as e:
  167. break;#<\ भागः>
  168. प्रतिदा success#<\ भागः>
  169. C statement: choice = strcmpi(voice,"karmani")==0
  170. अजगर-वाक्य:
  171. choice = voice == "karmani"
  172. C statement: if(a==0 && a == b || strcmp(temp->Type,"Noun")==0) choice = rt->uy;
  173. अजगर-वाक्य:
  174. यदि a == 0 च a == b वा temp.Type == "Noun":
  175. choice = rt.uy
  176. C statement: if(a==0 && a == b || strcmp(temp->Type,"Noun")==0) choice = rt->uy;if(strcmp(temp->Type,"Noun")==0 && strcmp(temp->specf,"Subject")==0 && temp->subinsen==0){Assignlingavib(drecord);break;}if(temp->next != NULL)temp=temp->next;else break;
  177. अजगर-वाक्य:
  178. यदि a == 0 च a == b वा temp.Type == "Noun":
  179. choice = rt.uy
  180. यदि temp.Type == "Noun" च temp.specf == "Subject" च temp.subinsen == 0:
  181. #< भागः>{
  182. Assignlingavib(drecord)
  183. निर्गमः#<\ भागः>
  184.  
  185. iter_temp = iter(temp) # move this outside the while block
  186. try:
  187. next(iter_temp)
  188. except StopIterationException as e:
  189. break;
  190. C statement: if(a==b){Assignlingavib(drecord);break};
  191. else temp=temp->next;
  192. अजगर-वाक्य:
  193.  
  194. यदि a == b:#< भागः>{
  195. Assignlingavib
  196. (drecord)
  197. निर्गमः#<\ भागः>
  198. अन्यथा :
  199. temp = temp.next
  200. C statement: if(strcmp(word,list1[i])==0) {if(linga==0) strcpy(message,"समवेता"); if(linga==1) strcpy(message,"समवेतः");if(linga==2) strcpy(message,"समवेतं");strcpy(vword,tvibptr->bword); strcat(vword,message); strcpy(tvibptr->arthaword,vword);return 1; }
  201. अजगर-वाक्य:
  202. यदि word == list1[i]: #< भागः>{
  203. यदि linga == 0:
  204. message = "समवेता"
  205. यदि linga == 1: message = "समवेतः"
  206. यदि linga == 2: message = "समवेतं"
  207. vword = tvibptr.bword
  208. vword = message
  209. tvibptr.arthaword = vword
  210. प्रतिदा 1#<\ भागः>
  211. C statement: if(strcmpi(voice,"karmani") ==0) { strcpy(tvibptr->arthaword,tvibptr->bword); strcat(tvibptr->arthaword,"निष्ठकर्तृतानिरूपक ");if(strcmpi(voice,"karmani") ==0) strcpy(tvibptr->arthaword,tvibptr->bword);}
  212. अजगर-वाक्य:
  213. यदि voice == "karmani": #< भागः>{
  214. tvibptr.arthaword = tvibptr.bword
  215. tvibptr.arthaword = "निष्ठकर्तृतानिरूपक "
  216. यदि voice == "karmani": tvibptr.arthaword = tvibptr.bword#<\ भागः>
  217. C statement: switch(spos) { case 0: choice = 3; bb=cc; break; case "1": i = 1; break; default: j = "ikh"}
  218. अजगर-वाक्य:
  219. यदि spos == 0:
  220. #< विकल्पः >
  221. choice = 3
  222. bb = cc
  223. निर्गमः#<\ विकल्पः >
  224. अन्यथा_यदिspos == "1":
  225. #< विकल्पः >
  226. i = 1
  227. निर्गमः#<\ विकल्पः >
  228. अन्यथा :
  229. #< विकल्पः >
  230. j = "ikh"#<\ विकल्पः >
  231. C statement: switch(spos) { case 0: case "1": i = 1; break; case 3: kk == mm; gg = 99; default: j = "ikh"}
  232. अजगर-वाक्य:
  233. यदि spos अंतरे [0, "1"]:
  234. #< विकल्पः >
  235. i = 1
  236. निर्गमः#<\ विकल्पः >
  237. अन्यथा_यदिspos == 3:
  238. #< विकल्पः >
  239. kk == mm
  240. gg = 99#<\ विकल्पः >
  241. अन्यथा :
  242. #< विकल्पः >
  243. j = "ikh"#<\ विकल्पः >
  244. C statement: switch(tvibptr->spos) {case 0:if(strcmpi(voice,"kartari") ==0) strcpy(tvibptr->arthaword,tvibptr->sword);if(strcmpi(voice,"karmani") ==0) strcpy(tvibptr->arthaword,tvibptr->sword);case "1": if(strcmpi(voice,"karmani") ==0)strcpy(tvibptr->arthaword,tvibptr->sword); break; case 3: j = "ikh"}
  245. अजगर-वाक्य:
  246. यदि tvibptr.spos == 0:
  247. #< विकल्पः >
  248. यदि voice == "kartari": tvibptr.arthaword = tvibptr.sword
  249. यदि voice == "karmani": tvibptr.arthaword = tvibptr.sword#<\ विकल्पः >
  250. अन्यथा_यदिtvibptr.spos == "1":
  251. #< विकल्पः >
  252. यदि voice == "karmani": tvibptr.arthaword = tvibptr.sword
  253. निर्गमः#<\ विकल्पः >
  254. अन्यथा_यदिtvibptr.spos == 3:
  255. #< विकल्पः >
  256. j = "ikh"#<\ विकल्पः >
  257. C statement: switch(tvibptr->spos) {case 0:i = 1; break; case "1": choice = 3; break; case 3: j = "ikh"}
  258. अजगर-वाक्य:
  259. यदि tvibptr.spos == 0:
  260. #< विकल्पः >
  261. i = 1
  262. निर्गमः#<\ विकल्पः >
  263. अन्यथा_यदिtvibptr.spos == "1":
  264. #< विकल्पः >
  265. choice = 3
  266. निर्गमः#<\ विकल्पः >
  267. अन्यथा_यदिtvibptr.spos == 3:
  268. #< विकल्पः >
  269. j = "ikh"#<\ विकल्पः >
  270. C statement: switch(tvibptr->spos) {case 0:if(strcmpi(voice,"kartari") ==0)strcpy(tvibptr->arthaword,tvibptr->sword);if(strcmpi(voice,"karmani") ==0){strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,"निष्ठकर्तृतानिरूपक ");}break;case 1:if(strcmpi(voice,"kartari") ==0){strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,"निष्ठकर्मतानिरूपक ");}if(strcmpi(voice,"karmani") ==0){strcpy(tvibptr->arthaword,tvibptr->sword);}break; case 2:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,"निष्ठकरणतानिरूपक ");break; case 3:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,"निष्ठसम्प्रदानतानिरूपक ");break; case 4:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,"निष्ठापादानतानिरूपक ");break; case 6:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,"सम्बन्धि ");break; case 5:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,"निष्ठाधिकरणतानिरूपक ");break;}
  271. अजगर-वाक्य:
  272. यदि tvibptr.spos == 0:
  273. #< विकल्पः >
  274. यदि voice == "kartari": tvibptr.arthaword = tvibptr.sword
  275. यदि voice == "karmani":
  276. #< भागः>{
  277. tvibptr.arthaword = tvibptr.bword
  278. tvibptr.arthaword = "निष्ठकर्तृतानिरूपक "#<\ भागः>
  279. निर्गमः#<\ विकल्पः >
  280. अन्यथा_यदिtvibptr.spos == 1:
  281. #< विकल्पः >
  282. यदि voice == "kartari":
  283. #< भागः>{
  284. tvibptr.arthaword = tvibptr.bword
  285. tvibptr.arthaword = "निष्ठकर्मतानिरूपक "#<\ भागः>
  286. यदि voice == "karmani":
  287. #< भागः>{
  288. tvibptr.arthaword = tvibptr.sword#<\ भागः>
  289. निर्गमः#<\ विकल्पः >
  290. अन्यथा_यदिtvibptr.spos == 2:
  291. #< विकल्पः >
  292. tvibptr.arthaword = tvibptr.bword
  293. tvibptr.arthaword = "निष्ठकरणतानिरूपक "
  294. निर्गमः#<\ विकल्पः >
  295. अन्यथा_यदिtvibptr.spos == 3:
  296. #< विकल्पः >
  297. tvibptr.arthaword = tvibptr.bword
  298. tvibptr.arthaword = "निष्ठसम्प्रदानतानिरूपक "
  299. निर्गमः#<\ विकल्पः >
  300. अन्यथा_यदिtvibptr.spos == 4:
  301. #< विकल्पः >
  302. tvibptr.arthaword = tvibptr.bword
  303. tvibptr.arthaword = "निष्ठापादानतानिरूपक "
  304. निर्गमः#<\ विकल्पः >
  305. अन्यथा_यदिtvibptr.spos == 6:
  306. #< विकल्पः >
  307. tvibptr.arthaword = tvibptr.bword
  308. tvibptr.arthaword = "सम्बन्धि "
  309. निर्गमः#<\ विकल्पः >
  310. अन्यथा_यदिtvibptr.spos == 5:
  311. #< विकल्पः >
  312. tvibptr.arthaword = tvibptr.bword
  313. tvibptr.arthaword = "निष्ठाधिकरणतानिरूपक "
  314. निर्गमः#<\ विकल्पः >
  315. C statement: while(1){if(strcmp(temp->Type,"Noun")==0 && strcmp(temp->specf,"Subject")==0 && temp->subinsen==0){Assignlingavib(drecord);break;}if(temp->next != NULL)temp=temp->next;else break;}
  316. अजगर-वाक्य:
  317. यदा(1):
  318. #< भागः>{
  319. यदि temp.Type == "Noun" च temp.specf == "Subject" च temp.subinsen == 0: #< भागः>{
  320. Assignlingavib(drecord)
  321. निर्गमः#<\ भागः>
  322.  
  323. iter_temp = iter(temp) # move this outside the while block
  324. try:
  325. next(iter_temp)
  326. except StopIterationException as e:
  327. break;#<\ भागः>
  328. C statement: if((tvibptr->stype =='1' && strcmp(tvibptr->specf,'dative')==0 ) || tvibptr->stype =='5' || tvibptr->stype=='2'|| tvibptr->stype=='4') {/* Check for case where there is only a single meaning for चतुर्ती विभक्ति */yes=findverb(voice,tvibptr->sword,tvibptr,afp,fl,VerbMean);}
  329. अजगर-वाक्य:
  330. यदि (tvibptr.stype == '1' च tvibptr.specf == 'dative') वा tvibptr.stype == '5' वा tvibptr.stype == '2' वा tvibptr.stype == '4': #< भागः>{
  331.  
  332. '''Check for case where there is only a single meaning for चतुर्ती विभक्ति'''
  333. yes = findverb(voice, tvibptr.sword, tvibptr, afp, fl, VerbMean)#<\ भागः>
  334. C statement: while(1) { if((tvibptr->stype =='1' && strcmp(tvibptr->specf,'dative')==0 ) || tvibptr->stype =='5' || tvibptr->stype=='2'|| tvibptr->stype=='4') { /* Check for case where there is only a single meaning for चतुर्ती विभक्ति */ yes=findverb(voice,tvibptr->sword,tvibptr,afp,fl,VerbMean); if(tvibptr->stype=='2' && tvibptr->matnoun !=1 ) { switch(tvibptr->spos) { case 0: if(tvibptr->semlinga==0) strcat(tvibptr->arthaword,'सा '); if(tvibptr->semlinga==1) strcat(tvibptr->arthaword,'सः '); if(tvibptr->semlinga==2) strcat(tvibptr->arthaword,'त्त '); break; case 1: strcat(tvibptr->arthaword,'तन्निष्ठकर्मतानिरूपक '); break; case 2: strcat(tvibptr->arthaword,'निष्ठकरणतानिरूपक '); break; case 3: strcat(tvibptr->arthaword,'निष्ठसम्प्रदानतानिरूपक '); break; case 4: strcat(tvibptr->arthaword,'निष्ठापादानतानिरूपक '); break; case 5: strcat(tvibptr->arthaword,'निष्ठाधिकरणतानिरूपक '); break; } } if(tvibptr->stype == '2' || tvibptr->stype =='4' || tvibptr->stype=='5') success= 0; } if(tvibptr->stype =='1' && (strcmpi(tvibptr->specf,'object')==0)) { /* Check for case where there is only a single meaning for द्वितीया विभक्ति */ yes=findverb(voice,tvibptr->sword,tvibptr,afp,fl,VerbMean); }}
  335. अजगर-वाक्य:
  336. यदा(1):
  337. #< भागः>{
  338. यदि (tvibptr.stype == '1' च tvibptr.specf == 'dative') वा tvibptr.stype == '5' वा tvibptr.stype == '2' वा tvibptr.stype == '4': #< भागः>{
  339.  
  340. '''Check for case where there is only a single meaning for चतुर्ती विभक्ति'''
  341. yes = findverb(voice, tvibptr.sword, tvibptr, afp, fl, VerbMean)
  342. यदि tvibptr.stype == '2' च tvibptr.matnoun != 1:
  343. #< भागः>{
  344. यदि tvibptr.spos == 0:
  345. #< विकल्पः >
  346. यदि tvibptr.semlinga == 0: tvibptr.arthaword = 'सा '
  347. यदि tvibptr.semlinga == 1: tvibptr.arthaword = 'सः '
  348. यदि tvibptr.semlinga == 2: tvibptr.arthaword = 'त्त '
  349. निर्गमः#<\ विकल्पः >
  350. अन्यथा_यदिtvibptr.spos == 1:
  351. #< विकल्पः >
  352. tvibptr.arthaword = 'तन्निष्ठकर्मतानिरूपक '
  353. निर्गमः#<\ विकल्पः >
  354. अन्यथा_यदिtvibptr.spos == 2:
  355. #< विकल्पः >
  356. tvibptr.arthaword = 'निष्ठकरणतानिरूपक '
  357. निर्गमः#<\ विकल्पः >
  358. अन्यथा_यदिtvibptr.spos == 3:
  359. #< विकल्पः >
  360. tvibptr.arthaword = 'निष्ठसम्प्रदानतानिरूपक '
  361. निर्गमः#<\ विकल्पः >
  362. अन्यथा_यदिtvibptr.spos == 4:
  363. #< विकल्पः >
  364. tvibptr.arthaword = 'निष्ठापादानतानिरूपक '
  365. निर्गमः#<\ विकल्पः >
  366. अन्यथा_यदिtvibptr.spos == 5:
  367. #< विकल्पः >
  368. tvibptr.arthaword = 'निष्ठाधिकरणतानिरूपक '
  369. निर्गमः#<\ विकल्पः >#<\ भागः>
  370. यदि tvibptr.stype == '2' वा tvibptr.stype == '4' वा tvibptr.stype == '5': success = 0#<\ भागः>
  371. यदि tvibptr.stype == '1' च (tvibptr.specf == 'object'): #< भागः>{
  372.  
  373. '''Check for case where there is only a single meaning for द्वितीया विभक्ति'''
  374. yes = findverb(voice, tvibptr.sword, tvibptr, afp, fl, VerbMean)#<\ भागः>#<\ भागः>
  375. C statement: while(1){if((tvibptr->stype =='1' && strcmp(tvibptr->specf,'dative')==0 ) || tvibptr->stype =='5' || tvibptr->stype=='2'|| tvibptr->stype=='4'){/* Check for case where there is only a single meaning for चतुर्ती विभक्ति */yes=findverb(voice,tvibptr->sword,tvibptr,afp,fl,VerbMean);if(tvibptr->stype=='2' && tvibptr->matnoun !=1 ){switch(tvibptr->spos){case 0:if(tvibptr->semlinga==0)strcat(tvibptr->arthaword,'सा ');if(tvibptr->semlinga==1)strcat(tvibptr->arthaword,'सः ');if(tvibptr->semlinga==2)strcat(tvibptr->arthaword,'त्त ');break;case 1:strcat(tvibptr->arthaword,'तन्निष्ठकर्मतानिरूपक ');break;case 2:strcat(tvibptr->arthaword,'निष्ठकरणतानिरूपक ');break;case 3:strcat(tvibptr->arthaword,'निष्ठसम्प्रदानतानिरूपक ');break;case 4:strcat(tvibptr->arthaword,'निष्ठापादानतानिरूपक ');break;case 5:strcat(tvibptr->arthaword,'निष्ठाधिकरणतानिरूपक ');break;}}if(tvibptr->stype == '2' || tvibptr->stype =='4' || tvibptr->stype=='5')success= 0;}if(tvibptr->stype =='1' && (strcmpi(tvibptr->specf,'object')==0)){ /* Check for case where there is only a single meaning for द्वितीया विभक्ति */yes=findverb(voice,tvibptr->sword,tvibptr,afp,fl,VerbMean);}/* If not in above case following steps lead to menu display for selection based on type of vibhakti */ if(tvibptr->stype =='1') { switch(tvibptr->spos) {case 0:if(strcmpi(voice,'kartari') ==0)strcpy(tvibptr->arthaword,tvibptr->sword);if(strcmpi(voice,'karmani') ==0){strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'निष्ठकर्तृतानिरूपक ');}break;case 1:if(strcmpi(voice,'kartari') ==0){strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'निष्ठकर्मतानिरूपक ');}if(strcmpi(voice,'karmani') ==0){strcpy(tvibptr->arthaword,tvibptr->sword);}break; case 2:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'निष्ठकरणतानिरूपक ');break; case 3:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'निष्ठसम्प्रदानतानिरूपक ');break; case 4:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'निष्ठापादानतानिरूपक ');break; case 6:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'सम्बन्धि ');break; case 5:strcpy(tvibptr->arthaword,tvibptr->bword);strcat(tvibptr->arthaword,'निष्ठाधिकरणतानिरूपक ');break;} } if (tvibptr->next != NULL)tvibptr=tvibptr->next; else break;}
  376. अजगर-वाक्य:
  377. यदा(1):
  378. #< भागः>{
  379. यदि (tvibptr.stype == '1' च tvibptr.specf == 'dative') वा tvibptr.stype == '5' वा tvibptr.stype == '2' वा tvibptr.stype == '4': #< भागः>{
  380.  
  381. '''Check for case where there is only a single meaning for चतुर्ती विभक्ति'''
  382. yes = findverb(voice, tvibptr.sword, tvibptr, afp, fl, VerbMean)
  383. यदि tvibptr.stype == '2' च tvibptr.matnoun != 1:
  384. #< भागः>{
  385. यदि tvibptr.spos == 0:
  386. #< विकल्पः >
  387. यदि tvibptr.semlinga == 0: tvibptr.arthaword = 'सा '
  388. यदि tvibptr.semlinga == 1: tvibptr.arthaword = 'सः '
  389. यदि tvibptr.semlinga == 2: tvibptr.arthaword = 'त्त '
  390. निर्गमः#<\ विकल्पः >
  391. अन्यथा_यदिtvibptr.spos == 1:
  392. #< विकल्पः >
  393. tvibptr.arthaword = 'तन्निष्ठकर्मतानिरूपक '
  394. निर्गमः#<\ विकल्पः >
  395. अन्यथा_यदिtvibptr.spos == 2:
  396. #< विकल्पः >
  397. tvibptr.arthaword = 'निष्ठकरणतानिरूपक '
  398. निर्गमः#<\ विकल्पः >
  399. अन्यथा_यदिtvibptr.spos == 3:
  400. #< विकल्पः >
  401. tvibptr.arthaword = 'निष्ठसम्प्रदानतानिरूपक '
  402. निर्गमः#<\ विकल्पः >
  403. अन्यथा_यदिtvibptr.spos == 4:
  404. #< विकल्पः >
  405. tvibptr.arthaword = 'निष्ठापादानतानिरूपक '
  406. निर्गमः#<\ विकल्पः >
  407. अन्यथा_यदिtvibptr.spos == 5:
  408. #< विकल्पः >
  409. tvibptr.arthaword = 'निष्ठाधिकरणतानिरूपक '
  410. निर्गमः#<\ विकल्पः >#<\ भागः>
  411. यदि tvibptr.stype == '2' वा tvibptr.stype == '4' वा tvibptr.stype == '5': success = 0#<\ भागः>
  412. यदि tvibptr.stype == '1' च (tvibptr.specf == 'object'):
  413. #< भागः>{
  414.  
  415. '''Check for case where there is only a single meaning for द्वितीया विभक्ति'''
  416. yes = findverb(voice, tvibptr.sword, tvibptr, afp, fl, VerbMean)#<\ भागः>
  417.  
  418. '''If not in above case following steps lead to menu display for selection based on type of vibhakti'''
  419. यदि tvibptr.stype == '1':
  420. #< भागः>{
  421. यदि tvibptr.spos == 0:
  422. #< विकल्पः >
  423. यदि voice == 'kartari':
  424. tvibptr.arthaword = tvibptr.sword
  425. यदि voice == 'karmani':
  426. #< भागः>{
  427. tvibptr.arthaword = tvibptr.bword
  428. tvibptr.arthaword = 'निष्ठकर्तृतानिरूपक '#<\ भागः>
  429. निर्गमः#<\ विकल्पः >
  430. अन्यथा_यदिtvibptr.spos == 1:
  431. #< विकल्पः >
  432. यदि voice == 'kartari':
  433. #< भागः>{
  434. tvibptr.arthaword = tvibptr.bword
  435. tvibptr.arthaword = 'निष्ठकर्मतानिरूपक '#<\ भागः>
  436. यदि voice == 'karmani':
  437. #< भागः>{
  438. tvibptr.arthaword = tvibptr.sword#<\ भागः>
  439. निर्गमः#<\ विकल्पः >
  440. अन्यथा_यदिtvibptr.spos == 2:
  441. #< विकल्पः >
  442. tvibptr.arthaword = tvibptr.bword
  443. tvibptr.arthaword = 'निष्ठकरणतानिरूपक '
  444. निर्गमः#<\ विकल्पः >
  445. अन्यथा_यदिtvibptr.spos == 3:
  446. #< विकल्पः >
  447. tvibptr.arthaword = tvibptr.bword
  448. tvibptr.arthaword = 'निष्ठसम्प्रदानतानिरूपक '
  449. निर्गमः#<\ विकल्पः >
  450. अन्यथा_यदिtvibptr.spos == 4:
  451. #< विकल्पः >
  452. tvibptr.arthaword = tvibptr.bword
  453. tvibptr.arthaword = 'निष्ठापादानतानिरूपक '
  454. निर्गमः#<\ विकल्पः >
  455. अन्यथा_यदिtvibptr.spos == 6:
  456. #< विकल्पः >
  457. tvibptr.arthaword = tvibptr.bword
  458. tvibptr.arthaword = 'सम्बन्धि '
  459. निर्गमः#<\ विकल्पः >
  460. अन्यथा_यदिtvibptr.spos == 5:
  461. #< विकल्पः >
  462. tvibptr.arthaword = tvibptr.bword
  463. tvibptr.arthaword = 'निष्ठाधिकरणतानिरूपक '
  464. निर्गमः#<\ विकल्पः >#<\ भागः>
  465.  
  466. iter_tvibptr = iter(tvibptr) # move this outside the while block
  467. try:
  468. next(iter_tvibptr)
  469. except StopIterationException as e:
  470. break;#<\ भागः>
  471. C statement: #define KARTHARI 0 #define KARMANI 1 #define FULLSTOP '।' #define eof 255
  472. अजगर-वाक्य:
  473. KARTHARI = 0
  474. KARMANI = 1
  475. FULLSTOP = '।'
  476. eof = 255
  477. C statement: #include <stdio.h>
  478.  
  479. अजगर-वाक्य:
  480. आनी stdio.kn # परिग्रह् stdio.h
  481. C statement: #include "sengen1.h"
  482. #include "data.h"
  483.  
  484. अजगर-वाक्य:
  485. आनी sengen1.kn # परिग्रह् sengen1.h
  486. आनी data.kn # परिग्रह् data.h
  487. C statement: typedef struct { int vibhakti[20]; int vacana[20]; int linga[20]; int purusha[20]; unsigned char *subanta[20]; unsigned char *pratipadika[20]; unsigned char *erb[20]; /* End Removed Base */; int wordNum[20]; int numofNouns; } SUBANTA_DATA; typedef struct { int dhatuVidha[10]; int prayoga[10]; int lakara[10]; int purusha[10]; int vacana[10]; int gana[10]; int padi[10]; int karma[10]; int it[10]; unsigned char *tiganta[10]; unsigned char *dhatu[10]; unsigned char *nijdhatu[10]; unsigned char *sandhatu[10]; unsigned char *artha[10]; unsigned char *err[10]; /* End Removed Root */; int wordNum[10]; int numofVerbs; } TIGANTA_DATA; typedef struct { int vibhakti[20]; int vacana[20]; int linga[20]; int prayoga[20]; int krdType[20]; int dhatuVidha[20]; int purusha[20]; int gana[20]; int padi[20]; int karma[20]; int it[20]; unsigned char *krdanta[20]; unsigned char *pratipadika[20]; unsigned char *erb[20]; /* end removed base of krdanta */; unsigned char *dhatu[20]; unsigned char *nijdhatu[20]; unsigned char *sandhatu[20]; unsigned char *artha[20]; int wordNum[20]; int numofKrdantas; } KRDANTA_DATA; typedef struct { unsigned char *avyaya[30]; int wordNum[30]; int numofAvyayas; } AVYAYA_DATA; typedef struct { int dhatuVidha[20]; int gana[20]; int padi[20]; int karma[20]; int it[20]; int krdavType[20]; unsigned char *krdavyaya[20]; unsigned char *dhatu[20]; unsigned char *nijdhatu[20]; unsigned char *sandhatu[20]; unsigned char *artha[20]; int wordNum[20]; int numofKrdavyayas; } KRDAV_DATA; typedef struct { unsigned char *word[20]; int vibhakti[20]; int vacana[20]; int purusha[20]; int linga[20]; int wordPos[20]; int numofWords; } VIBHAKTI; typedef struct { unsigned char *verb; unsigned char *dhatu; int purusha; int vacana; int prayoga; int karma; int wordPos; } VERB; typedef struct { unsigned char *krdanta; int vibhakti; int vacana; int linga; int prayoga; int karma; int krdType; } PARTICIPLE; typedef struct { unsigned char *sentence; unsigned char *idens[100]; int numofIdens; } RECORD; typedef struct { unsigned char *iden[30]; int numofIdens; } WORD; typedef struct { unsigned char *word[15]; int numofWords; } TYPE;
  488. अजगर-वाक्य:
  489.  
  490. वर्गः SUBANTA_DATA:
  491. निरूप् __ निर्मा__( स्वय्ं):
  492. स्वय्ं.vibhakti = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  493. स्वय्ं.vacana = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  494. स्वय्ं.linga = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  495. स्वय्ं.purusha = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  496. स्वय्ं.subanta = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  497. स्वय्ं.pratipadika = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  498. स्वय्ं.erb = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  499. स्वय्ं.wordNum = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  500. स्वय्ं.numofNouns = None # प्रकारः: पूर्णांकः
  501. निरूप् __ आप्__( स्वय्ं):
  502. प्रतिदा {'vibhakti': स्वय्ं.vibhakti[ स्वय्ं.numofNouns], 'vacana': स्वय्ं.vacana[ स्वय्ं.numofNouns], 'linga': स्वय्ं.linga[ स्वय्ं.numofNouns], 'purusha': स्वय्ं.purusha[ स्वय्ं.numofNouns], 'subanta': स्वय्ं.subanta[ स्वय्ं.numofNouns], 'pratipadika': स्वय्ं.pratipadika[ स्वय्ं.numofNouns], 'erb': स्वय्ं.erb[ स्वय्ं.numofNouns], 'wordNum': स्वय्ं.wordNum[ स्वय्ं.numofNouns], 'numofNouns': स्वय्ं.numofNouns}
  503. निरूप् __ अक्षरंमाला__( स्वय्ं):
  504. प्रतिदा json.dumps( स्वय्ं. आप्())
  505.  
  506. वर्गः TIGANTA_DATA:
  507. निरूप् __ निर्मा__( स्वय्ं):
  508. स्वय्ं.dhatuVidha = [None] * 10 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  509. स्वय्ं.prayoga = [None] * 10 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  510. स्वय्ं.lakara = [None] * 10 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  511. स्वय्ं.purusha = [None] * 10 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  512. स्वय्ं.vacana = [None] * 10 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  513. स्वय्ं.gana = [None] * 10 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  514. स्वय्ं.padi = [None] * 10 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  515. स्वय्ं.karma = [None] * 10 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  516. स्वय्ं.it = [None] * 10 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  517. स्वय्ं.tiganta = [None] * 10 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  518. स्वय्ं.dhatu = [None] * 10 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  519. स्वय्ं.nijdhatu = [None] * 10 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  520. स्वय्ं.sandhatu = [None] * 10 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  521. स्वय्ं.artha = [None] * 10 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  522. स्वय्ं.err = [None] * 10 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  523. स्वय्ं.wordNum = [None] * 10 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  524. स्वय्ं.numofVerbs = None # प्रकारः: पूर्णांकः
  525. निरूप् __ आप्__( स्वय्ं):
  526. प्रतिदा {'dhatuVidha': स्वय्ं.dhatuVidha[ स्वय्ं.numofVerbs], 'prayoga': स्वय्ं.prayoga[ स्वय्ं.numofVerbs], 'lakara': स्वय्ं.lakara[ स्वय्ं.numofVerbs], 'purusha': स्वय्ं.purusha[ स्वय्ं.numofVerbs], 'vacana': स्वय्ं.vacana[ स्वय्ं.numofVerbs], 'gana': स्वय्ं.gana[ स्वय्ं.numofVerbs], 'padi': स्वय्ं.padi[ स्वय्ं.numofVerbs], 'karma': स्वय्ं.karma[ स्वय्ं.numofVerbs], 'it': स्वय्ं.it[ स्वय्ं.numofVerbs], 'tiganta': स्वय्ं.tiganta[ स्वय्ं.numofVerbs], 'dhatu': स्वय्ं.dhatu[ स्वय्ं.numofVerbs], 'nijdhatu': स्वय्ं.nijdhatu[ स्वय्ं.numofVerbs], 'sandhatu': स्वय्ं.sandhatu[ स्वय्ं.numofVerbs], 'artha': स्वय्ं.artha[ स्वय्ं.numofVerbs], 'err': स्वय्ं.err[ स्वय्ं.numofVerbs], 'wordNum': स्वय्ं.wordNum[ स्वय्ं.numofVerbs], 'numofVerbs': स्वय्ं.numofVerbs}
  527. निरूप् __ अक्षरंमाला__( स्वय्ं):
  528. प्रतिदा json.dumps( स्वय्ं. आप्())
  529.  
  530. वर्गः KRDANTA_DATA:
  531. निरूप् __ निर्मा__( स्वय्ं):
  532. स्वय्ं.vibhakti = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  533. स्वय्ं.vacana = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  534. स्वय्ं.linga = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  535. स्वय्ं.prayoga = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  536. स्वय्ं.krdType = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  537. स्वय्ं.dhatuVidha = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  538. स्वय्ं.purusha = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  539. स्वय्ं.gana = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  540. स्वय्ं.padi = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  541. स्वय्ं.karma = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  542. स्वय्ं.it = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  543. स्वय्ं.krdanta = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  544. स्वय्ं.pratipadika = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  545. स्वय्ं.erb = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  546. स्वय्ं.dhatu = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  547. स्वय्ं.nijdhatu = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  548. स्वय्ं.sandhatu = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  549. स्वय्ं.artha = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  550. स्वय्ं.wordNum = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  551. स्वय्ं.numofKrdantas = None # प्रकारः: पूर्णांकः
  552. निरूप् __ आप्__( स्वय्ं):
  553. प्रतिदा {'vibhakti': स्वय्ं.vibhakti[ स्वय्ं.numofKrdantas], 'vacana': स्वय्ं.vacana[ स्वय्ं.numofKrdantas], 'linga': स्वय्ं.linga[ स्वय्ं.numofKrdantas], 'prayoga': स्वय्ं.prayoga[ स्वय्ं.numofKrdantas], 'krdType': स्वय्ं.krdType[ स्वय्ं.numofKrdantas], 'dhatuVidha': स्वय्ं.dhatuVidha[ स्वय्ं.numofKrdantas], 'purusha': स्वय्ं.purusha[ स्वय्ं.numofKrdantas], 'gana': स्वय्ं.gana[ स्वय्ं.numofKrdantas], 'padi': स्वय्ं.padi[ स्वय्ं.numofKrdantas], 'karma': स्वय्ं.karma[ स्वय्ं.numofKrdantas], 'it': स्वय्ं.it[ स्वय्ं.numofKrdantas], 'krdanta': स्वय्ं.krdanta[ स्वय्ं.numofKrdantas], 'pratipadika': स्वय्ं.pratipadika[ स्वय्ं.numofKrdantas], 'erb': स्वय्ं.erb[ स्वय्ं.numofKrdantas], 'dhatu': स्वय्ं.dhatu[ स्वय्ं.numofKrdantas], 'nijdhatu': स्वय्ं.nijdhatu[ स्वय्ं.numofKrdantas], 'sandhatu': स्वय्ं.sandhatu[ स्वय्ं.numofKrdantas], 'artha': स्वय्ं.artha[ स्वय्ं.numofKrdantas], 'wordNum': स्वय्ं.wordNum[ स्वय्ं.numofKrdantas], 'numofKrdantas': स्वय्ं.numofKrdantas}
  554. निरूप् __ अक्षरंमाला__( स्वय्ं):
  555. प्रतिदा json.dumps( स्वय्ं. आप्())
  556.  
  557. वर्गः AVYAYA_DATA:
  558. निरूप् __ निर्मा__( स्वय्ं):
  559. स्वय्ं.avyaya = [None] * 30 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  560. स्वय्ं.wordNum = [None] * 30 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  561. स्वय्ं.numofAvyayas = None # प्रकारः: पूर्णांकः
  562. निरूप् __ आप्__( स्वय्ं):
  563. प्रतिदा {'avyaya': स्वय्ं.avyaya[ स्वय्ं.numofAvyayas], 'wordNum': स्वय्ं.wordNum[ स्वय्ं.numofAvyayas], 'numofAvyayas': स्वय्ं.numofAvyayas}
  564. निरूप् __ अक्षरंमाला__( स्वय्ं):
  565. प्रतिदा json.dumps( स्वय्ं. आप्())
  566.  
  567. वर्गः KRDAV_DATA:
  568. निरूप् __ निर्मा__( स्वय्ं):
  569. स्वय्ं.dhatuVidha = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  570. स्वय्ं.gana = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  571. स्वय्ं.padi = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  572. स्वय्ं.karma = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  573. स्वय्ं.it = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  574. स्वय्ं.krdavType = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  575. स्वय्ं.krdavyaya = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  576. स्वय्ं.dhatu = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  577. स्वय्ं.nijdhatu = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  578. स्वय्ं.sandhatu = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  579. स्वय्ं.artha = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  580. स्वय्ं.wordNum = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  581. स्वय्ं.numofKrdavyayas = None # प्रकारः: पूर्णांकः
  582. निरूप् __ आप्__( स्वय्ं):
  583. प्रतिदा {'dhatuVidha': स्वय्ं.dhatuVidha[ स्वय्ं.numofKrdavyayas], 'gana': स्वय्ं.gana[ स्वय्ं.numofKrdavyayas], 'padi': स्वय्ं.padi[ स्वय्ं.numofKrdavyayas], 'karma': स्वय्ं.karma[ स्वय्ं.numofKrdavyayas], 'it': स्वय्ं.it[ स्वय्ं.numofKrdavyayas], 'krdavType': स्वय्ं.krdavType[ स्वय्ं.numofKrdavyayas], 'krdavyaya': स्वय्ं.krdavyaya[ स्वय्ं.numofKrdavyayas], 'dhatu': स्वय्ं.dhatu[ स्वय्ं.numofKrdavyayas], 'nijdhatu': स्वय्ं.nijdhatu[ स्वय्ं.numofKrdavyayas], 'sandhatu': स्वय्ं.sandhatu[ स्वय्ं.numofKrdavyayas], 'artha': स्वय्ं.artha[ स्वय्ं.numofKrdavyayas], 'wordNum': स्वय्ं.wordNum[ स्वय्ं.numofKrdavyayas], 'numofKrdavyayas': स्वय्ं.numofKrdavyayas}
  584. निरूप् __ अक्षरंमाला__( स्वय्ं):
  585. प्रतिदा json.dumps( स्वय्ं. आप्())
  586.  
  587. वर्गः VIBHAKTI:
  588. निरूप् __ निर्मा__( स्वय्ं):
  589. स्वय्ं.word = [None] * 20 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  590. स्वय्ं.vibhakti = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  591. स्वय्ं.vacana = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  592. स्वय्ं.purusha = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  593. स्वय्ं.linga = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  594. स्वय्ं.wordPos = [None] * 20 # प्रकारः: अनुक्रमणिका[पूर्णांकः]
  595. स्वय्ं.numofWords = None # प्रकारः: पूर्णांकः
  596. निरूप् __ आप्__( स्वय्ं):
  597. प्रतिदा {'word': स्वय्ं.word[ स्वय्ं.numofWords], 'vibhakti': स्वय्ं.vibhakti[ स्वय्ं.numofWords], 'vacana': स्वय्ं.vacana[ स्वय्ं.numofWords], 'purusha': स्वय्ं.purusha[ स्वय्ं.numofWords], 'linga': स्वय्ं.linga[ स्वय्ं.numofWords], 'wordPos': स्वय्ं.wordPos[ स्वय्ं.numofWords], 'numofWords': स्वय्ं.numofWords}
  598. निरूप् __ अक्षरंमाला__( स्वय्ं):
  599. प्रतिदा json.dumps( स्वय्ं. आप्())
  600.  
  601. वर्गः VERB:
  602. निरूप् __ निर्मा__( स्वय्ं):
  603. स्वय्ं.verb = None # प्रकारः: अक्षरंमाला
  604. स्वय्ं.dhatu = None # प्रकारः: अक्षरंमाला
  605. स्वय्ं.purusha = None # प्रकारः: पूर्णांकः
  606. स्वय्ं.vacana = None # प्रकारः: पूर्णांकः
  607. स्वय्ं.prayoga = None # प्रकारः: पूर्णांकः
  608. स्वय्ं.karma = None # प्रकारः: पूर्णांकः
  609. स्वय्ं.wordPos = None # प्रकारः: पूर्णांकः
  610. निरूप् __ आप्__( स्वय्ं):
  611. प्रतिदा {'verb': स्वय्ं.verb[ स्वय्ं.wordPos], 'dhatu': स्वय्ं.dhatu[ स्वय्ं.wordPos], 'purusha': स्वय्ं.purusha[ स्वय्ं.wordPos], 'vacana': स्वय्ं.vacana[ स्वय्ं.wordPos], 'prayoga': स्वय्ं.prayoga[ स्वय्ं.wordPos], 'karma': स्वय्ं.karma[ स्वय्ं.wordPos], 'wordPos': स्वय्ं.wordPos}
  612. निरूप् __ अक्षरंमाला__( स्वय्ं):
  613. प्रतिदा json.dumps( स्वय्ं. आप्())
  614.  
  615. वर्गः PARTICIPLE:
  616. निरूप् __ निर्मा__( स्वय्ं):
  617. स्वय्ं.krdanta = None # प्रकारः: अक्षरंमाला
  618. स्वय्ं.vibhakti = None # प्रकारः: पूर्णांकः
  619. स्वय्ं.vacana = None # प्रकारः: पूर्णांकः
  620. स्वय्ं.linga = None # प्रकारः: पूर्णांकः
  621. स्वय्ं.prayoga = None # प्रकारः: पूर्णांकः
  622. स्वय्ं.karma = None # प्रकारः: पूर्णांकः
  623. स्वय्ं.krdType = None # प्रकारः: पूर्णांकः
  624. निरूप् __ आप्__( स्वय्ं):
  625. प्रतिदा {'krdanta': स्वय्ं.krdanta[ स्वय्ं.krdType], 'vibhakti': स्वय्ं.vibhakti[ स्वय्ं.krdType], 'vacana': स्वय्ं.vacana[ स्वय्ं.krdType], 'linga': स्वय्ं.linga[ स्वय्ं.krdType], 'prayoga': स्वय्ं.prayoga[ स्वय्ं.krdType], 'karma': स्वय्ं.karma[ स्वय्ं.krdType], 'krdType': स्वय्ं.krdType}
  626. निरूप् __ अक्षरंमाला__( स्वय्ं):
  627. प्रतिदा json.dumps( स्वय्ं. आप्())
  628.  
  629. वर्गः RECORD:
  630. निरूप् __ निर्मा__( स्वय्ं):
  631. स्वय्ं.sentence = None # प्रकारः: अक्षरंमाला
  632. स्वय्ं.idens = [None] * 100 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  633. स्वय्ं.numofIdens = None # प्रकारः: पूर्णांकः
  634. निरूप् __ आप्__( स्वय्ं):
  635. प्रतिदा {'sentence': स्वय्ं.sentence[ स्वय्ं.numofIdens], 'idens': स्वय्ं.idens[ स्वय्ं.numofIdens], 'numofIdens': स्वय्ं.numofIdens}
  636. निरूप् __ अक्षरंमाला__( स्वय्ं):
  637. प्रतिदा json.dumps( स्वय्ं. आप्())
  638.  
  639. वर्गः WORD:
  640. निरूप् __ निर्मा__( स्वय्ं):
  641. स्वय्ं.iden = [None] * 30 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  642. स्वय्ं.numofIdens = None # प्रकारः: पूर्णांकः
  643. निरूप् __ आप्__( स्वय्ं):
  644. प्रतिदा {'iden': स्वय्ं.iden[ स्वय्ं.numofIdens], 'numofIdens': स्वय्ं.numofIdens}
  645. निरूप् __ अक्षरंमाला__( स्वय्ं):
  646. प्रतिदा json.dumps( स्वय्ं. आप्())
  647.  
  648. वर्गः TYPE:
  649. निरूप् __ निर्मा__( स्वय्ं):
  650. स्वय्ं.word = [None] * 15 # प्रकारः: अनुक्रमणिका[ अक्षरंमाला]
  651. स्वय्ं.numofWords = None # प्रकारः: पूर्णांकः
  652. निरूप् __ आप्__( स्वय्ं):
  653. प्रतिदा {'word': स्वय्ं.word[ स्वय्ं.numofWords], 'numofWords': स्वय्ं.numofWords}
  654. निरूप् __ अक्षरंमाला__( स्वय्ं):
  655. प्रतिदा json.dumps( स्वय्ं. आप्())
  656. C statement: int choice(char type,unsigned char *word,unsigned char voice[],int pos,VIBAK *tvibptr,FILE *afp,long fl,unsigned char *VerbMean) { int yes=0,success=1; while(1) { if((tvibptr->stype =='1' && strcmp(tvibptr->specf,'dative')==0 ) || tvibptr->stype =='5' || tvibptr->stype=='2'|| tvibptr->stype=='4') { /* Check for case where there is only a single meaning for चतुर्ती विभक्ति */ yes=findverb(voice,tvibptr->sword,tvibptr,afp,fl,VerbMean); if(tvibptr->stype=='2' && tvibptr->matnoun !=1 ) { switch(tvibptr->spos) { case 0: if(tvibptr->semlinga==0) strcat(tvibptr->arthaword,'सा '); if(tvibptr->semlinga==1) strcat(tvibptr->arthaword,'सः '); if(tvibptr->semlinga==2) strcat(tvibptr->arthaword,'त्त '); break; case 1: strcat(tvibptr->arthaword,'तन्निष्ठकर्मतानिरूपक '); break; case 2: strcat(tvibptr->arthaword,'निष्ठकरणतानिरूपक '); break; case 3: strcat(tvibptr->arthaword,'निष्ठसम्प्रदानतानिरूपक '); break; case 4: strcat(tvibptr->arthaword,'निष्ठापादानतानिरूपक '); break; case 5: strcat(tvibptr->arthaword,'निष्ठाधिकरणतानिरूपक '); break; } } if(tvibptr->stype == '2' || tvibptr->stype =='4' || tvibptr->stype=='5') success= 0; } if(tvibptr->stype =='1' && (strcmpi(tvibptr->specf,'object')==0)) { /* Check for case where there is only a single meaning for द्वितीया विभक्ति */ yes=findverb(voice,tvibptr->sword,tvibptr,afp,fl,VerbMean); } /* If not in above case following steps lead to menu display for selection based on type of vibhakti */ if(tvibptr->stype =='1') { switch(tvibptr->spos) { case 0: if(strcmpi(voice,'kartari') ==0) strcpy(tvibptr->arthaword,tvibptr->sword); if(strcmpi(voice,'karmani') ==0) { strcpy(tvibptr->arthaword,tvibptr->bword); strcat(tvibptr->arthaword,'निष्ठकर्तृतानिरूपक '); } break; case 1: if(strcmpi(voice,'kartari') ==0) { strcpy(tvibptr->arthaword,tvibptr->bword); strcat(tvibptr->arthaword,'निष्ठकर्मतानिरूपक '); } if(strcmpi(voice,'karmani') ==0) { strcpy(tvibptr->arthaword,tvibptr->sword); } break; case 2: strcpy(tvibptr->arthaword,tvibptr->bword); strcat(tvibptr->arthaword,'निष्ठकरणतानिरूपक '); break; case 3: strcpy(tvibptr->arthaword,tvibptr->bword); strcat(tvibptr->arthaword,'निष्ठसम्प्रदानतानिरूपक '); break; case 4: strcpy(tvibptr->arthaword,tvibptr->bword); strcat(tvibptr->arthaword,'निष्ठापादानतानिरूपक '); break; case 6: strcpy(tvibptr->arthaword,tvibptr->bword); strcat(tvibptr->arthaword,'सम्बन्धि '); break; case 5: strcpy(tvibptr->arthaword,tvibptr->bword); strcat(tvibptr->arthaword,'निष्ठाधिकरणतानिरूपक '); break; } } if (tvibptr->next != NULL) tvibptr=tvibptr->next; else break; } return success; }
  657. अजगर-वाक्य:
  658. निरूप् choice(type अक्षरंमाला, word अक्षरंमाला, voice अनुक्रमणिका[ अक्षरंमाला], pos पूर्णांकः, tvibptr VIBAK, afp लेख्यं, fl दशक, VerbMean अक्षरंमाला) -> पूर्णांकः: #< भागः>{
  659. yes = 0 # प्रकारः पूर्णांकः
  660. success = 1 # प्रकारः पूर्णांकः
  661.  
  662. यदा(1):
  663.  
  664. #< भागः>{
  665. यदि (tvibptr.stype == '1' च tvibptr.specf == 'dative') वा tvibptr.stype == '5' वा tvibptr.stype == '2' वा tvibptr.stype == '4':
  666. #< भागः>{
  667.  
  668. '''Check for case where there is only a single meaning for चतुर्ती विभक्ति'''
  669. yes = findverb(voice, tvibptr.sword, tvibptr, afp, fl, VerbMean)
  670. यदि tvibptr.stype == '2' च tvibptr.matnoun != 1:
  671. #< भागः>{
  672. यदि tvibptr.spos == 0:
  673. #< विकल्पः >
  674. यदि tvibptr.semlinga == 0: tvibptr.arthaword = 'सा '
  675. यदि tvibptr.semlinga == 1: tvibptr.arthaword = 'सः '
  676. यदि tvibptr.semlinga == 2: tvibptr.arthaword = 'त्त '
  677. निर्गमः#<\ विकल्पः >
  678. अन्यथा_यदिtvibptr.spos == 1:
  679. #< विकल्पः >
  680. tvibptr.arthaword = 'तन्निष्ठकर्मतानिरूपक '
  681. निर्गमः#<\ विकल्पः >
  682. अन्यथा_यदिtvibptr.spos == 2:
  683. #< विकल्पः >
  684. tvibptr.arthaword = 'निष्ठकरणतानिरूपक '
  685. निर्गमः#<\ विकल्पः >
  686. अन्यथा_यदिtvibptr.spos == 3:
  687. #< विकल्पः >
  688. tvibptr.arthaword = 'निष्ठसम्प्रदानतानिरूपक '
  689. निर्गमः#<\ विकल्पः >
  690. अन्यथा_यदिtvibptr.spos == 4:
  691. #< विकल्पः >
  692. tvibptr.arthaword = 'निष्ठापादानतानिरूपक '
  693. निर्गमः#<\ विकल्पः >
  694. अन्यथा_यदिtvibptr.spos == 5:
  695. #< विकल्पः >
  696. tvibptr.arthaword = 'निष्ठाधिकरणतानिरूपक '
  697. निर्गमः#<\ विकल्पः >#<\ भागः>
  698. यदि tvibptr.stype == '2' वा tvibptr.stype == '4' वा tvibptr.stype == '5': success = 0#<\ भागः>
  699. यदि tvibptr.stype == '1' च (tvibptr.specf == 'object'):
  700. #< भागः>{
  701.  
  702. '''Check for case where there is only a single meaning for द्वितीया विभक्ति'''
  703. yes = findverb(voice, tvibptr.sword, tvibptr, afp, fl, VerbMean)#<\ भागः>
  704.  
  705. '''If not in above case following steps lead to menu display for selection based on type of vibhakti'''
  706. यदि tvibptr.stype == '1':
  707. #< भागः>{
  708. यदि tvibptr.spos == 0:
  709. #< विकल्पः >
  710. यदि voice == 'kartari':
  711. tvibptr.arthaword = tvibptr.sword
  712. यदि voice == 'karmani':
  713. #< भागः>{
  714. tvibptr.arthaword = tvibptr.bword
  715. tvibptr.arthaword = 'निष्ठकर्तृतानिरूपक '#<\ भागः>
  716. निर्गमः#<\ विकल्पः >
  717. अन्यथा_यदिtvibptr.spos == 1:
  718. #< विकल्पः >
  719. यदि voice == 'kartari':
  720. #< भागः>{
  721. tvibptr.arthaword = tvibptr.bword
  722. tvibptr.arthaword = 'निष्ठकर्मतानिरूपक '#<\ भागः>
  723. यदि voice == 'karmani':
  724. #< भागः>{
  725. tvibptr.arthaword = tvibptr.sword#<\ भागः>
  726. निर्गमः#<\ विकल्पः >
  727. अन्यथा_यदिtvibptr.spos == 2:
  728. #< विकल्पः >
  729. tvibptr.arthaword = tvibptr.bword
  730. tvibptr.arthaword = 'निष्ठकरणतानिरूपक '
  731. निर्गमः#<\ विकल्पः >
  732. अन्यथा_यदिtvibptr.spos == 3:
  733. #< विकल्पः >
  734. tvibptr.arthaword = tvibptr.bword
  735. tvibptr.arthaword = 'निष्ठसम्प्रदानतानिरूपक '
  736. निर्गमः#<\ विकल्पः >
  737. अन्यथा_यदिtvibptr.spos == 4:
  738. #< विकल्पः >
  739. tvibptr.arthaword = tvibptr.bword
  740. tvibptr.arthaword = 'निष्ठापादानतानिरूपक '
  741. निर्गमः#<\ विकल्पः >
  742. अन्यथा_यदिtvibptr.spos == 6:
  743. #< विकल्पः >
  744. tvibptr.arthaword = tvibptr.bword
  745. tvibptr.arthaword = 'सम्बन्धि '
  746. निर्गमः#<\ विकल्पः >
  747. अन्यथा_यदिtvibptr.spos == 5:
  748. #< विकल्पः >
  749. tvibptr.arthaword = tvibptr.bword
  750. tvibptr.arthaword = 'निष्ठाधिकरणतानिरूपक '
  751. निर्गमः#<\ विकल्पः >#<\ भागः>
  752.  
  753. iter_tvibptr = iter(tvibptr) # move this outside the while block
  754. try:
  755. next(iter_tvibptr)
  756. except StopIterationException as e:
  757. break;#<\ भागः>
  758. प्रतिदा success#<\ भागः>
  759. C statement: i++;j--;k+=2;h-=3;
  760. अजगर-वाक्य:
  761. i += 1
  762. j -= 1
  763. k += 2
  764. h -= 3
  765. C statement: for(i=0;i<vno;i-=3) free(words[i]);
  766. अजगर-वाक्य:
  767. प्रतिi अंतरे राजिः (0, vno, -3):
  768. free
  769. (words[i])
  770. C statement: int findverb(unsigned char voice[],unsigned char *Word,VIBAK *tvibptr,FILE *afp,long fl,unsigned char *VerbMean){int found=0,i,j,pos;int vnum=0,vno=0,linga=4;unsigned char line1[300],*words[17],message[60],word[20],vword[80],type,lword[30],ltype="Z",temp[4];unsigned char *list[]={"पूर्वाण्ह", "अपराण्ह", "दिन", "रात्रि", "अहोरात्र", "सप्ताह", "पक्ष", "मास", "संवत्सर"};unsigned char *list1[]={"ज्ञान","सुख","दुःख","इच्छा","द्वेष","प्रयत्न","धर्म","अधर्म","संस्कार","भावना","विवेक","बोध","बुद्धि","धी","प्रज्ञा",};fseek(afp,fl,0);}if(tvibptr->stype =="2") type="0"; while(found==0 ||(!feof(afp))){fgets(line1,299,afp);if(line1[0]==" - "){found=1;break;}vno=0;vno=split(line1,words);if(strcmp(words[0],"वाक्यम्")==0) {for(i=0;i<vno;i++){free(words[i]);continue;}}vno=0; vno=split(line1,words); if(strcmp(words[0],"वाक्यम्")==0) /* Check for input sentence */ { for(i=0;i<vno;i++) free(words[i]); continue; } vno=split(line1,words); type=words[3][0]; strcpy(word,words[4]); if(type=="1") { strncpy(temp,words[6]+2,1); temp[1]=" "; linga=atoi(temp); pos=atoi(words[7]); } if(type=="5" || type=="4") { if(type=="5") strcpy(lword,VerbMean); else { strcpy(lword,words[9]); } strncpy(temp,words[11]+1,1); temp[1]=" "; ltype=temp[0]; } if(type=="2") { strcpy(lword,words[13]); } if(type=="1"&& (pos >= 1 && pos <=3)) { for(i=0;i<15;i++) { if(strcmp(word,list1[i])==0) { if(linga==0) strcpy(message,"समवेता"); if(linga==1) strcpy(message,"समवेतः");if(linga==2) strcpy(message,"समवेतं"); strcpy(vword,tvibptr->bword); strcat(vword,message); strcpy(tvibptr->arthaword,vword); return 1; } } } if(type=="5") { found=dispmea(voice,vnum,list,tvibptr,ltype,lword); for(i=0;i<vno;i++) free(words[i]); return found; } if(type=="2" && tvibptr->stype=="2" && strcmp(Word,words[1])==0) { found=dispmea(voice,vnum,list,tvibptr,ltype,lword); for(i=0;i<vno;i++) free(words[i]); return found; } else if(type=="4" && tvibptr->stype=="4" && strcmp(Word,words[1])==0) { found=dispmea(voice,vnum,list,tvibptr,ltype,lword); for(i=0;i<vno;i++) free(words[i]); return found; } for(i=0;i<vno;i++) free(words[i]);};
  771. अजगर-वाक्य:
  772. निरूप् findverb(voice अनुक्रमणिका[ अक्षरंमाला], Word अक्षरंमाला, tvibptr VIBAK, afp लेख्यं, fl दशक, VerbMean अक्षरंमाला) -> पूर्णांकः: #< भागः>{
  773. found = 0 # प्रकारः पूर्णांकः
  774. i, j, pos = None # प्रकारः पूर्णांकः
  775.  
  776. vnum = 0 # प्रकारः पूर्णांकः
  777. vno = 0 # प्रकारः पूर्णांकः
  778. linga = 4 # प्रकारः पूर्णांकः
  779.  
  780. line1 = [None] * 300 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  781. words = [None] * 17 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  782. message = [None] * 60 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  783. word = [None] * 20 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  784. vword = [None] * 80 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  785. type = None # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  786. lword = [None] * 30 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  787. ltype = "Z" # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  788. temp = [None] * 4 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  789.  
  790. list = ["पूर्वाण्ह", "अपराण्ह", "दिन", "रात्रि", "अहोरात्र", "सप्ताह", "पक्ष", "मास", "संवत्सर"] # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  791.  
  792. list1 = ["ज्ञान", "सुख", "दुःख", "इच्छा", "द्वेष", "प्रयत्न", "धर्म", "अधर्म", "संस्कार", "भावना", "विवेक", "बोध", "बुद्धि", "धी", "प्रज्ञा"] # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  793.  
  794. fseek(afp, fl, 0)#<\ भागः>
  795. यदि tvibptr.stype == "2": type = "0"
  796. यदा(found == 0 वा ( !feof(afp))):
  797. #< भागः>{
  798. fgets(line1, 299, afp)
  799. यदि line1[0] == " - ":
  800. #< भागः>{
  801. found = 1
  802. निर्गमः#<\ भागः>
  803. vno = 0
  804. vno = split(line1, words)
  805. यदि words[0] == "वाक्यम्":
  806. #< भागः>{
  807. प्रतिi अंतरे राजिः (0, vno):
  808.  
  809. #< भागः>{
  810. free
  811. (words[i])
  812. प्रवृत् #<\ भागः>#<\ भागः>
  813. vno = 0
  814. vno = split(line1, words)
  815. यदि words[0] == "वाक्यम्":
  816. '''Check for input sentence'''
  817. #< भागः>{
  818. प्रतिi अंतरे राजिः (0, vno):
  819. free(words[i])
  820. प्रवृत् #<\ भागः>
  821. vno = split(line1, words)
  822. type = words[3][0]
  823. word = words[4]
  824. यदि type == "1":
  825. #< भागः>{
  826. temp = words[6]
  827. linga = atoi(temp)
  828. pos = atoi(words[7])#<\ भागः>
  829. यदि type == "5" वा type == "4":
  830. #< भागः>{
  831.  
  832. यदि type == "5":lword = VerbMean
  833. अन्यथा :
  834. #< भागः>{
  835. lword = words[9]#<\ भागः>
  836. temp = words[11]
  837. ltype = temp[0]#<\ भागः>
  838. यदि type == "2":
  839. #< भागः>{
  840. lword = words[13]#<\ भागः>
  841. यदि type == "1" च (pos >= 1 च pos <= 3):
  842. #< भागः>{
  843. प्रतिi अंतरे राजिः (0, 15):
  844.  
  845. #< भागः>{
  846. यदि word == list1[i]:
  847. #< भागः>{
  848. यदि linga == 0:
  849. message = "समवेता"
  850. यदि linga == 1: message = "समवेतः"
  851. यदि linga == 2: message = "समवेतं"
  852. vword = tvibptr.bword
  853. vword = message
  854. tvibptr.arthaword = vword
  855. प्रतिदा 1#<\ भागः>#<\ भागः>#<\ भागः>
  856. यदि type == "5":
  857. #< भागः>{
  858. found = dispmea(voice, vnum, list, tvibptr, ltype, lword)
  859. प्रतिi अंतरे राजिः (0, vno):
  860. free(words[i])
  861. प्रतिदा found#<\ भागः>
  862.  
  863. यदि type == "2" च tvibptr.stype == "2" च Word == words[1]:#< भागः>{
  864. found = dispmea(voice, vnum, list, tvibptr, ltype, lword)
  865. प्रतिi अंतरे राजिः (0, vno):
  866. free(words[i])
  867. प्रतिदा found#<\ भागः>
  868. अन्यथा : यदि type == "4" च tvibptr.stype == "4" च Word == words[1]:
  869. #< भागः>{
  870. found = dispmea(voice, vnum, list, tvibptr, ltype, lword)
  871. प्रतिi अंतरे राजिः (0, vno):
  872. free(words[i])
  873. प्रतिदा found#<\ भागः>
  874. प्रतिi अंतरे राजिः (0, vno):
  875. free(words[i])#<\ भागः>
  876. C statement: a = b; message = "समवेतः"; if(c=fgetc(cfp)!=eof) x = y
  877. अजगर-वाक्य:
  878. a = b
  879. message = "समवेतः"
  880. यदि fgetc(cfp) != eof: x = y
  881. C statement: substr=strstr(word[karptr->sub_no],krdrecord->code[m])
  882. अजगर-वाक्य:
  883. substr = strstr(word[karptr.sub_no], krdrecord.code[m])
  884. C statement: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <alloc.h> #include "data.h" #include "declr.h" #define eof 255 #define rt 86 int CheckComptability(DETAIL *srecord,DETAIL *krecord,DETAIL *vrecord,DETAIL *krdfirst,DETAIL *krdavy,unsigned char *sent,SHASTI *fshtptr,FILE *rfp,FILE *afp,FILE *sfp,int y) { int a=0,i=0,j=0,m=0,n=0,no_vsub=0,no_ksub=0,num_sub,Naflag=0; int flag=1,krdflag=0,krdavyf=0,verflag=0,karflag=0,shaflag=0; int krdmismatch=0,mismatch=0,krdpos,avypos,Saflag=0,Sapos; int krdoth=0,no_krdoth,krdsuc=1,subver=0; long afppos,pos; unsigned char c,line[500],*word[15],temp[150],*substr,temp1[30],temp2[30]; char code1[5],code2[5]; FILE *cfp; DETAIL *firstptr=NULL,*subptr=NULL,*fstptr=NULL,*subunmatch; DETAIL *karptr=NULL,*un_match=NULL,*karmatch=NULL; DETAIL *verptr=NULL,*krdrecord=NULL,*krdunmatch=NULL,*krdmatch=NULL,*avyrecord=NULL; SHASTI *shrvib=NULL,*tshrvib=NULL;int a=0,i=0,j=0,m=0,n=0,no_vsub=0,no_ksub=0,num_sub,Naflag=0; int flag=1,krdflag=0,krdavyf=0,verflag=0,karflag=0,shaflag=0; int krdmismatch=0,mismatch=0,krdpos,avypos,Saflag=0,Sapos; int krdoth=0,no_krdoth,krdsuc=1,subver=0; long afppos,pos; unsigned char c,line[500],*word[15],temp[150],*substr,temp1[30],temp2[30]; char code1[5],code2[5]; FILE *cfp; DETAIL *firstptr=NULL,*subptr=NULL,*fstptr=NULL,*subunmatch; DETAIL *karptr=NULL,*un_match=NULL,*karmatch=NULL; DETAIL *verptr=NULL,*krdrecord=NULL,*krdunmatch=NULL,*krdmatch=NULL,*avyrecord=NULL; SHASTI *shrvib=NULL,*tshrvib=NULL; cfp=fopen("comptble.aci","r"); if(cfp== NULL) exit(0); firstptr=srecord; subptr=srecord; fstptr=srecord; while(1) { if(strcmp(subptr->word,"न")==0) Naflag=1; else if(strcmp(subptr->word,"सह")==0) { Saflag=1; Sapos=subptr->pos; } if(subptr->next != NULL) subptr=subptr->next; else break; } subptr=srecord; karptr=krecord; verptr=vrecord; krdrecord=krdfirst; avyrecord=krdavy; krdpos=0;if(krdfirst != NULL) { if(strcmp(krdrecord->Type,"Krdanta")==0 || strcmpi(krdrecord->specf,"Subject")==0) { krdflag=1; krdpos=krdrecord->pos; } } if(krdavy != NULL) { if(strcmpi(krdavy->Type,"Krdavyaya")==0) krdavyf=1; } verflag=0; while(verptr != NULL) { if(strcmp(verptr->dispSpecf,"Verb")==0) verflag=1; if(verptr->next == NULL) break; verptr=verptr->next; } verptr=vrecord;while(1) { if(karptr != NULL && krdflag==0 && krdavyf==0) { if(karptr->sub_no != 7 && (karptr->pos != Sapos-1)) no_vsub++; if(karptr->next != vrecord) karptr=karptr->next; else break; } else if(karptr != NULL && verflag==1 && krdflag==1) { if(karptr->sub_no != 6) { if (karptr->pos > krdfirst->pos ) no_vsub++; else if(strcmp(krdfirst->specf,"Subject")!=0) no_vsub++; } else if(karptr->sub_no == 6) { if (karptr->pos != krdfirst->pos-1 ) no_vsub++; else if(strcmp(krdfirst->specf,"Subject")!=0) no_vsub++; } if(karptr->next != krdfirst) karptr=karptr->next; else break; } else if(karptr != NULL && verflag==1 && krdavyf==1) { if (karptr->pos > krdavy->pos) no_vsub++; if(karptr->next != krdavy) karptr=karptr->next; else break; } else break; }fprintf(rfp,"%s
  885. ",sent); karptr=krecord; if(fshtptr==NULL) { while(1) { fprintf(rfp,"%s ", subptr->Type); if(strcmp(subptr->Type,"Noun")==0 || strcmp(subptr->Type,"Krdanta")==0 ) fprintf(rfp,"%s",subptr->specf); fprintf(rfp," : %s",subptr->word); fprintf(rfp,"
  886. "); if(subptr->next != NULL) subptr=subptr->next; else break; } subptr=srecord; shaflag=0; } else { sha_disp(subptr,sent,rfp); shaflag=1; }fprintf(rfp,"
  887. -------------------
  888. "); karptr=krecord; subptr=srecord; if(vrecord==NULL) vrecord=krdfirst; verptr=vrecord;}
  889. अजगर-वाक्य:
  890. आनी stdio.kn # परिग्रह् stdio.h
  891. आनी string.kn # परिग्रह् string.h
  892. आनी stdlib.kn # परिग्रह् stdlib.h
  893. आनी conio.kn # परिग्रह् conio.h
  894. आनी alloc.kn # परिग्रह् alloc.h
  895. आनी data.kn # परिग्रह् data.h
  896. आनी declr.kn # परिग्रह् declr.h
  897. eof = 255
  898. rt = 86
  899. निरूप् CheckComptability(srecord DETAIL, krecord DETAIL, vrecord DETAIL, krdfirst DETAIL, krdavy DETAIL, sent अक्षरंमाला, fshtptr SHASTI, rfp लेख्यं, afp लेख्यं, sfp लेख्यं, y पूर्णांकः) -> पूर्णांकः:
  900. #< भागः>{
  901. a = 0 # प्रकारः पूर्णांकः
  902. i = 0 # प्रकारः पूर्णांकः
  903. j = 0 # प्रकारः पूर्णांकः
  904. m = 0 # प्रकारः पूर्णांकः
  905. n = 0 # प्रकारः पूर्णांकः
  906. no_vsub = 0 # प्रकारः पूर्णांकः
  907. no_ksub = 0 # प्रकारः पूर्णांकः
  908. num_sub, Naflag = 0 # प्रकारः पूर्णांकः
  909.  
  910. flag = 1 # प्रकारः पूर्णांकः
  911. krdflag = 0 # प्रकारः पूर्णांकः
  912. krdavyf = 0 # प्रकारः पूर्णांकः
  913. verflag = 0 # प्रकारः पूर्णांकः
  914. karflag = 0 # प्रकारः पूर्णांकः
  915. shaflag = 0 # प्रकारः पूर्णांकः
  916.  
  917. krdmismatch = 0 # प्रकारः पूर्णांकः
  918. mismatch = 0 # प्रकारः पूर्णांकः
  919. krdpos, avypos = None # प्रकारः पूर्णांकः
  920. Saflag = 0 # प्रकारः पूर्णांकः
  921. Sapos = None # प्रकारः पूर्णांकः
  922.  
  923. krdoth = 0 # प्रकारः पूर्णांकः
  924. no_krdoth, krdsuc = 1 # प्रकारः पूर्णांकः
  925. subver = 0 # प्रकारः पूर्णांकः
  926.  
  927. afppos = None # प्रकारः दशक
  928. pos = None # प्रकारः दशक
  929.  
  930. c = None # प्रकारः अक्षरंमाला
  931. line = [None] * 500 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  932. word = [None] * 15 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  933. temp = [None] * 150 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  934. substr = None # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  935. temp1 = [None] * 30 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  936. temp2 = [None] * 30 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  937.  
  938. code1 = [None] * 5 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  939. code2 = [None] * 5 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  940.  
  941. cfp = None # प्रकारः लेख्यं
  942.  
  943. firstptr = NULL # प्रकारः DETAIL
  944. subptr = NULL # प्रकारः DETAIL
  945. fstptr = NULL # प्रकारः DETAIL
  946. subunmatch = None # प्रकारः DETAIL
  947.  
  948. karptr = NULL # प्रकारः DETAIL
  949. un_match = NULL # प्रकारः DETAIL
  950. karmatch = NULL # प्रकारः DETAIL
  951.  
  952. verptr = NULL # प्रकारः DETAIL
  953. krdrecord = NULL # प्रकारः DETAIL
  954. krdunmatch = NULL # प्रकारः DETAIL
  955. krdmatch = NULL # प्रकारः DETAIL
  956. avyrecord = NULL # प्रकारः DETAIL
  957.  
  958. shrvib = NULL # प्रकारः SHASTI
  959. tshrvib = NULL # प्रकारः SHASTI
  960.  
  961. a = 0 # प्रकारः पूर्णांकः
  962. i = 0 # प्रकारः पूर्णांकः
  963. j = 0 # प्रकारः पूर्णांकः
  964. m = 0 # प्रकारः पूर्णांकः
  965. n = 0 # प्रकारः पूर्णांकः
  966. no_vsub = 0 # प्रकारः पूर्णांकः
  967. no_ksub = 0 # प्रकारः पूर्णांकः
  968. num_sub, Naflag = 0 # प्रकारः पूर्णांकः
  969.  
  970. flag = 1 # प्रकारः पूर्णांकः
  971. krdflag = 0 # प्रकारः पूर्णांकः
  972. krdavyf = 0 # प्रकारः पूर्णांकः
  973. verflag = 0 # प्रकारः पूर्णांकः
  974. karflag = 0 # प्रकारः पूर्णांकः
  975. shaflag = 0 # प्रकारः पूर्णांकः
  976.  
  977. krdmismatch = 0 # प्रकारः पूर्णांकः
  978. mismatch = 0 # प्रकारः पूर्णांकः
  979. krdpos, avypos, Saflag = 0 # प्रकारः पूर्णांकः
  980. Sapos = None # प्रकारः पूर्णांकः
  981.  
  982. krdoth = 0 # प्रकारः पूर्णांकः
  983. no_krdoth, krdsuc = 1 # प्रकारः पूर्णांकः
  984. subver = 0 # प्रकारः पूर्णांकः
  985.  
  986. afppos = None # प्रकारः दशक
  987. pos = None # प्रकारः दशक
  988.  
  989. c = None # प्रकारः अक्षरंमाला
  990. line = [None] * 500 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  991. word = [None] * 15 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  992. temp = [None] * 150 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  993. substr = None # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  994. temp1 = [None] * 30 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  995. temp2 = [None] * 30 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  996.  
  997. code1 = [None] * 5 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  998. code2 = [None] * 5 # प्रकारः अनुक्रमणिका[ अक्षरंमाला]
  999.  
  1000. cfp = None # प्रकारः लेख्यं
  1001.  
  1002. firstptr = NULL # प्रकारः DETAIL
  1003. subptr = NULL # प्रकारः DETAIL
  1004. fstptr = NULL # प्रकारः DETAIL
  1005. subunmatch = None # प्रकारः DETAIL
  1006.  
  1007. karptr = NULL # प्रकारः DETAIL
  1008. un_match = NULL # प्रकारः DETAIL
  1009. karmatch = NULL # प्रकारः DETAIL
  1010.  
  1011. verptr = NULL # प्रकारः DETAIL
  1012. krdrecord = NULL # प्रकारः DETAIL
  1013. krdunmatch = NULL # प्रकारः DETAIL
  1014. krdmatch = NULL # प्रकारः DETAIL
  1015. avyrecord = NULL # प्रकारः DETAIL
  1016.  
  1017. shrvib = NULL # प्रकारः SHASTI
  1018. tshrvib = NULL # प्रकारः SHASTI
  1019.  
  1020. cfp = fopen("comptble.aci", "r")
  1021. यदि cfp == NULL: exit(0)
  1022. firstptr = srecord
  1023. subptr = srecord
  1024. fstptr = srecord
  1025. यदा(1):
  1026.  
  1027. #< भागः>{
  1028.  
  1029. यदि subptr.word == "न":Naflag = 1
  1030. अन्यथा : यदि subptr.word == "सह":
  1031. #< भागः>{
  1032. Saflag = 1
  1033. Sapos = subptr.pos#<\ भागः>
  1034.  
  1035. iter_subptr = iter(subptr) # move this outside the while block
  1036. try:
  1037. next(iter_subptr)
  1038. except StopIterationException as e:
  1039. break;#<\ भागः>
  1040. subptr = srecord
  1041. karptr = krecord
  1042. verptr = vrecord
  1043. krdrecord = krdfirst
  1044. avyrecord = krdavy
  1045. krdpos = 0
  1046. यदि krdfirst != NULL:
  1047. #< भागः>{
  1048. यदि krdrecord.Type == "Krdanta" वा krdrecord.specf == "Subject": #< भागः>{
  1049. krdflag = 1
  1050. krdpos = krdrecord.pos#<\ भागः>#<\ भागः>
  1051. यदि krdavy != NULL:
  1052. #< भागः>{
  1053. यदि krdavy.Type == "Krdavyaya":
  1054. krdavyf = 1#<\ भागः>
  1055. verflag = 0
  1056. यदा(verptr != NULL):
  1057.  
  1058. #< भागः>{
  1059. यदि verptr.dispSpecf == "Verb": verflag = 1
  1060. यदि verptr.next == NULL: निर्गमः
  1061. verptr = verptr.next#<\ भागः>
  1062. verptr = vrecord
  1063. यदा(1):
  1064.  
  1065. #< भागः>{
  1066.  
  1067. iter_#< भागः>{
  1068. यदि karptr.sub_no != 7 च (karptr.pos != Sapos - 1): no_vsub += 1
  1069.  
  1070. यदि karptr.next != vrecord:karptr = iter(#< भागः>{
  1071. यदि karptr.sub_no != 7 च (karptr.pos != Sapos - 1): no_vsub += 1
  1072.  
  1073. यदि karptr.next != vrecord:karptr) # move this outside the while block
  1074. try:
  1075. next(iter_#< भागः>{
  1076. यदि karptr.sub_no != 7 च (karptr.pos != Sapos - 1): no_vsub += 1
  1077.  
  1078. यदि karptr.next != vrecord:karptr)
  1079. except StopIterationException as e:
  1080. break;
  1081.  
  1082. iter_#< भागः>{
  1083. यदि karptr.pos > krdavy.pos: no_vsub += 1
  1084.  
  1085. यदि karptr.next != krdavy:karptr = iter(#< भागः>{
  1086. यदि karptr.pos > krdavy.pos: no_vsub += 1
  1087.  
  1088. यदि karptr.next != krdavy:karptr) # move this outside the while block
  1089. try:
  1090. next(iter_#< भागः>{
  1091. यदि karptr.pos > krdavy.pos: no_vsub += 1
  1092.  
  1093. यदि karptr.next != krdavy:karptr)
  1094. except StopIterationException as e:
  1095. break;#<\ भागः>
  1096. fprintf(rfp, "%s
  1097. ", sent)
  1098. karptr = krecord
  1099.  
  1100. यदि fshtptr == NULL:#< भागः>{
  1101. यदा(1):
  1102.  
  1103. #< भागः>{
  1104. fprintf(rfp, "%s ", subptr.Type)
  1105. यदि subptr.Type == "Noun" वा subptr.Type == "Krdanta": fprintf(rfp, "%s", subptr.specf)
  1106. fprintf(rfp, " : %s", subptr.word)
  1107. fprintf(rfp, "
  1108. ")
  1109.  
  1110. iter_subptr = iter(subptr) # move this outside the while block
  1111. try:
  1112. next(iter_subptr)
  1113. except StopIterationException as e:
  1114. break;#<\ भागः>
  1115. subptr = srecord
  1116. shaflag = 0#<\ भागः>
  1117. अन्यथा :
  1118. #< भागः>{
  1119. sha_disp(subptr, sent, rfp)
  1120. shaflag = 1#<\ भागः>
  1121. fprintf(rfp, "
  1122. -------------------
  1123. ")
  1124. karptr = krecord
  1125. subptr = srecord
  1126. यदि vrecord == NULL: vrecord = krdfirst
  1127. verptr = vrecord#<\ भागः>
  1128. C statement: while(strcmpi(srecord->specf,"subject")==0 && strcmpi(srecord->Type,"Noun")==0) { if(krdflag==1) { for(m=0;m<(krdrecord->no_base);m++) { num_sub=no_ksub; karflag=0; un_match=NULL; if(karptr != NULL) { while(1) { if(strcmp(krdrecord->specf,"Subject")==0) { if(karptr->pos < krdrecord->pos && karptr != NULL ) { if(karptr->sub_no != 6) karflag++; } } if(strcmpi(karptr->next->Type,"Krdanta")==0 ||strcmpi(karptr->next->Type,"Krdavyaya")==0 ) break; else karptr=karptr->next; } } krdoth=0; no_krdoth=0; while(1) { if(strcmpi(krdrecord->specf,"Subject") !=0 ) { if(strcmpi(krdrecord->Type,"Krdanta") ==0 ) { no_krdoth++; krdoth++; } } if(strcmpi(krdrecord->next->Type,"Krdanta") !=0 || krdrecord->next == NULL) break; else krdrecord=krdrecord->next; } krdrecord=krdfirst; for(n=0;n<srecord->no_base;n++) { num_sub=no_ksub; rewind(cfp); mismatch=0; krdmismatch=0; while( (c=fgetc(cfp)) != eof) { ungetc(c,cfp); fgets(line,150,cfp); if(line[0]=="
  1129. ") continue; j=split(line,word); strncpy(code1,line,2); code1[2]=" "; karptr=krecord; krdrecord=krdfirst; if(strcmp(srecord->code[n],code1)==0 ) { if(strcmp(krdrecord->Type,"Krdanta")==0 ) { if((strcmpi(srecord->voice,"kartari") == 0 && srecord->linga==krdrecord->linga && srecord->vibvach==krdrecord->vibvach) || strcmpi(srecord->voice,"karmani") == 0 ) { strncpy(code2,line+3,2); code2[2]=" "; karptr=krecord; if(karflag==0 && strcmp(code2,"00")==0) { substr=strstr(word[1],krdrecord->code[m]); if(substr) mismatch=0; else mismatch=1; } else { if(karptr != NULL) { while(1) { if((karptr->pos < krdrecord->pos) && karptr!= NULL && strcmp(karptr->code[0],code2)==0) { if(karptr->sub_no !=6 ) { substr=strstr(word[karptr->sub_no],krdrecord->code[m]); if(substr) { mismatch=0; karflag--; } else { mismatch=1; krdunmatch=krdrecord; un_match=karptr; } } } if(strcmpi(karptr->next->Type,"Krdanta")==0) break; else karptr=karptr->next; } } } } } } if(krdoth) { strncpy(code2,line+3,2); code2[2]=" "; if(karptr != NULL) { while(1) { while(1) { if(krdrecord->sub_no !=6) { if(strcmpi(krdfirst->specf,"Subject") != 0 && karptr->pos < krdrecord->pos) { } if(strcmp(karptr->code[0],code1)==0 && strcmp(code2,"00")==0 && strcmp(karptr->specf,krdrecord->specf)==0 && krdrecord->matnoun==1 && (karptr->pos == krdrecord->pos +1)) { substr=strstr(word[karptr->sub_no],krdrecord->code[m]); if(substr && krdmismatch==0) { no_krdoth--; krdmatch=krdrecord; karmatch=karptr; } else if(!substr) { krdmismatch=1; krdunmatch=krdrecord; karmatch=karptr; } break; } else if(krdrecord->matnoun != 1) { if((strcmp(code1,"AA")==0 && strcmp(code2,"00")==0 ) && strcmp(krdrecord->specf,"Subject") !=0) { substr=strstr(word[1],krdrecord->code[m]); if(substr && krdmismatch==0) { no_krdoth--; krdmatch=krdrecord; } else if(!substr) { krdmismatch=1; krdunmatch=krdrecord; } } } } if(krdrecord->sub_no ==6) { shrvib=fshtptr ; while(strcmp(krdrecord->word,shrvib->word) !=0) shrvib=shrvib->next; if(strcmp(shrvib->next->code[0],code1)==0 && strcmp(code2,"00")==0 && strcmp(karptr->specf,krdrecord->specf)==0) { substr=strstr(word[1],krdrecord->code[m]); if(substr && krdmismatch==0) { no_krdoth--; krdmatch=krdrecord; karmatch=karptr; } else if(!substr) { krdmismatch=1; krdunmatch=krdrecord; karmatch=karptr; } break; } } krdrecord=krdrecord->next; if(strcmp(krdrecord->Type,"Krdanta") !=0) break; if(krdrecord->next == NULL) break; } krdrecord=krdfirst; if(strcmpi(karptr->next->Type,"krdanta")==0) break; else karptr=karptr->next; } } else { while(strcmp(krdrecord->Type,"Verb") !=0 || krdrecord->next != NULL) { if(krdrecord->sub_no !=6) { if((strcmp(code1,"AA")==0 && strcmp(code2,"00")==0 ) && strcmp(krdrecord->specf,"Subject") !=0) { substr=strstr(word[1],krdrecord->code[m]); if(substr && krdmismatch==0) { no_krdoth--; krdmatch=krdrecord; } else if(!substr) { krdmismatch=1; krdunmatch=krdrecord; } } } krdrecord=krdrecord->next; } } } for(i=0;i<j;i++) free(word[i]); } if(Naflag==0) { if(verflag==0) { if(!krdoth ) { if(mismatch==0 && karflag==0) { krdsuc=1; flag=1; fprintf(rfp,"The Krdanta is Semantically Compatible if %s root means %s and subject is %s ",krdfirst->stem,krdfirst->base[m],srecord->base[n]); } else { krdsuc=0; flag=0; fprintf(rfp,"Verb %s is not compatible with subject %s",verptr->word,srecord->word); if(un_match != NULL) fprintf(rfp,"if %s is %s",un_match->dispSpecf,un_match->word); } } else if(krdoth) { if(mismatch==0 && karflag==0 && no_krdoth==0) { krdsuc=1; flag=1; if(karptr != NULL) fprintf(rfp,"%s %s %s is compatible with %s %s %s",karmatch->Type,karmatch->specf,karmatch->word,krdmatch->Type,krdmatch->specf,krdmatch->word); else fprintf(rfp,"%s %s %s is semantically compatible",krdmatch->Type,krdmatch->specf,krdmatch->word); fprintf(rfp,"The Krdanta is Semantically Compatible if %s root means %s and subject is %s ",krdfirst->stem,krdfirst->base[m],srecord->base[n]); } else if((mismatch || karflag) && ! no_krdoth) { krdsuc=0; flag=0; /*fprintf(rfp,"Verb %s is not compatible with subject %s
  1130. ",verptr->word,srecord->word);*/ if(mismatch) fprintf(rfp,"%s %s %s is not compatble with %s is %s",krdunmatch->Type,krdunmatch->specf,krdunmatch->word,un_match->dispSpecf,un_match->word); } else if(krdmismatch==1) { krdsuc=0; flag=0; fprintf(rfp,"%s %s %s is not compatible with %s %s %s if Krdanta base is %s ",karmatch->Type,karmatch->specf,karmatch->word,krdunmatch->Type,krdunmatch->specf,krdunmatch->word,krdunmatch->base[0]); if(un_match != NULL) fprintf(rfp,"if %s is %s ",un_match->dispSpecf,un_match->word); } } } if(verflag==1) { if(!krdoth ) { if(mismatch==0 && karflag==0) { krdsuc=1; fprintf(rfp,"The Krdanta is Semantically Compatible if %s root means %s and subject is %s ",krdfirst->stem,krdfirst->base[m],srecord->base[n]); } else { krdsuc=0; fprintf(rfp,"Verb %s is not compatible with subject %s ",verptr->word,srecord->word); if(un_match != NULL) fprintf(rfp,"if %s is %s ",un_match->dispSpecf,un_match->word); } } else if(krdoth) { if(mismatch==0 && karflag==0 && no_krdoth==0) { krdsuc=1; if(krdmatch->matnoun==1) { if(karptr != NULL ) fprintf(rfp,"%s %s %s is compatible with %s %s %s ",karmatch->Type,karmatch->specf,karmatch->word,krdmatch->Type,krdmatch->specf,krdmatch->word); } else fprintf(rfp,"%s %s %s is semantically compatible ",krdmatch->Type,krdmatch->specf,krdmatch->word); if(strcmp(krdfirst->Type,"Subject")==0) fprintf(rfp,"The Krdanta is Semantically Compatible if %s root means %s and subject is %s ",krdfirst->stem,krdfirst->base[m],srecord->base[n]); } else if((mismatch || karflag) && ! no_krdoth) { krdsuc=0; if(mismatch) fprintf(rfp,"%s %s %s is not compatble with Noun Subject if %s is %s ",krdunmatch->Type,krdunmatch->specf,krdunmatch->word,un_match->dispSpecf,un_match->word); } else if(krdmismatch==1) { krdsuc=0; fprintf(rfp,"%s %s %s is not compatible with %s %s %s if Krdanta base is %s ",karmatch->Type,karmatch->specf,karmatch->word,krdunmatch->Type,krdunmatch->specf,krdunmatch->word,krdunmatch->base[0]); if(un_match != NULL) fprintf(rfp,"if %s is %s ",un_match->dispSpecf,un_match->word); } } } } if(Naflag==1) { krdsuc=1; flag=1; } } } } if(krdavyf==1) { for(m=0;m<(avyrecord->no_base);m++) { num_sub=no_ksub; karflag=0; un_match=NULL; while(1) { if((karptr->pos < avyrecord->pos) && karptr!= NULL) karflag++; if(strcmpi(karptr->next->Type,"Krdavyaya")==0 ) break; else karptr=karptr->next; } krdrecord=krdfirst; for(n=0;n<srecord->no_base;n++) { num_sub=no_ksub; rewind(cfp); mismatch=0; krdmismatch=0; while( (c=fgetc(cfp)) != eof) { ungetc(c,cfp); fgets(line,150,cfp); if(line[0]=="
  1131. ") continue; j=split(line,word); strncpy(code1,line,2); code1[2]=" "; karptr=krecord; if(strcmp(srecord->code[n],code1)==0 ) { if(strcmp(avyrecord->Type,"Krdavyaya")==0) { strncpy(code2,line+3,2); code2[2]=" "; karptr=krecord; if(karflag==0 && strcmp(code2,"00")==0) { substr=strstr(word[1],verptr->code[m]); if(substr) mismatch=0; else mismatch=1; } else { while(1) { if((karptr->pos < avyrecord->pos) && karptr!= NULL && strcmp(karptr->code[0],code2)==0) { substr=strstr(word[karptr->sub_no],avyrecord->code[m]); if(substr) { mismatch=0; karflag--; } else { mismatch=1; un_match=karptr; } } if(strcmpi(karptr->Type,"Noun") !=0) break; else karptr=karptr->next; } } } } for(i=0;i<j;i++) free(word[i]); } if(Naflag==0) { if(!krdoth) { if(mismatch==0 && karflag==0) { krdsuc=1; fprintf(rfp,"The Krdavyaya is Semantically Compatible if %s root means %s and subject is %s ",krdavy->stem,krdavy->base[m],srecord->base[n]); } else { krdsuc=0; fprintf(rfp,"Verb %s is not compatible with subject %s ",verptr->word,srecord->word); if(un_match != NULL) fprintf(rfp,"if %s is %s ",un_match->dispSpecf,un_match->word); } } } } } } if(verflag==1) { subver=1; while(strcmpi(verptr->specf,"Verb")==0) { if(strcmpi(verptr->dispSpecf,"Verb") ==0 || strcmpi(verptr->dispSpecf,"Krdanta") ==0) { for(m=0;m<(verptr->no_base);m++) { num_sub=no_vsub; if(verptr->code[m][0] != " ") { for(n=0;n<srecord->no_base;n++) { num_sub=no_vsub; rewind(cfp); karmatch=NULL; while( (c=fgetc(cfp)) != eof) { ungetc(c,cfp); fgets(line,150,cfp); if(line[0]=="
  1132. ") continue; karptr=krecord; j=0; j=split(line,word); strncpy(code1,line,2); code1[2]=" "; strncpy(code2,line+3,2); code2[2]=" "; if(shaflag==0) { if(strcmp(srecord->code[n],code1)==0) { if(strcmp(code2,"00")==0) { if(strcmp(srecord->code[n],code1)==0) { substr=strstr(word[1],verptr->code[m]); if(substr) { if(subver) subver=1; else subver=0; } else { subunmatch=srecord; subver=0; } } } if(strcmp(code2,"00")==0 && (karptr==NULL || no_vsub==0)) { substr=strstr(word[1],verptr->code[m]); if(substr) flag=0; else flag=1; if(krdflag) { if(!krdsuc && !flag) flag=0; if(krdsuc && !flag) flag=1; if(krdsuc && flag) flag=1; } } else if(krdflag==0 ) { while(strcmpi(karptr->specf,"Verb")!=0 && krecord != NULL) { if(strcmp(karptr->code[0],code2)==0 && Saflag==0) { substr=strstr(word[karptr->sub_no],verptr->code[m]); if(substr) { karmatch=karptr; num_sub--; } else un_match=karptr; } if(strcmp(karptr->code[0],code2)==0 && Saflag==1) { substr=strstr(word[karptr->sub_no],verptr->code[m]); if(substr) { karmatch=karptr; num_sub--; } else un_match=karptr; } karptr=karptr->next; } } else if(krdflag && no_vsub) { while(strcmpi(karptr->specf,"Verb") !=0 && krecord != NULL) { if(strcmp(karptr->code[0],code2)==0) { if((karptr->pos > krdpos && strcmp(krdfirst->specf,"Subject")==0)|| strcmp(krdfirst->specf,"Subject")!=0 ) { substr=strstr(word[karptr->sub_no],verptr->code[m]); if(substr) { karmatch=karptr; num_sub--; } else un_match=karptr; } } karptr=karptr->next; } } } } else if(shaflag==1) { while(strcmpi(karptr->specf,"Verb") !=0 && strcmpi(karptr->specf,"Krdanta") !=0 && strcmpi(karptr->specf,"Krdavyaya") !=0 && krecord != NULL) { strncpy(code2,line+3,2); code2[2]=" "; if(strcmp(code2,"00")==0) { if(strcmp(srecord->code[n],code1)==0) { substr=strstr(word[1],verptr->code[m]); if(substr) { if(subver) subver=1; else { subunmatch=srecord; subver=0; } } else { subunmatch=srecord; subver=0; } } } if(karptr->sub_no==6 ) { shrvib=fshtptr ; while(strcmp(karptr->word,shrvib->word) !=0) shrvib=shrvib->next; if(strcmp(code1,shrvib->code[0])==0 && strcmp(code2,shrvib->next->code[0])==0 ) { if(strcmp(word[6],"*")==0) { karmatch=karptr; num_sub--; } else un_match=karptr; } } else if(karptr->sub_no < 6 && strcmp(srecord->code[n],code1)==0 ) { if(strcmp(karptr->code[0],code2)==0 && karptr->pos > krdpos ) { substr=strstr(word[karptr->sub_no],verptr->code[m]); if(substr) { karmatch=karptr; num_sub--; } else un_match=karptr; } } karptr=karptr->next; } } if(strcmp(code2,"00")==0 && Saflag==1) { subptr=fstptr; while(1) { if(strcmp(subptr->Type,"Noun")==0 && strcmp(subptr->specf,"Instrument")==0 && (subptr->pos == (Sapos -1)) ) { if(strcmp(subptr->code[n],code1)==0) { substr=strstr(word[1],verptr->code[m]); if(substr) { if(subver) subver=1; else { subunmatch=srecord; subver=0; } } else { subunmatch=srecord; subver=0; } } } if(subptr->next == NULL) break; else subptr=subptr->next; } } for(i=0;i<j;i++) free(word[i]); } if(Naflag==0) { if(num_sub==0 && subver) { flag=1; fprintf(rfp,"The Verb %s is Semantically Compatible With Subject if Verb Root means %s ",verptr->stem,verptr->base[m]); if(no_vsub) fprintf(rfp,"and %s is %s ",karmatch->specf,karmatch->base[m]); } else if(subver==0) { flag=0; fprintf(rfp,"The Verb %s is not compatible with the Subject ",verptr->word); } else if(num_sub && subver) { flag=0; fprintf(rfp,"The Verb %s is not compatible with Subject if %s is %s ",verptr->word,un_match->specf,un_match->stem); } if(krdflag) { if(krdsuc==1 && flag==1) flag=1; if(krdsuc==0 ||flag==0) flag=0; } } else if(Naflag==1) flag=1; } if(verptr->no_base > 1) { afppos=ftell(afp); y=Sabdabodha(afp,sfp,rfp,firstptr,sent,flag,y,pos,Saflag,verptr->base[m],m); fseek(afp,afppos,0); pos=ftell(rfp); fseek(rfp,pos,0); } } if(verptr->no_base == m+1 && verptr->no_base > 1) { while(!feof(afp)) { fgets(line,499,afp); if(line[0]=="-") break; } } } if(verptr->next==NULL) break; else verptr=verptr->next; } } } srecord=srecord->next; } if(flag==1) fprintf(rfp,"
  1133. The Sentence is Semantically Compatible"); else fprintf(rfp,"
  1134. The Sentence is Semantically Not Compatible"); fprintf(rfp,"
  1135. -------------------
  1136. "); if(fshtptr != NULL) { shrvib=fshtptr; tshrvib=shrvib; while(fshtptr->next != NULL) { while(shrvib->next != NULL) { tshrvib=shrvib; shrvib=shrvib->next; } free(shrvib->specf); free(shrvib->word); for(i=0;i<shrvib->no_base;i++) { free(shrvib->base[i]); free(shrvib->code[i]); } free(shrvib); tshrvib->next=NULL; shrvib=fshtptr; } free(shrvib->specf); free(shrvib->word); for(i=0;i<fshtptr->no_base;i++) { free(fshtptr->base[i]); free(fshtptr->code[i]); } free(fshtptr); }
  1137. अजगर-वाक्य:
  1138. यदा(srecord.specf == "subject" च srecord.Type == "Noun"):
  1139. #< भागः>{
  1140. यदि krdflag == 1:
  1141. #< भागः>{
  1142. प्रतिm अंतरे राजिः (0, (krdrecord.no_base)):
  1143. #< भागः>{
  1144. num_sub = no_ksub
  1145. karflag = 0
  1146. un_match = NULL
  1147. यदि karptr != NULL:
  1148. #< भागः>{
  1149. यदा(1):
  1150. #< भागः>{
  1151. यदि krdrecord.specf == "Subject":
  1152. #< भागः>{
  1153. यदि karptr.pos < krdrecord.pos च karptr != NULL: #< भागः>{
  1154. यदि karptr.sub_no != 6: karflag += 1#<\ भागः>#<\ भागः>
  1155.  
  1156. यदि karptr.next.Type == "Krdanta" वा karptr.next.Type == "Krdavyaya": निर्गमः
  1157. अन्यथा :karptr = karptr.next#<\ भागः>#<\ भागः>
  1158. krdoth = 0
  1159. no_krdoth = 0
  1160. यदा(1):
  1161.  
  1162. #< भागः>{
  1163. यदि krdrecord.specf != "Subject": #< भागः>{
  1164. यदि krdrecord.Type == "Krdanta": #< भागः>{
  1165. no_krdoth += 1
  1166. krdoth += 1#<\ भागः>#<\ भागः>
  1167.  
  1168. यदि krdrecord.next.Type != "Krdanta" वा krdrecord.next == NULL: निर्गमः
  1169. अन्यथा :krdrecord = krdrecord.next#<\ भागः>
  1170. krdrecord = krdfirst
  1171. प्रतिn अंतरे राजिः (0, srecord.no_base):
  1172. #< भागः>{
  1173. num_sub = no_ksub
  1174. rewind(cfp)
  1175. mismatch = 0
  1176. krdmismatch = 0
  1177. यदा((fgetc(cfp)) != eof):
  1178.  
  1179. #< भागः>{
  1180. ungetc(c, cfp)
  1181. fgets(line, 150, cfp)
  1182. यदि line[0] == "
  1183. ": प्रवृत्
  1184. j = split(line, word)
  1185. code1 = line
  1186. karptr = krecord
  1187. krdrecord = krdfirst
  1188. यदि srecord.code[n] == code1:
  1189. #< भागः>{
  1190. यदि krdrecord.Type == "Krdanta": #< भागः>{
  1191. यदि (srecord.voice == "kartari" च srecord.linga == krdrecord.linga च srecord.vibvach == krdrecord.vibvach) वा srecord.voice == "karmani": #< भागः>{
  1192. code2 = line
  1193. karptr = krecord
  1194.  
  1195. यदि karflag == 0 च code2 == "00":#< भागः>{
  1196. substr = strstr(word[1], krdrecord.code[m])
  1197.  
  1198. यदि substr:mismatch = 0
  1199. अन्यथा :mismatch = 1#<\ भागः>
  1200. अन्यथा :#< भागः>{
  1201. यदि karptr != NULL:
  1202. #< भागः>{
  1203. यदा(1):
  1204. #< भागः>{
  1205. यदि (karptr.pos < krdrecord.pos) च karptr != NULL च karptr.code[0] == code2:
  1206. #< भागः>{
  1207. यदि karptr.sub_no != 6: #< भागः>{
  1208. substr = strstr(word[karptr.sub_no], krdrecord.code[m])
  1209.  
  1210. यदि substr:#< भागः>{
  1211. mismatch = 0
  1212. karflag -= 1#<\ भागः>
  1213. अन्यथा :#< भागः>{
  1214. mismatch = 1
  1215. krdunmatch = krdrecord
  1216. un_match = karptr#<\ भागः>#<\ भागः>#<\ भागः>
  1217.  
  1218. यदि karptr.next.Type == "Krdanta": निर्गमः
  1219. अन्यथा :karptr = karptr.next#<\ भागः>#<\ भागः>#<\ भागः>#<\ भागः>#<\ भागः>#<\ भागः>
  1220. यदि krdoth:
  1221. #< भागः>{
  1222. code2 = line
  1223.  
  1224. iter_#< भागः>{
  1225. यदा(1):
  1226. #< भागः>{
  1227. यदा(1):
  1228. #< भागः>{
  1229. यदि krdrecord.sub_no != 6:
  1230. #< भागः>{
  1231. यदि krdfirst.specf != "Subject" च karptr.pos < krdrecord.pos:
  1232. #< भागः>{
  1233. #<\ भागः>
  1234.  
  1235. यदि karptr.code[0] == code1 च code2 == "00" च karptr.specf == krdrecord.specf च krdrecord.matnoun == 1 च (karptr.pos == krdrecord.pos + 1):#< भागः>{
  1236. substr = iter(#< भागः>{
  1237. यदा(1):
  1238. #< भागः>{
  1239. यदा(1):
  1240. #< भागः>{
  1241. यदि krdrecord.sub_no != 6:
  1242. #< भागः>{
  1243. यदि krdfirst.specf != "Subject" च karptr.pos < krdrecord.pos:
  1244. #< भागः>{
  1245. #<\ भागः>
  1246.  
  1247. यदि karptr.code[0] == code1 च code2 == "00" च karptr.specf == krdrecord.specf च krdrecord.matnoun == 1 च (karptr.pos == krdrecord.pos + 1):#< भागः>{
  1248. substr) # move this outside the while block
  1249. try:
  1250. next(iter_#< भागः>{
  1251. यदा(1):
  1252. #< भागः>{
  1253. यदा(1):
  1254. #< भागः>{
  1255. यदि krdrecord.sub_no != 6:
  1256. #< भागः>{
  1257. यदि krdfirst.specf != "Subject" च karptr.pos < krdrecord.pos:
  1258. #< भागः>{
  1259. #<\ भागः>
  1260.  
  1261. यदि karptr.code[0] == code1 च code2 == "00" च karptr.specf == krdrecord.specf च krdrecord.matnoun == 1 च (karptr.pos == krdrecord.pos + 1):#< भागः>{
  1262. substr)
  1263. except StopIterationException as e:
  1264. break;#<\ भागः>
  1265. प्रतिi अंतरे राजिः (0, j):
  1266. free(word[i])#<\ भागः>
  1267. यदि Naflag == 0:
  1268. #< भागः>{
  1269. यदि verflag == 0:
  1270. #< भागः>{
  1271.  
  1272. यदि !krdoth:#< भागः>{
  1273.  
  1274. यदि mismatch == 0 च karflag == 0:#< भागः>{
  1275. krdsuc = 1
  1276. flag = 1
  1277. fprintf(rfp, "The Krdanta is Semantically Compatible if %s root means %s and subject is %s ", krdfirst.stem, krdfirst.base[m], srecord.base[n])#<\ भागः>
  1278. अन्यथा :#< भागः>{
  1279. krdsuc = 0
  1280. flag = 0
  1281. fprintf(rfp, "Verb %s is not compatible with subject %s", verptr.word, srecord.word)
  1282. यदि un_match != NULL: fprintf(rfp, "if %s is %s", un_match.dispSpecf, un_match.word)#<\ भागः>#<\ भागः>
  1283. अन्यथा :
  1284. यदि krdoth: #< भागः>{
  1285.  
  1286. यदि mismatch == 0 च karflag == 0 च no_krdoth == 0:#< भागः>{
  1287. krdsuc = 1
  1288. flag = 1
  1289.  
  1290. iter_fprintf(rfp, "%s %s %s is compatible with %s %s %s", karmatch.Type, karmatch.specf, karmatch.word, krdmatch.Type, krdmatch.specf, krdmatch.word) = iter(fprintf(rfp, "%s %s %s is compatible with %s %s %s", karmatch.Type, karmatch.specf, karmatch.word, krdmatch.Type, krdmatch.specf, krdmatch.word)) # move this outside the while block
  1291. try:
  1292. next(iter_fprintf(rfp, "%s %s %s is compatible with %s %s %s", karmatch.Type, karmatch.specf, karmatch.word, krdmatch.Type, krdmatch.specf, krdmatch.word))
  1293. except StopIterationException as e:
  1294. break;
  1295. fprintf(rfp, "The Krdanta is Semantically Compatible if %s root means %s and subject is %s ", krdfirst.stem, krdfirst.base[m], srecord.base[n])#<\ भागः>
  1296. अन्यथा :
  1297.  
  1298. यदि (mismatch वा karflag) च !no_krdoth:#< भागः>{
  1299. krdsuc = 0
  1300. flag = 0
  1301.  
  1302. '''fprintf(rfp,"Verb %s is not compatible with subject %s
  1303. ",verptr->word,srecord->word);'''
  1304. यदि mismatch: fprintf(rfp, "%s %s %s is not compatble with %s is %s", krdunmatch.Type, krdunmatch.specf, krdunmatch.word, un_match.dispSpecf, un_match.word)#<\ भागः>
  1305. अन्यथा : यदि krdmismatch == 1: #< भागः>{
  1306. krdsuc = 0
  1307. flag = 0
  1308. fprintf(rfp, "%s %s %s is not compatible with %s %s %s if Krdanta base is %s ", karmatch.Type, karmatch.specf, karmatch.word, krdunmatch.Type, krdunmatch.specf, krdunmatch.word, krdunmatch.base[0])
  1309. यदि un_match != NULL: fprintf(rfp, "if %s is %s ", un_match.dispSpecf, un_match.word)#<\ भागः>#<\ भागः>#<\ भागः>
  1310. यदि verflag == 1: #< भागः>{
  1311.  
  1312. यदि !krdoth:#< भागः>{
  1313.  
  1314. यदि mismatch == 0 च karflag == 0:#< भागः>{
  1315. krdsuc = 1
  1316. fprintf(rfp, "The Krdanta is Semantically Compatible if %s root means %s and subject is %s ", krdfirst.stem, krdfirst.base[m], srecord.base[n])#<\ भागः>
  1317. अन्यथा :#< भागः>{
  1318. krdsuc = 0
  1319. fprintf(rfp, "Verb %s is not compatible with subject %s ", verptr.word, srecord.word)
  1320. यदि un_match != NULL: fprintf(rfp, "if %s is %s ", un_match.dispSpecf, un_match.word)#<\ भागः>#<\ भागः>
  1321. अन्यथा : यदि krdoth: #< भागः>{
  1322.  
  1323. यदि mismatch == 0 च karflag == 0 च no_krdoth == 0:#< भागः>{
  1324. krdsuc = 1
  1325.  
  1326. यदि krdmatch.matnoun == 1:#< भागः>{
  1327. यदि karptr != NULL: fprintf(rfp, "%s %s %s is compatible with %s %s %s ", karmatch.Type, karmatch.specf, karmatch.word, krdmatch.Type, krdmatch.specf, krdmatch.word)#<\ भागः>
  1328. अन्यथा :fprintf(rfp, "%s %s %s is semantically compatible ", krdmatch.Type, krdmatch.specf, krdmatch.word)
  1329. यदि krdfirst.Type == "Subject": fprintf(rfp, "The Krdanta is Semantically Compatible if %s root means %s and subject is %s ", krdfirst.stem, krdfirst.base[m], srecord.base[n])#<\ भागः>
  1330. अन्यथा :
  1331.  
  1332. यदि (mismatch वा karflag) च !no_krdoth:#< भागः>{
  1333. krdsuc = 0
  1334. यदि mismatch: fprintf(rfp, "%s %s %s is not compatble with Noun Subject if %s is %s ", krdunmatch.Type, krdunmatch.specf, krdunmatch.word, un_match.dispSpecf, un_match.word)#<\ भागः>
  1335. अन्यथा : यदि krdmismatch == 1: #< भागः>{
  1336. krdsuc = 0
  1337. fprintf(rfp, "%s %s %s is not compatible with %s %s %s if Krdanta base is %s ", karmatch.Type, karmatch.specf, karmatch.word, krdunmatch.Type, krdunmatch.specf, krdunmatch.word, krdunmatch.base[0])
  1338. यदि un_match != NULL: fprintf(rfp, "if %s is %s ", un_match.dispSpecf, un_match.word)#<\ भागः>#<\ भागः>#<\ भागः>#<\ भागः>
  1339. यदि Naflag == 1:
  1340. #< भागः>{
  1341. krdsuc = 1
  1342. flag = 1#<\ भागः>#<\ भागः>#<\ भागः>#<\ भागः>
  1343. यदि krdavyf == 1:
  1344. #< भागः>{
  1345. प्रतिm अंतरे राजिः (0, (avyrecord.no_base)):
  1346.  
  1347. #< भागः>{
  1348. num_sub = no_ksub
  1349. karflag = 0
  1350. un_match = NULL
  1351. यदा(1):
  1352.  
  1353. #< भागः>{
  1354. यदि (karptr.pos < avyrecord.pos) च karptr != NULL:
  1355. karflag += 1
  1356.  
  1357. यदि karptr.next.Type == "Krdavyaya": निर्गमः
  1358. अन्यथा :karptr = karptr.next#<\ भागः>
  1359. krdrecord = krdfirst
  1360. प्रतिn अंतरे राजिः (0, srecord.no_base):
  1361. #< भागः>{
  1362. num_sub = no_ksub
  1363. rewind(cfp)
  1364. mismatch = 0
  1365. krdmismatch = 0
  1366. यदा((fgetc(cfp)) != eof):
  1367.  
  1368. #< भागः>{
  1369. ungetc(c, cfp)
  1370. fgets(line, 150, cfp)
  1371. यदि line[0] == "
  1372. ": प्रवृत्
  1373. j = split(line, word)
  1374. code1 = line
  1375. karptr = krecord
  1376. यदि srecord.code[n] == code1:
  1377. #< भागः>{
  1378. यदि avyrecord.Type == "Krdavyaya": #< भागः>{
  1379. code2 = line
  1380. karptr = krecord
  1381.  
  1382. यदि karflag == 0 च code2 == "00":#< भागः>{
  1383. substr = strstr(word[1], verptr.code[m])
  1384.  
  1385. यदि substr:mismatch = 0
  1386. अन्यथा :mismatch = 1#<\ भागः>
  1387. अन्यथा :#< भागः>{
  1388. यदा(1):
  1389. #< भागः>{
  1390. यदि (karptr.pos < avyrecord.pos) च karptr != NULL च karptr.code[0] == code2:
  1391. #< भागः>{
  1392. substr = strstr(word[karptr.sub_no], avyrecord.code[m])
  1393.  
  1394. यदि substr:#< भागः>{
  1395. mismatch = 0
  1396. karflag -= 1#<\ भागः>
  1397. अन्यथा :#< भागः>{
  1398. mismatch = 1
  1399. un_match = karptr#<\ भागः>#<\ भागः>
  1400.  
  1401. यदि karptr.Type != "Noun": निर्गमः
  1402. अन्यथा :karptr = karptr.next#<\ भागः>#<\ भागः>#<\ भागः>#<\ भागः>
  1403. प्रतिi अंतरे राजिः (0, j):
  1404. free(word[i])#<\ भागः>
  1405. यदि Naflag == 0: #< भागः>{
  1406. यदि !krdoth: #< भागः>{
  1407.  
  1408. यदि mismatch == 0 च karflag == 0:#< भागः>{
  1409. krdsuc = 1
  1410. fprintf(rfp, "The Krdavyaya is Semantically Compatible if %s root means %s and subject is %s ", krdavy.stem, krdavy.base[m], srecord.base[n])#<\ भागः>
  1411. अन्यथा :#< भागः>{
  1412. krdsuc = 0
  1413. fprintf(rfp, "Verb %s is not compatible with subject %s ", verptr.word, srecord.word)
  1414. यदि un_match != NULL: fprintf(rfp, "if %s is %s ", un_match.dispSpecf, un_match.word)#<\ भागः>#<\ भागः>#<\ भागः>#<\ भागः>#<\ भागः>#<\ भागः>
  1415. यदि verflag == 1:
  1416. #< भागः>{
  1417. subver = 1
  1418. यदा(verptr.specf == "Verb"):
  1419. #< भागः>{
  1420. यदि verptr.dispSpecf == "Verb" वा verptr.dispSpecf == "Krdanta":
  1421. #< भागः>{
  1422. प्रतिm अंतरे राजिः (0, (verptr.no_base)):
  1423.  
  1424. #< भागः>{
  1425. num_sub = no_vsub
  1426. यदि verptr.code[m][0] != " ":
  1427. #< भागः>{
  1428. प्रतिn अंतरे राजिः (0, srecord.no_base):
  1429.  
  1430. #< भागः>{
  1431. num_sub = no_vsub
  1432. rewind(cfp)
  1433. karmatch = NULL
  1434. यदा((fgetc(cfp)) != eof):
  1435.  
  1436. #< भागः>{
  1437. ungetc(c, cfp)
  1438. fgets(line, 150, cfp)
  1439. यदि line[0] == "
  1440. ": प्रवृत्
  1441. karptr = krecord
  1442. j = 0
  1443. j = split(line, word)
  1444. code1 = line
  1445. code2 = line
  1446.  
  1447. यदि shaflag == 0:#< भागः>{
  1448. यदि srecord.code[n] == code1:
  1449. #< भागः>{
  1450. यदि code2 == "00": #< भागः>{
  1451. यदि srecord.code[n] == code1: #< भागः>{
  1452. substr = strstr(word[1], verptr.code[m])
  1453.  
  1454. यदि substr:#< भागः>{
  1455.  
  1456. यदि subver:subver = 1
  1457. अन्यथा :
  1458. subver = 0#<\ भागः>
  1459. अन्यथा :#< भागः>{
  1460. subunmatch = srecord
  1461. subver = 0#<\ भागः>#<\ भागः>#<\ भागः>
  1462.  
  1463. यदि code2 == "00" च (karptr == NULL वा no_vsub == 0):#< भागः>{
  1464. substr = strstr(word[1], verptr.code[m])
  1465.  
  1466. यदि substr:flag = 0
  1467. अन्यथा :flag = 1
  1468. यदि krdflag: #< भागः>{
  1469. यदि !krdsuc च !flag:
  1470. flag = 0
  1471. यदि krdsuc च !flag: flag = 1
  1472. यदि krdsuc च flag: flag = 1#<\ भागः>#<\ भागः>
  1473. अन्यथा :
  1474. यदि krdflag == 0:#< भागः>{
  1475. यदा(karptr.specf != "Verb" च krecord != NULL):
  1476. #< भागः>{
  1477. यदि karptr.code[0] == code2 च Saflag == 0:
  1478. #< भागः>{
  1479. substr = strstr(word[karptr.sub_no], verptr.code[m])
  1480.  
  1481. यदि substr:#< भागः>{
  1482. karmatch = karptr
  1483. num_sub -= 1#<\ भागः>
  1484. अन्यथा :un_match = karptr#<\ भागः>
  1485. यदि karptr.code[0] == code2 च Saflag == 1:
  1486. #< भागः>{
  1487. substr = strstr(word[karptr.sub_no], verptr.code[m])
  1488.  
  1489. यदि substr:#< भागः>{
  1490. karmatch = karptr
  1491. num_sub -= 1#<\ भागः>
  1492. अन्यथा :un_match = karptr#<\ भागः>
  1493. karptr = karptr.next#<\ भागः>#<\ भागः>
  1494. अन्यथा : यदि krdflag च no_vsub: #< भागः>{
  1495. यदा(karptr.specf != "Verb" च krecord != NULL):
  1496.  
  1497. #< भागः>{
  1498. यदि karptr.code[0] == code2: #< भागः>{
  1499. यदि (karptr.pos > krdpos च krdfirst.specf == "Subject") वा krdfirst.specf != "Subject": #< भागः>{
  1500. substr = strstr(word[karptr.sub_no], verptr.code[m])
  1501.  
  1502. यदि substr:#< भागः>{
  1503. karmatch = karptr
  1504. num_sub -= 1#<\ भागः>
  1505. अन्यथा :un_match = karptr#<\ भागः>#<\ भागः>
  1506. karptr = karptr.next#<\ भागः>#<\ भागः>#<\ भागः>#<\ भागः>
  1507. अन्यथा :
  1508. यदि shaflag == 1:
  1509. #< भागः>{
  1510. यदा(karptr.specf != "Verb" च karptr.specf != "Krdanta" च karptr.specf != "Krdavyaya" च krecord != NULL):
  1511. #< भागः>{
  1512. code2 = line
  1513. यदि code2 == "00":
  1514. #< भागः>{
  1515. यदि srecord.code[n] == code1: #< भागः>{
  1516. substr = strstr(word[1], verptr.code[m])
  1517.  
  1518. यदि substr:#< भागः>{
  1519.  
  1520. यदि subver:subver = 1
  1521. अन्यथा :#< भागः>{
  1522. subunmatch = srecord
  1523. subver = 0#<\ भागः>#<\ भागः>
  1524. अन्यथा :#< भागः>{
  1525. subunmatch = srecord
  1526. subver = 0#<\ भागः>#<\ भागः>#<\ भागः>
  1527.  
  1528. यदि karptr.sub_no == 6:#< भागः>{
  1529. shrvib = fshtptr
  1530. यदा(karptr.word != shrvib.word):
  1531. shrvib = shrvib.next
  1532. यदि code1 == shrvib.code[0] च code2 == shrvib.next.code[0]: #< भागः>{
  1533.  
  1534. यदि word[6] == "*":#< भागः>{
  1535. karmatch = karptr
  1536. num_sub -= 1#<\ भागः>
  1537. अन्यथा :un_match = karptr#<\ भागः>#<\ भागः>
  1538. अन्यथा : यदि karptr.sub_no < 6 च srecord.code[n] == code1:
  1539. #< भागः>{
  1540. यदि karptr.code[0] == code2 च karptr.pos > krdpos: #< भागः>{
  1541. substr = strstr(word[karptr.sub_no], verptr.code[m])
  1542.  
  1543. यदि substr:#< भागः>{
  1544. karmatch = karptr
  1545. num_sub -= 1#<\ भागः>
  1546. अन्यथा :un_match = karptr#<\ भागः>#<\ भागः>
  1547. karptr = karptr.next#<\ भागः>#<\ भागः>
  1548. यदि code2 == "00" च Saflag == 1:
  1549. #< भागः>{
  1550. subptr = fstptr
  1551. यदा(1):
  1552. #< भागः>{
  1553. यदि subptr.Type == "Noun" च subptr.specf == "Instrument" च (subptr.pos == (Sapos - 1)):
  1554. #< भागः>{
  1555. यदि subptr.code[n] == code1: #< भागः>{
  1556. substr = strstr(word[1], verptr.code[m])
  1557.  
  1558. यदि substr:#< भागः>{
  1559.  
  1560. यदि subver:subver = 1
  1561. अन्यथा :
  1562. #< भागः>{
  1563. subunmatch = srecord
  1564. subver = 0#<\ भागः>#<\ भागः>
  1565. अन्यथा :#< भागः>{
  1566. subunmatch = srecord
  1567. subver = 0#<\ भागः>#<\ भागः>#<\ भागः>
  1568.  
  1569. यदि subptr.next == NULL: निर्गमः
  1570. अन्यथा :subptr = subptr.next#<\ भागः>#<\ भागः>
  1571. प्रतिi अंतरे राजिः (0, j):
  1572. free(word[i])#<\ भागः>
  1573.  
  1574. यदि Naflag == 0:#< भागः>{
  1575.  
  1576. यदि num_sub == 0 च subver:#< भागः>{
  1577. flag = 1
  1578. fprintf(rfp, "The Verb %s is Semantically Compatible With Subject if Verb Root means %s ", verptr.stem, verptr.base[m])
  1579. यदि no_vsub: fprintf(rfp, "and %s is %s ", karmatch.specf, karmatch.base[m])#<\ भागः>
  1580. अन्यथा :
  1581. यदि subver == 0:#< भागः>{
  1582. flag = 0
  1583. fprintf(rfp, "The Verb %s is not compatible with the Subject ", verptr.word)#<\ भागः>
  1584. अन्यथा : यदि num_sub च subver: #< भागः>{
  1585. flag = 0
  1586. fprintf(rfp, "The Verb %s is not compatible with Subject if %s is %s ", verptr.word, un_match.specf, un_match.stem)#<\ भागः>
  1587. यदि krdflag: #< भागः>{
  1588. यदि krdsuc == 1 च flag == 1: flag = 1
  1589. यदि krdsuc == 0 वा flag == 0: flag = 0#<\ भागः>#<\ भागः>
  1590. अन्यथा : यदि Naflag == 1: flag = 1#<\ भागः>
  1591. यदि verptr.no_base > 1: #< भागः>{
  1592. afppos = ftell
  1593. (afp)
  1594. y = Sabdabodha(afp, sfp, rfp, firstptr, sent, flag, y, pos, Saflag, verptr.base[m], m)
  1595. fseek(afp, afppos, 0)
  1596. pos = ftell(rfp)
  1597. fseek(rfp, pos, 0)#<\ भागः>#<\ भागः>
  1598. यदि verptr.no_base == m + 1 च verptr.no_base > 1:
  1599. #< भागः>{
  1600. यदा( !feof(afp)):
  1601. #< भागः>{
  1602. fgets(line, 499, afp)
  1603. यदि line[0] == "-": निर्गमः#<\ भागः>#<\ भागः>#<\ भागः>
  1604.  
  1605. यदि verptr.next == NULL: निर्गमः
  1606. अन्यथा :verptr = verptr.next#<\ भागः>#<\ भागः>#<\ भागः>
  1607. srecord = srecord.next#<\ भागः>
  1608.  
  1609. यदि flag == 1:fprintf(rfp, "
  1610. The Sentence is Semantically Compatible")
  1611. अन्यथा :fprintf(rfp, "
  1612. The Sentence is Semantically Not Compatible")
  1613. fprintf(rfp, "
  1614. -------------------
  1615. ")
  1616. यदि fshtptr != NULL: #< भागः>{
  1617. shrvib = fshtptr
  1618. tshrvib = shrvib
  1619. यदा(fshtptr.next != NULL):
  1620.  
  1621. #< भागः>{
  1622. यदा(shrvib.next != NULL):
  1623. #< भागः>{
  1624. tshrvib = shrvib
  1625. shrvib = shrvib.next#<\ भागः>
  1626. free(shrvib.specf)
  1627. free(shrvib.word)
  1628. प्रतिi अंतरे राजिः (0, shrvib.no_base):
  1629.  
  1630. #< भागः>{
  1631. free(shrvib.base[i])
  1632. free(shrvib.code[i])#<\ भागः>
  1633. free(shrvib)
  1634. tshrvib.next = NULL
  1635. shrvib = fshtptr#<\ भागः>
  1636. free(shrvib.specf)
  1637. free(shrvib.word)
  1638. प्रतिi अंतरे राजिः (0, fshtptr.no_base):
  1639.  
  1640. #< भागः>{
  1641. free(fshtptr.base[i])
  1642. free(fshtptr.code[i])#<\ भागः>
  1643. free(fshtptr)#<\ भागः>
  1644.  
  1645. Process finished with exit code 0
  1646.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement