小编Tyl*_*ton的帖子

如何在常规语法的模型中实现通配符,字符类,否定字符类等?

TL; DR:如何计算一个语法产品的模型,以便为同一个左手边存在不确定数量的产品?


我正在研究一个关于形式语言理论的项目,我正在尝试编写一个用于构建常规语法对象的类,这些对象可以传递给有限状态机.我天真的尝试是创建一个API,为每个允许的输入添加一个生产.我的尝试的精简版本如下(基于正式语法的正式定义G = (N, ?, P, S)):

class ContextFreeGrammar:
    def __init__(self, variables, alphabet, production_rules, start_variable):
        self.variables = variables
        self.alphabet = alphabet
        self.production_rules = production_rules
        self.start_variable = start_variable

    def __repr__(self):
        return '{}({}, {}, {}, {})'.format(
            self.__class__.__name__,
            self.variables,
            self.alphabet,
            self.production_rules,
            self.start_variable
        )


class RegularGrammar(ContextFreeGrammar):
    _regular_expression_grammar = None # TODO

    @classmethod
    def from_regular_expression(cls, regular_expression):
        raise NotImplementedError()
Run Code Online (Sandbox Code Playgroud)

我还没有达到实际编写有限状态自动机或下推自动机的程度.

正则表达式的语法是无上下文的,所以我在下面的WSN中包含了我的定义:

syntax = expression .
expression = term "|" expression .
expression = term .
term = factor repetition term .
term = …
Run Code Online (Sandbox Code Playgroud)

python regex parsing context-free-grammar formal-languages

7
推荐指数
1
解决办法
189
查看次数

如何从不同的文件实现接口?

我是 Java 新手,我想知道我将如何去做这样的事情。

接口文件:

public interface ExampleInterface {
    void doSomething();
}
Run Code Online (Sandbox Code Playgroud)

实现文件(同一目录下):

public class ExampleImplementation implements ExampleInterface {
    void doSomething() {
        // code goes here
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:呵呵,没有人注意到我忘记添加 class 关键字。

java implementation interface

5
推荐指数
1
解决办法
8816
查看次数

CSS中的@group和@override?

我在样式表中看过这个,我想知道它是否确实做了什么,如果有的话,它会做什么?谷歌似乎对我没有帮助.我已从代码中删除了网址,但我很好奇这是否真的做了什么.我看到它被评论出来但我很好奇.对设计师来说,这是一种风格化的东西吗?

/* @override 
    <url of stylsheet>
*/

/* @group Colors */

/* Orange - ff7800 */
/* Gray Blue - 373d4a */

/* @end */
Run Code Online (Sandbox Code Playgroud)

css

5
推荐指数
1
解决办法
3662
查看次数

如何使div标签跨越页面的高度

如果我不清楚,我不知道如何问这个如此原谅我,请让我澄清一下.我想将页面居中,并在居中内容的右侧有一个"侧栏",而不是视口的右侧.这很简单,除了我希望元素和视口一样高.但是,如果身体标签较高,我希望它与身体标签一样高.我需要这个,因为侧边栏的背景必须沿y轴重复以覆盖整个视口.我可能没有解释任何事情,所以也许这个jsFiddle将清除任何错过的细节.

http://jsfiddle.net/dHerb/

我可以将.center样式设置为静态的位置值,但是然后绝对定位被抛弃.我可以将侧边栏浮动到右侧,但高度不会填满页面.我可以使用JavaScript,但不应依赖JavaScript进行布局,因为依赖它的元素是页面内容的四分之一.

任何指针都将非常感激.

编辑:更改正文和html标记高度为100%有帮助,但它仍然没有像我描述的那样表现.如果视口中有内容并且您滚动到该内容,则不会重复背景.

html css viewport

5
推荐指数
1
解决办法
2万
查看次数

如何使用PHP下载电子邮件

我试图用PHP的标准库从头开始编写一个非常简单的基于Web的电子邮件客户端.我会说实话; 我不完全确定我在做什么,所以这是我为了试错学习而共同攻击的东西.但是,无论我尝试什么,我都会保持计时.有什么建议?我知道预期的输出看起来不会很漂亮,但就像我说的那样,这只是为了试错.

<?php

$stream = imap_open('{imap.gmail.com:993/imap/ssl}INBOX', '<email_removed>', '<password_removed>') or
    die('Cannot connect to server: ' . imap_last_error());

$date = date('d M Y', strtotime('-1 month'));
if ($emails = imap_search($stream, "SINCE \"$date\"")) {
    rsort($emails);

    foreach ($emails as $email_number) {
        echo imap_fetchbody($stream, $email_number, 2);
    }
}

imap_close($stream);

?>
Run Code Online (Sandbox Code Playgroud)

输出我得到如下.

警告:imap_open()[function.imap-open]:无法在第3行打开流{imap.gmail.com:993/imap/ssl}INBOX无法连接到服务器:无法连接到gmail-imap. l.google.com,993:网络无法访问

注意:未知:无法连接到gmail-imap.l.google.com,993:第0行的未知连接超时(errflg = 1)

注意:未知:无法连接到gmail-imap.l.google.com,993:第0行的未知连接超时(errflg = 1)

注意:未知:无法连接到gmail-imap.l.google.com,993:第0行的未知网络无法访问(errflg = 2)

php email imap

5
推荐指数
1
解决办法
3198
查看次数

NSNumber文字

我是Objective-C的新手.我知道C和C++,但Objective-C有相当的学习曲线.无论如何,是否有更短的方式(可能通过某种NSNumber文字,如果存在)写下面的内容:

[Tyler setArms:[[[NSNumber alloc] autorelease] initWithInt:1]];
Run Code Online (Sandbox Code Playgroud)

objective-c literals nsnumber foundation

4
推荐指数
2
解决办法
8452
查看次数

制作没有递归的滑块

鉴于以下jsFiddle,如何在不构建堆栈的情况下实现与我相同的效果?

http://jsfiddle.net/YWMcy/1/

我尝试过这样的事情:

jQuery(document).ready(function () {
    'use strict';
    (function ($) {

        function validateOptions(options) {
            if (typeof(options.delay) == typeof(0)) {
                $.error('Delay value must an integer.');
                return false;
            } else if (options.delay < 0) {
                $.error('Delay value must be greater than zero.');
                return false;
            }

            if (typeof(options.direction) == typeof('')) {
                $.error('Direction value must be a string.');
                return false;
            } else if (!(options.direction in ['left', 'right', 'up', 'down'])) {
                $.error('Direction value must be "left", "right", "up", or "down".');
                return false;
            }

            if (typeof(options.easing) …
Run Code Online (Sandbox Code Playgroud)

javascript jquery slider

4
推荐指数
1
解决办法
479
查看次数

如何验证上传的文件是否为视频?

我有一台服务器上有一些非常敏感的信息,因此安全性是一个大问题.用户需要能够上传视频.我知道允许用户上传文件会带来安全威胁,因为没有100%的方法可以阻止他们上传非视频.但我显然可以选择服务器将保留哪些文件.

我知道检查文件扩展名是不够的.检查MIME类型更好,但它仍然可以伪造.那么我该如何检查文件是否是视频?

php php-5.3

4
推荐指数
1
解决办法
4775
查看次数

如何初始化私有多维数组

我如何初始化一个私有数组,其中每一百项都等于一个两项数组,如{-1, 0}.我的代码显然不起作用,因为我问你们所有人.

example.h文件:

#ifndef EXAMPLE
#define EXAMPLE

class Example {
private:
    char grid[10][10];
public:
    Example();
};

#endif
Run Code Online (Sandbox Code Playgroud)

example.cpp:

#include "example.h"
#include <iostream>

Example::Example() : grid({-1, 0}) {}
Run Code Online (Sandbox Code Playgroud)

c++ initialization private class multidimensional-array

3
推荐指数
1
解决办法
1899
查看次数

使用Windows 7中的默认程序打开PDF

我有一个程序,其中帮助文档位于与.py模块相同的文件夹中的.pdf中.我需要该程序使用系统的默认PDF阅读器打开.pdf.

我在我的程序中使用此代码:

if sys.platform.startswith('darwin'):
    os.system("SlannanHelp.pdf")
elif sys.platform.startswith('linux'):
    os.system("SlannanHelp.pdf")
elif sys.platform.startswith('win32'):
    os.filestart("SlannanHelp.pdf")
Run Code Online (Sandbox Code Playgroud)

但是,当在Windows 7中运行时,我收到以下错误:

回溯(最近通话最后一个):文件 "C:\用户\用户\ MousePaw游戏\ MousePaw实验室\ Slannan\Slannan.py",线1286,在help_event os.filestart( "SlannanHelp.pdf")AttributeError的: '模块'对象没有属性'filestart'

我的猜测是os.filestart可以在NT系统中运行,但不能在Windows 7中运行.是否有适用于Windows 7的命令,或者适用于Windows 7的命令?如果是后者,我如何检查用户是否正在运行NT或7版本的Windows?

提前致谢!

python file sys

3
推荐指数
1
解决办法
7860
查看次数