Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


4 questions online user: 20

0
votes
answers
48 views
+10

如何找到遞歸語法的FIRST和FOLLOW集?

0

假設我有以下CFG:如何找到遞歸語法的FIRST和FOLLOW集?

S-> AACD | BcAe

A-> B | EPSILON

B-> cf | d

C-> FE

現在我敷在CFG的第一個規則:

FIRST(S)= FIRST(AACD)U FIRST(BcAe)

= {A} U FIRST(BcAe)

= {A} U FIRST(B) - {EPSILON} U FIRST(CAE)

= {A} U FI RST(B) - {EPSILON} U {C}

= {A} U FIRST(CF)U FIRST(d) - {EPSILON} U {C}

= {A,F,d, C,EPSILON}

FIRST(A)= FIRST(b)U FIRST(EPSILON)= = {b,EPSILON}

FIRST(b)= FIRST(CF)U FIRST(d)= {d中,f}

FIRST(C)= FIRST(FE)= {F}

現在我申請對CFG的FOLLOW規則:

FOLLOW(S)= {$}

FOLLOW(A)= {C,E}

FOLLOW(B)= {C}

FOLLOW(C)= {f}

有什麼不對嗎?如果不對,請告訴我該怎麼做。

+0

「我做完了我的功課嗎?」與堆棧溢出不匹配。如果你有一個關於算法的具體問題,你可以試着問一下,儘管這樣的問題很可能不在SO的範圍內,因爲它與編程很少或者沒有關係。 – rici

+0

@SourodipKundu這是錯的。它不是答案。 – Billa

+0

@SourodipKundu請檢查生產是否與我的問題相同。並且由於'C'在生產體S-> aACD中,'FOLLOW(C)'是'FIRST(D)'。由於'FIRST(D)'是'EPSILON',所以'EPSILON'替代'S-> aACD'中的'D'。所以它變成'S-> aAC'然後取'FOLLOW(C)',然後變成'FOLLOW(S)'這是'$'。我認爲你缺乏基礎知識,請參考我在答案中提出的視頻。 – Billa

沙发
0
2

你上面的工作(問題)表明你不擅長基本概念。所以你可以使用this tutorial

格拉默:

S-> AACD | BcAe

A-> B | EPSILON

B-> cf | d

C-> FE

沒有產生裝置EPSILON所以,

D-> EPSILON

在施加第一規則:

FIRST( A)= FIRST(b)U FIRST(EPSILON)= = {b,EPSILON}

FIRST(B)= FIRST(CF)U FIRST(d)= {C} U {d} = {C,d}

FIRST(C)= FIRST(FE)= {F}

FIRST(d)= {EPSILON}

FIRST(S)= FIRST(AACD)U FIRST(BcAe)

= {A} U FIRST(BcAe)

= {A} U FIRST(B)

= {a} U {c,d}

= {A,C,d}

上塗布後續規則:

FOLLOW(S)= {$}

FOLLOW(A)= FIRST(C) U第(E)= {F,E}

FOLLOW(B)= {C}

FOLLOW(C)= {$}

關注(D)= {$}

+0

隨意問你的疑惑。 – Billa

+0

FOLLOW(C)如何變爲$但使用FIRST AND FOLLOW規則我得到C遵循f @Billa –

21
votes
answers
26 views
+10

Is there a way to get a Haskell setup on Windows without an installation? (Copy + paste)

I am programming on a school-given computer. I need to have a Haskell setup that does no installation (one I can drop on a flash drive and copy on to the C drive or just use from the flash drive perhaps).

I already have Eclipse up and running, so if I could get it on Eclipse without leaving any impact on the system past the Eclipse directory, that would be very good as well.

By no installation, I mean I have to be able to easily remove the program and roughly all traces without any uninstaller tool. All uninstaller tools are likely blocked.

What are my options?

up vote 17 down vote accepted favorite
沙发
+170
+50

Haskell Platform 的Windows安裝程序(我是維護者)有一個“便攜式”安裝“只是將文件提取到給定位置並且不觸及註冊表或任何系統設置的選項。您可以使用它將Haskell平台安裝到您的閃存驅動器,但您需要手動將GHC的位置添加到PATH。

如何在Windows機器上添加路徑? - PyRulez 2014年2月21日21:50

@PyRulez computerhope.com/issues/ch000549.htm - Mikhail Glushenkov 2014年2月22日19:08

那麼你必須改變計算機設置呢? - PyRulez 2014年2月22日19:23

如何使用GHCI 8.0.1進行便攜式安裝?當我下載它時,我得到的是一個.exe文件。運行時,它不提供便攜式安裝選項。謝謝。 - RussAbbott 2016年7月1日16:19

+40

我來自未來。我正在使用 Haskell Platform 的Windows安裝程序作為 Mikhail Glushenkov說

那麼您必須更改計算機設置嗎? - PyRulez

您還可以使用 CMD.exe SET 命令設置環境變量。(這些天他們教你的孩子是什麼?)一旦你設置了這樣的 PATH (或其他),那麼該會話和任何子會話的值都會持續存在。如果你從shell啟動一個IDE - 它應該有那些設置(除非有一個先前的實例......也許)所以它應該在你給出的約束內工作。我建議您將其保存到 .bat 文件

TL:DR ; 提取 bin旁邊的 Haskell平台創建 shell.bat / lib / 等並將其粘貼到其中;

  @ECHO OFF SET PATH =%~dp0 / bin;%PATH%CMD / K   

現在運行 shell.bat ,該提示符將能夠找到Haskell。因為您可以使用 shell.bat

沒有像舊學校的學校:) - wayneseymour 18年8月13日在15:50

619
votes
answers
27 views
+10

compilation warning: no rule to process file for architecture i386

How can I resolve this warning?

[WARN]warning: no rule to process file '$(PROJECT_DIR)/MyApp/MessageCell.h' of type sourcecode.objj.h for architecture i386

up vote 565 down vote accepted favorite
沙发
+5650
+50

Click on your project, and check that this file is not present in the tab Build Phases. Normally no header files should stay here. Clean and build it again, it should work!

我有一些頭文件。只是好奇,為什麼不應該有標題? - Sheehan Alam 2011年6月28日17:39

因為這是將要編譯的源文件列表,通常您已經包含 你內心的.h .m - Giuseppe 2011年6月28日18:55

每當我創建一個新類時,我的XCode會自動將頭文件添加到我的構建階段。我不知道為什麼,任何人都知道為什麼會這樣?目前,每次創建新類時,我都需要手動從構建階段中刪除頭文件。 - Bocaxica 12年9月9日18:55

我可能會補充一個.h文件可能出現在構建階段(當它不應該)時,因為.m文件(錯誤地)有一個不同的名稱。 - Ali於2013年10月11日15:07

這是完全合理的...我原來創建了一個.cpp文件然後將其重命名為.h - ddavison 2014年3月10日12:54

+350

Graphical guide for Xcode 4.x to remove this warning:

http://joytek.blogspot.tw/2011/09/xcode-4-warning-no-rule-to-process-file.html

+160

We can resolve this issue by simply following the steps below:- Some .md, .mdown .h files are included in the Compile Sources
Step 1) Select Project Navigator
Step 2) Select your project
Step 3) Select your targetStep
Step 4) Select Build PhasesStep
Step 5) Move files which we don't want the compiler to process from Compile Sources to Copy Bundle Resources

Check this

+30

If you are getting this warning from your cocoapod you ned to make sure the s.source_files is set correctly in the .podspec.

For example I originally included all files with this line in my .podspec

s.source_files = "MyUIElements/**/*"

I was getting this compilation warning for some font files I had in the pod. You control which files show up in BuildPhases -> CompileSources on pod consumption like this:

s.source_files = "MyUIElements/**/*.swift", "MyUIElements/**/*.h"

或s.source_files =“來源** / *。{h,m,swift}”? - hstdt 17年10月26日5:42

0
votes
answers
39 views
+10

我在下面的野牛語法中遇到了減少/減少衝突

0

下面的語法匹配一個結構和野牛中的字段聲明。有人能指出減少衝突的地方在哪裏?我在下面的野牛語法中遇到了減少/減少衝突

結構例: 結構MYSTRUCT {VAR INT;}

%start start 

    %% 
    start  : program    { $$ = parser::root->adopt($1); } 
       ; 
    program : program structdef { $$ = $1->adopt ($2); } 
       | 
       ; 
    structdef : TOK_STRUCT TOK_IDENT '{' fielddecls '}' { 
       destroy($3); destroy($5); 
       $$ = $1->adopt($2, $4);} 
       ; 
    fielddecls : fielddecl {$$ = $1;} 
       | fielddecl fielddecls {$$ = $1->adopt($2);} 
       | {$$ = nullptr;} 
       ; 
    fielddecl : basetype TOK_IDENT ';' {$$ = $1->adopt($2);} 
       ; 
    basetype : TOK_VOID {$$ = $1;} 
       | TOK_INT  {$$ = $1;} 
       | TOK_STRING {$$ = $1;} 
       | TOK_IDENT {$$ = $1;} 
       ; 

    %% 
沙发
0
0

的問題是規則

fielddecls : fielddecl {$$ = $1;} 
      | fielddecl fielddecls {$$ = $1->adopt($2);} 
      | {$$ = nullptr;} 
      ; 

這是不明確的 - 你有一個recusive規則和兩個基地的情況,所以任何一個或多個fielddecl的序列都可以被識別。您需要只有一個基本情況:

fielddecls : fielddecl fielddecls {$$ = $1->adopt($2);} 
      | {$$ = nullptr;} 
      ; 

將匹配0或更多fielddecl的任何序列。