11// See https://aka.ms/new-console-template for more information
22using AX . ST . Semantic ;
3+ using AX . ST . Semantic . Model ;
4+ using AX . ST . Semantic . Model . Declarations ;
5+ using AX . ST . Semantic . Pragmas ;
36using AX . ST . Syntax . Parser ;
47using AX . ST . Syntax . Tree ;
58using AX . Text ;
69using AX . Text . Diagnostics ;
710using AXSharp . Compiler ;
811using AXSharp . ixc_doc ;
9- using System ;
10- using CommandLine ;
11- using System . Reflection ;
12- using System . Text ;
13- using CliWrap ;
14- using System . Runtime . InteropServices ;
15- using System . Runtime . CompilerServices ;
16- using AX . ST . Semantic . Model ;
1712using AXSharp . ixr_doc ;
13+ using CliWrap ;
14+ using CommandLine ;
1815using Microsoft . CodeAnalysis ;
1916using Serilog . Parsing ;
20- using static System . Net . Mime . MediaTypeNames ;
17+ using System ;
18+ using System . Reflection ;
19+ using System . Runtime . CompilerServices ;
20+ using System . Runtime . InteropServices ;
21+ using System . Text ;
2122using System . Text . RegularExpressions ;
23+ using static System . Net . Mime . MediaTypeNames ;
2224
2325
2426const string Logo =
@@ -94,30 +96,39 @@ void IterateSyntaxTreeForStringLiterals(ISyntaxNode root, LocalizedStringWrapper
9496{
9597 foreach ( var literalSyntax in GetChildNodesRecursive ( root ) . OfType < ILiteralSyntax > ( ) )
9698 {
97- var token = literalSyntax . Tokens . First ( ) ;
9899 AddToDictionaryIfLocalizedStringInLiterals ( literalSyntax , lw , fileName ) ;
99100 }
100101}
101102
102-
103-
104103void IterateSyntaxTreeForPragmas ( ISyntaxNode root , LocalizedStringWrapper lw , string fileName )
105104{
106- foreach ( var pragmaSyntax in GetChildNodesRecursive ( root ) . OfType < PragmaSyntax > ( ) )
105+ foreach ( var storage in GetChildNodesRecursive ( root ) . OfType < IVariableDeclarationSyntax > ( ) )
107106 {
108- var token = pragmaSyntax ;
109- if ( lw . IsAttributeNamePragmaToken ( token . PragmaContent ) )
107+ storage . GetLeadingPragmas ( ) . ToList ( ) . ForEach ( pragmaSyntax =>
110108 {
111- AddToDictionaryIfLocalizedString ( token , lw , fileName ) ;
112- }
109+ var token = pragmaSyntax as PragmaSyntax ;
110+ if ( lw . IsAttributeNamePragmaToken ( pragmaSyntax . Content ) )
111+ {
112+ AddToDictionaryIfLocalizedStringInPragmas ( token , lw , fileName ) ;
113+ }
114+ } ) ;
115+ }
116+ foreach ( var storage in GetChildNodesRecursive ( root ) . OfType < IDeclarationSyntax > ( ) )
117+ {
118+ storage . GetLeadingPragmas ( ) . ToList ( ) . ForEach ( pragmaSyntax =>
119+ {
120+ var token = pragmaSyntax ;
121+ if ( lw . IsAttributeNamePragmaToken ( pragmaSyntax . Content ) )
122+ {
123+ AddToDictionaryIfLocalizedStringInPragmas ( token , lw , fileName ) ;
124+ }
125+ } ) ;
113126 }
114127}
115128
116- void AddToDictionaryIfLocalizedString ( PragmaSyntax token , LocalizedStringWrapper lw , string fileName )
129+ void AddToDictionaryIfLocalizedStringInPragmas ( PragmaSyntax token , LocalizedStringWrapper lw , string fileName )
117130{
118- // if is valid token
119- if ( IsStringToken ( token ) || IsPragmaToken ( token ) )
120- {
131+
121132 // try to acquire localized string
122133 var localizedStringList = lw . TryToGetLocalizedStrings ( token . PragmaContent ) ;
123134
@@ -142,8 +153,7 @@ void AddToDictionaryIfLocalizedString(PragmaSyntax token, LocalizedStringWrapper
142153 // add id and wrapper to dictionary
143154 lw . LocalizedStringsDictionary . TryAdd ( id , wrapper ) ;
144155 }
145- }
146- }
156+ }
147157}
148158
149159void AddToDictionaryIfLocalizedStringInLiterals ( ILiteralSyntax literal , LocalizedStringWrapper lw , string fileName )
@@ -158,9 +168,9 @@ void AddToDictionaryIfLocalizedStringInLiterals(ILiteralSyntax literal, Localize
158168 // try to acquire localized string
159169 var localizedStringList = lw . TryToGetLocalizedStrings ( token . FullText ) ;
160170
161- if ( localizedStringList == null )
171+ if ( localizedStringList == null )
162172 {
163- return ;
173+ continue ; // ✓ Skip to next token
164174 }
165175
166176 foreach ( string localizedString in localizedStringList )
@@ -184,12 +194,8 @@ void AddToDictionaryIfLocalizedStringInLiterals(ILiteralSyntax literal, Localize
184194 }
185195}
186196bool IsPragmaToken ( PragmaSyntax token )
187- {
188- //if(token.SyntaxKind == SyntaxKind.PragmaToken)
189- //{
190- // return true;
191- //}
192- return false ;
197+ {
198+ return true ;
193199}
194200
195201bool IsStringToken ( PragmaSyntax token )
0 commit comments