reStructuredText 的 ANTLR 语法(规则优先级)

2023-12-04

第一个问题流

大家好,

这可能是这个问题的后续:Antlr 规则优先级

我正在尝试为以下内容编写 ANTLR 语法重构文本标记语言.

我面临的主要问题是:“如何在不掩盖其他语法规则的情况下匹配任何字符序列(常规文本)?”

让我们以带有内联标记的段落为例:

In `Figure 17-6`_, we have positioned ``before_ptr`` so that it points to the element 
*before* the insert point. The variable ``after_ptr`` points to the element *after* the 
insert. In other words, we are going to put our new element **in between** ``before_ptr`` 
and ``after_ptr``.

我认为为内联标记文本编写规则会很容易。所以我写了一个简单的语法:

grammar Rst;

options {
    output=AST;
    language=Java;
    backtrack=true;
    //memoize=true;
}

@members {
boolean inInlineMarkup = false;
}

// PARSER

text
    : inline_markup (WS? inline_markup)* WS? EOF
    ;


inline_markup
@after {
inInlineMarkup = false;
}
    : {!inInlineMarkup}? (emphasis|strong|litteral|link)
    ;

emphasis
@init {
inInlineMarkup = true;
}
    : '*' (~'*')+ '*' {System.out.println("emphasis: " + $text);}
    ;

strong
@init {
inInlineMarkup = true;
}
    : '**' (~'*')+ '**' {System.out.println("bold: " + $text);}
    ;

litteral
@init {
inInlineMarkup = true;
}
    : '``' (~'`')+ '``' {System.out.println("litteral: " + $text);}
    ;

link
@init {
inInlineMarkup = true;
}
    : inline_internal_target
    | footnote_reference
    | hyperlink_reference
    ;

inline_internal_target
    : '_`' (~'`')+ '`' {System.out.println("inline_internal_target: " + $text);}
    ;

footnote_reference
    : '[' (~']')+ ']_' {System.out.println("footnote_reference: " + $text);}
    ;


hyperlink_reference
    : ~(' '|'\t'|'\u000C'|'_')+ '_' {System.out.println("hyperlink_reference: " + $text);}
    |   '`' (~'`')+ '`_' {System.out.println("hyperlink_reference (long): " + $text);}
    ;

// LEXER

WS  
  : (' '|'\t'|'\u000C')+
  ; 

NEWLINE
  : '\r'? '\n'
  ;

这个简单的语法不起作用。我什至没有尝试匹配regular text...

我的问题:

  • 有人可以指出我的错误并给我一些关于如何匹配的提示吗regular text?
  • 有没有办法设置语法规则的优先级?也许这可以成为一个线索。

在此先感谢您的帮助 :-)

Robin


第二个问题流

非常感谢您的帮助!我会很难找出我的错误...我编写该语法(仅)不是为了学习 ANTLR,我正在尝试为 eclipse 编写一个 IDE 插件。为此,我需要语法;)

我设法在语法上更进一步并写了一篇text rule:

grammar Rst;

options {
    output=AST;
    language=Java;
}



@members {
boolean inInlineMarkup = false;
}

//////////////////
// PARSER RULES //
//////////////////

file
  : line* EOF
  ;


line
  : text* NEWLINE
  ;

text
    : inline_markup
    | normal_text
    ;

inline_markup
@after {
inInlineMarkup = false;
}
    : {!inInlineMarkup}? {inInlineMarkup = true;} 
  (
  | STRONG
  | EMPHASIS
  | LITTERAL
  | INTERPRETED_TEXT
  | SUBSTITUTION_REFERENCE
  | link
  )
    ;


link
    : INLINE_INTERNAL_TARGET
    | FOOTNOTE_REFERENCE
    | HYPERLINK_REFERENCE
    ;

normal_text
  : {!inInlineMarkup}? 
   ~(EMPHASIS
      |SUBSTITUTION_REFERENCE
      |STRONG
      |LITTERAL
      |INTERPRETED_TEXT
      |INLINE_INTERNAL_TARGET
      |FOOTNOTE_REFERENCE
      |HYPERLINK_REFERENCE
      |NEWLINE
      )
  ;
//////////////////
// LEXER TOKENS //
//////////////////

EMPHASIS
    : STAR ANY_BUT_STAR+ STAR {System.out.println("EMPHASIS: " + $text);}
    ;

SUBSTITUTION_REFERENCE
  : PIPE ANY_BUT_PIPE+ PIPE  {System.out.println("SUBST_REF: " + $text);}
  ;

STRONG
    : STAR STAR ANY_BUT_STAR+ STAR STAR {System.out.println("STRONG: " + $text);}
    ;

LITTERAL
    : BACKTICK BACKTICK ANY_BUT_BACKTICK+ BACKTICK BACKTICK {System.out.println("LITTERAL: " + $text);}
    ;
INTERPRETED_TEXT
  : BACKTICK ANY_BUT_BACKTICK+ BACKTICK {System.out.println("LITTERAL: " + $text);}
  ;

INLINE_INTERNAL_TARGET
    : UNDERSCORE BACKTICK ANY_BUT_BACKTICK+ BACKTICK {System.out.println("INLINE_INTERNAL_TARGET: " + $text);}
    ;

FOOTNOTE_REFERENCE
    : L_BRACKET ANY_BUT_BRACKET+ R_BRACKET UNDERSCORE {System.out.println("FOOTNOTE_REFERENCE: " + $text);}
    ;


HYPERLINK_REFERENCE
  : BACKTICK ANY_BUT_BACKTICK+ BACKTICK UNDERSCORE {System.out.println("HYPERLINK_REFERENCE (long): " + $text);}
  | ANY_BUT_ENDLINK+ UNDERSCORE {System.out.println("HYPERLINK_REFERENCE (short): " + $text);}
  ;

WS  
  : (' '|'\t')+ {$channel=HIDDEN;}
  ; 

NEWLINE
  : '\r'? '\n' {$channel=HIDDEN;}
  ;


///////////////
// FRAGMENTS //
///////////////

fragment ANY_BUT_PIPE
  : ESC PIPE
  | ~(PIPE|'\n'|'\r')
  ;
fragment ANY_BUT_BRACKET
  : ESC R_BRACKET
  | ~(R_BRACKET|'\n'|'\r')
  ;
fragment ANY_BUT_STAR
  : ESC STAR
  | ~(STAR|'\n'|'\r')
  ;
fragment ANY_BUT_BACKTICK
  : ESC BACKTICK
  | ~(BACKTICK|'\n'|'\r')
  ;
fragment ANY_BUT_ENDLINK
  : ~(UNDERSCORE|' '|'\t'|'\n'|'\r')
  ;



fragment ESC
  : '\\'
  ;
fragment STAR
  : '*'
  ;
fragment BACKTICK
  : '`'
  ;
fragment PIPE
  : '|'
  ;
fragment L_BRACKET
  : '['
  ;
fragment R_BRACKET
  : ']'
  ;
fragment UNDERSCORE
  : '_'
  ;

语法对于 inline_markup 工作正常,但 normal_text 不匹配。

这是我的测试课:

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;

import org.antlr.runtime.ANTLRStringStream;
import org.antlr.runtime.CommonTokenStream;
import org.antlr.runtime.RecognitionException;
import org.antlr.runtime.tree.Tree;

public class Test {

    public static void main(String[] args) throws RecognitionException, IOException {

        InputStream is = Test.class.getResourceAsStream("test.rst");
        Reader r = new InputStreamReader(is);
        StringBuilder source = new StringBuilder();
        char[] buffer = new char[1024];
        int readLenght = 0;
        while ((readLenght = r.read(buffer)) > 0) {
            if (readLenght < buffer.length) {
                source.append(buffer, 0, readLenght);
            } else {
                source.append(buffer);
            }
        }
        r.close();
        System.out.println(source.toString());

        ANTLRStringStream in = new ANTLRStringStream(source.toString());
        RstLexer lexer = new RstLexer(in);
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        RstParser parser = new RstParser(tokens);
        RstParser.file_return out = parser.file();
        System.out.println(((Tree)out.getTree()).toStringTree());
    }
}

我使用的输入文件:

In `Figure 17-6`_, we have positioned ``before_ptr`` so that it points to the element 
*before* the insert point. The variable ``after_ptr`` points to the |element| *after* the 
insert. In other words, `we are going`_ to put_ our new element **in between** ``before_ptr`` 
and ``after_ptr``.

我得到这个输出:

HYPERLINK_REFERENCE (short): 7-6`_
line 1:2 mismatched character ' ' expecting '_'
line 1:10 mismatched character ' ' expecting '_'
line 1:18 mismatched character ' ' expecting '_'
line 1:21 mismatched character ' ' expecting '_'
line 1:26 mismatched character ' ' expecting '_'
line 1:37 mismatched character ' ' expecting '_'
LITTERAL: `before_ptr`
line 1:86 no viable alternative at character '\r'
line 1:55 mismatched character ' ' expecting '_'
line 1:60 mismatched character ' ' expecting '_'
line 1:63 mismatched character ' ' expecting '_'
line 1:70 mismatched character ' ' expecting '_'
line 1:73 mismatched character ' ' expecting '_'
line 1:77 mismatched character ' ' expecting '_'
line 1:85 mismatched character ' ' expecting '_'
EMPHASIS: *before*
line 2:12 mismatched character ' ' expecting '_'
line 2:19 mismatched character ' ' expecting '_'
line 2:26 mismatched character ' ' expecting '_'
LITTERAL: `after_ptr`
line 2:30 mismatched character ' ' expecting '_'
line 2:39 mismatched character ' ' expecting '_'
line 2:90 no viable alternative at character '\r'
line 2:60 mismatched character ' ' expecting '_'
line 2:63 mismatched character ' ' expecting '_'
line 2:67 mismatched character ' ' expecting '_'
line 2:77 mismatched character ' ' expecting '_'
line 2:85 mismatched character ' ' expecting '_'
line 2:89 mismatched character ' ' expecting '_'
line 3:7 mismatched character ' ' expecting '_'
line 3:10 mismatched character ' ' expecting '_'
line 3:16 mismatched character ' ' expecting '_'
line 3:23 mismatched character ' ' expecting '_'
line 3:27 mismatched character ' ' expecting '_'
line 3:31 mismatched character ' ' expecting '_'
line 3:42 mismatched character ' ' expecting '_'
line 3:51 mismatched character ' ' expecting '_'
line 3:55 mismatched character ' ' expecting '_'
line 3:63 mismatched character ' ' expecting '_'
line 3:94 mismatched character '\r' expecting '*'
line 4:3 mismatched character ' ' expecting '_'
line 4:18 no viable alternative at character '\r'
line 4:18 mismatched character '\r' expecting '_'
HYPERLINK_REFERENCE (short): oing`_
HYPERLINK_REFERENCE (short): ut_
EMPHASIS: *in between*
LITTERAL: `after_ptr`
BR.recoverFromMismatchedToken
line 0:-1 mismatched input '<EOF>' expecting NEWLINE
null

你能指出我的错误吗? (当我将 filter=true; 选项添加到语法中时,解析器适用于内联标记,不会出现错误)

Robin


这是一个快速演示could解析这个reStructuredText。请注意,它只处理一小部分可用的标记语法,通过向其中添加更多标记语法,您可以will影响现有的解析器/词法分析器规则:所以有很多,much还有更多工作要做!

Demo

grammar RST;

options {
  output=AST;
  backtrack=true;
  memoize=true;
}

tokens {
  ROOT;
  PARAGRAPH;
  INDENTATION;
  LINE;
  WORD;
  BOLD;
  ITALIC;
  INTERPRETED_TEXT;
  INLINE_LITERAL;
  REFERENCE;
}

parse
  :  paragraph+ EOF -> ^(ROOT paragraph+)
  ;

paragraph
  :  line+ -> ^(PARAGRAPH line+)
  |  Space* LineBreak -> /* omit line-breaks between paragraphs from AST */
  ;

line
  :  indentation text+ LineBreak -> ^(LINE text+)
  ;

indentation
  :  Space* -> ^(INDENTATION Space*)
  ;

text
  :  styledText
  |  interpretedText
  |  inlineLiteral
  |  reference
  |  Space
  |  Star
  |  EscapeSequence
  |  Any
  ;

styledText
  :  bold
  |  italic
  ;

bold
  :  Star Star boldAtom+ Star Star -> ^(BOLD boldAtom+)
  ;  

italic
  :  Star italicAtom+ Star -> ^(ITALIC italicAtom+)
  ;

boldAtom
  :  ~(Star | LineBreak)
  |  italic
  ;

italicAtom
  :  ~(Star | LineBreak)
  |  bold
  ;

interpretedText
  :  BackTick interpretedTextAtoms BackTick -> ^(INTERPRETED_TEXT interpretedTextAtoms)
  ;

interpretedTextAtoms
  :  ~BackTick+
  ;

inlineLiteral
  :  BackTick BackTick inlineLiteralAtoms BackTick BackTick -> ^(INLINE_LITERAL inlineLiteralAtoms)
  ;

inlineLiteralAtoms
  :  inlineLiteralAtom+
  ;

inlineLiteralAtom
  :  ~BackTick
  |  BackTick ~BackTick
  ;

reference
  :  Any+ UnderScore -> ^(REFERENCE Any+)
  ;

UnderScore
  :  '_'
  ;

BackTick
  :  '`'
  ;

Star
  :  '*'
  ;

Space
  :  ' ' 
  |  '\t'
  ;

EscapeSequence
  :  '\\' ('\\' | '*')
  ;

LineBreak
  :  '\r'? '\n'
  |  '\r'
  ;

Any
  :  .
  ;

当您从上面生成解析器和词法分析器时,并让它解析以下输入文件:



***x*** **yyy** *zz* *
a b c

P2 ``*a*`b`` `q`
Python_

  

(注意尾随换行符!)

解析器将生成以下 AST:

enter image description here

EDIT

可以通过运行此类来创建该图:

import org.antlr.runtime.*;
import org.antlr.runtime.tree.*;
import org.antlr.stringtemplate.*;

public class Main {
  public static void main(String[] args) throws Exception {
    String source =
        "***x*** **yyy** *zz* *\n" +
        "a b c\n" +
        "\n" +
        "P2 ``*a*`b`` `q`\n" +
        "Python_\n";
    RSTLexer lexer = new RSTLexer(new ANTLRStringStream(source));
    RSTParser parser = new RSTParser(new CommonTokenStream(lexer));
    CommonTree tree = (CommonTree)parser.parse().getTree();
    DOTTreeGenerator gen = new DOTTreeGenerator();
    StringTemplate st = gen.toDOT(tree);
    System.out.println(st);
  }
}

或者如果您的源来自文件,请执行以下操作:

RSTLexer lexer = new RSTLexer(new ANTLRFileStream("test.rst"));

or

RSTLexer lexer = new RSTLexer(new ANTLRFileStream("test.rst", "???"));

where "???"是你的文件的编码。

上面的类会将 AST 作为 DOT 文件打印到控制台。您可以使用 DOT 查看器来显示 AST。在这种情况下,我发布了由图形查看器。但是这里有周围还有很多观众。一个不错的在线是this one,这似乎正在使用图形查看器在“引擎盖”下。祝你好运!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

reStructuredText 的 ANTLR 语法(规则优先级) 的相关文章

  • 覆盖 sphinx/docutils 中的默认字段名称限制

    我在用sphinx http sphinx pocoo org 用于为项目生成 html 文档 我广泛使用字段列表 http docutils sourceforge net docs user rst quickref html fiel
  • ANTLR如何在输入结束时检测垃圾数据

    当使用 ANTLR 编写的语法时 解析器可以正确识别输入流中的数据 但如果我在输入末尾有一些垃圾文本 不应该由语法解析 解析器不会抱怨 我想这种行为是可以的 我的意思是解析器完成了它的工作并解析了我所说的它应该解析的任何内容 但是有什么技巧
  • 如何使用ANTLR生成的语法文件?

    我认为这是一个愚蠢的问题 但我刚刚开始使用 ANTLR 我将他们教程中的 SimpleCalc 语法放在一起 并以 C 作为目标语言生成它 我得到了 SimpleCalcParser c h 和 SimpleCalcLexer c h 作为
  • 可以使用“ifconfig”块(reStructuredText)有条件地定义目标

    是否可以有条件地定义target https docutils sourceforge io docs ref rst restructuredtext html hyperlink targets在 reStructuredText 文件
  • Sphinx 和 JavaScript 文档工作流程 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 对于我的 JavaScript 框架 我想使用 Sphinx 由于我是 Sphinx 世界的新手 我希望你们能帮助我开始使用 Sphi
  • 删除这种左递归方式来定义 SELECT 语句

    我正在尝试解析以下内容SELECT陈述 select 1 union all select 1 union all with cte as select 1 select 1 from tbl limit 1 union all selec
  • 在线验证antlr语法[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道是否存在某种用于antlr语法的在线测试环境 我可以在其中针对某些输入字符串验证和测试给定的语
  • ANTLR:乘法省略“*”符号

    我正在尝试创建一个用于乘法和除法的语法 其中不需要包含 符号 我需要它来输出 AST 所以对于这样的输入 1 2 3 4 我希望 AST 是 1 2 3 4 我发现了以下内容 它使用 java 代码来创建适当的节点 grammar Test
  • 将 ANTLR 语法翻译为 XText 语法:如何删除句法谓词

    我对 Xtext 和 ANTLR 都很陌生 我需要将 ANTLR g 语法转换为 XTEXT xtext 语法 在 ANTLR 语法中 存在 Xtext 不支持的语法谓词 有没有办法删除 翻译这些谓词 Thanks EDIT 我尝试翻译的
  • ANTLR @header、@parser、superClass 选项和基本文件 io (Java)

    我想将解析器操作与基本文件 io Java 一起使用 例如 G ANTLR 语法中的 PrintWriter 我必须使用 superClass 选项还是可以使用 header 在这两种情况下 我如何声明 PrintWriter 对象以及如何
  • ANTLR 生成无效的 java 异常并抛出代码

    这些天我一直在使用 ANTLRwork 1 5 和 Antlr Runtime 3 5 这是我发现的一个奇怪的事情 Antlr 正在为我生成这种 java 代码 public final BLABLABLAParser addExpress
  • 将可点击的 SVG 图像插入 Sphinx 文档

    我有 SVG 图像文件 其中有多个节点 每个节点都与 URL 关联 如果我直接在浏览器中打开此文件 我可以单击每个节点 它将打开不同的 URL 但是 当我在 Sphinx 文档中使用这张图片时 它不起作用 图片作为一个整体呈现 所以我需要通
  • Antlr3:无法匹配词法分析器规则中使用的解析器规则中的标记

    我在 Antlr3 中的词法分析器规则为 HYPHEN TOKEN HYPHEN CHARS CHARS a z 解析器规则如下 exp CHARS some complex expression parser rule exp HYPHE
  • ANTLR4:隐式或显式标记定义

    在 ANTLR4 中使用显式标记定义有哪些优点和缺点 我发现单括号中的文本比创建单独的标记并使用它代替文本更具描述性且更易于使用 E g grammar SimpleTest top library module library libra
  • ANTLR4 相当于什么!在词法分析器规则中?

    我正在努力将旧的 ANTLR 2 语法转换为 ANTLR 4 但我在字符串规则方面遇到了问题 STRING r n 这创建了一个STRING其文本包含字符串内容的标记 但是不含开始和结束引号 因为 引号文字后面的符号 ANTLR 4 扼流圈
  • Antlr4 语言翻译 - 将模板逻辑与访问者类分开?

    我正在考虑实用地将大量相对简单的 TSQL 代码转换为 Groovy 代码 肯定有很多原因 但驱动因素只是想看看是否可以完成 并在此过程中了解编译器 语法 等 Antlr4 似乎是解决这个问题的理想工具 Java 是一个优点 标记化 解析
  • 如何在 reStructuredText / Sphinx 中创建浮动图形?

    我想要一个带有文字的图形 这就是我要说的 Installation of Optional Accessories warning Never plug in or unplug a Hand Robot or a Grasp Sensor
  • 使用 ANTLR 解析时忽略输入的某些部分

    我正在尝试通过 ANTLR ANTLRWorks 3 5 2 解析语言 目标是输入完整的输入 但 Antlr 给出语法中定义部分的解析树并忽略其余输入 例如这是我的语法 grammar asap project begin PROJECT
  • 在 Sphinx 中的引用中保留内联代码

    在 Sphinx 中 如果我有以下标题声明 somestuff this is code this is not 它呈现如下 this is code 这不是 这很好 但是 如果我使用参考 例如 Have a look at ref som
  • 在 ANTLR4 中如何检查行的第一个字符是否为“*”?

    我正在尝试为一种相对简单但特殊的语言编写一个解析器 简单地说 规则之一是注释行用星号表示only如果该星号是该行的第一个字符 我如何在 ANTLR4 中正式化这样的规则 我考虑过使用 START LINE COMMENT n n gt sk

随机推荐

  • 动态数组的惯用初始化是否会调用未定义的行为?

    这个问题可能有点争议 我在块范围内有以下代码 int a malloc 3 sizeof int if a error handling a 0 0 a 1 1 a 2 2 我认为这段代码调用了UB由于指针算术超出范围 原因是 有效型对象指
  • 单击下一步按钮时无法获取当前页面作为参数

    我试图在以下情况下获取页码作为参数next单击按钮 我正在尝试使用以下代码来实现它 onPaging function pgButton if pgButton next window alert next clicked n page u
  • 在 ASP.NET 中通过 C# 使用 Ajax 进行文件上传

    我需要使用 FileUpload 上传图像而无需回发 使用 Ajax 我尝试了很多示例 但是在所有回发即将到来或他们正在使用 PHP 时 任何人都可以帮助我在 ASP Net 中使用 ajax 进行单文件上传或多文件上传使用 C SWF上传
  • Firebase 函数总是超时完成

    我正在使用 firebase 功能通过云消息传递创建通知 但我总是收到此错误 Function execution took 60006 ms finished with status timeout 但通知有效 这是我在index js中
  • 如何破解包含连字符的长网址

    我正在尝试使用乳胶打破长网址 我有 3 个链接 第一个包含连字符的链接不起作用 但其他两个链接可以工作 因为它们不包含连字符 我像这样使用 url the url to brak hline textbf Documentation Ric
  • 如何从 Jasper Report 调用存储过程?

    如何从 Jasper Report 调用存储过程 The JasperReports Ultimate Guide包含有关使用存储过程的信息 必须满足某些条件才能将存储过程调用放入报告模板的 SQL 查询字符串中 通过 JDBC 调用时 存
  • 为什么 sudo 会改变 PATH? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 这是PATH没有 sudo 的变量 echo echo PATH sh opt local ruby bin usr bin bin 这是PATH带有 sudo 的变量 echo e
  • 如何使 Excel 从 TFS 2010 工作项查询自动刷新

    我们使用 Microsoft 默认提供的 MSF Agile 5 0 流程模板来运行我们的项目 具体来说 迭代待办事项列表 Excel 表格对于进行项目管理非常有用 然而 我们遇到过第 1 个工作表上的迭代待办事项列表不是最新的情况 打开
  • 如何在 SQL Server 中选择舍入数字

    我有一个包含此列的工资表 EMPLOYEE NAME SALARY ANNA 113750 MARRY 124300 BELLA 105100 我想将工资金额四舍五入到附近的 2000 或 5000 小数 所以对于这种情况 它会像 EMPL
  • 升级应用程序时安装到同一路径

    我有一个正在实施自动更新的应用程序 我有一个 Web 服务 程序会检查该服务 如果需要升级 则会下载并运行新的安装程序 Visual Studio 2005 安装项目 然后程序重新启动 一切都很好 但是如何确保安装程序中的安装路径默认与用户
  • 如何子类化 NSDate?

    我第一次尝试对 NSDate 进行子类化 为其提供我需要的 2 个方法 编译正常 但在运行时我尝试访问它时出现错误 可以说我只想要子类中未修改的当前日期 myNSDate date 我收到错误 NSDate initWithTimeInte
  • div 内的 Jquery 复选框一次选中一个

    所以我有一个自动生成的 div 里面有 3 个具有不同 id 和名称的复选框 默认情况下没有一个被选中 如果其中一个碰巧被检查 那么我需要另外两个未被检查 所以一次只能检查一个 所以全部未选中或仅选中一项 div class configo
  • “make”的输出是共享对象而不是可执行文件

    编辑 这似乎是一个 g 问题 因为使用 clang 编译确实输出一个可执行文件 我编写了一个 C 应用程序 它具有主函数 创建应用程序窗口 加载 3D fbx 文件并使用 opengl 绘制该文件 要创建用于编译的 Makefile 我使用
  • Flash 中的地理定位

    我正在 Flash 中构建一个小型网络应用程序 有没有解决方案可以获取用户的地理位置 最简单的方法是与 JavaScript 函数交互 在您的 HTML 中
  • 如何使用 selenium webDriver 打开具有特定配置文件的 MS Edge?

    我正在边缘浏览器上运行自动化 Edge 浏览器支持配置文件 每当我从 webdriver 启动 Edge 时 它 都会创建新的配置文件 有什么方法可以设置选项以使用给定的用户配置文件启动边缘 我以Java语言为例 你可以使用user dat
  • mysql中哪种内连接sql最有效、最好?

    mysql中哪种内连接sql最有效 最好 1 select t01 uname t02 deptname from user t01 department t02 where t01 deptid t02 deptid and t01 ui
  • 当应用程序被终止/在后台时检测 Android 7 及更高版本中的连接变化

    Problem 所以问题是我有一个应用程序 每当 WiFi 连接 带有连接的 SSID 和其他信息 或断开连接 通过移动网络 时 它都会向我们的后端发送请求 但是 随着 Android 7 N 及更高版本的更改 CONNECTIVITY C
  • matlab 生成给定概率的随机数

    我想以给定的概率生成一个随机数 但我不知道如何 我需要一个 1 到 3 之间的数字 num ceil rand 3 但我需要不同的值来产生不同的概率 例如 0 5 chance of 1 0 1 chance of 2 0 4 chance
  • 如何在 R 中初始化空数据框(同时有很多列)

    我找到了如何初始化具有 3 或 4 维的空数据框 就像是 df lt data frame Date as Date character File character User numeric stringsAsFactors FALSE
  • reStructuredText 的 ANTLR 语法(规则优先级)

    第一个问题流 大家好 这可能是这个问题的后续 Antlr 规则优先级 我正在尝试为以下内容编写 ANTLR 语法重构文本标记语言 我面临的主要问题是 如何在不掩盖其他语法规则的情况下匹配任何字符序列 常规文本 让我们以带有内联标记的段落为例