Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature wish] More chars allow. #3897

Closed
vicuna opened this issue Nov 29, 2005 · 3 comments
Closed

[feature wish] More chars allow. #3897

vicuna opened this issue Nov 29, 2005 · 3 comments

Comments

@vicuna
Copy link

vicuna commented Nov 29, 2005

Original bug ID: 3897
Reporter: anonymous
Status: closed (set by @damiendoligez on 2005-12-15T13:01:30Z)
Resolution: won't fix
Priority: normal
Severity: feature
Version: 3.09.0
Category: ~DO NOT USE (was: OCaml general)

Bug description

J'ai remarqué que les caractères ['\161'-'\165' '\167' '\169' '\170'-'\179' '\181'-'\182' '\185'-'\189' '\191' '\215' '\247'] ne sont pas du tout utiliser par le Langage Ocaml. Or ces caractères pour la plus part peuvent être des signe sympathique pour des nouveaux opérateurs.

De même j'ai remarqué qu'il n'y a pas en Ocaml de classe d'opérateur suffixe. Or avec une modification simple de la grammaire nous pouvons en avoir sans crée de conflit. Il suffi de sélectionné un sous ensemble des caractères encore inutilisé pour en faire des "repères" d'opérateur infixe.

Ainsi on peut crée des choses comme :
Objective Caml version 3.09.0

let (²) x = x * x ;;

val ( ² ) : int -> int =

3²;;

  • : int = 9

Voici les modifications pour la version 3.09
parser.mly:

235a236

%token SUFIXOP
944a946,947
| simple_expr SUFIXOP
{ mkexp(Pexp_apply(mkoperator $2 1, ["",$1])) }
1407a1411
| SUFIXOP { $1 }

lexer.mll:

215c215
< ['!' '$' '%' '&' '*' '+' '-' '.' '/' ':' '<' '=' '>' '?' '@' '^' '|' '~']

['!' '$' '%' '&' '*' '+' '-' '.' '/' ':' '<' '=' '>' '?' '@' '^' '|' '~' '\161'-'\165' '\167' '\169' '\170'-'\179' '\181'-'\182' '\185'-'\189' '\191' '\215' '\247']
378a379,380
| ['\161'-'\165' '\167' '\169' '\170'-'\179' '\181'-'\182' '\185'-'\189' '\191' '\215' '\247'] symbolchar * {SUFIXOP(Lexing.lexeme lexbuf)}

Dans l'exemple si dessus tous les nouveaux caractères sont dans la classe "symbole suffix" c'est pas forcement judicieux, il faudrais voir au cas par cas.

@vicuna
Copy link
Author

vicuna commented Nov 30, 2005

Comment author: anonymous

Another language using "extended characters" seems to be APL.
Finding the right charset to display APL sources look like a PITA (http://www.99-bottles-of-beer.net/language-apl-679.html :) )

I personally think that it would be a bad move.

@vicuna
Copy link
Author

vicuna commented Nov 30, 2005

Comment author: @damiendoligez

Mon avis personnel: tout ceci est une mauvaise idee, car ca nous eloignerait encore plus
de la compatibilite avec Unicode.

@vicuna
Copy link
Author

vicuna commented Nov 30, 2005

Comment author: philippe_wang

C'est bien pour faire du code obfusqué ... Sinon, c'est clair qu'il n'y a pas vraiment d'intérêt (pour mon avis)...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant