-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTestNestedTypes.cs
More file actions
58 lines (50 loc) · 1.76 KB
/
TestNestedTypes.cs
File metadata and controls
58 lines (50 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System;
using MarketAlly.IronJava.Core;
using MarketAlly.IronJava.Core.AST.Nodes;
class TestNestedTypes
{
static void Main()
{
var javaCode = @"
public class OuterClass {
private int outerField;
public class InnerClass {
private String innerField;
public void innerMethod() {
System.out.println(innerField);
}
}
public static class StaticNestedClass {
private static int staticField;
}
public interface NestedInterface {
void doSomething();
}
}
";
var result = JavaParser.Parse(javaCode);
if (result.Success)
{
Console.WriteLine("Parse successful!");
var outerClass = result.Ast.Types[0] as ClassDeclaration;
if (outerClass != null)
{
Console.WriteLine($"Outer class: {outerClass.Name}");
Console.WriteLine($"Number of members: {outerClass.Members.Count}");
Console.WriteLine($"Number of nested types: {outerClass.NestedTypes.Count}");
foreach (var nestedType in outerClass.NestedTypes)
{
Console.WriteLine($" - Nested type: {nestedType.Name} ({nestedType.GetType().Name})");
}
}
}
else
{
Console.WriteLine("Parse failed!");
foreach (var error in result.Errors)
{
Console.WriteLine($"Error: {error}");
}
}
}
}