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

📄 oaaprolognetparse.g-latin1

📁 SRI international 发布的OAA框架软件
💻 G-LATIN1
📖 第 1 页 / 共 2 页
字号:
 IDENT^<AST=IclASTStruct> | PLUS^<AST=IclASTStruct> | MINUS^<AST=IclASTStruct> | STAR^<AST=IclASTStruct> | DIV^<AST=IclASTStruct> | EQUAL^<AST=IclASTStruct>| TURNSTILE^<AST=IclASTStruct> | COLON^<AST=IclASTStruct> | DBL_COLON^<AST=IclASTStruct> | BACKSLASH^<AST=IclASTStruct> | LESS_THAN^<AST=IclASTStruct> | IS_LITERAL^<AST=IclASTStruct> | UNIV^<AST=IclASTStruct> | NUM_EQUAL^<AST=IclASTStruct> | NOT_NUM_EQUAL^<AST=IclASTStruct> | LITERALLY_EQUAL^<AST=IclASTStruct> | LESS_THAN_OR_EQUAL^<AST=IclASTStruct> | NOT_EQUAL^<AST=IclASTStruct> | NOT_LITERALLY_EQUAL^<AST=IclASTStruct> | GREATER_THAN^<AST=IclASTStruct> | GREATER_THAN_OR_EQUAL^<AST=IclASTStruct> | BEFORE^<AST=IclASTStruct> | AFTER^<AST=IclASTStruct> | NOT_BEFORE^<AST=IclASTStruct> | NOT_AFTER^<AST=IclASTStruct> | HAT^<AST=IclASTStruct> | QUOTE^<AST=IclASTStruct>)
        LPAREN!
        commaSeparatedStructs
        RPAREN!
	{currentAST.root.setType(STRUCT);}
    ;

str
    : 
//BANG<AST=IclASTStr>
  //  | SEMI<AST=IclASTStr>
    //|
 STRING_LITERAL<AST=IclASTStr>
    | SPECIAL_CHAR_LITERAL<AST=IclASTStr>
    //| STAR<AST=IclASTStr>
    //| PLUS<AST=IclASTStr>
    //| MINUS<AST=IclASTStr>
    //| DIV<AST=IclASTStr>
    //| EQUAL<AST=IclASTStr>
    //| TURNSTILE<AST=IclASTStr>   
    | IDENT<AST=IclASTStr>
    | TERM_LITERAL<AST=IclASTStr>
    | ICLDATAQ_LITERAL<AST=IclASTStr>
    | IS_LITERAL<AST=IclASTStr>
    {currentAST.root.setType(STR);}
    ;

class OaaPrologLexer extends Lexer;
options {
    k = 2;
    exportVocab = OaaPrologVocab;
    testLiterals = true;
    charVocabulary = '\u0000'..'\u00FF';
}
{
  private boolean throwOnEOF = false;

  public final void setThrowOnEOF(boolean t) 
  {
    throwOnEOF = t;
  }

  public final boolean getThrowOnEOF() 
  {
    return throwOnEOF;
  }
  public final void uponEOF() throws TokenStreamException, CharStreamException {
    if(getThrowOnEOF()) {
      throw new TokenStreamEOF("EOF");
    }
  }
}

//IS options { paraphrase = "is"; } : "is" (('a'..'z'|'A'..'Z'|'_'|'0'..'9'){_ttype=IDENT;})?;
                                         
//stuff that starts with ':'
COLON options { paraphrase = ":"; } : 
  ':' { $setText("':'");}( 
       ( (':'){ _ttype=DBL_COLON;}{ $setText("'::'");} ) |
       ( ('-'){ _ttype=TURNSTILE;}{ $setText("':-'");}) |
       ( ( '+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+{_ttype=SPECIAL_CHAR_LITERAL;})
      )?;

//stuff that starts with =
EQUAL options  { paraphrase = "="; } : 
   '=' { $setText("'='"); } (
        ( ('.' '.'){ _ttype=UNIV;}{ $setText("'=..'"); })|
        ( (':' '='){ _ttype=NUM_EQUAL;}{ $setText("'=:='"); })|
        ( ('\\' '='){ _ttype=NOT_NUM_EQUAL;}{ $setText("'=\\='"); })|
        ( ('='){_ttype=LITERALLY_EQUAL;}{ $setText("'=='"); }) |
        ( ('<'){_ttype=LESS_THAN_OR_EQUAL;}{ $setText("'=<'"); }) |
	( ( '+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+{_ttype=SPECIAL_CHAR_LITERAL;})
       )?
;

//stuff that starts with \
BACKSLASH options { paraphrase = "\\"; } :
  '\\' { $setText("'\\'"); } (
        ( ('=') {_ttype=NOT_EQUAL;}{$setText("'\\='");} (
                ( ('=') {_ttype=NOT_LITERALLY_EQUAL;} {$setText("'\\=='");}) |
                ( ( '+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+{_ttype=SPECIAL_CHAR_LITERAL;}) )? ) |
        ( ( '+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+{_ttype=SPECIAL_CHAR_LITERAL;})
      )?;

//stuff that starts with <
LESS_THAN options { paraphrase = "<"; } : 
    '<' { $setText("'<'");} (
	( ( '+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+{_ttype=SPECIAL_CHAR_LITERAL;})
	)?;

//stuff that starts with >
GREATER_THAN options { paraphrase = ">"; } : 
    '>' { $setText("'>'");} (
        (('=') {_ttype=GREATER_THAN_OR_EQUAL;} { $setText("'>='");}) |
	( ( '+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+{_ttype=SPECIAL_CHAR_LITERAL;})
	)?;


BEFORE options { paraphrase = "@<"; } : 
    '@' '<' { $setText("'@<'");};
AFTER  options { paraphrase = "@>"; } : '@' '>' { $setText("'@>'");};
NOT_BEFORE options { paraphrase = "@>="; } : '@' '>' '=' { $setText("'@>='");} ;
NOT_AFTER options { paraphrase = "@=<"; } : '@' '=' '<' { $setText("'@=<'");} ;

HAT  options { paraphrase = "^"; } : '^' { $setText("'^'");} ;
QUOTE options { paraphrase = "'"; } : '\''; 

PLUS options { paraphrase = "+";} : '+';
MINUS options { paraphrase = "-";} : '-';
STAR options { paraphrase = "*";} : '*';
DIV options { paraphrase = "/";} : '/';

LPAREN options { paraphrase = "("; } : '(';
RPAREN options { paraphrase = ")"; } : ')';
LBRACE options { paraphrase = "{"; } : '{';
RBRACE options { paraphrase = "}"; } : '}';
LBRACK options { paraphrase = "["; } : '[';
RBRACK options { paraphrase = "]"; } : ']';
SEMI options { paraphrase = ";"; } : ';';
COMMA options { paraphrase = ","; } : ',';
DBLQUOTE options { paraphrase = "\""; } : '"';
TILDE options { paraphrase = "~";} : '~';
PIPE options { paraphrase = "|";} : '|';

// Whitespace
WS : ( ' '
        | '\t'
        | '\f'
        // newlines
        | ( "\r\n"
            | '\r'
            | '\n'
          )
          { newline(); }
        )
        { _ttype = Token.SKIP; }
    ;

STRING_LITERAL options {paraphrase = "string literal";}
    :'\'' ( "''" | ~'\'' )* '\''
    ;

DBLQUOTED options {paraphrase = "double quoted data";}
    :DBLQUOTE (( "\"\"" | ~'"' )*) DBLQUOTE
    ;

// SPECIAL_CHAR_LITERAL options {paraphrase = "special character literal";}
//     {boolean isTurnstile=false; boolean isDblColon=false; boolean isPlus=false; boolean isMinus=false; boolean isStar=false; boolean isDiv=false; boolean isEqual=false; boolean isColon=false; boolean isBackslash=false;}
//     : ("+" {_ttype = PLUS; isPlus=true;})
//         {isPlus}?
//         (('+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+ {isPlus=false; _ttype = SPECIAL_CHAR_LITERAL;})?
//     | ("-" {_ttype = MINUS; isMinus=true;})
//         {isMinus}?
//         (('+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+ {isMinus=false; _ttype = SPECIAL_CHAR_LITERAL;})?
//     | ("*" {_ttype = STAR; isStar=true;})
//         {isStar}?
//         (('+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+ {isStar=false; _ttype = SPECIAL_CHAR_LITERAL;})?
//     | ("/" {_ttype = DIV; isDiv=true;})
//         {isDiv}?
//         (('+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+ {isDiv=false; _ttype = SPECIAL_CHAR_LITERAL;})?
//     | ("=" {_ttype = EQUAL; isEqual=true;})
//         {isEqual}?
//         (('+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+ {isEqual=false; _ttype = SPECIAL_CHAR_LITERAL;})?
//     | ("\\" {_ttype = BACKSLASH; isBackslash=true;})
//         {isBackslash}?
//         (('+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+ {isBackslash=false; _ttype = SPECIAL_CHAR_LITERAL;})?
// //    : PLUS ('+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+
// //    | MINUS ( '+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+
// //    | STAR ( '+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+
// //    | DIV ( '+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+
//     | (':' {_ttype = COLON; isColon=true;})
//         {isColon}?
//         (
//             ('-' {_ttype = TURNSTILE; isColon=false; isTurnstile=true;})
//             {isTurnstile}?
//             (('+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+ {isTurnstile=false; _ttype = SPECIAL_CHAR_LITERAL;})?
//         |
//             (':' {_ttype = DBL_COLON; isColon=false; isDblColon=true;})
//             {isDblColon}?
//             (('+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+ {isDblColon=false; _ttype = SPECIAL_CHAR_LITERAL;})?
//         )?
// //    | (":-" {_ttype = TURNSTILE; isTurnstile=true;}) 
// //        {isTurnstile}? 
// //        (('+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+ {isTurnstile=false; _ttype = SPECIAL_CHAR_LITERAL;})?
// //    | ("::" {_ttype = DBL_COLON; isDblColon=true;})
// //        {isDblColon}?
// //        (('+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+ {isDblColon=false; _ttype = SPECIAL_CHAR_LITERAL;})?
//     | ('^' | '<' | '>' | '`' | ':' | '?' | '@' | '#' | '$' | '&' | '\\') ( '+' | '*' | '=' | '^' | '<' | '>' | '=' | '`' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\') ( '+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')*
//     | ('^' | '<' | '>' | '`' | ':' | '?' | '@' | '#' | '$' | '&' | '\\')+
//     ;

NUM_INT options {paraphrase = "number";}
    {boolean isDecimal=false; boolean isFloat = false;}
    : '.' {_ttype = DOT;}
        ( (('0'..'9')+ (EXPONENT)? { _ttype = NUM_FLOAT;})
       // | (( '+' | '-' | '*' | '^' | '<' | '>' | '=' | '`' | ':' | '.' | '?' | '@' | '#' | '$' | '&' | '/' | '\\')+ {_ttype = SPECIAL_CHAR_LITERAL;})
        )?
    | ('0'..'9') ('0'..'9')* {isDecimal = true;}
        {isDecimal}?
        ( ('.' ('0'..'9')* (EXPONENT)?) { _ttype = NUM_FLOAT;}
        | SIGNED_EXPONENT { _ttype = NUM_FLOAT;}
        | ((('E' | 'e') ('0'..'9')+) {_ttype = NUM_FLOAT; isFloat = true;}
                {isFloat}?

// DH edited Mar 2005
//                (('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')* {_ttype = IDENT;})?
                (('a'..'z'|'A'..'Z'|'_'|'\u00df'..'\u00f6'|'\u00f8'..'\u00ff'|'\u00c0'..'\u00d6'|'\u00d8'..'\u00de') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00df'..'\u00f6'|'\u00f8'..'\u00ff'|'\u00c0'..'\u00d6'|'\u00d8'..'\u00de')* {_ttype = IDENT;})?
            )
        )?
    ;
IDENT options {paraphrase = "atom";}
// DH edited Mar 2005
//    : ('a'..'z') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*
    : ('a'..'z'|'\u00df'..'\u00f6'|'\u00f8'..'\u00ff') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00df'..'\u00f6'|'\u00f8'..'\u00ff'|'\u00c0'..'\u00d6'|'\u00d8'..'\u00de')*

    ;

VARIABLE options {paraphrase = "variable";}
// DH edited Mar 2005
    : ('A'..'D' | 'F'..'Z' | '_'|'\u00c0'..'\u00d6'|'\u00d8'..'\u00de') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00df'..'\u00f6'|'\u00f8'..'\u00ff'|'\u00c0'..'\u00d6'|'\u00d8'..'\u00de')*
    | 'E' ('0'..'9')* ('a'..'z'|'A'..'Z'|'_'|'\u00df'..'\u00f6'|'\u00f8'..'\u00ff'|'\u00c0'..'\u00d6'|'\u00d8'..'\u00de') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'\u00df'..'\u00f6'|'\u00f8'..'\u00ff'|'\u00c0'..'\u00d6'|'\u00d8'..'\u00de')*
    | 'E'
    ;

protected
EXPONENT options {paraphrase = "exponent";}
    : ('E'|'e') ('+'|'-')? ('0'..'9')+
    ;

protected
SIGNED_EXPONENT options {paraphrase = "signed exponent";}
    : ('E'|'e') ('+'|'-') ('0'..'9')+
    ;

⌨️ 快捷键说明

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