]>
git.proxmox.com Git - mirror_edk2.git/blob - Tools/Java/Source/MigrationTools/org/tianocore/migration/Func.java
3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 package org
.tianocore
.migration
;
15 import java
.util
.regex
.Matcher
;
16 import java
.util
.regex
.Pattern
;
19 Func(String r8func
, String r8lib
, String r9func
, String r9lib
) {
26 Func(String
[] linecontext
) {
27 r8funcname
= linecontext
[1];
28 r8libname
= linecontext
[0];
29 r9funcname
= linecontext
[2];
30 if (r9funcname
.contains("n/a")) {
31 r9funcname
= "#error Unknown or missing library function in EDKII: "
34 r9libname
= linecontext
[3];
37 public String r8funcname
;
39 public String r8libname
;
41 public String r9funcname
;
43 public String r9libname
;
45 public static Pattern ptnbrace
= Pattern
.compile("\\{[^\\{\\}]*\\}",
48 public static Pattern ptnfuncc
= Pattern
.compile(
49 "(?<!->)([a-zA-Z_]\\w*)\\s*\\(", Pattern
.MULTILINE
);
51 public static Pattern ptnfuncd
= Pattern
.compile(
52 "([a-zA-Z_]\\w*)\\s*\\([^\\)\\(]*\\)\\s*@", Pattern
.MULTILINE
);
54 public static Pattern ptnlowcase
= Pattern
.compile("[a-z]"); // must be
57 private static String reservedwords
= "if for pack while switch return sizeof";
59 public static String
register(Matcher mtr
, ModuleInfo mi
, Database db
) {
62 temp
= mtr
.group(1); // both changed and not changed funcc are
63 // registered , for finding all the non-local
65 Matcher mtrlowcase
= ptnlowcase
.matcher(temp
); // must be removed , so
66 // the two funcs can be
68 if (!reservedwords
.contains(temp
) && mtrlowcase
.find()) {
69 mi
.hashfuncc
.add(temp
);