用腳本語言打造求解器
㈠ 求高手幫忙,用javascript腳本語言編寫個最簡單的計算器,如圖所示
Calculator.java: 
  import java.awt.*;
  import java.awt.event.*;
  import java.lang.*;
  import java.applet.*;
  public class Calculator extends Applet implements ActionListener{
   Panel buttonPanel;
   TextField tf; //用於顯示輸入的數字的文本框
   Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,bDot,bPlus,bSub,bDiv,bMulti,bEqual; //按鍵
   String onDisplay=""; //顯示在文本框中的字元串
   boolean isDotPressed=false; //按鍵'.'是否被按下
   float operand; //通過按鍵輸入的數
   float operand1,operand2;//operand1和operand2為計算用的操作數 
   char operator; //計錄所用的操作符
   float result; //計算結果
   int times=1; //小數點後有幾位的10次方冪
   public void init(){
    setLayout(new BorderLayout(5,5));
    tf=new TextField(30);
    add(tf,BorderLayout.NORTH);
    buttonPanel=new Panel();
    buttonPanel.setLayout(new GridLayout(4,4,5,5));
    add(buttonPanel,BorderLayout.CENTER);
    //下面依次把按鈕添加上去
 
    b1=new Button("1");
    buttonPanel.add(b1);
    b1.addActionListener(this);
    b1.setActionCommand("1");
    b2=new Button("2");
    buttonPanel.add(b2);
    b2.addActionListener(this);
    b2.setActionCommand("2");
    b3=new Button("3");
    buttonPanel.add(b3);
    b3.addActionListener(this);
    b3.setActionCommand("3");
    bPlus=new Button("+");
    buttonPanel.add(bPlus);
    bPlus.addActionListener(this);
    bPlus.setActionCommand("+");
    b4=new Button("4");
    buttonPanel.add(b4);
    b4.addActionListener(this);
    b4.setActionCommand("4");
    b5=new Button("5");
    buttonPanel.add(b5);
    b5.addActionListener(this);
    b5.setActionCommand("5");
    b6=new Button("6");
    buttonPanel.add(b6);
    b6.addActionListener(this);
    b6.setActionCommand("6");
    bSub=new Button("-");
    buttonPanel.add(bSub);
    bSub.addActionListener(this);
    bSub.setActionCommand("-");
    b7=new Button("7");
    buttonPanel.add(b7);
    b7.addActionListener(this);
    b7.setActionCommand("7");
    b8=new Button("8");
    buttonPanel.add(b8);
    b8.addActionListener(this);
    b8.setActionCommand("8");
    b9=new Button("9");
    buttonPanel.add(b9);
    b9.addActionListener(this);
    b9.setActionCommand("9");
  
    bMulti=new Button("*");
    buttonPanel.add(bMulti);
    bMulti.addActionListener(this);
    bMulti.setActionCommand("*");
    b0=new Button("0");
    buttonPanel.add(b0);
    b0.addActionListener(this);
    b0.setActionCommand("0");
    bDot=new Button(".");
    buttonPanel.add(bDot);
    bDot.addActionListener(this);
    bDot.setActionCommand(".");
    bEqual=new Button("=");
    buttonPanel.add(bEqual);
    bEqual.addActionListener(this);
    bEqual.setActionCommand("=");
    bDiv=new Button("/");
    buttonPanel.add(bDiv);
    bDiv.addActionListener(this);
    bDiv.setActionCommand("/");
    }
public void actionPerformed(ActionEvent e){
    String str=e.getActionCommand();
    char b=str.charAt(0);
    switch(b){
      case '0':
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
      case '8':
      case '9': onDisplay+=b;
       operand=operand*10+Integer.parseInt(str);
       if(isDotPressed) times*=10;
       tf.setText(onDisplay);
       break; 
      case '.': onDisplay+=b;
       isDotPressed=true;
       tf.setText(onDisplay);
       break; 
      case '+': 
      case '-':
      case '*':
      case '/': operator=b;
       operand1=operand/times;
       System.out.println(operand1);
       onDisplay="";
       times=1;
       isDotPressed=false;
       operand=0;
       break;
      case '=': operand2=operand/times;
       System.out.println(operand2);
       switch(operator){
        case '+': result=operand1+operand2;break;
        case '-': result=operand1-operand2;break;
        case '*': result=operand1*operand2;break;
        case '/': result=operand1/operand2;break;
       }
       tf.setText(float.toString(result));
       onDisplay="";
       times=1;
       isDotPressed=false;
       operand=0;
       break;
      }
    }
  }
  Calculator.html:
  <html>
  <applet code="Calculator.class" width=250 height=250>
  </applet>   
  </html>
㈡ 利用JavaScript腳本語言編寫一個簡單的「網頁計算器」
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文檔</title>
<script language="javascript"> 
function jsq(fh)
{
var num1,num2;
num1=parseFloat(document.form1.text1.value);
num2=parseFloat(document.form1.text2.value);
if(fh=="+")
document.form1.text3.value=num1+num2;
if(fh=="-")
document.form1.text3.value=num1-num2;
if(fh=="*")
document.form1.text3.value=num1*num2;
if(fh=="/")
 if(num2!=0)
 {
 document.form1.text3.value=num1/num2;
 }
 else
 {
 alert ("除數不能為零!")
 }
}
</script>
</head>
 
<body>
<form id="form1" name="form1" method="post" action="">
  <label>
  <input name="text1" type="text" id="text1" />
  </label>
  <p>
    <label>
    <input name="text2" type="text" id="text2" />
    </label>
  </p>
  <p>
    <label>
    <input name="Button1" type="Button" id="Button1" value="+" onClick="jsq('+')">
    <input name="Button2" type="Button" id="Button2" value="-" onClick="jsq('-')"/>
    <input name="Button3" type="Button" id="Button3" value="*" onClick="jsq('*')"/>
    <input name="Button4" type="Button" id="Button4" value="/" onClick="jsq('/')"/>
    </label>
  </p>
  <p>
    <label>
    <input name="text3" type="text" id="text3" />
    </label>
  </p>
</form>
</body>
</html>
㈢ 用javascript腳本語言編寫一個 計算器計算加減乘除 謝謝,很急!大家幫幫忙呀!!!
<html>
<head>
<title>runcode</title>
<scripttype="text/javascript">
functionrun(t){
varsa=parseInt(document.getElementById('sa').value);
varsb=parseInt(document.getElementById('sb').value);
varsc=document.getElementById('sc');
if(isNaN(sa)||isNaN(sb)){
alert("輸入錯誤,請重新輸入!");
return;
}
switch(t){
case1:
sc.value=sa+sb;
break;
case2:
sc.value=sa-sb;
break;
case3:
sc.value=sa*sb;
break;
case4:
if(sb==0){
alert("被除數不能為0!");
return;
}
sc.value=sa/sb;
break;
}
}
</script>
</head>
<body>
<tablewidth="255"height="136"border="1"style="background:#66CCFF;font-size:12px;">
<tr>
<tdcolspan="3">計算器</td>
</tr>
<tr>
<tdwidth="62"height="34">第一個數</td>
<tdwidth="102"><inputname="text"type="text"id="sa"width="100px"onclick="this.value=''"value=""/></td>
<tdwidth="29"rowspan="3"><inputname="button"type="button"onclick="run(1)"value="+"/>
<inputname="button2"type="button"onclick="run(2)"value="-"/>
<inputname="button3"type="button"onclick="run(3)"value="*"/>
<inputname="button4"type="button"onclick="run(4)"value="/"/></td>
</tr>
<tr>
<tdheight="32">第二個數</td>
<td><inputname="text2"type="text"id="sb"width="100px"onclick="this.value=''"value=""/></td>
</tr>
<tr>
<td>計算結果</td>
<td><inputname="text3"type="text"id="sc"width="100px"value=""/></td>
</tr>
</table>
<p> </p>
</body>
</html>
<html>
<head>
<title>runcode</title>
<scripttype="text/javascript">
functionrun(t){
varsa=parseInt(document.getElementById('sa').value);
varsb=parseInt(document.getElementById('sb').value);
varsc=document.getElementById('sc');
if(isNaN(sa)||isNaN(sb)){
alert("輸入錯誤,請重新輸入!");
return;
}
switch(t){
case1:
sc.value=sa+sb;
break;
case2:
sc.value=sa-sb;
break;
case3:
sc.value=sa*sb;
break;
case4:
if(sb==0){
alert("被除數不能為0!");
return;
}
sc.value=sa/sb;
break;
}
}
</script>
</head>
<body>
<tablewidth="255"height="136"border="1"style="background:#66CCFF;font-size:12px;">
<tr>
<tdcolspan="3">計算器</td>
</tr>
<tr>
<tdwidth="62"height="34">第一個數</td>
<tdwidth="102"><inputname="text"type="text"id="sa"width="100px"onclick="this.value=''"value=""/></td>
<tdwidth="29"rowspan="3"><inputname="button"type="button"onclick="run(1)"value="+"/>
<inputname="button2"type="button"onclick="run(2)"value="-"/>
<inputname="button3"type="button"onclick="run(3)"value="*"/>
<inputname="button4"type="button"onclick="run(4)"value="/"/></td>
</tr>
<tr>
<tdheight="32">第二個數</td>
<td><inputname="text2"type="text"id="sb"width="100px"onclick="this.value=''"value=""/></td>
</tr>
<tr>
<td>計算結果</td>
<td><inputname="text3"type="text"id="sc"width="100px"value=""/></td>
</tr>
</table>
<p> </p>
</body>
</html>

㈣ c語言寫腳本解釋器
記錄大括弧!!!
遇到if則判斷語句,接下來,然後假設判斷式成立,執行if緊跟著的語句,把大括弧括起來的當成一個語句,執行下去,如果沒有else的話就繼續,有else的話跳過else所包含的范圍.
㈤ 我想自己用C/C++做一個腳本語言解釋器,但是不知道需要什麼知識
對於腳本解釋的,只是調用了系統的api吧,應該是這樣子,你自己用程序寫,然後調用系統api,然後獲取返回內容就行了
比如普通的命令,,復制,你可以定義成其他名字,調用的api或者是直接用cmd下可以用的命令直接用
至於讀取你的程序執行內容,那根讀取文本一樣
舉個例子
包含必要頭文件
if讀取內容正確,先讀命令,讀到空格,一直往後讀到參數
執行相關代碼,比如特定的api函數,或者是直接用cmd下的命令,system("calc");這個是打開計算器,包含頭文件windows.h
繼續循環到開頭重新讀
㈥ 如何用 ANTLR 4 實現自己的腳本語言
在 ANTLR 里,我們寫的規則,會生成解析器的代碼,這個解析器,會把目標腳本,解析成一個抽象語法樹。這顆抽象語法樹上,越是靠近葉子節點的地方,結合優先順序越高,越是靠近根的地方,結合優先順序越低,根據這個特點,我們就可以讓 ANTLR 幫我們完成以上的規則:
 addExpression
: mulExpression (('+' | '-') mulExpression)*
;
mulExpression
: primaryExpression (('*' | '/') primaryExpression)*
;
primaryExpression
: Decimal
| '(' addExpression ')'
;
上面展示的 ANTLR 規則,在 primaryExpression 
中,包括兩個可選項,要麼是數字,要麼是括弧表達式,是最高優先順序,然後是 mulExpression,優先順序最低的是 addExpression 
。括弧表達式內,是一個 addExpression ,所以,這是一個循環結構,可以處理無限長的四則運算式,比如 
1+2*3-(4+5)/6+7+8,會被解析為如下的語法樹:
 addExpression : 1 + child1_1 - child1_2 + 7 + 8
child1_1 mulExpression : 2 * 3
child1_2 mulExpression : child1_2_1 / 6
child1_2_1 addExpression : 4 + 5
