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) 我是 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 关键字。
我在样式表中看过这个,我想知道它是否确实做了什么,如果有的话,它会做什么?谷歌似乎对我没有帮助.我已从代码中删除了网址,但我很好奇这是否真的做了什么.我看到它被评论出来但我很好奇.对设计师来说,这是一种风格化的东西吗?
/* @override
<url of stylsheet>
*/
/* @group Colors */
/* Orange - ff7800 */
/* Gray Blue - 373d4a */
/* @end */
Run Code Online (Sandbox Code Playgroud) 如果我不清楚,我不知道如何问这个如此原谅我,请让我澄清一下.我想将页面居中,并在居中内容的右侧有一个"侧栏",而不是视口的右侧.这很简单,除了我希望元素和视口一样高.但是,如果身体标签较高,我希望它与身体标签一样高.我需要这个,因为侧边栏的背景必须沿y轴重复以覆盖整个视口.我可能没有解释任何事情,所以也许这个jsFiddle将清除任何错过的细节.
我可以将.center样式设置为静态的位置值,但是然后绝对定位被抛弃.我可以将侧边栏浮动到右侧,但高度不会填满页面.我可以使用JavaScript,但不应依赖JavaScript进行布局,因为依赖它的元素是页面内容的四分之一.
任何指针都将非常感激.
编辑:更改正文和html标记高度为100%有帮助,但它仍然没有像我描述的那样表现.如果视口中有内容并且您滚动到该内容,则不会重复背景.
我试图用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)
我是Objective-C的新手.我知道C和C++,但Objective-C有相当的学习曲线.无论如何,是否有更短的方式(可能通过某种NSNumber文字,如果存在)写下面的内容:
[Tyler setArms:[[[NSNumber alloc] autorelease] initWithInt:1]];
Run Code Online (Sandbox Code Playgroud) 鉴于以下jsFiddle,如何在不构建堆栈的情况下实现与我相同的效果?
我尝试过这样的事情:
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) 我有一台服务器上有一些非常敏感的信息,因此安全性是一个大问题.用户需要能够上传视频.我知道允许用户上传文件会带来安全威胁,因为没有100%的方法可以阻止他们上传非视频.但我显然可以选择服务器将保留哪些文件.
我知道检查文件扩展名是不够的.检查MIME类型更好,但它仍然可以伪造.那么我该如何检查文件是否是视频?
我如何初始化一个私有数组,其中每一百项都等于一个两项数组,如{-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) 我有一个程序,其中帮助文档位于与.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?
提前致谢!