⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idl.jj

📁 java 编译器java复杂编译器,可以编译java文件的类库
💻 JJ
字号:
/* * Copyright © 2002 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * California 95054, U.S.A. All rights reserved.  Sun Microsystems, Inc. has * intellectual property rights relating to technology embodied in the product * that is described in this document. In particular, and without limitation, * these intellectual property rights may include one or more of the U.S. * patents listed at http://www.sun.com/patents and one or more additional * patents or pending patent applications in the U.S. and in other countries. * U.S. Government Rights - Commercial software. Government users are subject * to the Sun Microsystems, Inc. standard license agreement and applicable * provisions of the FAR and its supplements.  Use is subject to license terms. * Sun,  Sun Microsystems,  the Sun logo and  Java are trademarks or registered * trademarks of Sun Microsystems, Inc. in the U.S. and other countries.  This * product is covered and controlled by U.S. Export Control laws and may be * subject to the export or import laws in other countries.  Nuclear, missile, * chemical biological weapons or nuclear maritime end uses or end users, * whether direct or indirect, are strictly prohibited.  Export or reexport * to countries subject to U.S. embargo or to entities identified on U.S. * export exclusion lists, including, but not limited to, the denied persons * and specially designated nationals lists is strictly prohibited. */PARSER_BEGIN(IDLParser)public class IDLParser {  public static void main(String args[]) {    IDLParser parser;    if (args.length == 0) {      System.out.println("IDL Parser Version 0.1:  Reading from standard input . . .");      parser = new IDLParser(System.in);    } else if (args.length == 1) {      System.out.println("IDL Parser Version 0.1:  Reading from file " + args[0] + " . . .");      try {        parser = new IDLParser(new java.io.FileInputStream(args[0]));      } catch (java.io.FileNotFoundException e) {        System.out.println("IDL Parser Version 0.1:  File " + args[0] + " not found.");        return;      }    } else {      System.out.println("IDL Parser Version 0.1:  Usage is one of:");      System.out.println("         java IDLParser < inputfile");      System.out.println("OR");      System.out.println("         java IDLParser inputfile");      return;    }    try {      parser.specification();      System.out.println("IDL Parser Version 0.1:  Java program parsed successfully.");    } catch (ParseException e) {      System.out.println("IDL Parser Version 0.1:  Encountered errors during parse.");    }  }}PARSER_END(IDLParser)/* * Tokens to ignore in the BNF follow. */SKIP :{  < " " >| < "\t" >| < "\n" >| < "\r" >| < "//" (~["\n"])* "\n" >| <"/*" (~["*"])* "*" (~["/"] (~["*"])* "*")* "/">| < "#" ([" ","\t"])* (["0"-"9"])+    (([" ","\t"])* "\"" (~["\""])+ "\""           ([" ","\t"])* (["0"-"9"])* ([" ","\t"])* (["0"-"9"])*)? "\n" >}/* Production 1 */void specification() :{}{  ( definition() )+}/* Production 2 */void definition() :{}{  type_dcl() ";"|  const_dcl() ";"|  except_dcl() ";"|  interfacex() ";"|  module() ";"}/* Production 3 */void module() :{}{  "module" identifier() "{" ( definition() )+ "}"}/* Production 4 */void interfacex() :{}{  LOOKAHEAD(3)  interface_dcl()|  forward_dcl()}/* Production 5 */void interface_dcl() :{}{  interface_header() "{" interface_body() "}"}/* Production 6 */void forward_dcl() :{}{  "interface" identifier()}/* Production 7 */void interface_header() :{}{  "interface" identifier() [ inheritance_spec() ]}/* Production 8 */void interface_body() :{}{  ( export() )*}/* Production 9 */void export() :{}{  type_dcl() ";"|  const_dcl() ";"|  except_dcl() ";"|  attr_dcl() ";"|  op_dcl() ";"}/* Production 10 */void inheritance_spec() :{}{  ":" scoped_name() ( "," scoped_name() )*}/* Production 11 */void scoped_name() :{}{  [ "::" ] identifier() ( "::" identifier() )*}/* Production 12 */void const_dcl() :{}{  "const" const_type() identifier() "=" const_exp()}/* Production 13 */void const_type() :{}{  integer_type()|  char_type()|  boolean_type()|  floating_pt_type()|  string_type()|  scoped_name()}/* Production 14 */void const_exp() :{}{  or_expr()}/* Production 15 */void or_expr() :{}{  xor_expr() ( "|" xor_expr() )*}/* Production 16 */void xor_expr() :{}{  and_expr() ( "^" and_expr() )*}/* Production 17 */void and_expr() :{}{  shift_expr() ( "&" shift_expr() )*}/* Production 18 */void shift_expr() :{}{  add_expr() ( ( ">>" | "<<" ) add_expr() )*}/* Production 19 */void add_expr() :{}{  mult_expr() ( ( "+" | "-" ) mult_expr() )*}/* Production 20 */void mult_expr() :{}{  unary_expr() ( ( "*" | "/" | "%" ) unary_expr() )*}/* Production 21 */void unary_expr() :{}{  [ unary_operator() ] primary_expr()}/* Production 22 */void unary_operator() :{}{  "-"|  "+"|  "~"}/* Production 23 */void primary_expr() :{}{  scoped_name()|  literal()|  "(" const_exp() ")"}/* Production 24 */void literal() :{}{  integer_literal()|  string_literal()|  character_literal()|  floating_pt_literal()|  boolean_literal()}/* Production 25 */void boolean_literal() :{}{  "TRUE"|  "FALSE"}/* Production 26 */void positive_int_const() :{}{  const_exp()}/* Production 27 */void type_dcl() :{}{  "typedef" type_declarator()|  struct_type()|  union_type()|  enum_type()}/* Production 28 */void type_declarator() :{}{  type_spec() declarators()}/* Production 29 */void type_spec() :{}{  simple_type_spec()|  constr_type_spec()}/* Production 30 */void simple_type_spec() :{}{  base_type_spec()|  template_type_spec()|  scoped_name()}/* Production 31 */void base_type_spec() :{}{  floating_pt_type()|  integer_type()|  char_type()|  boolean_type()|  octet_type()|  any_type()}/* Production 32 */void template_type_spec() :{}{  sequence_type()|  string_type()}/* Production 33 */void constr_type_spec() :{}{  struct_type()|  union_type()|  enum_type()}/* Production 34 */void declarators() :{}{  declarator() ( "," declarator() )*}/* Production 35 */void declarator() :{}{  LOOKAHEAD(2)  complex_declarator()|  simple_declarator()}/* Production 36 */void simple_declarator() :{}{  identifier()}/* Production 37 */void complex_declarator() :{}{  array_declarator()}/* Production 38 */void floating_pt_type() :{}{  "float"|  "double"}/* Production 39 */void integer_type() :{}{  signed_int()|  unsigned_int()}/* Production 40 */void signed_int() :{}{  signed_long_int()|  signed_short_int()}/* Production 41 */void signed_long_int() :{}{  "long"}/* Production 42 */void signed_short_int() :{}{  "short"}/* Production 43 */void unsigned_int() :{}{  LOOKAHEAD(2)  unsigned_long_int()|  unsigned_short_int()}/* Production 44 */void unsigned_long_int() :{}{  "unsigned" "long"}/* Production 45 */void unsigned_short_int() :{}{  "unsigned" "short"}/* Production 46 */void char_type() :{}{  "char"}/* Production 47 */void boolean_type() :{}{  "boolean"}/* Production 48 */void octet_type() :{}{  "octet"}/* Production 49 */void any_type() :{}{  "any"}/* Production 50 */void struct_type() :{}{  "struct" identifier() "{" member_list() "}"}/* Production 51 */void member_list() :{}{  ( member() )+}/* Production 52 */void member() :{}{  type_spec() declarators() ";"}/* Production 53 */void union_type() :{}{  "union" identifier() "switch" "(" switch_type_spec() ")" "{" switch_body() "}"}/* Production 54 */void switch_type_spec() :{}{  integer_type()|  char_type()|  boolean_type()|  enum_type()|  scoped_name()}/* Production 55 */void switch_body() :{}{  ( casex() )+}/* Production 56 */void casex() :{}{  ( case_label() )+ element_spec() ";"}/* Production 57 */void case_label() :{}{  "case" const_exp() ":"|  "default" ":"}/* Production 58 */void element_spec() :{}{  type_spec() declarator()}/* Production 59 */void enum_type() :{}{  "enum" identifier() "{" enumerator() ( "," enumerator() )* "}"}/* Production 60 */void enumerator() :{}{  identifier()}/* Production 61 */void sequence_type() :{}{  "sequence" "<" simple_type_spec() [ "," positive_int_const() ] ">"}/* Production 62 */void string_type() :{}{  "string" [ "<" positive_int_const() ">" ]}/* Production 63 */void array_declarator() :{}{  identifier() ( fixed_array_size() )+}/* Production 64 */void fixed_array_size() :{}{  "[" positive_int_const() "]"}/* Production 65 */void attr_dcl() :{}{  [ "readonly" ] "attribute" param_type_spec() simple_declarator() ( "," simple_declarator() )*}/* Production 66 */void except_dcl() :{}{  "exception" identifier() "{" ( member() )* "}"}/* Production 67 */void op_dcl() :{}{  [ op_attribute() ] op_type_spec() identifier() parameter_dcls() [ raises_expr() ] [ context_expr() ]}/* Production 68 */void op_attribute() :{}{  "oneway"}/* Production 69 */void op_type_spec() :{}{  param_type_spec()|  "void"}/* Production 70 */void parameter_dcls() :{}{  "(" [ param_dcl() ( "," param_dcl() )* ] ")"}/* Production 71 */void param_dcl() :{}{  param_attribute() param_type_spec() simple_declarator()}/* Production 72 */void param_attribute() :{}{  "in"|  "out"|  "inout"}/* Production 73 */void raises_expr() :{}{  "raises" "(" scoped_name() ( "," scoped_name() )* ")"}/* Production 74 */void context_expr() :{}{  "context" "(" string_literal() ( "," string_literal() )* ")"}/* Production 75 */void param_type_spec() :{}{  base_type_spec()|  string_type()|  scoped_name()}/* Definitions of complex regular expressions follow */void identifier() :{}{  <ID>}void integer_literal() :{}{  <OCTALINT>|  <DECIMALINT>|  <HEXADECIMALINT>}void string_literal() :{}{  <STRING>}void character_literal() :{}{  <CHARACTER>}void floating_pt_literal() :{}{  <FLOATONE>|  <FLOATTWO>}TOKEN :{  <  ID : ["a"-"z","A"-"Z", "_"] (["a"-"z","A"-"Z","0"-"9","_"])* >| <  OCTALINT : "0" (["0"-"7"])* (["u","U","l","L"])? >| <  DECIMALINT : ["1"-"9"] (["0"-"9"])* (["u","U","l","L"])? >| <  HEXADECIMALINT : ("0x"|"0X") (["0"-"9","a"-"f","A"-"F"])+ (["u","U","l","L"])? >| <  FLOATONE : ((["0"-"9"])+ "." (["0"-"9"])* | (["0"-"9"])* "." (["0"-"9"])+)   (["e","E"] (["-","+"])? (["0"-"9"])+)? (["f","F","l","L"])? >| <  FLOATTWO : (["0"-"9"])+ ["e","E"] (["-","+"])?   (["0"-"9"])+ (["f","F","l","L"])? >| <  CHARACTER : "'"   (   (~["'","\\","\n","\r"])   | ("\\" (             ["n","t","v","b","r","f","a","\\","?","'","\""]            |             "0" (["0"-"7"])*            |             ["1"-"9"] (["0"-"9"])*            |             ("0x" | "0X") (["0"-"9","a"-"f","A"-"F"])+           )     )   )   "'" >| <  STRING : "\""   ( ( ~["\"","\\","\n","\r"])   | ("\\" (             ["n","t","v","b","r","f","a","\\","?","'","\""]            |             "0" (["0"-"7"])*            |             ["1"-"9"] (["0"-"9"])*            |             ("0x" | "0X") (["0"-"9","a"-"f","A"-"F"])+           )     )   )*   "\"" >}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -