2012-01-18 183 views
0

編輯:解決了,謝謝大家!語言間自動編譯

我希望能夠簡單地做的就是從一種編程語言中獲取用戶輸入,將其轉換爲另一種編程語言並自動編譯。

例如(簡體字,不正是我想要做的,而是沿着類似的路線):

1)編寫Python腳本,用戶數據=的raw_input(「等等等等,例如,例如」)

2)if userData ==「blah blah blah,example,example」,序列化爲一個名爲「example.cpp」的文本文件並放入一些基於用戶輸入的預定數據(用C++形式編寫,儘管表示爲一個python腳本中的字符串)。爲了簡化,該預定數據將被稱爲預定數據。 3)預先確定的數據的範圍將基本上是一個cout < <「這是與以前不同的消息」< < end1;

4)編譯器(g ++/gcc)自動編譯它,整個程序結構調用新創建的可執行文件。

如果有人能夠幫助我指出主題/主題,我應該閱讀以便能夠實現這一點 - 如果可能的話 - 那太棒了。

編輯:我犯了一個經典錯誤,我想。爲了不被指責要求其他人爲我做我的「功課」,我太模糊,因此誤導了我。感謝您迄今的迴應,但現在我應該更具體一些。它不是特別的python或C++特定的,但我會在下面解釋。我對之前沒有更明確的道歉表示歉意。

我真正想要達到的是非常簡單的。我想用一種編程語言(python,C++,java)的用戶輸入,並創建一個Lilypond腳本,它將自動編譯並創建一個midi文件。

因此,例如:

1)用戶被要求按字母順序輸入一系列的說明:例如「C」然後「E」然後「F」,等等。

2)這些「音符」由控制循環語句進行檢查,並在LilyPond的腳本創建一個字符串和序列化到一個文件,這是與它的編譯器(example.ly)

3)該文件兼容由Lilypond編譯器自動編譯並創建一個midi文件(example.midi)

4)在程序的後面,可以調用這個example.midi並由於這個創建過程而被回放。在創建之前它不會存在。

+1

我不知道我完全理解你想要什麼,但爲什麼你需要這個?你想達到什麼目的? – 2012-01-18 22:16:08

+0

所以你只是尋找一個模板處理器,它需要C++源代碼,並用python程序中的字符串替換某些魔術序列「替代變量」? C++編譯器可以自己完成,參見'-D'編譯器選項來從命令行定義一個宏。 – 2012-01-18 22:19:18

+0

你的熱情有多深? – 2012-01-18 22:25:08

回答

5

對我來說,這聽起來像你只是想編寫一個用於交互式創建lilypond文件的用戶界面。

我沒有看到所有這些與編譯有關。您的python腳本需要用lilypond表示法寫一個文件,然後腳本需要在該文件上調用lilypond(例如os.system)。你甚至可以跳過寫入文件,只需輸出到stdin,其中lilypond也可以讀取。

+0

既然你這樣說,這正是我想要做的。我怎麼能學習如何用os.system或使用stdin「調用lilypond」?任何線索,我可以在哪裏讀到它?請致電 – JayCarter 2012-01-18 23:53:47

+0

道歉,請閱讀。現在像魅力一樣工作。非常感謝你和其他人提出的建議。 – JayCarter 2012-01-19 01:35:48

+0

@JayCarter不錯。請記住接受答案,並且您可能想閱讀常見問題以更好地瞭解StackOverflow。你可能會回來更多的問題。 – pmr 2012-01-19 09:24:36