1 | !636 |
2 | !629 // standard functions |
3 | |
4 | main { |
5 | psvm { |
6 | String src = takeInput(args, null); |
7 | List<String> cnc = parseCNC(src); |
8 | for (int i = 1; i+2 < cnc.size(); i += 2) { |
9 | if (cnc.get(i).equals("class") |
10 | && cnc.get(i+2).equals("main")) { |
11 | int j = i; |
12 | while (j < cnc.size() && !cnc.get(j).equals("{")) |
13 | j += 2; |
14 | int k = findEndOfBlock(cnc, j); |
15 | printExcerpt(cnc, i, k); |
16 | break; |
17 | } |
18 | } |
19 | } |
20 | |
21 | static int findEndOfBlock(List<String> cnc, int i) { |
22 | int j = i+2, level = 1; |
23 | while (j < cnc.size()) { |
24 | if (cnc.get(j).equals("{")) ++level; |
25 | else if (cnc.get(j).equals("}")) --level; |
26 | if (level == 0) |
27 | return j+1; |
28 | } |
29 | return cnc.size(); |
30 | } |
31 | |
32 | static void printExcerpt(List<String> cnc, int i, int j) { |
33 | StringBuilder out = new StringBuilder(); |
34 | for (; i < j; i++) |
35 | out.append(cnc.get(i)); |
36 | System.out.println(out.toString()); |
37 | } |
38 | |
39 | static String takeInput(String[] args, String def) tex { |
40 | return args.length != 0 ? loadSnippet(args[0]) : loadTextFile("input/input.txt", def); |
41 | } |
42 | |
43 | static List<String> parseCNC(String src) { |
44 | List<String> list = new ArrayList<String>(); |
45 | for (String s : toLines(src)) |
46 | list.add(unquote(s)); |
47 | return list; |
48 | } |
49 | } |
Snippet is not live.
Travelled to 13 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, qbtsjoyahagl, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
Snippet ID: | #2000396 |
Snippet name: | Find main class (developing) |
Eternal ID of this version: | #2000396/1 |
Text MD5: | 1727b670fd86e594345a288c07241eb2 |
Author: | stefan |
Category: | javax |
Type: | New Tinybrain snippet |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2015-06-27 20:33:18 |
Source code size: | 1328 bytes / 49 lines |
Pitched / IR pitched: | No / Yes |
Views / Downloads: | 670 / 166 |
Referenced in: | [show references] |